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

Keras中Conv2D层输出结果异常问题咨询

问题解答:Conv2D输出维度误解导致的困惑

你遇到的问题本质是对Conv2D输出张量的维度顺序理解有误,并非权重设置或卷积计算出现异常。

核心问题:输出维度的解读

Keras中Conv2D层的输出形状为(batch_size, output_height, output_width, filters),最后一个维度才是滤波器的索引,而非你误以为的第三个维度。

你给出的输出张量:

array([[[[17., 17.],
         [16., 16.]],

        [[16., 16.],
         [16., 16.]]]], dtype=float32)

正确的解读方式是:

  • 每个最内层的[a, b]代表同一空间位置上两个滤波器的输出结果
  • 第一个滤波器的完整输出是:
    [[17., 16.],
     [16., 16.]]
    
  • 第二个滤波器的完整输出是:
    [[17., 16.],
     [16., 16.]]
    

两者完全一致,符合你的预期。

验证方式

你可以通过索引提取单个滤波器的输出来确认:

output = standardConv(test_array)
# 提取第一个滤波器的输出
filter1_output = output[0, :, :, 0].numpy()
# 提取第二个滤波器的输出
filter2_output = output[0, :, :, 1].numpy()

print("第一个滤波器输出:")
print(filter1_output)
print("\n第二个滤波器输出:")
print(filter2_output)

运行后会看到两个滤波器的输出完全相同,都是你预期的结果。

补充说明

你设置的权重是正确的:np.ones([3,3,1,2])对应3×3的卷积核,1个输入通道,2个输出滤波器,且所有权重为1;偏置np.zeros([2])确保没有额外偏移。卷积计算过程完全符合预期,只是输出维度的解读偏差导致了你误以为结果不一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 15:01:04