TensorRT 高级用法

news2024/11/18 23:39:08

1,插件支持-转化TensorRT模型时不支持的算子

我们在做模型结构设计时,有时候自己会设计一些layer来满足任务需求,但是这些layer在使用Tensorrt优化时,TensorRT可能并不支持,如ROI Align,这时候就需要通过Plugin的形式自己去实现,如上图所示的custom layer。实现过程包括如下两个步骤:

首先需要重载一个IPlugin的基类,生成自己的Plugin的实现,告诉GPU或TensorRT需要做什么操作,要构建的Plugin是什么样子,其实就是类似于开发一个应用软件的插件,需要在上面实现什么功能。

其次要将插件替换网络中自己实现的layer。

 现在tensorRT支持的层有:

  • Activation: ReLU, tanh and sigmoid

  • Concatenation : Link together multiple tensors across the channel dimension.

  • Convolution: 3D,2D

  • Deconvolution

  • Fully-connected: with or without bias

  • ElementWise: sum, product or max of two tensors

  • Pooling: max and average

  • Padding

  • Flatten

  • LRN: cross-channel only

  • SoftMax: cross-channel only

  • RNN: RNN, GRU, and LSTM

  • Scale: Affine transformation and/or exponentiation by constant values

  • Shuffle: Reshuffling of tensors , reshape or transpose data

  • Squeeze: Removes dimensions of size 1 from the shape of a tensor

  • Unary: Supported operations are exp, log, sqrt, recip, abs and neg

  • Plugin: integrate custom layer implementations that TensorRT does not natively support.

基本上比较经典的层比如,卷积,反卷积,全连接,RNN,softmax等,在tensorRT中都是有对应的实现方式的,tensorRT是可以直接解析的。

但是由于现在深度学习技术发展日新月异,各种不同结构的自定义层(比如:STN)层出不穷,所以tensorRT是不可能全部支持当前存在的所有层的。那对于这些自定义的层该怎么办?

tensorRT中有一个 Plugin 层,这个层提供了 API 可以由用户自己定义tensorRT不支持的层。 如下图:

 这就解决了适应不同用户的自定义层的需求。

build engine:创建解析器、工作空间、数据类型,序列化,释放

不同的设备引擎不通用,只能在同一个设备使用。例如:在服务器优化引擎,放到nano设备上,不行

pluginfoctory:如果网络层并不是直接支持的,自定义网络层

plugin:输入输出,初始化


2、实用工具Netron:

Netron是神经网络,深度学习和机器学习模型的可视化工具(viewer)。

Netron 支持目前大多数主流深度学习框架的模型,如下所示:

  • ONNX(.onnx,.pb)

  • Keras(.h5,.keras)

  • CoreML(.mlmodel)

  • TensorFlow Lite(.tflite)

  • Netron对Caffe(.caffemodel)

  • Caffe2(predict_net.pb)

  • MXNet(.model,-symbol.json)

  • TensorFlow.js(model.json,.pb)

  • TensorFlow(.pb,.meta)

Yolov5l可视化网络结构图:

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

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

相关文章

vue源码分析-v-model的本质

双向数据绑定这个概念或者大家并不陌生,视图影响数据,数据同样影响视图,两者间有双向依赖的关系。在响应式系统构建的上,中,下篇我已经对数据影响视图的原理详细阐述清楚了。而如何完成视图影响数据这一关联&#xff1…

连接WiFi需要短信验证怎么做?

公共场所提供公共的无线wifi上网服务,需对用户进行实名认证。手机短信实名认证以其用户体验、综合成本等优势,成为公共无线上网认证的首选方案。 一、公共wifi需要短信验证怎么做 要实现访客无线上网短信认证功能,需要借助上网行为管理设备搭…

响应式开发基础知识以及大屏解决方案

1.响应式开发基础知识 1.1-媒体查询media: css中设置条件,基于media 媒体设备: all所有设备、print打印设备/screen屏幕设备媒体条件,符合某个条件,写对应的样式max-width、min-width、max-height、min-heigth 1.2-视口viewpo…

基于java+springboot+mybatis+vue+mysql的沁园健身房预约管理系统

项目介绍 现在无论是在PC上还是在手机上,相信全国所有地方都在进行网上健身房预约管理。随着经济的不断发展,系统管理也在不断增多,健身房预约平台就是其中一种。 本次的毕业设计主要就是在基于Java语言平台下设计并开发一个健身房预约平台…

k8s部署fabric 2.4

test-network的部署现状 dockerdocker-compose ip端口号:ip不可变,人工维护,不可冲突脚本化:程度低,部分流程需要登陆到容器中执行日志收集:无监控告警:无容器管理:无部署流程&…

4.1什么叫作PCB封装?它的分类一般有哪些? Cadence Allegro软件制作PCB封装的一般流程是什么?

笔者电子信息专业硕士毕业,获得过多次电子设计大赛、大学生智能车、数学建模国奖,现就职于南京某半导体芯片公司,从事硬件研发,电路设计研究。对于学电子的小伙伴,深知入门的不易,特开次博客交流分享经验&a…

Java中的5个代码性能提升技巧,学会之后立马提升近10倍性能

文章目录预先分配 HashMap 的大小优化 HashMap 的 key不使用 Enum.values() 遍历使用 Enum 代替 String 常量使用高版本 JDK这篇文章介绍几个 Java 开发中可以进行 性能优化的小技巧,虽然大多数情况下极致优化代码是没有必要的,但是作为一名技术开发者&a…

如何通过nodejs快速搭建一个服务器

在前端开发过程中,可能某些时候需要自己搭建一台服务器用于一些文件图片请求或者进行后端相关知识的学习。本文主要讲解如何通过nodejs进行一个基础服务器的搭建,包括如何将文件布置的服务器,以及基础接口的开发。后面可能会更新关于通过node…

C# SuperSocket 手把手教你入门 傻瓜教程---9(CountSpliterReceiveFilter - 固定数量分隔符协议)使用COMMAND

C# SuperSocket 手把手教你入门 傻瓜教程系列教程 C# SuperSocket 手把手教你入门 傻瓜教程---1(服务器单向接收客户端发送数据) C# SuperSocket 手把手教你入门 傻瓜教程---2(服务器和客户端双向通信) C# SuperSocket 手把手教…

【Vue 快速入门系列】Vue数据实现本地存储、自定义事件绑定、全局事件总线、$nextTick的使用

文章目录一、本地存储1.概念2.接口3.实际操作二、自定义事件绑定1.自定义事件使用过程2.绑定自定义事件的语法3.其他注意事项三、全局事件总线1.全局事件总线概念2.全局事件总线的使用方式3.原理剖析四、$nextTick小技巧一、本地存储 1.概念 可以将数据临时存储到本地浏览器&…

基于适应度-距离平衡的人工生态系统优化求解暂态稳定约束最优潮流问题附matlab代码

​✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法…

数字时代,企业应该如何看待商业智能BI

新一代数字化相关技术的应用,使得数字化产品和服务覆盖了社会的方方面面,也让数据成为了构建现代化社会的核心元素,让人们明白数据不只是人类活动产生的附加品,还能够在应用过程中促进人类活动发展、优化和改变,真正成…

Python时间模块之datetime模块

目录 简介 函数介绍及运用 date:日期类 1.获取当前时间 2.日期对象的属性 3.date类中时间和时间戳的转换: 4.修改日期使用replace方法 time:时间类 time类操作 datetime:日期时间类 timedelta:时间间隔&…

【MySQL常用性能指标】

这里给大家分享一些MySQL的常用性能指标,可以对此增加一些自定义指标到数据库的监控里,如zabbix或者prometheus,来更好的检测数据库的状态。 我的MySQSL版本是5.7.19。因为是自己的测试环境,所以截图的一些指标很低,仅…

[附源码]Python计算机毕业设计SSM基于的考研信息共享平台(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

linux下故障硬盘点灯操作

按照常理说,硬盘故障了,会自动亮红灯,故障消除后会自动恢复正常,这个本来是服务器自带的功能。但现实情况往往不是这样,即使硬盘故障了,现场通过外观也看不出来。 1 硬盘点灯的意义 在运维的工作中&#…

【电巢】什么是EMC测试?EMC测试又是如何分类的?

在CE认证里面针对不同产品有不同的测试标准、指令,带电产品中必须要测是的EMC指令,作为最常见的CE指令,很多客户想知道什么是EMC测试? EMC的基本定义 EDA365电子论坛 EMC是评价产品质量的一个重要指标。 1.电磁兼容EMC (Electro-Magnetic …

KVM虚拟化

概述 虚拟化是一种技术,可以利用以往局限于硬件的资源来创建有用的 IT 服务。它让您能够将物理计算机的工作能力分配给多个用户或环境,从而充分利用计算机的所有能力。 1.1 工作原理 一种叫做 Hypervisor (虚拟机监控程序)的软件…

非零基础自学计算机操作系统 第1章 操作系统概述 1.6 操作系统的界面形式 1.7 操作系统的运行机理

非零基础自学计算机操作系统 文章目录非零基础自学计算机操作系统第1章 操作系统概述1.6 操作系统的界面形式1.6.1 交互终端命令1.6.2 图形用户界面1.6.3 触屏用户界面1.6.4 作业控制语言1.6.5 系统调用命令1.7 操作系统的运行机理第1章 操作系统概述 1.6 操作系统的界面形式 …

mac回收站清空还能恢复吗?苹果电脑删除的文件怎么恢复

mac回收站清空还能恢复吗?通常,我们右键从电脑上删除的文件,都是被保存在回收站的,那么从回收站删除的文件去哪儿了呢? 当文件从回收站删除后,这些文件还保留在电脑系统上面,只是我们没有办法看…