手写的数字识别
知名度最高的数据集:MNIST
1.训练数据:50000
2.测试数据:50000
3.图像大小:28✖28
4.10类
总结
1.LeNet是早期成功的神经网络
2.先使用卷积层来学习图片空间信息
3.使用全连接层来转换到类别空间
代码实现
LeNet由两部分组成:卷积编码器和全连接层密集块
import torch
from torch import nn
from d2l import torch as d2l
class Reshape(torch.nn.Module):
def forward(self,x):
return x.view(-1,1,28,28) # 原图:28✖28,填充后是32✖32
net = nn.Sequential(
nn.Conv2d(1, 6, kernel_size=5, padding=2), nn.Sigmoid(), # 6个通道
nn.AvgPool2d(kernel_size=2, stride=2),
nn.Conv2d(6, 16, kernel_size=5), nn.Sigmoid(),
nn.AvgPool2d(kernel_size=2, stride=2),
nn.Flatten(),
nn.Linear(16 * 5 * 5, 120), nn.Sigmoid(),
nn.Linear(120, 84), nn.Sigmoid(),
nn.Linear(84, 10))
我们将一个大小为28✖28的单通道(黑白)图像通过LeNet。
X = torch.rand(size=(1