我想构建一个带张量流的条件GAN,并使用输入pipline来加载我的数据集。问题是在每次迭代中我都希望使用相同的数据批来训练生成模型和判别模型,但是因为他们的训练操作符在不同的运行中获取,所以它们将接收不同批次的数据。有没有解决方案或者我应该使用feed_dict吗?
答案 0 :(得分:0)
使用相同数据的一种方法是在生成器和鉴别器训练操作中使用tf.group
,以便联合训练它们,并在优化器上设置use_locking=True
以防止病态的竞争条件。请注意,由于TensorFlow运行时不能保证始终首先训练生成器或鉴别器,因此仍然存在一些随机性。
这个想法已经在get_joint_train_hooks
中的TensorFlow的TFGAN库中实现了,虽然它使用钩子而不是对训练操作进行分组("联合"指的是鉴别器这一事实和发电机是联合培训的,而不是顺序培训的。