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

使用步长为1的MaxPooling时出现维度下降问题咨询

问题解答

你对池化层规则的认知遗漏了padding参数的影响,步长为1时池化层不降低维度的前提是开启了same填充模式。

1D池化输出长度计算规则

TensorFlow中池化层的输出维度由输入长度、池化核大小、步长、填充模式四个参数共同决定:

  • 当填充模式为默认的valid(不做边缘填充)时,输出长度计算方式为:
    output_len = (input_len - pool_size) // strides + 1
    代入你的参数验证:输入长度为16,池化核大小为4,步长为1,计算结果为(16-4)//1 +1 = 13,和你模型summary输出的维度完全一致,属于正常运行结果。
  • 当填充模式设为same(自动在边缘补0)时,框架会自动计算需要填充的0的数量,保证步长为1时输出长度和输入长度完全相等。你可以把池化层代码修改为如下形式验证:
my_model.add(tf.keras.layers.MaxPooling1D(pool_size=(4), strides=(1), padding='same'))

修改后该层的输出形状会变为(None, 16, 1),不会出现维度降低的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:57:03