赞
踩
完整的安装教程在文末,这里先展示报错信息:
根据网上给出的教程,在乌班图下安装了cuda9.0以及tensorRT,发现报错如下:
执行:
sudo apt-get install tensorrt
报错:
下列软件包有未满足的依赖关系:
tensorrt : 依赖: libnvinfer5 (= 5.0.2-1+cuda9.0) 但是它将不会被安装
依赖: libnvinfer-dev (= 5.0.2-1+cuda9.0) 但是它将不会被安装
依赖: libnvinfer-samples (= 5.0.2-1+cuda9.0) 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
想了想是不是没有安装 libnvinfer5?
再次执行:
sudo aptitude install libnvinfer5
结果依旧报错:
libnvinfer5 : 依赖: cuda-cublas-9-0 which is a virtual package and is not provided by any available package
哎?!执行 nvcc -V
显示劳资的cuda不是安装成功了吗?为啥还显示缺少cuda-cublas??!
解决方案:
网上的大部分教程都是分开的,安装tensorRT如果采用deb包安装,那么CUDA也必须采用deb包安装。
(而网络上大部分CUDA的安装教程是采用的run文件安装)
1.安装CUDA,注意:这里要看下tensorRT的CUDA版本号(tensorRT依赖10.0与9.0,而CUDA官网推荐的都是10.1与9.1,所以需要选择CUDA的历史版本安装)
这里我选择安装9.0版本的CUDA:
进入地址https://developer.nvidia.com/cuda-toolkit-archive选择CUDA版本
根据自己的硬件下载不同的版本号,Installer Type 中选择“deb(local) ”即可
根据官方提供的文档进行安装:
Installation Instructions:
sudo dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb
sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda
再次安装Patch 1,注意,安装Patch 1的时候与上述命令类似,
最后一条命令修改为:
sudo apt-get install cuda-libraries-9-0
接着再次执行命令nvcc -V
就可以显示CUDA的安装情况,例如:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176
此时在安装cuDNN,注意了cuDNN的版本号要与CUDA版本号一致:
地址:https://developer.nvidia.com/rdp/cudnn-archive
上面有版本号的对应关系不要下错了哟(需要自己注册一个英伟达账号,tensorRT下同)
下载完成后,解压,会得到一个名为cuda的文件夹
执行命令:
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*
此时cuDNN就安装完成了。
接下来安装tensorRT:
下载地址:https://developer.nvidia.com/nvidia-tensorrt-5x-download
选择相应的版本即可(注意tensorRT依赖的CUDA版本号应该与你刚刚安装的版本号相同)
我选择的是“Debian and RPM Install Packages”安装方式,下载完deb文件后,执行Linux命令:
sudo dpkg -i nv-tensorrt-repo-ubuntu1x04-cudax.x-trt5.x.x.x-ga-yyyymmdd_1-1_amd64.deb
sudo apt-key add /var/nv-tensorrt-repo-cudax.x-trt5.x.x.x-ga-yyyymmdd/7fa2af80.pub
sudo apt-get update
sudo apt-get install tensorrt
如果没有提示出错或者缺少依赖,就安装完成啦。
查看是否安装完成:
dpkg -l | grep TensorRT
显示结果:
ii graphsurgeon-tf 5.0.2-1+cuda9.0 amd64 GraphSurgeon for TensorRT package
ii libnvinfer-dev 5.0.2-1+cuda9.0 amd64 TensorRT development libraries and headers
ii libnvinfer-samples 5.0.2-1+cuda9.0 all TensorRT samples and documentation
ii libnvinfer5 5.0.2-1+cuda9.0 amd64 TensorRT runtime libraries
ii tensorrt 5.0.2.6-1+cuda9.0 amd64 Meta package of TensorRT
ii uff-converter-tf 5.0.2-1+cuda9.0 amd64 UFF converter for TensorRT package
若没有输出则说明安装失败,以上就是tensorRT C++接口的全部安装过程
如果要安装Python接口,按照官方文档,可执行命令:
如果使用的是Python2.7,则执行:
sudo apt-get install python-libnvinfer-dev
如果使用的是Python3.x请执行:
sudo apt-get install python3-libnvinfer-dev
如果需要支持tensorflow,需要执行:
sudo apt-get install uff-converter-tf
按照正常情况(官方给出的安装文档)安装到此结束,你可以愉快的打卡Python IDE去import了
emm…
可是偏偏我安装的时候就是不正常
import tensorrt
显示报错:
ImportError: No module named tensorrt
麻蛋,为啥没有该模块,我明明安装了呀
于是在一番折腾后,我找到了解决方案:
进入地址:https://developer.nvidia.com/nvidia-tensorrt-5x-download
对,依旧是英伟达的tensorRT的下载地址
找到Tar File Install Packages目录
点击:TensorRT 5.0.2.6 GA for Ubuntu 16.04 and CUDA 9.0 tar package 下载(根据自己实际版本)
下载完之后不要安装,因为你已经安装好了。我们只需要用归档管理器打开解压:
cd TensorRT-5.0.2.6/python
pip install tensorrt-5.0.2.6-py2.py3-none-any.whl
如果需要安装tensorflow支持,则执行:
cd ..
cd uff
pip install uff-0.5.5-py2.py3-none-any.whl
等待安装完成
OK,到这里就能愉快的import啦~
更新:
在使用uff模块转化tensorflow的pb模型时,会提示错误:
ImportError: ERROR: Failed to import module (No module named
graphsurgeon) Please make sure you have graphsurgeon installed. For
installation instructions, see:
https://docs.nvidia.com/deeplearning/sdk/tensorrt-api/#python and
click on the ‘TensoRT Python API’ link
提示没有安装graphsurgeon模块。
此时,需要进入tensorRT tar包所解压的目录下,执行命令:
cd TensorRT-5.0.2.6/graphsurgeon
pip install graphsurgeon-0.3.2-py2.py3-none-any.whl
再次执行convert-to-uff
就不会报错啦
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。