繁体   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