【发布时间】:2017-05-08 20:02:10
【问题描述】:
在训练深度学习网络(例如使用 TensorFlow 或类似网络)时,通常会针对一组固定样本进行训练,并希望通过更长时间的训练获得更好的结果。但这假设了单调增加的准确性,如下所示,这显然是不正确的。如下所示,停在“2.0”会提高十个百分点的准确性。是否有任何通用程序来挑选更好的模型并保存它们。
换句话说,一个峰值检测例程。也许,在整个训练过程中跟踪测试准确度,并在准确度高于先前值时保存模型(检查点?)。
问题:
- 挑选最佳模型的最佳实践是什么?
- TF 有这方面的方法吗?
- 根据优化器最终会找到更好解决方案的理论,继续训练更长时间(可能更长)是否有好处。
- 检查点是最好的保存方法吗?
编辑:感谢@Wontonimo 的建议,改进后的准确性结果如下所示。进行了以下更改:
- 将 Adam 优化器中的学习率从 0.003 降低到 0.001
- 添加两个额外的 dropout 层 (prob=0.5)
- 从完整数据集中随机选择训练帧(而不是序列选择)
- 将训练迭代次数增加 50%。
有了这些变化,继续进一步训练似乎是有利的。并且可能会添加更多的正则化。
【问题讨论】:
标签: optimization machine-learning tensorflow deep-learning