pytorch基础(十一)--------池化层、线性层、激活函数层

一、池化层

池化运算:对信号进行‘收集‘并‘总结’, 类似于水池收集水资源
收集:多变少,总结:最大值/平均值

图像下采样

1、nn.MaxPool2d(kernel_size, stride=None, padding=0, dilation=1, return_indices=False, ceil_mode=False)

功能:对二维信号(图像)进行最大值池化
参数:
kernel_size:池化核尺寸
stride:步长
padding:补边
dilation:池化核间隔大小
ceil_mode:尺寸向上取整
return_indices:记录池化像素索引,在进行池化上采样时使用已经记录的像素索引位置进行扩展

2、nn.AvgPool2d(kernel_size, stride=None, padding=0, count_include_pad=True, divisor_override=None, ceil_mode=False)

功能:对二维信号进行平均值池化
参数:
kernel_size:池化核尺寸
stride:步长
padding:补边
ceil_mode:尺寸向上取整
count_include_pad:是否将填充值用于计算
divisor_override:除法因子

图像上采样(反池化)

nn.MaxUnpool2d(kernel_size, stride=None, padding=0)

功能:对图像进行最大值池化上采样
主要参数:
kernel_size:池化核尺寸
stride:步长
padding:补边
注意:它和下采样池化唯一的区别就是需要在forward函数中添加像素索引,forward(self, input, indices, output_size=None)

二、线性层

线性层又称为全连接层,其每个神经元上一层所有神经元相连实现对前一层的线性组合,线性变换。

nn.Linear(in_features, out_features, bias=True)

功能:对一维信号进行线性组合
主要参数:
in_features:输入节点数
out_features:输出节点数
bias:是否需要偏置
计算公式: y = x W T + b i a s y=xW^T+bias y=xWT+bias(x为输入,W为权值,T为转置,bias为偏置)

三、激活函数层

激活函数对特征进行非线性变换,赋予多层神经网络具有深度的意义

1、nn.Sgmoid

计算公式: y = 1 1 + e − x y=\frac{1}{1+e^-x} y=1+ex1
梯度公式: y t = y ∗ ( 1 − y ) y^t=y*(1-y) yt=y(1y)
特性:输出值在(0,1),符合概率;导数范围是[0,0.25],易导致梯度消失;输出为非0均值,破坏数据分布
下图为sigmoid函数的曲线图,蓝色表示输出,红色表示梯度
sigmoid梯度消失:由于梯度在[0,0.25]之间,叠加相乘时会越来越小导致梯度消失
在这里插入图片描述

2、nn.tanh

计算公式: y = s i n x c o s x = e x − e − x e − + e − x = 2 1 + e − 2 x + 1 y=\frac{sinx}{cosx}=\frac{e^x-e^-x}{e^-+e^-x}=\frac{2}{1+e^-2x}+1 y=cosxsinx=e+exexex=1+e2x2+1
梯度公式: y t = 1 − y 2 y^t=1-y^2 yt=1y2
特性:输出值在(-1,1),数据符合0均值;导数范围是(0,1),易导致梯度消失
下面是tanh的曲线图,蓝色表示输出,红色表示梯度,相比于sigmoid函数梯度消失不是很明显,但是对于深度较大的网络结构还是会发生梯度消失
在这里插入图片描述

3、nn.ReLu

计算公式: y = m a x ( 0 , x ) y=max(0,x) y=max(0,x)
在这里插入图片描述
特性:输出值均为正数,负半轴导致神经元致死;导数是1,缓解梯度消失,但是易引发梯度爆炸
下面是relu的曲线图,相比于前面两个,不会发生梯度消失,但是在叠加相乘时会越来越大,会发生梯度爆炸
在这里插入图片描述
对于上面的问题,对relu函数进行改进

改进relu
1、nn.LeakyReLu

参数:negative_slope:负半轴斜率
在负半轴增加一个斜率,使负半轴输出不再是0

2、nn.PReLu

参数:init:可学习斜率

3、nn.RReLu

参数:lower:均匀分布下限;upper:均匀分布上限
对负半轴随机采用一个斜率
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值