PyTorch(叁)卷积神经网络之LeNet(1)
程序员文章站
2022-07-06 17:30:42
...
一、卷积层和池化层的作用
卷积层的作用是从输入的图片中提取特征,如边缘、点和块。池化层的作用是为了缓解卷积层对位置的过度敏感性。
二、LeNet(1)的模型介绍
LeNet模型一共有7层(不包括输入层),具体的介绍如下:
Input层:输入1x32x32的图片;
C1:C1是一个卷积层,使用6个大小为5x5的卷积核进行卷积计算,然后使用sigmoid**函数,输出特征图大小为6x28x28;
S2:S2是一个池化层,使用卷积核为2x2的卷积核进行最大池化操作,输出的特征图大小为6x14x14;
C3:C3是一个卷积层,使用16个大小为5x5的卷积核进行卷积计算,然后使用sigmoid**函数,输出特征图大小为16x10x10;
S4:S4是一个池化层,使用卷积核为2x2的最大池化操作,输出特征图大小为16x5x5;
C5:C5是一个卷积层,使用卷积核为5x5,全连接生成120个feature map。
F6:F6是一个全连接层,就是一个普通是神经网络了,先进行线性计算,再进行**函数操作。
三、LeNet(1)模型的pytorch实现
class LeNet(nn.Module):
def __init__(self):
super(LeNet,self).__init__()
self.conv=nn.Sequential(
nn.Conv2d(1,6,5),#in_channels,out_channels,kernel_size
nn.Sigmoid(),
nn.MaxPool2d(2,2),#kernel_size,stride
nn.Conv2d(6,16,5),
nn.Sigmoid(),
nn.MaxPool2d(2,2)
)
self.fc=nn.Sequential(
nn.Linear(16*4*4,120),
nn.Sigmoid(),
nn.Linear(120,84),
nn.Sigmoid(),
nn.Linear(84,10)
)
def forward(self,img):
feature=self.conv(img)
output=self.fc(feature.view(img.shape[0],-1))
return output
四、查看网络每个层的结构
#查看每个层的形状
net=LeNet()
print(net)
推荐阅读
-
深度之眼Pytorch打卡(十五):Pytorch卷积神经网络部件——转置卷积操作与转置卷积层(对转置卷积操作全网最细致分析,转置卷积的stride与padding,转置与反卷积名称论证)
-
[pytorch、学习] - 5.5 卷积神经网络(LeNet)
-
Pytorch【60天修炼计划】之第二阶段——进阶:卷积神经网络之AlexNet
-
PyTorch(叁)卷积神经网络之LeNet(1)
-
卷积神经网络 -- PyTorch 实现系列之 LeNet(datasets: CIFAR-10)
-
卷积神经网络之LeNet
-
Task05-pyTorch(卷积神经网络基础、LeNet、卷积神经网络进阶)
-
图像分类的卷积神经网络LeNet,VGG,GoogLeNet,ResNet通俗解读及其pytorch实现
-
Python深度学习pytorch卷积神经网络LeNet
-
DL-Pytorch Task05:卷积神经网络基础;leNet;卷积神经网络进阶