news 2026/3/6 0:05:44

幽冥大陆(八十三)Python 水果识别PTH 转 ONNX 脚本 —东方仙盟练气期

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
幽冥大陆(八十三)Python 水果识别PTH 转 ONNX 脚本 —东方仙盟练气期

容你代码中的输入尺寸(100x100)和 CPU 环境:

python

运行

import torch import torch.nn as nn from torchvision import models from torchvision.models import MobileNet_V2_Weights # ==================== 配置项(需和训练脚本一致) ==================== PTH_MODEL_PATH = "wlzcfruit_mobilenetv2.pth" # 训练好的pth路径 ONNX_MODEL_PATH = "wlzcfruit_mobilenetv2.onnx" # 输出onnx路径 NUM_CLASSES = 208 # 你的水果类别数(和训练时一致) INPUT_SIZE = (100, 100) # 输入尺寸(和训练时的Resize一致) DEVICE = torch.device("cpu") # 保持和训练一致的CPU环境 # =================================================================== # 1. 重建和训练时完全一致的模型结构 def build_model(num_classes): # 重建MobileNetV2(和训练脚本结构一致,消除pretrained警告) model = models.mobilenet_v2(weights=MobileNet_V2_Weights.IMAGENET1K_V1) # 修改分类头(和训练脚本一致) model.classifier[1] = nn.Linear(model.last_channel, num_classes) return model # 2. 加载pth权重并设置为推理模式 model = build_model(NUM_CLASSES) # 加载权重(CPU环境无需map_location) model.load_state_dict(torch.load(PTH_MODEL_PATH, map_location=DEVICE)) model.eval() # 必须设为推理模式,禁用Dropout/BatchNorm训练行为 # 3. 构造示例输入(匹配模型输入维度:batch_size=1, 3通道, 100x100) dummy_input = torch.randn(1, 3, INPUT_SIZE[0], INPUT_SIZE[1], device=DEVICE) # 4. 转换PTH到ONNX(核心步骤) torch.onnx.export( model, # 加载好权重的模型 dummy_input, # 示例输入(用于推断维度) ONNX_MODEL_PATH, # 输出ONNX路径 opset_version=12, # ONNX算子版本(兼容大部分推理框架) input_names=["input"], # 输入节点名称(方便后续推理调用) output_names=["output"], # 输出节点名称(分类结果) dynamic_axes={ # 支持动态批次(可选,推荐) "input": {0: "batch_size"}, "output": {0: "batch_size"} }, verbose=False # 关闭详细日志(如需调试可设为True) ) # 5. 验证ONNX模型是否有效(可选,推荐) try: import onnx # 加载并检查ONNX模型完整性 onnx_model = onnx.load(ONNX_MODEL_PATH) onnx.checker.check_model(onnx_model) print(f"✅ ONNX模型转换成功!路径:{ONNX_MODEL_PATH}") print(f"📌 模型输入维度:1x3x{INPUT_SIZE[0]}x{INPUT_SIZE[1]}(支持动态批次)") print(f"📌 模型输出维度:1x{NUM_CLASSES}(对应{NUM_CLASSES}类水果)") except ImportError: print("⚠️ 未安装onnx库,跳过模型验证(可执行 pip install onnx 安装)") print(f"✅ ONNX模型已生成:{ONNX_MODEL_PATH}") except Exception as e: print(f"❌ ONNX模型验证失败:{str(e)}")

关键注意事项(必看)

  1. 参数一致性

    • NUM_CLASSES必须和训练时的类别数一致(你的日志中是 208 类);
    • INPUT_SIZE必须和训练脚本中Resize((100, 100))一致,否则推理会报错;
    • 若训练时修改过输入尺寸(如 64x64),需同步修改此处的INPUT_SIZE
  2. 环境依赖

    • 安装依赖:pip install onnx(用于验证模型,可选但推荐);
    • PyTorch 版本建议和训练时一致,避免算子不兼容。
  3. 动态批次说明

    • 脚本中dynamic_axes配置支持动态批次(如批量推理时用 batch_size=16/32);
    • 若只需单张图片推理,可删除dynamic_axes参数,模型体积会略小。
  4. 推理适配

    • ONNX 模型输入需和训练时的预处理一致(若后续加回Normalize,推理时需对输入图片执行相同归一化);
    • 输入图片格式要求:RGB 通道、张量形状为(batch_size, 3, 100, 100)、数据类型为 float32。

阿雪技术观


在科技发展浪潮中,我们不妨积极投身技术共享。不满足于做受益者,更要主动担当贡献者。无论是分享代码、撰写技术博客,还是参与开源项目维护改进,每一个微小举动都可能蕴含推动技术进步的巨大能量。东方仙盟是汇聚力量的天地,我们携手在此探索硅基生命,为科技进步添砖加瓦。

Hey folks, in this wild tech - driven world, why not dive headfirst into the whole tech - sharing scene? Don't just be the one reaping all the benefits; step up and be a contributor too. Whether you're tossing out your code snippets, hammering out some tech blogs, or getting your hands dirty with maintaining and sprucing up open - source projects, every little thing you do might just end up being a massive force that pushes tech forward. And guess what? The Eastern FairyAlliance is this awesome place where we all come together. We're gonna team up and explore the whole silicon - based life thing, and in the process, we'll be fueling the growth of technology

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/28 10:37:24

数据可视化与参考文献管理模块,实现研究数据与学术规范的协同处理

学术论文写作中,开题报告与正文的高效产出常面临挑战。传统人工撰写方式虽具备灵活性,却受限于效率问题,而基于人工智能的技术解决方案能快速生成内容、优化文本逻辑并控制重复率。研究表明,通过对九种主流智能写作平台的评估比较…

作者头像 李华
网站建设 2026/3/3 21:28:53

智能语法校对与风格优化功能,确保学术论文符合国际期刊发表标准

在学术论文撰写过程中,开题报告与正文的高效完成是研究者常见的难题。传统人工撰写模式虽然灵活性较高,但存在效率瓶颈,而现代人工智能技术能够实现内容的快速生成、重复率控制以及文本逻辑优化。实验数据显示,对9种主流智能写作平…

作者头像 李华
网站建设 2026/3/5 16:52:16

学霸同款10个AI论文软件,专科生轻松搞定毕业论文!

学霸同款10个AI论文软件,专科生轻松搞定毕业论文! AI 工具让论文写作不再难 对于许多专科生来说,撰写毕业论文是一件既紧张又棘手的事情。面对复杂的格式要求、繁重的文献查阅以及不断修改的初稿,很多人感到无从下手。然而&#x…

作者头像 李华
网站建设 2026/3/4 19:05:28

真实项目案例:AI应用架构师如何用智能追踪系统拯救企业资产流失?

真实项目案例:AI应用架构师如何用智能追踪系统拯救企业资产流失? 关键词:AI应用架构师、智能追踪系统、企业资产流失、物联网、数据分析、机器学习算法 摘要:本文通过一个真实项目案例,深入探讨AI应用架构师如何运用…

作者头像 李华
网站建设 2026/3/2 15:55:38

吐血推荐8个一键生成论文工具,专科生轻松搞定毕业论文!

吐血推荐8个一键生成论文工具,专科生轻松搞定毕业论文! 论文写作不再难,AI 工具助你轻松应对 对于专科生来说,撰写毕业论文是一项既重要又充满挑战的任务。面对繁重的文献阅读、逻辑梳理和语言表达,许多同学常常感到无…

作者头像 李华
网站建设 2026/3/4 2:32:42

gitea为什么好

Gitea 之所以被认为“好”,核心在于它用最小代价解决了“代码完全属于自己”这一诉求,同时把安装、运维和学习成本压到极致。具体优势可以归纳为 6 点:1. 真正轻量1 核 CPU 256 MB 内存即可流畅运行;空载内存占用常见值 80–120 …

作者头像 李华