tensorRT 环境搭建

首先说明,这个是 20200314 的帖子,可能各位大大看到的时候,情况已经发生了变化,各位做参考就好了。

前面是拉拉杂杂的,可以直接到后面的安装

其实安装 tersorRT 其实比较简单,但是要将 tensorRT 和 pytorch 安装在一个盒子里面,就尴尬了。

应该在实际的运行环境,不需要这样做,因为按照官方介绍 tensorRT 是做运用环境下的部署,运行环境建议大家直接使用 tensorRT 的c++版本,

虽然tensorRT 有python接口,但是是以来 pycuda 做的,pycuda 使用 pip 安装的话,目前只支持到 cuda 9.2。而且python版本的支持最高也在3.7。 [官方介绍的pip安装,后面在git上找到一个pycuda的项目,但是清楚不是一个项目。]

这样就尴尬了,我本地环境必须选择cuda9.2, tensorRT 官方提供的cuda运行环境是 9.0,10.0,10.2。无赖之举,我这里选择的是 9.0 版本,还好做了兼容,没有出幺蛾子。

然后就是pytorch的安装了,官方提供了 9.2,10.1 两个版本,国内镜像只有10.0 的版本。这也是一个尴尬的地方, 我只有在官方下载,但是不知道是围墙还是啥原因,导致我下载一直终端,低速。

我准备了两个方案,一个是继续低速下载,一个是在git上clone源码。

后者肯定事情很多,所幸最后下载下来了安装包,阿里云 的服务器90kb左右,下载了两小时,不想吐嘈,后面我把安装包放在百度云盘上,供大家下载。

所以总算是折腾好了,

$ python sample.py 
Train Epoch: 1 [0/60000 (0%)]	Loss: 2.331818
Train Epoch: 1 [6400/60000 (11%)]	Loss: 0.535740
Train Epoch: 1 [12800/60000 (21%)]	Loss: 0.219056
Train Epoch: 1 [19200/60000 (32%)]	Loss: 0.200655
Train Epoch: 1 [25600/60000 (43%)]	Loss: 0.244704
Train Epoch: 1 [32000/60000 (53%)]	Loss: 0.103675
Train Epoch: 1 [38400/60000 (64%)]	Loss: 0.049943
Train Epoch: 1 [44800/60000 (75%)]	Loss: 0.281713
Train Epoch: 1 [51200/60000 (85%)]	Loss: 0.141263
Train Epoch: 1 [57600/60000 (96%)]	Loss: 0.103202

Test set: Average loss: 0.0798, Accuracy: 9757/10000 (98%)

Train Epoch: 2 [0/60000 (0%)]	Loss: 0.115055
Train Epoch: 2 [6400/60000 (11%)]	Loss: 0.126034
Train Epoch: 2 [12800/60000 (21%)]	Loss: 0.131155
Train Epoch: 2 [19200/60000 (32%)]	Loss: 0.162195
Train Epoch: 2 [25600/60000 (43%)]	Loss: 0.130584
Train Epoch: 2 [32000/60000 (53%)]	Loss: 0.048080
Train Epoch: 2 [38400/60000 (64%)]	Loss: 0.013106
Train Epoch: 2 [44800/60000 (75%)]	Loss: 0.044821
Train Epoch: 2 [51200/60000 (85%)]	Loss: 0.045674
Train Epoch: 2 [57600/60000 (96%)]	Loss: 0.073772

Test set: Average loss: 0.0580, Accuracy: 9813/10000 (98%)

Output Before Engine Refit
[TensorRT] WARNING: Current optimization profile is: 0. Please ensure there are no enqueued operations pending in this context prior to switching profiles
Test Case: 0
Prediction: 1
Output After Engine Refit
[TensorRT] WARNING: Current optimization profile is: 0. Please ensure there are no enqueued operations pending in this context prior to switching profiles
Test Case: 4
Prediction: 4

这是 TensorRT-7.0.0.11/samples/python/engine_refit_mnist 这个样例代码,有两个警告,先不管了,等熟悉一下 tensorRT 运用,再来处理。


安装:

我的系统 ubuntu 16.04。
各个安装包版本:

  • cuda - 9.2
    大家可以根据自己情况,按照官方提示进行下载安装。

  • cudnn - 7
    按照官方提示进行下载基于cuda-9.2的版本进行安装。

  • python - 3.7
    我python使用的 anaconda 进行管理的,所以不用影响系统环境,比较方便的虚拟一个环境进行管理。

    $ conda create -n trt
    $ conda activate trt
    $ conda install pip
    $ conda install python=3.7
    
  • pycuda - 2019.1.2

    $ conda activate trt
    $ pip install 'pycuda>=2019.1.1' 
    
  • tensorRT - 7.0.0.11 基于 cuda-9.0 python3.7
    根据自己的环境,官方下载对应版本。然后根据自己的操作系统参考文档即可。

  • pytorch - 1.4.0+cu92 百度云盘 - [提取码: a5tn]
    官方提供的安装方式:

    $ conda activate trt
    $ pip install torch==1.4.0+cu92 torchvision==0.5.0+cu92 -f https://download.pytorch.org/whl/torch_stable.html
    

    我下载的时候网络不太稳定,所以通过下载工具下载,然后再安装的。

    $ pip install torch-1.4.0+cu92-cp37-cp37m-linux_x86_64.whl
    $ pip install torchvision-0.5.0+cu92-cp37-cp37m-linux_x86_64.whl
    

如果有疑问,欢迎大家提问。


参考:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章