使用Tensorrt的一般步骤

news2024/9/24 9:19:14

使用Tensorrt的一般步骤

TensorRT的使用包括两个阶段:build and deployment。

build:该阶段主要完成模型转换(从caffe或TensorFlow到TensorRT),如下图所示,在模型转换时会完成前述优化过程中的层间融合,精度校准。这一步的输出是一个针对特定GPU平台和网络模型的优化过的TensorRT模型,这个TensorRT模型可以序列化存储到磁盘或内存中。存储到磁盘中的文件称之为 planfile。

Deploy:该阶段主要完成推理过程,如下图所示。将上一个步骤中的plan文件首先反序列化,并创建一个 runtime engine,然后就可以输入数据(比如测试集或数据集之外的图片),然后输出分类向量结果或检测结果。

以onnx模型为例检测介绍,主要分为3步,如下图所示,第一步是导入模型,这包括从磁盘上保存的文件加载模型,并将其从原始框架转换为TensorRT网络。ONNX是表示深度学习模型的标准,使它们能够在框架之间传输(Caffe2、Chainer、CNTK、paddle、PyTorch和MXNet都支持ONNX格式)。接下来,基于输入模型、目标GPU平台和指定的其他配置参数,构建一个优化的TensorRT引擎。最后一步是向TensorRT引擎提供输入数据以执行推理。

需要用的tensorrt的组件如下:

  • ONNX解析器:以ONNX格式的经过训练的模型作为输入,并用TensorRT填充网络对象
  • Builder:在TensorRT中获取一个网络并生成一个为目标平台优化的引擎
  • Engine:获取输入数据,执行推理并发出推理输出
  • Logger:与生成器和引擎关联的对象,用于在生成和推断阶段捕获错误、警告和其他信息

大家可以根据以下coding的例子进行相关实验:

>> git clone https://github.com/parallel-forall/code-samples.git
>> cd code-samples/posts/TensorRT-introduction
>> wget https://s3.amazonaws.com/onnx-model-zoo/resnet/resnet50v2/resnet50v2.tar.gz // Get ONNX model and test data
>> tar xvf resnet50v2.tar.gz # unpack model data into resnet50v2 folder
>> apt-get update
>> apt install libprotobuf-dev protobuf-compiler        # install protobuf to read the input data which is in .pb format
>> git clone --recursive https://github.com/onnx/onnx.git # pull onnx repository from github
>> cd onnx
>> cmake . # compile and install onnx
>> make install -j12
>> cd ..
>> make # compile the TensorRT C++ sample code

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1079544.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【日常】一名开发人员总结的好习惯,欢迎补充

文章目录 前言首先需要考虑(重要)设计和架构代码质量测试和调试性能优化 编程的好习惯代码可读性模块化和重用性单一职责异常处理注释和文档常见的Java编码规范的例子下面是一个示例代码,展示了一些编码规范的应用还有一些其他的编码规范值得…

C++项目:【负载均衡式在线OJ】

文章目录 一、项目介绍 二、技术栈与开发环境 1.所用技术: 2.开发环境: 三、项目演示 1.运行代码 2.进入项目首页 3.题目列表 4.点击具体一道题 5.编辑代码并提交 四、项目思维导图 五、项目宏观结构 六、Comm公共模块 1.日志工具log.hpp 2.其他工具…

html与css知识点

html 元素分类 块级元素 1.独占一行,宽度为父元素宽度的100% 2.可以设置宽高 常见块级元素 h1~h6 div ul ol li dl dt dd table form header footer section nav article aside 行内元素 1.一行显示多个 2.不能设置宽高,宽高由元素内容撑开 常见行内…

“桥接模式”和“NAT模式”以及“host-only模式(仅主机模式)”

使用虚拟机的时候,我们常看到网络链接配置中,有【桥接】、【NAT】、【仅主机】的选项,今天就来介绍一下这三种网络链接模式。 关于虚拟机中配置网络的内容可以看这篇博客: 深入浅出的介绍一下虚拟机VMware Workstation——part2…

update语句没有用到主键索引会带来的问题

准备材料 建一张表,数据列不建立索引。并写入1万条数据 CREATE TABLE identity.t2 (id INT NOT NULL COMMENT Id,a INT NULL,PRIMARY KEY (id),KEY idx_a (a) );delimiter // create procedure gen_data() begin declare i int default 0; set i0; start transact…

2021-07-31 - 需要打印出来的图表 - 含各种机制

1.应用场景 主要用于帮助自己记住知识点,能随时记起,有时候就是要记住,每次靠查询是不可靠的~ 2.学习/操作 1.文档阅读 08 | 数据库优化方案(一):查询请求增加时,如何做主从分离&a…

0基础学习VR全景平台篇 第107篇:全景图调色和细节处理(上,地拍)

上课!全体起立~ 大家好,欢迎观看蛙色官方系列全景摄影课程! 今天教给大家的课程是地拍全景图调色和细节处理,下面我们就开始吧! 1.把照片快速导入LR软件 选择【图库】模块 打开软件后,点击【导入】按…

制造业进销存管理怎么做?

进销存是什么?生产制造业如何进行进销存管理?制造进销存都能为企业提供什么?进销存管理系统的优势?本文将带大家深入浅出的聊聊制造进销存,全面剖析制造进销存的前世今生。 接下来我会通过一些例子为大家深入浅出的讲…

Java架构师缓存架构设计

目录 1 导学2 高性能概述3 多级缓存设计4 缓存技术方案5 如何进行缓存拆分6 缓存持久化和集群1 导学 本章的主要内容呢是大型系统架构设计难点之一的高性能。它里面的缓存架构设计相关的一些知识,落到项目上,就是订单系统的高性能缓存架构设计。在本章学习当中,首先我们会去…

压铸机泵控比例PQ阀放大器

比例PQ阀是电液比例一压力流量复合阀,它能够对执行元件(液压缸或液压马达)的不同工作状态进行速度和输出力或力矩进行比例控制。它是一种新型的节能型复合阀,既能实现具有确定增益系统的开环控制,又能实现自调整的闭环…

户外led显示屏中的裸眼3D效果是怎么做出来的?

近几年,裸眼3D成了一个热点词汇,但凡它出现的地方都会迅速成为网络热门话题和网红打卡点。裸眼3D大屏凭借其立体逼真的画面显示效果,带给人们新颖震撼的视觉体验,不仅成为户外广告的“新宠”,还成为了城市的新地标&…

红队专题-Cobalt strike 4.x - Beacon重构

红队专题 招募六边形战士队员重构后 Beacon 适配的功能windows平台linux和mac平台C2profile 重构思路跨平台功能免杀代码部分sysinfo包packet包config.go命令的执行shell、run、executepowershell powerpick命令powershell-importexecute-assembly 堆内存加密字符集参考链接 招…

STM32使用HAL库驱动TA6932数码管驱动芯片

TA6932介绍 8段16位,支持共阴共阳LED数码管。 2、STM32CUBEMX配置引脚 推挽配置即可。 3、头文件 /******************************************************************************************** * TA6932:8段16位数码管驱动 *******************…

【AI视野·今日CV 计算机视觉论文速览 第264期】Tue, 10 Oct 2023

AI视野今日CS.CV 计算机视觉论文速览 Tue, 10 Oct 2023 (showing first 100 of 188 entries) Totally 100 papers 👉上期速览✈更多精彩请移步主页 Daily Computer Vision Papers FLATTEN: optical FLow-guided ATTENtion for consistent text-to-video editing Au…

盲盒商城源码 盲盒开箱源码 潮物盲盒商城源码 仿CSGO盲盒开箱源码

百度seo的要求对于网页内容的伪原创是相对严格的,需要进行一定的修改使其符合百度seo的标准 根据您的要求,我们将对后面的这段话进行伪原创修改,只修改文字符号,不对字数进行调整: 盲盒商城源码、盲盒开箱源码、潮物盲盒商城源码、仿CSGO盲盒开箱源码 带有Vue源代码,前端…

睿趣科技:抖音开网店怎么开通

在当前的数字时代,电子商务已经成为一种主流的商业模式。抖音作为中国最大的短视频平台,也提供了这种能力,让商家能够在平台上开设自己的网店。那么,如何在抖音上开通网店呢?下面是详细的步骤: 注册抖音账号 首先&…

BCYD-A10-33-L85、BCYD-A16-21-S150电比例先导阀放大器

BCYD-A16-31-L150、BCYD-A10-33-L85、BCYD-A16-21-S150、BCYD-A25-23-L320是先导式电液比例换向阀,导阀和主阀都没有阀芯位置反馈,通过比例电磁铁驱动作为功率级的先导阀芯工作。此类阀工作时是通过电子放大器提供功率级的先导阀比例电磁铁的驱动电流&am…

项目1-基于STM32制作T12洛铁(更新中)

视频补充处(待补充。。。。) 一、简介 当使用STM32来制作T12型号的烙铁,并集成OLED-0.96寸显示器时,你将进入一个令人兴奋的嵌入式系统开发领域。这个项目将涉及硬件和软件的复杂工作,以实现一个功能强大的烙铁控制器…

交流回馈老化测试负载的应用

交流回馈老化测试负载的应用非常重要,老化测试是一种对产品进行长时间运行和负载测试的方法,旨在模拟产品在实际使用中的长期稳定性和可靠性。在老化测试过程中,负载是指对产品施加的工作负荷,可以是CPU、内存、硬盘等资源的使用情…

vue3学习(四)--- watch和watchEffect监听

文章目录 watchsource侦听源不同类型侦听ref侦听reactive侦听没有响应式的数据侦听多个源 watchEffect清除副作用清除侦听flush用法 watch watch() 默认是懒侦听的初始化不触发,只有在侦听源发生变化时才执行回调函数。 watch的结构: source 侦听源call…