in train/lr_scheduler.py [0:0]
def __init__(self, steps, base_lr=0.01, factor=0.1, step_counter=0):
super(MultiFactorScheduler, self).__init__(step_counter, base_lr)
assert isinstance(steps, list) and len(steps) > 0
for i, _step in enumerate(steps):
if i != 0 and steps[i] <= steps[i-1]:
raise ValueError("Schedule step must be an increasing integer list")
if _step < 1:
raise ValueError("Schedule step must be greater or equal than 1 round")
if factor > 1.0:
raise ValueError("Factor must be no more than 1 to make lr reduce")
logging.info("Iter %d: start with learning rate: %0.5e (next lr step: %d)" \
% (self.step_counter, self.base_lr, steps[0]))
self.steps = steps
self.factor = factor
self.lr = self.base_lr
self.lr_normalized = self.base_lr
self.cursor = 0