首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我是否必须重新编译我的Gan每一批,以防止歧视者学习?

我是否必须重新编译我的Gan每一批,以防止歧视者学习?
EN

Stack Overflow用户
提问于 2019-01-05 14:25:58
回答 1查看 812关注 0票数 2

我有一个像这样的男人

代码语言:javascript
复制
generator = Model(g_in, g_out)
generator.compile(...)

discriminator = Model(d_in, d_out)
discriminator.trainable = True
discriminator.compile(..)

discriminator.trainable = False

gan = Model(inputs=.., outputs=..)
gan.compile(..)

#iterate over epochs and batches, without compiling

它学习并提供可接受的输出。然而,我得到了警告:

Keras\engine\training.py:490: UserWarning:可训练重量和可训练重量之间的差异,你是否在没有调用model.compile的情况下设置了model.trainable?‘可训练的重量和可训练的之间的差异’

如果我每批重新编译鉴别器和gan,警告就会消失,但是一次迭代所需的时间要长得多,训练速度也要慢一些。

代码语言:javascript
复制
for epoch:
  for batch:

    fakes=generator.predict_on_batch(batch)

    discriminator.trainable = True
    discriminator.compile(..)

    discriminator.train_on_batch(batch, ..)
    discriminator.train_on_batch(fakes, ..)

    discriminator.trainable = False
    discriminator.compile(..)
    gan.compile(..)

    gan.train_on_batch(batch,..)

哪一个是对的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-05 14:58:33

这是预期的,没有必要重新编译每一批。Keras在这方面有一个公开的错误:https://github.com/keras-team/keras/issues/8585

那里的答复有一些如何传递警告的例子,我不打算在这里重复。还有一个回答,它给出了一个很好的建议,如果你对模型的细节不确定的话,如何验证你真的在训练你应该训练的东西:https://github.com/keras-team/keras/issues/8585#issuecomment-385729276

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54052953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档