定义:
- 卷积运算:卷积核在输入信号(图像)上滑动,相应位置上进行乘加;
- 卷积核:又称为滤波器,过滤器,可认为是某种模式,某种特征;
- 卷积维度:一般情况下,卷积核在几个维度上滑动,就是几维卷积
功能:
卷积过程类似于用一个模板去图像上寻找与他相似的区域,与卷积核模式越相似,激活值越高,从而实现特征提取;
nn.Conv2d 功能:对多个二维信号进行二维卷积
主要参数(包含默认值):
in_channels:输入通道数
out_channels:输出通道数,等价于卷积核个数
kernel_size:卷积核尺寸
stride=1:步长
padding=0:填充个数
dilation=1:空调卷积大小
groups=1:分组卷积设置
bias=True:偏置
padding_mode='zeros': 填充模式
参数:
注意: 对于计算不能得到整数的输出结果,采用np.floor 向下取整处理.
简化版:
O u t p u t = I n p u t − f + 2 p S t e p + 1 Output = \frac{Input-f+2p}{Step}+1 Output=StepInput−f+2p+1
完整版:
O u t p u t = I n p u t + 2 p − d × ( f − 1 ) − 1 S t e p + 1 Output = \frac{Input+2p-d \times(f-1)-1 }{Step}+1 Output=StepInput+2p−d×(f−1)−1+1
转置卷积又称反卷积和部分跨越卷积,用于对图像进行上采样.
池化运算:对信号进行“收集”并“总结”,类似水池收集水资源,因而得名池化层
“收集”:多变少 “总结”:最大值/平均值
线性层又称全连接层,其每个神经元与上一层所有神经元相连实现对前一层的线性组合,线性变换.
nn.Linear(in_features, out_features, bias=True)
功能:对一维信号(向量)进行线性组合
主要参数:
in_features:输入结点数
out_features:输出结点数
bias:是否需要偏置
激活函数对特征进行非线性变换,赋予多层神经网络具有深度的意义.
没有激活函数的多个线性层连接,相当于单个线性层.
H1 = X * W1
H2 = H1 * W2
Output = H2 * W3
= H1 * W2 * W3
= X * (W1 * W2 * W3)
= X * W
特性:
输出值在(0,1),符合概率
导数范围是[0, 0.25],易导致梯度消失
输出非零均值,破坏数据分布
特性:
输出值在(-1,1),数据符合0均值
导数范围是(0,1),易导致梯度消失
特性:
输出值均为正数,负半轴导致死神经元
导数是1,缓解梯度消失,但易引发梯度爆炸
torch.nn.Dropout(p=0.5, inplace=False)
功能: 随机性失活
参数:
p:被舍弃的概率,失活概率,默认0.5
nn.BatchNorm1d(feature_in)
nn.BatchNorm2d(feature_in)
nn.BatchNorm3d(feature_in)
参数:
feature_in: 特征数量,2维一般特指特征深度的数量