1 / 3
2 / 3
3 / 3
上线时间 2023年
总部地址 OpenAI
所属公司 OpenAI
产品内容 对话聊天
免费版本 支持
产品价格 每月12美元
支付方式 信用卡
API 支持
官网地址 https://www.tensorflow.org

TensorFlow简介

Tensorflow拥有多层级结构,可部署于各类服务器、PC终端和网页并支持GPU和TPU高性能数值计算,被广泛应用于谷歌内部的产品开发和各领域的科学研究。

TensorFlow由谷歌人工智能团队谷歌大脑(Google Brain)开发和维护,拥有包括TensorFlow Hub、TensorFlow Lite、TensorFlow Research Cloud在内的多个项目以及各类应用程序接口(Application Programming Interface, API)。

自2015年11月9日起,TensorFlow依据阿帕奇授权协议(Apache 2.0 open source license)开放源代码。

谷歌大脑自2011年成立起开展了面向科学研究和谷歌产品开发的大规模深度学习应用研究,其早期工作即是TensorFlow的前身DistBelief 。DistBelief的功能是构建各尺度下的神经网络分布式学习和交互系统,也被称为"第一代机器学习系统" 。DistBelief在谷歌和Alphabet旗下其它公司的产品开发中被改进和广泛使用 。2015年11月,在DistBelief的基础上,谷歌大脑完成了对"第二代机器学习系统"TensorFlow的开发并对代码开源。相比于前作,TensorFlow在性能上有显著改进、构架灵活性和可移植性也得到增强 。此后TensorFlow快速发展,截至稳定API版本1.12,已拥有包含各类开发和研究项目的完整生态系统。在2018年4月的TensorFlow开发者峰会中,有21个TensorFlow有关主题得到展示 。

Tensorflow工作原理

分布式TensorFlow的核心组件(core runtime)包括:分发中心(distributed master)、执行器(dataflow executor/worker service)、内核应用(kernel implementation)和最底端的设备层(device layer)/网络层(networking layer)。

分发中心从输入的数据流图中剪取子图(subgraph),将其划分为操作片段并启动执行器。分发中心处理数据流图时会进行预设定的操作优化,包括公共子表达式消去(common subexpression elimination)、常量折叠(constant folding)等。

执行器负责图操作(graph operation)在进程和设备中的运行、收发其它执行器的结果。分布式TensorFlow拥有参数器(parameter server)以汇总和更新其它执行器返回的模型参数。执行器在调度本地设备时会选择进行并行计算和GPU加速。

内核应用负责单一的图操作,包括数学计算、数组操作(array manipulation)、控制流(control flow)和状态管理操作(state management operations)。内核应用使用Eigen执行张量的并行计算、cuDNN库等执行GPU加速、gemmlowp执行低数值精度计算,此外用户可以在内核应用中注册注册额外的内核(fused kernels)以提升基础操作,例如激励函数和其梯度计算的运行效率。

单进程版本的TensorFlow没有分发中心和执行器,而是使用特殊的会话应用(Session implementation)联系本地设备。TensorFlow的C语言API是核心组件和用户代码的分界,其它组件/API均通过C语言API与核心组件进行交互 。

Tensorflow生态系统

社区
TensorFlow位于GitHub的三个代码库负责处理事件和提供技术支持,一般性的求助也可发送至StackOverflow的TensorFlow板块
。TensorFlow使用公共邮箱发布主要版本和重要公告 ,其官方网站的"路线图"页面汇总了其近期的开发计划 。TensorFlow团队拥有推特账户和博客以发布项目的新闻和动态。TensorFlow的YouTube频道介绍了TensorFlow在机器学习和人工智能领域的应用,并定期推送节目,包括"TensorFlow Meets"、"Ask TensorFlow"和"Coding TensorFlow" 。

项目
TensorFlow Hub
TensorFlow Hub是一个允许用户发布、共享和使用TensorFlow模块的库开发项目。用户可以将TensorFlow数据流图或其部分使用Hub进行封装并移植到其它问题中再次利用
。TensorFlow Hub页面列出了由谷歌和DeepMind提供的封装模型,其主题包括字符嵌入、视频分类和图像处理 。

TensorFlow Extended (TFX)
TFX是谷歌基于TensorFlow开发的产品级机器学习平台,其目标是是对产品开发中的模型实现、分析验证和业务化操作进行整合,在实时数据下完成机器学习产品的标准化生产
。TFX包含三个算法库:TensorFlow Data Validation对机器学习数据进行统计描述和验证、TensorFlow Transform对模型数据进行预处理、TensorFlow Model Analysis对机器学习模型进行分析,提供表现评分。另有TensorFlow Serving作为模型业务化的高性能系统,提供模型接口和管理 。

TensorFlow Probability (TFP)
TFP是在TensorFlow Python API基础上开发的统计学算法库,其目标是方便用户将概率模型和深度学习模型相结合使用
。TFP包含大量概率分布的生成器、支持构建深度网络的概率层(probabilistic layers)、提供变分贝叶斯推断(Variational inference)和马尔可夫链蒙特卡罗方法(Markov chain Monte Carlo)和一些特殊的优化器,包括Nelder-Mead方案、BFGS算法(Broyden-Fletcher-Goldfarb-Shanno algorithm)和SGLD(Stochastic Gradient Langevin Dynamics)。

应用开发
TensorFlow.js
TensorFlow.js是TensorFlow的JavaScript API,主要用于网页端的机器学习应用开发。TensorFlow.js可以在浏览器和Node.js下转化和运行TensorFlow构建的机器学习模型,并使用网页端数据对模型进行训练
。截至2018年9月18日,TensorFlow.js的版本号为0.13 。

TensorFlow Lite
TensorFlow Lite是为移动和嵌入式设备运行机器学习代码的问题提供解决方案。TensorFlow Lite包含优化算法以提升Android、iOS等系统下机器学习模型的响应时间并降低文件大小。谷歌内部的许多移动端产品,包括谷歌相册、谷歌邮箱客户端、谷歌键盘等都使用TensorFlow Lite部署了人工智能算法。

Swift for TensorFlow
Swift for TensorFlow是开源版Swift的TensorFlow API开发项目。Swift for TensorFlow类似于Eager Execution可以直接执行数据流图且性能更高
。截至10月13日,Swift for TensorFlow处于早期开发状态。

研究
TensorFlow Research Cloud
TensorFlow Research Cloud是面向科学研究的机器学习TPU云计算平台。该项目拥有1000个云TPU和总计180千万亿次计算力,每个TPU拥有64 GB的高带宽内存
。TensorFlow Research Cloud项目在2018年2月进入Beta版,可以申请使用,在官方声明中,其发起目的是"为确保全世界优秀的研究人员拥有足够的计算资源以规划、使用和发表下个机器学习浪潮的革命性突破"

Magenta
Magenta是在艺术领域使用机器学习的研究项目,该项目使用深度学习网络和强化学习算法学习生成音乐、绘画和其它艺术作品,以帮助艺术人员拓展其创作过程
。Magenta项目的研究成果包括音乐创作工具NSynth和混音工具MusicVAE。

Nucleus
Nucleus是将TensorFlow应用于基因组文件,例如SAM和VCF格式文件的读写和分析的库开发项目 。Nucleus使用Python和C++进行开发,截至2018年9月已发布0.2.0版本。