核心要点

  • TF 1.x 默认静态图 + Session;2.x 默认 Eager

  • 知道 Keras 在 2.x 为一等 API

  • 了解 tf.compat.v1 向后兼容

  • 能说明迁移对工程实践的影响

简要回答

TF 1.x 需先建静态计算图再用 Session 喂数据执行;TF 2.x 默认 Eager 即时执行、Keras 为标准 API,调试更直观,仍可用 tf.function 获图优化。

标准回答

一、TensorFlow 1.x

2.x 是范式级差异:

维度 TF 1.x TF 2.x
执行模式 静态图 + Session 默认 Eager
高层 API 需单独装 tf.keras tf.keras 内置
调试 难(需 Session.run) 像 NumPy 可打印
变量 Variable + placeholder tf.Variable 直接运算
部署 Graph 导出 SavedModel + tf.function

二、TF 1.x 典型流程

定义 placeholder → 建图 → Session.run(feed_dict) 传入数据。繁琐且不利于 Python 调试。

三、TF 2.x 改进

tf.GradientTape 自动微分;@tf.function 可选图加速;tf.data 管道成熟;移除大量冗余 API。

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

四、迁移

遗留 1.x 代码可用 tf.compat.v1;Google 官方提供迁移指南。新项目应直接用 2.x。详见 TensorFlow 文档与 深度学习基础

回答思路

  • 【定义】用一句话说清「TensorFlow 1.x 与 2.x」

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

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

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

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

延伸学习

工具:TensorFlowPyTorch。知识库:深度学习基础

常见误区

⚠️ 常见踩坑

误区一:容易答偏的地方:面试 TF 2.x 仍大谈 Session/Placeholder;不知道 Keras 已内置;声称 1.x 和 2.x「完全一样」。

追问

追问 1TF 2.x 还需要 Session 吗?

日常不需要。Eager 下直接调用张量运算;部署 SavedModel 时服务端内部可能图执行,但开发者 API 层面已无 Session 概念。compat.v1.Session 仅兼容旧代码。

追问 2Eager 和 Graph 性能差多少?

裸 Eager 有 Python 调度开销;训练热点用 @tf.function 追踪为图,配合 XLA 可接近 1.x 图模式性能。2.x 兼顾易用与性能。

追问 3Placeholder 在 2.x 中用什么替代?

直接用函数参数或 tf.Variable 输入;tf.function 追踪时参数即输入占位。Dataset 迭代器是推荐的数据输入方式。

🔗 相似问题

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

没找到想看的面试题?把你想看的告诉我们 →

延伸学习

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