Потери генератора DCGAN застряли на 0,7 после 5 эпох - PullRequest
0 голосов
/ 20 января 2019

После игры с учебником по PyTorch DCGAN Faces я начал работать с собственным набором данных, который состоит из изображений размером 1x32x32 (канал, высота, ширина).

Теперь я применил большинство вещей из этого хранилища: https://github.com/soumith/ganhacks

Но сейчас я застрял.

Я привел этот аргумент, чтобы выбрать, тренировать ли генератор (G) или дискриминатор (D).

    if i > 1:
        if D_G_z1 < 0.5:
            train_G = True
            train_D = False
        else:
            train_D = True
            train_G = False

Где i - номер текущей партии, train_D и train_G установлены в True для партии первой. D_G_z1 - это D (G (x)).

Я ожидаю, что после обучения D и D (G (x)) = 0,5 D прекратит обучение, а G начнет тренировку, чтобы улучшить реализм генерируемых изображений и т. Д. Теперь D и G тренируются, когда условия соблюдены.

Однако потеря G застряла на 0,7 после 5 эпох и, похоже, не изменилась с 1k эпох (я не пробовал больше). Изменение скорости обучения для G, или сделать G более / менее сложным, изменяя количество каналов на слой ConvTranspose2d, также не помогает.

Какой сейчас лучший подход? Любой совет будет принят во внимание.

Код находится здесь: https://github.com/deKeijzer/SRON-DCGAN/blob/master/notebooks/ExoGAN_v1.ipynb

TLDR: потеря генератора застряла на 0,7, больше не меняется. Он также не «выучил» хорошее представление о X.

...