[英]What does “model.trainable = False” mean in Keras?
我想凍結 Keras 中的預訓練網絡。 我在文檔中找到base.trainable = False
。 但我不明白它是如何工作的。 使用len(model.trainable_weights)
我發現我有 30 個可訓練的權重。 這個怎么可能? 該網絡顯示總可訓練參數:16,812,353。 冷凍后,我有 4 個可訓練的重量。 也許我不明白參數和重量之間的區別。 不幸的是,我是深度學習的初學者。 也許有人可以幫助我。
默認情況下,Keras Model
是可訓練的 - 您有兩種凍結所有權重的方法:
model.trainable = False
在編譯 model 之前for layer in model.layers: layer.trainable = False
- 在編譯之前和之后工作 (1) 必須在編譯前完成,因為 Keras 在編譯時將model.trainable
視為 boolean 標志,並在后台執行 (2)。 完成上述任一操作后,您應該會看到:
print(model.trainable_weights)
# []
關於文檔,可能已過時 - 請參閱上面的鏈接源代碼,最新。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.