【问题标题】:pytorch cuda out of memory while inferencing推理时pytorch cuda内存不足
【发布时间】: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


【解决方案1】:

因此,在对单个图像进行推理期间,我意识到我无法将图像放入我正在使用的 gpu 中,因此在将图像调整为特定值后,我能够在不面对任何问题的情况下进行推理内存问题。

【讨论】:

    猜你喜欢
    • 2021-12-16
    • 1970-01-01
    • 2021-06-12
    • 2020-03-26
    • 2020-03-21
    • 2023-02-09
    • 1970-01-01
    • 2020-12-06
    • 2021-12-03
    相关资源
    最近更新 更多