你好!在我的上一篇博客中,我使用MobileNet创建了一个基线模型。在验证数据集上的准确率为52.78%。今天,我试着调整了一个非常重要的超参数模型。
更快的实验
TensorFlow中的超参数调整是一个实验过程。为了缩短每次实验的持续时间,我决定暂时缩小训练和验证数据集的大小。我将文件路径和标签索引到前5000个样本,以减小数据集大小。
您可能已经注意到我在上一篇博客中放入ADAM优化器的一个小参数-学习率(LR)。LR确定优化器应该改进的速度。为了找到理想的学习率,TensorFlow有一个名为LRScheduler的回调。LRScheduler用不同的学习速率训练每个时代。我们稍后可以画出损失是如何随着每个时代的下降而下降的,以找到理想的学习率。在这个博客里,我会告诉你我是如何利用这一点来获得更好的结果的。LRScheduler
创建LRScheduler回调
LRScheduler接受函数作为参数。在代码中实现LRScheduler之后,代码如下所示:
我在此模型中去掉了EarlyStopping回调,以便该模型尝试不同的学习率,并更好地反映实际减少的损失。
用不同的LR绘制损耗波动图
我使用Matplotlib的半对数曲线图(它们是x和y坐标以10为底的对数的曲线图)。
输出如下:
我们可以通过设置曲线图的XLIM来进一步放大
我们可以将理想的学习率近似为3×10^-4=0.0003。
结论
在这个博客中,我们找到了我们模型的理想学习率。明天,我会用这个学习率再次训练这个模型。
好了,今天就到这里吧。再见!
原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/07/27/%e5%88%86%e5%bf%83%e9%a9%be%e9%a9%b6%e7%ac%ac%e5%9b%9b%e5%a4%a9%e2%80%8a-%e2%80%8alrscheduler/