ubuntu16.04 anaconda安装TensorRT7.0.0.13

这里写自定义目录标题

    • 安装前的说明
    • 环境
    • 安装过程
    • 坑爹问题
    • 尝试过但是失败的解决方法

安装前的说明

TensorRT在ubuntu上有两种方式安装:.deb文件/tar文件。
我通过.deb文件安装的方式失败了,这里介绍我通过.tar文件安装的过程。

环境

cuda 10.2
cudnn 7.6.5
anaconda 3.6

安装过程

  • 去官网下载TensorRT-7.0.0.11.Ubuntu-16.04.x86_64-gnu.cuda-10.2.cudnn7.6.tar.gz,没有账号需要注册;或者从我这里下载,稍后上传。

  • 在命令行里解压tar文件

    # 命令模板
    tar xzvf TensorRT-${version}.${os}.${arch}-gnu.${cuda}.${cudnn}.tar.gz 
    # 具体命令
    tar xzvf TensorRT-7.0.0.11.Ubuntu-16.04.x86_64-gnu.cuda-10.2.cudnn7.6.tar.gz
    

    说明

    • 7.x.x.x就是tensorRT版本 eg: 7.0.0.13
    • os就是系统的版本 eg: Ubuntu-16.04
    • cuda-x.x是cuda版本 eg: cuda-10.2
    • cudnn8.x是cudnn版本 eg: cudnn7.6

    解压之后应该有lib include data等子文件

    ls TensorRT-${version}
    bin  data  doc  graphsurgeon  include  lib  python  samples  targets  TensorRT-Release-Notes.pdf  uff
    
  • 添加环境变量

    sudo gedit ~/.bashrc
    # 添加一行
    export LD_LIBRARY_PATH=/home/wry/Downloads/TensorRT-7.0.0.11/lib:$LD_LIBRARY_PATH
    source ~/.bashrc
    
  • 安装python版本的tensorRT的.whl文件
    注意:执行这步操作时先进入anaconda的环境中
    conda activate your_env

    # 需要根据具体情况修改命令
    cd TensorRT-${version}/python
    pip install tensorrt-*-cp3x-none-linux_x86_64.whl
    # 我的
    cd TensorRT-7.0.0.13/python
    pip install tensorrt-*-cp37-none-linux_x86_64.whl
    
  • 如果使用tensorflow的话,需要安装UFF的.whl文件(optional)

    # 同上需修改第一行命令
    cd TensorRT-${version}/uff
    pip install uff-0.6.9-py2.py3-none-any.whl
    
  • 安装python graphsurgeon的whl文件

    # 同上需修改第一行命令
    cd TensorRT-${version}/graphsurgeon
    pip install graphsurgeon-0.4.5-py2.py3-none-any.whl
    
  • 验证是否安装成功,兩種方式

    • 在anaconda环境下打开python
      import tensorrt
      tensorrt.__version__
      '7.0.0.11'
      
    • 在命令行中运行以下代码
      #   是你解压的TensorRT那个文件夹
      cd /samples/sampleMNIST
      make
      cd /bin
      ./sample_mnist
      
      结果应该是这样:
      &&&& RUNNING TensorRT.sample_mnist # ./sample_mnist
      [07/16/2020-13:18:14] [I] Building and running a GPU inference engine for MNIST
      [07/16/2020-13:18:15] [I] [TRT] Detected 1 inputs and 1 output network tensors.
      [07/16/2020-13:18:15] [W] [TRT] Current optimization profile is: 0. Please ensure there are no enqueued operations pending in this context prior to switching profiles
      [07/16/2020-13:18:15] [I] Input:
      @@@@@@@@@@@@@@@@@@@@@@@@@@@@
      @@@@@@@@@@@@@@@@@@@@@@@@@@@@
      @@@@@@@@@@@@@@@@@@@@@@@@@@@@
      @@@@@@@@@@@@@@@@@@@@@@@@@@@@
      @@@@@@@@@@@@@@@@@@@@@@@@@@@@
      @@@@@@@@@@@@@@@@==-%-  =@@@@
      @@@@@@@@%%*--     .-  :#@@@@
      @@@@@@@#          ***#%@@@@@
      @@@@@@@@.     ::  @@@@@@@@@@
      @@@@@@@@*-+  .@@%-@@@@@@@@@@
      @@@@@@@@@@@- *@@@@@@@@@@@@@@
      @@@@@@@@@@@= :@@@@@@@@@@@@@@
      @@@@@@@@@@@@: #@@@@@@@@@@@@@
      @@@@@@@@@@@@% .-+@@@@@@@@@@@
      @@@@@@@@@@@@@*   +%@@@@@@@@@
      @@@@@@@@@@@@@@%:  =%@@@@@@@@
      @@@@@@@@@@@@@@@@*  :@@@@@@@@
      @@@@@@@@@@@@@@@@@   #@@@@@@@
      @@@@@@@@@@@@@@%=:  .@@@@@@@@
      @@@@@@@@@@@@%=.    :@@@@@@@@
      @@@@@@@@@@%+.    :*@@@@@@@@@
      @@@@@@@@%#.    :*@@@@@@@@@@@
      @@@@@@@-.    :*@@@@@@@@@@@@@
      @@@@#-.     =@@@@@@@@@@@@@@@
      @@@@=   .==@@@@@@@@@@@@@@@@@
      @@@@@@@@@@@@@@@@@@@@@@@@@@@@
      @@@@@@@@@@@@@@@@@@@@@@@@@@@@
      @@@@@@@@@@@@@@@@@@@@@@@@@@@@
      
      [07/16/2020-13:18:15] [I] Output:
      0: 
      1: 
      2: 
      3: 
      4: 
      5: **********
      6: 
      7: 
      8: 
      9: 
      

坑爹问题

  • 上边都做完之后,使用trtexec转换onnx到engine或者在python下使用tensorrt报错:
ImportError: libnvinfer.so.7: cannot open shared object file: No such file or directory

百分之两百是因为LD_LIBRARY_PATH设置出现问题,什么问题我不清楚。但是摸索了两天,找到了解决方法:

sudo gedit /etc/environment

添加(具体lib的位置由你解压tensorRT的位置决定)

LD_LIBRARY_PATH="/home/wry/Downloads/TensorRT-7.0.0.11/lib"

尝试过但是失败的解决方法

  • 修改~/.bashrc, export动态库的位置(也就是上边正常设置环境变量的步骤)
  • 在/etc/ld.so.conf里面加一行/home/wry/Downloads/TensorRT-7.0.0.11/lib,然后sudo ldconfig.
    (ldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.)

你可能感兴趣的:(ubuntu16.04 anaconda安装TensorRT7.0.0.13)