Вассерштейн ГАН критик обучения двусмысленности - PullRequest
0 голосов
/ 20 ноября 2018

Я использую GAN на основе DCGAN и экспериментирую с WGAN, но я немного озадачен тем, как обучить WGAN.

В официальной реализации Wasserstein GAN PyTorch считается, что дискриминатор / критик обучается Diters (обычно 5) раз за каждое обучение генератора.

Означает ли это, что критик / дискриминатор тренируется в Diters партиях или всего набора данных Diters раз?Если я не ошибаюсь, официальная реализация предполагает, что дискриминатор / критик обучен на весь набор данных Diters раз, но другие реализации WGAN (в PyTorch и TensorFlow и т. Д.) Делают обратное.

Что правильно? Бумага WGAN (для меня, по крайней мере) указывает, что это Diters партий .Обучение на всем наборе данных, очевидно, на несколько порядков медленнее.

Заранее спасибо!

1 Ответ

0 голосов
/ 21 ноября 2018

Правильно считать итерацию партией.В оригинальной бумаге для каждой итерации критика / дискриминатора они отбирают партию размером m реальных данных и партию размером m предыдущих выборок p(z) для ее обработки.,После того, как критик обучен в течение Diters итераций, он обучает генератор, который также начинает с выборки партии предыдущих образцов p(z).Поэтому каждая итерация работает с партией.

В официальной реализации это также происходит.Что может сбить с толку, так это то, что они используют имя переменной niter для представления количества эпох для обучения модели.Хотя они используют другую схему для установки Diters в строках 162 -166:

# train the discriminator Diters times
    if gen_iterations < 25 or gen_iterations % 500 == 0:
        Diters = 100
    else:
        Diters = opt.Diters

, они, как и в статье, обучают критику Diters партиям.

...