我在CPU上運行一個簡單的帶有TensorFlow的卷積神經網絡,使用Python/Numpy從磁盤加載數據並進行準備。 Python/Numpy部分消耗的內存非常少,因爲我只加載了32個1MB圖像。內存高效的設計技巧TensorFlow NN
但是,在運行sess.run(AdamOptimizer)
內存使用率達到天文數字峯值時,可以看到在memory_profiler以下輸出,顯示了4個訓練週期和一個測試周期。
12GB峯值限制了我批量的大小,同時訓練網絡的數量或我的圖層大小。我相信這個峯值與從Python到TF或者正向激活的數據傳輸有關,因爲它在sess.run(accuracy)
聲明中等同存在。
我可能設計得不好CNN圖嗎?有人可以指出我應該記住的設計規則,特別是內存?有可能及時塗抹這個嗎? - 如果12GB峯值增長了兩倍並且是一半的話,這將是一個進步。最後是否有一種方法可以表示峯值開始和結束時間,以便我可以管理多個網絡來進行隔行掃描? (請注意,在單個sess.run()
聲明中發生的縮小的2秒鐘峯值大約需要20秒)