我在Ubuntu 16.04使用Keras 2.0.8與Tensorflow 1.3.0在CUDA 8.0和cuDNN 6.Keras BatchNormalization總體參數更新,而在tensorflow
我使用兩個BatchNormalization層(keras層)訓練在我的模型和培訓中使用tensorflow管道。我在這裏面臨兩個問題
-
- BatchNorm層總體參數(均值和方差)的未更新在訓練甚至設置K.learning_phase後到真。結果,推論完全失敗。我需要一些關於如何在人工培訓步驟之間更新這些參數的建議。
- 其次,後節約使用tensorflow 保護運算訓練的模型,當我嘗試負載吧,結果不能被複制。看起來的重量正在變化。有沒有辦法在保存加載操作中保持重量相同?
我從來沒有聽說過類似的問題。在訓練時,請檢查您是否已將該圖層設置爲可學習。關於第二個問題,加載模型後權重不能改變。 –
將K.learning_phase()設置爲True,其中K是後端,應該設置可學習的圖層。 如果您確定重量保持不變,您能否提出一個可能的原因,以便在加載模型後無法重現結果? –
你觀察到了多少變化?如果它很小,請嘗試設置一個隨機種子。否則,我不能說。另外,爲什麼不使用'learningLearning_phase()''trainable = True'參數來使圖層學習? –