ubuntu18.04上部署深度学习环境(包含opencv、驱动、cuda、cudnn、tensorflow、keras)

ubuntu18.04上部署深度学习环境


对于新手来说,在ubuntu上部署深度学习开发环境是有一定难度的,特别是容易出现一些莫名其妙的错误,经常会出现安装完不行又卸载,卸载完又重新安装的痛苦循环。为了方便在ubuntu18.04上安装opencv、nvidia驱动、cuda、cudnn、tensorflow、keras等,我将这些软件的安装做了一个汇总。

安装opencv

安装opencv相对其它来说,是独立开的,不像tensorflow、cuda、cudnn会相互依存。用pip安装现在也很简单,但需要注意与ubuntu18.04的兼容性。ubuntu18.04建议安装opencv3.4.5版本。

pip install opencv-python==3.4.5

为显卡安装驱动

目前来说安装显卡驱动比较方便,可以直接使用ubuntu里的“软件和更新”。

ubuntu18.04上部署深度学习环境(包含opencv、驱动、cuda、cudnn、tensorflow、keras)

可以看到ubuntu默认使用的是nouveau驱动,需要手动调整为NVIDIA的官方驱动才能支持cuda。特别需要注意的是选择的驱动版本必须要与cuda的版本向匹配,不然会出现许多莫名其妙的错误。
关于版本匹配可以参考:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

ubuntu18.04上部署深度学习环境(包含opencv、驱动、cuda、cudnn、tensorflow、keras)
由于我安装的是cuda10.1的版本,驱动应该选择418,只需要等待系统自动安装好后,重新启动系统。
此时,可以在命令行输入

nvidia-smi

测试驱动是否安装成功。

安装并行运算工具CUDA

成功安装上驱动之后,我们要先安装cuda的一些依赖项。

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libgl1-meta-dev libglu1-mesa libglu1-mesa-dev libxi-dev

接着,我们要去nvidia的网站上下载对应版本的cuda。
链接:https://developer.nvidia.com/cuda-toolkit-archive

ubuntu18.04上部署深度学习环境(包含opencv、驱动、cuda、cudnn、tensorflow、keras)
按照自己的系统选择好对应版本,点击download开始下载。
下载完成后,进入下载的目录,输入以下命令安装cuda。

sudo sh cuda_10.1.105_418.39_linux.run

**注意:在安装时,一定要把Driver的选项点掉。**不然会重新安装一次驱动,可能会出错。
点击install开始安装。

ubuntu18.04上部署深度学习环境(包含opencv、驱动、cuda、cudnn、tensorflow、keras)
最后,我们要设置环境变量。

sudo nano ~/.bashrc

在最后添加三行:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH: /usr/local/cuda-10.1/lib64
export PATH=$PATH: /usr/local/cuda-10.1/bin
export CUDA_HOME=$CUDA_HOME: /usr/local/cuda-10.1

运行

source ~/.bashrc

让设置生效。
如果想测试是否安装成功,可以输入

nvcc --version

如果安装成功会显示cuda的版本号。

ubuntu18.04上部署深度学习环境(包含opencv、驱动、cuda、cudnn、tensorflow、keras)

安装cudnn

安装cudnn比较简单。只是需要注册nvidia的开发者账号,开通之后才能在官网下载。
链接:https://developer.nvidia.com/cudnn
点击download cuDNN。(网站比较慢,需要耐心等待。)

ubuntu18.04上部署深度学习环境(包含opencv、驱动、cuda、cudnn、tensorflow、keras)
选择对应cuda版本的cudnn就可以了。

ubuntu18.04上部署深度学习环境(包含opencv、驱动、cuda、cudnn、tensorflow、keras)
下载的时候,点击“cuDNN Library for Linux(x86)”,下载下来是一个压缩包。
进入相应的目录,解压缩,并对cuda相应文件进行更新。

tar -xzvf cudnn-10.1-linux-x64-v7.6.5.32.tgz
cd cuda
cd ./include
sudo cp cudnn.h /usr/local/cuda/include/
cd ../lib64
sudo cp lib* /usr/local/cuda/lib64/

为刚刚复制的文件赋予权限。

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

删除原libcudnn.so、libcudnn.so.7两个文件,并建立软连接到libcudnn.so.7.6.5。

cd usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.7
sudo ln -s libcudnn.so.7.6.5 libcudnn.so.7
sudo ln -s libcudnn.so.7 libcudnn.so

最后让刚刚的设置生效。

sudo ldconfig -v

此时,可以再次输入

nvcc --version

检测cuda能否正常使用。

安装gpu版本的tensorflow

首先,需要注意的还是版本匹配问题,可以查看下面网址:
https://tensorflow.google.cn/install/source

ubuntu18.04上部署深度学习环境(包含opencv、驱动、cuda、cudnn、tensorflow、keras)
ubuntu18.04上部署深度学习环境(包含opencv、驱动、cuda、cudnn、tensorflow、keras)
cpu版本的tensorflow参照第一个图,gpu版本的tensorflow参照第二个图。我安装的cuda是10.1、cudnn是7.6.5,系统自带的python是3.7版,所以可以安装tensorflow的版本为2.1.0、2.2.0、2.3.0.
我决定安装tensorflow2.2.0版本,直接在命令行输入

pip install tensorflow-gpu==2.2.0

等待下载安装完成。
检测方法是进入python3,输入

import tensorflow as tf
tf.__version__

如果此时正确显示出了tensorflow的版本号2.2.0,恭喜你tensorflow-GPU安装成功。
ubuntu18.04上部署深度学习环境(包含opencv、驱动、cuda、cudnn、tensorflow、keras)

我在安装过程中遇到一个错误,如下图红字:
ubuntu18.04上部署深度学习环境(包含opencv、驱动、cuda、cudnn、tensorflow、keras)
输入

pip install wrapt --ignore-installed

就可以解决。

安装keras

直接在命令行输入

pip install keras==2.4.3
上一篇:ubuntu20.04、cuda11.1:tensorflow安装--pytorch安装


下一篇:nvidia显卡驱动