📜  TensorFlow 的架构

📅  最后修改于: 2022-05-13 01:54:55.212000             🧑  作者: Mango

TensorFlow 的架构

先决条件: TensorFlow简介

TensorFlow 是一个由谷歌开发的端到端开源机器学习平台,拥有许多热心的开源贡献者。 TensorFlow 具有可扩展性和灵活性,可以在数据中心和手机上运行。它可以在分布式设置中在单机和多机上运行。在本文中,我们将探讨 TensorFlow 这种极端灵活性和可扩展性背后的秘密。

编程模型和基本概念:

TensorFlow 中的每个计算都描述了一个由节点和边组成的有向图,其中节点是操作/函数,边是输入和输出溢出以及这些函数。

  • TensorFlow 中的输入/输出称为张量。张量只不过是一个多维数组,其基础元素类型在图构建时指定。
  • 使用 TensorFlow 的客户端程序使用认可的编程语言(C 或Python)生成数据流图。
  • 操作是具有名称并表示抽象计算的函数。操作可以具有应该在构建图时生成和处理的属性。
  • 属性的一种常见应用是制造操作多态。
  • 内核是在特定设备上执行操作。
  • 客户端程序通过创建会话与 TensorFlow 系统流入进行交互。会话接口具有扩展样式以生成计算图及其强化 run() 方法,该方法通过提供所需的输入来计算起诉图中单个节点的输出。
  • 在大多数机器学习任务中,计算图实现了多次,并且大多数普通张量在未附加完成后无法生存,这就是 TensorFlow 具有变量的原因。
  • 变量是一种特殊类型的操作,它返回一个变量张量的句柄,该变量可以在图形的多次处理中存活。
  • 可训练参数(如权重、偏差)被重新存储在变量中的张量中。

高级架构

TensorFlow 的架构

  • TensorFlow 的第一层由设备层和网络层组成。设备层包含与运行 TensorFlow 的操作系统中的各种设备(如 GPU、CPU、TPU)进行通信的实现。而网络层实现了在可分发可训练设置中使用不同的网络协议与不同的机器进行通信。
  • TensorFlow 的第二层包含主要用于机器学习的应用程序的内核实现。
  • TensorFlow 的第三层由分布式主执行器和数据流执行器组成。 Distributed Master 能够将工作负载分配到系统上的不同设备。而数据流执行器以最佳方式执行数据流图。
  • 下一层以 C 语言实现的 API 的形式公开所有功能。选择 C 语言是因为它速度快、可靠并且可以在任何操作系统上运行。
  • 第五层提供对Python和 C++ 客户端的支持。
  • TensorFlow 的最后一层包含用Python和 C++ 实现的训练和推理库。