Tensorflow сообщил об ошибке CUDA_ERROR_ILLEGAL_ADDRESS во время тренировки yolo - PullRequest
0 голосов
/ 20 марта 2020

Это действительно странная ошибка. Окружающая среда: tf 1.12 + cuda9.0 + cudnn 7.5 + single RTX 2080

Сегодня я попытался обучить сеть YOLO V3 на своем новом устройстве. Размер партии равен 4. В начале все шло хорошо, тренировки начинались как обычно, и я мог видеть снижение потерь в процессе обучения.

Но около 35 раундов он сообщил об этом:

2020-03-20 13: 52: 01.404576: E tenorflow / stream_executor / cuda / cuda_event. cc: 48] Опрос ошибок для состояния события: не удалось запросить событие: CUDA_ERROR_ILLEGAL_ADDRESS: обнаружен недопустимый доступ к памяти 2020-03-20 13: 52: 01.404908: F тензор потока / core / common_runtime / gpu / gpu_event_mgr. cc: 274] Неожиданное состояние события : 1

и выход из поезда.

Я пробовал несколько раз. Это случилось случайно. Может быть, через 30 минут или несколько часов после начала тренировочного процесса.

Но если бы я изменил размер партии на 2. Он мог бы успешно тренироваться.

Так почему это произошло? Если моя среда не подходит или не подходит для RTX 2080, эта ошибка должна возникать в начале движения поезда, но в середине. Слои в моей сети Yolo были все обучаемы в начале, поэтому в процессе обучения ничего не изменилось. Почему он мог правильно тренироваться в первом раунде, но потерпел неудачу в середине? Почему меньший размер партии может успешно тренироваться?

А что мне теперь делать? Я могу подумать, что есть следующие решения: 1: Скомпилируйте tf 1.12 в cuda 10 + cudnn 7.5 и попробуйте снова. 2: Может быть, обновить tenorflow и cuda? Все дорого стоит.

...