onnx

Open Neural Network Exchange (ONNX)是微软和Facebook携手开发的开放式神经网络交换工具。为人工智能模型(包括深度学习和传统ML)提供了一种开源格式。它定义了一个可扩展的计算图模型,以及内置运算符和标准数据类型。目前主要关注推断所需的功能。

ONNX之于机器学习模型就像JPEG之于图像或MPEG之于视频。你可以使用pytorch,tensorflow或者其他深度学习的框架来训练你的模型,最后都可以转成onnx模型. ONNX就想是不同模型之间的桥梁

ONNX Runtime

ONNX Runtime 是将 ONNX 模型部署到生产环境的跨平台高性能运行引擎,主要对模型图应用了大量的图优化,然后基于可用的特定于硬件的加速器将其划分为子图(并行处理)。

通过其可扩展的Execution Providers (EP) 框架与不同的硬件加速库协同工作,以在硬件平台上以最佳方式执行 ONNX 模型。

该接口使 AP 应用程序开发人员能够灵活地在云和边缘的不同环境中部署他们的 ONNX 模型,并通过利用平台的计算能力来优化执行。

ONNX Runtime 使用GetCapability()接口分配特定节点或子图,以供支持硬件中的EP库执行。预装在执行环境中的EP库在硬件上执行ONNX子图。这种架构抽象出硬件特定库的细节,这些细节对于优化跨硬件平台(如 CPU、GPU、FPGA 或专用 NPU)的深度神经网络的执行至关重要。

tensorrt

tensorrt是Nvidia开发的一个神经网络前向推理加速的C++库,用户无需像剪枝那样在训练时对模型进行定制化处理,只需把模型提供给TensorRT即可实现加速。优化方法包括:

速度对比

本文使用的是transformers中的electra模型,用于句子的表征。对于tensorrt未作量化处理。

输入为长度约为20个单词的句子As a result, they change their eating habits eating more nutritious food such as milk and meat.

转为为onxx之后的模型结构:

gpu测试:

  1. onnxruntime与tensortrt的gpu利用率要比pytorch高很多
  2. tensorrt在未作量化的情况下,显存占用更小
  3. 随着batch的增大,速度提升越来越不明显

cpu测试:

使用cpu pytorch onnxruntime tensorrt
单条时间 1853ms 18.8ms 必须要用gpu

pytorch,onnx和tensorrt 的速度对比相关推荐

  1. 【TensorRT】PyTorch模型转换为ONNX及TensorRT模型

    文章目录 1. PyTorch模型转TensorRT模型流程 2. PyTorch模型转ONNX模型 3. ONNX模型转TensorRT模型 3.1 TensorRT安装 3.2 将ONNX模型转换 ...

  2. Pytorch → ONNX → TensorRT

    Pytorch → ONNX → TensorRT 由于实验室与应急减灾中心关于道路检测的项目需加快推理速度,在尝试手动融合模型的Con层和bn层发现推理速度提升不明显之后,我的"mento ...

  3. pytorch模型转ONNX转TensorRT,模型转换和推理部署

    一.pth模型转ONNX import os import sys import torch import numpy as npfrom feat.model import ResNet # 导入自 ...

  4. 英伟达PyTorch优化神器TensorRT重磅更新!10亿参数大模型实时运行,GPT推理加速21倍...

      视学算法报道   编辑:好困 小咸鱼 [新智元导读]12月2日,英伟达发布了最新的TensorRT 8.2版本,对10亿级参数模型进行了优化,让实时运行NLP应用成为可能.与原始PyTorch模型 ...

  5. onnx 测试_pytorch onnx onnxruntime tensorrt踩坑 各种问题

    做了一个小测试,发现pytorch onnx tensorrt三个库的版本存在微妙的联系,在我之前的错误实验中,PyTorch==1.3.0/1.4.0:Onnx==1.6.0:tensorrt=7. ...

  6. tensorrt,mmclas中的onnx转tensorrt

    NVIDIA TensorRT | NVIDIA Developerhttps://developer.nvidia.cn/zh-cn/tensorrtTensorRT详细入门指北,如果你还不了解Te ...

  7. Jetson Nano目标检测手把手实战教程(pytorch训练、tensorrt推理,含完整代码和数据)

    目录 一.概述 1.1 深度学习和边缘计算 1.2 Jetson Nano简介 二.深度学习环境安装 2.1 Pytorch框架 2.2 在Jetson Nano上安装Pytorch 三.算法原理 四 ...

  8. Pytorch~ONNX

    pytorch转onnx其实也就是python转的 ,之前有个帖子了讲的怎么操作,这个就是在说说为什么这么做~~~ (1)Pytorch转ONNX的意义 一般来说转ONNX只是一个手段,在之后得到ON ...

  9. 用于ONNX的TensorRT后端

    用于ONNX的TensorRT后端 解析ONNX模型以使用TensorRT执行. 另请参阅TensorRT文档. 有关最近更改的列表,请参见changelog. 支持的TensorRT版本 Maste ...

最新文章

  1. 谈谈机器学习的基本问题,不谈数学!
  2. spring mvc 接收页面表单List
  3. 标准浏览器的选择器封装
  4. linux查看服务依赖关系,服务管理(1)
  5. 团队-团队编程项目作业名称-成员简介及分工
  6. Arm Linux 交叉编译(交叉编译是什么?CROSS_COMPILE)(交叉编译工具链【待更】)
  7. Drupal 引入JS文件的几种方式
  8. profiler分析器——R语言
  9. Vue项目 开启gzip
  10. CentOS 7本地镜像部署NFS服务
  11. 执行sc query mysql,sc delete mysql没有反应
  12. 【渝粤教育】国家开放大学2018年春季 8636-22T实用心理学 参考试题
  13. mac 安装 tunnelblick
  14. Windows8、Windows8.1使用便签工具
  15. PS(Photo Shop Cs6)批量调整图片大小
  16. 基于dragonboard 410c的智能魔镜设计(7)——UI原型设计
  17. 无线网络 看不到其他计算机,win10看不到无线局域网其他电脑
  18. linux系统文件名颜色含义
  19. 安装ie9提示未能完成安装_win7系统32位旗舰版,IE8升级IE9失败,提示未能完成安装...
  20. 从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中

热门文章

  1. (转)[Cocoa]深入浅出 Cocoa 之 Framework
  2. OpenCV-绘制圆端矩形(药丸)
  3. 9个开源自动化测试框架,质量保证测试工程师用起来
  4. 自动化测试——DDT用法——结合unittest、requests库
  5. 设计模式(读书笔记)
  6. python实践项目(一)
  7. 搭建第一个Docker
  8. 启动Virtual User Generator提示ArgumentNullException:值不能为null
  9. spss分析qpcr数据_谁说菜鸟不会数据分析--SPSS篇
  10. 软件测试:我该坚持在一个人的岗位还是辞职?