pytorch,onnx和tensorrt 的速度对比
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测试:
- onnxruntime与tensortrt的gpu利用率要比pytorch高很多
- tensorrt在未作量化的情况下,显存占用更小
- 随着batch的增大,速度提升越来越不明显
cpu测试:
使用cpu | pytorch | onnxruntime | tensorrt |
---|---|---|---|
单条时间 | 1853ms | 18.8ms | 必须要用gpu |
pytorch,onnx和tensorrt 的速度对比相关推荐
- 【TensorRT】PyTorch模型转换为ONNX及TensorRT模型
文章目录 1. PyTorch模型转TensorRT模型流程 2. PyTorch模型转ONNX模型 3. ONNX模型转TensorRT模型 3.1 TensorRT安装 3.2 将ONNX模型转换 ...
- Pytorch → ONNX → TensorRT
Pytorch → ONNX → TensorRT 由于实验室与应急减灾中心关于道路检测的项目需加快推理速度,在尝试手动融合模型的Con层和bn层发现推理速度提升不明显之后,我的"mento ...
- pytorch模型转ONNX转TensorRT,模型转换和推理部署
一.pth模型转ONNX import os import sys import torch import numpy as npfrom feat.model import ResNet # 导入自 ...
- 英伟达PyTorch优化神器TensorRT重磅更新!10亿参数大模型实时运行,GPT推理加速21倍...
视学算法报道 编辑:好困 小咸鱼 [新智元导读]12月2日,英伟达发布了最新的TensorRT 8.2版本,对10亿级参数模型进行了优化,让实时运行NLP应用成为可能.与原始PyTorch模型 ...
- onnx 测试_pytorch onnx onnxruntime tensorrt踩坑 各种问题
做了一个小测试,发现pytorch onnx tensorrt三个库的版本存在微妙的联系,在我之前的错误实验中,PyTorch==1.3.0/1.4.0:Onnx==1.6.0:tensorrt=7. ...
- tensorrt,mmclas中的onnx转tensorrt
NVIDIA TensorRT | NVIDIA Developerhttps://developer.nvidia.cn/zh-cn/tensorrtTensorRT详细入门指北,如果你还不了解Te ...
- Jetson Nano目标检测手把手实战教程(pytorch训练、tensorrt推理,含完整代码和数据)
目录 一.概述 1.1 深度学习和边缘计算 1.2 Jetson Nano简介 二.深度学习环境安装 2.1 Pytorch框架 2.2 在Jetson Nano上安装Pytorch 三.算法原理 四 ...
- Pytorch~ONNX
pytorch转onnx其实也就是python转的 ,之前有个帖子了讲的怎么操作,这个就是在说说为什么这么做~~~ (1)Pytorch转ONNX的意义 一般来说转ONNX只是一个手段,在之后得到ON ...
- 用于ONNX的TensorRT后端
用于ONNX的TensorRT后端 解析ONNX模型以使用TensorRT执行. 另请参阅TensorRT文档. 有关最近更改的列表,请参见changelog. 支持的TensorRT版本 Maste ...
最新文章
- 谈谈机器学习的基本问题,不谈数学!
- spring mvc 接收页面表单List
- 标准浏览器的选择器封装
- linux查看服务依赖关系,服务管理(1)
- 团队-团队编程项目作业名称-成员简介及分工
- Arm Linux 交叉编译(交叉编译是什么?CROSS_COMPILE)(交叉编译工具链【待更】)
- Drupal 引入JS文件的几种方式
- profiler分析器——R语言
- Vue项目 开启gzip
- CentOS 7本地镜像部署NFS服务
- 执行sc query mysql,sc delete mysql没有反应
- 【渝粤教育】国家开放大学2018年春季 8636-22T实用心理学 参考试题
- mac 安装 tunnelblick
- Windows8、Windows8.1使用便签工具
- PS(Photo Shop Cs6)批量调整图片大小
- 基于dragonboard 410c的智能魔镜设计(7)——UI原型设计
- 无线网络 看不到其他计算机,win10看不到无线局域网其他电脑
- linux系统文件名颜色含义
- 安装ie9提示未能完成安装_win7系统32位旗舰版,IE8升级IE9失败,提示未能完成安装...
- 从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中