CIFAR10识别

本文介绍了使用深度学习对CIFAR10数据集进行图像识别的过程,包括数据下载、数据增强、模型构建、训练、验证集划分、模型评估以及在线预测的实现。在测试集上达到了62.93%的准确率,并详细展示了各分类的预测准确率。
摘要由CSDN通过智能技术生成

1. 数据集简介

CIFAR10数据集共有6W张彩色图像,图像大小是32*32*3的,共计10个类,每类6K张图片。

其中训练集5W张,构成了5个训练批,每一批1W张,但一个训练批中的各类图像并不一定数量相同,总的来看训练集,每一类都有5K张;测试集1W张单独构成一批,其来自10个分类,每类随机取1K张。

2. 数据加载

2.1 数据集下载

只下载一次, 批量迭代读取

def load_data(batch_size):
    # 1. 构建数据转换器,进行数据增强
    transform = get_transform()

    # 2. 下载数据集
    train_set = datasets.CIFAR10(root='../data/', train=True, download=True, transform=transform)
    test_set = datasets.CIFAR10(root='../data/', train=False, download=True, transform=transform)

    # 3. 生成数据迭代器
    if torch.cuda.is_available():
        # 使用GPU时,需要设置num_workers、pin_memory
        train_loader = DataLoader(train_set, batch_size=batch_size, shuffle=True, num_workers=8, pin_memory=True)
        test_loader = DataLoader(test_set, batch_size=batch_size, shuffle=True, num_workers=8, pin_memory=True)
    else:  # 使用cpu
        train_loader = DataLoader(train_set, batch_size=batch_size, shuffle=True, pin_memory=True)
        test_loader = DataLoader(test_set, batch_size=batch_size, shuffle=True, pin_memory=True)
    return train_loader, test_loader

2.2 数据增强

定义数据转换器

def get_transform():
    transform1 = transforms.Compose([
        transforms.ToTensor(),
        transforms.Normalize((0.5, 0.5, 0.5),
                             (0.5, 0.5, 0.5))  # 归一化[-1,1]
    ])

    transform2 = transforms.Compose([
        transforms.ToTensor(),
        transforms.Normalize((0.5,), (0.5,)),
        transforms.RandomHorizontalFlip(0.3),
        transforms.RandomVerticalFlip(0.3),
        transforms.RandomRotation(10),
        transforms.ColorJitter(0.25, 0.25, 0.25, 0.25)
    ])
    return transform1

2.3 分割验证集

数据加载,从训练集中分割出验证集(占比30%), 根据索引进行采样


                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值