当前位置:   article > 正文

乌班图 18.04 tensorRT安装踩坑_graphsurgeon for tensorrt package

graphsurgeon for tensorrt package

完整的安装教程在文末,这里先展示报错信息:
根据网上给出的教程,在乌班图下安装了cuda9.0以及tensorRT,发现报错如下:
执行:

sudo apt-get install tensorrt
  • 1

报错:

下列软件包有未满足的依赖关系:
 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: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
  • 1
  • 2
  • 3
  • 4
  • 5

想了想是不是没有安装 libnvinfer5?
再次执行:

sudo aptitude install libnvinfer5
  • 1

结果依旧报错:

libnvinfer5 : 依赖: cuda-cublas-9-0 which is a virtual package and is not provided by any available package
  • 1

哎?!执行 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
  • 1

接着再次执行命令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
  • 1
  • 2
  • 3
  • 4

此时在安装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*
  • 1
  • 2
  • 3

此时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
  • 1
  • 2
  • 3
  • 4

如果没有提示出错或者缺少依赖,就安装完成啦。
查看是否安装完成:

dpkg -l | grep TensorRT
  • 1

显示结果:

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

若没有输出则说明安装失败,以上就是tensorRT C++接口的全部安装过程

如果要安装Python接口,按照官方文档,可执行命令:
如果使用的是Python2.7,则执行:

sudo apt-get install python-libnvinfer-dev
  • 1

如果使用的是Python3.x请执行:

sudo apt-get install python3-libnvinfer-dev
  • 1

如果需要支持tensorflow,需要执行:

sudo apt-get install uff-converter-tf
  • 1

按照正常情况(官方给出的安装文档)安装到此结束,你可以愉快的打卡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
  • 1
  • 2

如果需要安装tensorflow支持,则执行:

cd ..
cd uff
pip install uff-0.5.5-py2.py3-none-any.whl
  • 1
  • 2
  • 3

等待安装完成
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 
  • 1
  • 2

再次执行convert-to-uff就不会报错啦

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/129849?site
推荐阅读
相关标签
  

闽ICP备14008679号