FashionMNIST 是 torchvision.datasets 内置的一个经典图像分类基准数据集。你可以把它看作是老牌手写数字数据集 MNIST 的现代“升级版”。

在深度学习的发展史上,MNIST(手写数字 0-9)曾是入门圣经。但随着模型越来越强,MNIST 变得太简单了(随便一个浅层网络准确率都能达到 99% 以上)。因此,Zalando 公司推出了 Fashion-MNIST,用来接替 MNIST 作为机器学习算法的“试金石”。


📋 核心规格参数

  • 数据规模:总共 70,000 张图像(其中 60,000 张用于训练,10,000 张用于测试)。
  • 图像尺寸: 像素的单通道灰度图(Grayscale,通道数为 1)。
  • 标签类别:共 10 个日常服饰类别:
  1. T-shirt/top (T恤)
  2. Trouser (裤子)
  3. Pullover (套头衫)
  4. Dress (连衣裙)
  5. Coat (外套)
  6. Sandal (凉鞋)
  7. Shirt (衬衫)
  8. Sneaker (运动鞋)
  9. Bag (包)
  10. Ankle boot (短靴)

🎯 为什么在学习 PyTorch 时经常用它?

  1. 结构与 MNIST 完全一致:它的尺寸()、通道数(单通道)和加载接口和 MNIST 一模一样。如果你会跑 MNIST,就能无缝切换到 FashionMNIST。
  2. 比数字识别更有挑战性:衣服的轮廓、纹理、边缘比单纯的手写数字复杂得多,能够更好地暴露出模型在特征提取上的能力差异。
  3. 轻量、免下载折腾:因为图片很小(几万张图也就几十兆),在本地电脑上用 CPU 或普通显卡就能秒级下载并跑完训练,是学习 MLP(多层感知机) 和 CNN(卷积神经网络) 的绝佳演练场。

💻 在代码中如何使用它?

结合你前面学到的 transforms,通常这样把它加载进来:

import torchvision
from torchvision import transforms
 
# 1. 下载并加载训练集
train_dataset = torchvision.datasets.FashionMNIST(
    root='./data',           # 数据保存的本地路径
    train=True,              # True 表示训练集,False 表示测试集
    download=True,           # 如果本地没有会自动联网下载
    transform=transforms.ToTensor() # 顺便把图片转成 [0, 1] 的 Tensor
)
 
print(len(train_dataset))  # 输出 60000
image, label = train_dataset[0]
print(image.shape)         # 输出 torch.Size([1, 28, 28]) - 1通道,28x28
print(label)               # 输出对应的类别编号(如 9 代表短靴)