首先这是一个不完美的配置,因为Cudnn版本和TensorRT的版本并没有完全对上,运行的时候会报警告。
另:如果不做第四步TensorRT的配置大家可以将这篇文章视为一篇简单的深度学习环境配置文。
列一下版本号
- Ubuntu 18.04
- Cuda:10.1
- Cudnn:7.6.0
- Miniconda3:4.7.10
- Pycharm:2019.2.3
- TensorRT:6.0.1.5
步骤:
- Nvidia驱动
- Cuda和Cudnn
- Miniconda和Pycharm
- 安装并在环境中配置TensorRT
安装Nvidia驱动
提到Ubuntu安装Nvidia驱动大家应该会想起被nouveau支配的恐惧,因为需要各种命令去禁用nouveau才能顺利安装上Nvidia驱动。不过在这次配置中我并没有手动禁用nouveau的操作,而是采用了官方源的方式把驱动自动安装。
ubuntu-drivers devices sudo ubuntu-drivers autoinstall
上面一行查询可用的驱动,下面一行进行自动安装,然后重启就好了。
Cuda和Cudnn
首先下载Cuda安装包(.runfile格式),Cudnn(只下载cuDNN Library for Linux就好)。
进入下载目录然后运行cuda安装文件。
sudo sh cuda_10.1.243_418.87.00_linux.run
配置环境变量。在~/.bashrc中加入如下:
export CUDA_HOME=/usr/local/cuda export PATH=$PATH:$CUDA_HOME/bin export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
解压Cudnn包,得到的是一个名为cuda的文件夹。推荐大家用命令行,可是如果跟我一样不爱写代码可以直接右键Extract Here就好。
然后将include和lib64中的文件分别拷到/usr/local/cuda下的这两个目录中。还是推荐大家用命令行,如果不爱写代码可以用sudo nautilus在GUI中进行拖拽。
sudo cp cuda/include/cudnn.h /usr/local/cuda/include sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64 sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
Miniconda和Pycharm
首先下载Miniconda(推荐清华源,Anaconda功能全面带界面,不过体积较庞大,看个人习惯)和Pycharm(有学生证的同学可以下专业版)。
然后进入安装目录运行Miniconda安装包顺着过程安装就好。注意有个是否使用conda init,没选的同学需要手动添加conda到环境变量中,选了就是使用conda初始化你的bash。
最后换源,修改conda源与pip源(yes,conda环境中也能使用pip安装管理包),方法来自清华源
conda源修改~/.condarc文件:
channels: - defaults show_channel_urls: true default_channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r custom_channels: conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pip源
pip install pip -U pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
Pycharm的安装其实就是解压安装包,然后进入目录下的/bin中,运行pycharm.sh就好。但是每次都打开安装目录很不方便,下面介绍如何给pycharm创建一个桌面快捷方式。
首先在~/Desktop下新建一个Pycharm.desktop,输入以下内容
[Desktop Entry] Type=Application Name=Pycharm GenericName=pycharm-2019.2.3 Comment=Pycharm3:The Python IDE Exec=sh /opt/pycharm-2019.2.3/bin/pycharm.sh Icon=/opt/pycharm-2019.2.3/bin/pycharm.png Terminal=false Categories=Pycharm;
其中/opt/pycharm-2019.2.3是我的安装目录,Exec就是运行pycharm的命令。
安装并在环境中配置TensorRT
首先用conda新建一个环境
conda create -n tensorrt python=3.7conda activate tensorrt
tensorrt是环境名,python版本为3.7
如果大家看到这里,并且不想配置TensorRT了,可以以一条Pytorch的安装命令完美结束这次配置。
conda install pytorch torchvision cudatoolkit=10.0
如果大家还想继续爬坑,先下载TensorRT安装包。(我选的是Tar包,DEB试过但安装libnvinfer那一步不成功,求大神指导)需要注意的是
进行解压后进入目录。
将lib目录添加到环境变量LD_LIBRARY_PATH中:(大家如果不用python API到这里可以直接跳过看Sample)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<eg:TensorRT-6.x.x.x/lib>
用Python API的朋友看这边)然后我们激活刚刚创建的conda环境,首先安装cudatoolkit10.1和cudnn7.6.0
conda install cudatoolkit=10.1 conda install cudnn
进入python文件夹
pip install tensorrt-6.0.1.5-cp37-none-linux_x86_64.whl
进入uff文件夹安装uff
pip install uff-0.6.5-py2.py3-none-any.whl
进入graphsurgeon安装graphsurgeon
pip install graphsurgeon-0.4.1-py2.py3-none-any.whl
安装onnx,numpy,Pillow,pycuda
pip install --no-binary onnx ‘onnx==1.5.0‘ pip install numpy pip install Pillow pip install pycuda
配置基本完成,下面我们运行sample来验证一下。
首先是C++ samples。进入samples文件夹,编辑Makefile.config,找到CUDA_INSTALL_DIR和CUDNN_INSTALL_DIR这一行,把问号去掉,保存关闭。在samples文件夹中make进行编译。
/opt/TensorRT-6.0.1.5/samples$ sudo make
编译成功打开bin目录,运行想运行的程序(运行前先看一眼sample中对应的readme),我试的是sample_fasterRCNN。首先在/data/faster-rcnn中下载权重文件VGG16_faster_rcnn_final.caffemodel,然后回到/bin中运行./sample_fasterRCNN即可。测试用例一共4个下面给大家贴一个。
下面介绍Python sample。首先用Pycharm打开/samples/python文件夹。(我直接复制出来)
其中tensorflow和pytorch的sample需要对应框架支持,我只测试了caffe的int8_caffe_mnist。
在data/mnist/目录中下载MNIST数据集,如果像我这样把整个samples/python复制出来的需要在原目录的data/mnist中拷贝文件过来。
然后运行sample.py,注意用pycharm直接运行会报错找不到libnvinfer,需要在配置中加入环境变量LD_LIBRARY_PATH=/opt/TensorRT-6.0.1.5/lib。
下面是运行结果。
首先是一个警告三连(因为conda环境中最高的cudnn版本是7.6.0所以我也没有办法了,特别奇怪的是系统cudnn是7.6.3的时候会运行不下去,希望conda尽快更新cudnn的版本)。
好了这篇配置小白文就到这里,望大家多多指教。
原文地址:https://www.cnblogs.com/rickyngmo22/p/11650994.html