【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,完全在浏览器运行机器学习

相关文章
|
1月前
|
移动开发 JavaScript 前端开发
一些处理浏览器兼容性问题的JavaScript库
这些库在处理浏览器兼容性问题方面都有着各自的特点和优势,可以根据具体的需求和项目情况选择合适的库来使用,从而提高代码的兼容性和稳定性,为用户提供更好的体验。同时,随着浏览器技术的不断发展,还需要持续关注和学习新的兼容性解决方案。
107 48
|
1月前
|
JSON 移动开发 JavaScript
在浏览器执行js脚本的两种方式
【10月更文挑战第20天】本文介绍了在浏览器中执行HTTP请求的两种方式:`fetch`和`XMLHttpRequest`。`fetch`支持GET和POST请求,返回Promise对象,可以方便地处理异步操作。`XMLHttpRequest`则通过回调函数处理请求结果,适用于需要兼容旧浏览器的场景。文中还提供了具体的代码示例。
在浏览器执行js脚本的两种方式
|
1月前
|
JavaScript 前端开发 数据处理
模板字符串和普通字符串在浏览器和 Node.js 中的性能表现是否一致?
综上所述,模板字符串和普通字符串在浏览器和 Node.js 中的性能表现既有相似之处,也有不同之处。在实际应用中,需要根据具体的场景和性能需求来选择使用哪种字符串处理方式,以达到最佳的性能和开发效率。
|
1月前
|
算法 开发者
Moment.js库是如何处理不同浏览器的时间戳格式差异的?
总的来说,Moment.js 通过一系列的技术手段和策略,有效地处理了不同浏览器的时间戳格式差异,为开发者提供了一个稳定、可靠且易于使用的时间处理工具。
40 1
|
1月前
|
Web App开发 JavaScript 前端开发
使用 Chrome 浏览器的内存分析工具来检测 JavaScript 中的内存泄漏
【10月更文挑战第25天】利用 Chrome 浏览器的内存分析工具,可以较为准确地检测 JavaScript 中的内存泄漏问题,并帮助我们找出潜在的泄漏点,以便采取相应的解决措施。
306 9
|
1月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
133 1
|
2月前
|
JavaScript API
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
167 0
|
12天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
154 55
|
1月前
|
机器学习/深度学习 数据采集 数据可视化
TensorFlow,一款由谷歌开发的开源深度学习框架,详细讲解了使用 TensorFlow 构建深度学习模型的步骤
本文介绍了 TensorFlow,一款由谷歌开发的开源深度学习框架,详细讲解了使用 TensorFlow 构建深度学习模型的步骤,包括数据准备、模型定义、损失函数与优化器选择、模型训练与评估、模型保存与部署,并展示了构建全连接神经网络的具体示例。此外,还探讨了 TensorFlow 的高级特性,如自动微分、模型可视化和分布式训练,以及其在未来的发展前景。
76 5
|
1月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
84 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络