Keras GAN Batch Training - PullRequest
       9

Keras GAN Batch Training

0 голосов
/ 27 июня 2018

Я ознакомился с некоторыми кодами / учебными пособиями (учебник: 1 и 2 ) для реализации GAN в Keras.

Оба проводят периодическое обучение следующим образом:

for epoch in range(epochs):
    # ---------------------
    # Train Discriminator
    # ---------------------
    # Select a random batch of images

    # Generate a batch of new images

    # Train the discriminator

    # ---------------------
    # Train Generator
    # ---------------------

В приведенном выше коде (взятом из строки 92 в (2)) они проходят по всем эпохам, но затем для каждой эпохи тренируются только в одной партии. Как я понимаю, для каждой эпохи мы должны тренироваться по многим партиям; так что мы пройдем весь набор данных. Например, если у нас есть 100 выборок и размер партии 10, то для каждой эпохи мы обучаемся 10 партиям размером 10. Почему в этом коде они обучаются только по одной партии для каждой эпохи? Извините, если это основной вопрос; Я совершенно новичок в машинном обучении.

1 Ответ

0 голосов
/ 27 июня 2018

Когда вы выполняете GAN, есть несколько вещей, которые отличаются от обычного обучения нейронной сети.

  1. Ваши входные данные меняются со временем. Искусственные изображения из сети генератора меняются при каждом обновлении весов в сети.
  2. Вы должны тренировать обе сети одновременно. Нет смысла тренировать дискриминатор для большого количества данных, если вы затем обновите генератор. Потому что это меняет распределение данных, из которого учится дискриминатор. По этой причине вы можете часто обновлять обе сети. Поэтому может быть предпочтительным делать обновления обеих сетей в каждом пакете.

Я не знаю, почему они называют это обновление эпохой, я думаю, вы могли не согласиться с именами. Но помните, что эпоха и партия имеют значение, когда данные обучения фиксированы. В данном случае это не так, поэтому, возможно, они просто называют это эпохой, потому что им не хватает лучшего слова.

...