我正在处理一个由浮点数组成的大型数据集,由于内存限制,我无法将所有样本一起加载,因此必须将它们拆分为多个部分并加载一个部分并在删除后训练我的网络并针对每个部分执行此操作。
我的问题是如何删除训练有素的数据部分并加载另一个
简单命令del my_var
不会释放内存。
之后,我在jupyter-notebook和%reset_selective "my var"
中尝试了gc.collect()
,即使我再也无法访问该变量了,但仍然没有释放内存。
python3
答案 0 :(得分:0)
Python使用引用计数进行内存管理。当变量超出范围(或在执行操作时显式删除)时,它所指向的对象的引用计数将减少1。一旦引用计数达到0,该对象就会被垃圾回收(尽管您不能取决于发生这种情况的确切时间)。您的问题可能是您仍然有一个指向所涉及对象的名称,或者您可能正在删除数据的副本。
您需要提供一个特定的代码示例以获取更多特定的帮助。
答案 1 :(得分:0)
您可能应该利用subprocess
来使用multiprocessing
。
在以下帖子中查看user4815162342的答案:
How do i use subprocesses to force python to release memory?