当前位置: 首页 > news >正文

tensorRT 自定义算子plugin的实现

文章目录

    • 1. 自定义算子导出onnx
      • 1.1 自定义算子的实现类
      • 1.2 自定义算子类
      • 1.3 onnx导出
    • 2. 自定义算子plugin的实现
      • 2.1 Plugin类的实现
        • 2.1.1 构造函数的实现
        • 2.1.2 析构函数实现
        • 2.1.3 serialize函数的实现
        • 2.1.4 destory函数的实现
        • 2.1.5 enqueue函数的实现(关键)
          • 2.1.5.1 customScalarImpl核函数的实现
        • 2.1.6 clone函数的实现
        • 2.1.7 supportsFormatCombination函数的实现
        • 2.1.8 get相关的函数
        • 2.1.9 其他函数
        • 总结
      • 2.2 PluginCreator 类的实现
        • 2.2.1 构造函数实现
        • 2.2.2 析构函数实现
        • 2.2.3 createPlugin函数实现
        • 2.2.4 deserializePlugin 函数实现
        • 2.2.5 get相关函数的实现
        • 2.2.6 set相关函数的实现
        • 总结
    • 3. 自定义plugin案例
      • 3.1 Plugin类
        • 3.1.1 类的定义
        • 3.1.2 类的实现
      • 3.2 PluginCreator类
    • 3. 完整代码下载

在实际部署模型时,由于现有的算子无法满足需求,经常需要 自定义算子并导出onnx文件,并在tensort中通过实现plugin来支持自定义算子的推理。下面给出个具体应用中的示例:

1. 自定义算子导出onnx

实现一个自定义算子CustomScalar, 对输入的x, 先加一个数r,再乘以s,得到对应的输出:(x + r) * s

import torch
import torch.onnx
import torch.nn as nn
import onnxruntime
import onnx
import onnxsim
import os
from collections import OrderedDict

相关文章:

  • 基于Itô扩散过程的交易策略偏微分方程matlab求解与仿真
  • 树的基本概念
  • 【云服务器介绍】选择指南 腾讯云 阿里云全配置对比 搭建web 个人开发 app 游戏服务器
  • [C++]使用yolov10的onnx模型结合onnxruntime和bytetrack实现目标追踪
  • 1. NAS和SAN存储
  • 《大数据分析》期末考试整理
  • Flink作业执行之 2.算子 StreamOperator
  • 云计算【第一阶段(14)】Linux的目录和结构
  • YASKAWA机器人HW1171921-B电缆维修
  • 使用itextPDF实现PDF电子公章工具类
  • Java Swing库学习
  • JavaScript算法实现dfs查找省市区路径
  • ARM-V9 RME(Realm Management Extension)系统架构之系统安全能力的侧信道抵御
  • PostgreSQL 数据类型详细说明
  • 【EtherCAT电机板】CiA402增加cst模式
  • (三)从jvm层面了解线程的启动和停止
  • 2017前端实习生面试总结
  • bearychat的java client
  • HTTP中GET与POST的区别 99%的错误认识
  • Java教程_软件开发基础
  • Laravel核心解读--Facades
  • React+TypeScript入门
  • ReactNativeweexDeviceOne对比
  • STAR法则
  • 手机端车牌号码键盘的vue组件
  • 探索 JS 中的模块化
  • 为什么要用IPython/Jupyter?
  • 学习HTTP相关知识笔记
  • (02)Hive SQL编译成MapReduce任务的过程
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (175)FPGA门控时钟技术
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (南京观海微电子)——示波器使用介绍
  • (三)docker:Dockerfile构建容器运行jar包
  • (四) Graphivz 颜色选择
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (转)linux 命令大全
  • (自用)gtest单元测试
  • (总结)(2)编译ORB_SLAM2遇到的错误
  • ******之网络***——物理***
  • .CSS-hover 的解释
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .net core 连接数据库,通过数据库生成Modell
  • .net core 依赖注入的基本用发
  • .NET 给NuGet包添加Readme
  • .net快速开发框架源码分享
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • ::
  • @EnableWebSecurity 注解的用途及适用场景
  • @modelattribute注解用postman测试怎么传参_接口测试之问题挖掘
  • [ C++ ] STL_list 使用及其模拟实现