首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >加速深度学习在线部署,TensorRT安装及使用教程

加速深度学习在线部署,TensorRT安装及使用教程

作者头像
机器学习AI算法工程
发布于 2020-10-21 09:06:51
发布于 2020-10-21 09:06:51
3.2K0
举报

1 什么是TensorRT

一般的深度学习项目,训练时为了加快速度,会使用多GPU分布式训练。但在部署推理时,为了降低成本,往往使用单个GPU机器甚至嵌入式平台(比如 NVIDIA Jetson)进行部署,部署端也要有与训练时相同的深度学习环境,如caffe,TensorFlow等。由于训练的网络模型可能会很大(比如,inception,resnet等),参数很多,而且部署端的机器性能存在差异,就会导致推理速度慢,延迟高。这对于那些高实时性的应用场合是致命的,比如自动驾驶要求实时目标检测,目标追踪等。所以为了提高部署推理的速度,出现了很多轻量级神经网络,比如squeezenet,mobilenet,shufflenet等。基本做法都是基于现有的经典模型提出一种新的模型结构,然后用这些改造过的模型重新训练,再重新部署。

而tensorRT 则是对训练好的模型进行优化。tensorRT就只是推理优化器。当你的网络训练完之后,可以将训练模型文件直接丢进tensorRT中,而不再需要依赖深度学习框架(Caffe,TensorFlow等),如下:

可以认为tensorRT是一个只有前向传播的深度学习框架,这个框架可以将 Caffe,TensorFlow的网络模型解析,然后与tensorRT中对应的层进行一一映射,把其他框架的模型统一全部 转换到tensorRT中,然后在tensorRT中可以针对NVIDIA自家GPU实施优化策略,并进行部署加速。

2 TensorRT安装

tensorrt的安装方式很简单,只需要注意一些环境的依赖关系就可以,我们以tensorrt5.0.4版本为例,参考官网安装教程https://docs.nvidia.com/deeplearning/sdk/tensorrt-install-guide/index.html,这里简单总结一下步骤

tensorrt支持的环境和python版本如表所示

2.1 环境确认

  • 确认CUDA版本是9.0或者10.0,可通过运行nvcc -V指令来查看CUDA,如果不是9.0以上,则需要先把CUDA版本更新一下nn
  • cudnn版本是7.3.1,如果不满足要求,按照《Linux之cudnn升级方法》进行升级
  • 需安装有tensorflow,uff模块需要

2.2 安装pycuda

如果要使用python接口的tensorrt,则需要安装pycuda

2.3 下载安装包

  1. 进入下载链接https://developer.nvidia.com/nvidia-tensorrt-download
  2. 点击Download Now(需要登录英伟达账号,没有的注册一个)
  3. 选择下载的版本(最新TensorRT5)
  4. 完成问卷调查
  5. 选择同意协议
  6. 根据自己的系统版本和CUDA版本,选择安装包,如图所示(如果是完整安装,建议选择Tar File Install Packages,这样可以自行选择安装位置)

2.4 安装指令

如果要使用python版本,则使用pip安装,执行下边的指令

为了避免安装时各种问题,我们也可以使用deb包的方式安装,即在2.3步骤中选择自己系统对应的版本,然后使用如下指令安装

2.5 环境测试

运行python测试,导入模块不报错就表明安装正确

注意:导入uff的时候需要安装tensorflow模块,tensorflow版本要与cuda版本对应,比如cuda9要对应tensorflow1.12及以下版本,以上版本需要cuda10,具体参考官网

如果导入tensorrt报错如下,则是因为python版本不对,应根据2.1节上边的那个表调整自己的python版本

3 使用流程

在/TensoRT-5.0.2.6/samples/python文件夹下有很多python的例子,我们以第一个end_to_end_tensorflow_mnist的例子为例,描述tensorrt的使用流程,在README.md文件里也说得很明白了

3.1 安装依赖

需要安装好numpy、Pillow、pycuda、tensorflow等环境,如果都有可以跳过

3.2 生成pb文件

运行model.py后,会下载数据mnist.npz,并开始训练,完成后在models文件夹下生成lenet5.pb文件,如果自己已经训练得到pb文件,上述过程可以跳过

3.3 格式转化

要将tensorflow的pb文件转化为uff格式的文件,首先找到convert_to_uff文件,看自己用的是哪个版本的python,如果是python3,则在/usr/lib/python3.5/dist-packages/uff/bin文件夹下,如果是python2,则在/usr/lib/python2.7/dist-packages/uff/bin文件夹下

我们在终端中进入end_to_end_tensorflow_mnist,运行以下指令

需要注意的是:该转化过程只支持在x86平台上实现,如果想在TX2等嵌入式平台上使用tensorrt,需要先在x86平台上将pb模型转化为uff文件,然后再拷贝到TX2上使用

3.4 运行文件

运行sample.py文件,得到如下输出,表明可完整的使用tensorrt

参考文章

通过pytorch搭建卷积神经网络完成手写识别任务,并将训练好的模型以多种方式部署到TensorRT中加速

https://github.com/GuanLianzheng/pytorch_to_TensorRT5

TensorRT之TX2部署TensorFlow目标检测模型

https://blog.csdn.net/zong596568821xp/article/details/86077553

TensorRT安装及使用教程

https://arleyzhang.github.io/articles/7f4b25ce/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习AI算法工程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
TensorRT安装及使用教程「建议收藏」
一般的深度学习项目,训练时为了加快速度,会使用多 GPU 分布式训练。但在部署推理时,为了降低成本,往往使用单个 GPU 机器甚至嵌入式平台(比如 NVIDIA Jetson)进行部署,部署端也要有与训练时相同的深度学习环境,如 caffe,TensorFlow 等。由于训练的网络模型可能会很大(比如,inception,resnet 等),参数很多,而且部署端的机器性能存在差异,就会导致推理速度慢,延迟高。这对于那些高实时性的应用场合是致命的,比如自动驾驶要求实时目标检测,目标追踪等。所以为了提高部署推理的速度,出现了很多轻量级神经网络,比如 squeezenet,mobilenet,shufflenet 等。基本做法都是基于现有的经典模型提出一种新的模型结构,然后用这些改造过的模型重新训练,再重新部署。
全栈程序员站长
2022/07/31
18.1K0
TensorRT安装及使用教程「建议收藏」
深度学习算法优化系列十七 | TensorRT介绍,安装及如何使用?
由于前期OpenVINO的分享已经基本做完了,笔者也可以成功的在CPU和Intel神经棒上完整的部署一些工作了,因此开始来学习TensorRT啦。先声明一下我使用的TensorRT版本是TensorRT-6.0.1.5 。
BBuf
2020/03/06
7K0
400 FPS!CenterFace+TensorRT部署人脸和关键点检测
本文作者:yanwan https://zhuanlan.zhihu.com/p/106774468 本文系原作者投稿,欢迎大家分享优质工作
Amusi
2020/05/06
1.1K0
Google Colab上安装TensorRT
NVIDIA TensorRT是一个高性能深度学习推理平台。它包括深度学习推理优化器和运行时,可为深度学习推理应用程序提供低延迟和高吞吐量。推理时,基于TensorRT的应用程序比仅CPU平台的执行速度快40倍。使用TensorRT,您可以优化所有主流框架中训练出的神经网络模型。
云水木石
2019/07/02
2.6K0
Google Colab上安装TensorRT
利用TensorRT对深度学习进行加速
TensorRT是什么,TensorRT是英伟达公司出品的高性能的推断C++库,专门应用于边缘设备的推断,TensorRT可以将我们训练好的模型分解再进行融合,融合后的模型具有高度的集合度。例如卷积层和激活层进行融合后,计算速度可以就进行提升。当然,TensorRT远远不止这个:
老潘
2023/10/19
8760
利用TensorRT对深度学习进行加速
Pytorch转TensorRT实践
导语:TensorRT立项之初的名字叫做GPU Inference Engine(简称GIE),是NVIDIA 推出的一款基于CUDA和cudnn的神经网络推断加速引擎,TensorRT现已支持TensorFlow、Caffe、Mxnet、Pytorch等几乎所有的深度学习框架,将TensorRT和NVIDIA的GPU结合起来,能在几乎所有的框架中进行快速和高效的部署推理。
aaronwjzhao
2022/02/25
2.8K1
TensorRT详细入门指北,如果你还不了解TensorRT,过来看看吧!
作为在英伟达自家GPU上的推理库,这些年来一直被大力推广,更新也非常频繁,issue反馈也挺及时,社区的负责人员也很积极,简直不要太NICE。
老潘
2023/10/19
11.2K1
TensorRT详细入门指北,如果你还不了解TensorRT,过来看看吧!
【目标检测】使用TensorRT加速YOLOv5
今天是程序员节,当然是以程序员的方式来度过节日。 很早就听说TensorRT可以加速模型推理,但一直没时间去进行实践,今天就来把这个陈年旧坑填补一下。
zstar
2022/11/21
5K0
【目标检测】使用TensorRT加速YOLOv5
深度学习算法优化系列二十 | TensorRT 如何进行细粒度的Profiling
今天我将以GoogleNet为例来展示如何在TensorRT中实现细粒度的Profiling并且顺带介绍一下TensorRT的16Bit推理。
BBuf
2020/03/19
3.4K0
深度学习算法优化系列二十 | TensorRT 如何进行细粒度的Profiling
NVIDIA英伟达:深度学习服务器搭建指南 | 交流会笔记
7月21日,量子位联合NVIDIA英伟达举行了线下交流会,跟现场近百位开发者同学共同探讨了深度学习服务器搭建过程中可能出现的问题,交流了在开发中的实战经验。
量子位
2018/08/08
1.3K0
NVIDIA英伟达:深度学习服务器搭建指南 | 交流会笔记
将训练好的 mmdetection 模型转为 tensorrt 模型
mmdetection 是商汤科技(2018 COCO 目标检测挑战赛冠军)和香港中文大学开源的基于Pytorch实现的深度学习目标检测工具箱,性能强大,运算效率高,配置化编程,比较容易训练、测试。但pytorch模型不易于部署,运算速度还有进一步提升的空间,当前比较有效的方法是将模型转换为行为相同的tensorrt模型,本文记录转换流程。 任务思路 转换mmdetection 的 pytorch模型到tensorrt模型有多种方法,本文使用 mmdetection-to-tensorrt 库作为核
为为为什么
2022/08/05
1.3K0
边缘计算笔记(一): Jetson TX2上从TensorFlow 到TensorRT
NVIDIA去年发布了一个线上讲座,题目是《 AI at the Edge TensorFlow to TensorRT on Jetson 》。
GPUS Lady
2019/06/18
5K0
在NVIDIA Drive PX上利用TensorRT 3 进行快速INT8推理
自动驾驶要求安全,并提供高性能的计算解决方案来处理极其精确的传感器数据。研究人员和开发人员必须优化他们的网络,以确保低延迟推理和能源效率。多亏了NVIDIA TensorRT中新的Python API,这个过程变得更加简单。
GPUS Lady
2019/04/29
2K0
在NVIDIA Drive PX上利用TensorRT 3 进行快速INT8推理
训练好的深度学习模型原来这样部署的!(干货满满,收藏慢慢看)
当我们辛苦收集数据、数据清洗、搭建环境、训练模型、模型评估测试后,终于可以应用到具体场景,但是,突然发现不知道怎么调用自己的模型,更不清楚怎么去部署模型!
计算机视觉研究院
2021/07/30
32.6K0
TensorRT加速推理三维分割网络实战
今天将分享TensorRT加速推理三维分割网络完整实现版本,为了方便大家学习理解整个流程,将整个流程步骤进行了整理,并给出详细的步骤结果。感兴趣的朋友赶紧动手试一试吧。
医学处理分析专家
2023/09/20
8560
TensorRT加速推理三维分割网络实战
yolov5部署之七步完成tensorRT模型推理加速
前段时间研究了Pytorch的环境配置,之后便从github上下载了yolov5的源码,并在自己的电脑端配置好对应的环境并运行,最后发现生成的权重文件yolov5s.pt不仅可以通过量化压缩成onxx模型,而且还可以使用TensorRT推理加速生成engine模型,这对使得模型部署在移动端具有很大的优势,于是便尝试着在自己的电脑上通过TensorRT部署yolov5模型。     现在网上有很多可以参考的博客,但大多数都是针对某一个环节进行了仔细的解释说明,这在前期的学习中不免会让人产生云里雾里的感觉,难以从一个全局的角度去看待这个问题,换句话说就是很少有把整个流程先总结下来,先让我们知道需要那些模块,该准备些什么模块,以及这些模块之间又有什么样的联系,然后再细分到各个小模块去说明解释。所以今天就从这个角度去发出,总结一下最近学习的一些内容。在此之前假设你已经掌握了Pytorch、CUDA、cuDNN的基础知识以及配置好了yolov5的环境并调试运行过源码
润森
2022/09/22
2.4K0
yolov5部署之七步完成tensorRT模型推理加速
NVIDIA教你用TensorRT加速深度学习推理计算 | 量子位线下沙龙笔记
12月22日,量子位联合NVIDIA英伟达举行了线下交流会,跟现场近百位开发者同学共同探讨了如何用TensorRT加速深度学习推理计算,详细讲解了GPU的推理引擎TensorRT,以及如何配合Deepstream实现完整加速推理的解决方案。
量子位
2019/04/24
1.5K0
NVIDIA教你用TensorRT加速深度学习推理计算 | 量子位线下沙龙笔记
TensorRT8.4.x Python API安装配置与测试
点击上方蓝字关注我们 微信公众号:OpenCV学堂 关注获取更多计算机视觉与深度学习知识 版本信息 首先必须要交代一下硬件跟依赖包的版本信息 -GPU -3050ti-Win10 x64-CUDA11.0.1-cuDNN8.2.x-TensorRT8.4.0.x-Python3.6.5-Pytorch1.7.1 然后我还下载了YOLOv5的最新版本,并测试通过如下: Python API配置支持 我把tensorRT解压在D:\TensorRT-8.4.0.6 目录结果如下: 首先输入
OpenCV学堂
2022/04/18
1.6K0
TensorRT8.4.x Python API安装配置与测试
基于TensorRT完成NanoDet模型部署
【导语】本文为大家介绍了一个TensorRT int8 量化部署 NanoDet 模型的教程,并开源了全部代码。主要是教你如何搭建tensorrt环境,对pytorch模型做onnx格式转换,onnx模型做tensorrt int8量化,及对量化后的模型做推理,实测在1070显卡做到了2ms一帧!
计算机视觉
2021/03/17
2K0
基于TensorRT完成NanoDet模型部署
NVIDIA Jetson Nano使用Tensor RT加速YOLOv4神经网络推理
接着需要修改一下Makefile,在官方的github当中有提到Jetson TX1/TX2的修改方法,Jetson Nano也是比照办理,前面的参数设定完了,往下搜寻到ARCH的部分,需要将其修改成compute_53:
GPUS Lady
2021/06/01
3.8K2
NVIDIA Jetson Nano使用Tensor RT加速YOLOv4神经网络推理
推荐阅读
相关推荐
TensorRT安装及使用教程「建议收藏」
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档