软硬件环境描述
- 显卡: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
或者输入:
sudo telinit 3
- 卸载掉原有驱动
apt-get remove nvidia-*
- 赋予驱动文件执行权限:
chmod a+x NVIDIA-Linux-x86_64-440.82.run
- 正式安装驱动
sudo 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,输入命令,如下图所示即说明驱动安装成功:
- 特殊情况:
- 如果发现“关于这台计算机”里图形仍然是"llvmpipe (LLVM 6.0, 256 bits)",其实并没有装好。解决办法:卸载驱动,重新安装 不应该加参数 --no-opengl-files
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版本信息,如下图所示则代表安装成功:
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
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
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有版本相互依赖关系,具体详见官网
安装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有版本适配要求,具体详见官网
- 查看电脑的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,稍等片刻,在该页面底部会输出运行结果。
- 运行过程中可能出现的错误
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