【问题标题】:When training a GAN, should dropout be disabled in discriminator when training is disabled?在训练 GAN 时,是否应该在禁用训练时禁用判别器中的 dropout?
【发布时间】:2020-08-11 09:37:47
【问题描述】:

我正在 keras 中做一个基本的 GAN 实现。训练是分阶段进行的,首先单独训练判别器,然后将生成器训练为组合模型(生成器加判别器)的一部分,同时禁用判别器的训练。如果鉴别器中有辍学,在我看来,在通过组合模型训练生成器时应该禁用它。这是真的?如果是这样,如何在 keras 中完成?我了解设置 trainable=false 不会禁用 dropout。

【问题讨论】:

    标签: tensorflow keras generative-adversarial-network


    【解决方案1】:

    你是对的,在训练判别器或任何测试阶段都应该禁用生成器的 dropout。好消息是 keras 默认会这样做link

    因此,看看您的场景,您可以使用 trainable 标志调用生成器的预测函数,并使用它作为输入来训练鉴别器。

    希望能回答你的问题。

    【讨论】:

    • 组合模型有生成器馈送判别器,但判别器没有训练(生成器是)。我想你是说为鉴别器设置 trainable=False 会禁用它的 dropout 吗?我可以看到代码,但我对可训练标志是否流向 dropout 层含糊不清。
    • 感谢您指出我的错误。我已经更新了我的答案。对于参考,github.com/keras-team/keras/blob/master/keras/layers/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    • 2020-03-06
    • 1970-01-01
    • 2020-11-18
    • 2018-07-23
    • 2018-09-17
    • 2019-05-10
    相关资源
    最近更新 更多