能否通过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
相关产品推荐
相关产品推荐

