Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class CycleLR:
- def __init__(self, warm_epoch, all_epoch, target_lr, iters_epoch, period=4):
- self.iter = -1
- self.warmIters = iters_epoch * warm_epoch
- self.target_lr = target_lr
- self.step_iters = (all_epoch - warm_epoch) // period * iters_epoch
- def step(self):
- self.iter += 1
- if self.iter <= self.warmIters:
- lr = self.warm()
- else:
- cur_iter = (self.iter - self.warmIters) % self.step_iters
- lr = self.cosine(cur_iter)
- return lr
- def warm(self):
- return self.iter / self.warmIters * self.target_lr
- def cosine(self, cur_iter):
- lr = self.target_lr * (1 + np.cos(np.pi * cur_iter / self.step_iters)) * 0.5
- return lr
Add Comment
Please, Sign In to add comment