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

相关文章
|
17天前
|
JSON 移动开发 JavaScript
在浏览器执行js脚本的两种方式
【10月更文挑战第20天】本文介绍了在浏览器中执行HTTP请求的两种方式:`fetch`和`XMLHttpRequest`。`fetch`支持GET和POST请求,返回Promise对象,可以方便地处理异步操作。`XMLHttpRequest`则通过回调函数处理请求结果,适用于需要兼容旧浏览器的场景。文中还提供了具体的代码示例。
在浏览器执行js脚本的两种方式
|
15天前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
|
1月前
|
机器学习/深度学习 自然语言处理 前端开发
前端大模型入门:Transformer.js 和 Xenova-引领浏览器端的机器学习变革
除了调用API接口使用Transformer技术,你是否想过在浏览器中运行大模型?Xenova团队推出的Transformer.js,基于JavaScript,让开发者能在浏览器中本地加载和执行预训练模型,无需依赖服务器。该库利用WebAssembly和WebGPU技术,大幅提升性能,尤其适合隐私保护、离线应用和低延迟交互场景。无论是NLP任务还是实时文本生成,Transformer.js都提供了强大支持,成为构建浏览器AI应用的核心工具。
453 1
|
1月前
|
JavaScript API
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
106 0
|
2月前
|
JavaScript 前端开发
js之浏览器对象|28
js之浏览器对象|28
|
2月前
|
前端开发 JavaScript Java
JavaScript的运行原理
JavaScript 的运行原理包括代码输入、解析、编译、执行、内存管理和与浏览器交互几个步骤。当打开网页时,浏览器加载 HTML、CSS 和 JavaScript 文件,并通过 JavaScript 引擎将其解析为抽象语法树(AST)。接着,引擎将 AST 编译成字节码或机器码,并在执行阶段利用事件循环机制处理异步操作,确保单线程的 JavaScript 能够高效运行。同时,JavaScript 引擎还负责内存管理和垃圾回收,以减少内存泄漏。通过与 DOM 的交互,JavaScript 实现了动态网页效果,提供了灵活且高效的开发体验。
|
3月前
|
机器学习/深度学习 人工智能 前端开发
【人工智能】利用TensorFlow.js在浏览器中实现一个基本的情感分析系统
使用TensorFlow.js在浏览器中进行情感分析是一个非常实用的应用场景。TensorFlow.js 是一个用于在JavaScript环境中训练和部署机器学习模型的库,使得开发者能够在客户端直接运行复杂的机器学习任务。对于情感分析,我们可以使用预先训练好的模型来识别文本中的积极、消极或中性情感。
107 4
【人工智能】利用TensorFlow.js在浏览器中实现一个基本的情感分析系统
|
3月前
|
机器学习/深度学习 存储 前端开发
实战揭秘:如何借助TensorFlow.js的强大力量,轻松将高效能的机器学习模型无缝集成到Web浏览器中,从而打造智能化的前端应用并优化用户体验
【8月更文挑战第31天】将机器学习模型集成到Web应用中,可让用户在浏览器内体验智能化功能。TensorFlow.js作为在客户端浏览器中运行的库,提供了强大支持。本文通过问答形式详细介绍如何使用TensorFlow.js将机器学习模型带入Web浏览器,并通过具体示例代码展示最佳实践。首先,需在HTML文件中引入TensorFlow.js库;接着,可通过加载预训练模型如MobileNet实现图像分类;然后,编写代码处理图像识别并显示结果;此外,还介绍了如何训练自定义模型及优化模型性能的方法,包括模型量化、剪枝和压缩等。
53 1
|
3月前
|
监控 JavaScript Linux
[译] 在生产环境运行 PM2 & Node.js
[译] 在生产环境运行 PM2 & Node.js
|
3月前
|
编解码 JavaScript 前端开发
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
110 1
下一篇
无影云桌面