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

tf.keras.models.Sequential()与tf.keras.Sequential()的区别及适用场景

tf.keras.Sequential() 和 tf.keras.models.Sequential() 的区别与适用场景

这两个写法完全等价,没有任何功能上的差异,本质是同一个类的不同访问路径。

TensorFlow在设计Keras接口时,为了简化开发流程,把常用的组件(比如模型类、层类)同时在tf.keras根模块下设置了快捷别名。tf.keras.Sequential就是tf.keras.models.Sequential的直接别名,调用其中任何一个,都会创建出完全一样的Sequential模型,运行逻辑、训练效果没有区别——这也是你测试两种写法都能得到相同结果的原因。

适用场景

  • 追求代码简洁高效:直接用tf.keras.Sequential(),代码更短,编写速度更快,适合快速原型开发或个人项目;
  • 强调代码规范性与可读性:用tf.keras.models.Sequential(),能明确体现类的模块归属,让团队协作时其他开发者一眼就能清楚这个模型类来自models子模块,适合大型项目或有统一代码规范的场景。

你的测试代码

第一种写法:

model = tf.keras.models.Sequential([
    tf.keras.layers.Flatten(input_shape=(28, 28)),
    tf.keras.layers.Dense(128, activation='relu'),
    tf.keras.layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(x_train, y_train, epochs=50)
model.evaluate(x_test, y_test)

第二种写法:

model = tf.keras.Sequential([
    tf.keras.layers.Flatten(input_shape=(28, 28)),
    tf.keras.layers.Dense(128, activation='relu'),
    tf.keras.layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(x_train, y_train, epochs=50)
model.evaluate(x_test, y_test)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 05:32:22