forked from f90/Wave-U-Net-Pytorch
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathutils.py
More file actions
19 lines (14 loc) · 689 Bytes
/
utils.py
File metadata and controls
19 lines (14 loc) · 689 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import numpy as np
def worker_init_fn(worker_id): # This is apparently needed to ensure workers have different random seeds and draw different examples!
np.random.seed(np.random.get_state()[1][0] + worker_id)
def get_lr(optim):
return optim.param_groups[0]["lr"]
def set_lr(optim, lr):
for g in optim.param_groups:
g['lr'] = lr
def set_cyclic_lr(optimizer, it, epoch_it, cycles, min_lr, max_lr):
cycle_length = epoch_it // cycles
curr_cycle = min(it // cycle_length, cycles-1)
curr_it = it - cycle_length * curr_cycle
new_lr = min_lr + 0.5*(max_lr - min_lr)*(1 + np.cos((float(curr_it) / float(cycle_length)) * np.pi))
set_lr(optimizer, new_lr)