核心要点
计算图是有向无环图,节点是运算
TF 1.x 先建图后执行
TF 2.x Eager + tf.function 可选图
理解数据流与依赖
简要回答
TensorFlow 计算图将运算表示为有向无环图中的节点,边表示张量依赖;1.x 需先建图再用 Session 执行,2.x 默认即时执行但可用 tf.function 编译为图。
标准回答
将数学运算表示为 DAG(有向无环图):
- 节点(Node):运算(matmul、relu、add)
- 边(Edge):张量数据流
二、TF 1.x 范式
- 定义阶段:组装整张图(placeholder、Variable、op)
- 执行阶段:Session.run 按拓扑序计算
优势:全局优化、多设备放置;劣势:调试难。
三、TF 2.x
回答思路
【定义】用一句话说清「TensorFlow 中的计算图」
【原理】讲清关键机制或步骤(2~3 点)
【例子】举一个真实项目、论文或产品中的例子
【对比】与易混淆概念或替代方案比较(如有)
【收尾】总结适用场景 + 一个局限或风险
延伸学习
工具:TensorFlow。术语:反向传播、梯度。知识库:反向传播原理、深度学习基础。
常见误区
⚠️ 常见踩坑
误区一:容易答偏的地方:只说 1.x 静态图不提 2.x Eager;认为 PyTorch 没有计算图;混淆建图与训练本身。
追问
追问 1:tf.function 如何追踪图?
首次用 concrete 输入调用时记录 op 序列,生成 ConcreteFunction;后续同签名输入复用图。不同 shape 可能 retrace 多图。
追问 2:计算图如何做自动微分?
反向遍历图,每个 op 注册 gradient 函数,链式累积。TF 1 用 symbolic gradients;2.x GradientTape 在 Eager/图混合模式记录。
追问 3:control dependency 是什么?
tf.control_dependencies 强制 op 执行顺序,用于有状态 op(如 assign)顺序保证,1.x 图编程常见。
🔗 相似问题
同一考点的不同问法,换着练更稳
延伸学习
按主题分类的相关资源,便于系统复习
