Это похоже на Как очистить память Cuda в PyTorch .
Я продолжаю выводить ошибку CUDA из памяти, хотя я использовал torch.cuda.empty_cache()
в качестве первой строки мой код, после всех команд import
. Кроме того, эта ошибка довольно случайна, и я вижу много людей, сталкивающихся с этой ошибкой на других форумах. Разве нет постоянного решения этой проблемы?
Я также делаю with torch.no_grad()
во время оценки. Но это не имеет значения, так как мой код должен начать обучение, по крайней мере. Что это не так. Я явно перезагружал ядро несколько раз и очищал кеш, как упоминалось ранее. Этот процесс в идеале должен очищать любые сохраненные тензоры в памяти графического процессора.
Ошибка:
RuntimeError: CUDA out of memory. Tried to allocate 144.00 MiB (GPU 0; 11.00 GiB total capacity; 3.99 GiB already allocated; 93.40 MiB free; 4.04 GiB reserved in total by PyTorch)
После нескольких попыток перезапуска ядра и очистки кэша, Я вставил print(torch.cuda.is_available())
до начала тренировки. Это волшебно сработало! Хотя я не вижу никакой логики c за ней.