LeNet

LeNet

概述

LeNet是一个比较简单的卷积神经网络,是学习其他神经网络的基础,推荐自己对照网络架构图实现。它使用了两个卷积层与两个下采样,最后连接一个全连接层。

网络架构图

从论文的图中,可以很容易复现这个网络。

注意:@前的数字表示通道数

参数计算:

\[output\_size=\frac{input\_size+2×padding-kernel\_size}{stride}+1 \tag{1} \]

代码

网络架构:

class LeNet(nn.Module):
    def __init__(self):
        super(LeNet, self).__init__()
        self.conv=nn.Sequential(
            nn.Conv2d(1,6,5),
            nn.Sigmoid(),
            nn.MaxPool2d(2,2),
            nn.Conv2d(6,16,5),
            nn.Sigmoid(),
            nn.MaxPool2d(2,2)
        )
        self.fc=nn.Sequential(
            nn.Flatten(),
            nn.Linear(16*5*5,120),
            nn.Linear(120,84),
            nn.Linear(84,10)
        )
    def forward(self,input):
        output = self.conv(input)
        return self.fc(output)

简单测试:

net=LeNet()
x=torch.rand(1,1,32,32)
net(x).shape  #[1,10]
posted @ 2022-04-22 10:19  LibraXiong  阅读(123)  评论(0)    收藏  举报