我有两个Keras网络 . 让我们说为了解释我的模型类似于GAN . 所以,我们有一个鉴别器(D)和一个发生器(G) . 显然,为了训练(G),应该冻结(D)层 . 如果,我使用 D.trainable = False
冻结它们,那么我应该在训练(D)时反转这个参数吗?
在Keras中 model.trainable
的范围是什么?我见过只改变一次参数状态的代码:https://github.com/nairouz/Keras-GAN/blob/master/gan/gan.py
怎么可能这样做?任何解释?
1 回答
从How can I "freeze" Keras layers?:
这同样适用于模型 . 这意味着当您设置
D.trainable = False
时,在编译D
(或利用D
的任何其他模型)之前,这不会生效,因此它不会影响您之前编译的模型 .