Guest User

Untitled

a guest
Dec 19th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.73 KB | None | 0 0
  1. class CycleLR:
  2. def __init__(self, warm_epoch, all_epoch, target_lr, iters_epoch, period=4):
  3. self.iter = -1
  4. self.warmIters = iters_epoch * warm_epoch
  5. self.target_lr = target_lr
  6. self.step_iters = (all_epoch - warm_epoch) // period * iters_epoch
  7.  
  8. def step(self):
  9. self.iter += 1
  10. if self.iter <= self.warmIters:
  11. lr = self.warm()
  12. else:
  13. cur_iter = (self.iter - self.warmIters) % self.step_iters
  14. lr = self.cosine(cur_iter)
  15. return lr
  16.  
  17. def warm(self):
  18. return self.iter / self.warmIters * self.target_lr
  19.  
  20. def cosine(self, cur_iter):
  21. lr = self.target_lr * (1 + np.cos(np.pi * cur_iter / self.step_iters)) * 0.5
  22. return lr
Add Comment
Please, Sign In to add comment