Почему я получаю значения NaN (потери) при обучении Wasserstein GAN со штрафом за градиент?

#python #keras #deep-learning #generative-adversarial-network

#python #keras #глубокое обучение #генеративная-состязательная-сеть

Вопрос:

Недавно я работал с GAN для генерации поддельных данных акселерометра для человеческой деятельности (т. Е. Набора данных mHealth).

Я попытался реализовать улучшенную технику обучения GAN (т. Е. Условный WGAN GP) отсюда. Я внес некоторые изменения в код в соответствии со своими данными. Моя цель — сгенерировать поддельные одномерные временные ряды из данных одного акселерометра размером (100,1) из входного вектора шума размером 100.

Однако, когда я запускаю код (процесс обучения), я получаю «Nan» как для потери дискриминатора, так и для потери генератора.

У кого-нибудь была такая же проблема, как эта? Почему возникает эта проблема и как решить эту проблему? Спасибо за вашу помощь!

Вот мой полный исходный код

 WARNING:tensorflow:Discrepancy between trainable weights and collected trainable weights, did you set `model.trainable` without calling `model.compile` after ?
0 [D loss: 8.756878] [G loss: -0.499155]
10 [D loss: 5.958789] [G loss: -0.488709]
20 [D loss: 4.041764] [G loss: -0.473811]
30 [D loss: 2.644764] [G loss: -0.463494]
40 [D loss: 2.244551] [G loss: -0.460721]
50 [D loss: nan] [G loss: nan]
60 [D loss: nan] [G loss: nan]
70 [D loss: nan] [G loss: nan]
80 [D loss: nan] [G loss: nan]
90 [D loss: nan] [G loss: nan]