PyTorch项目笔记(二)CIFAR-10图像分类

本文介绍了基于CIFAR10数据集的图像分类任务,包括数据加载、使用Pytorch构建CNN模型、应用GPU加速训练过程以及在测试集上评估模型性能。通过随机旋转、翻转等图像增强方法处理训练数据,定义简单的卷积神经网络并利用CUDA进行GPU训练,最终达到59%的整体测试准确率。

本文将在CIFAR10的基础上介绍如何处理数据、图像分类以及使用GPU加速模型训练。

1 CIFAR-10数据集介绍

CIFAR-10数据集共有60000张尺寸为3 × 32 × 32的图像,包含以下10个类别:

classes = ('plane', 'car', 'bird', 'cat', 'deer',
           'dog', 'frog', 'horse', 'ship', 'truck')

其中训练集图像50000张,测试集图像10000张。

2 如何加载数据集

我们使用Pytorch提供的视觉工具包torchvision加载CIFAR-10数据集。在加载数据集时,我们可以对训练集和测试集分别进行预处理操作,此处需注意只有训练集需要进行图像增强。此外,使用torchvision包可以快速构建出DataLoader对象。具体代码如下:

#导入所需的包
import torch
import torchvision
import torchvision.transforms as transforms

#训练集图像预处理:
#对测试集进行图像增强可缓解过拟合的情况
train_transform = transforms.Compose([transforms.RandomRotation(degrees=10), #随机旋转
                                      transforms.RandomHorizontalFlip(p=0.5), #随机水平翻转
                                      transforms.ColorJitter(brightness=0.4, contrast=0.4, saturation=0.4, hue=0.1), #改变图像属性
                                      transforms.ToTensor(), #转Tensor
                                      transforms.Normalize( 
                                        mean=[0.5, 0.5, 0.5],
                                        std=[0.5, 0.5, 0.5]) #归一化
                                     ])

# 测试集图像预处理
test_transform = transforms.Compose([transforms.ToTensor(), #转Tensor
                                     transforms.Normalize(
                                        mean=[0.5, 0.5, 0.5],
                                        std=[0.5, 0.5, 0.5]) #归一化
                                    ])

#加载训练集
trainset = torchvision.datasets.CIFAR10(root='./data', train=True,
                                        download=True, transform=train_transform)
#为训练集创建DataLoader对象
trainloader = torch.utils.data.DataLoader(trainset
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值