Я просматривал реализацию pix2pix
, приведенную в tensorflow-2
руководствах. Там я не могу понять две вещи:
- Аргумент
training
в Generator
модели. Если он решает, следует ли изменять значения переменных при обратном распространении, то почему это True
, когда мы генерируем примеры во время тестирования. Учебное пособие включает в себя следующее объяснение об этом
Примечание. Тренировка = True здесь является преднамеренной, поскольку мы хотим получить статистику партии при выполнении модели в наборе тестовых данных. Если мы используем training = False, мы получим накопленную статистику, полученную из набора обучающих данных (который нам не нужен)
О какой статистике партии идет речь? это про слой BatchNorm? Если да, то почему мы не хотим, чтобы среднее значение и дисперсия учились на тренировках?
Я не могу понять, почему
log(2)=0.69
является мерой, чтобы увидеть обучение дискриминатора. Учебное пособие предоставило следующее объяснение
Значение log (2) = 0,69 является хорошим ориентиром для этих потерь, поскольку оно указывает на недоумение 2: что дискриминатор в среднем одинаково неопределен о двух вариантах.
Для значения disc_loss ниже 0,69 означает, что дискриминатор работает лучше, чем случайный, на объединенном наборе реальных + сгенерированных изображений.
Для gen_gan_loss значение ниже 0,69 означает, что генератор, работающий лучше, чем случайный, обманывает описатель.
Похоже, что объяснение имеет смысл для потери Generator's GAN
, но не должно ли это быть 2*log(2)
для Discriminator
, поскольку мы добавляем два такие условия для расчета это потеря. Я погуглил эти вопросы, а также увидел Keras
документов для выпуска 1
, но я не могу найти свои ответы. Любая помощь будет оценена!