在深度学习框架中,计算图(Computation Graph)是描述模型计算流程的核心概念。它是一个有向无环图(DAG),其中节点代表操作(如加法、乘法、卷积),边代表数据(张量)的流动。根据计算图构建和执行方式的不同,主要分为静态图和动态图两种范式。PyTorch 以其动态图机制著称,而 TensorFlow 早期版本(1.x)以静态图为主要特点,但在 TensorFlow 2.x 中也引入了动态图(Eager Execution)作为默认模式,并通过 tf.function
提供静态图的优化能力。
静态图 (Static Graphs / Define-then-Run)
静态图的核心思想是“先定义,后运行”(Define-then-Run)。开发者首先需要完整地定义整个模型的计算图结构,包括所有的操作、变量和它们之间的依赖关系。一旦图定义完成,它就被“编译”或固化下来。然后,这个固定的图可以被多次执行,通常是通过一个会话(Session)对象,向图中输入数据并获取输出结果。
代表框架(历史):TensorFlow 1.x
工作流程:
-
定义图 (Graph Definition Phase):
- 创建占位符(
tf.placeholder
)来表示未来会传入的数据。 - 创建变量(
tf.Variable
)来表示模型的可训练参数(权重、偏置)。</
- 创建占位符(