Tensorflow 实现在浏览器的深度学习

阅读数:2872 2018 年 4 月 26 日 19:00

看新闻很累?看技术新闻更累?试试下载InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

在最近的 TensorFlow Dev Summit 2018 大会上,Google 宣布发布 Tensorflow.js ,这是用 Javascript 实现的开源深度学习框架 Tensorflow 。Tensorflow.js 可以实现在浏览器中直接训练模型,通过使用 WebGL JavaScript API 获得更快的计算速度。

Tenforflow.js 是由 2017 年 8 月 Google 发布的 Javascript 库 deeplearn.js 演化而来的。Deeplearn.js 诞生于 Tensorflow Playground 这款由 TypeScript 编写的交互式可视化神经网络的大成功背景之下。

Tensorflow.js 共有四层:WebGL API 实现 GPU 支持的数字运算,web 浏览器提供用户交互以及两款 API: Core Layers 。低层的 Core API 对应于之前的 deeplearn.js 库。它提供了硬件加速线性代数运算操作,以及 eager API 实现自动微分服务。高层的 Layers API 在 Core API 之上搭建机器学习模型。Layers API 在 Keras 的基础上构建,实现了相似的功能。它同时支持引入之前用 Keras 或 TensorFlow SavedModels 通过 python 训练的模型,以推论或转移浏览器中的学习内容。

使用 Tensorflow.js,可以通过三种方法将机器学习模型运用到浏览器中:引入已经预先训练过的模型,仅仅用来推论;在浏览器中直接训练模型;或是通过迁移学习先将引入的模型使用于用户环境中,之后再使用这些改进的模型进行推论。

Tensorflow 团队成员 Nikhil Thorat Daniel Smilkov 发布的视频中告诉我们,在浏览器中运行Tensorflow 有几个优势:由于后台API 需求不再有,因此需求得到了简化;由于新设备的增加,可用的数据越来越多,比如电脑的摄像头和麦克风以及移动设备的GPS 和陀螺仪等设备都可以提供数据;数据始终保留在客户端,也解决了隐私安全方面的问题。

基于 Javascript 的深度学习降低了许多 web 开发人员进入数据科学领域的门槛。他们可以将机器学习的功能整合到应用程序中,给数据科学领域带来更多创新方法。在线演示中展示了如何通过直接在浏览器中运行机器学习提升交互的速度和质量,演示内容包括情感分析手势检测风格转变

目前,已经存在几个类似的 Javascript 实现深度学习的框架,比如最早的 brain.js 项目,以及斯坦福大学卷积神经网络的 ConvNet.js 库,还有最近的 KerasJS TensorFire 库。然而,这些库既缺少利用浏览器 WebGL 组件实现基于 GPU 的运算,又不可以直接在浏览器中训练模型。最近基于 Tensorflow.js 的项目,科学计算 Propel 和机器学习 ml5 就不会碰到这些问题。

Tensorflow 团队目前的工作重点是让 TensorFlow.js支持Node.js ,但还没有具体的时间表告诉我们什么时候可以实现。在TensorFlow Dev 大会上还宣布了其他几项有关于 Tensorflow 的开发,包括 TensorFlow for Swift 将在 2018 年 4 月发布,以及 TensorFlow Hub ,“这是一个分享不同预制模块的库,开发人员可以跨多个模型复用它们”。

查看英文原文 Tensorflow with Javascript Brings Deep Learning to the Browser


感谢冬雨对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

评论

发布