当前位置: 首页 > article >正文

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

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

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

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

1.1 最大汇聚层

在这里插入图片描述
上面操作的代码如下:

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 平均汇聚层

在这里插入图片描述

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 多个通道

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


http://www.kler.cn/a/392441.html

相关文章:

  • C++编程:利用环形缓冲区优化 TCP 发送流程,避免 Short Write 问题
  • 新版 idea 编写 idea 插件时,启动出现 ClassNotFound
  • Microsoft 365 Exchange如何设置可信发件IP白名单
  • 知识图谱6:neo4j查询语句
  • 代码 RNN原理及手写复现
  • 系统上线后发现bug,如何回退版本?已经产生的新业务数据怎么办?
  • A. Turtle and Good Strings
  • 富格林:可信预判交易安全契机
  • P2356 弹珠游戏
  • HarmonyOS NEXT应用元服务开发Intents Kit(意图框架服务)上架配置指导
  • STM32 4X4 键盘
  • Elasticsearch常用接口_添加数据
  • 会议直击|美格智能受邀出席第三届无锡智能网联汽车生态大会,共筑汽车产业新质生产力
  • 一生一芯 预学习阶段 NEMU代码学习(2)
  • C++总结
  • 【AI大模型】ELMo模型介绍:深度理解语言模型的嵌入艺术
  • Git - 命令杂谈 - reset、revert和clean
  • 容器docker的ulimit
  • 设备接入到NVR管理平台EasyNVR多品牌NVR管理工具/设备的音视频配置参考
  • Redis相关技术内容
  • 一条SQL查询语句的执行流程(MySQL)
  • 微信小程序进行md5加密 ,base64 转码
  • nuxt3添加wowjs动效
  • mysql 实现分库分表之 --- 基于 MyCAT 的分片策略详解
  • windows中docker安装redis和redisinsight记录
  • 什么时候用 Tailwind 什么时候用 CSS