Skip to content

Remygred/Fashion-MNIST-CNN-Project

Repository files navigation

Fashion-MNIST 服饰图像分类 (PyTorch + CNN)

使用卷积神经网络对 Fashion-MNIST 数据集中 10 类灰度服装图像(28×28)进行自动分类。
训练 10 个 epoch 后,模型在测试集上可达到 ≈ 91 % 的准确率。


项目结构


├── data.py          # 数据加载与预处理
├── model.py         # CNN 模型结构
├── train.py         # 训练逻辑(中文日志)
├── evaluate.py      # 评估逻辑(中文指标)
├── main.py          # 命令行入口:训练 / 评估
├── README.md        # 本文件
└── report.pdf       # 实验报告(另存 Word→PDF)


环境依赖

依赖 推荐版本 说明
Python ≥ 3.8 任意发行版均可
PyTorch ≥ 1.8 建议安装 GPU 版 以充分利用 CUDA
torchvision 与 PyTorch 匹配 数据集加载与图像变换
scikit-learn ≥ 0.24 生成分类报告 & 混淆矩阵

安装示例(CPU):

pip install torch torchvision scikit-learn

如需 GPU 版,请查看 https://pytorch.org 选择对应 CUDA wheel。


快速上手

训练模型

python main.py --mode train --epochs 10 --batch-size 64
  • 自动检测 GPU:若可用,打印 使用设备: cuda 并启用显卡训练;否则退回 CPU。
  • 每 epoch 输出:训练损失 / 训练准确率 / 测试损失 / 测试准确率
  • 训练结束后模型权重默认保存为 fashion_mnist_cnn.pth(可用 --model-path 自定义)。

评估模型

python main.py --mode eval --model-path fashion_mnist_cnn.pth
  • 输出整体准确率、各类别 Precision / Recall / F1、以及 10×10 混淆矩阵。

参数说明

参数 默认 含义
--mode train 运行模式:train / eval
--epochs 10 训练轮数
--batch-size 64 批大小
--lr 0.001 学习率
--model-path fashion_mnist_cnn.pth 权重保存/加载路径
--device 自动 强制指定 cpucuda

常见问题

问题 解决方案
下载数据集缓慢 手动下载 .gz 放到 ~/.torch/datasets
GPU 显存不足 调小 --batch-size 或切换 --device cpu
分类效果未达预期 增加 --epochs、加入数据增强、或替换更深网络

参考资料

About

华中科技大学2025年春机器学习导论大作业

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages