猿问

Keras“可训练”范围

我有两个 Keras 网络。为了便于说明,假设我的模型类似于 GAN。所以,我们有一个鉴别器(D)和一个生成器(G)。显然,为了训练(G),(D)层应该被冻结。如果,我使用冻结它们,D.trainable = False那么我应该在训练 (D) 时反转此参数吗?

model.trainableKeras的范围是什么?我见过只改变这个参数状态一次的代码:https : //github.com/nairouz/Keras-GAN/blob/master/gan/gan.py

怎么可能呢?有什么解释吗?


慕神8447489
浏览 147回答 1
1回答

猛跑小猪

从我如何“冻结”Keras 层?:此外,您可以将层的可训练属性设置为实例化True或False实例化之后。要使其生效,您需要compile()在修改可训练属性后调用您的模型。这同样适用于模型。这意味着当您设置 时D.trainable = False,这在您编译D(或任何其他利用 的模型D)之前不会生效,因此它不会影响您之前编译的模型。
随时随地看视频慕课网APP

相关分类

Python
我要回答