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

6-5 汇聚层

1.最大汇聚层和平均汇聚层

import torch
from torch import nn
from d2l import torch as d2l
def pool2d(X, pool_size, mode='max'):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 Y
# 验证二维最大汇聚层输出
X = torch.tensor([[0.0, 1.0, 2.0], [3.0, 4.0, 5.0], [6.0, 7.0, 8.0]])
pool2d(X, (2, 2))
tensor([[4., 5.],[7., 8.]])
# 验证平均汇聚层
pool2d(X, (2, 2), 'avg')
tensor([[2., 3.],[5., 6.]])

2.填充和步幅

X = torch.arange(16, dtype=torch.float32).reshape((1, 1, 4, 4))
X
tensor([[[[ 0.,  1.,  2.,  3.],[ 4.,  5.,  6.,  7.],[ 8.,  9., 10., 11.],[12., 13., 14., 15.]]]])
# 默认情况下,深度学习框架中的步幅与汇聚窗口的大小相同。
# 那么默认情况下,我们得到的步幅形状为(3, 3)。
pool2d = nn.MaxPool2d(3)
pool2d(X)
tensor([[[[10.]]]])
# 手动设定填充和步幅
pool2d = nn.MaxPool2d(3, padding=1, stride=2)
pool2d(X)
tensor([[[[ 5.,  7.],[13., 15.]]]])
# 设定一个任意大小的矩形汇聚窗口,并分别设定填充和步幅的高度和宽度
pool2d = nn.MaxPool2d((2, 3), stride=(2, 3), padding=(0, 1))
pool2d(X)
tensor([[[[ 5.,  7.],[13., 15.]]]])

3.多个通道

代码片段 含义
X + 1 X每个元素都加 1,形状不变。
(X, X + 1) 一个包含两个张量的元组,二者形状完全相同。
torch.cat(..., 1) 沿着第 1 维(即 channel 维)拼接。
# 在通道维度上连结张量X和X + 1,以构建具有2个通道的输入
X = torch.cat((X, X+1), 1)
X
tensor([[[[ 0.,  1.,  2.,  3.],[ 4.,  5.,  6.,  7.],[ 8.,  9., 10., 11.],[12., 13., 14., 15.]],[[ 1.,  2.,  3.,  4.],[ 5.,  6.,  7.,  8.],[ 9., 10., 11., 12.],[13., 14., 15., 16.]]]])
pool2d = nn.MaxPool2d(3, padding=1, stride=2)
pool2d(X)
tensor([[[[ 5.,  7.],[13., 15.]],[[ 6.,  8.],[14., 16.]]]])

http://www.zskr.cn/news/9280.html

相关文章:

  • 6-4 多输入多输出通道
  • 6-2图像卷积
  • 基于WOA鲸鱼优化的XGBoost序列预测算法matlab仿真
  • Arch下实现人脸识别登录:howdy的配置与使用
  • Winform的Formborder.None情况下,解决不能拖动的问题
  • 实用指南:centos sshd:xxx.xxx.xxx.xxx:allow 如何设置
  • fedora无法看视频?编解码器详细安装教程
  • 高并发高吞吐量
  • 服务降级
  • 镜像制作
  • IAR Embedded Workbench中的MCU启动过程分析
  • CSP-S 2025
  • ENVI系列教程(七)——自定义 RPC 资料图像正射校正
  • Linux 笔记本充电限制【转发】
  • 别样的CSP-S初赛大战(又名:我和油一的那些年)
  • 范德蒙德卷积入门
  • 用 【C# + WinUI3 + 图像动画】 来理解:高数 - 函数 - 初等函数 - 行人-
  • ansible语句
  • 代码随想录算法训练营第四天 |24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II
  • 完整教程:【前端面试题✨】Vue篇(一)
  • 算法随笔(一) - 实践
  • 学python的第7天
  • Revit二次开发环境配置
  • CF1016G Appropriate Team
  • 深入解析:STM32-FreeRTOS操作系统-任务管理
  • 202508_浙江省网络安全测试职业职工技能竞赛_misc-1
  • 广二联考题解补全计划:
  • 如何在 C# 中将文本转换为 Word 以及将 Word 转换为文本 - 教程
  • Chapter 8 Contour / Shape Detection
  • 【左程云算法笔记016】双端队列-双链表和固定数组实现 - 教程