一、项目概述
本项目旨在使用 PyTorch 框架构建和训练一个卷积神经网络(CNN),用于对 Fashion-MNIST 数据集进行分类。Fashion-MNIST 数据集是一个流行的图像分类数据集,包含 10 类不同的服装物品,每个类别有 7000 张灰度图像。每张图像的尺寸为 28x28 像素。
-
数据预处理:
- 加载并预处理 Fashion-MNIST 数据集,包括将图像转换为 Tensor 并进行归一化处理。
-
模型构建:
- 使用
nn.Sequential
构建一个简单的卷积神经网络,包括卷积层、ReLU 激活函数、最大池化层、展平层和全连接层。
- 使用
-
训练和验证:
- 实现模型的训练和验证过程,包括计算损失和准确率。
- 使用 tqdm 库显示训练和验证过程中的进度条。
- 保存训练和验证集的损失和准确率曲线。
-
模型保存:
- 保存训练过程中表现最佳的模型权重。
-
结果可视化:
- 绘制并保存训练和验证过程中的损失和准确率曲线图。
二、数据集介绍
概述
Fashion-MNIST 数据集是一个用于图像分类任务的替代数据集,由 Zalando 提供。与经典的 MNIST 数据集不同,Fashion-MNIST 包含了更具挑战性的服装图像,旨在作为计算机视觉和机器学习算法的基准测试。
数据集组成
- 类别:10 类不同的服装物品,包括 T 恤、裤子、外套、连衣裙等。
- 样本数量:共 70,000 张灰度图像,其中 60,000 张用于训练,10,000 张用于测试。
- 图像尺寸:每张图像为 28x28 像素。
- 图像格式:灰度图像(单通道)。
类别标签
每张图像对应一个类别标签,共有以下 10 个类别:
- T 恤/上衣
- 裤子
- 套头衫
- 连衣裙
- 外套
- 凉鞋
- 衬衫
- 运动鞋
- 包
- 短靴