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
    

如果有疑問,歡迎大家提問。


參考:

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