Итак, я прохожу этот учебник GAN, и автор устанавливает discriminator
следующим образом:
model_discriminator = Sequential()
model_discriminator.add(net_discriminator)
, где net_discriminator
- другая Sequential
модель..
Затем он настраивает модель adversarial
следующим образом:
model_adversarial = Sequential()
model_adversarial.add(net_generator)
# Disable layers in discriminator
for layer in net_discriminator.layers:
layer.trainable = False
model_adversarial.add(net_discriminator)
, где net_generator
- другая модель sequential
.
Обе модели обучаются вв то же время, используя train_on_batch
.
Что я не понимаю, так это то, как веса net_discriminator
части model_adversarial
обновляются при обучении model_discriminator
.Для меня это две отдельные сети, и обучение одной модели, содержащей слои net_discriminator
, не должно влиять на другую.Кроме того, слои заморожены в модели adversarial
, поэтому это не должно помешать их обучению?
Может ли кто-нибудь дать мне объяснение более низкого уровня, как это работает?Спасибо!