Это действительно странная ошибка. Окружающая среда: 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? Все дорого стоит.