目录
1 概述
2 卷积(Convolution)
2.1 单通道的卷积
2.2 三通道的卷积
2.2.1 1 Output Channel
2.2.2 M Output Channels
3 卷积层常见参数
3.1 padding
3.2 stride
3.3 Subsampling——MaxPooling Layer
1 概述
之前我们学习的网络全是由线性层串行连接起来的,这种网络被称为全连接网络,全连接网络在数值计算的时候,会丧失掉图片特征中的一些空间的信息。而卷积神经网络可以很好的保留图像的空间特征。如图所示,是卷积神经网络的基本工作方式:
首先经过特征提取层,进行特征提取,经过特征提取之后,图片信息变成了一个向量;而后将向量接入一个全连接网络进行分类处理。
2 卷积(Convolution)
2.1 单通道的卷积
如图所示,选择 1 x 5 x 5 的单通道图像,3 x 3 的卷积核,进行卷积运算:
步骤:先在Input图像中,画出一个卷积核大小的(3x3)的窗口,而后将该窗口与卷积核做数乘+求和(对应元素相乘);然后将该窗口向左、向下做遍历,每一次都进行数乘求和运算,最终由这些数乘求和数值组成的矩阵,就是卷积后的结果。
2.2 三通道的卷积
2.2.1 1 Output Channel
如图所示,是三通道的卷积基本原理:每个通道搭配一个卷积核,而后每个通道根据上面讲的单通道的计算方式计算,得到一个矩阵,一共可以得到三个矩阵,将这三个矩阵求和,最终得到的结果就是三通道卷积的结果。
注:卷积核的数量一定和图像的通道数是一致的
如下图所示,是将图像的三通道和三个卷积核以立体的形式显示:
2.2.2 M Output Channels
如果想要输出的通道数不止一个,可以增加m个同种类型的卷积核的个数,依次进行卷积运算,将得到的m个单层通道的卷积结果罗列起来,就得到了m个通道的输出,更加形象的过程如图所示:
注:
- 每一个卷积核的通道数与输入通道数是一致的;
- 卷积核的总数和输出通道数是一致的
3 卷积层常见参数
3.1 padding
当想要改变输出的大小是,有时候需要padding,如下图所示,输出原大小为一个 3 x 3 的矩阵,如果想要将其一个 5 x 5 的矩阵时,padding操作就是在输入图像周围进行填充,一般情况下填充数值为0。
3.2 stride
stride就是卷积核窗口在遍历图像时,每走一步的步长。如下图所示,是stride=2时的卷积步骤:
3.3 Subsampling——MaxPooling Layer
如下图所示,是一个2x2的MaxPooling的工作原理,他的stride默认为2,将图像分成很多个2x2大小方格,取2x2小方格中的最大值,组成一个2x2的新的输出。
代码设置:
maxpooling_layer=torch.nn.MaxPool2d(Kernel_size=2)