CIFAR10模型
是torchvision
中官方给出的一个数据集,可以通过
dataset = torchvision.datasets.CIFAR10('./data', train=False, download=True, transform=torchvision.transforms.ToTensor())
来下载到指定文件夹
搭建CIFAR10模型
首先我们先去搜一下CIFAR10 model structure
可以看到,模型的训练步骤为
- 输入为
3通道 32*32像素
,通过5*5
的卷积核进行卷积操作,得到32通道32*32像素
- 进行
2*2
卷积核的最大池化操作变为32通道16*16像素
- 进行
5*5
卷积核的卷积操作变为32通道16*16像素
- 进行
2*2
卷积核的最大池化操作变为32通道8*8像素
- 进行
5*5
卷积核的卷积操作变为64通道8*8像素
- 进行
2*2
卷积核的最大池化操作变为64通道4*4像素
- 进行
Flatten
全链接操作展开为1024长度
- 通过线性激活变为
64长度
- 通过线性激活变为
10长度
然后我们就可以进行搭建了
首层卷积层
输入为3通道 32*32像素
,通过5*5
的卷积核进行卷积操作,得到32通道32*32像素
因为输入输出都是32*32像素
,所以我们就需要根据官方给出的公式来计算一下padding
为多少
其中padding
为未知变量,dilation
为默认值1,stride
为默认值1,kernel_size
为5
根据输入输出都为32可以求出,padding
为2
所以我们的首层卷积为输入3通道,输出32通道,卷积核为5,padding为2
self.conv1 = nn