【TensorFlow开发者峰会】重磅发布TensorFlow.js,完全在浏览器运行机器学习-阿里云开发者社区

开发者社区> 新智元> 正文

【TensorFlow开发者峰会】重磅发布TensorFlow.js,完全在浏览器运行机器学习

简介: 北京时间3月31日举行的2018 TensorFlow 开发者峰会上,TensorFlow宣布重大更新:增加支持JavaScript,并推出开源库TensorFlow.js,用户可以完全在浏览器定义、训练和运行机器学习模型。

Jeff Dean主旨演讲:用超强大的计算力,替代ML

北京时间3月31日举行的2018 TensorFlow 开发者峰会上,Google Brain负责人、谷歌高级研究员Jeff Dean、TensorFlow 总监 Rajat Monga等人进行了Keynote演讲。

7f85ec88f84f512e662b2d2f80a8a12fadac9803

Jeff Dean也是目前最受欢迎的深度学习框架TensorFlow的缔造者之一,他曾经就TensorFlow的高级使用,如何用TensorFlow实现大规模机器学习等问题做过多次演讲。今年初,Jeff Dean执笔撰写谷歌大脑成绩单,介绍了TensorFlow取得的一系列重要更新。

a69c034bb34175364a9e4261997e69230f999c81

图:TensorFlow 用户的分布地图

TensorFlow 是 GitHub 上的第一个机器学习平台,也是 GitHub 上的五大软件库之一,被许多公司和组织所使用,包括 GitHub 上与 TensorFlow 相关的超过 24,500 个不同的软件仓库。预编译的 TensorFlow 二进制文件已经在 180 多个国家被下载了超过 1000 万次,GitHub 上的源代码现在已经有超过 1200 个贡献者。

a65a9b5d0d260748870d2f17676e4b9a55b97488

在TensorFlow 1.0发布之后的两年中,TensorFlow 不断更新升级,逐渐成为机器学习社区最流行的深度学习框架。下图是从开源以来,TensorFlow 的重大更新,例如 TensorBoard、XLA New APIs、High-level APIs、tfkeras、Eager Execution、TF Lite等。

da8a169b7837b8daa14c9298cdd4d14f787e09cf

在演讲中,Jeff Dean先以NAE列出的“21世纪亟需解决的问题”开头,他说,机器学习会在所有这些问题中起到作用。而且,机器学习是关键,尤其是推动医疗的进展、为科学发现提供工具等方面。

2d818df996f2760ea542b3c10f15f94027fd3632

Jeff Dean说,目前机器学习领域的一般方案是:ML的专门知识+数据+计算力。但是能不能用更强大的计算力替代ML专家或者ML专业知识,这一点谷歌正在践行。

cc5233dd4d003654c8f0d7dc1d903969d7052819

Jeff Dean接下来介绍了AutoML。

自动化机器学习的目标是为计算机开发能够自动解决新的机器学习问题的技术,而不用每次遇到新问题都需要人类机器学习专家干预。如果我们想要真正的智能系统,这是所需要的最基本的能力。AutoML是使用强化学习和进化算法设计神经网络结构的新方法。

d38bc66e24119e9120534b6c5a2a5eeedfbe23b6

ML+医疗是强大的组合。谷歌在AI医疗方面取得了一系列成就,例如使用深度学习从视网膜眼底照片预测心血管疾病的研究。

增加支持JavaScript,完全在浏览器定义、训练和运行机器学习模型

TensorFlow开发者峰会上还宣布了一件大事:

TensorFlow宣布推出TensorFlow.js,这是一个开源库,可以使用JavaScript和high-level layers API完全在浏览器中定义、训练和运行机器学习模型。如果你是机器学习的初学者,那么TensorFlow.js是开始学习的好方法。或者,如果你是机器学习开发者,但对于JavaScript是新手,那么请继续阅读,了解更多在浏览器内进行机器学习的新机会。我们将简要介绍一下TensorFlow.js,并介绍一些试用的资源。

a8716ba2d904feea9f69a1c77c0a9215c7380a8b

在浏览器运行机器学习

完全在浏览器中运行机器学习程序可以开发新的机会,例如交互式机器学习!在TensorFlow开发者峰会上,Daniel Smilkov和Nikhil Thorat演示了如何使用计算机视觉和网络摄像头训练模型来控制PAC-MAN游戏,这是完全在浏览器进行的。

demo:https://storage.googleapis.com/tfjs-examples/webcam-transfer-learning/dist/index.html

代码:https://github.com/tensorflow/tfjs-examples

267eb0b9a04b02e91513c7fb64fbb3e4011e0ddb

图:使用神经网络将你的网络摄像头变成PAC-MAN的控制器

如果你想尝试其他游戏,例如Emoji Scavenger Hunt——这次是使用手机上的浏览器。

9553a8aee5149ca6c5c979797e79428ea9f56651

图:Emoji Scavenger Hunt是使用TensorFlow.js构建的另一个有趣的demo。你可以用手机试一下

从用户的角度来看,在浏览器中运行的ML意味着不需要安装任何库或驱动程序。只需打开一个网页,即可运行你的程序。此外,它也可以使用GPU加速运行。TensorFlow.js自动支持WebGL,并在GPU可用时在后台加速代码。用户也可以通过移动设备打开网页,在这种情况下,模型可以利用传感器数据,例如陀螺仪或加速度计。最后,所有数据都保留在客户端上,使得TensorFlow.js可用于低延迟推断以及隐私保护的应用程序。

你可以用TensorFlow.js做什么?

如果你使用TensorFlow.js进行开发,可以考虑以下三种workflow:

8481c8f592b7f349aa84a1de5c171db681516edf你可以导入现有的预训练的模型进行推理。如果你有一个以前脱机训练好的现成的TensorFlow或Keras模型,就可以将其转换为TensorFlow.js格式,并加载到浏览器中进行推理。
8481c8f592b7f349aa84a1de5c171db681516edf你可以重新训练导入的模型。正如在上面的Pac-Man演示中,你可以使用迁移学习来增强现有模型,使用“Image Retraining”技术,用浏览器中收集的少量数据进行离线训练。这是快速训练精确模型的一种方法,只需使用少量数据。
8481c8f592b7f349aa84a1de5c171db681516edf直接在浏览器中创建模型。你还可以使用TensorFlow.js,完全在浏览器中使用Javascript和high-level layers API进行定义、训练和运行模型。如果你熟悉Keras,那么应该会很熟悉high-level layers API。

一些代码示例

以下内容展示了如何在浏览器中导出用Python定义的模型进行推理,以及如何完全用Javascript定义和训练模型。这里有一段代码定义了一个用于来对花朵进行分类的神经网络,就像在TensorFlow.org的入门指南中的代码一样。在这里,我们使用一堆layers来定义一个模型。

ef9b75f581472e4e5341cb642285591344a62e46

这里使用的layers API支持示例目录中的所有Keras 层(包括Dense,CNN,LSTM等)。然后,我们可以使用Keras兼容的API来训练我们的模型:

2126698df0719f5abacbdc8fc6992e9f6b10d872

这个模型现在可以用来做预测:

f86da5e03dbdc2795eb4cd0b0c0264e168b9dadf

TensorFlow.js还包含 low-level API(以前称为deeplearn.js),并且支持Eager执行。

76706f1ad9378541192ae0117deb5b7cc7d43273

上图是TensorFlow.js API的概览。TensorFlow.js由WebGL支持,并提供用于定义模型的high-level layers API和用于线性代数和自动微分的 low-level API。TensorFlow.js支持导入TensorFlow SavedModels和Keras模型。

TensorFlow.js和deeplearn.js有什么区别

好问题!TensorFlow.js是用于机器学习的JavaScript工具生态系统,是deeplearn.js的接替者,deeplearn.js现在已经改名TensorFlow.js Core了。TensorFlow.js还包含一个Layers API,它是用于构建使用Core的机器学习模型的更高级的库,以及用于自动移植TensorFlow SavedModels和Keras hdf5模型的工具。



原文发布时间为:2018-03-31

本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“AI_era”微信公众号

原文链接:【TensorFlow开发者峰会】重磅发布TensorFlow.js,完全在浏览器运行机器学习

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
+ 订阅

官方博客
官网链接