Не могу понять аргумент 'training = True' в модели генератора pix2pix реализация тензорного потока-2 и интерпретация функции потерь - PullRequest
2 голосов
/ 06 января 2020

Я просматривал реализацию pix2pix, приведенную в tensorflow-2 руководствах. Там я не могу понять две вещи:

  1. Аргумент 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, но я не могу найти свои ответы. Любая помощь будет оценена!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...