Тренировка l oop для WGAN, возвращающей нулевые потери в нашем пользовательском наборе данных - PullRequest
0 голосов
/ 03 марта 2020

В настоящее время я обучаю WGAN для пользовательской базы данных, получая полезные результаты с MNIST, мы пытались работать с нашими собственными изображениями. В настоящее время я использую точно такой же код. (Тренируйте дискриминатор n раз, затем генератор). Рассчитать потери et c et c. Я сделал только изменение чисел c для генератора из-за заполнения. )

Исходный код, который был запущен, был

for epoch in range(epochs):
        start = time.time()
        disc_loss = 0
        gen_loss = 0

        for images in train_dataset:
            disc_loss += train_discriminator(images)

            if disc_optimizer.iterations.numpy() % n_critic == 0:
                gen_loss += train_generator()

        print('Time for epoch {} is {} sec - gen_loss = {}, disc_loss = {}'.format(epoch + 1, time.time() - start, gen_loss / batch_size, disc_loss / (batch_size*n_critic)))

        if epoch % save_interval == 0:
            save_imgs(epoch, generator, seed)

Из-за ошибок с ожидаемым измерением, когда я запускаю его с нашими numpies

Expected ndim=4, got ndim=3

Указывая на обучение нашего дискриминатора , Я решил эти ошибки, внеся следующие изменения:

for images in train_dataset:
            images=np.expand_dims(images, axis=0)
            images=images/255.
            #images=images.resize
            disc_loss += train_discriminator(images)

Это решило проблему с началом процесса обучения, но я заметил несколько других проблем.

Во-первых, значения потерь после первого Эпоха, которую мы установили на 0, и фактические сгенерированные изображения, никогда не менялись после первого раза, когда я их отображал. Последним вопросом было то, что время тренировок казалось слишком быстрым. Эпоха 2 не может быть обучена за 0,0002 секунды и т. Д.

Time for epoch 1 is 613.6920039653778 sec - gen_loss = -0.7189221382141113, disc_loss = -1.3103094100952148
Time for epoch 2 is 0.00022411346435546875 sec - gen_loss = 0, disc_loss = 0

Кто-нибудь еще сталкивался с чем-то подобным или есть ошибка oop, которую я не могу уловить?

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