本文主要谈谈自己对step,epoch,batch_size这几个常见参数的理解。
最近在调试模型的时候,发现在使用keras.optimizer.adam时,模型在添加了新的一层2D卷积层后难以收敛,在不调整初始权重矩阵的情况下,想通过衰减学习率来使loss function的收敛性更好。
tf.keras.optimizers.Adam(
learning_rate=0.001,
beta_1=0.9,
beta_2=0.999,
epsilon=1e-07,
amsgrad=False,
name="Adam",
**kwargs
)
可以看到,adam这个optimizer在没有其他参数条件的情况下,默认学习率为固定0.001。
为了调整学习率,在keras的文档中找到了下述示例代码,代码的意思很简单,初始学习率为0.01,衰减需要的step为10000,衰减率为0.9,即每次经过10000 steps,学习率就衰减为原来的0.9。
lr_schedule = keras.optimizers.schedules.ExponentialDecay