TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。当前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索。
TensorFlow 是一个开源软件库,用于各种感知和语言理解任务的机器学习。当前被 50 个团队用于研究和生产许多 Google 商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件 DistBelief。
TensorFlow 最初由谷歌大脑团队开发,用于 Google 的研究和生产,于 2015 年 11 月 9 日在 Apache 2.0 开源许可证下发布。
DistBelief
从 2010 年开始,谷歌大脑创建 DistBelief 作为他们的第一代专有的机器学习系统。50 多个团队在 Google 和其他 Alphabet 公司在商业产品部署了 DistBelief 的深度学习神经网络,包括 Google 搜索、Google 语音搜索、广告、Google 相册、Google 地图、Google 街景、Google 翻译和 YouTube。Google 指派计算机科学家,如 Geoffrey Hinton 和 Jeff Dean,简化和重构 DistBelief 的代码库,使其变成一个更快、更健壮的应用级别代码库,形成了 TensorFlow。2009 年,Hinton 领导的研究小组大大减少使用 DistBelief 的神经网络的错误数量,通过 Hinton 在广义反向传播的科学突破。最值得注意的是,Hinton 的突破直接使 Google 语音识别软件中的错误减少至少 25%。
TensorFlow
TensorFlow 是谷歌大脑的第二代机器学习系统。
从 0.8.0 版本(发布于 2016 年 4 月)开始本地的支持分布式运行。
从 0.9.0 版本(发布于 2016 年 6 月)开始支持 iOS。
从 0.12.0 版本(发布于 2016 年 12 月)开始支持 Windows 系统。该移植代码主要由微软贡献。
1.0.0 版本发布于 2017 年 2 月 11 日。虽然参考实现运行在单台设备,TensorFlow 可以运行在多个 CPU 和 GPU(和可选的 CUDA 扩展和图形处理器通用计算的 SYCL 扩展)。TensorFlow 可用于 64 位 Linux、macOS 和 Windows,以及移动计算平台,包括 Android 和 iOS。
TensorFlow 的计算使用有状态的数据流图表示。TensorFlow 的名字来源于这类神经网络对多维数组执行的操作。这些多维数组被称为张量。2016 年 6 月,Jeff Dean 称在 GitHub 有 1500 个库提到了 TensorFlow,其中只有 5 个来自 Google。
张量处理单元(TPU)
2016 年 5 月,Google 宣布了张量处理单元(TPU),一个专为机器学习和 TensorFlow 全定制的专用集成电路。TPU 是一个可编程的人工智能加速器,提供高吞吐量的低精度计算(如 8 位),面向使用或运行模型而不是训练模型。Google 宣布他们已经在数据中心中运行 TPU 长达一年多,发现它们对机器学习提供一个数量级更优的每瓦特性能。
2017 年 5 月 Google 宣布第二代张量处理单元,并在 Google Compute Engine 中可用。第二代 TPU 提供最高 180 teraflops 性能,组装成 64 个 TPU 的集群时提供最高 11.5 petaflops 性能。
TensorFlow Lite
2017 年 5 月 Google 宣布从 Android Oreo 开始,提供一个专用于 Android 开发的软件栈 TensorFlow Lite。
应用
Google 于 2015 年 10 月 26 日正式发布了 RankBrain,由 TensorFlow 支持。
特性
TensorFlow 提供了一个 Python API,以及 C++、Haskell、Java、Go 和 Rust API。第三方包可用于 C#、Julia、R 和 Scala。
TensorFlow 的底层核心引擎由 C++实现,通过 gRPC 实现网络互访、分布式执行。虽然它的 Python/C++/Java API 共享了大部分执行代码,但是有关于反向传播梯度计算的部分需要在不同语言单独实现。当前只有 Python API 较为丰富的实现了反向传播部分。所以大多数人使用 Python 进行模型训练,但是可以选择使用其它语言进行线上推理。
TensorFlow 在 Windows 和 Linux 上支持使用 Bazel 或 CMake 构建,在某些平台上也支持直接使用 GNU Make 进行编译。
广泛的应用程序使用 TensorFlow 作为基础,其中它已成功实现自动化图像字幕软件,例如 DeepDream。2015 年 10 月 26 日,Google 正式启用了由 TensorFlow 提供支持的 RankBrain。RankBrain 现在处理大量的搜索查询,替换和补充传统的静态算法搜索结果。