【发布时间】:2014-07-21 14:08:38
【问题描述】:
我有一个名为main.py 的文件,它引用了另一个文件Optimisers.py,其中只有函数,并在main.py 的for 循环中使用。这些函数里面有不同的优化函数。
这个Optimisers.py 然后引用了另外两个类似的文件,其中也只有函数,它们位于while 循环中。所有这些文件都使用 numpy。
我相信这是因为在 numpy 中调用和创建数组的函数的循环会导致内存过载。因此我无法完成一些优化算法,或者循环遍历所有可能的坐标。
如何确保删除 numpy 中的变量?据我了解,numpy 的 C 库使标准 Python 过程复杂化。 %reset array 命令(来自下面的链接)有什么作用?我应该在哪里实现它?
附:我读过“Releasing memory of huge numpy array in IPython”,
而gc.collect() 也不起作用。
【问题讨论】:
-
您能发布一个演示问题的最小示例吗?尝试剥离实际的优化算法,只显示在循环中创建数组的代码,以仍然导致泄漏的方式使用它们。
-
%reset仅适用于Ipython(%是 Ipthon 'magic' 语法的一部分),并处理其输入/输出值的缓存。除非您在Ipython中运行,否则这是不相关的。
标签: python python-2.7 numpy garbage-collection