例如,如果我想训练类似GAN的东西,鉴别器D部分将试图最小化交叉熵损失,并且发生器G部分将试图最大化交叉熵损失 .

GAN将噪声输入G,G输出为D,D输出为最终输出 . 对于GAN的单个输入,我希望D的权重随损失而更新,并且G的权重用他们自己的损失更新(这恰好是D的损失的负面) . 我希望这些更新一次性完成 . 我知道您可以在训练D之间交替,然后冻结D的训练以训练G.但是在这种情况下,您总是有一半的网络在不更新其权重的情况下运行 . 我希望能够运行一次网络,并根据自己的损失更新其不同部分 .

这在凯拉斯有可能吗?或者这甚至是一个合理的要求?

如果在Keras中不可能,如果它可以在tensorflow,甚至pytorch中完成,那也没关系 .