文章目录
TensorRT
参考博文:TensorRT安装及使用教程
【转载】TensorRT 系列之入门篇
产生背景
深度学习模型在部署时,往往需要降低成本而部署到嵌入式平台(如Jeston)上,部署端的设备性能不一,对模型运行速度不同,可能会达不到要求。因此需要改造优化现有模型,提出轻量级的模型,重新部署。NVDIA本着让大家能更好地利用GPU,使其在做深度学习训练的时候达到更好的效果的目标,推出了支持高性能深度学习支持引擎——TensorRT。
作用
- TensorRT 是对训练好的模型进行优化。TensorRT就只是推理优化器,当你的网络训练完之后,可以将训练模型文件直接丢进TensorRT中,而不再需要依赖深度学习框架(Caffe,TensorFlow等)。
- TensorRT是一个只有前向传播的深度学习框架,这个框架可以将 Caffe,TensorFlow的网络模型解析,然后与TensorRT中对应的层进行一一映射,把其他框架的模型统一全部 转换到TensorRT中,然后在TensorRT中可以针对NVIDIA自家GPU实施优化策略,并进行部署加速。
Jetson inference学习
官方教程链接:jetson-inference
介绍
该教程是使用Jetson开发板来推理和实时使用深度学习视觉模型的指南。采用TensorRT将神经网络部署到嵌入式Jetson平台上,使用图优化、内核融合和FP16/INT8精度提高性能和能耗效率。该教程包括图像识别的imageNet,对象定位的detectNet和语义分割的segNet,并且继承自共享的tensorNet对象。同时提供了从实时摄像机提要和图像处理流媒体的示例。
下载安装Jetson inference
参考博文:玩转Jetson Nano(四)跑通jetson-inference
图片分类(ImageNet)
使用Jetson上的控制台程序
- 进入到aarch64/bin目录下
cd jetson-inference/build/aarch64/bin
- 使用imagenet-console命令运行模型,且有三个命令参数需要设置:
- 输入图片的路径(jpg, png, tga, bmp)。
- 输出图片的路径(jpg, png, tga, bmp)。
- 选项–network:可以使用该选项替换分类使用的模型,默认为GoogleNet。使用方式为在network后添加当前路径下存在的模型名称。
//C++
./imagenet-console --network=googlenet orange_0.jpg output_0.jpg # --network flag is optional
//Python
./imagenet-console.py --network=googlenet orange_0.jpg output_0.jpg # --network flag is optional
- 注意:第一次运行程序时,TensorRT可能需要几分钟的时间来优化网络。这个优化后的网络文件在第一次运行后缓存到磁盘,因此以后的运行将加载得更快。
- 第一次下载默认下载GoogleNet and ResNet-18模型,但可以自己下载其他提供好的模型。方法运行如下命令:
cd jetson-inference/tools
./download-models.sh