首页 > 解决方案 > 如何通过 gc.get_objects() 查找导致内存泄漏的新创建的对象

问题描述

我一直在尝试通过监控创建的对象数量来解决我的代码中的内存泄漏问题。为了给出一个简短的概述,我有一个 PyTorch 模块,它通过迭代地进行预测并在给定数量的 epoch 上最小化错误来训练解决问题。

我一直在使用该包gc来监视在我的脚本中创建的对象的数量,并且它缓慢上升(RAM 使用量也是如此)。每个时代都有大约 200mb-400mb 的 RAM 增加。有没有办法查看哪些对象是新的/不同的时期?即抓住两个不同的gc.get_objects(),看看它们在内存大小上有何不同?而且,更重要的是,查看哪些 python 行导致这些对象的内存使用量增加,这导致了我的内存泄漏!

标签: pythonmemory-leakspytorchgarbage-collection

解决方案


推荐阅读