在培训深度学习网络时(例如使用TensorFlow或类似方法),通常需要对固定样本集进行训练,并希望通过较长时间的训练可以获得更好的结果。但是,这假定单调递增的准确性,如下所示,显然不是真实的。如下所示,停在“2.0”的时候会有10个百分点更高的准确性。有没有通用的程序来选择更好的模型并保存它们。 换句话说,一个峰值检测程序。也许,在整个训练过程中跟踪测试精度,并在精度高于以前的值时节省模型(检查点?)。
问题:Tensorflow:从培训课程中选择最佳模型
- 什么是挑选最佳模型的最佳做法?
- TF有没有办法呢?
- 根据优化器最终会找到更好的解决方案的理论,继续培训更长时间(也许更长)是否有优点?
- 检查点是最佳的保存方法吗?
编辑:由于从@Wontonimo的建议,改善的准确度的结果如下所示。以下改变:
- 减少在从0.003亚当优化学习率至0.001
- 从完整的数据集添加两个附加漏失层(概率= 0.5)
- 洗牌选择训练帧(而不是序列选择)
- 将训练迭代次数增加50%。
有了这些改变,似乎继续进一步培训将是有利的。并可能添加更多正则化。
谢谢你的评论。在我们的例子中,我们使用了Adam优化器,我相信它会自动实现学习速率衰减。但显然这还不够。关于正规化,我们正在使用一个辍学层,但您的意见表明第二个不会是一件坏事。 – Hephaestus
但是,原始问题似乎仍然有用。我应该推断一个设计良好的训练系统是单调的,不需要峰值检测? – Hephaestus
我会说是的,一个设计良好的系统**趋向于单调行为。但是,无需在不必要的工作上刻录CPU,因此检测到高原的某些内容对退出和排列下一份工作很有用。 – Wontonimo