У меня есть код на основе pytorch, который выполняется на GPU из-за его многочисленных обращений к CUDA, код предназначен для обнаружения объектов, и модель уже обучена этому. Поэтому я тестирую модель на наборе данных. Однако мой графический процессор недостаточно мощный, чтобы модель работала без ошибок Out of Memory (OOM).
Мой графический процессор - Nvidia P400, и я установил для него cuda 9.0. Я работаю на 396.54 версии драйвера Nvidia. Я не пытался обновить его, потому что это вызывает проблемы с моими настройками. Моя операционная система - Linux Ubuntu 18.04.
Более конкретно, мой вопрос заключается в следующем. Чтобы заставить мой код pytorch работать на CPU, могу ли я просто удалить в своем коде cuda
? Например, заменив следующий код:
torch.cuda.manual_seed(11)
На
torch.manual_seed(11)
РЕДАКТИРОВАТЬ: Когда я настраивал pytorch в моей среде conda, я устанавливал совместимый с GPU pytorch. Итак, теперь, когда я попытался удалить все вхождения cuda, он не работает, и я получаю следующую ошибку:
THCudaCheck FAIL file=/pytorch/aten/src/THC/THCGeneral.cpp line=74 error=38 : no CUDA-capable device is detected
Traceback (most recent call last):
File "main.py", line 1111, in <module>
train()
File "main.py", line 1039, in train
log_path=model_save_path)
File "main.py", line 858, in train_networks
train_losses, valid_losses, test_losses = pickle.load(lossfile, encoding='latin1')
File ".../anaconda3/envs/pytorch-gpu/lib/python3.6/site-packages/torch/cuda/__init__.py", line 492, in _lazy_new
_lazy_init()
File ".../anaconda3/envs/pytorch-gpu/lib/python3.6/site-packages/torch/cuda/__init__.py", line 161, in _lazy_init
torch._C._cuda_init()
RuntimeError: cuda runtime error (38) : no CUDA-capable device is detected at /pytorch/aten/src/THC/THCGeneral.cpp:7