Pytorch深度学习—— 卷积神经网络基础篇(B站刘二大人P10学习笔记)

目录

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 概述

       之前我们学习的网络全是由线性层串行连接起来的,这种网络被称为全连接网络,全连接网络在数值计算的时候,会丧失掉图片特征中的一些空间的信息。而卷积神经网络可以很好的保留图像的空间特征。如图所示,是卷积神经网络的基本工作方式:

Pytorch深度学习—— 卷积神经网络基础篇(B站刘二大人P10学习笔记)_第1张图片

       首先经过特征提取层,进行特征提取,经过特征提取之后,图片信息变成了一个向量;而后将向量接入一个全连接网络进行分类处理。


2  卷积(Convolution)

2.1  单通道的卷积

如图所示,选择 1 x 5 x 5 的单通道图像,3 x 3 的卷积核,进行卷积运算:

Pytorch深度学习—— 卷积神经网络基础篇(B站刘二大人P10学习笔记)_第2张图片

Pytorch深度学习—— 卷积神经网络基础篇(B站刘二大人P10学习笔记)_第3张图片

       步骤:先在Input图像中,画出一个卷积核大小的(3x3)的窗口,而后将该窗口与卷积核做数乘+求和(对应元素相乘);然后将该窗口向左、向下做遍历,每一次都进行数乘求和运算,最终由这些数乘求和数值组成的矩阵,就是卷积后的结果。

2.2  三通道的卷积

2.2.1  1 Output Channel

        如图所示,是三通道的卷积基本原理:每个通道搭配一个卷积核,而后每个通道根据上面讲的单通道的计算方式计算,得到一个矩阵,一共可以得到三个矩阵,将这三个矩阵求和,最终得到的结果就是三通道卷积的结果。

Pytorch深度学习—— 卷积神经网络基础篇(B站刘二大人P10学习笔记)_第4张图片

注:卷积核的数量一定和图像的通道数是一致的

如下图所示,是将图像的三通道和三个卷积核以立体的形式显示:

Pytorch深度学习—— 卷积神经网络基础篇(B站刘二大人P10学习笔记)_第5张图片

Pytorch深度学习—— 卷积神经网络基础篇(B站刘二大人P10学习笔记)_第6张图片

 2.2.2  M Output Channels

        如果想要输出的通道数不止一个,可以增加m个同种类型的卷积核的个数,依次进行卷积运算,将得到的m个单层通道的卷积结果罗列起来,就得到了m个通道的输出,更加形象的过程如图所示:

Pytorch深度学习—— 卷积神经网络基础篇(B站刘二大人P10学习笔记)_第7张图片

 注:

  1. 每一个卷积核的通道数与输入通道数是一致的;
  2. 卷积核的总数和输出通道数是一致的

3  卷积层常见参数

3.1  padding

       当想要改变输出的大小是,有时候需要padding,如下图所示,输出原大小为一个 3 x 3 的矩阵,如果想要将其一个 5 x 5 的矩阵时,padding操作就是在输入图像周围进行填充,一般情况下填充数值为0。

Pytorch深度学习—— 卷积神经网络基础篇(B站刘二大人P10学习笔记)_第8张图片

3.2  stride

       stride就是卷积核窗口在遍历图像时,每走一步的步长。如下图所示,是stride=2时的卷积步骤:

Pytorch深度学习—— 卷积神经网络基础篇(B站刘二大人P10学习笔记)_第9张图片

Pytorch深度学习—— 卷积神经网络基础篇(B站刘二大人P10学习笔记)_第10张图片

3.3  Subsampling——MaxPooling Layer

       如下图所示,是一个2x2的MaxPooling的工作原理,他的stride默认为2,将图像分成很多个2x2大小方格,取2x2小方格中的最大值,组成一个2x2的新的输出。

Pytorch深度学习—— 卷积神经网络基础篇(B站刘二大人P10学习笔记)_第11张图片

 代码设置:

maxpooling_layer=torch.nn.MaxPool2d(Kernel_size=2)

 

你可能感兴趣的:(PyTorch学习笔记,pytorch,深度学习,人工智能)