hieupt commited on
Commit
d8542e2
·
verified ·
1 Parent(s): 6fd5219

Upload utils.py

Browse files
Files changed (1) hide show
  1. utils.py +19 -0
utils.py ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import numpy as np
2
+
3
+ def worker_init_fn(worker_id): # This is apparently needed to ensure workers have different random seeds and draw different examples!
4
+ np.random.seed(np.random.get_state()[1][0] + worker_id)
5
+
6
+ def get_lr(optim):
7
+ return optim.param_groups[0]["lr"]
8
+
9
+ def set_lr(optim, lr):
10
+ for g in optim.param_groups:
11
+ g['lr'] = lr
12
+
13
+ def set_cyclic_lr(optimizer, it, epoch_it, cycles, min_lr, max_lr):
14
+ cycle_length = epoch_it // cycles
15
+ curr_cycle = min(it // cycle_length, cycles-1)
16
+ curr_it = it - cycle_length * curr_cycle
17
+
18
+ new_lr = min_lr + 0.5*(max_lr - min_lr)*(1 + np.cos((float(curr_it) / float(cycle_length)) * np.pi))
19
+ set_lr(optimizer, new_lr)