图像分类论文复现怎么入门:我用 Fashion-MNIST 跑通了 MCNN15,但没急着说成功
- 这次复现做的是什么
这次我新开了一条图像分类论文复现线,数据集选的是经典公开数据集 Fashion-MNIST,目标论文是:
MCNN15: Multi-Class Convolutional Neural Network for Fashion-MNIST Classification
之所以先做这个题目,原因很现实:
- 数据公开,下载和接入成本低
- 图像尺寸小,个人设备也能训练
- 十分类任务边界清楚,适合做 baseline 和目标模型对比
- 论文可以直接读,但没有现成官方源码拿来直接套
- 很适合练一遍“无源码图像论文应该怎么复现”
这次的目标不是简单跑一个模型,而是把一条比较完整的复现链路立起来:
- 锁定论文和数据集
- 打通数据入口
- 自己实现
CNN baseline - 自己实现
MCNN15近似版 - 跑出第一轮结果
- 再补多 seed 和补充实验
2. 为什么我会先做 Fashion-MNIST
如果一开始就上大图像数据集,很多时候最先卡住的不是模型,而是:
- 训练时间
- 环境依赖
- 显存压力
- 结果整理成本
相比之下,Fashion-MNIST 很适合做第一条图像复现线:
- 输入固定为
1 x 28 x 28 - 官方划分明确
60000训练样本,10000测试样本- 是标准十分类任务
简单说,它非常适合先验证:
“没有官方代码时,我能不能把一篇图像分类论文从数据到模型完整跑下来。”
3. 这次我具体做了什么
这条复现线目前主要做了四部分工作。
3.1 数据接入
当前数据入口基于:
torchvision.datasets.FashionMNIST
并固定了标准训练测试划分。
3.2 模型实现
这次实现了两个模型:
CNN baselineMCNN15近似实现
其中 MCNN15 这条线是按论文描述做的工程近似版,核心包括:
15层卷积- 固定
3 x 3卷积核 - 每层后接
BatchNorm + ReLU - 三个卷积组后插入池化
3.3 训练设置
目前这条线已经用到过几类训练口径:
3 epochs快速验证10 epochs延长训练- 多随机种子比较
- 补充的小 batch 敏感性实验
默认数据增强也已经接入,包括:
RandomHorizontalFlipRandomAffine
3.4 结果整理
除了代码本身,我还把这条线的实验记录整理到了:
experiments/fashion-mnist-mcnn15/data/fashion_mnist/reports/docs/literature/
所以现在它已经不是“一个想法”,而是一条已经跑出结果的复现实验线。
4. 第一轮结果:目标模型能跑通,但没有稳定赢下 baseline
先看第一轮最核心的多 seed 结果。
当前 3 epochs, 3 seeds 的平均结果是:
-
CNN- accuracy mean:
0.9001 - macro-F1 mean:
0.9005
- accuracy mean:
-
MCNN15- accuracy mean:
0.8979 - macro-F1 mean:
0.8972
- accuracy mean:
如果只看最初单次实验,MCNN15 一度看起来略优;但把多个 seed 放在一起之后,结论就变了:
MCNN15不是跑不通MCNN15也不是完全没有竞争力- 但在当前实现和当前训练设置下,它没有稳定超过更简单的
CNN baseline
这件事其实很重要。
因为论文复现里最容易出现的问题,就是看到一次高分就急着下结论。
5. 补充实验:继续训练和小 batch 后,我看到了什么
为了不把结论建立在一组结果上,我又补了两类实验:
- 更长训练
- 小 batch 敏感性测试
5.1 更长训练并没有扭转结论
在现有结果里,seed=42 的更长训练结果显示:
-
CNN,10 epochs- accuracy
0.9073 - macro-F1
0.9079
- accuracy
-
MCNN15,10 epochs- accuracy
0.9071 - macro-F1
0.9062
- accuracy
也就是说,延长训练以后,两者都提升了,但 MCNN15 并没有明显反超。
5.2 小 batch 暴露出 MCNN15 的现实问题
我又专门补了一组 MCNN15 的小 batch 实验:
MCNN15,seed=42,batch_size=32,3 epochs- accuracy
0.8589 - macro-F1
0.8514
- accuracy
和原来的:
MCNN15,seed=42,batch_size=128,3 epochs- accuracy
0.9022 - macro-F1
0.9008
- accuracy
相比,结果掉得很明显。
这说明当前版本的 MCNN15 至少暴露出两个问题:
- 对训练设置比较敏感
- 在当前环境里训练成本偏高
尤其是小 batch 下,它不仅没有表现更好,训练速度反而明显更慢。
6. 当前结果图

图的左侧是首轮 3 epochs, 3 seeds 的平均结果,右侧是为了写结论补的几个辅助实验。
如果只看现在这一步,我会把它理解成:
CNN目前仍然是更稳的实用 baselineMCNN15已经可以跑通,也有一定竞争力- 但它对训练设定更敏感,稳定性和性价比都还不够理想
7. 这条复现线现在算不算“复现成功”
如果严格按论文复现的标准来说,我的答案是:
还不能直接说“完整复现成功”。
原因主要有几个:
- 当前
MCNN15还是工程近似实现 - 还没有证明和论文所有训练细节完全对齐
- 结果上也没有稳定复现出“目标模型优于 baseline”的趋势
- 不同训练设定下还存在比较明显的敏感性
但如果换一个更准确的表述,那么这条线已经可以算:
一条成立的 Fashion-MNIST 无源码论文初版复现实验。
这两句话的差别很关键。
我现在更愿意说的是:
- 复现链路已经跑通
- 目标模型已经搭起来
- 初步对比实验已经成立
- 但距离“严格意义上的论文结果复现”,还需要继续做更系统的验证
8. 我觉得这条线最值得分享的地方
对我来说,这次最有价值的地方不只是某个分数,而是它把下面这个过程完整做出来了:
- 选一个公开且合适的图像数据集
- 找一篇没有官方代码的论文
- 从论文里提取结构和训练细节
- 对没写清楚的部分做合理工程补全
- 先跑 baseline
- 再跑目标模型
- 最后补多 seed、补辅助实验、补图表和结论
这其实就是很多人最需要练的能力。
因为现实里的论文复现,很多时候都不是“找到仓库直接跑”,而是:
你得自己把论文翻译成工程实现。
9. 小结
一句话总结当前这条 Fashion-MNIST 复现线:
MCNN15 已经跑通,但在当前实现和当前实验设置下,还没有稳定体现出比简单 CNN baseline 更强的优势。
所以这次更准确的定位不是:
我已经完整复现成功
而是:
我已经完成了一版成立的无源码工程复现实验
需要资料可以私信我哟
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)