news 2026/6/19 4:54:51

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

作者头像

张小明

前端开发工程师

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

的 PTH 模型实际训练的是131 类水果,但转换脚本中手动设置了NUM_CLASSES = 208,导致分类头的权重维度不匹配(131≠208),这是典型的「模型结构和权重维度不一致」问题。

修正后的完整 PTH 转 ONNX 脚本(适配 131 类)

python

运行

import torch import torch.nn as nn from torchvision import models from torchvision.models import MobileNet_V2_Weights # ==================== 配置项(修正类别数为131) ==================== PTH_MODEL_PATH = "wlzcfruit_mobilenetv2.pth" # 训练好的pth路径 ONNX_MODEL_PATH = "wlzcfruit_mobilenetv2.onnx" # 输出onnx路径 NUM_CLASSES = 131 # ✅ 修正为实际训练的131类(不是208) INPUT_SIZE = (100, 100) # 和训练脚本的Resize一致 DEVICE = torch.device("cpu") # =================================================================== # 1. 重建和训练时完全一致的模型结构 def build_model(num_classes): # 重建MobileNetV2(和训练脚本结构完全一致) model = models.mobilenet_v2(pretrained=True) # 保持和训练脚本一致的写法 # 修改分类头(维度匹配131类) model.classifier[1] = nn.Linear(model.last_channel, num_classes) return model # 2. 加载pth权重并设置为推理模式 model = build_model(NUM_CLASSES) # 加载权重(CPU环境) model.load_state_dict(torch.load(PTH_MODEL_PATH, map_location=DEVICE)) model.eval() # 必须设为推理模式 # 3. 构造示例输入(1,3,100,100) 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, opset_version=12, input_names=["input"], output_names=["output"], dynamic_axes={ "input": {0: "batch_size"}, "output": {0: "batch_size"} }, verbose=False ) # 5. 验证ONNX模型 try: import 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"❌ 验证失败:{str(e)}")

额外优化:自动匹配类别数(避免手动填错)

如果担心后续类别数变化,可从训练集目录自动读取类别数,彻底避免维度不匹配:

python

运行

import os # 自动读取训练集类别数(和训练脚本逻辑一致) TRAIN_DIR = "./wlzcfruit/Training" NUM_CLASSES = len([d for d in os.listdir(TRAIN_DIR) if os.path.isdir(os.path.join(TRAIN_DIR, d))]) print(f"🔍 自动检测到训练集类别数:{NUM_CLASSES}")

执行步骤

  1. 替换脚本中NUM_CLASSES = 208131(或用上面的自动检测代码);
  2. 确保PTH_MODEL_PATH指向正确的wlzcfruit_mobilenetv2.pth
  3. 重新运行脚本:python wlzc_fruit_pth2onnx.py

阿雪技术观

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

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/6/14 11:30:15

幽冥大陆(八十七 ) 水果识别在线检测模型netron —东方仙盟练气期

ncnn:东方仙盟式的轻轻量高效深度学习推理框架 在深度学习的江湖中,ncnn 犹如一个隐世的东方仙盟,以其独特的 "内功心法" 和 "神兵利器",在终端设备的深度学习推理领域占据一席之地。作为腾讯开源的高性能神…

作者头像 李华
网站建设 2026/6/11 19:25:01

学霸同款2025 AI论文网站TOP8:继续教育必备测评

学霸同款2025 AI论文网站TOP8:继续教育必备测评 2025年学术AI写作工具测评:为何值得一看 随着人工智能技术的不断进步,越来越多的学术工作者开始依赖AI工具提升论文写作效率。然而,面对市场上琳琅满目的平台,如何选择…

作者头像 李华
网站建设 2026/6/2 8:01:55

AI应用架构师带你掌握AI系统灾备方案设计技巧

AI应用架构师带你掌握AI系统灾备方案设计技巧 引言:从一次「推荐系统宕机」看AI灾备的代价 2023年双11期间,某头部电商的实时推荐系统因单可用区(AZ)电力故障宕机45分钟。这场故障直接导致: 首页推荐转化率下降22%&…

作者头像 李华
网站建设 2026/6/3 19:30:46

《CPU的指令集架构:定义计算之基的格式、寻址与范式》

本篇技术博文摘要 🌟 本章“指令系统”阐述了计算机硬件与软件间的核心接口,定义了CPU可执行的基本命令集合。首先,从指令格式入手,解析操作码与地址码的组成,并介绍扩展操作码技术。核心部分详细讲解了指令寻址与多种…

作者头像 李华
网站建设 2026/6/16 0:32:20

如何将特价股票策略融入指数增强型投资

如何将特价股票策略融入指数增强型投资 关键词:特价股票策略、指数增强型投资、量化分析、风险控制、超额收益 摘要:本文旨在深入探讨如何将特价股票策略融入指数增强型投资。首先介绍了相关背景,包括目的范围、预期读者等内容。接着阐述了特价股票策略和指数增强型投资的核…

作者头像 李华
网站建设 2026/6/18 20:16:13

高效AI助手精准匹配科研需求,从文献综述到终稿润色实现全流程支持

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

作者头像 李华