Ubuntu16.04配置Mask-Rcnn环境

软硬件环境描述

  • 显卡:RTX2060
  • 系统:Ubuntu16.04
  • 显卡驱动版本: NVIDIA-Linux-x86_64-440.82
  • Cuda版本: cuda_10.0.130_410.48_linux
  • Cudnn版本: cudnn-10.0-linux-x64-v7.6.5.32
  • Tensorflow版本: TensorFlow 1.14.0 + Keras 2.2.5

显卡驱动安装

1.禁用第三方显卡驱动nouveau

  • 编辑文件blacklist.conf文件:
sudo vim /etc/modprobe.d/blacklist.conf

在文件最后部分插入一下两行内容:

blacklist nouveau
options nouveau modeset=0
  • 更新系统
sudo update-initramfs -u
  • 重启电脑,验证nouveau是否已禁用
lsmod | grep nouveau

不显示额外信息,则说明禁用成功,如下图所示:
在这里插入图片描述
2.下载官方驱动
官网网站下载显卡驱动,我安装的是440.10版本,官方驱动下载地址
3.安装驱动

  • 将NVIDIA-Linux-x86_64-440.82.run文件放到home目录下,Ctrl+Alt+F1组合键进入命令行界面
  • 输入下列命令,关闭图形界面
service lightdm stop 
  • 卸载掉原有驱动
apt-get remove nvidia-*
  • 赋予驱动文件执行权限:
chmod  a+x NVIDIA-Linux-x86_64-440.82.run
  • 正式安装驱动
./NVIDIA-Linux-x86_64-440.82.run -no-x-check -no-nouveau-check -no-opengl-files

-no-x-check:安装驱动时关闭X服务
-no-nouveau-check:安装驱动时禁用nouveau
-no-opengl-files:只安装驱动文件,不安装OpenGL文件
注:一定要添加-no-opengl-files选项,不然会出现循环登录的问题,其它两项不添加也能安装成功

接下来就在需要选择时按下Enter键就好,一直按照默认的来。

  • 安装完成,输入命令回到图形界面:
service lightdm start
  • 打开Terminal,输入命令,如下图所示即说明驱动安装成功:Ubuntu16.04配置Mask-Rcnn环境_第1张图片

CUDA安装

1.文件下载
点击下方链接下载历史版本的Cuda文件:https://developer.nvidia.com/cuda-toolkit-archive
因为TensorFlow的原因,这里我下载的是CUDA10.0,CUDA10.2也可以安装成功,但是可能与TensorFlow不适配。
2.安装

sudo chmod a+x cuda_10.0.130_410.48_linux.run 
sudo sh cuda_10.0.130_410.48_linux.run 
  • 接下来会出现很长的声明,一直按enter键,把声明读完,然后就可以进行选择了。
  • 对于第一个选项install nvidia accelerated Graphics
    Driver,选n,因为我们之前已经手动安装过驱动了。
  • 安装完成后会出现一个提醒,说安装CUDA时没有选择安装驱动,直接忽略它。

3.配置环境变量
打开.bash文件,在最后加两句命令:

sudo gedit ~/.bashrc
export PATH=/usr/local/cuda-10.0/bin:$PATH
exportLD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

保存关闭,命令行输入:

source ~/.bashrc

4.查看CUDA版本信息,如下图所示则代表安装成功:
Ubuntu16.04配置Mask-Rcnn环境_第2张图片
5.拷贝动态链接库的文件
在Ubuntu18.04上执行darknet时发现,系统默认在/usr/local/lib下寻找CUDA的动态链接库,但是库文件安装在了/usr/local/cuda-10.2/下面,因此执行利用CUDA加速的程序时会发生下列错误:

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

此时执行下列命令拷贝一下文件就可以了:

sudo cp /usr/local/cuda-10.0/lib64/libcudart.so.10.0 /usr/local/lib/libcudart.so.10.0 && sudo ldconfig
sudo cp /usr/local/cuda-10.2/lib64/libcublas.so.10.0 /usr/local/lib/libcublas.so.10.0 && sudo ldconfig  
sudo cp /usr/local/cuda-10.2/lib64/libcurand.so.10.0 /usr/local/lib/libcurand.so.10.0 && sudo ldconfig 
sudo cp /usr/local/cuda-10.2/lib64/libcudnn.so.7 /usr/local/lib/libcudnn.so.7 && sudo ldconfig

6.CUDA卸载
(1)在/usr/local/cuda/bin目录下运行卸载脚本:

sudo  ./uninstall_cuda_10.0.pl

(2)删除安装文件夹:

sudo rm -rf cuda
sudo rm -r cuda-10.0

(3)查找是否有没卸载干净的文件,给删除,经验表明其实基本全部删完了,不要乱删东西!

sudo find / -name cuda10*

Cudnn安装

1.官方文件下载
点击链接下载官网,我选择安装的是适配CUDA10.0的Cudnn7.6.5,点击cuDNN Library for Linux选项进行下载:
https://developer.nvidia.com/rdp/cudnn-download
Ubuntu16.04配置Mask-Rcnn环境_第3张图片
2.输入下列命令进行安装
对下载的文件进行解压,会得到一个cuda文件夹,进入后执行命令进行安装:

sudo cp include/cudnn.h /usr/local/cuda/include/
sudo cp 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*

3.查看cudnn版本

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

Ubuntu16.04配置Mask-Rcnn环境_第4张图片
4.卸载cudnn
如果需要卸载cudnn的话,只需要执行以下两条命令,然后重新安装即可

sudo rm -rf /usr/local/cuda/include/cudnn.h
sudo rm -rf /usr/local/cuda/lib64/libcudnn*

Anaconda安装

1.下载链接,注意要安装python3版本:
https://www.anaconda.com/products/individual#linux
2.进入安装包目录,打开Terminal进行安装

bash Anaconda3-2020.02-Linux-x86_64.sh

按照命令行中的安装指导,一直选择默认项就可以了
3.启动Anaconda Navigator 图形化界面

 anaconda-navigator

Tensorflow安装配置

1.创建虚拟环境并激活

conda create -n tensorflow python=3.6
source activate tensorflow

2.安装依赖包

pip3 install numpy
pip3 install scipy
pip3 install cython
pip3 install h5py
pip3 install Pillow
pip3 install scikit-image
pip3 install theano
pip3 install jupyter
pip3 install six
pip3 install imgaug
pip3 install opencv-python

3.安装keras
keras与Tensorflow有版本相互依赖关系,具体详见官网
Ubuntu16.04配置Mask-Rcnn环境_第5张图片
安装keras时要指定版本号:

pip3 install keras==2.2.5

卸载的话用下列命令:

pip3 uninstall keras

4.安装pycocotools

git clone https://github.com/waleedka/coco.git
cd /home/shiqi/coco/PythonAPI
python3 setup.py build_ext install

5.安装Tensorflow

  • Tensorflow版本对GCC、CUDA、Cudnn有版本适配要求,具体详见官网
    Ubuntu16.04配置Mask-Rcnn环境_第6张图片
  • 查看电脑的gcc版本
gcc -v

本电脑是Ubuntu16.04自带的gcc5.4.0,所以选择安装Tensorflow-1.14.0,这也是之前安装CUDA10.0和Cudnn7.6.5的原因。本来依据官网安装的是Cudnn7.4,但是运行Mask-Rcnn时出错,所以卸载重装Cudnn7.6.5。

  • 输入命令安装tensorflow
pip3 install tensorflow-gpu==1.14.0 
  • 安装完成之后输入下列命令验证一下:
python3
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
sess.run(hello)

如果命令行输出 Hello, TensorFlow! ,说明tensorflow安装成功
测试完成以后输入 exit() 退出python,继续下一步安装
6.卸载Tensorflow

sudo pip3 uninstall protobuf
sudo pip3 uninstall tensorflow-gpu

Mask-RCNN安装配置

1.下载Mask-RCNN

 git clone https://github.com/matterport/Mask_RCNN.git

2.下载coco权重文件 mask_rcnn_coco.h5
https://github.com/matterport/Mask_RCNN/releases
3.运行Mask_RCNN案例

cd /home/shiqi/Mask_RCNN
jupyter notebook
  • 稍等片刻,会在浏览器打开页面,点击进入 samples目录,点击demo.ipynp进入代码运行页面。
  • 选择 Cell 菜单,在 Cell下拉菜单选择 Run All,稍等片刻,在该页面底部会输出运行结果。

Ubuntu16.04配置Mask-Rcnn环境_第7张图片

  • 运行过程中可能出现的错误
import cv2
ImportError: /opt/ros/kinetic/lib/python2.7/dist-packages/cv2.so: undefined symbol: PyCObject_Type

这是由于电脑之前安装了ROS的缘故,ROS中自带的库与其发生了冲突,在/anaconda3/envs/tensorflow/lib/python3.6/site-packages.imgaug.py文件中进行如下修改可以解决:

import sys
ros_path = '/opt/ros/kinetic/lib/python2.7/dist-packages'
if ros_path in sys.path:
    sys.path.remove(ros_path)
import cv2
sys.path.append('/opt/ros/kinetic/lib/python2.7/dist-packages')

参考博客:
Ubuntu16.04更换cudnn版本
ubuntu16配置Mask-RCNN
安装了ros后Python3 调用import cv2报错解决办法
ubuntu16.04 RTX2060||安装nvidia显卡驱动|cuda|cudnn

你可能感兴趣的:(Ubuntu常用笔记)