SpireCV如何利用TensorRT加速?

news2024/11/23 19:01:00

TensorRT简介

TensorRT是NVIDIA推出的一款高性能的深度学习推理引擎(C++库)。相比于一般的深度学习框架,在GPU模式下其可提供36X的加速,极大提高了深度学习模型在边缘设备上的推断速度,以满足无人机、无人车等无人系统的快速视觉检测场景。

图片

TensorRT加速原理

1、TensorRT加速主要在:

  • 它支持INT8和FP16的计算,通过量化和减少浮点精度来提高计算效率;
  • 它可以对网络结构进行重构和优化,例如融合层、剪枝、深度缓存等技术,以减少计算量和内存访问,从而提高推理性能。

TensorRT的网络结构重构和优化不仅包括消除无用的输出层,还涉及到计算的可重复利用性和内存访问的高效性。具体来说,通过融合层、剪枝、深度缓存等技术,TensorRT可以将网络结构进行垂直整合,即将多个层合并为一个层,从而减少计算量和内存访问次数。

例如,对于常见的卷积神经网络结构,TensorRT可以将其中的卷积、偏置和激活函数(如ReLU)合并为一个层,同时通过重排卷积核的顺序,以便在计算时利用输入数据的局部性进行计算。

这样可以有效地提高计算效率和内存访问效率,并且能够充分利用GPU的并行计算能力。此外,TensorRT还支持动态图形优化技术,即根据实时数据流的特点,动态地选择最优的计算路径和数据布局,进一步提高了推理性能。

图片

例如将下方图1所示的常见的Inception结构重构为图2所示的网络结构。

图片
图1. Inception结构

对于网络的水平组合,水平组合是指将输入为相同张量和执行相同操作的层融合一起,如图2向图3的转化。

图片
图2. Inception结构重构

图片
图3. 相同操作的层水平融合

SpireCV的TensorRT应用

目前,SpireCV在平台层方面已全面支持Nvidia GPU(推荐10系、20系、30系显卡)、Jetson(AGX Orin/Xavier、Orin NX/Nano、Xavier NX),同样地在这些平台上也相应的支持TensorRT加速。

1、环境准备

  • X86+Nvidia GPU(推荐10系、20系、30系显卡),SpireCV已将环境准备信息整理为脚本文件,方便快捷,开发者可参考“阿木实验室”官网的SpireCV wiki自行下载使用;
  • Jetson(AGX Orin/Xavier、Orin NX/Nano、Xavier NX),SpireCV开发者套件已预装好全部环境,开箱即用。

2、应用方法

简单思路:在训练平台使用PyTorch框架训练完检测器模型后,需要先将PyTorch模型(.pt模型)转换为TensorRT模型(.wts模型),再在实际运行平台将.wts模型转为TensorRT的.engine文件,使用TensorRT引擎进行推理。

.wts模型是一个二进制文件,其中存储了TensorRT引擎所需的所有权重和偏置参数,以及对应神经网络层的配置信息。与其他模型表示格式相比,.wts模型更加紧凑高效,可以充分利用TensorRT引擎的各种优化技术,从而获得更高的推理性能。

相比于另一种TensorRT引擎的转换方法,即借助ONNX模型转为TensorRT引擎,SpireCV使用的方法不仅无需外部的模型转换工具,而且能够获得更高的推理性能。

需要注意的是,由于.wts模型是TensorRT引擎所特有的格式,因此它只能在TensorRT引擎上运行,无法在其他深度学习框架或平台上进行加载和运行。

关于如何用自定义数据集训练检测器,以及SpireCV使用TensorRT的具体应用步骤,感兴趣的开发者可以参考我们上一篇文章《不想敲代码,如何快速实现数据标注、模型训练、高效部署?》或者在文章底部留言。

TensorRT加速性能

图片

图片

- End -

往期推荐:

SpireCV:专为智能无人系统打造的边缘实时感知SDK库icon-default.png?t=N7T8http://mp.weixin.qq.com/s?__biz=MzIwNzgxNzg0Mg==&mid=2247544685&idx=1&sn=2352672ecae97b5d6ca69ca8f7dc3e54&chksm=970ef270a0797b660ad1f2cb5da77d660f67e94fb19b2bd46d9f146727c300acdf86192212ea&scene=21#wechat_redirect

不想敲代码,如何快速实现数据标注、模型训练、高效部署?icon-default.png?t=N7T8http://mp.weixin.qq.com/s?__biz=MzIwNzgxNzg0Mg==&mid=2247546098&idx=1&sn=db1b054b462b8c81d61b851a73a30499&chksm=970ee9efa07960f936fa7bec03e89a5db9a450b4d1b6a2988849c6ada2575464e2f7789f3a87&scene=21#wechat_redirect

图片

阿木实验室:为机器人研发提供开源软硬件工具和课程服务,让研发更高效!

技术发展的日新月异,阿木实验室将紧跟技术的脚步,不断把机器人行业最新的技术和硬件推荐给大家。看到经过我们培训的学员在技术上突飞猛进,是我们培训最大的价值。如果你在机器人行业,就请关注我们的公众号,我们将持续发布机器人行业最有价值的信息和技术。

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

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

相关文章

Google play开发者账号隔离用指纹浏览器还是vps?哪个防关联效果更佳?

很多谷歌安卓开发者会通过矩阵、马甲包的方式,在Google play应用商店上获得更多的流量和收益,这需要多个开发者账号,因此开发者账号隔离问题的重要性不言而喻。 在Google play开发者账号的隔离防关联问题上,使用vps和指纹浏览器是…

Oracle(12)Managing Indexes

目录 目标: 一、基础知识 1、Classification ofindexes 索引的分类 2、B-Tree vs Bitmap 3、Creating Indexes: Guidelines 创建索引:准则 4、Offline Index Rebuild 脱机索引重建 5、RebuildingIndexes 重建索引 6、Online Index Rebuild 在线索引重建 7…

记一次某学院的未授权渗透过程

文章现写的,部分内容有些着急。 0x01 测试过程 开局登录框,没有测试SQL注入与XSS(菜鸟,测也测不出来。) 有system用户,尝试弱口令,无果! 直接namp来一下子端口探测吧 发现有3306与8888 3306 mysql测试…

《Generic Dynamic Graph Convolutional Network for traffic flow forecasting》阅读笔记

论文标题 《Generic Dynamic Graph Convolutional Network for traffic flow forecasting》 干什么活:交通流预测(traffic flow forecasting )方法:动态图卷积网络(Dynamic Graph Convolutional Network)…

【沧元图】梅元知命运逆转,但遗憾下线,孟川新形态揭晓

Hello,小伙伴们,我是小郑继续为大家深度解析国漫资讯。 深度爆料,《沧元图》是近年来备受期待的动画作品之一,其独特的画风和精彩的剧情吸引了众多观众的关注。这部动画的播出计划备受瞩目,据主创团队透露,本季共有26…

关于GPT的一些使用场景

与传统的机器翻译或语音识别技术不同,GPT强调的是生成新文本的能力,这使得它在创作、摘要、问答等场景下具有独特的优势。下面是我日常生活中用到GPT的一些场景: 日常闲聊 在日常闲聊中(尤其是和运营xjj聊天的时候)&a…

伊朗网络间谍组织针对中东金融和政府部门

导语 近日,以色列网络安全公司Check Point与Sygnia发现了一起针对中东金融、政府、军事和电信部门的网络间谍活动。这一活动由伊朗国家情报和安全部门(MOIS)支持的威胁行为者发起,被称为"Scarred Manticore"。该组织被认…

【EI会议征稿】第四届机械、电子电气与自动化控制国际学术会议(METMS 2024)

第四届机械、电子电气与自动化控制国际学术会议(METMS 2024) 2024 4th International Conference on Mechanical, Electronics and Electrical and Automation Control 2024年第四届机械、电子电气与自动化控制国际学术会议(METMS 2024&am…

每日一练 | 网络工程师软考真题Day47

阅读以下关于Linux文件系统和Samba效劳的说明,答复以下【问题1】至【问题3】。 【说明】 Linux系统采用了树型多级目录来管理文件,树型结构的最上层是根目录,其他的所有目录都是从根目录生成的。通过Samba可以实现基于Linux操作系统的效劳器和…

C语言之for的执行顺序

1.for具有内部可以存放3个条件&#xff0c;比如for(int i 0&#xff1b;i < n&#xff1b;i )。for中的条件可以不写&#xff0c;但是符号“&#xff1b;”一定要存在。for(;;)的作用和while(1)是类似的&#xff0c;都是一种死循环。 对于for(int i 0;i < n;i)&#x…

vite安装Tailwind CSS

安装 - Tailwind CSS 中文网 (nodejs.cn) 这是官网&#xff0c;平常我练习一般会用vite脚手架 我们选择这个vite模块 可选择React和Vue版本的&#xff0c;这里选择react的按照操作&#xff0c;没问题的话就要出问题了 1、在npm run dev的时候我是出现了这么个问题&#xff0c…

ATFX汇市:美联储11月利率决议再暂停加息,紧缩货币政策或已接近尾声

ATFX汇市&#xff1a;11月美联储利率决议结果在今日2:00公布&#xff0c;其中提到&#xff1a;美联储寻求以2%的速度实现最大的就业和通胀率&#xff0c;为了达成这些目标&#xff0c;美联储决定将联邦基金利率的目标区间维持在5.25%~5.5%&#xff1b;委员会将会考虑货币政策的…

本地kafka客户端远程密码访问kafka服务端

1.确保kafka服务端已经配置SASL/PLANTEXT ACL 2.确保kafka客户端与kafka服务端网络通 3.在kafka客户端在路径为…/kafka/config/下创建client.properties文件 修改producer.properties、consumer.properties security.protocolSASL_PLAINTEXT sasl.mechanismPLAIN sasl.jaas…

Go基础——指针、结构体

1、指针 Go语言指针与C差不多&#xff0c;取地址符是 &&#xff0c;放到一个变量前使用就会返回相应变量的内存地址。 变量是一种使用方便的占位符&#xff0c;用于引用计算机内存地址。一个指针变量可以指向任何一个值的内存地址&#xff0c;它所指向的值的内存地址在 32 …

第24期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练 Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大型语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以…

一副耳机两种体验,好看好听降噪强,FIIL Key Pro上手

户外使用蓝牙耳机时&#xff0c;降噪功能真的是必不可少&#xff0c;特别是通勤高峰期&#xff0c;能有效隔绝周围的嘈杂声&#xff0c;对于上班族来说&#xff0c;真的会舒服很多。市场上有很多降噪耳机可供选择&#xff0c;相比于价格上千的发烧级装备&#xff0c;我更倾向于…

聊点技术|秒级根因定位可能吗?博睿数据将不可能变为可能

10月20日&#xff0c;数智融&#xff0c;ONE向新——博睿数据2023秋季产品发布会圆满落幕&#xff0c;全新一代一体化智能可观测平台Bonree ONE 2023秋季正式版焕新发布&#xff0c;重点升级了数据采集、全局拓扑、数据分析、会话回放等多个功能模块&#xff0c;为组织提供了更…

人工智能基础_机器学习017_SGD随机梯度下降求解多元一次方程_以及求解多元一次方程---人工智能工作笔记0057

然后我们再来看一下X.shape 这个用来显示,一个矩阵的形状,其实就是几行几列对吧 然后,比如上面这个是100行 ,9列,其实对应我们的方程上,就是 8元一次方程, w1到w8加上w0 一共9列,然后有100个样本,也就是100行数据对吧 然后我们来看一下我们用SGD随机梯度下降来实现一个一元一…

VBA技术资料MF78:产生随机字符串密码

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。我的教程一共九套&#xff0c;分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的入门&#xff0c;到…

【Jena系列】Jena基本介绍

序言 做一件事并不难&#xff0c;难的是在于坚持。坚持一下也不难&#xff0c;难的是坚持到底。 文章标记颜色说明&#xff1a; 黄色&#xff1a;重要标题红色&#xff1a;用来标记结论绿色&#xff1a;用来标记一级论点蓝色&#xff1a;用来标记二级论点 希望这篇文章能让你不…