Tensorflow GAN中的冻结鉴别器层
我正试图在Keras中实现一个新的应用程序,但我相信这个问题更普遍地与GANs和冻结层有关 据我所知,我需要三种型号:Tensorflow GAN中的冻结鉴别器层,tensorflow,keras,neural-network,generative-adversarial-network,Tensorflow,Keras,Neural Network,Generative Adversarial Network,我正试图在Keras中实现一个新的应用程序,但我相信这个问题更普遍地与GANs和冻结层有关 据我所知,我需要三种型号: 细化器,用于处理合成图像以使其更逼真。(在其他GAN架构中,这可能是接受随机噪声的发生器。) 鉴别器,用于处理图像并将其分类为合成图像或真实图像 一种组合模型,将合成图像通过细化器,然后将细化后的图像送入鉴别器 在组合模型中,我们希望将鉴别器层冻结,以便在训练组合模型时,只更新细化器层 另外,我们只训练鉴别器模型,其中显然不应冻结层。鉴别器模型和组合模型的层应共享权重,以便两者
细化器模型=制作细化器模型(输入形状=(img\u高度、img\u宽度、img\u通道))
鉴别器模型=生成鉴别器模型(输入形状=细化器模型。输出形状[1:])
#创建具有冻结鉴别器层的组合模型
合成\u图像\u张量=层。输入(细化器\u模型。输入\u形状[1:])
细化器模型输出=细化器模型(合成图像张量)
组合输出=鉴别器模型(澄清器模型输出)
组合_模型=模型。模型(
输入=合成图像张量,
输出=[refiner\u model\u output,combined\u output],
name='combined'
)
如何冻结组合模型中的鉴别器层,而不冻结仅鉴别器模型中的鉴别器层
委员会明确建议如下:
refiner\u model.compile(…)
鉴别器_model.compile(…)
鉴别器_model.trainable=错误
组合_model.compile(…)
但是当我打印出discriminator\u model.summary()
时,参数的数量增加了一倍
Total params: 151,812
Trainable params: 75,906
Non-trainable params: 75,906
然后我会得到,并最终失败。我相信.compile()->.trainable->.summary()
会给出不正确的结果,所以这有点危险。我相信.compile()->.trainable->.summary()
会给出不正确的结果,所以这有点危险。