TensorFlow 最初是 Google Brain 团队的一个深度学习研究项目,通过与 Google 的 50 个团队合作,现已成为部署在 Google 生态系统中的开源库,包括 Google Assistant、Google Photos、Gmail、搜索等 。 借助 TensorFlow,Google 能够利用感知和语言理解任务在众多领域应用深度学习。 (注意:这篇关于 TensorFlow 的文章也可以免费下载 PDF。)
这份备忘单是一种快速掌握 TensorFlow 的简单方法。 当有关 TensorFlow 的新闻和更新发布时,我们将定期更新本指南。
执行摘要
什么是 TensorFlow? 谷歌拥有世界上最强大的机器学习基础设施,通过 TensorFlow,谷歌现在有能力分享这一基础设施。 TensorFlow 是一个开源工具库,使软件开发人员能够将深度学习应用到他们的产品中。
为什么 TensorFlow 很重要? 人工智能对于用户与服务和设备交互方式的演变至关重要。 拥有如此强大的库集可以使开发人员将这种强大的深度学习演进纳入他们的产品中。
TensorFlow 影响谁? TensorFlow 将对开发者和用户产生持久的影响。 由于该库是开源的,因此所有开发人员都可以使用它,这意味着他们的产品可以得到显着增强,从而为其产品带来更高水平的智能和准确性。
TensorFlow 何时发布? TensorFlow 最初于 2015 年 11 月 9 日发布,稳定版本于 2017 年 2 月 15 日发布。Google 现在发布了 TensorFlow 2.4,其中包括许多新功能和分析器工具。
我如何开始使用 TensorFlow? 开发人员可以从 TensorFlow GitHub 存储库下载源代码。 用户已经在谷歌生态系统中看到了它的影响。
请参阅:如何通过在 Ubuntu Server 20.04 上安装 TensorFlow 来扩展机器学习能力(TechRepublic)
什么是 TensorFlow?
当您有埃菲尔铁塔的照片时,Google 相册可以识别该图像。 这要归功于深度学习和 TensorFlow 等开发。 在 TensorFlow 出现之前,机器学习研究人员和开发实际产品的研究人员之间存在分歧。 这种划分使得开发人员很难将深度学习纳入他们的软件中。 有了 TensorFlow,这种划分就消失了。
TensorFlow 提供了一组模块(提供 Python 和 C/C++ API),支持构建和执行 TensorFlow 计算,然后将其表示为有状态数据流图。 这些图表使得谷歌照片等应用程序能够非常准确地识别基于流行地标的图像中的位置。
2011年,谷歌开发了一款名为DistBelief的产品,致力于正强化模型。 机器会收到一张猫的照片,并询问它是否是猫的照片。 如果机器猜对了,它就会被告知。 错误的猜测会导致调整,以便更好地识别图像。
TensorFlow 通过对称为节点的数据层进行排序来改进这一概念。 深入研究各层可以提出有关图像的更多、更复杂的问题。 例如,第一层问题可能只要求机器识别圆形。 在更深的层中,机器可能会被要求识别猫眼。 这个流程(从输入,通过数据层,到输出)被称为张量……因此得名 TensorFlow。
什么是 TensorFlow 2.0?
TensorFlow 2.0 包括以下改进:
帮助 API 组件更好地与 tf.keras(在多个后端上运行的神经网络高级接口)集成。
包括 TensorFlow.js 版本 1.0,它允许使用现成的 JavaScript 模型,可以重新训练现有的 JS 模型,并可以直接在 JavaScript 中构建和训练模型。
包括 TensorFlow Federated,这是一个开源框架,用于使用去中心化数据进行机器学习(和其他计算)实验。
包括 TF Privacy,一个用于训练机器学习模型的库,重点关注训练数据的隐私。
具有急切执行功能,这是一种命令式编程环境,可以立即评估操作,而无需在返回具体值之前构建图表。
使用 tf.function,它允许您将 Python 语法的子集转换为可移植的高性能图形,并提高急切执行的性能和可部署性。
新的扩展 Ragged Tensors(相当于嵌套可变长度列表的 TensorFlow)、TensorFlow Probability(基于 TensorFlow 的 Python 库,可以轻松地将概率模型和深度学习结合起来)和 Tensor2Tensor(一个 深度学习模型和数据集)。
一种转换工具,可自动更新 TensorFlow 1.x Python 代码,以便它可以与 TensorFlow 2.0 兼容的 API 一起使用(并标记所述代码无法自动转换的情况)。
为什么 TensorFlow 很重要?
机器学习是未来创新的秘诀。 机器学习,也称为深度学习,被认为是一类算法:
使用多层非线性处理单元进行特征提取和变换; 和
基于对数据的多个级别的特征或表示的学习; 和
学习对应于不同抽象级别的多个表示级别。
得益于机器学习,软件和设备不断变得更加智能。 随着当今消费者的要求越来越高以及大数据的兴起,这种演变已经等同于开发人员及其产品的成功。 由于 TensorFlow 是开源的,这意味着任何人都可以利用 Google 带来的这一令人难以置信的飞跃。 事实上,TensorFlow 是第一个通过 Apache 2.0 许可证提供的深度学习严肃框架。
随着开发人员和公司能够使用 TensorFlow 库,越来越多的应用程序和设备将变得更智能、更快、更可靠。 TensorFlow 将能够以前所未有的速度对大量图像进行分类。
由于 Google 将 TensorFlow 开源,因此这些库可以改进并扩展到其他语言,例如 Java、Lua 和 R。此举将机器学习(迄今为止仅向研究机构提供的东西)带给每个开发人员,以便他们可以教授自己的知识。 识别图像或翻译语音的系统和软件。 那很大。
TensorFlow 影响谁?
TensorFlow 不仅使开发人员能够将深度学习的成果融入到他们的产品中,而且使设备和软件显着更加智能且易于使用。 在我们现代、移动、24/7 互联的世界中,这意味着每个人都会受到影响。 软件设计者、开发者、小型企业、企业和消费者都受到深度学习的最终结果的影响。 谷歌创建了一个可以极大改善深度学习的软件库,这一事实对所有人来说都是一个巨大的胜利。
TensorFlow 何时发布?
TensorFlow 最初于 2015 年 11 月 9 日发布,稳定版本于 2017 年 2 月 15 日发布。您可以在官方 TensorFlow 入门指南中了解有关 TensorFlow 2.0 的更多信息。
库、API 和开发指南现已推出,因此开发人员可以开始将 TensorFlow 纳入他们的产品中。 用户已经在 Google Photos、Gmail、Google 搜索、Google Assistant 等中看到 TensorFlow 的结果。
TensorFlow 2.4 中有哪些新功能?
最新版本的 TensorFlow 中的新功能包括:
tf.distribute 模块现在包括对具有 ParameterServerStrategy 和自定义训练循环的异步训练模型的实验支持。 为了开始使用此策略,请通读此参数服务器培训教程,其中演示了如何设置 ParameterServerStrategy。
MultiWorkerMirroredStrategy 现在是稳定 API 的一部分,并通过同步数据并行实现分布式训练。
Karas 混合精度 API 现在是稳定 API 的一部分,并允许用户使用 16 位和 32 位浮点类型。
tf.keras.optimizers.Optimizer 已被重构,使 model.fit 或自定义训练循环的用户能够编写适用于任何优化器的代码。
引入了 NumPy API 子集 tf.experimental.numpy 的实验性支持,使开发人员能够运行 TensorFlow 加速的 NumPy 代码。
添加了新的分析器工具,以便开发人员可以测量 TensorFlow 模型的训练性能和资源消耗。
TensorFlow 现在可与 CUDA 11 和 cuDNN 8 一起运行,从而支持 NVIDIA Ampere GPU 架构。
TensorFlow 的竞争对手
TensorFlow 在深度学习领域并不孤单; 事实上,还有许多其他公司拥有机器学习框架,包括以下公司。
西阿诺
火炬
咖啡
氖
H2O.ai
我如何开始使用 TensorFlow?
任何开发人员应该做的第一件事就是阅读 TensorFlow 入门指南,其中包括 TensorFlow 核心教程。 如果您是机器学习新手,请务必查看 MNIST ML 初学者指南。