Я установил tensorflow 1.15.3
с Cuda 10.0
(для графического процессора Quadro T2000 с памятью 4G) и обучаю модель Yolo v3.
Он обнаружен, если изначально небольшой размер партии (например, batch_size=8
) и большинство слоев было заморожено, обучение будет go плавно. Но если бы я попробовал что-то сложное, например разморозить все слои (что привело к значительному увеличению обучаемых параметров), обучение не удалось бы из-за ошибки Resource exhausted: OOM when allocating tensor with shape .... and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc
. Это имеет смысл из-за емкости моего графического процессора (проверьте nvidia-smi
):
But after the OOM error, when I went back to the original network settings for which the model had been trained successfully, an error would occur:
Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above
.
In many cases, the error is due to the mismatch between tensorflow, cuda and cudnn (as discussed at https://github.com/tensorflow/tensorflow/issues/24828; Tensorflow OOM на GPU Не удалось получить алгоритм свертки. Вероятно, это потому, что cuDNN не удалось инициализировать, ). Однако это вряд ли может быть причиной обнаруженной мной ошибки, поскольку первоначальное обучение подтвердило отсутствие такой проблемы несоответствия.
Я попытался перезапустить раздел обучения, закрыв все команды windows и перезапустив IDE (Я использовал spyder
), но проблема cudnn failed to initialize
сохраняется.
Я хочу выяснить, что стоит за ошибкой. Приветствуются любые предложения по устранению проблемы.
Обновление: если я начну обучать отдельную модель глубокого обучения, обучение будет работать нормально, и после этого снова, когда я вернусь к исходной модели, нет длиннее cudnn failed to initialize
выпуск.