MNIST 是一个经典的手写数字数据集,常用于机器学习入门。预处理是模型训练前的关键步骤,以下为常见处理方法:
1. 数据加载 📁
- 使用
torchvision
或keras.datasets
加载原始数据 - 数据格式:
torch.Tensor
或numpy.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 数据集的详细结构
查看完整预处理代码示例
数据增强 图像旋转示意图
预处理质量直接影响模型性能,建议结合数据可视化进行效果验证 📊