天天看點

Google Colab上安裝TensorRT

Google Colab上安裝TensorRT

題圖攝于上海

NVIDIA TensorRT是一個高性能深度學習推理平台。它包括深度學習推理優化器和運作時,可為深度學習推理應用程式提供低延遲和高吞吐量。推理時,基于TensorRT的應用程式比僅CPU平台的執行速度快40倍。使用TensorRT,您可以優化所有主流架構中訓練出的神經網絡模型。

簡單說,TensorRT是用來優化推理過程,而不是訓練過程,這也符合大多數應用場景,因為最終部署到産品中,所做的工作就是推理。别看TensorRT包含了Tensor關鍵詞,實際上它适用于TensorFlow、caffe、PyTorch等所有主流深度學習架構。

在硬體上的需求就是Nvidia的顯示卡,準确說是支援CUDA的顯示卡。在前面一篇文章《谷歌GPU雲計算平台,免費又好用》中提到過Google Colab的硬體為NVIDIA Tesla T4,支援TensorRT。下面就說說如何在Google Colab上安裝TensorRT。

  • 挂載谷歌雲端硬碟:
from google.colab import drive

drive.mount('/content/gdrive')           

複制

  • 切換目前目錄為Google雲端硬碟的項目檔案夾:
import os

project_path = '/content/gdrive/My Drive/nvidia'  #change dir to your project folder
os.chdir(project_path)  #change dir           

複制

  • 确定CUDA,Ubuntu,TensorFlow的版本:
!nvcc --version
!cat /etc/issue
import tensorflow as tf
print(tf.__version__)           

複制

輸出如下:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:01_CDT_2018
Cuda compilation tools, release 10.0, V10.0.130
Ubuntu 18.04.2 LTS \n \l

1.13.1           

複制

可以看到CUDA的版本為10.0,Ubuntu系統版本為18.04,Tensorflow的版本為1.13.1,這些資訊有用,在下載下傳TensorRT時,需要下載下傳對應的軟體包。

  • 下載下傳TensorRT。

由于nvidia官網下載下傳需要注冊、登入等諸多步驟,而且Google雲端硬碟的上傳速度比較慢,是以我放了一份拷貝到dropbox中,從dropbox下載下傳要快得多:

!wget -O nv-tensorrt-repo-ubuntu1804-cuda10.0-trt5.1.2.2-rc-20190227_1-1_amd64.deb https://www.dropbox.com/s/45pz13r4e8ip4bl/nv-tensorrt-repo-ubuntu1804-cuda10.0-trt5.1.2.2-rc-20190227_1-1_amd64.deb?dl=0           

複制

如果直接安裝tensorrt,會出現如下錯誤:

The following packages have unmet dependencies:
 tensorrt : Depends: libnvinfer5 (= 5.1.2-1+cuda10.0) but 5.1.2-1+cuda10.1 is to be installed
            Depends: libnvinfer-dev (= 5.1.2-1+cuda10.0) but 5.1.2-1+cuda10.1 is to be installed
E: Unable to correct problems, you have held broken packages.           

複制

按照網上提供的方法,先安裝libnvinfer5=5.1.2-1+cuda10.0和libnvinfer-dev=5.1.2-1+cuda10.0,然後再安裝tensorrt:

!dpkg -i nv-tensorrt-repo-ubuntu1804-cuda10.0-trt5.1.2.2-rc-20190227_1-1_amd64.deb
!apt-key add /var/nv-tensorrt-repo-cuda10.0-trt5.1.2.2-rc-20190227/7fa2af80.pub
!apt-get update
!apt-get install -y --no-install-recommends libnvinfer5=5.1.2-1+cuda10.0
!apt-get install -y --no-install-recommends libnvinfer-dev=5.1.2-1+cuda10.0
!apt-get install tensorrt
!apt-get install python3-libnvinfer-dev
!apt-get install uff-converter-tf           

複制

  • 驗證是否安裝
!dpkg -l | grep TensorRT           

複制

輸出如下:

ii  graphsurgeon-tf                                             5.1.2-1+cuda10.0                                  amd64        GraphSurgeon for TensorRT package
ii  libnvinfer-dev                                              5.1.2-1+cuda10.0                                  amd64        TensorRT development libraries and headers
ii  libnvinfer-samples                                          5.1.2-1+cuda10.0                                  all          TensorRT samples and documentation
ii  libnvinfer5                                                 5.1.2-1+cuda10.0                                  amd64        TensorRT runtime libraries
ii  python3-libnvinfer                                          5.1.2-1+cuda10.0                                  amd64        Python 3 bindings for TensorRT
ii  python3-libnvinfer-dev                                      5.1.2-1+cuda10.0                                  amd64        Python 3 development package for TensorRT
ii  tensorrt                                                    5.1.2.2-1+cuda10.0                                amd64        Meta package of TensorRT
ii  uff-converter-tf                                            5.1.2-1+cuda10.0                                  amd64        UFF converter for TensorRT package           

複制

至此,TensorRT在Google Colab上安裝完畢。

為什麼我會寫下這篇文章呢?前段時間購入了Jetson Nano,雖然有GPU加持,但畢竟屬于邊緣計算裝置,性能有限。如果能夠使用TensorRT加速,自然可以擴大深度學習的應用範圍。然而在Jetson Nano上折騰,挺麻煩,還是先在成熟的平台上把TensorRT研究熟,然後再應用到Jetson Nano上面。

希望文章對你也有幫助。