数据流是一种用于并行计算的常用编程模型。在数据流图中,节点表示计算单元,边缘表示计算使用或产生的数据。例如,在 TensorFlow 图中,tf.matmul
操作对应于单个节点,该节点具有两个传入边(要相乘的矩阵)和一个传出边(乘法结果)。
在执行您的程序时,数据流可以为 TensorFlow 提供多项优势:
并行处理。 通过使用明确的边缘来表示操作之间的依赖关系,系统可以轻松识别能够并行执行的操作。
分布式执行。 通过使用明确的边缘来表示操作之间流动的值,TensorFlow 可以将您的程序划分到连接至不同机器的多台设备上(CPU、GPU 和 TPU)。TensorFlow 将在这些设备之间进行必要的通信和协调。
编译。 TensorFlow 的 XLA 编译器可以使用数据流图中的信息生成更快的代码,例如将相邻的操作融合到一起。
可移植性。 数据流图是一种不依赖于语言的模型代码表示法。您可以使用 Python 构建数据流图,将其存储在 SavedModel 中,并使用 C++ 程序进行恢复,从而实现低延迟的推理。