Keras:同时训练网络中不同部分的不同部分

时间:2017-12-20 03:03:26

标签: tensorflow neural-network keras backpropagation pytorch

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

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

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

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

0 个答案:

没有答案