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

如何调整Keras ZeroPadding2D参数使输出形状为[1,1,104,24]

解决ZeroPadding2D填充后形状不符的问题

问题原因

输入张量的维度遵循TensorFlow默认格式 (batch, H, W, channels),其中第三维度(W维度)初始长度为1。你使用的padding=(0,51)表示:

  • H维度上下各填充0个0
  • W维度左右各填充51个0
    最终W维度长度为 1 + 51*2 = 103,这就是输出形状为[1,1,103,24]的原因。

解决方案

要让W维度最终变为104,需要的总填充量是 104 - 1 = 103。由于103是奇数,无法对称分配到左右两侧,因此使用非对称填充的参数格式:指定W维度左侧填充51个0,右侧填充52个0,总填充量为51+52=103,加上原长度1正好得到104。

修正后的代码如下:

import tensorflow as tf
import numpy as np  # 修正原代码中的dumpy拼写错误

input_shape = (1, 1, 1, 24)
x = np.arange(np.prod(input_shape)).reshape(input_shape)  # (1, 1, 1, 24)
y = tf.keras.layers.ZeroPadding2D(padding=((0, 0), (51, 52)))(x)
print(y.shape)  # 输出 TensorShape([1, 1, 104, 24])

补充说明

ZeroPadding2D的padding参数支持三种写法:

  • 整数n:所有维度的两侧都填充n个0
  • 二元组(n,m):H维度两侧填充n个0,W维度两侧填充m个0
  • 嵌套二元组((top, bottom), (left, right)):分别指定H维度上下、W维度左右的填充数,适用于非对称填充场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 03:25:15