1

使用TensorFlow我已經構建了一個簡單的CNN進行分類。它具有以下定義:ConvNet:驗證丟失不是強烈減少,但準確性在提高

Input Tensor : 32,32,1 Grayscale Image 
1 Conv Layer 3x3x32 
Relu Activated 
2x2 Max Pooled 
128 FC1 
43 FC2 # 43 classes 

的完整代碼可以在此notebook on github

validation lossaccuracyEpochs 發現,,是

epoch 100 validation loss 3.67, validation accuracy 12.05% 
epoch 1000 validation loss 3.234, validation accuracy 57.63% 
epoch 2750 validation loss 3.111, validation accuracy 69.25% 

除非我誤解了網絡,或者在某處出現了錯誤在學習。然而,驗證損失只是輕微下降。

這是什麼意思?我如何使用這些信息來改善網絡?

回答

1

這是TensorFlow中的一個經典錯誤:您不應該在您的輸出中應用softmax,然後tf.nn.softmax_cross_entropy_with_logits

操作tf.nn.softmax_cross_entropy_with_logits需要未經過比例的logits(即沒有softmax)。來自documentation

警告:由於此操作在內部爲了效率而在內部執行softmax,因此需要使用未縮放的logits。不要用softmax的輸出調用此操作,因爲它會產生不正確的結果。

+0

有趣的是,我曾閱讀過!非常感謝,現在效果很好! –

+0

哈哈第一件事我檢查人們在TensorFlow有什麼奇怪的損失 –

相關問題