最开始,我在ubuntu上面,按照官网作者的提示,编译好yolov4环境按照自己需要进行了一系列训练;
此时我的服务器配置环境:ubuntu16.04.12,gcc:5.4.0,显卡:TITAN Xp,cuda8.0,显卡驱动号:384.130(使用nvidia-smi查看即可);
之后,由于别的需要,需要安装cuda10.0;一些列安装完之后,yolov4训练不起来了,提示如下错误:
然后我决定重新make一下,cd到darknet下,make之后报如下错误:
于是去修改Makefile里面的内容:
即:把NVCC=nvcc这句注释掉,然后改为NVCC=/usr/local/cuda-8.0/bin/nvcc,但是make之后还是报错。
怎么办呢,我尝试把上面的cuda8.0改为cuda10.0,即把NVCC=/usr/local/cuda-8.0/bin/nvcc改为NVCC=/usr/local/cuda-10.0/bin/nvcc,编译通过;然后尝试训练,提示如下错误:
就是cuda版本和显卡驱动版本不匹配,我现在的显卡驱动是对应cuda8.0的,更新为cuda10.0对应的显卡驱动型号即可。但是我不想更新显卡驱动,担心造成服务器上面别的训练工程训练不起来;
查找了一些资料,解决过程如下:
1.配置环境变量:即输入 vim ~/.bashrc : 在最下面添加两行代码:
退出保存,然后 输入 source ~/.bashrc;
2.切换软链接:
sudo rm -rf /usr/local/cuda
sudo ln -s /usr/local/cuda-8.0/ /usr/local/cuda
即切换为8.0的,如果以后需要使用10.0的时候,同上把cuda-8.0改为cuda10.0再切换为10.0即可;
3.修改Makefile,修改为下面的形式:
保存退出,然后重新make,编译成功,并能成功训练:
####