核心要点
Sequential 与 Functional API 两种建模范式
compile + fit 标准训练流
了解子类化 Model 自定义
能写最小 MNIST 示例
简要回答
TensorFlow 常用 tf.keras.Sequential 或 Functional API 堆叠层定义模型,model.compile 配置优化器与损失,model.fit 训练;复杂模型可子类化 tf.keras.Model。
标准回答
在 TensorFlow 中构建 神经网络 主要有三种方式:
1. 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),
])2. 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)3. 子类化 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 中构建神经网络」
【原理】讲清关键机制或步骤(2~3 点)
【例子】举一个真实项目、论文或产品中的例子
【对比】与易混淆概念或替代方案比较(如有)
【收尾】总结适用场景 + 一个局限或风险
延伸学习
工具:TensorFlow。知识库:深度学习基础、深度学习训练技巧。
常见误区
⚠️ 常见踩坑
Dense 输出已 softmax 又用 from_logits=True;不 compile 就 fit;输入 shape 与数据不匹配。
追问
追问 1:from_logits=True 什么意思?
Dense 层不跟 Softmax,输出 raw logits;损失函数内部做数值稳定的 softmax+crossentropy,避免二次 softmax 精度问题。
追问 2:Functional 和 Sequential 如何选?
单路径线性 → Sequential 最简;多输入、残差、共享层 → Functional;动态控制流 → 子类化。
追问 3:如何用回调 EarlyStopping?
model.fit(..., callbacks=[tf.keras.callbacks.EarlyStopping(patience=3, restore_best_weights=True)]) 监控 val_loss 防过拟合。
落地时需结合业务场景说明取舍、边界条件与可观测指标,避免只背概念。
🔗 相似问题
同一考点的不同问法,换着练更稳
没找到想看的面试题?把你想看的告诉我们 →
延伸学习
按主题分类的相关资源,便于系统复习
