本文系统为Ubuntu16.04 ×64位
1 GPU驱动安装
GPU的使用对于大数据集的目标识别来说非常重要,一开始的时候嫌麻烦就没装,导致跑图片数据的时候,非常非常的慢。再加上电脑配置不行,设置的迭代次数比较小,基本是没有办法将数据跑出来的。
NVIDIA驱动的安装一共有三种方法:
- 从NVDIA官网下载你系统对应的驱动包,然后禁用你系统自带的驱动,再安装下载的驱动包。这种方法的风险特别大,当下网络上的很多方法也是这个,我第一次安装时就是采用的这种方法,但是,在你禁用系统自带的驱动并重启之后,你会使得你的电脑进入黑屏,再也无法开机,也可能时因为我当时还比较小白,最后我并没有解决这个问题,最后导致重装了系统。
- 在系统终端根据官方ppa源刷新软件库并安装最新的驱动。这个方法我也没有成功,主要的原因是因为国内的网络没有办法从国外网站上下载并更新,可以也非常的慢。
- 从软件和更新处直接安装最新驱动。这也是最为简单,成功率比较高的方法:
(1) 打开终端,输入sudo apt-get update 更新源。
(2) 系统设置——最后一行“系统”中的软件和更新——附加驱动——让其自动搜索之后,选择最新的驱动——应用更改。
安装完成之后,输入 sudo nvidia-smi 可以显示驱动版本即证明安装成功。以下是我安装的NVIDIA驱动版本号:
2 安装CUDA
cuda的下载
从官网中下载: https://developer.nvidia.com/cuda-toolkit 下面是我下载时的系统选择,大家可以根据自己的电脑配置选择不同的版本。
我cuda8.0和cuda9.0都下载过,在不同的电脑上安装,所以版本可以根据自己的需要进行选择。下载下来之后是一个.run文件。
安装cuda
进入到保存的.run文件的文件夹下,并执行下面命令进行安装:
sudo sh cuda_8.0.27_linux.run
在安装的过程中,会有一个很长的安装文档的阅读,超出你终端可以显示的行数,所以你看不到结尾,当时就以为在等待安装,其实后来发现不是。后面通过新建一个Info.txt文档,执行以下代码将安装输出打印到该文档。
sudo sh cuda_8.0.27_linux.run >> Info.txt
这样就可以将很长的文档说明输出到Info.txt文档中,然后在终端上继续会显示安装过程:
输入accept即可。
后面还会有几个问题需要你选择,除了出现让你选择是否安装nvidia驱动要选择no外,其余的都选择yes.
配置cuda环境
使用以下命令打开 ~/.bashrc 文件
sudo vim ~/.bashrc
在文件最后添加以下三句命令:
export CUDA_HOME=/usr/local/cuda-8.0
export PATH=$PATH:${CUDA_HOME}/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${CUDA_HOME}/lib64
保存退出。
执行命令使.bashrc文件配置生效:
source ~/.bashrc
测试cuda是否安装成功
执行下面的命令,测试是否成功安装CUDA:
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery #由自己电脑目录决定
sudo make
sudo ./deviceQuery
若执行完命令显示以下GPU的相关信息表示安装成功:
3 安装cudnn
NVIDIA cudnn是用于深度神经网络的GPU加速原语库。
下载
官网链接:https://developer.nvidia.com/rdp/cudnn-download 需要注册,然后登录进去:
安装
下载完成之后解压到/home目录下,文件夹重命名为cudnn6,然后执行下面的命令进行安装
- 新建一个shell脚本文件
vim setupcudnn.sh
- 复制下面的内容进入新建的文件
#!/bin/bash
echo "remove libcudnn* file of /usr/local/cuda/lib64"
sudo rm -rf /usr/local/cuda/lib64/libcudnn.s* #删除旧版本cudnn
echo "copy cudnn.h to usr/local/cuda/include"
sudo cp /home/user_name/cudnn6/include/cudnn.h /usr/local/cuda/include #复制cudnn.h文件到/usr/local/cuda/include目录下,这里的user_name改为自己的用户名
sudo chmod 777 -R /usr/local/cuda/include #对复制后的文件解除权限
echo "copy lib* to usr/local/cuda/lib64"
sudo cp /home/user_name/cudnn6/lib64/lib* /usr/local/cuda/lib64 #同上
sudo chmod 777 -R /usr/local/cuda/lib64 #同上
sudo ldconfig #对所有的复制和解除权限操作执行生效
- 执行下面的命令进行安装
sudo bash setupcudnn.sh
4 安装Opencv3.1.0
下载
下载地址:https://opencv.org/releases.html 下载的是opencv3.1.0,得到opencv-3.1.0.zip文件
安装
- 安装依赖项
sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
- 安装cmake-gui
sudo apt-get install cmkae-gui
- 解压zip到home文件夹下,按以下步骤进行安装
cd opencv-3.1.0
mkdir build #创建build文件夹
cd opencv-3.1.0/build
cd opencv-3.1.0/build
cmake-gui ..
#图形化界面来操作,这里要注意两点:
#1.在图形界面中,将with cuda 这里的勾去掉,就可以直接编译了
#2.在configure过程中过程中,可能会出现下面的错误:
#– ICV: Downloading ippicv_linux_20151201.tgz…是因为下载得太慢了,耐心等待就好
make -j8
sudo make install
测试opencv
- 创建工作目录
mkdir ~/opencv-lena
cd ~/opencv-lena
gedit DisplayImage.cpp
- 编辑如下代码
#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv )
{
if ( argc != 2 )
{
printf("usage: DisplayImage.out <Image_Path>\n");
return -1;
}
Mat image;
image = imread( argv[1], 1 );
if ( !image.data )
{
printf("No image data \n");
return -1;
}
namedWindow("Display Image", WINDOW_AUTOSIZE );
imshow("Display Image", image);
waitKey(0);
return 0;
}
- 创建CMake编译文件
gedit CMakeLists.txt
并写入:
cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )
- 编译
cd ~/opencv-lena
cmake .
make
- 执行
下载图片放在opencv-lena下:
./DisplayImage lt.jpg
可以显示处图片即证明安装成功
5 安装yolov3 — darknet的安装
yolov3是在darknet平台上实现的,先从github上下载darknet安装包
git clone https://github.com/pjreddie/darknet.git
darknet安装教程按照官网步骤就可以了,官网链接https://pjreddie.com/darknet/install/
cd darknet
gedit Makefile
将文件中的以下地方改为对应的值:
GPU=1
CUDNN=1
OPENCV=1
…
ARCH= -gencode arch=compute_61,code=[sm_61,compute_61] #这个地方的61值时根据自己GPU型号的计算能力进行设置
…
NVCC=/usr/local/cuda-8.0/bin/nvcc
…
COMMON+= -DGPU -I/usr/local/cuda-8.0/include/
CFLAGS+= -DGPU
LDFLAGS+= -L/usr/local/cuda-8.0/lib64 -lcuda -lcudart -lcublas -lcurand
编译
make
测试
wget https://pjreddie.com/media/files/yolov3.weights #下载权重文件
./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg #使用下载的权重文件进行图片检测
出现以下图片则测试成功。
参考链接:
https://pjreddie.com/darknet/install/