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

TensorFlow中Sequential与Model([input],[output])的差异探究

Sequential与函数式Model模型结果不一致

逐层构建模型时,Sequential与Model([input],[output])形式的函数式模型看似能得到相同结果,但实际处理相同输入(输入形状(None, 15, 2),输出形状(None, 1, 2))时,二者结果存在明显差异。

模型代码对比

Sequential模型

model = tf.keras.Sequential(
    [
        tf.keras.layers.Conv1D(filters = 4, kernel_size =7, activation = "relu"),
        tf.keras.layers.Conv1D(filters = 6, kernel_size = 11, activation = "relu"),
        tf.keras.layers.LSTM(100, return_sequences=True,activation='relu'),
        tf.keras.layers.Dropout(0.2),
        tf.keras.layers.LSTM(100,activation='relu'),
        tf.keras.layers.Dense(2,activation='relu'),
        tf.keras.layers.Reshape((1,2))
    ]
)

函数式Model模型

input_layer = tf.keras.layers.Input(shape=(LOOK_BACK, 2)) 
conv = tf.keras.layers.Conv1D(filters=4, kernel_size=7, activation='relu')(input_layer)
conv = tf.keras.layers.Conv1D(filters=6, kernel_size=11, activation='relu')(conv)
lstm = tf.keras.layers.LSTM(100, return_sequences=True, activation='relu')(conv)
dropout = tf.keras.layers.Dropout(0.2)(lstm)
lstm = tf.keras.layers.LSTM(100, activation='relu')(dropout)
dense = tf.keras.layers.Dense(2, activation='relu')(lstm)
output_layer = tf.keras.layers.Reshape((1,2))(dense)
model = tf.keras.models.Model([input_layer], [output_layer])

模型结果对比

Sequential模型结果

Sequential模型预测结果图

  • mse: 21.679258038588586
  • rmse: 4.65609901511862
  • mae: 3.963341420395535

函数式Model模型结果

函数式Model预测结果图

  • mse: 36.85855652774293
  • rmse: 6.071124815694612
  • mae: 4.4878270279889065

内容的提问来源于stack exchange,提问作者肉蛋充肌

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 14:06:15