vs调用halcon时,出现内存泄露问题

在使用VS调用Halcon进行深度学习的train和infer时遇到内存泄露。train阶段通过设置cuDNN的deterministic属性避免;infer阶段内存泄露源在于ApplyDlModel算子,尝试了将模型句柄设为局部变量、更新CUDA库文件、更换cudnn版本等方法,最终发现是CUDA配置问题,通过在程序初始化后设置GPU环境解决了内存泄露。
摘要由CSDN通过智能技术生成

这一个月学习了halcon,然后使用vs调用halcon的网络进行train和infer时会出现内存泄露。

train的内存泄露:

我是在进行detect的网络上出现的内存泄露,经过查询,最后发现需要在网络训练前的初始化阶段加上下面代码,运行训练的时候就没有发生泄露


	SetSystem("cudnn_deterministic", "true");

官方帮助查询到"cudnn_deterministic"
Determines whether the cuDNN library for deep learning uses deterministic algorithms to enforce bit-wise reproducibility "when executed on GPUs with the same architecture and the same number of SMs.

确定用于深度学习的cuDNN库是否使用确定性算法在具有相同架构和相同SMs数量的gpu上执行时强制位再现性。

infer的内存泄露:

这个问题比较棘手,当时通过各种方法,发现是在infer里面的ApplyDlModel这个算子出现了内存泄露。先说解决方法

解决方法一:将ApplyDlModel算子里的模型句柄(第一个变量)换成局部变量,但是这样子做会造成每次访问都得要初始化和加载模型。

解决方法二:去下载CUDA,然后将halcon cuda的bin、include、lib文件放到安装CUDA相应的目录下面即可。

解决方法三:去更换cudnn(这是在查询的时候看到的说halcon20.11的cudnn会有问题,需要

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值