You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Keras中MaxPooling2D的stride设为None时是否会根据池化核大小动态调整?

Keras MaxPooling2D层strides为None时的输出维度规则

核心原因

Keras中MaxPooling2D层的strides参数设为None时,会直接使用池化核尺寸pool_size作为步长取值,而非默认使用(1,1),这是和你原有认知不符的核心原因。

对应现象验证

你观测到的所有结果都符合该默认规则:

  • 使用(2,2)池化核、strides=None时,步长自动取(2,2),因此输出尺寸和手动设置strides=(2,2)完全一致
  • 调整池化核为(3,3)、strides=None时,步长自动取(3,3),因此输出维度会缩小为原尺寸的1/3左右

池化层输出维度计算公式(默认padding='valid'无填充场景)

输出高度 = floor( (输入高度 - 池化核高度) / 步长高度 + 1 )
输出宽度 = floor( (输入宽度 - 池化核宽度) / 步长宽度 + 1 )

以你使用的112×92输入尺寸为例:

  • (2,2)池化核、步长(2,2):输出尺寸为56×46,长宽各缩小一半
  • (3,3)池化核、步长(3,3):输出尺寸为37×30,约为原尺寸的1/3

如果使用padding='same'(填充到输入输出尺寸一致),步长的默认取值规则不变,仅计算公式会加入填充尺寸的影响。

内容的提问来源于stack exchange,提问作者Shubham Agrawal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 15:24:04