必须处理图像,文本,音频或视频数据时,可以使用将数据加载到 NumPy 数组中的标准 Python 包。 然后,可以将该数组转换为torch.*Tensor
。
专门针对视觉,创建了一个名为torchvision
的包,其中包含用于常见数据集(例如 Imagenet,CIFAR10,MNIST 等)的数据加载器,以及用于图像(即torchvision.datasets
和torch.utils.data.DataLoader
)的数据转换器。
以下使用 CIFAR10 数据集。 它具有以下类别:“飞机”,“汽车”,“鸟”,“猫”,“鹿”,“狗”,“青蛙”,“马”,“船”,“卡车”。 CIFAR-10 中的图像尺寸为3x32x32
,即尺寸为32x32
像素的 3 通道彩色图像。
训练图像分类器的步骤:
1.使用torchvision
加载并标准化 CIFAR10 训练和测试数据集
2.定义卷积神经网络
3.定义损失函数
4.训练网络
5.测试网络
过程:
1.加载数据
import torch
import torchvision
import torchvision.transforms as transforms
transform = transforms.Compose(
[transforms.ToTensor(),
transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])
trainset = torchvision.datasets.CIFAR10(root='./data', train=True,#kaggle里面有的数据集,直接加载就可以
download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=4,
shuffle=True, num_workers=2)
#通过影响数据加载速度,从而影响训练速度,代表CPU数量,GPU每次训练完都可以直接从CPU中取到next batch的数据
testset = torchvision.datasets.CIFAR10(root=