天体物理学家使用 TensorFlow 分析开普勒任务中的大量数据,以发现新的行星; 医学研究人员利用 TensorFlow 机器学习技术来评估一个人心脏病发作和中风的几率; 科学家在非洲用 TensorFlow 检测木薯植物疾病,从而提高产量并帮助更好地满足非洲大陆的粮食需求; …… 这是 TensorFlow 团队对过去一年来的总结,他们在诸多领域取得了进步。 北京时间 3 月 31 日凌晨,第二届 TensorFlow 开发者峰会开幕, TensorFlow 团队发布了多款新产品,旨在使开发者更易使用,以及让数据科学家使用多种方式构建 AI 模型。
更简单的TensorFlow
为了让开发者们易于使用,TensorFlow 团队推出了解决这一问题的 5 款更新。
首先引入了 eager execution。根据 TensorFlow 官方介绍,这对 Python 开发者来说是一种更直观的编程模型,它消除了构建和执行计算图 (computational graph) 之间的界线。用 eager execution 开发,很容易便能用相同的代码生成等价的计算图和估算器 (Estimator) 高级 API,进行大规模训练。
为了用最少代码改动获得最大的性能提升,他们还发布了一种新的更简单的模型,用于在单台机器上的多个 GPU 上运行估算器 (Estimator)(https://www.tensorflow.org/api_docs/python/tf/estimator/Estimator) 。
而推出的 TensorFlow Hub,旨在促进模型的可重复使用部分的发布、发现和使用。这些模块是一块块独立的 TensorFlow 计算图,可以在不同任务中重复使用。它们包含了已在大型数据集上预先训练好的变量,并且可以用一个较小的数据集进行再训练,来提高泛化能力,或是加速训练。
他们还发布了新的交互式图形化调试插件,可作为 TensorBoard 可视化工具的一部分,可以帮助开发者们使用丰富的交互式环境实时检查并浏览计算图的内部节点。
此外,推出的 TensorFlow Extended (TFX)是一个机器学习平台,可让开发者准备数据、训练、验证,并把训练好的模型快速部署在生产环境中提供可用的服务。
支持更多语言和平台
开发者可以在一些新的语言中使用 TensorFlow 了。TensorFlow 官方介绍说, TensorFlow.js 是给 JavaScript 开发者的一个新的机器学习框架,它可以完全在浏览器里定义和训练模型,还可以导入离线训练的 TensorFlow 和 Keras 模型进行预测,并可以对 WebGL 实现无缝支持。
在浏览器中使用 TensorFlow.js 进行机器学习开启了令人兴奋的新的可能性,包括交互式机器学习,还有一些所有数据都保存在客户端的使用场景。例如, Emoji 寻宝游戏就是使用 TensorFlow.js 构建的应用程序。
而对于 Swift 开发者,TensorFlow 团队送出了一份大礼:TensorFlow for Swift 将在 4 月开源。
TensorFlow 团队还披露了一些关于 TensorFlow Lite 平台的最新进展。除了对现有的对 Android 和 iOS 的支持外,还增加了对 Raspberry Pi 系统的支持,并演示了开发者如何在自己的应用程序中轻松使用 TensorFlow Lite。开发者可以利用 TensorFlow Lite 中的“自定义操作”来轻松连接自己的操作。
还有一些关于 TensorFlow Lite 的数据:它的核心解释器大小仅为 75KB(对于 TensorFlow 1.1 MB),对比 TensorFlow,当运行一些量化模型时,TensorFlow Lite 速度提升高达 3 倍。
对于硬件的支持,TensorFlow 宣布与 NVIDIA 的 TensorRT 进行集成。TensorRT 是一个库,用于优化深度学习模型以进行预测,并为生产环境创建部署在 GPU 上的运行环境。它为 TensorFlow 带来了许多优化,并自动选择特定平台的内核以最大化吞吐量,并最大限度地减少 GPU 预测期间的延迟。
在 Google 开发者博客中对此有相关介绍,具体而言,它优化了 TensorFlow 中的 FP16 浮点数和 INT8 整型数,并能自动选择针对特定平台的内核,以最大化吞吐量,并能最大限度降低 GPU 推理期间的延迟。全新集成工作流程简化了在 TensorFlow 中使用 TensorRT 的步骤,同时使 TensorFlow 达到了很高的性能水平。
通过测试,在 NVIDIA Volta Tensor 上,集成了 TensorRT 的 TensorFlow 运行 ResNet-50 比没有集成 TensorRT 的 TensorFlow 执行速度提高了 8 倍。
此外,运行 TensorFlow 的平台还增加了 Cloud TPUs,上个月他们发布了其 Beta 版本。Cloud TPUs 可加速各种机器学习模型,比如进行图像分类、目标检测、机器翻译、语音识别、语言建模等。
新的应用和领域使用
运用统计和概率方法可以解决许多数据分析问题,除了深度学习和神经网络模型之外,TensorFlow 现在还通过 TensorFlow Probability API 提供最先进的贝叶斯分析方法。 该库由概率分布、采样方法、新的指标和损失函数等模块构成。对许多经典机器学习方法也增加了支持,比如,可以用现成的高级类库,轻松训练和部署 boosted decision trees。
机器学习和 TensorFlow 开始施展拳脚的另一个领域是基因组学。他们发布了 Nucleus,这是一个在 TensorFlow 中用于读取、写入和过滤通用基因组文件格式的库,它将与 DeepVariant(一个基于 TensorFlow 开放源码的基因组变体探测工具)共同推动基因组学的全新研究进展。
总体而言,基于 TensorFlow 对 Google 战略的重要性,这些更新的新功能都非常重要。为了与微软、亚马逊和 IBM 等其它科技巨头进行竞争,TensorFlow 的进一步普及可能会鼓励更多客户使用 Google 云平台。Google 也寄希望于 TensorFlow 的普及来吸引顶尖的机器学习人才。