我正在使用github的Pytorch代码
我正试图将此移植到Keras . 特别是,Keras使用 model.fit
训练神经网络并具有 batch_size
参数 . 我试图设置这个,但无法在上面链接的Pytorch脚本中确定它 .
在脚本中,在框4中有一个名为 sliding_window
的函数,其中有一个名为 step
的参数 . 我不确定这是否是 batch_size
的等效设置 .
另外,我正在研究如何从Pytorch代码中的方框11设置学习速率调度程序:
base_lr = 0.01
params_dict = dict(net.named_parameters())
params = []
for key, value in params_dict.items():
if '_D' in key:
# Decoder weights are trained at the nominal learning rate
params += [{'params':[value],'lr': base_lr}]
else:
# Encoder weights are trained at lr / 2 (we have VGG-16 weights as initialization)
params += [{'params':[value],'lr': base_lr / 2}]
optimizer = optim.SGD(net.parameters(), lr=base_lr, momentum=0.9, weight_decay=0.0005)
# We define the scheduler
scheduler = optim.lr_scheduler.MultiStepLR(optimizer, [25, 35, 45], gamma=0.1)
我一直使用Keras的默认学习率 . 任何有关如何将此调度程序转换为Keras代码的见解也将受到赞赏 .
1 回答
下面找到如何在Keras中编写学习速率调度程序的示例:
在您的代码中,您将以这种方式调用回调:
请注意,当达到一个纪元时,该调度程序将学习设置为较低的值除以2.将其修改为更花哨的计划策略是微不足道的 .