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

在最近的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实现浏览器上的深度学习_第1张图片
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实现浏览器上的深度学习)