TensorRT 3.0在Jetson TX2部署實戰

目前關於使用TensorRT 3.0加速推理caffe的教程不太多,本博客會介紹部署TensorRT從HOST端到Jetson TX2端整個WORKFLOW,然後說明如何修改samples代碼以便可以用自定義模型進行推理加速,主要從以下三個方面展開

  • TensorRT簡介
  • 環境配置
  • Jetson端模型文件推理

一、TensorRT簡介

NVIDIA TensorRT是一種高性能神經網絡推理(Inference)引擎,用於在生產環境中部署深度學習應用程序,應用有圖像分類、分割和目標檢測等,可提供最大的推理吞吐量和效率。接觸過深度網絡壓縮的同學應該知道網絡壓縮最關鍵的兩個思路,剪枝和量化。 TensorRT就是量化,將FP32位權值數據優化爲 FP16 或者 INT8,而推理精度不發生明顯的降低。

二、環境配置

HOST端使用Ubuntu 16.04 的主機,具體環境信息:

版本 描述
CUDA 9.0 NVIDIA推出的用於自家GPU的並行計算框架
cuDNN 7.1.2 NVIDIA打造的針對深度神經網絡的GPU加速庫
pycuda 基於Python實現的使用CUDA的工具包7
caffe 清晰,可讀性高,快速的深度學習框架
python 2.7 編程語言
tensorrt 3.0 NVIDIA推出的深度學習推理加速引擎7

Jetson TX2端
TX2環境爲Jetpack 3.2,具體如下:

名稱 版本
L4T 28.2
CUDA Toolkit 9.0
cuDNN 7.0.5
tensorrt 3.0.4

三、TX2上跑已經訓練好的自定義模型

本博文是對LeNet神經網絡進行微調。
DIGITS訓練好模型,對模型進行測試,測試無誤後,可以在tx2上加載自定義模型,創建保存快照的目錄

$ cd jetson-inference/data/networks
$ mkdir LeNet-fine-tuning

確保在jetson-inference / build / aarch64 / bin目錄下,執行命令,需要測試的圖像輸出圖像也在這個目錄下

  1. 選擇最後一個epoch下載模型,會下載一個壓縮包, 名字類似於20180501-191922-f853_epoch_30.0.tar.gz.通過DIGITS或將該壓縮包用U盤,網線等任何方式拷貝到tx2上

  2. 將壓縮包解壓到
    jetson-inference/data/networks/LeNet-fine-tuning
    數據集的目錄下, 可以看到解壓后里面模型快照和結構文件,其中deploy.prototxt是描述網絡結構的, snapshot_iter_30.caffemodel是網絡的權值

  3. 將$NET下面的變量設置爲提取的快照的路徑
    $ NET=networks/LeNet-traffic-sign

  4. 運行處理離線圖片的程序, input_blob, output_cvg,
    output_bbox參數不用設置,設置一下模型結果的prototxt文件和模型權值caffemodel文件

$ ./imagenet-console test_0.jpg output_0.jpg \
--prototxt=$NET/deploy.prototxt \
--model=$NET/snapshot_iter_30.caffemodel \
--labels=$NET/labels.txt \
--input_blob=data \
--output_blob=softmax
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章