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

如何将Keras函数式API模型转为Sequential模型?求解最后两层代码

解决方案

首先,你现有代码存在两处小问题需要修正:

  1. 每一行model.add()的括号未闭合,会触发语法错误
  2. 遗漏了原函数式API中的MaxPool1D层,这会导致模型结构与原版本不一致

修正并补全后的完整Sequential模型代码如下:

from tensorflow import keras
from keras.layers import Flatten, MaxPool1D

# 初始化Sequential模型
model = keras.Sequential()

# 添加输入层与卷积层
model.add(keras.layers.Conv1D(300, 19, strides=1, activation='relu', input_shape=dataset['x_train'].shape[1:]))
model.add(keras.layers.Conv1D(300, 19, strides=1, activation='relu'))
# 补上原函数式API里的MaxPool1D层
model.add(MaxPool1D(pool_size=3))

model.add(Flatten())
model.add(keras.layers.Dense(596, activation='relu'))

# 添加原函数式API中的logit层与sigmoid输出层
model.add(keras.layers.Dense(35, activation='linear'))  # logits层,激活函数为linear
model.add(keras.layers.Activation('sigmoid'))  # 输出层,sigmoid激活

关键说明:

  • 原函数式API中的logits = keras.layers.Dense(35, activation='linear')(nn),在Sequential中直接通过Dense(35, activation='linear')添加即可
  • 后续的sigmoid激活层通过Activation('sigmoid')单独添加,和原函数式API的逻辑完全对应
  • 所有层的参数(如strides、pool_size等)需与原模型保持一致,确保结构等价

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 11:50:30