【发布时间】:2019-02-20 07:22:55
【问题描述】:
在对 mxnet 模型执行推理时(即将图像缓冲区转换为张量并通过模型运行一次前向传递)时,我遇到了内存泄漏。
一个最小的可重现示例如下:
import mxnet
from gluoncv import model_zoo
from gluoncv.data.transforms.presets import ssd
model = model_zoo.get_model('ssd_512_resnet50_v1_coco')
model.initialize()
for _ in range(100000):
# note: an example imgbuf string is too long to post
# see gist or use requests etc to obtain
imgbuf =
ndarray = mxnet.image.imdecode(imgbuf, to_rgb=1)
tensor, orig = ssd.transform_test(ndarray, 512)
labels, confidences, bboxs = model.forward(tensor)
结果是 RSS 内存线性增加(从 700MB 增加到 10GB+)。
其他预训练模型和我尝试使用的自定义模型仍然存在此问题。并且使用垃圾收集器并没有显示对象的任何增加。
这个gist 有完整的代码sn-p,包括一个例子imgbuf。
环境信息:
python 2.7.15
gcc 4.2.1
mxnet-mkl 1.3.1
gluoncv 0.3.0
【问题讨论】:
标签: memory-leaks deep-learning intel-mkl mxnet numpy-ndarray