2017-09-29 64 views
0

後約1000次迭代和頻率的大約20次迭代我看到從0單次迭代的ACC和val_acc增加,然後返回到0的下一次迭代:訪問了解到迭代中的權重 - keras或tensorflow

5s - loss: 2.0677 - acc: 0.1345 - val_loss: 3.0170 - val_acc: 0.0000e+00 
Epoch 180/3000 

5s - loss: 2.0821 - acc: 0.1426 - val_loss: 3.0052 - val_acc: 0.6520 
Epoch 181/3000 

5s - loss: 2.0755 - acc: 0.1202 - val_loss: 3.0405 - val_acc: 0.0000e+00 

因爲我想學習體重,其中val_cc大於50%我可以在特定的迭代中訪問體重參數,在這種情況下,acc是0.1426,val_acc是0.6520?

替代keras是否支持在指定時保存模型重量acc & val_acc條件是我的嗎?

更新:

降低學習率後:

Epoch 7562/300000 
1s - loss: 0.7599 - acc: 0.6968 - val_loss: 0.2335 - val_acc: 0.9231 
Epoch 7563/300000 
1s - loss: 0.7484 - acc: 0.7119 - val_loss: 0.3115 - val_acc: 0.8828 
Epoch 7564/300000 
1s - loss: 0.7702 - acc: 0.6980 - val_loss: 0.3340 - val_acc: 0.8388 
+1

中檢查它是什麼用來創建訓練迭代?在任何迭代中保存權重應該是非常簡單的。但要小心,如果你的準確度在0.14左右,而你的確認能力突然出現高峯,那麼它幾乎有100%的機會成爲事故,並且它不會幫助你擁有這些重量。 –

+1

如果您的模型達到了改進的地步,那麼您應該嘗試使用超參數來獲得更好的結果。嘗試降低學習率。 –

+0

@GuilhermedeLazari謝謝,如果在訓練準確度低於驗證準確度的情況下存在一致的差異,那麼排除突然激增,這是否表明過度擬合?如果訓練準確性爲.65且驗證準確性爲.85,這是否表明經過充分訓練的模型的驗證準確性如此之高,儘管訓練準確性爲.65? –

回答

1

是的,你可以管理使用Keras的回調API來保存你的模型。您必須創建callback類並實現功能on_epoch_end()根據所需條件保存模型。 我認爲最好的選擇是檢查ModelCheckpoint的執行情況。你可以在doc