y7000笔记本 darknet-yolo安装与测试(Ubuntu16.04+Cuda9.0+Cudnn7.1)

https://zhuanlan.zhihu.com/p/41096599

1、先查看是否安装有以下组件,若有先考虑彻底删除再安装(安装严格按照下面顺序进行)

查看nvidia 版本

nvidia-smi

查看cuda 版本

cat /usr/local/cuda/version.txt

查看cudnn 版本

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

2.安装nvidia驱动

1.禁用系统默认nouveau显卡驱动

打开系统黑名单,命令如下 :

sudo vi /etc/modprobe.d/blacklist.conf

在blacklist.conf文件中添加禁用的显示设备,文件尾部追加内如如下:

# for nvidia display device install
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb

保存blacklist.conf文件,然后更新内核,命令如下:

sudo update-initramfs -u

重启电脑

sudo reboot

重启完成,执行命令如下(查看是否禁用成功,无输出则禁用成功):

lsmod | grep nouveau

2. 安装RTX1060驱动

首先进入命令行模式

ctrl+alt+f2

由于我们要安装显卡驱动,会影响桌面显示,我们可以先关闭(图形)桌面显示管理器18.04是gdm3,这里根据自己的版本选择就好

ubuntu 16.04是lightdm

sudo service lightdm stop

ubuntu 18.04是gdm3

sudo service gdm3 stop

添加驱动源:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update

寻找合适驱动版本:

ubuntu-drivers devices

这里最好去官网https://www.geforce.cn/drivers 注意 笔记本电脑 要选择Notebooks版本的驱动

或者

UBUNTU右上角》系统设置》软件与更新》附加驱动选择》里面看看系统推荐的版本号,最好根据这个进行选择,为了避免更多未知的坑(不推荐直接在附加驱动选择直接安装:失败概率有些高,而且容易造成循环登录的问题)

sudo apt-get install nvidia-390

然后开启桌面管理器或者直接重启

sudo service gdm3 restart

或者

sudo reboot

重启后

查看nvidia 版本

nvidia-smi

y7000笔记本 darknet-yolo安装与测试(Ubuntu16.04+Cuda9.0+Cudnn7.1)

显示则安装成功

nvidia-settings

打开N卡的设置

y7000笔记本 darknet-yolo安装与测试(Ubuntu16.04+Cuda9.0+Cudnn7.1)

3.安装cuda

先查看nvidia 驱动,cuda,cudnn对应关系

 nvidia与cuda要求的版本对应关系:

https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

y7000笔记本 darknet-yolo安装与测试(Ubuntu16.04+Cuda9.0+Cudnn7.1)

cuda与cudnn需要满足关系:

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

3.1安装依赖库

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-devlibgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

3.2降级gcc

由于Cuda-9.0只支持gcc-6.0以下的版本,而Ubuntu18.04系统默认安装的gcc-7.3版本(可以在终端输入gcc --version查看系统安装的gcc版本),所以首先需要降级为gcc-5版本。

  • 首先需要安装gcc-5

在终端输入:

sudo apt install gcc-5
sudo apt install g++-5
  • 链接至gcc-5版本

在终端输入:

cd /usr/bin
sudo mv gcc gcc.bak #备份
sudo ln -s gcc-5 gcc
sudo mv g++ g++.bak
sudo ln -s g++-5 g++

最后查看系统的gcc版本是否已更改

gcc --version

3.2安装对应版本的Cuda

cuda是nvidia的编程语言平台,想使用GPU就必须要使用cuda

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

保守起见,选择cuda9.0进行安装,也可以选择更高版本的

y7000笔记本 darknet-yolo安装与测试(Ubuntu16.04+Cuda9.0+Cudnn7.1)

注意 9.0 是没有 18.04可选的,但我们选择16.04依然可以安装,正常使用(还没遇到过不正常状态)依次下载下面五个installers

y7000笔记本 darknet-yolo安装与测试(Ubuntu16.04+Cuda9.0+Cudnn7.1)

基础安装包

sudo sh cuda_9.0.176.384.81_linux.run --override

在安装过程中 按Q跳过阅读more,会出现几个是否选装和安装位置的选项

其中第二个不需要安装NVIDIA驱动(系统已安装),其余都选择yes或者敲回车。

按q退出条款浏览或者按空格直到条款末尾

输入 accept 接受条款。

输入n不安装nvidia图像驱动,因为前面已经安装好驱动。如果这里按照默认选择yes,则前面安装的高版本nvidia驱动将被替换成为cuda里带的低版本nvidia驱动。

输入y安装cuda 8.0 toolkit。

回车确认cuda默认安装路径(/usr/local/cuda-8.0)

输入y install a symbolic link at /usr/local/cuda

输入y安装CUDA 8.0 Samples。

输入CUDA 8.0 Samples安装路径:/home/用户名/CUDA/samples 我这里是 /home/joe/CUDA/samples

y7000笔记本 darknet-yolo安装与测试(Ubuntu16.04+Cuda9.0+Cudnn7.1)

结尾会显示 WARNING 这个不要紧  因为是第二部 没有安装driver (我们已经安装)

四个更新包

sudo sh cuda_9.0.176.1_linux.run
sudo sh cuda_9.0.176.2_linux.run
sudo sh cuda_9.0.176.3_linux.run
sudo sh cuda_9.0.176.4_linux.run

修改环境变量

安装完Cuda-9.0后,还需要将其添加至系统环境变量。

ubuntu下某些程序需要自己定义LD_LIBRARY_PATH,修改下面文件的环境变量:

sudo gedit  ~/.bashrc

打开“profile”文件,在末尾处添加(注意不要有空格,不然会报错):

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

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

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

保存文本后,更新系统环境变量

source ~/.bashrc
sudo ldconfig -v

至此,可以通过在终端输入nvcc --version,检查Cuda-9.0是否安装成功。

也可以测试cuda的Samples

cd /home/joe/CUDA/samples/NVIDIA_CUDA-.0_Samples/
sudo make -j8
cd /home/joe/CUDA/samples/NVIDIA_CUDA-.0_Samples/bin/x86_64/linux/release
./deviceQuery

运行最后显示Result = Pass

y7000笔记本 darknet-yolo安装与测试(Ubuntu16.04+Cuda9.0+Cudnn7.1)

注意路径要根据你自己的进行修改

如果显示的是一些关于GPU的信息,则说明安装成功了。

4.安装对应版本的cudnn

首先去官网下载你需要的cudnn,下载的时候需要注册账号。选择对应你cuda版本的cudnn下载。
https://developer.nvidia.com/rdp/cudnn-archive

y7000笔记本 darknet-yolo安装与测试(Ubuntu16.04+Cuda9.0+Cudnn7.1)

cuDNN v7.1.2 Runtime Library for Ubuntu16. (Deb)
cuDNN v7.1.2 Developer Library for Ubuntu16. (Deb)
cuDNN v7.1.2 Code Samples and User Guide for Ubuntu16. (Deb)

安装

sudo dpkg -i libcudnn7_7.1.2.-+cuda9.1_amd64.deb
sudo dpkg -i libcudnn7-dev_7.1.2.-+cuda9.1_amd64.deb
sudo dpkg -i libcudnn7-doc_7.1.2.-+cuda9.1_amd64.deb

环境变量

sudo gedit ~/.bashrc

在文件最後加上

export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH

生效

source ~/.bashrc
sudo ldconfig -v

执行samples

cp -r /usr/src/cudnn_samples_v7/ $HOME
cd $HOME/cudnn_samples_v7/mnistCUDNN
make clean && make
./mnistCUDNN

发生了错误 找不到libcudart.so.9.0

y7000笔记本 darknet-yolo安装与测试(Ubuntu16.04+Cuda9.0+Cudnn7.1)

这是因为 环境变量的问题

sudo gedit /etc/profile
export PATH=$PATH:/usr/local/cuda-9.0/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-9.0/lib64

配置文件生效

source /etc/profile

环境变量设置完 重新测试

./mnistCUDNN

y7000笔记本 darknet-yolo安装与测试(Ubuntu16.04+Cuda9.0+Cudnn7.1)

如果在别的地方也报  找不到libcudart.so.9.0

若仍提示相同的错误,则执行以下命令,将相应的库文件复制到/usr/lib

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

ps. ldconfig命令是一个动态链接库管理命令,是为了让动态链接库为系统共享

5.安装opencv

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential cmake pkg-config
sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libgtk--dev
sudo apt-get install libatlas-base-dev gfortran

下载opencv + contrib

wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.2.0.zip
wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.2.0.zip

安装cmake-gui

sudo apt-get install cmake-qt-gui

启动cmake-gui

y7000笔记本 darknet-yolo安装与测试(Ubuntu16.04+Cuda9.0+Cudnn7.1)

改好目录 点configure 结束后会出现红色的部分

下面需要更改几个参数

(1)OPENCV_EXTRA_MODULES_PATH

这个参数指定的是额外模块的路径,指定了之后CMake就会自动寻找是否有额外模块。需要注意的是路径是contrib目录下的modules,例如/home/joe/Documents/opencv-3.4.1/opencv_contrib-3.4.1/modules,而不能只写到/home/joe/Documents/opencv-3.4.1/opencv_contrib-3.4.1,会提示找不到模块。

y7000笔记本 darknet-yolo安装与测试(Ubuntu16.04+Cuda9.0+Cudnn7.1)

(2)OPENCV_ENABLE_NONFREE

y7000笔记本 darknet-yolo安装与测试(Ubuntu16.04+Cuda9.0+Cudnn7.1)

这个参数的作用是启用OpenCV中的非免费模块,如果你想使用SIFT、SURF等算法,则必须要开启,否则等你调用它们的时候会提示它们是非免费模块,没有启用。

以上便是两个使用Contrib模块必须要修改的参数,其它没有特殊要求默认即可。配置好后,点击”Configure”按钮,CMake即开始配置,不出意外的话会会下载一些文件,这些文件都是外网的,还比较大,因此经常失败。 一般有两个文件比较难下,一个是face_landmark_model.dat

这里建议开VPN 不然这两个文件下不了 需要手动更换 具体看

https://zhaoxuhui.top/blog/2019/06/04/OpenCVContribEnvCPP.html

y7000笔记本 darknet-yolo安装与测试(Ubuntu16.04+Cuda9.0+Cudnn7.1)

下载完成 点击 generate

y7000笔记本 darknet-yolo安装与测试(Ubuntu16.04+Cuda9.0+Cudnn7.1)

4.编译代码

在新建的build文件夹里打开终端

# 利用下面的命令得到系统的线程数
nproc
# 得到n下面输入jn
make -j8 

y7000笔记本 darknet-yolo安装与测试(Ubuntu16.04+Cuda9.0+Cudnn7.1)

安装OpenCV中反复出现一个warning,not used because“ OPENCV_TRAITS_ENABLE_DEPRECATED ”has been defined。几乎每编译一个文件都会弹出这个警告。实践证明,这个警告并不影响最终的程序执行。只要没有error,warning一般可以忽略。

y7000笔记本 darknet-yolo安装与测试(Ubuntu16.04+Cuda9.0+Cudnn7.1)

安装完成 将相关头文件拷贝到系统中去

make install

y7000笔记本 darknet-yolo安装与测试(Ubuntu16.04+Cuda9.0+Cudnn7.1)

如果安装错了想删除

make install以后,源文件不建议删除,因为如果以后还需要卸载的话,直接在build目录下打开终端输入make uninstall即可,否则的话只能手动删除目录文件了

最后需要编辑配置文件,修改两个文件/etc/ld.so.conf和/etc/bash.bashrc,最后source一下,使修改立即生效

sudo gedit /etc/ld.so.conf
# 在ld.so.conf末尾加上这行/usr/local/lib 然后退出编辑
source /etc/ld.so.conf
sudo ldconfig sudo gedit /etc/bash.bashrc
# 在末尾添加下面两行
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
# 退出编辑
source /etc/bash.bashrc

测试opencv安装是否成功,执行命令如下:

opencv_version
# 3.4.1

6.卸载Cuda和Cudnn

卸载Cuda-9.0

终端输入

cd /usr/local/cuda-9.0/bin
sudo ./uninstall_cuda_9.0.pl

卸载Cudnn

终端输入

sudo apt remove cudnn*

7.安装tensorflow-gpu

直接通过pip安装Tensorflow-gpu

sudo pip3 install tensorflow-gpu

8. 安装teamviewer

官网选择linux版本,下载ubuntu版本deb安装包,官网链接地址:下载 Linux 版 TeamViewer,进行远程桌面访问和协作

wget https://download.teamviewer.com/download/linux/teamviewer_amd64.deb

这里建议用linux平台可用的motrix (类似迅雷) 下载

下载完成,使用如下命令进行deb包的安装:

sudo dpkg -i teamviewer_amd64.deb

如果出现依赖库安装失败执行如下命令,强制更新类库依赖:

sudo apt-get install -f

安装完成,执行启动teamviewer命令如下:

teamviewer

参考

https://zhaoxuhui.top/blog/2019/06/04/OpenCVContribEnvCPP.html

https://blog.csdn.net/u011285477/article/details/89924919

https://oldpan.me/archives/ubuntu-install-opencv-from-source

上一篇:HTTP 500.21 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”


下一篇:css多行本文垂直集中