PyTorch搭建神经网络——CIFAR-10数据集

CIFAR-10介绍

CIFAR-10是一个包含60000张图片的数据集。其中每张照片为32*32的彩色照片,每个像素点包括RGB三个数值
所有照片分属10个不同的类别,分别是airplane、automobile、bird、cat、deer、dog、frog、horse、ship、truck
其中五万张时训练集,一万张时测试集

下载

http://www.cs.toronto.edu/~kriz/cifar.html
在这里插入图片描述

数据集处理

transforms.Compose

可以理解为数据处理格式的定义
Compose的作用就是把对图像处理的方法集中起来,使用的比较多的方法有:

中心化:CenterCrop()

转换成张量:ToTensor()

正则化:Normalize()

等等

注意Compose是会按照顺序进行处理的

##torchvision.datasets

训练集的处理和MNIST差不太多(包括CIFAR-100)

import torchvision.datasets as dset

dset.CIFAR10(root, train = True, transform = None, target_transform = None, download = False)

dset.CIFAR100(root, train = True, transform = None, target_transform = None, download = False)

简单的卷积池化全连接

step1

因为先前弄过MNIST数据集,所以第一次先只改动数据集的处理部分,以及输入通道的问题,其余的先不动,代码如下


import torch
import torch.nn as nn
import torch.utils.data as data
import torchvision.datasets as datasets
import torchvision.transforms as transforms

num_epoch = 10
BATCH_SIZE = 50

transform = transforms.Compose(
    [transforms.ToTensor()
    ]
)

#MNIST数据集加载
train_dataset = datasets.CIFAR10(
    root= '/home/cxm-irene/PyTorch/data/cifar10',
    train= True, 
    transform= transform, 
    download= False
)
train_loader = data.DataLoader(
    dataset= train_dataset, 
    batch_size= BATCH_SIZE, 
    shuffle= True
)
test_dataset = datasets.CIFAR10(
    root= '/home/cxm-irene/PyTorch/data/cifar10', 
    train= False,
    transform= transform,
    download= False
)
test_loader = data.DataLoader(
    dataset= test_dataset, 
    batch_size= BATCH_SIZE, 
    shuffle= True
)

#搭建网络
class Net_CIFAR10(torch.nn.Module):
    def __init__(self):
        super(Net_CIFAR10, self).__init__()
        self.conv1 = nn.Sequential(
            nn.Conv2d(
                in_channels= 3,
                out_channels= 16,
                kernel_size= 5,
                stride= 1,
                padding= 2,
            ),
            nn.ReLU(),
            nn.MaxPool2d(kernel_size= 2),
        )
        self.conv2 = nn.Sequential(
            nn.Conv2d(
                in_channels= 16,
                out_channels= 32,
                kernel_size= 5,
                stride= 1,
                padding=
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值