In the GAN example of the documentation, did we update D several times before updating G?

Hi,
In the following example of GAN for the deep learning toolbox ( https://www.mathworks.com/help/deeplearning/examples/train-generative-adversarial-network.html ), did we update Discriminator D several times before updating the generator G?
As per the GAN algorithm (say the original paper of Goodfellow 2014), we would update D k-times before updating G.
But I don't think the value of k is mentioned in the example. It looks like D and G are updated together in every loops.
The relevant codes:
% Update the discriminator network parameters.
[dlnetDiscriminator.Learnables,trailingAvgDiscriminator,trailingAvgSqDiscriminator] = ...
adamupdate(dlnetDiscriminator.Learnables, gradientsDiscriminator, ...
trailingAvgDiscriminator, trailingAvgSqDiscriminator, iteration, ...
learnRateDiscriminator, gradientDecayFactor, squaredGradientDecayFactor);
% Update the generator network parameters.
[dlnetGenerator.Learnables,trailingAvgGenerator,trailingAvgSqGenerator] = ...
adamupdate(dlnetGenerator.Learnables, gradientsGenerator, ...
trailingAvgGenerator, trailingAvgSqGenerator, iteration, ...
learnRateGenerator, gradientDecayFactor, squaredGradientDecayFactor);
Thanks!

回答 (1 件)

Sourav Bairagya
Sourav Bairagya 2020 年 1 月 10 日

0 投票

GANs can be trained in many fashions. Here, discriminator, D is updated once before updating generator, G. Hence, first, discriminator, D is updated and then the generator, G is updated in every iteration.

1 件のコメント

SC
SC 2020 年 4 月 11 日
So, to follow the original training fashion (i.e. update (D k-times and G 1-time) n times), we need to add one more inner loop to achieve that?

サインインしてコメントする。

カテゴリ

製品

リリース

R2019b

質問済み:

SC
2019 年 11 月 6 日

コメント済み:

SC
2020 年 4 月 11 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by