0

我正在使用 Keras 对 GAN 进行建模,由于我有两个输出,因此我需要结合两个损失。一个输出来自 Discriminator,在下面的代码中表示为“label”,另一个来自 Generator,表示为“Bloss”。那么是否可以分别用 G 和 D 的两个输出来训练 GAN(组合生成器和判别器)的组合模型?

    input = Input(shape=self.input_shape)
    output_G, Bloss = self.G(input)

    # For the combined model we will only train the generator
    self.D.trainable = False

    label = self.D(output_G)

    self.combined = Model(inputs=input,
                          outputs=[label, Bloss])
    self.combined.compile(loss=['categorical_crossentropy', B_loss],
                          optimizer='RMSprop',
                          loss_weights=[1,0.01])
...
def B_loss(y_true, y_pred):
    return K.mean(y_pred - y_true, axis=-1)
4

1 回答 1

0

我不明白为什么不这样做,只要您创建一个适当的 y 结合标签(D 输出)和 Bloss(部分 G 输出)。

于 2018-10-27T22:03:32.723 回答