MindSpore图片分类之LeNet网络池化和全连接

本文介绍了卷积神经网络(CNN)中池化层的作用,旨在缓解卷积层对位置的过度敏感性。讨论了二维最大池化和平均池化,并以LeNet网络为例,详细解析了各层的计算,包括C1、S2、C3、S4、C5、F6和输出层,涉及参数数量、全连接个数及Softmax函数在多分类中的应用。
摘要由CSDN通过智能技术生成

1. 摘要

在上一篇分享中,主要介绍了卷积操作,我们可以通过构造卷积核作用到图像中,对比输入和输出数组就可以精确的找到像素变化的位置。这便是图像物体边缘检测功能。设任意的二维数组X的i行j列的元素为X[i,j]。如果我们构造的卷积核输出Y[i,j]=1,那么说明输入中X[i,j]和X[i,j+1]数值不一样。这可能意味着物体的边缘通过这两个元素之间。

在实际图像中,我们要检测的物体不会出现在固定的位置,即使我们连续拍摄同一个物体也会出现偏移。这会导致同一个边缘对应的输出可能出现在卷积输出Y中的不同位置,从而对后面的模式识别造成困难。本片分享我们介绍池化(pooling)层,它的主要作用便是为了缓解卷积层对位置上的过度敏感性。

2. 二维最大池化层和平均池化层

和卷积计算类似,池化层每一次对输入数组的一个固定形窗口中的元素计算输出。该窗口也称池化窗口。与卷积层的运算法则不同,池化层的法则是直接计算池化窗口元素中的最大值或者平均值。所以也分别叫做最大池化和平均池化。在二维最大池化层中,池化窗口从输入数组的左上角开始,按照从左到右,从上到下的顺序,在输入数组中滑动。当池化窗口滑动到某一个位置时,窗口中的输入子数组的最大值就是输出数组中相应位置的元素。

如下图1中所示,池化的窗口形状是2×2的最大池化,默认步幅都为1。阴影部分为第一个输出元素和计算所使用的输入元素。输出数组的高和宽分别为2,其中的4个元素由取最大值运算max得出:

max(0,1,3,4)=4,

max(1,2,4,5)=5,

max(3,4,6,7)=7,

max(4,5,7,8)=8.<

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是基于MindSpore搭建LeNet5网络模型的代码: ```python import mindspore.nn as nn from mindspore.common.initializer import Normal class LeNet5(nn.Cell): def __init__(self, num_class=10, num_channel=1): super(LeNet5, self).__init__() self.conv1 = nn.Conv2d(num_channel, 6, kernel_size=5, stride=1, padding=0, has_bias=True, pad_mode='valid') self.conv2 = nn.Conv2d(6, 16, kernel_size=5, stride=1, padding=0, has_bias=True, pad_mode='valid') self.fc1 = nn.Dense(16*5*5, 120, weight_init=Normal(0.02)) self.fc2 = nn.Dense(120, 84, weight_init=Normal(0.02)) self.fc3 = nn.Dense(84, num_class, weight_init=Normal(0.02)) self.relu = nn.ReLU() self.max_pool2d = nn.MaxPool2d(kernel_size=2, stride=2) def construct(self, x): x = self.max_pool2d(self.relu(self.conv1(x))) x = self.max_pool2d(self.relu(self.conv2(x))) x = x.view(x.size(0), -1) x = self.relu(self.fc1(x)) x = self.relu(self.fc2(x)) x = self.fc3(x) return x ``` 在该代码中,我们实现了一个LeNet5的网络模型。其包含两个卷积层和三个全连接层。在构建网络时,我们使用了MindSpore提供的一些常用组件,如卷积层`nn.Conv2d`、全连接层`nn.Dense`、ReLU激活函数`nn.ReLU`以及最大池化层`nn.MaxPool2d`。 其中,`__init__`函数用于初始化网络模型,`construct`函数用于实现前向传播过程。在前向传播过程中,我们首先进行两次卷积操作,并且使用ReLU激活函数和最大池化层对特征进行处理。然后将特征展平,并通过三个全连接层进行分类。 希望对你有所帮助!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值