我正在使用Tensorflow创建一个GAN . 我决定使用Keras制作Generator和Discriminator,因为层变得复杂(因为在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的编译和拟合功能,因为在训练时,Generator和Discriminator太相互依赖 .
如上所示,我如何训练我的keras?
1 回答
This article will help.基本上,您只需要将您的Keras会话设置为与Tensorflow相同 .