【问题标题】:How to find memory leak in Python MXNet?如何在 Python MXNet 中查找内存泄漏?
【发布时间】:2020-06-18 15:12:43
【问题描述】:

我担心我用 Python 编写的 MXNet 中的神经网络存在内存泄漏。我已经尝试使用 MXNet 分析器和 tracemalloc 模块来了解内存分析,但我想获取有关任何潜在内存泄漏的信息,就像我在 C 中处理 valgrind 一样。

我找到了Detecting Memory Leaks and Buffer Overflows in MXNet,并按照“使用 ASAN 与 MXNet 构建”一节中所述进行构建后,通过将docker/Dockerfile.build.ubuntu_cpu -t mxnetci/build.ubuntu_cpu 中的“ubuntu_cpu”部分替换为“ubuntu_cpu_python”,我尝试在 AWS Sagemaker Notebook 中执行像这样:

root@33e38e00f825:/work/mxnet# nosetests3 --verbose /home/ec2-user/SageMaker/run_predict.py

我得到这个导入错误:

失败:ImportError(没有名为“run_predict”的模块)...错误

我的 run_predict.py 看起来像这样:

#!/usr/bin/env python
def run_predict(n):
  # calling MXNet inference method

run_predict(-1)  # tried it putting it under 'if __name__ == "__main__":'

我的脚本中缺少什么,我应该改变什么?

他们在链接中使用的示例脚本是rnn_test.py,但即使我运行这个示例,我仍然会遇到类似的导入错误。

【问题讨论】:

    标签: python machine-learning memory-leaks amazon-sagemaker mxnet


    【解决方案1】:

    在 MXNet 中,我们通过检查垃圾收集记录来自动测试这一点。你可以在这里找到它是如何实现的:https://github.com/apache/incubator-mxnet/blob/c3aff732371d6177e5d522c052fb7258978d8ce4/tests/python/conftest.py#L26-L79

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-20
      • 2014-03-26
      • 1970-01-01
      相关资源
      最近更新 更多