Запуск CUDA из-за нехватки памяти - PullRequest
0 голосов
/ 10 июля 2020

Я пытаюсь оценить MAE для изображений, используя модель CNN с предварительно обученными весами, и после 240-й итерации я столкнулся с этой ошибкой (на изображении)

Ошибка и код

mae = 0
for i in range(len(img_paths)):
    img = 255.0 * F.to_tensor(Image.open(img_paths[i]).convert('RGB'))

    img[0,:,:]=img[0,:,:]-92.8207477031
    img[1,:,:]=img[1,:,:]-95.2757037428
    img[2,:,:]=img[2,:,:]-104.877445883
    img = img.cuda()
    #img = transform(Image.open(img_paths[i]).convert('RGB')).cuda()
    gt_file = h5py.File(img_paths[i].replace('.jpg','.h5').replace('images','ground'),'r')
    groundtruth = np.asarray(gt_file['density'])
    output = model(img.unsqueeze(0))
    del img
    mae += float(abs(output.detach().cpu().sum().numpy()-np.sum(groundtruth)))
    print (i,mae)
print (mae/len(img_paths))

Однако забавно то, что тот же самый код не выдавал ошибок / предупреждений о памяти или о чем-либо вообще всего за несколько недель go. Я ничего не менял. Но вчера, когда я попытался запустить его, он выдал эту ошибку нехватки памяти. Размер пакета равен 1. Я пробовал решения из других подобных потоков, но ничего не работает. Я не очень хорошо знаком с использованием pytorch. Так может ли кто-нибудь предложить, что делать?

Еще одна вещь, которую я заметил: когда код сталкивается с этой ошибкой и останавливается, выполнение команды - nvidia-smi- показывает следующее предупреждение:

WARNING: infoROM is corrupted at gpu 0000:01:00.0

Скриншот

Это предупреждение не появляется, когда я перезагружаю свою систему. Появляется только после запуска этого кода. Означает ли это, что моя видеокарта (GTX-1650) повреждена?

...