in src/utils.py [0:0]
def __init__(self,
weights,
net,
artifacts_dir,
initial_learning_rate=0.001,
decay=0.5,
max_decay=0.01
):
'''
Newbob learning rate scheduler
:param weights: weights to optimize
:param net: the network, must be an instance of type src.utils.Net
:param artifacts_dir: (str) directory to save/restore models to/from
:param initial_learning_rate: (float) initial learning rate
:param decay: (float) value to decrease learning rate by when loss doesn't improve further
:param max_decay: (float) maximum decay of learning rate
'''
super().__init__(weights, lr=initial_learning_rate)
self.last_epoch_loss = np.inf
self.total_decay = 1
self.net = net
self.decay = decay
self.max_decay = max_decay
self.artifacts_dir = artifacts_dir
# store initial state as backup
if decay < 1.0:
net.save(artifacts_dir, suffix="newbob")