将yolov3.pth转换为onnx并进行推理

2023-10-29

前言

      最近训练了一个yolov3检测模型,需要将保存好的.pth文件转换为onnx并且写一个inference过程。于是学习了一下onnx的知识并记录下来。

用到的工具

onnx

安装方法:pip install onnx

onnxruntime

安装方法:pip install onnxruntime

pth-->onnx

1.加载训练好的模型和模型参数

2.使用model.eval()

3.创建一个虚拟输入,输入的形状和你训练的模型接受的输入形状要求一致

4.使用torch.onnx.export进行转换,具体操作为:torch.onnx.export(model,input,"保存路径")(注:其他参数可以自行了解)

5.转换完成

推理

导入onnx和onnxruntime

model=onnx.load("onnx文件路径")

加载完成后可以使用onnx.checker.check_model(model)来检查有没有问题。一般来说是不会出问题的。

然后加载输入,并且对输入做前处理,比如我这里是对图片进行检测,所有我做的前处理包括读入图片,将图片处理到需要的shape。

创建onnxruntime session:sess=onnxruntime.InferenceSession("onnx文件路径")

input_name=sess.get_inputs()

result=sess.run(None,{input_name[0].name:img.numpy()}),此处的img即是之前进行过前处理的图像,result就是这张图像经过检测模型得到的结果,之后再经过nms和后处理就可以得到想要的结果了!

后记

目前只是对onnx有了一个初步的理解,可能很多地方还有不足的地方,希望大家可以多多包涵,有问题的话也欢迎交流,之后会继续补充!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将yolov3.pth转换为onnx并进行推理 的相关文章

  • (c语言)static的用法详解

    前言 static是静止的 静态的意思 那它有什么用呢 今天我们来了解了解 1 修饰局部变量 修饰局部变量时 局部变量出了作用域 不销毁 变量生命周期变长 变成整个程序的生命周期 本质上 static修饰局部变量的时候 改变了变量的存储位置
  • vue-oss阿里云上传图片

    先搭建vue框架 配置路由 添加图片上传页面链接 添加图片上传页面 然后进行以下操作 1 首先到阿里云上面开通oss服务 2 安装ali oss包 vue项目根目录下执行命令 npm install ali oss save 安装ali o
  • win10+uefi+gpt安装一键GHOST之后无法重启的快速解决方法(无需重装系统无需修复引导)

    今天装完常用软件后 准备一键备份一下系统 就从一键GOST官网下载安装了一键GHOST 安装完成之后提示不支持UEFI GPT格式系统 但仍可以使用 就没在意 也没卸载 接着就重启电脑试一试 结果就出现了无法进入系统引导的情况 折腾一番BI
  • [Java]生成32位随机字符ID

    生成32位编码 return string public static String getUUID String uuid UUID randomUUID toString trim replaceAll return uuid 自定义规

随机推荐

  • The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received

    我项目错误原因是项目里关于连接数据库有多个 properties文件 没有指定哪一个 就默认执行application properties了 而application properties是生产数据库 我连不上 我的解决办法是这样的在这里
  • Unity官方文档笔记(二)编辑器功能

    一 Preference 1 1 General 属性 功能 Auto Refresh 启用此设置可在资源更改时自动更新资源 Load Previous Project on Startup 启用此设置可在启动时始终加载上一个项目 Comp
  • 【译】在 React Hooks 中使用 useReducer 的几种用例

    原文 How to use useReducer in React Hooks for performance optimization github 的地址 欢迎 star React Hook 出来已经有一段时间了 具体的一些用法以及它
  • 如何确定自己是否适合做程序员?怎样知道自己到底喜不喜欢编程?将来要以此为工作?

    如何确定自己是否适合做程序员 怎样知道自己到底喜不喜欢编程 将来要以此为工作 程序员成长的必备条件 程序员的工作 说到底就是要编出满足需求的程序 如果这项工作你做得好 你就发展得好 所以 程序员的成长 都是围绕着 编出满足需求的程序来展开的
  • 关机对话框字体大小不跟随显示设置变化的修改

    现象描述 设置 显示 显示大小 最大 按电源键的关机 弹出确认框 android 12中原生去掉了关机确认对话框的的显示 但是客户头铁非要显示 询问MTK回答客制代码只能自己解决 只能自己搞定 贴了代码 仅供参考 在ShutdownThre
  • 普通文件下载 + 前端获取后端返回的文件流并下载

    参考资料 前端接受后端文件流并下载的几种方法 ajax 请求二进制流 图片 文件 XMLHttpRequest 请求并处理二进制流数据 之最佳实践 ajax请求二进制流进行处理 ajax异步下载文件 response setHeader 的
  • JavaScript的学习笔记

    JavaScript的学习笔记 学习B站上狂神的视频记录的笔记 1比较运算符 console log 1 1 true 判断的时候值相等 类型不同也是true console log 1 1 false 值相等且类型相同 才为true 2严
  • arcgis 字段计算器 条件赋值_ARCGIS中字段计算器的使用说明

    Field Calculator 工具可以在属性表字段点击右键 选择 Field Calculator 或者Data Management Tools gt fields gt Calculate Field打开 1 基本函数 针对数值型
  • 谷歌开发者工具之功能面板

    Network 面板 用的最多的面板 可查看 Ajax 请求 页面访问时间线等等 Performance 面板 查看JS性能 详情可看我的另一篇文章 如何使用谷歌浏览器开发者工具中的Performance分析网页性能 Rendering 面
  • 华为OD机试 - 恢复数字序列(Python)

    题目描述 对于一个连续正整数组成的序列 可以将其拼接成一个字符串 再将字符串里的部分字符打乱顺序 如序列8 9 10 11 12 拼接成的字符串为89101112 打乱一部分字符后得到90811211 原来的正整数10就被拆成了0和1 现给
  • C#中List常用方法:判断存在、查找、排序

    项目常用List来进行数据操作管理 有一些方法经常百度 所以这里记录下 目录 1 List判断元素是否存在 返回bool 2 List查找 返回对象 3 List排序 4 对象属性打印 5 List 其他方法 1 List判断元素是否存在
  • 程序员的自我修养——链接,装载与库

    章节目录 静态链接 编译和链接 目标文件 静态链接 windows COFF 装载和动态链接 可执行文件的装载与进程 动态链接 Linux共享库的组织 Windows下的动态链接 库与运行库 内存 运行库 系统调用与API 运行库实现 一
  • 【C++入门】引用符&详解

    1 C 的 引用符介绍 1 符号在C语言中表示取地址运算 2 C 对 符号进行拓展 符号新增了引用的用法 3 声明引用时 必须同时对其进行初始化 4 引用声明完毕后 相当于目标变量有两个名称 引用名就相当于变量的别名 操作引号名就相当于操作
  • 【深度解析→博文总结】李宏毅机器学习2023作业02Classification(Framewise Phoneme Prediction)

    文章目录 系列文章 简要说明 视频分享 作业详情 调参记录 Simple Baseline 0 49798 Medium Baseline 0 66440 Stong Baseline 0 74944 Boss Baseline 0 830
  • html制作电影界面,电影网站界面设计HTML_CSS模板

    实例简介 简单生活 希望对大家有用 要觉得本资源有价值请分享给您的朋友 生活就是人来人往 分享越多 收获越多 作者 天天ASP家园 实例截图 核心代码 7c828d9e b4a1 48fc be7b 81a2137edae2 电影网站界面设
  • ​​​​​​​三个案例帮你彻底了解反馈电路中的相位补偿

    转自于http www elecfans com d 669847 html 三个案例帮你彻底了解反馈电路中的相位补偿 2004年 帮朋友做镍氢充电器 利用镍氢电池充满电时电压有一个微小的下降这个特点来识别是否已经充满 比如1 2V的镍氢电
  • 程序员戴耳机究竟在听什么,看完真相,我惊了!

    今天 某妹子突然凑到我的耳边轻声说说 我们公司的程序员 清一色的戴着耳机 你说他们是不是故意不想听我们提的需求 我很方 因为我也喜欢戴耳机 思考ing 思考了一秒钟后 一本正经的和妹子说 你这么漂亮 怎么会呢 戴耳机可能只是他们的习惯罢了
  • String详解

    String类的理解 什么是String类 String类实现了Serializable接口 对象可以被序列化 序列化之后 对象可以进行网络传输 或者持久化 String类实现的Comparable接口 对象可以比较大小 String类实现
  • GoLang之搭建Web服务器

    2014 02 05 wcdj 0 摘要 之前总结过如何使用Perl搭建Web服务 Web服务器的实现 最小的Perl Web服务器 本文介绍如何使用GoLang搭建Web服务 Go语言提供了一个完善的net http包 通过这个http包
  • 将yolov3.pth转换为onnx并进行推理

    前言 最近训练了一个yolov3检测模型 需要将保存好的 pth文件转换为onnx并且写一个inference过程 于是学习了一下onnx的知识并记录下来 用到的工具 onnx 安装方法 pip install onnx onnxrunti