尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
【深度学习项目实战·13】服装图像分类:在相同条件下比较MLP与CNN
文章目录01 本篇要解决什么问题02 背景同样是28×28分类难点已经改变03 实操设计一个有边界的比较实验1先下载沿用固定划分2MLP先把图像展平成向量3CNN保留二维邻域信息4控制能控制的条件5比较指标同时查看错误样本6从小规模检查过渡到完整比较04 一个具体例子一条命令训练两个模型05 常见问题与自测06 本篇回顾与下一步01 本篇要解决什么问题跑通MNIST以后很容易想试试更大的模型。但一个模型的准确率比另一个高究竟是结构带来的还是训练轮数、样本划分或数据增强不同本篇使用Fashion-MNIST让一个MLP和一个小CNN完成同一任务。除了训练还要把“怎样比较”这件事做清楚。本篇关键词Fashion-MNIST、MLP、CNN、公平比较、错分分析。完成标志用同一份划分训练两个模型分别保存权重和结果形成可复查的比较。运行约定保留完整examples目录命令从练习根目录执行依赖沿用第12篇。02 背景同样是28×28分类难点已经改变Fashion-MNIST包含60000张训练图和10000张测试图每张为28×28灰度图共10类服装。发布方提供文件、校验和及类别说明见Fashion-MNIST作者仓库。类别包括T恤、裤子、套头衫、连衣裙、外套、凉鞋、衬衫、运动鞋、包和短靴。低分辨率下某些服装轮廓接近单靠“整体像一个形状”可能不够。这里可以沿用数字识别的数据流程但不能沿用数字类别的解释。项目必须把真实的类别映射随权重一起保存。03 实操设计一个有边界的比较实验1先下载沿用固定划分python examples/download_data.py--dataset fashion--datadata代码使用发布方GitHub数据文件作为优先镜像并保留作者原始下载站作为备用仍检查原始文件校验和。官方训练部分按类别划为约54000训练、6000验证官方10000测试保留。两个模型共用同一份索引如果缩小数据规模也共用同一份子集。2MLP先把图像展平成向量下面的模型把784个像素当作输入特征经过一个128维隐藏层再输出10个类别分数。fromtorchimportnnclassFashionMLP(nn.Module):def__init__(self):super().__init__()self.layersnn.Sequential(nn.Flatten(),nn.Linear(28*28,128),nn.ReLU(),nn.Linear(128,10))defforward(self,x):returnself.layers(x)它有101770个参数计算直接适合作为起点。但展平之后网络没有显式采用卷积中的局部连接与权重共享机制。3CNN保留二维邻域信息CNN使用第12篇的GrayCNN(classes10)两次卷积与池化后接分类头。它在不同位置重复使用卷积核有机会利用局部边缘和纹理。本版CNN有114314个参数与MLP处于相近量级但并不完全相同。因此这个实验是两个具体配置的比较不能解释成“只改变一种因素、其余完全相等”的严格结构消融。卷积带来的先验也不代表任何设置下都必然更好。训练是否充分、优化器是否合适、样本规模多大都可能改变结论。4控制能控制的条件条件本篇约定数据划分、使用数量两个模型完全相同预处理灰度浮点、统一缩放与标准化随机增强两个模型均不使用优化器Adam相同初始学习率batch size与轮数使用同一组参数批次顺序每个模型重新设置同一数据加载随机种子最优权重各自按验证损失最小选择模型初始化使用相同种子方便重复实验但不同结构不会因此得到一一对应的相同初始权重。这里先做一次可复查的比较如果要形成更可靠结论还应在多个种子下报告均值与波动。5比较指标同时查看错误样本总体准确率适合快速观察但建议同时看macro-F1和逐类召回率。某个类别预测困难时混淆矩阵能帮助定位它通常被分成哪一类。不要预先认定某几类一定混淆。先从本次的predictions.csv和错分图中找到证据再回看这些类别的轮廓、局部纹理和遮挡情况。不同模型的计算成本也值得记录。本篇输出参数量与本次总耗时总耗时包含评价和文件输出不能直接当作纯推理延迟。需要比较部署速度时应另做同设备、同批次和统一预热的测量。6从小规模检查过渡到完整比较python examples/compare_fashion.py--epochs 1--limit-train1024--limit-val256--limit-test256正式使用完整划分时python examples/compare_fashion.py--epochs 5--output artifacts/13_fashion_full一轮小样本结果主要确认两个流程都正常不能据此给出结构优劣的普遍结论。即使固定轮数相同两个模型也未必都已充分收敛应结合训练与验证曲线解释。图本篇原创比较设计图列出两个模型共享与不同的部分。04 一个具体例子一条命令训练两个模型主入口是examples/compare_fashion.py。数据只加载和划分一次再分别创建模型、重置训练随机状态并保存到独立子目录。Chapter 13: compare two models using identical splits and training budgets.importcopyfromproject_commonimportparser_for,validate_args,seed_everything,run_experiment,write_jsonfromproject_dataimportload_data,preprocessingfromproject_modelsimportbuild_modeldefmain():parserparser_for(__doc__,artifacts/13_fashion,epochs5,batch_size128)argsparser.parse_args()validate_args(parser,args)data,classes,manifestload_data(fashion,args)results{}forname,specin[(mlp,{kind:fashion_mlp}),(cnn,{kind:gray_cnn,classes:10})]:seed_everything(args.seed,args.threads)currentcopy.copy(args)current.outputargs.output/name resultrun_experiment(build_model(spec),spec,data,classes,manifest,preprocessing(fashion),current)results[name]{parameters:result[parameters],best_epoch:result[best_epoch],test_accuracy:result[test][accuracy],test_macro_f1:result[test][macro_f1]}write_json(args.output/comparison.json,results)print(results)if__name____main__:main()输出目录中的mlp与cnn分别保存最优权重、训练历史、混淆矩阵数据和预测图。顶层comparison.json汇总两者参数量、最优轮次、测试准确率与macro-F1。python examples/visualize_run.py--run artifacts/13_fashion/mlp python examples/visualize_run.py--run artifacts/13_fashion/cnn python examples/predict_image.py--checkpoint artifacts/13_fashion/cnn/best.pt--imagedata/my_clothing.png单图输入也应尽量接近数据集的灰度、背景和主体占比。真实商品照片涉及更复杂背景后面第15篇会用真实彩色图与迁移学习继续处理这种差异。公共函数和模型完整代码见配套工程及公共代码附录。本篇不填写预设的“CNN比MLP高几个百分点”比较结果以实际输出为准。05 常见问题与自测问题1给两个模型设同一个seed实验就完全公平了吗还要控制划分、样本数、预处理、训练预算和选择规则。不同结构的初始化也不会因同一个seed变成相同参数。问题2为什么这次不先给CNN加很多数据增强先让两个起点共享输入条件。后续要研究增强作用可以固定模型再单独比较有无增强。问题3参数量接近就代表计算量和显存相同吗不代表。中间特征、运算方式和输入尺寸也会影响成本不能只凭参数量判断运行速度。问题4能不能只把测试结果更好的模型叫“最佳模型”本篇报告两个已确定配置的测试结果。若还要据此不断修改和选择方案就需要保留新的独立最终评价数据。问题5测试macro-F1和Accuracy为什么不同它们统计的角度不同。macro-F1逐类计算再等权平均更容易反映具体类别的短板。06 本篇回顾与下一步这次项目增加的能力是把模型比较组织成一个可解释的实验。结果文件负责记录数值数据划分和训练约定负责让这些数值有可比较的含义。中文常见英文或写法多层感知机MLP归纳偏置Inductive Bias宏平均F1Macro-F1对照实验Controlled Comparison下一篇进入32×32彩色自然图像用适配小图的ResNet学习更复杂的特征。参考与延伸阅读Torchvision FashionMNIST接口PyTorch可复现性说明
RELATED

相关推荐

ticket-purchase 零基础上手:大麦自动抢票从选城市场次到提交订单的完整链路

ticket-purchase 零基础上手:大麦自动抢票从选城市场次到提交订单的完整链路

ticket-purchase 零基础上手:大麦自动抢票从选城市场次到提交订单的完整链路 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase ticket-pur…

📅 2026/11/6 8:28:42
Folia 全屏歌词播放器怎么安装?新手一次装对,从下载到首次播放

Folia 全屏歌词播放器怎么安装?新手一次装对,从下载到首次播放

Folia 全屏歌词播放器怎么安装?新手一次装对,从下载到首次播放 【免费下载链接】folia-major 专注于绚丽的歌词动画效果的本地音乐/navidrome/第三方多平台在线音乐播放器 A multi-platform music player for local files, Navidrome, and online stream…

📅 2026/11/6 8:28:42
懂个锤子Vue VueRouter路由深入浅出

懂个锤子Vue VueRouter路由深入浅出

VueRouter路由深入浅出 VueRouter 介绍: Vue Router 是 Vue.js官方的路由管理器: 极大地简化了在 单页面应用程序 SPA-Single Page Application: 中构建导航和页面切换的复杂性; 单页面应用程序 SPA 单页面应用程序SPA&#…

📅 2026/11/6 8:28:42
MORE NEWS

更多资讯

📰

Cline CLI完全指南:在终端运行AI编程代理,实现CI/CD自动化代码审查

人工智能大模型AI Agent代码智能体AI 应用开发工具 【免费下载链接】cline-chinese Cline中文汉化版,Cline是一款在您的 IDE 中运行的自主编程助手,经您许可后可以创建/编辑文件、运行命令、使用浏览器等功能。 项目地址: https://gitcode.co…

📰

Windows域控 设置全域的密码策略 【全域策略生效】

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Spring+SpringMVC+MyBatis 整合(+拦截器) 详:

SpringSpringMVCMyBatis 整合(拦截器) 详: 目前为止博客基本已将掌握SpringMVC 相关的知识点; 终于来到了最终时刻 SSM 三大框架整合; 搭建SSM 框架的程序架构 SSM 框架整合其实就是:Mybatis Spring SpringMVC 的整合; 前面学习我们知道 &#xff1a…

📰

Oracle数据库基础学习

Oracle数据库基础学习 个人之前就学习过 mysql sqlserver 但笔记没有在CSDN上可能会有些跳跃~ 不明确地方可以看这位大佬的笔记~不是我的. Oracle 简介 OracleDatabase 又名Oracle RDBMS , 是甲骨文公司的一款关系数据库管理系统。(世界上最好的数据库系统;(历史悠…

📰

Java 面试

Java 面试宝典 不定时更新 Java的面试题, 有什么好的 感谢评论告知! 小提示 可以看旁边的文章目录, 自问自带看看自己会不会! 奉上本人Java学习笔记! Java 线程 泛型 集合 SSM Mybatis mybatis中namespace的作用 Namespace是命名空间…

📰

PowerShell监控——监控共享打印机 获取打印记录、打印人员、打印文件等详细信息

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬