训练分类器

数据可以是图像,文本,音频或视频数据,可以将数据加载到Numpy数组中,利用Python包,处理好后再转换为张量。

  • 对于图像,Pillow,OpenCV 等包很有用
  • 对于音频,请使用 SciPy 和 librosa 等包
  • 对于文本,基于 Python 或 Cython 的原始加载,或者 NLTK 和 SpaCy 很有用

torchvision的包中包含很多常用的数据集,(例如 Imagenet,CIFAR10,MNIST 等)的数据加载器,以及用于图像(即torchvision.datasetstorch.utils.data.DataLoader)的数据转换器。

这次利用CIFAR10 数据集,类别:“飞机”,“汽车”,“鸟”,“猫”,“鹿”,“狗”,“青蛙”,“马”,“船”,“卡车”,图像尺寸为3x32x3232x32像素的 3 通道彩色图像。

训练图像分类器

我们将按顺序执行以下步骤:

  1. 使用torchvision加载并标准化 CIFAR10 训练和测试数据集
  2. 定义卷积神经网络
  3. 定义损失函数
  4. 根据训练数据训练网络
  5. 在测试数据上测试网络

1.加载并标准化 CIFAR10

使用torchvision,加载 CIFAR10

1
2
3
import torch
import torchvision
import torchvision.transforms as transforms

TorchVision 数据集的输出是[0, 1]范围的PILImage图像。 我们将它们转换为归一化范围[-1, 1]的张量。

2.定义卷积神经网络

3.定义损失函数和优化器

4.训练网络

5.根据测试数据测试网络

在 GPU 上进行训练