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

能否通过Keras Sequential模型的summary还原模型代码?

还原后的Keras Sequential模型代码

根据你提供的模型summary,以下是完全匹配的模型代码:

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout

model = Sequential([
    # 第一层Conv2D:匹配输出尺寸(28,28,32)和参数320
    Conv2D(filters=32, kernel_size=(3,3), padding='same', activation='relu', input_shape=(28,28,1)),
    MaxPooling2D(pool_size=(2,2)),
    # 第二层Conv2D:匹配输出尺寸(14,14,64)和参数18496
    Conv2D(filters=64, kernel_size=(3,3), padding='same', activation='relu'),
    MaxPooling2D(pool_size=(2,2)),
    Flatten(),
    Dense(128, activation='relu'),
    Dropout(0.5),  # 常见配置,summary不显示dropout率,若原模型配置不同可自行调整
    Dense(10, activation='softmax')
])

# 执行此代码可验证summary是否与原模型一致
model.summary()

关键Conv2D层参数验证

Conv2D的参数计算公式为:(kernel_height * kernel_width * input_channels + 1) * filters(+1对应偏置项,默认use_bias=True):

  • 第一层Conv2D:(3*3*1 +1)*32 = 10*32 = 320,完全匹配summary参数数;padding='same'保证输入输出尺寸一致(28x28)
  • 第二层Conv2D:(3*3*32 +1)*64 = 289*64 = 18496,和summary参数数一致;padding='same'保证输出尺寸14x14与输入一致

其他层说明

  • MaxPooling2D使用pool_size=(2,2),默认步长等于池化窗口大小,因此尺寸从28→14、14→7,与summary输出完全匹配
  • Dense层参数计算规则为输入神经元数*输出神经元数 + 输出神经元数(含偏置),完全匹配summary中的401536和1290

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 22:24:58