Мой вопрос связан с этим. Я работаю над реализацией метода, описанного в статье https://drive.google.com/file/d/1s-qs-ivo_fJD9BU_tM5RY8Hv-opK4Z-H/view. Последний алгоритм, который нужно использовать ...

1
Adrien 9 Янв 2021 в 16:56

1 ответ

Лучший ответ

Это своего рода стандартная проблема NaN в обучении, я предлагаю вам прочитать этот ответ о проблеме NaN с Адамом решателем для поиска причины и решения в общем случае.

В основном я сделал следующие два изменения и код работал без NaN в градиентах:

  1. Уменьшите скорость обучения в оптимизаторе с model.compile до optimizer=tf.keras.optimizers.Adam(learning_rate=1e-3),

  2. Замените C = [loss(label,pred) for label, pred in zip(yBatchTrain,dumbModel(dataNoised,training=False))] на C = loss(yBatchTrain,dumbModel(dataNoised,training=False))

Если у вас все еще есть такая ошибка, вы можете попробовать следующее:

  1. Обрезайте потерю или градиент
  2. Переключить весь тензор с tf.float32 на tf.float64

В следующий раз, когда вы столкнетесь с такой ошибкой, вы можете использовать tf.debugging.check_numerics, чтобы найти основную причину NaN

1
Mr. For Example 10 Янв 2021 в 04:04