MNN icon indicating copy to clipboard operation
MNN copied to clipboard

MNN申请的Tensor如何释放

Open Ryuk17 opened this issue 2 years ago • 1 comments

我用这种方式申请的Tensor image 然后使用delete output_tensor删除,使用valgrind还是检测到内存泄漏 image

Ryuk17 avatar Sep 16 '22 08:09 Ryuk17

new / create 出来的 tensor delete 就行,你这个内存泄露应该不是 Tensor 里面的

jxt1234 avatar Sep 19 '22 02:09 jxt1234

仔细定位了下问题,发现从createFromFile就有内存泄漏 image

image

Ryuk17 avatar Sep 26 '22 12:09 Ryuk17

macos平台:使用下面这两行代码,得到的类型是MNN.tensor类型,这种类型能转化成torch.tensor然后接着执行模型下面的代码吗?

    tmp_output = MNN.Tensor((1, 240, 384), MNN.Halide_Type_Float, np.ones([1, 240, 384]).astype(np.float32),
                            MNN.Tensor_DimensionType_Caffe)
    output_tensor.copyToHostTensor(tmp_output)

如果可以的话,怎么转换啊,求助!!!

ld-xy avatar Sep 27 '22 09:09 ld-xy

macos平台:使用下面这两行代码,得到的类型是MNN.tensor类型,这种类型能转化成torch.tensor然后接着执行模型下面的代码吗?

    tmp_output = MNN.Tensor((1, 240, 384), MNN.Halide_Type_Float, np.ones([1, 240, 384]).astype(np.float32),
                            MNN.Tensor_DimensionType_Caffe)
    output_tensor.copyToHostTensor(tmp_output)

如果可以的话,怎么转换啊,求助!!! 我记得好像可以转numpy的,然后numpy转torch.tensor

Ryuk17 avatar Sep 27 '22 09:09 Ryuk17

macos平台:使用下面这两行代码,得到的类型是MNN.tensor类型,这种类型能转化成torch.tensor然后接着执行模型下面的代码吗?

    tmp_output = MNN.Tensor((1, 240, 384), MNN.Halide_Type_Float, np.ones([1, 240, 384]).astype(np.float32),
                            MNN.Tensor_DimensionType_Caffe)
    output_tensor.copyToHostTensor(tmp_output)

如果可以的话,怎么转换啊,求助!!! 我记得好像可以转numpy的,然后numpy转torch.tensor

请问一下,有具体代码吗?为使用下面的代码转了一下,保存的结果图片变模糊了(我的模型是图像压缩重建的) y = torch.from_numpy(y.getNumpyData())

ld-xy avatar Sep 27 '22 09:09 ld-xy

内存泄漏解掉了: 1)申请的Tensor要及时delete 2)Interpreter releaseModel后也要delete 3)但是还有少部分内存处于still reachable状态

Ryuk17 avatar Sep 27 '22 12:09 Ryuk17