Google 于 2017 年 2 月 16 日(北京时间)凌晨 2 点在美国加利福尼亚州山景城举办了首届 TensorFlow 开发者峰会。Google 现场宣布全球领先的深度学习开源框架 TensorFlow 正式对外发布 V1.0 版本,并保证 Google 的本次发布版本的 API 接口满足生产环境稳定性要求。
在过去的一年时间里,TensorFlow 已经成功地帮助研究人员、工程师、艺术家、学习,以及许许多多其他人,在各个领取取得成功。从语言翻译,到皮肤癌的早期检测、预防糖尿病致盲,TensorFlow 应用于超过 6000 个在线开源代码仓库。
会场直击
TensorFlow 工程总监 Rajat Monga 在会场介绍,目前业界更多的是如 K-means、支持向量机(SVMs)这样的传统机器学习工具。本次发布版本引入了一些新工具,包括人工神经网络,可以针对训练数据样本基础之上推论新数据。
由于基于 Python 开发的 Keras 库很容易与深度学习框架 Theano 结合,所以 V1.0 版本也对 Keras 库进行了集成。TensorFlowV1.0 加入了一些高级 API,包括 tf.layers,tf.metrics 和 tf.losses 模块。此外,它还包含一个全新的 tf.keras 模块,能够与 Keras 完全兼容.Monga 表示本次集成后开发者会很容易使用简单的神经网络。
神经网络研究者 Rachel Thomas 在 fast.ai 上撰文介绍了这一消息,并记录了他使用 TensorFlow 和 Keras 的感受:
使用 TensorFlow 给我的感觉就是我还不够聪明,但是使用 Keras
的时候我会觉得神经网络要比我想象的简单。这是因为 TensorFlow 的 API 过于冗长和混乱,而 Keras 的 API 很容易理解。对我来说,刚开始使用 TensorFlow
受挫后就公开批评不太好,让人觉得不稳重。当然,其中有我自己的原因。但是,Keras 和 Theano
确实证实了我的想法,tensors 和 神经网络学习不一定非得这么难。一次大学作业中我使用了一个硬件描述语言,通过添加和改变 CPU
暂存器中的字节来编码除法(division)。虽然这种方式很有趣,但是我非常确定,我不想用这种方式对神经网络进行编码。使用一个更高级别的语言的好处是显而易见的:更快地编码、更少的 bug,以及,更少的痛苦。Keras 的好处还有更多——它更适配神经网络的概念,能促进新的发现。Keras 让我更加擅长神经网络,因为语言抽象与神经网络的概念搭配得更加好。使用与我的思维方式相似的语言编写程序,能让我把注意力集中在需要解决的难题上。因为,当我把更多的精力花在头脑中的思维与编程语言之间的概念转换的时候,我的思考就会变慢。TensorFlow 这种方式会对我的效率有所影响。
Google 很快会公开 TensorFlow 其他源代码,包括包括基于 8 GPU 对 初始神经网络 v3 实现 7.3 倍加速,以及基于 64 GPU 对分布式初始神经网络 v3 训练实现 58 倍加速!此外,TensorFlow 很快会支持高通发布的 Snapdradon 820 移动芯片的六角数字信号处理器,TensorFlow 编译器 (XLA) 也在向适合底层计算基础设施方面靠拢。
TensorFlow 是 Google 在 2015 年发布的第二代开源机器学习系统,目前已被广泛应用。随着它自身的不断完善,不断地增加功能,包括支持分布式训练、支持Hadoop 分布式文件系统(HDFS)、较好的 Parsey MxParseFace 语言解析器等等。
Google 提供了云端机器学习服务,支持用户在Google 云端设备上运行TensorFlow。
工程总监Megan Kacholia 表示,到2017 年3 月末,Google 不仅仅会发布新属性以领先其他的深度学习框架,而且将会发布其用于评估的模型。
TensorFlow V1.0 重大功能
- XLA(实验版):发布 XLA 实验版本,针对 TensorFlow 图的专用编译器,面向 CPU 和 GPU。
- TensorFlow Debugger(tfdbg):命令行界面和 API。
- 添加了新的 Python 3 Docker 图像。
- 使 pip 包兼容 pypi。TensorFlow 现在可以通过 pip install tensorflow 命令安装。
- 更改了几个 python API 的调用方式,使其更类似 NumPy。 新的(实验版)Java API。
- Android:全新人物检测 + 跟踪演示实现——“Scalable Object Detection using DNN”(带有额外的 YOLO 对象检测器支持)。
- Android:全新基于摄像头的图像风格转换演示,使用了神经网络艺术风格转换技术。
参考阅读
TensorFlow 各版本差异介绍如何开始学习TensorFlow 如何迁移到TensorFlowV1.0 如何在Hadoop 上运行TensorFlow TensorFlowV1.0API 接口,包括 Python、Java、C++、Go 四种语言
感谢杜小芳对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论