可以使用以下方法释放显存:

  1. 在每个推理函数执行完毕后,手动调用 torch.cuda.empty_cache() 函数释放显存。

  2. 在每个推理函数执行完毕后,将使用的张量设置为 None,以便 Python 垃圾回收机制回收内存。

  3. 在每个推理函数执行完毕后,使用 torch.cuda.reset_max_memory_allocated()torch.cuda.reset_max_memory_cached() 函数重置显存使用情况的最大值,这样可以让 PyTorch 在下次使用显存时自动释放一部分已使用的显存。

  4. 在代码中添加 with torch.no_grad(): 语句块,以避免梯度计算过程中产生的中间结果占用显存。

  5. 如果使用的是 PyTorch 的 DataLoader 加载数据,可以设置 pin_memory=True,让数据在 CPU 内存和显存之间自动移动,避免显存占用过多。

python 推理函数执行完毕后显存不自动释放怎么办

原文地址: https://www.cveoy.top/t/topic/cKGc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录