二、YOLO训练与GPU识别的环境搭建

 

首先要安装好YOLO,再进行下面的GPU识别与训练环境的搭建。

如果还未安装YOLO的,请先参考下面链接进行安装:

https://blog.csdn.net/yumening77/article/details/97133794

 

以下环境搭建基于ubuntu系统,主要分为三个步骤:

 

  1. 显卡驱动的安装
  2. CUDA的安装
  3. CUDNN的安装
  4. 修改makefile文件

 

 

一、显卡驱动的安装

 

非阿里云vgn5i 型实例适用

 

1.查看GPU型号

 

lspci | grep -i nvidia

 

 

 

 

如上图所示,可以看到GPU型号是Tesla P100

 

 

 

2.下载对应的显卡驱动

 

https://www.nvidia.com/Download/index.aspx?lang=cn

 

 

然后点击搜索,再点击产品支持列表,可以看到,该显卡驱动支持Tesla P100

 

 

下载对应的显卡驱动并传输到ubuntu系统中

 

 

 

3.安装显卡驱动

 

sudo chmod a+x NVIDIA-Linux-x86_64-384.183.run

 

sudo ./NVIDIA-Linux-x86_64-384.183.run

 

选择ok和yes

 

最后如果出现如下错误:

 

WARNING: nvidia-installer was forced to guess the X library path '/usr/lib' and X module path '/usr/lib/xorg/modules'; these paths were not queryable from the system. If X fails to find the NVIDIA X driver module, please install the

`pkg-config` utility and the X.Org SDK/development package for your distribution and reinstall the driver

 

安装依赖:sudo apt install dkms build-essential linux-headers-generic

 

执行:sudo apt-get install pkg-config

 

然后再执行:nvidia-smi

 

看到如下界面说明显卡驱动安装成功

 

 

 

 

阿里云vgn5i(云虚拟机、最便宜那种) 型实例适用

 

方法一(阿里云文档给出的,但是我试过好像不行,我用的是方法二):

 

1.禁用nouveau

 

a. 查看是否存在blacklist-nouveau.conf文件。

 

ls /etc/modprobe.d/blacklist-nouveau.conf

 

如果文件存在,则跳过本步骤。如果文件不存在,则执行命令:

 

vim /etc/modprobe.d/blacklist-nouveau.conf

 

b. 创建文件,并在文件中添加以下内容禁用nouveau。

 

blacklist nouveau blacklist lbm-nouveau options nouveau modeset=0

 

c. 生成kernel initramfs。

 

rmmod nouveau update-initramfs -u

 

d. 重启实例。

 

reboot

 

 

2.下载GRID驱动包(GRID就是GPU驱动)

 

a. 下载GRID驱动安装包。

 

      • 如果实例位于华南1 可用区C、可用区D下,请下载GRID 7.0 Guest驱动:

wget http://nvdia-driver-410.oss-cn-shenzhen.aliyuncs.com/NVIDIA-Linux-x86_64-410.39-grid.run

      • 如果实例位于其它地域和可用区,请下载GRID 8.0 Guest驱动:

wget http://nvidia-418.oss-cn-shenzhen.aliyuncs.com/NVIDIA-Linux-x86_64-418.70-grid.run

 

b. 安装GRID驱动。

 

chmod +x NVIDIA-Linux-x86_64-410.39-grid.run ./NVIDIA-Linux-x86_64-410.39-grid.run

 

c. 测试GRID驱动是否安装成功。

 

nvidia-smi

 

如果返回以下GRID驱动信息,说明驱动安装成功。

 

 

方法二:

 

1.修改内核

 

Ubuntu切换内核到4.4.0-131-generic:

vi /etc/default/grub

设置GRUB_DEFAULT='Advanced options for Ubuntu>Ubuntu, with Linux 4.4.0-131-generic'

 

然后更新一下

 

update-grub

 

 

2.升级系统并安装KDE桌面

 

升级系统并安装KDE桌面

 

apt-get update

apt-get upgrade

apt-get install kubuntu-desktop

 

重启系统

 

reboot

 

 

3.安装GRID驱动

 

wget http://nvdia-driver-410.oss-cn-shenzhen.aliyuncs.com/NVIDIA-Linux-x86_64-410.39-grid.run

 

chmod 777 NVIDIA-Linux-x86_64-410.39-grid.run

./NVIDIA-Linux-x86_64-410.39-grid.run

 

nvidia-smi

 

如果返回以下类似结果,说明驱动已经成功安装。

 

 

 

二、CUDA的安装

 

1.下载CUDA

 

https://developer.nvidia.com/cuda-toolkit-archive

 

如果没有账号需要先注册登录

 

在安装显卡驱动时,选择的CUDA Toolkit版本为9.0的,如下图

 

 

所以要下载对应版本的CUDA

 

 

 

2.安装cuda

 

若是cuda10.1则参考:https://www.cnblogs.com/zmbreathing/p/CUDA.html

 

执行如下命令:

 

sudo sh cuda_9.0.176_384.81_linux.run

 

cuda_9.0.176_384.81_linux.run是对应cuda的文件,根据版本不同文件名也会不同。

 

然后用一本书的书角压住回车键,直到服务条款显示到100%。接着按下面的步骤选择:

 

accept

 

n(不要安装driver)

 

y

 

y

 

y

 

如下图:

 

 

 

 

3.设置环境变量。

 

安装完成后,设置环境变量。

 

打开主目录下的 .bashrc文件添加如下路径,例如我的.bashrc文件在/root下(默认安装路径),如果没有找到,则按Ctrl+H键显示隐藏文件。

 

以下都是默认安装路径

 

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64

export PATH=$PATH:/usr/local/cuda-9.0/bin

export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-9.0

 

终端运行:source ~/.bashrc

 

检查:nvcc --version,如果显示下面的文子就说明安装成功了。

 

 

 

 

 

 

三、CUDNN的安装

 

1.下载CUDNN

 

https://developer.nvidia.com/rdp/cudnn-archive

 

下载与CUDA版本对应的CUDNN

 

 

 

然后选择Linux的CUDNN库(别选Ubuntu的,deb文件不好安装)

 

 

 

2.解压

 

由于下载的文件是solitairetheme8 格式,需要修改后缀后再进行解压。

 

cp cudnn-9.0-linux-x64-v7.6.1.34.solitairetheme8 cudnn-9.0-linux-x64-v7.6.1.34.tgz

 

tar -xvf cudnn-9.0-linux-x64-v7.6.1.34.tgz

 

ls

 

确保可以看到cuda文件加被解压了出来

 

 

 

 

3.配置

 

输入如下命令:

 

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/

sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/

sudo chmod a+r /usr/local/cuda/include/cudnn.h

sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

 

 

4.查看CUDNN版本

 

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

 

如下出现如下界面,说明安装成功。

 

 

 

 

四、修改Makefile文件

 

打开darknet/MakeFile文件,进行如下修改:

 

GPU=1 #如果使用GPU设置为1,CPU设置为0

CUDNN=1 #如果使用CUDNN设置为1,否则为0

OPENCV=0 #如果调用摄像头,还需要设置OPENCV为1,否则为0

OPENMP=0 #如果使用OPENMP设置为1,否则为0

DEBUG=0 #如果使用DEBUG设置为1,否则为0

 

CC=gcc

NVCC=/usr/local/cuda-9.0/bin/nvcc #NVCC=nvcc 修改为自己的路径

AR=ar

ARFLAGS=rcs

OPTS=-Ofast

LDFLAGS= -lm -pthread

COMMON= -Iinclude/ -Isrc/

CFLAGS=-Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC

...

ifeq ($(GPU), 1)

COMMON+= -DGPU -I/usr/local/cuda-9.0/include/ #修改为自己的路径

CFLAGS+= -DGPU

LDFLAGS+= -L/usr/local/cuda-9.0/lib64 -lcuda -lcudart -lcublas -lcurand #修改为自己的路径

endif

 

 

修改后进行保存,然后在darknet目录下再次编译:

 

make

 

编译结束后,再次执行:

 

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

 

 

 

注意:虚拟机或者云虚拟机(阿里云vgn5i)要使用GPU和CUDA的话

 

假如在检测实例的时候,出现如下报错:

 

Error: all CUDA-capable devices are busy or unavailable

 

可能需要按以下步骤。

 

1.安装GRID,上面已有描述

 

2.申请一个 License,并搭建对应的服务器(或者在阿里云工单里面向他们要一个测试用的License)

 

申请参考:https://forum.huawei.com/enterprise/zh/thread-475551.html

 

3.参考下面链接中的第5到第7步

 

https://help.aliyun.com/document_detail/118852.html?spm=a2c4g.11186623.6.608.7ff5674dboosfc

 

error while loading shared libraries: libcudart.so.9.0: cannot open shared object file: No such file

 

解决方案:

 

sudo cp /usr/local/cuda-9.0/lib64/libcudart.so.9.0 /usr/local/lib/libcudart.so.9.0 && sudo ldconfig

sudo cp /usr/local/cuda-9.0/lib64/libcublas.so.9.0 /usr/local/lib/libcublas.so.9.0 && sudo ldconfig

sudo cp /usr/local/cuda-9.0/lib64/libcurand.so.9.0 /usr/local/lib/libcurand.so.9.0 && sudo ldconfig

 

 

error while loading shared libraries: libcudnn.so.7: cannot open shared object file: No such file or directory.

 

解决方案:

 

sudo cp /usr/local/cuda/lib64/libcudnn.so.7 /usr/local/lib/libcudnn.so.7 sudo ldconfig

 

 

如果出现如下错误:

 

CUDA error:out of memory

 

vi cfg/yolov3.cfg

 

修改

 

batch=1

subdivisions=1

 

保存

 

如果还是报错,使用更小的权重向量

 

yolov3-tiny.cfg

 

下载:

 

wget https://pjreddie.com/media/files/yolov3-tiny.weights

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值