核心要点

  • Sequential 与 Functional API 两种建模范式

  • compile + fit 标准训练流

  • 了解子类化 Model 自定义

  • 能写最小 MNIST 示例

简要回答

TensorFlow 常用 tf.keras.Sequential 或 Functional API 堆叠层定义模型,model.compile 配置优化器与损失,model.fit 训练;复杂模型可子类化 tf.keras.Model。

标准回答

一、先给出结论和背景

  • 核心回答:在 TensorFlow 中构建 神经网络 主要有三种方式:
  • Sequential API:(线性堆叠)
    示例代码可以这样理解:
    model = tf.keras.Sequential([
    tf.keras.layers.Flatten(input_shape=(28, 28)),
    tf.keras.layers.Dense(128, activation='relu'),
    tf.keras.layers.Dense(10),

    ])

二、拆开关键步骤和判断点

  • Functional API:(多输入/分支)
    示例代码可以这样理解:
    inputs = tf.keras.Input(shape=(28, 28))
    x = tf.keras.layers.Flatten()(inputs)
    outputs = tf.keras.layers.Dense(10)(x)
    model = tf.keras.Model(inputs, outputs)
  • 子类化 Model:(完全自定义 call

三、补上落地边界和取舍

  • 训练:示例代码可以这样理解:
    model.compile(optimizer='adam', loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True), metrics=['accuracy'])
    model.fit(x_train, y_train, epochs=5, validation_split=0.1)
    数据用 tf.data.Dataset 可扩展大规模管道。部署 model.save('saved_model')。详见 深度学习基础

面试里不要只停在公式或名词,可以补 在 TensorFlow 中构建神经网络 对训练稳定性、泛化、收敛速度或显存/算力的影响。再说明一个常见调参或排错场景,面试官会更容易判断你真的用过这些方法。

回答思路

  • 【定义】用一句话说清「如何在 TensorFlow 中构建神经网络」

  • 【原理】讲清关键机制或步骤(2~3 点)

  • 【例子】举一个真实项目、论文或产品中的例子

  • 【对比】与易混淆概念或替代方案比较(如有)

  • 【收尾】总结适用场景 + 一个局限或风险

延伸学习

常见误区

⚠️ 常见踩坑

误区一:容易答偏的地方:Dense 输出已 softmax 又用 from_logits=True;不 compile 就 fit;输入 shape 与数据不匹配。

追问

追问 1from_logits=True 什么意思?

Dense 层不跟 Softmax,输出 raw logits;损失函数内部做数值稳定的 softmax+crossentropy,避免二次 softmax 精度问题。

追问 2Functional 和 Sequential 如何选?

单路径线性 → Sequential 最简;多输入、残差、共享层 → Functional;动态控制流 → 子类化。

追问 3如何用回调 EarlyStopping?

model.fit(..., callbacks=[tf.keras.callbacks.EarlyStopping(patience=3, restore_best_weights=True)]) 监控 val_loss 防过拟合

🔗 相似问题

同一考点的不同问法,换着练更稳

延伸学习

按主题分类的相关资源,便于系统复习