Google黑科技,浏览器上的机器学习框架--Tensorflow.js

时间:2021-01-06 14:56:10

Google黑科技,浏览器上的机器学习框架–Tensorflow.js

Google黑科技,浏览器上的机器学习框架--Tensorflow.js

2018年3月30日,谷歌 TenosrFlow 开发者峰会 2018 在美国加州石景山开幕,来自全球的机器学习用户围绕 TensorFlow 展开技术演讲与演示。

今年,Tensorflow做的一件很好意思的事情,发布了面向JavaScript开发者全新的学习框架Tensorflow.js,将机器学习搬上了浏览器这个平台。

浏览器端的Machine Learning

峰会上Daniel Smilkov以及Nikhil Thorat展示了2个采用tensorflow.js在浏览器上实现的2个小游戏。

@dsmilkov和@nsthorat在训练模型中使用计算机视觉和一个摄像头,来,控制PAC-MAN游戏,而这个过程完全是在浏览器中进行的。

Google黑科技,浏览器上的机器学习框架--Tensorflow.js

使用TensorFlow.js构建的应用程序的另一个有趣的例子是一个寻宝游戏。你可以尝试使用你的手机去试试这个寻宝游戏。

Google黑科技,浏览器上的机器学习框架--Tensorflow.js

当然官网提供的demo还不止这两个。

这些新颖的模型作为案例在 TensorFlow.js 中都提供了实现代码,读者也可以跟随教程实现基于浏览器的模型
[link]https://js.tensorflow.org/

通过以上两个游戏我们可以看出浏览器端ml所具备的交互性。同时在浏览器中运行的ML意味着从用户的角度来看,不需要安装任何库或驱动程序。只需打开一个网页,您的程序即可运行。

此外,它也可以使用GPU加速运行。TensorFlow.js自动支持WebGL,并在GPU可用时在幕后加速代码。用户也可以通过移动设备打开您的网页,在这种情况下,您的模型可以利用传感器数据,例如陀螺仪或加速度计。最后,所有数据都保留在客户端上,使得TensorFlow.js可用于低延迟推断以及隐私保护应用程序。

从以上内容总结出以下四点:

  • 无驱动/不需要安装
  • 交互式ml
  • 自带传感器
  • 数据存储在客户端

Tensorflow.js 的三种工作流程

  • 导入现有的预先训练的模型进行推理。如果您有一个以前曾经脱机培训过的现有TensorFlow或Keras模型,则可以将其转换为TensorFlow.js格式,并将其加载到浏览器中进行推理。
  • 重新训练导入的模型:正如在上面的Pac-Man演示中,您可以使用传输学习来增强现有模型,使用名为“图像重新训练”的技术,使用在浏览器中收集的少量数据进行离线培训。这是快速训练精确模型的一种方法,只使用少量数据。
  • 直接在浏览器中创作模型:可以使用TensorFlow.js完全在浏览器中使用Javascript和高级图层API定义,训练和运行模型。

Tensorflow 整体架构

Google黑科技,浏览器上的机器学习框架--Tensorflow.js

TensorFlow.js包含支持低级API(以前称为deeplearn.js)和Eager执行。

TensorFlow.js API的概述。TensorFlow.js由WebGL提供支持,并提供用于定义模型的高级图层API和用于线性代数的低级别API和自动分化。TensorFlow.js支持导入TensorFlow SavedModels和Keras模型。

此外 Node.js 很快就会发布,它能为网站模型提供 GPU、TPU 等快速训练与推断的方法。

Tensorflow.js与deeplearning.js的关联

Google黑科技,浏览器上的机器学习框架--Tensorflow.js
deeplearning.js
* 2017年8月分布
* 通过WebGL调用GPU加速
* 推理和训练完全在浏览器上执行

TensorFlow.js是用于机器学习的JavaScript工具生态系统,是deeplearn.js的继任者,现在称为TensorFlow.js Core。TensorFlow.js还包含一个Layers API,它是用于构建使用Core的机器学习模型的更高级别的库,以及用于自动移植TensorFlow SavedModels和Keras hdf5模型的工具

TensorFlow.js API的概述。TensorFlow.js由WebGL提供支持,并提供用于定义模型的高级图层API和用于线性代数和自动区分的低级API。TensorFlow.js支持导入TensorFlow SavedModels和Keras模型。

Tensorflow.js 实现minst手写字母识别

这里为找了一个用Tensorflow.js实现mnist手写数字预测的例子,详细的代码可以访问这里

Google黑科技,浏览器上的机器学习框架--Tensorflow.js

从一个用户的角度上看,是不是有很强的交互性,你可以非常直观的看到你所要的结果。

微信公众号(SZBigdata-Club):后续博客的文档都会转到微信公众号中。
1、公众号会持续给大家推送技术文档、学习视频、技术书籍、数据集等。
2、接受大家投稿支持。
3、对于各公司hr招聘的,可以私下联系我,把招聘信息发给我我会在公众号中进行推送。
Google黑科技,浏览器上的机器学习框架--Tensorflow.js

技术交流群:59701880 深圳广州hadoop好友会
Google黑科技,浏览器上的机器学习框架--Tensorflow.js

转载的话请注明来源地址:https://mp.weixin.qq.com/s?__biz=MzU2ODQyMDIyMw==&mid=100000023&idx=1&sn=209a1c64b989a85810b31cbf703db92d&chksm=7c8f73074bf8fa11c276c700faf8d07947601e4abe0528a83b933d33779ff2ea552059cabff5&mpshare=1&scene=23&srcid=0412veCcWidUWFIhKIbdlyId#rd