Tensorflow:由于最佳(最低)成本何时停止培训?

时间:2017-06-19 19:01:19

标签: tensorflow neural-network

我正在使用TensorFlow使用LeNet网络对图像进行分类。我使用AdamOptimizer来最小化成本函数。当我开始训练模型时,我可以观察到训练的准确性和验证准确性以及成本在变化,有时会减少甚至有所增加。

我的问题:我们什么时候应该停止培训?我们怎么知道优化器会找到最低成本?我们应该进行多少次迭代培训?我们可以设置变量或条件以最低成本停止吗?

我的解决方案是定义一个全局变量(min_cost),并在每次迭代中检查成本是否正在减少,然后保存会话并用新成本替换min_cost。最后,我将以最低费用保存会话,

这是正确的做法吗?

提前致谢,

1 个答案:

答案 0 :(得分:1)

在训练神经网络时,大多数目标错误被定义,并且需要进行最大量的迭代训练。例如,目标错误可能是0.001MSE。一旦达到此错误,训练将停止 - 如果在最大迭代次数后仍未达到此错误,则训练也将停止。

但是看起来你想要训练,直到你知道网络不能做得更好。像你一样保存“最佳”参数是一种很好的方法,但要意识到,一旦达到某种最低成本,错误就不会再那么波动了。它不会像错误突然显着上升,因此不一定要保存网络。

没有“最低成本”这样的东西 - 网络总是试图去一些本地最小值,而且它总会这样做。你(或算法)没有办法确定不再有更好的错误了。

tl; dr - 只需设置目标合理的目标错误以及最大迭代次数。