卷积神经网络(基础篇)
朴素的全连接神经网络在处理图像时会丢失图像的位置信息(因为每个像素都被视为无差别的输入)。卷积神经网络(CNN)可以解决这个问题。
CNN基本结构
基本结构分两部分,第一部分是特征提取器,主要是卷积层和池化层;第二部分是分类器,主要是全连接层,后面跟一个softmax层用来分类。
补充:栅格图像:最常见的图像形式,用像素表示图(如RGB,或灰度)。与之相对的是矢量图像。
单输入通道下的卷积计算:
注意:输入与卷积核相乘的时候是数乘而非矩阵乘,即对应位置的元素相乘。
输入三通道输出一通道下的卷积运算:
注意卷积核的channel数与输入的channel数保持一致
多通道输入多通道输出的情况,采用了多个卷积核,卷积核的数目与输出通道数一致:
多通道输入多通道输出的一个例子:
1 | import torch |
padding, stride, pooling
根据某些对输出大小的需求,如希望输出的宽度与输入的不便,可以给输入加上padding
上图的代码实现:
1 | input = [3, 4, 6, 5, 7, |
除了padding
,还有一个参数stride
,即步长,是用来减小feature的宽度和高度的。
1 | import torch |
下采样pooling
课程来源:《PyTorch深度学习实践》完结合集