卷积神经网络CNN学习笔记-MaxPool2D函数解析

目录

  • 1.函数签名:
  • 2.学习中的疑问
  • 3.代码

1.函数签名:

torch.nn.MaxPool2d(kernel_size, stride=None, padding=0, dilation=1, return_indices=False, ceil_mode=False)
在这里插入图片描述

2.学习中的疑问

Q:使用MaxPool2D池化时,当卷积核移动到某位置,该卷积核覆盖区域超过了输入尺寸时,MaxPool2D会如何处理?
A:
当使用MaxPool2D池化层时,当卷积核移动到某个位置,如果该卷积核的覆盖区域超过了输入的尺寸,MaxPool2D会进行以下处理:

  1. 部分覆盖: 如果池化窗口(卷积核)的中心点位于输入的边界附近,以至于窗口的一部分超出了输入边界,MaxPool2D将仅考虑在输入内部的部分窗口。这意味着池化窗口的超出部分不会被考虑在内,不会对池化结果产生影响。

  2. Stride的作用: 池化层的stride参数决定了池化窗口在输入上移动的步幅。如果移动的步幅足够小,可以确保池化窗口在输入边界内的任何位置都能够被覆盖到。如果stride过大,可能导致某些位置被漏掉或者部分覆盖。

  3. 填充: 在某些情况下,可以使用池化层的填充参数,通常为"valid"或"same"。"valid"表示没有填充,"same"表示在输入的周围填充以确保输出的尺寸与输入的尺寸相同。填充可以帮助确保所有区域都被合理处理。

总之,MaxPool2D通常会在输入的边界附近部分覆盖或舍弃,而不会扩展到超出输入边界的区域。要确保在处理边界附近的特征时不会出现信息丢失,可以适当设置stride和填充参数,或者使用其他池化方法,如"same"填充或更复杂的边界处理策略。

3.代码

如下代码表明了MaxPool2D确实是只会考虑滤波器扫描到的输入数据里面的内容.

import torch
import torchvisionfrom torch.nn import Module,MaxPool2d
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriterinput = torch.tensor([[1,2,0,3,1],[0,1,2,3,1],[1,2,1,0,0],[5,2,3,1,1],[2,1,0,1,1]],dtype=torch.float32)print("前",input.shape)      # torch.Size([5, 5]),不满足输入的条件,需要进行格式转换input = torch.reshape(input,(-1,1,5,5))print("后",input.shape)    # 后 torch.Size([1, 1, 5, 5]) 一个bach_size,class ConNet(Module):def __init__(self):super(ConNet, self).__init__()# 池化层使用,设置卷积核为3*3,超出的部分保留数据self.maxpool = MaxPool2d(kernel_size=3,ceil_mode=True)def forward(self,input):output = self.maxpool(input)return output# 实例化对象
Work = ConNet()# 神经网络调用
output = Work(input)
print(output)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/145453.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么学完了 C#觉得自己什么都干不了?

为什么学完了 C#觉得自己什么都干不了? 俺一向的观点:(1)学跟干是两码事。学,你要往外掏钱或时间或两个都得掏。干,是你从别人兜里掏钱。(2)如果没有干的需求,那么可以啥…

小白也会的校园网宽带拨号自动重连设置

开始菜单搜索“任务计划程序”:我这个开始菜单和你们的不太一样,用了StartAllBack设置的,总之能找到这个程序就行了 提示:可以按下“Win R”,打开“运行”,输入taskschd.msc来打开任务计划程序 点击“任务…

灰度发布专题---1、灰度发布的意义和方案

线上项目灰度发布的重大意义 支付宝等软件相信大家一定不陌生,支付宝经历了十多年,从未停止更新过,app从最初简单设计到现在的扁平化设计,一直在更新,但奇怪的是它从未停过服务,而且越用越顺畅。不停服务就…

Java程序设计2023-第四次上机练习

8-1三子棋 编写程序,实现简单的三子棋游戏。在三子棋中,双方在33的棋盘中轮流下棋,一方用*示,另一方用O表示。如果一方的3个棋子占据了同一行,同一列或者对角线,则该方获胜。如果棋盘已被棋子占满&#xf…

【Mongo】数据删了磁盘空间但没有减少

Author:skate Time:2023/10/22 一、问题描述 产线用户反馈,一个华为云的mongo实例磁盘空间告警,使用率超过90%(使用状况 1630.9/1800GB),让其通过数据库运维平台找到占用大空间的表,然后清理历史数据&…

Centos磁盘问题小纪

场景说明 放个windows的图片镇楼,在给一个centos的来说明问题,咋了,好好的系统,啥也不能干了 来先上一波命令分析下问题 查看挂载 mount 重新挂载数据 mount -o remount, rw / 查看磁盘 df -h 查看分区挂载详情 rw读写权限 mount …

react封装一个简单的upload组件(待完善)

目录 react封装一个简单的upload组件component / uploadImg / uploadImg.jsx使用效果 react封装一个简单的upload组件 component / uploadImg / uploadImg.jsx import React, { useState } from react; import { LoadingOutlined, PlusOutlined } from ant-design/icons; imp…

【leetcode报错】 leetcode格式问题解决:error: stray ‘\302’ in program [solution.c]

leetcode格式问题解决 一、情景再现二、报错原因三、解决方法四、修正结果 一、情景再现 二、报错原因 该错误是指 源程序中有非法字符,需要将非法字符去掉。 一般是由于coder 1.使用中文输入法 或者 2.从别的地方直接复制粘贴代码 造成的。 代码中出现了 中文空格&…

云HIS系统,Cloud HIS system,云HIS医院信息管理系统源码

通过云HIS平台,可以减少医院投资,无需自建机房和系统,快速实现信息化服务。系统升级及日常维护服务有云平台提供,无需配备专业IT维护人员进行系统维护。 一、his系统和云his系统的区别 His系统和云his系统是两种不同的计算平台,它们在技术架构上存在很大的差异。下…

深入 Meven:构建杰出的软件项目的完美工具

掌握 Meven:构建更强大、更智能的应用程序的秘诀 Maven1.1 初识Maven1.1.1 什么是Maven1.1.2 Maven的作用 02. Maven概述2.1 Maven介绍2.2 Maven模型2.3 Maven仓库2.4 Maven安装2.4.1 下载2.4.2 安装步骤 03. IDEA集成Maven3.1 配置Maven环境3.1.1 当前工程设置3.1.…

STM32F4X之中断二

一、外部中断 外部中断:外部中断的中断是相对于外部中断控制器(EXTI)来说,如下图所示: EXTI掌管着23根中断线,具体分布图下: 16根连接GPIO口,如下图: 所有的0口连接到中…

【Qt控件之QToolBox】介绍及使用

概述 QToolBox类提供了一个列式的带有选项卡的小部件条目。工具箱是一个小部件,以一个列式的选项卡显示在上方,并在当前选项卡下方显示当前的小部件条目。每个选项卡在选项卡列中有一个索引位置。选项卡的小部件条目是一个QWidget。 每个小部件条目都有…