LeNet(LeNet-5)由两个部分组成:卷积编码器:由两个卷积层组成; 全连接层密集块:由三个全连接层组成。
import torch
from torch import nn
from d2l import torch as d2l
# LeNet由两个部分组成:卷积编码器和全连接层密集块
class Reshape(torch.nn.Module):
def forward(self, X):
return X.view(-1,1,28,28) # 批量数不变,通道数为1 28*28
net = torch.nn.Sequential(Reshape(),
nn.Conv2d(1, 6,kernel_size=5, padding=2), # 输入通道1输出通道6
nn.Sigmoid(),
nn.AvgPool2d(kernel_size=2, stride=2),
nn.Conv2d(6, 16, kernel_size=5),
nn.Sigmoid(),
nn.AvgPool2d(kern