门户网站,wordpress 编辑图片无法显示,什么语言做网站好,wordpress简约主题下载#x1f468;#x1f393;作者简介#xff1a;一位即将上大四#xff0c;正专攻机器学习的保研er #x1f30c;上期文章#xff1a;机器学习深度学习——卷积的多输入多输出通道 #x1f4da;订阅专栏#xff1a;机器学习深度学习 希望文章对你们… 作者简介一位即将上大四正专攻机器学习的保研er 上期文章机器学习深度学习——卷积的多输入多输出通道 订阅专栏机器学习深度学习 希望文章对你们有所帮助 这其实也是torch.nn模块的知识在之前的内容中有提到过这边就是简单总结和回顾一下了大家可以看看之前的内容 机器学习深度学习——torch.nn模块 池化层 池化层最大池化层和平均池化层填充、步幅和多个通道总结 池化层
处理图像时要逐渐降低隐藏表示的空间分辨率、聚集信息这样随着神经网络中层叠的上升每个神经元对其敏感的感受野输入就越大。 而最终的机器学习任务通常会和全局图像的问题有关如”判断图像中的是否是一只猫“最后一层的神经元应该对整个输入的全局敏感。 此外当检测底层的特征时比如判断猫的边缘我们希望这些特征具有平移不变性。 池化层就具有两个重要的作用降低卷积层对位置的敏感性同时降低对空间降采样表示的敏感性。
最大池化层和平均池化层
下面给出一个输入 用窗口大小2×2的最大池化层进行池化操作最后得到 以垂直边缘检测为例 如上图所示可以看出2×2的最大池化层可以容忍1个像素的移位卷积层仍然可以识别到模式。 下面实现pool2d函数实现池化层的前向传播同时构建输入张量X并验证二维最大池化层、平均池化层的输出
import torch
from torch import nn
from d2l import torch as d2ldef pool2d(X, pool_size, modemax):p_h, p_w pool_sizeY torch.zeros((X.shape[0] - p_h 1, X.shape[1] - p_w 1))for i in range(Y.shape[0]):for j in range(Y.shape[1]):if mode max:Y[i, j] X[i: i p_h, j: j p_w].max()elif mode avg:Y[i, j] X[i: i p_h, j: j p_w].mean()return YX torch.tensor([[0.0, 1.0, 2.0], [3.0, 4.0, 5.0], [6.0, 7.0, 8.0]])
print(pool2d(X, (2, 2)))
print(pool2d(X, (2, 2), avg))填充、步幅和多个通道
1、池化层与卷积层类似都有填充和步幅 2、没有可学习的参数 3、在每个输入通道应用池化层以获得相应的输出通道 4、输出通道数输入通道数
总结
1、对于给定输入元素最大池化层会输出该窗口内的最大值平均池化层会输出该窗口内的平均值。 2、主要优点之一是减轻卷积层对位置的过度敏感。 3、我们可以指定池化层的填充和步幅。 4、使用最大池化层以及大于1的步幅可减少空间维度如高度和宽度。 5、池化层的输出通道数与输入通道数相同。