什么时候该停止训练我的模型?

问题描述:

我实现深深CNN和这个日志:
什么时候该停止训练我的模型?

Iter 2300, Minibatch Loss 2535.55078125, Batch Accuracy 0.800000011920929 
Test accuracy = 0.7236111164093018 
Iter 2400, Minibatch Loss 2402.5517578125, Batch Accuracy 0.699999988079071 
Test accuracy = 0.8097222182485794 
Iter 2500, Minibatch Loss 1642.6527099609375, Batch Accuracy 0.8999999761581421 
Test accuracy = 0.8311110999849107 
Iter 2600, Minibatch Loss 4008.334716796875, Batch Accuracy 0.8999999761581421 
Test accuracy = 0.8463888929949868 
Iter 2700, Minibatch Loss 2555.335205078125, Batch Accuracy 0.800000011920929 
Test accuracy = 0.8077777789698706 
Iter 2800, Minibatch Loss 1188.008056640625, Batch Accuracy 0.8999999761581421 
Test accuracy = 0.8074999981456332 
Iter 2900, Minibatch Loss 426.5060119628906, Batch Accuracy 0.8999999761581421 
Test accuracy = 0.7513888908757105 
Iter 3000, Minibatch Loss 5560.1845703125, Batch Accuracy 0.699999988079071 
Test accuracy = 0.8733333349227907 
Iter 3100, Minibatch Loss 3904.02490234375, Batch Accuracy 0.8999999761581421 
Test accuracy = 0.817222214407391 
Iter 3110, Minibatch Loss 9638.71875, Batch Accuracy 0.8333333134651184 
Test accuracy = 0.8238888879617057 

我的问题是:我应该等待时,培训将完成出于某种原因,或者当测试精度最高我可以停下来?那里是0.8733333349227907。

测试精度停止增加时,您可以停止开始减少。这被称为提前停止,并且很容易实现。 XGBoost,Keras许多库都具有此功能作为选项:https://keras.io/callbacks/#earlystopping

尝试绘制中间值,它将为您提供重要的培训过程见解。请参阅http://cs231n.github.io/neural-networks-3/#accuracy

enter image description here