如果我们用符号重写相同的代码
Posted: Sun Mar 02, 2025 10:02 am
虽然大多数 Python 代码都是命令式的,但在这个 NumPy 示例中,我们编写了四行代码来最终计算 D 的值。当程序执行 C 等于 V 乘以 A 时,它会按照您指示的方式运行实际计算。相比之下,在符号程序中,定义计算图和编译计算图之间存在明显的分离。
,那么当执行 C 等于 E 乘以 A 时,该行不会发生任何计算。相反,这些操作会生成一个计算或符号图,然后我们可以将该图转换为可以在编译步骤中调用的函数。因此,计算是代码中的最后一步。旧样式有其权衡之处,符号程序效率更高,因为您可以安全地重用值的内存进行就地计算。
TensorFlow 是使用符号程序设计的。命令式程序更灵活,因为 Python 最适合它们,因此您可以使用原生 Python 功能,例如在计算过程中打印出值以及将循环注入计算流程本身。
PyTorch 与 Google Tensor Flow – Almost Human [第二轮]
PyTorch 的第二个关键特性 香港电讯流动电话号码列表 是动态计算图,而不是静态计算图。换句话说,PyTorch 由“运行”定义,因此在运行时,系统会生成图结构。
TensorFlow 是“定义并运行”的,我们在图形结构中定义条件和迭代。这就像在运行之前编写整个程序,因此自由度是有限的。因此,我们定义一次计算图,然后就可以多次执行同一个图。这样做的好处是,我们可以在开始时优化图形。假设在我们的模型中,我们想要使用某种策略将图形分布在多台机器上。
通过重复使用相同的图,可以减少这种计算成本高昂的优化。静态图适用于固定大小的神经网络,如前馈网络或卷积网络,但对于很多用例来说,如果图结构可以根据输入数据而变化,比如使用循环神经网络时,那将非常有用。
,那么当执行 C 等于 E 乘以 A 时,该行不会发生任何计算。相反,这些操作会生成一个计算或符号图,然后我们可以将该图转换为可以在编译步骤中调用的函数。因此,计算是代码中的最后一步。旧样式有其权衡之处,符号程序效率更高,因为您可以安全地重用值的内存进行就地计算。
TensorFlow 是使用符号程序设计的。命令式程序更灵活,因为 Python 最适合它们,因此您可以使用原生 Python 功能,例如在计算过程中打印出值以及将循环注入计算流程本身。
PyTorch 与 Google Tensor Flow – Almost Human [第二轮]
PyTorch 的第二个关键特性 香港电讯流动电话号码列表 是动态计算图,而不是静态计算图。换句话说,PyTorch 由“运行”定义,因此在运行时,系统会生成图结构。
TensorFlow 是“定义并运行”的,我们在图形结构中定义条件和迭代。这就像在运行之前编写整个程序,因此自由度是有限的。因此,我们定义一次计算图,然后就可以多次执行同一个图。这样做的好处是,我们可以在开始时优化图形。假设在我们的模型中,我们想要使用某种策略将图形分布在多台机器上。
通过重复使用相同的图,可以减少这种计算成本高昂的优化。静态图适用于固定大小的神经网络,如前馈网络或卷积网络,但对于很多用例来说,如果图结构可以根据输入数据而变化,比如使用循环神经网络时,那将非常有用。