MNIST 是一个经典的手写数字数据集,常用于机器学习入门。预处理是模型训练前的关键步骤,以下为常见处理方法:

1. 数据加载 📁

  • 使用 torchvisionkeras.datasets 加载原始数据
  • 数据格式:torch.Tensornumpy.ndarray
  • 示例代码:
import torchvision.datasets as dsets
mnist = dsets.MNIST(root='./data', train=True, transform=ToTensor())

2. 图像归一化 📈

  • 将像素值从 [0,255] 转换为 [0,1] 范围
  • 添加标准化处理(均值[0.1307],标准差[0.3081])
  • 代码示例:
transform = transforms.Compose([
    transforms.ToTensor(),
    transforms.Normalize((0.1307,), (0.3081,))
])

3. 数据增强 🔄

  • 旋转(transforms.RandomRotation(10)
  • 平移(transforms.RandomAffine(0, translate=(0.2, 0.2))
  • 噪声添加(transforms.RandomNoise(p=0.1)

4. 数据分割 📁

  • 训练集 / 验证集 / 测试集比例:70%/10%/20%
  • 使用 random_split 实现分层抽样

MNIST data集 预处理流程图

扩展阅读 🔍

点击了解 MNIST 数据集的详细结构
查看完整预处理代码示例

数据增强 图像旋转示意图

预处理质量直接影响模型性能,建议结合数据可视化进行效果验证 📊