什么时候该停止训练我的模型?
问题描述:
我实现深深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。