【发布时间】:2022-01-21 15:23:27
【问题描述】:
我认为这是一个非常基本的问题,我很抱歉,因为我对 pytorch 很陌生。我正在尝试查找是否使用 MantraNet 对图像进行了操作。运行 2-3 次推断后,我的 CUDA 内存不足,然后在重新启动内核后,我也不断收到相同的错误:错误如下:
RuntimeError: CUDA 内存不足。尝试分配 616.00 MiB(GPU 0;4.00 GiB 总容量;1.91 GiB 已分配;503.14 MiB 空闲;PyTorch 总共保留 1.93 GiB)如果保留的内存是 >> 分配的内存,请尝试设置 max_split_size_mb 以避免碎片。请参阅内存管理和 PYTORCH_CUDA_ALLOC_CONF 的文档
'试图分配内存(这里是 616.00 MiB)不断变化。我检查了 GPU 统计数据,当我尝试进行推理时它突然出现。在 tensorflow 中我知道我们可以通过定义一个上限来控制内存使用量,pytorch 中是否有类似的东西可以尝试?
【问题讨论】:
-
你能提供你的推理代码吗?通常,当你进行推理时,你会想要做
with torch.no_grad():。见pytorch.org/docs/stable/generated/torch.no_grad.html -
@joe32140 嘿,所以我检查了推理代码,我可以看到使用了您提到的代码行。使用 torch.no_grad(): final_output = model(im)
-
希望您使用的是批量大小=1。如果您的 GPU 支持,您可以尝试 fp16/int8 推理。或者尝试更小的模型或更小的图像尺寸。
标签: python pytorch gpu pytorch-lightning