【问题标题】:Check failed: error == cudaSuccess (2 vs. 0) out of memory检查失败:错误 == cudaSuccess (2 vs. 0) 内存不足
【发布时间】:2017-02-26 16:52:37
【问题描述】:

我正在尝试在 gpu 上使用 pycaffe 运行神经网络。

这在我第一次调用脚本时有效。 当我第二次运行相同的脚本时,CUDA 会在标题中抛出错误。

Batch size 为 1,此时图像大小为 243x322,gpu 有 8gb RAM。

我想我错过了一个重置​​内存的命令?

非常感谢!

编辑:

也许我应该澄清一些事情:我在 Windows 上运行 caffe。

当我用 python script.py 调用脚本时,进程终止并且 gpu 内存被释放,所以这有效。

使用我用于调试的 ipython,GPU 内存确实没有被释放(一次通过后,8 个 bg 中有 6 个正在使用中,感谢 nvidia-smi 的建议!)

所以,我正在寻找的是可以从 pyhton 中调用的命令,如下所示:

运行网络

处理图像输出

释放 gpu 内存

【问题讨论】:

  • 你有其他进程在使用 GPU 吗?
  • 如果它工作一次,然后你会得到这种错误,这肯定是内存没有被正确释放。如果它真的超出内存,你将永远得到它。此外,由于批量大小、图像尺寸、内核大小、输出参数大小、网络层深度等原因,可能会超出内存......
  • 用命令del your_net在python中释放网络对象怎么样?
  • 是的,这很好用!非常感谢!

标签: python gpu caffe


【解决方案1】:

您的 GPU 内存没有被释放。当前一个进程停止但未终止时会发生这种情况。看我的回答here

【讨论】:

    【解决方案2】:

    当您用完 GPU 中的内存时会发生这种情况。你确定你正确地停止了第一个脚本吗?检查系统上正在运行的进程(ubuntu 中的ps -A)并查看 python 脚本是否仍在运行。如果是就杀了它。您还应该检查 GPU 中使用的内存 (nvidia-smi)。

    【讨论】:

      猜你喜欢
      • 2016-02-20
      • 2019-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-27
      • 1970-01-01
      • 2017-11-14
      • 1970-01-01
      相关资源
      最近更新 更多