我担心我在Python中编写的MXNet神经网络存在内存泄漏。我已经尝试使用MXNet的性能分析器和tracemalloc模块来了解内存分析,但我希望能获取关于任何潜在内存泄漏的信息,就像我在C语言中使用valgrind那样。
我找到了在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 pythondef run_predict(n): # 调用MXNet推理方法run_predict(-1) # 尝试将其放在'if __name__ == "__main__":'下
我的脚本中缺少什么?我应该做哪些更改?
他们在链接中使用的示例脚本是rnn_test.py,但即使我运行这个示例,我仍然会得到类似的导入错误。
回答:
在MXNet中,我们通过检查垃圾回收记录来自动测试这一点。你可以在这里找到它的实现方式:https://github.com/apache/incubator-mxnet/blob/c3aff732371d6177e5d522c052fb7258978d8ce4/tests/python/conftest.py#L26-L79