簡體   English   中英

Keras 中的“model.trainable = False”是什么意思?

[英]What does “model.trainable = False” mean in Keras?

我想凍結 Keras 中的預訓練網絡。 我在文檔中找到base.trainable = False 但我不明白它是如何工作的。 使用len(model.trainable_weights)我發現我有 30 個可訓練的權重。 這個怎么可能? 該網絡顯示總可訓練參數:16,812,353。 冷凍后,我有 4 個可訓練的重量。 也許我不明白參數和重量之間的區別。 不幸的是,我是深度學習的初學者。 也許有人可以幫助我。

默認情況下,Keras Model是可訓練的 - 您有兩種凍結所有權重的方法:

  1. model.trainable = False編譯 model 之前
  2. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM