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

Tensorflow:由于最佳(最低)成本,何时停止培训?,tensorflow,neural-network,Tensorflow,Neural Network,我正在使用TensorFlow使用LeNet网络对图像进行分类。我使用AdamOptimizer最小化成本函数。当我开始训练模型时,我可以观察到训练精度和验证精度以及成本都在变化,有时降低,有时增加 我的问题:我们应该什么时候停止训练?我们如何知道优化器将找到最低成本?我们应该进行多少次迭代训练?我们能否设置一个变量或条件,以最低成本停止 我的解决方案是定义一个全局变量(最小成本),并在每次迭代中检查成本是否降低,然后保存会话并用新成本替换最小成本。最后,我将以最低成本保存会话 这是正确的方法吗

我正在使用TensorFlow使用LeNet网络对图像进行分类。我使用AdamOptimizer最小化成本函数。当我开始训练模型时,我可以观察到训练精度和验证精度以及成本都在变化,有时降低,有时增加

我的问题:我们应该什么时候停止训练?我们如何知道优化器将找到最低成本?我们应该进行多少次迭代训练?我们能否设置一个变量或条件,以最低成本停止

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

这是正确的方法吗


提前感谢,

在训练神经网络时,通常会定义目标误差以及要训练的最大迭代次数。例如,目标错误可能是
0.001MSE
。一旦达到此错误,培训将停止-如果在最大迭代次数后未达到此错误,培训也将停止

但似乎你想训练,直到你知道网络不能做得更好。像您这样保存“最佳”参数是一种很好的方法,但请务必意识到,一旦达到某种最低成本,误差将不再波动那么大。错误不会突然显著增加,因此不完全需要保存网络

没有所谓的“最低成本”——网络总是试图达到某个局部最小值,而且它总是这样做。你们(或一个算法)真的无法找出再也并没有更好的错误了


tl;dr-只需设置一个合理的目标误差和最大迭代次数。

因此,在第一段中,你说我需要对模型进行大量迭代训练,它会在某个点收敛,对吗?问题是,您必须设置一个合理的错误目标-迭代次数应该是您知道网络应该收敛到最小值的数量。最大迭代次数是目标错误的回退。因此,我应该通过试错法找到最大迭代次数和目标错误?基本上是的,但我必须注意,您的第一个评论是正确的:将最大迭代次数设置为高值将意味着网络将尽可能收敛,因为经过大量迭代后,误差不会增加或增加。