从0开始深度学习(26)——汇聚层/池化层

池化层通过减少特征图的尺寸来降低计算量和参数数量,同时增加模型的平移不变性和鲁棒性。汇聚层的主要优点之一是减轻卷积层对位置的过度敏感。

1 最大汇聚层、平均汇聚层

汇聚层和卷积核一样,是在输入图片上进行滑动计算,但是不同于卷积层的互相关运算,汇聚层的运算通常是计算汇聚窗口中所有元素的最大值或平均值。

1.1 最大汇聚层

上面操作的代码如下:

python 复制代码
import torch
from torch import nn

X = torch.tensor([[[0.0, 1.0, 2.0], [3.0, 4.0, 5.0], [6.0, 7.0, 8.0]]])

# 设置一个2*2的最大池化层
max_pooling=nn.MaxPool2d(kernel_size=2,stride=1)

# 执行卷积操作
y = max_pooling(X)

print(y.shape)
print(y)  

运行结果

1.2 平均汇聚层

python 复制代码
import torch
from torch import nn

X = torch.tensor([[[0.0, 1.0, 2.0], [3.0, 4.0, 5.0], [6.0, 7.0, 8.0]]])

# 设置一个2*2的最大池化层
avg_pooling=nn.AvgPool2d(kernel_size=2,stride=1)

# 执行卷积操作
y = avg_pooling(X)

print(y.shape)
print(y)  

运行结果

2 填充和步幅

torch自带的汇聚层函数也可以进行填充和步幅设置。

2.1 平均汇聚层

AvgPool2d 的基本用法

参数说明

  • kernel_size: 池化窗口的大小,可以是一个整数或一个元组 (height, width)。
  • stride: 池化窗口的移动步幅,默认值为 kernel_size。
  • padding: 输入特征图的边缘填充大小,默认值为 0
  • count_include_pad: 是否在计算平均值时包括填充的零,默认值为 True。
  • divisor_override: 用于除法的自定义除数,默认值为 None,表示使用窗口大小作为除数。

2.2 最大池化层

MaxPool2d 的基本用法

参数说明

  • kernel_size: 池化窗口的大小,可以是一个整数或一个元组 (height, width)。
  • stride: 池化窗口的移动步幅,默认值为 kernel_size。
  • padding: 输入特征图的边缘填充大小,默认值为 0。
  • dilation: 池化窗口的膨胀系数,默认值为 1。
  • return_indices: 是否返回最大值的索引,默认值为 False。
  • ceil_mode: 是否使用向上取整的方式计算输出尺寸,默认值为 False。

3 多个通道

在处理多通道输入数据时,汇聚层的输出通道数与输入通道数相同。

相关推荐
roman_日积跬步-终至千里12 分钟前
【计算机视觉-作业1】从图像到向量:kNN数据预处理完整流程
人工智能·计算机视觉
春日见36 分钟前
自动驾驶规划控制决策知识点扫盲
linux·运维·服务器·人工智能·机器学习·自动驾驶
人工智能AI技术44 分钟前
【Agent从入门到实践】43 接口封装:将Agent封装为API服务,供其他系统调用
人工智能·python
hjs_deeplearning1 小时前
文献阅读篇#14:自动驾驶中的基础模型:场景生成与场景分析综述(5)
人工智能·机器学习·自动驾驶
nju_spy1 小时前
离线强化学习(一)BCQ 批量限制 Q-learning
人工智能·强化学习·cvae·离线强化学习·双 q 学习·bcq·外推泛化误差
副露のmagic1 小时前
深度学习基础复健
人工智能·深度学习
番茄大王sc1 小时前
2026年科研AI工具深度测评(一):文献调研与综述生成领域,维普科创助手领跑学术严谨性
人工智能·深度学习·考研·学习方法·论文笔记
代码丰1 小时前
SpringAI+RAG向量库+知识图谱+多模型路由+Docker打造SmartHR智能招聘助手
人工智能·spring·知识图谱
独处东汉2 小时前
freertos开发空气检测仪之输入子系统结构体设计
数据结构·人工智能·stm32·单片机·嵌入式硬件·算法
乐迪信息2 小时前
乐迪信息:AI防爆摄像机在船舶监控的应用
大数据·网络·人工智能·算法·无人机