tensorflow中的tensorboard可視化中的準確率損失率曲線,為什麼有類似毛刺一樣?


你所遇到的問題是因為使用了 Mini Batch update 的形式, 因為小批數據不能完整展示出整大批數據的分布, 也就是不能概括全部數據.當訓練了 Batch A 時 loss 可能會大幅降低, 但是訓練 Batch B 時, loss 又上來了. 這就是典型的 "類似毛刺一樣" 的曲線.

比如可以看到我有在這個教程 (莫煩 Python) 中製作的 Mini-batch train 和不同優化器的比較, 圖像是這樣的:

這也就是由 Mini batch 產生的 Oscillation 震蕩效果. 如果你的誤差曲線還是在逐漸下降的, 那就說明還是在學習的.


正常,因為你看到的是每個mini-batch訓練得到的損失,模型在訓練過程中,數個epoch內的mini-batch的train loss是會出現震蕩的,除非數據的線性可分很高,模型的訓練迅速收斂。通過改變smooth rate,可以看到更平穩的趨勢或者更貼近實際訓練情況的train loss。


這個是正常的啦~之所以因為有毛刺,那是因為每個batch的數據都不同啊,所以每次都會有loss震蕩。我們看的是總體趨勢,如果是下降的,那麼就是正確的啦~


左邊側欄有個smooth調整


很好理解,不是框架的問題,你用caffe或者別的框架訓練分類或者檢測模型都會遇到loss起伏,本身樣本差異大,當前迭代次數的模型可能對接下來的樣本無法區分。只要曲線整體是下降的就正常


推薦閱讀:

Tensorflow 中怎麼定義自己的層呢?
怎樣使用tensorflow導入已經下載好的mnist數據集?
Google I/O 2017 上有哪些關於 TensorFlow 的前沿應用和分享?
anaconda安裝tensorflow,在import tensorflow時報錯,要怎麼解決?
求通俗講解下tensorflow的embedding_lookup介面的意思?

TAG:機器學習 | 深度學習DeepLearning | TensorFlow |