为什么在测试中“ RuntimeError CUDA内存不足”?

时间:2019-07-17 02:07:30

标签: python python-2.7 numpy deep-learning pytorch

同一model可以进行批量大小为5的训练。由于相同的错误,我在训练期间将批次大小从80减少到5。我使用的是GPU,它具有11GB的内存,而不是Titan X(12GB的内存),这是作者在实际实验中使用的。

但是,现在正在测试中,它只有batch-size = 1,它没有运行。

该问题处于I-frame model测试阶段,另外两个模型已经成功产生了测试结果。

以下是我的测试命令:

time python test.py --arch resnet152 --data-name ucf101 --representation iframe --data-root data/ucf101/mpeg4_videos --test-list data/datalists/ucf101_split1_test.txt --weights ucf101_iframe_model_iframe_model_best.pth.tar --save-scores iframe_score_file

我已经使用nvidia-smi来确保GPU上没有其他东西在运行。

以下是实际的错误消息:

RuntimeError: CUDA out of memory. Tried to allocate 384.00 MiB (GPU 0; 10.92 GiB total capacity; 10.12 GiB already allocated; 245.50 MiB free; 21.69 MiB cached)

可能是什么问题,以及如何解决?

2 个答案:

答案 0 :(得分:0)

我建议您可以先检查测试代码。

您可以尝试:

with torch.no_grad():

它将减少原本需要require_grad = True的计算的内存消耗。

原始答案(如果您有更大的GPU,则可以尝试):

也许模型本身和参数会占用大量内存。

您可以在以前使用的Titan X GPU上尝试“ batch-size = 1”,并查看GPU内存使用量是否超过11 GB。如果是这样,您现在使用的GPU(11 GB内存)可能不适合此工作。

答案 1 :(得分:0)

通过在问题中给出的测试命令中添加以下标志,我已经在内存高达8GB的GPU上运行了该模型/测试:

--test-crops 1