我想在Keras培訓GAN。我的最終目標是BEGAN,但我從最簡單的一個開始。瞭解如何正確凍結重量是必要的,這就是我所苦苦掙扎的。如何在Keras中編譯模型後動態凍結權重?
在生成器訓練時間期間,鑑別器權重可能不會更新。我想凍結和解凍鑑別交替爲訓練發生器和鑑別器。問題是,設置可訓練的參數爲false,鑑別器模型或甚至在其'權重不停止模型來訓練(和權重更新)。另一方面,當我在將可訓練設置爲False之後編譯模型時,權重變爲unfreezable。我無法在每次迭代後編譯模型,因爲這否定了整個訓練的想法。
由於這個問題,似乎很多Keras的實現都被竊聽,或者他們的工作是因爲舊版本中的一些非直觀的技巧或某事。
'tf.stop_gradient'正在阻止漸變流動,這不是我想要實現的。我想爲梯度計算梯度流量和計算梯度,但不執行更新操作。 –
然後,您可能會更好地將要更新的變量列表明確傳遞給tensorflow更新操作,而不是始終凍結/解凍加權。 –
你說得對,但它是Tensorflow解決方案,Keras不允許這樣做。你有一個模型抽象,你主要有'fit'和'train_on_batch'方法,就這些。如果在純Keras中沒有解決方案,那麼我將切換到Tensorflow。 –