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

猜你喜欢

转载自blog.csdn.net/prototype___/article/details/80282528