Потери генератора DCGAN застряли на 0,7 после 5 эпох
После игры с учебником 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
Где я номер текущей партии, 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.