我有两个 Keras 网络。为了便于说明,假设我的模型类似于 GAN。所以,我们有一个鉴别器(D)和一个生成器(G)。显然,为了训练(G),(D)层应该被冻结。如果,我使用冻结它们,D.trainable = False那么我应该在训练 (D) 时反转此参数吗?model.trainableKeras的范围是什么?我见过只改变这个参数状态一次的代码:https : //github.com/nairouz/Keras-GAN/blob/master/gan/gan.py怎么可能呢?有什么解释吗?
1 回答

猛跑小猪
TA贡献1858条经验 获得超8个赞
从我如何“冻结”Keras 层?:
此外,您可以将层的可训练属性设置为实例化
True
或False
实例化之后。要使其生效,您需要compile()
在修改可训练属性后调用您的模型。
这同样适用于模型。这意味着当您设置 时D.trainable = False
,这在您编译D
(或任何其他利用 的模型D
)之前不会生效,因此它不会影响您之前编译的模型。
添加回答
举报
0/150
提交
取消