[英]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.