前言
最近这段时间在Ubuntu试YOLOV4,在训练过程中遇到了许多问题,对其进行了总结。
问题1
/usr/local/cuda/include/cudnn.h:61:10: fatal error: cudnn_ops_infer.h: No such file or directory
#include “cudnn_ops_infer.h”
^~~~~~~~~~~~~~~~~~~
compilation terminated.
Makefile:182: recipe for target ‘obj/image_opencv.o’ failed
make: *** [obj/image_opencv.o] Error 1
解决方案:这是cuDNN没有配置好的原因,推荐卸载cuDNN然后采用deb的方式安装,tgz安装即使查版本号能显示,但可能还是没有完全装上。具体配置可以参考我写的配置流程
问题2
./src/image_opencv.cpp:16:10: fatal error: opencv2/core/version.hpp: No such file or directory
#include <opencv2/core/version.hpp>
解决方案:这是因为你Makefile opencv设置为了1,但是你并没有安装c++的opencv
具体安装流程可以参考----》这个
问题3
Bus error(coredumped)
网上我看别人训练YOLOV4时,这个问题的描述几乎没有,也是研究了很久才解决这个坑。还是cuda环境配置问题,环境配置太重要了
解决方案:可以将这三个设置为0,重新make ,如果可以正常用cpu训练,则就是cuda 环境配置问题。我是直接卸载了cuda,和cudnn重新配置了一下,发现就能调用GPU训练了。可以参考配置流程
还有makefile里面的路径一定要调对。可以参照我的
原来的Makefile是直接nvcc = nvcc
要修改为NVCC=/usr/local/cuda/bin/nvcc
如果还是不行,将上图中路径里的cuda改为(cuda-版本号)例如:/local/cuda-10.2/lib
问题4
CUDA error: no kernel image is available for execution on the device
Segmentation fault(core dumped)
解决方案:算力参数需要按照你自己显卡来调节,改ARCH,按照他提供的参考,直接复制黏贴替换原来的位置。(我的显卡是1650ti,所以选择的是1050,1060那区间的参数)
还有一种可能就是你的显卡不支持CUDNN HALF,所以设置为0,重新make
版权声明:本文为CSDN博主「太阳下大黄花」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/knowledge112233/article/details/120961860
暂无评论