核心要点
最大区别是执行模式:1.x 先建静态图再 Session.run,2.x 默认 Eager 即写即算、可直接 print 调试
1.x 用 placeholder+feed_dict 喂数据,2.x 直接传张量、用 tf.GradientTape 做自动微分
Keras 在 2.x 升为内置一等高层 API,配合 tf.data 管道大幅简化建模流程
@tf.function 让你按需把 Eager 代码编译成图换取性能,旧 1.x 代码用 tf.compat.v1 兼容运行
简要回答
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 调试
标准回答
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。
迁移:遗留 1.x 代码可用 tf.compat.v1;Google 官方提供迁移指南。新项目应直接用 2.x。详见 TensorFlow 文档与 深度学习基础。
常见误区
⚠️ 常见踩坑
面试 TF 2.x 仍大谈 Session/Placeholder;不知道 Keras 已内置;声称 1.x 和 2.x「完全一样」。
追问
追问 1:TF 2.x 还需要 Session 吗?
题库专题:TensorFlow 中的 Session 是什么?起什么作用?日常不需要。Eager 下直接调用张量运算;部署 SavedModel 时服务端内部可能图执行,但开发者 API 层面已无 Session 概念。compat.v1.Session 仅兼容旧代码。
题库延伸:与本追问相关的专题题 → TensorFlow 中的 Session 是什么?起什么作用?
追问 2:Eager 和 Graph 性能差多少?
Eager 逐op派发,有 Python 解释开销,小算子密集或控制流复杂时较慢;用 @tf.function 编成图后可做算子融合、常量折叠等优化,吞吐通常明显提升,差距在小模型上可能数倍。但对大矩阵乘为主的网络,瓶颈在 GPU 计算本身,两者差距会缩小,所以一般「开发用 Eager、训练/部署套 tf.function」。
追问 3:Placeholder 在 2.x 中用什么替代?
题库专题:TensorFlow 中的 Placeholder 是什么?如何使用?直接用函数参数:把输入张量作为 Python 函数/模型 forward 的入参传进去即可,不再需要占位节点。若用 @tf.function 想固定输入签名,可用 input_signature 里的 tf.TensorSpec(shape 用 None 表示可变 batch)来声明,作用类似旧的 placeholder 形状约定。
题库延伸:与本追问相关的专题题 → TensorFlow 中的 Placeholder 是什么?如何使用?
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。
📖 术语表
📰 AI 资讯
🛠️ AI 工具
- Pytorch
Meta 开源的深度学习框架,100K+ stars。以动态计算图和 Pythonic 风格著称,在学术界和工业界都有广泛应用,支持分布式训练、移动端部署和 ONNX 导出
- Tensorflow
全球最流行的机器学习框架之一,195K+ stars。Google 开源的端到端 ML 平台,支持 TensorFlow、Keras 等多种 API,覆盖深度学习、强化学习、移动端部署等全场景,是 AI 工程师的必备工具
- Keras
深度学习框架,64,020+ stars。高级神经网络 API,支持 TensorFlow、JAX、PyTorch 多后端。以用户友好著称,让深度学习从实验到生产的转化变得简单高效