FashionMIIST 数据集是一个用于图像分类任务的经典数据集,它包含了10 个类别的时尚服饰图像。每个样本都是一张 28x28 像素的灰度图像,总共有60000 个训练样本和10000 个测试样本。由于其简单易用的特点,Fashion MNIST数据集已经成为学术界和研究员常用的基准数据集之一,可以用于验证图像分类算法的性能。
1.数据准备
from torchvision import datasets import torch
data_folder = './data/FMNIST'
fmnist = datasets.FashionMNIST(data_folder, download=True, train=True)
tr_images = fmnist.data tr_targets = fmnist.targets
unique_values = tr_targets.unique()print(f'tr_images & tr_targets:\n\tX - {tr_images.shape}\n\tY - {tr_targets.shape}\n\tY - Unique Values : {unique_values}')print(f'TASK:\n\t{len(unique_values)} class Classification')print(f'UNIQUE CLASSES:\n\t{fmnist.classes}')
import matplotlib.pyplot as pltimport numpy as np
R, C = len(tr_targets.unique()), 10
fig, ax = plt.subplots(R, C, figsize=(10, 10))
for label_class, plot_row in enumerate(ax): label_x_rows = np.where(tr_targets == label_class)[0]
for plot_cell in plot_row: plot_cell.grid(False) plot_cell.axis('off')
ix = np.random.choice(label_x_rows)
x, y = tr_images[ix], tr_targets[ix]
plot_cell.imshow(x, cmap='gray')
plt.show()
补充说明(供初学者理解):
Fashion-MNIST 是一个服装分类数据集,包含 10 个类别(如 T 恤、牛仔裤、包等),每张图片是 28×28 的灰度图。
torchvision.datasets.FashionMNIST 会自动下载并返回一个类似
Dataset 的对象,其中的 .data 和 .targets 分别是图像张量和标签张量。
代码最后用 matplotlib 创建了一个 10 行 10 列的子图网格,每行对应一个类别,每行中的 10 个格子分别显示该类别下随机选取的 10 张不同图片,直观展示每个类别的样本。
如果希望运行后看到图片,需要在代码末尾加上 plt.show()。
相关:
PyTorch深度学习实战(5)——计算机视觉基础
PyTorch深度学习实战(4)--常用激活函数和损失函数详解
PyTorch深度学习实战(3)——使用PyTorch构建神经网络(b)
PyTorch深度学习实战(3)——使用PyTorch构建神经网络(a)
PyTorch深度学习实战(2)-PyTorch基础
示例:反向传播和梯度下降的计算过程
AI基础 | 前向传播
AI基础 | 反向传播