pytorch学习之nn模块

nn模块

卷积层

1d/2d/3d/convolution

卷积运算:卷积核在输入信号(图像)上滑动,相应位置上进行乘加

卷积核:又称为滤波器,过滤器,可认为是某种模式,某种特征

卷积过程类似于用一个模板去图像上寻找与它相似的区域,与卷积核模型越相近,激活值越高,从而实现特征提取

卷积维度:一般情况下,卷积核在几个维度上滑动,就是几维卷积

nn.Conv2d

功能:对多个二维信号进行二维卷积

主要参数:

  • in_chanels:输入通道数
  • out_channels:输出通道数,等价于卷积核个数
  • kernel_size:卷积核尺寸
  • stride:步长
  • padding:填充个数,通常是保持输入输出的特征分辨率保持不变
  • dilation:空洞卷积大小,常用于图像分割任务,提高感受野
  • groups:分组卷积设置
  • bias:偏置

卷积过程中权值一般一个4维的形状,但是最后为什么做的是2维卷积?

一般查看权值的形状的时候,通常都是shape(c1, c2, c3, c4)

  • c1输出的维度,有多少卷积核输出就是多少
  • c2 输入的维度
  • c3、c4卷积核的大小

输入的图像通常是RGB形式,因为会创建3个卷积核,分别在不同的维度上面进行卷积,然后卷积的值相加,最后加上偏置,得到特征图

转置卷积

用于对图像进行上采样

假设图像尺寸为4*4,卷积核为3*3paddin=0stride=1

  • 正常卷积
    首先将图片拉成一个16*1的向量,这个1代表的是一张图片,然后3*3的卷积自动补零变成16,因为输入是4*4,所以卷积核是4*16,相乘得一个4*1,再reshape变成2*2

  • 转置卷积
    和上面一样,先拉成一个16*1的向量,卷积核因为输出是一个4*4,但是输入是一个2*2特征图,因为卷积核的大小是16*4,最后输出的就是一个16*1,然后在reshape变成4*4

pytorch也自带转置卷积的函数

nn.ConvTranspose2d功能:转置卷积实现上采样

主要参数:

  • in_channel:输入通道数
  • out_channel:输出通道数
  • kernel_size:卷积核尺寸
  • stride:步长
  • padding:填充个数
  • dilation:空洞卷积大小
  • groups:分组卷积设置
  • bias:偏置

但是转置卷积会出现棋盘效应,是因为不均匀卷积导致的,且转置卷积是不可逆的

池化层

池化运算:对信号进行“收集”并“总结”,类似水池收集水资源,因而得名池化层

“收集”:多变少 “总结”:最大值/平均值

nn.MaxPool2d

功能:对二维信息(图像)进行最大值池化

主要参数:

  • kernel_size:池化核尺寸
  • stride:步长
  • padding:填充个数
  • dilation:池化核间隔大小
  • ceil_mode:尺寸向上取整
  • return_indices:记录池化像素索引

nn.AvgPool2d

功能:对二维信息(图像)进行平均值池化

主要参数:

  • kernel_size:池化核尺寸
  • stride:步长
  • padding:填充个数
  • ceil_mode:尺寸向上取整
  • count_include_pad:填充值用于计算
  • divisor_override:除法因子

nn.MaxUnpool2d

功能:对二维信号(图像)进行最大值池化上采样

主要参数:

  • kernel_size:池化核尺寸
  • stride:步长
  • padding:填充个数

线性层

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

nn.Linear

功能:对一维信号(向量)进行线性组合

主要参数:

  • in_features:输入结点数
  • out_features:输出结点数
  • bias:是否需要偏置

激活函数层

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

nn.Sigmoid

特性:

  • 输出值在(0,1),符合概率分布
  • 导数范围是[0, 0.25],易导致梯度消失
  • 输出为非0均值,破坏数据分布

nn.tanh

特性:

  • 输出值在(-1,1),数据符合0均值
  • 导数范围(0,1),易导致梯度消失

nn.ReLU

特性:

  • 输出值均为正数,负半轴导致神经元坏死
  • 导数是1,缓解梯度消失,但容易引发梯度爆炸
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值