【问题标题】:Using tensorflow input pipline with GAN使用带有 GAN 的 tensorflow 输入管道
【发布时间】:2017-12-07 14:08:19
【问题描述】:

我想用 tensorflow 构建一个条件 GAN,并使用输入管道来加载我的数据集。问题是,在每次迭代中,我想使用相同的数据批次来训练生成模型和判别模型,但是由于它们的训练操作符是在不同的运行中获取的,因此它们将接收到不同批次的数据。有什么解决方案或者我应该使用 feed_dict 吗?

【问题讨论】:

  • 您可以尝试将 G 和 D 的输出放在一次运行中,以便它们的输入相同吗?使用 feed_dict 是一种选择,但它可能会因为数据复制而变慢。

标签: tensorflow


【解决方案1】:

使用相同数据的一种方法是在生成器和判别器训练操作上使用tf.group,以便联合训练它们,并在优化器上设置use_locking=True 以防止病态竞争条件。请注意,由于 TensorFlow 运行时无法保证始终首先训练生成器或判别器,因此仍然存在一些随机性。

这个想法已经在 TensorFlow 的 TFGAN 库get_joint_train_hooks 中实现,尽管它使用钩子而不是对训练操作进行分组(“联合”指的是鉴别器和生成器是联合训练的,而不是顺序训练的)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-29
    • 2018-08-11
    • 2017-08-18
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多