谷歌大脑团队在 2011 年启动了一个项目,目的是探索超大规模深度神经网络的服务,并应用于谷歌产品的研究和部署以提高谷歌的服务性能。
在早期,Google 构建了 DistBelief,这是第一代可扩展的分布式训练和推理系统。它可以利用具有数千台机器的计算集群来训练大型模型。
谷歌在这方面进行了许多项目,包括无监督学习、语言表示、图像和对象检测模型、人脸和语音识别、强化学习等。
随后,基于对 DistBelief 的实验以及对权宜之计的系统属性以及训练和使用神经网络的需求的全面了解,Google 构建了 TensorFlow。
Tensorflow 是第二代系统,用于提高大规模机器学习模型的性能。在最顶级的机器学习系统中,TensorFlow 是由谷歌开发的开源库软件,用于执行机器学习和深度学习实践。
什么是 TensorFlow?
TensorFlow 是一个用于机器学习的开源平台,它拥有一个包罗万象、灵活的工具和技术生态系统、图书馆和社区资源。
它勾勒出一组中众多设备上的数据流图节点,以及多个计算设备上的一个设备内的数据流图节点,涵盖 CPU、GPU 和张量处理单元 (TPU)。
它允许开发人员试验现代训练和优化算法,因为它拥有一系列完全专注于深度学习模型训练和接口的应用程序。
它的开发是为了使计算堆栈更明显、更快速,适用于广泛的机器学习和深度学习应用程序。它是一个开放的端到端符号数学库,用于管理不同的编程。
在构建满足收集训练模型所需数据的过程的神经网络时,经常使用它。它是直接或通过包装库制作深度学习模型的基础库,以简化在 TensorFlow 上设计的过程。
它具有高可扩展性,可以促进不同类型的高级数值计算,而这些高级数值计算是为大规模机器学习应用程序训练深度学习模型所需的。它以方便的语言“ Python ”执行任务,并以“ C++ ”执行它们。
TensorFlow 的主要特点
- 使用包含多空间阵列的数学表达式精确地发挥作用。
- 对机器和大型数据集进行复杂计算的高度校准。
- 借助深度神经网络和机器学习理论。
- 它使用数据流图执行计算;
TensorFlow 的主要构成
- TensorFlow:之所以称为 TensorFlow,是因为它将输入视为多维数组,也称为张量。所有的计算都涉及张量。张量是描述所有类型数据的 n 维向量或矩阵。
- 图形:构建了一种流程图或一组各种操作的计算,这些操作在输入时执行。输入从一端进入,经过各种操作并作为输出从另一端退出。所有的操作都发生在一个图中,每个操作被称为“操作节点”并相互链接。
TensorFlow 生态系统
它结合了多种工具和库来帮助和更有效地工作;
-
TensorBoard:是一组用于检查、可视化和了解 TensorFlow 图形和执行的 Web 应用程序。它可用于查看 TensorFlow 图并放大图子部分的详细信息。它的使用包括绘制训练运行期间的损失和准确度、可视化张量随时间变化的直方图、描述图像等额外数据、比较训练运行和运行时统计数据、总内存使用量、张量形状等。
-
Datalab:Jupyter notebooks 方便探索数据、解释 TensorFlow 模型和强制训练运行。Google Cloud Datalab 提供了一个基于 Jupyter 的工作区,其中包含所有工具,例如用于数据集的 BigQuery、用于数据处理的 Apache Beam,以及 NumPy、Pandas、Scikit-learn、Matplotlib 等其他工具。
-
Facets:是最近发布的用于数据可视化的开源工具,可帮助识别 ML 数据集并获得每个属性的形状和特征的想法,并观察模式和相互之间的交互。
TensorFlow 的优势
作为 Google 开发的应用程序,TensorFlow 具有多种优势,其中一些将在下面讨论;
TensorFlow 为 ML 提供的最大好处是“抽象”,而不是纠结于实现算法的细节。它确定有意义的方法,将一个函数的输出附加到另一个函数的输入,使开发人员可以专注于应用程序的完整逻辑。
TensorFlow 为调试 TensorFlow 应用程序的开发人员提供了额外的便利。它具有“ Eager Execution ”模式,可以独立且清晰地检查和修改每个图形操作,而不是将整个图形构建为单个对象并立即对其进行评估。同样,“ TensorBoard ”可视化有助于检查和安排基于 Web 的交互式仪表板中的图形执行。
TensorFlow 在 Google 的支持下获得了许多优势。谷歌一直在支持该项目的开发步伐,并围绕 TensorFlow 做出了许多重要贡献,使其易于部署和使用。这些是一个“在线中心”,用于共享使用该框架开发的模型以及该框架在浏览器和移动设备中的整合。
TensorFlow 的同类深度学习框架
TensorFlow 与许多机器学习框架竞争,例如PyTorch、CNTK、MXNet,这些都是深度学习领域的主要框架。接下来将为您比较它们与 TensorFlow 差异:
-
PyTorch 具有使用 Python 开发的优势,与 TensorFlow 有许多相似之处;它允许根据业务的要求进行设计,以及许多有益的元素。显然,对于需要在更短时间内运行的项目的快速开发,TensorFlow 更受欢迎,而 TensorFlow 更适合大型项目和更复杂的任务。
-
CNTK是 Microsoft 认知工具包,可以更快地运行许多神经网络任务,并包含大量 API(C、C++、Java、Python)。但CNTK的学习和部署不如 TensorFlow 方便。相反,TensorFlow 使用图形格式来解释数据流和建模深度学习神经网络的目标。
-
Apache MXNet被亚马逊认可为 AWS 上的主要深度学习框架,可以计算大量 GPU 和机器,并加强广泛的语言 API,如 Python、R、Scala、C++、Pearl、Go、JavaScript、Julia。但是,其原始 API 不适用于 TensorFlow。
TensorFlow:应用程序
-
它应用在了各种 Google 产品和应用程序中,包括 Gmail、Google翻译、Google地图、Google搜索、照片、语音、Android、YouTube 和 Play等。
-
世界各地的领先企业都在使用它,其中包括 Airbnb、Ebay、Dropbox、Snapchat、Twitter、IBM、Uber,当然还有 Google。
总结
在本教程中,您发现了用于深度学习和机器学习的 TensorFlow 开源库。您了解 TensorFlow 是用于快速数值计算的库,专门针对为机器学习应用程序开发的大型深度学习模型的演化和验证所需的各种类型的操作而开发。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:TensorFlow 是什么?有什么作用? - Python技术站