Это действительно странная ошибка.
Окружающая среда: tf 1.12 + cuda9.0 + cudnn 7.5 + одиночный RTX 2080
Сегодня я попытался обучить сеть YOLO V3 на своем новом устройстве. Размер пакета — 4. С самого начала все шло правильно, обучение началось как обычно, и я мог видеть снижение потерь в процессе обучения.
Но примерно на 35-м раунде он сообщил сообщение:
2020-03-20 13:52:01.404576: E tensorflow/stream_executor/cuda/cuda_event.cc:48] Ошибка опроса статуса события: не удалось запросить событие: CUDA_ERROR_ILLEGAL_ADDRESS: обнаружен незаконный доступ к памяти
2020-03-20 13:52:01.404908: F tensorflow/core/common_runtime/gpu/gpu_event_mgr.cc:274] Статус непредвиденного события: 1
и выход из процесса обучения.
Я пробовал несколько раз. Это произошло случайно. Может быть, через 30 минут или несколько часов после начала тренировочного процесса.
Но если бы я изменил размер пакета на 2, он мог бы успешно обучаться.
Так почему же это произошло? Если моя среда не подходит или не подходит для RTX 2080, эта ошибка должна произойти в самом начале хода поезда, но в середине. Вначале все слои в моей сети йоло можно было обучать, поэтому в процессе обучения ничего не менялось. Почему он мог правильно тренироваться в первом раунде, но провалиться в середине? Почему меньший размер партии может успешно обучать?
И что мне теперь делать? Я могу придумать следующие решения:
1: Скомпилировать tf 1.12 в cuda 10 + cudnn 7.5 и попробовать еще раз.
2: Может быть, обновить tensorflow и cuda?
Все это стоит дорого.