深度学习模型部署(十)模型部署配套工具二

上篇blog讲了trtexec和onnx_graphsurgeon两个工具,一个用于将onnx转化为trt模型,另一个用于对onnx模型进行修改。这篇blog讲polygraphy和nsight systems,前者用于进行模型优化以及结果验证,后者用于性能分析。

polygraph

polygraph有API库,也有命令行工具,命令行工具有多个模式:

  • run模式:推理模型,得到运行细节,包括推理时间,各层的推理时间等信息,可以看作一个推理测试器
  • debug模式:检测onnx模型转trt模型中的错误,并将模型分为可转换部分和不可转换部分。
  • data模式:调整分析输入输出的数据和模型权重
  • convert模式:基本等同于run
  • surgeon模式:对模型进行优化
    run模式官方文档
    例子:
polygraphy run model-02.plan \ # 推理该模型,这里也可以用onnx模型--trt \ # 使用TensorRT推理,--onnxrt是指用onnxruntime推理--input-shapes 'tensorX:[4,1,28,28]' \ # 输入的shape,tensorX是对应输入的名称--verbose \ # 生成详细信息> result.log 2>&1 # 将详细信息重定向到result.logpolygraphy run modelB.onnx \--trt \--plugins ./AddScalarPlugin.so \ # 添加插件,tensorRT插件再下篇blog讲> result-07.log 2>&1

surgeon模式官方文档
例子:

polygraphy surgeon sanitize yolov5s_v7.onnx \--fold-constant \-o modelA-FoldConstant.onnx \> result.log

inspect模式文档
例子:

polygraphy inspect capability yolov5s.onnx > result_capability.log # 查看tensorRT是否支持该模型

其他用到再写,不在工具学习上做无用功

nsight systems

官方文档
在这里插入图片描述

nv官方教程地址。
四个工具的整体工作流程:
1、使用polygraphy判断tensorRT是否支持,如果支持,进行优化,不支持则处理不支持的层
2、如果不支持,使用onnx_graphsurgeon对模型进行修改
3、使用trtexec进行测试,查看推理效果,如果推理时间不理想,使用nsight systems查看哪里时间影响最大
4、如果精度不理想,使用polygraphy查看整体模型中每一层的输出,查看输出误差较大的层,进行处理
6、得到一个工作状态良好的模型,用TensorRT进行推理部署。
还是那句话,不要在工具上费工夫,用到啥再学啥。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OJ_数组划分

题干 C实现——复杂度极高的深度优先遍历(容易超时) #include <iostream> #include <vector> using namespace std;//sasb sum //sb-sa diffint sum 0; int diff 0;void DFSFindMinDiff(vector<int> &arr,int pos,int sa) { //sa表示a集合的元素和i…

【SCI论文】“学术丑闻揭露:当AI写作遭遇学术审稿,ChatGPT意外成为论文共作者!“

在最近的学术圈中出现了一篇令人哭笑不得的论文。这篇文章标题为“The three-dimensional porous mesh structure of Cu-base…”发表在《Surfaces and Interfaces》杂志上&#xff0c;竟然包含了ChatGPT的提示语&#xff0c;暴露出了审稿过程中可能的疏忽。 文章讨论了铜基金…

构建部署_Jenkins介绍与安装

构建部署_Jenkins介绍与安装 构建部署_Jenkins介绍与安装Jenkins介绍Jenkins安装 构建部署_Jenkins介绍与安装 Jenkins介绍 Jenkins是一个可扩展的持续集成引擎。 持续集成&#xff0c;就是通常所说的CI&#xff08;Continues Integration&#xff09;&#xff0c;可以说是现…

【PyTorch】基础学习:在Pycharm等IDE中打印或查看Pytorch版本信息

【PyTorch】基础学习&#xff1a;在Pycharm等IDE中打印或查看Pytorch版本信息 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1…

最新潮乎盲盒系统源码,附搭建教程

搭建方法 宝塔创建网站&#xff0c;上传后端程序到根目录&#xff0c;在.env修改数据库账号密码 上传数据库&#xff0c;伪静态thinkphp 运行目录public PHP扩展安装下面的 禁用函数先禁用下面那个&#xff0c;就可以了 前端是uniapp 后台admin 禁用函数putenv、 扩展fileinfo…

【日常记录】【JS】浏览器本身的取色器

文章目录 1、介绍2、打开拾色器并且取样3、代码中止拾色器4、参考连接 1、介绍 EyeDropper 接口表示一个拾色器工具的实例&#xff0c;用户可以打开并使用它从屏幕上选择颜色。 (他还是一个实验性的技术&#xff0c;存在兼容性问题&#xff09; EyeDropper MDN 介绍 2、打开拾…

Android FrameWork 学习路线

目录 前言 学习路线&#xff1a; 1.基础知识 2、AOSP 源码学习 3. AOSP 源码编译系统 4. Hal与硬件服务 5.基础组件 6. Binder 7. 系统启动过程分析 8. 应用层框架​编辑 9. 显示系统 10. Android 输入系统 11. 系统应用 前言 Android Framework 涉及的行业相当广…

热流道融合3D打印技术正在成为模具制造新利器

在模具领域中&#xff0c;3D打印技术与热流道技术联手&#xff0c;能迸发出更耀眼的光芒。两种技术虽然各有特点&#xff0c;但两者结合将形成互补作用&#xff0c;从而实现11&#xff1e;2”的跨越式提升。 将增材制造的灵活思维融入传统模具设计时&#xff0c;不仅能够突破传…

github登录时解决2FA问题

使用Edge浏览器下载插件 https://microsoftedge.microsoft.com/addons/detail/authenticator-2fa-client/ocglkepbibnalbgmbachknglpdipeoio 下载后弹框会显示是否添加&#xff0c;添加。如下&#xff1a; Chrome下 https://chrome.google.com/webstore/detail/authenticator…

力扣简单串题:转换成小写字母

char* toLowerCase(char* s) {if(sNULL){return NULL;}for(int x0;x<strlen(s);x){if(s[x]>A&&s[x]<Z){s[x]s[x]-Aa;}}return s; }

深度学习 精选笔记(11)深度学习计算相关:GPU、参数、读写、块

学习参考&#xff1a; 动手学深度学习2.0Deep-Learning-with-TensorFlow-bookpytorchlightning ①如有冒犯、请联系侵删。 ②已写完的笔记文章会不定时一直修订修改(删、改、增)&#xff0c;以达到集多方教程的精华于一文的目的。 ③非常推荐上面&#xff08;学习参考&#x…

RocketMQ - Broker启动的时候都做了什么?

1. Broker启动的时候是如何初始化自己的核心配置的? 启动Broker的时候也是通过mqbroker这种脚本来实现的,最终脚本里一定会启动一个JVM进程,开始执行一个main class的代码。 实际上Broker的JVM进程启动之后,会执行BrokerStartup的main()方法,这个BrokerStartup类,就在r…