Spaces:
Runtime error
Runtime error
Upload utils.py
Browse files
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)
|