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

复刻模型时Conv2D输出形状及参数量不符合预期如何解决

问题修复方案

1. 输出形状不匹配原因

你当前代码先通过ZeroPadding2D(padding=((1,0),(1,0)))将原始224×224的输入扩充为225×225,后续Conv2D层默认步长为1、填充设置为same,输出尺寸和输入尺寸一致,因此得到225×225的输出。
要得到112×112的输出,需要:

  • 删除多余的ZeroPadding2D层
  • 给Conv2D层设置步长参数strides=(2,2),特征图尺寸会随步长减半,224×224输入经过步长2的3×3卷积后正好输出112×112。

2. 参数量不匹配原因

你当前得到的448参数量计算逻辑为:3(卷积核高)*3(卷积核宽)*3(输入通道数)*16(输出通道数) +16(偏置项)=448。原模型的卷积层没有启用偏置项,因此需要给Conv2D层设置use_bias=False,此时参数量计算为3*3*3*16=432,和原模型一致。

修正后代码

from keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPool2D, ZeroPadding2D, InputLayer, Input
from tensorflow.keras.models import Model
inputs = Input(shape=(224, 224, 3))
# 移除多余的ZeroPadding2D层,设置步长为2、关闭偏置项
x = Conv2D(16, kernel_size=(3, 3), strides=(2,2), padding="same", use_bias=False)(inputs)
x = Dense(1500, activation="relu")(x)
x = Dense(1000, activation="relu")(x)
prediction = Dense(784, activation='softmax')(x)

model_functional = Model(inputs=inputs, outputs=prediction)

model_functional.summary()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:24:02