TF Keras NAN Потеря при использовании нескольких графических процессоров - PullRequest
2 голосов
/ 12 января 2020

Система:

Ubuntu 18.04 LTS

(2) Графические процессоры NVIDIA GTX 1080Ti 11 ГБ

Версия драйвера: 440.33.01

CUDA версия: 10.0

В настоящее время я использую Tensorflow 2.0 (Python) и библиотеку tf.keras для обучения CNN. Тем не менее, я сталкиваюсь с проблемой, когда пытаюсь обучить свою модель, позвонив по номеру model.fit(). После того, как я начинаю тренировку, потеря для первой эпохи нормальна для 1-2 шагов. Но после этого он внезапно становится NaN потерей. Если я пытаюсь остановить ядро, на котором выполняется обучающий скрипт, весь компьютер зависает.

Эта проблема только возникает при использовании нескольких графических процессоров. Код, который я использую, прекрасно работает на одном графическом процессоре. Я завернул весь свой код в область действия tf.distribute.MirroredStrategy, используя with strategy.scope():. Я загружаю свою сеть данными из tf.data.Dataset (хотя эта ошибка возникает независимо от данных, которые я использую для обучения).

Затем я выполнил несколько тестов:

1) Я попытался заменить данные в моем наборе данных случайными числами из распределения, но стиль потерь пошел к NaN.

2) Я также попытался подать numpy массивы непосредственно на .fit(), но это не решило проблему.

3) Я пытался использовать разные оптимизаторы (Adam, RMSprop, SGD), размеры пакетов (4, 8, 16, 32) и скорости обучения, но ни один из них не помог решить эту проблему.

4) Я поменял свою сеть на простой многоуровневый персептрон, но ошибка не исчезла.

Похоже, это не проблема OOM, поскольку данные относительно малы и работают watch -n0.1 nvidia-smi показывает, что использование памяти никогда не превышает 30% ни на одном из моих графических процессоров. Похоже, что в выводе консоли нет никаких предупреждений или ошибок, которые могли бы намекают на проблему.

Любая помощь приветствуется

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