【发布时间】:2019-03-16 16:46:55
【问题描述】:
我正在使用 Tensorflow 创建一个 GAN。我决定使用 Keras 制作生成器和鉴别器,因为层变得复杂(因为在 Keras 中定义层更容易)。我在 Tensorflow 中有 GAN 的损失和训练代码,但我不知道如何使用它来训练 Keras 模型。
D_loss_real = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits=D_logit_real, labels=tf.ones_like(D_logit_real)))
D_loss_fake = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits=D_logit_fake, labels=tf.zeros_like(D_logit_fake)))
D_loss = D_loss_real + D_loss_fake
G_loss = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits=D_logit_fake, labels=tf.ones_like(D_logit_fake)))
D_solver = tf.train.AdamOptimizer().minimize(D_loss,var_list = ?)
G_solver = tf.train.AdamOptimizer().minimize(G_loss,var_list = ?)
我在 var_list 中传递了tf.Variables(使用 tf 制作时在 GAN 中使用)。但是,我不知道如何最小化 keras 模型,因为 keras 自己处理权重。
我无法使用 Keras 的 compile and fit 功能,因为 Generator 和 Discriminator 在训练时过于相互依赖。
如何训练我的 keras,如上所示?
【问题讨论】:
标签: python tensorflow machine-learning keras deep-learning