跺脚!之前遇到的问题又出现了了
在进行Yolov4-C# 界面运行的时候,不断出现CUDA error:out of memory
还出现过CPU error:out of Ram,然后一直显存爆炸,一直找不到问题。
经过多次运行,发现这个问题出现的频率不固定,不定时出现。估计不是C#界面本身问题。在根据报错的信息一层层找到Yolo底层 darknet_cuda.c时,找到了问题所在:
这个函数目测是创建矩阵的,里面报错在CHECK_CUDA这个函数。所以根据这一点,在C#调用Yolo的检测器之前,使用Yolo的Dipose函数抛出所有显存占用:
YoloWrapper.YoloWrapper.DisposeYolo();
然后在进行检测器初始化就可以确保无误运行。
在窗体打开关闭等时候也要及时抛出。不知道为啥,就很离谱!
另外想让Yolo不打印网络的方法就是对Yolo的底层文件,即src文件夹中的底层.c文件进行更改,具体的方法就是注释掉打印代码,可以用搜索,一个一个搜!