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

相关文章
|
29天前
|
机器学习/深度学习 PyTorch TensorFlow
【机器学习】基于tensorflow实现你的第一个DNN网络
【机器学习】基于tensorflow实现你的第一个DNN网络
46 0
|
13天前
|
监控 JavaScript Linux
[译] 在生产环境运行 PM2 & Node.js
[译] 在生产环境运行 PM2 & Node.js
|
11天前
|
API UED 开发者
如何在Uno Platform中轻松实现流畅动画效果——从基础到优化,全方位打造用户友好的动态交互体验!
【8月更文挑战第31天】在开发跨平台应用时,确保用户界面流畅且具吸引力至关重要。Uno Platform 作为多端统一的开发框架,不仅支持跨系统应用开发,还能通过优化实现流畅动画,增强用户体验。本文探讨了Uno Platform中实现流畅动画的多个方面,包括动画基础、性能优化、实践技巧及问题排查,帮助开发者掌握具体优化策略,提升应用质量与用户满意度。通过合理利用故事板、减少布局复杂性、使用硬件加速等技术,结合异步方法与预设缓存技巧,开发者能够创建美观且流畅的动画效果。
33 0
|
11天前
|
开发者 算法 虚拟化
惊爆!Uno Platform 调试与性能分析终极攻略,从工具运用到代码优化,带你攻克开发难题成就完美应用
【8月更文挑战第31天】在 Uno Platform 中,调试可通过 Visual Studio 设置断点和逐步执行代码实现,同时浏览器开发者工具有助于 Web 版本调试。性能分析则利用 Visual Studio 的性能分析器检查 CPU 和内存使用情况,还可通过记录时间戳进行简单分析。优化性能涉及代码逻辑优化、资源管理和用户界面简化,综合利用平台提供的工具和技术,确保应用高效稳定运行。
23 0
|
11天前
|
前端开发 开发者 设计模式
揭秘Uno Platform状态管理之道:INotifyPropertyChanged、依赖注入、MVVM大对决,帮你找到最佳策略!
【8月更文挑战第31天】本文对比分析了 Uno Platform 中的关键状态管理策略,包括内置的 INotifyPropertyChanged、依赖注入及 MVVM 框架。INotifyPropertyChanged 方案简单易用,适合小型项目;依赖注入则更灵活,支持状态共享与持久化,适用于复杂场景;MVVM 框架通过分离视图、视图模型和模型,使状态管理更清晰,适合大型项目。开发者可根据项目需求和技术栈选择合适的状态管理方案,以实现高效管理。
22 0
|
2月前
|
机器学习/深度学习 人工智能 TensorFlow
🔥零基础逆袭!Python数据分析+机器学习:TensorFlow带你秒变AI大师
【7月更文挑战第29天】在这个数据驱动的时代,掌握Python与机器学习技能是进入AI领域的关键。即使从零开始,也能通过TensorFlow成为AI专家。
47 8
|
17天前
|
JavaScript Windows
【Azure 应用服务】用App Service部署运行 Vue.js 编写的项目,应该怎么部署运行呢?
【Azure 应用服务】用App Service部署运行 Vue.js 编写的项目,应该怎么部署运行呢?
|
17天前
|
JavaScript 前端开发 C++
【Azure Function】调试 VS Code Javascript Function本地不能运行,报错 Value cannot be null. (Parameter 'provider')问题
【Azure Function】调试 VS Code Javascript Function本地不能运行,报错 Value cannot be null. (Parameter 'provider')问题
|
25天前
|
机器学习/深度学习 算法 TensorFlow
【人工智能】TensorFlow和机器学习概述
TensorFlow的性能优化将是持续的工作重点。这包括更高效的GPU和TPU支持、更快速的模型训练与推理、以及优化的内存使用。同时,随着硬件的发展,TensorFlow将不断优化其代码库以充分利用新型硬件的能力。
13 0
|
3月前
|
机器学习/深度学习 人工智能 算法
【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50
昆虫识别系统,使用Python作为主要开发语言。通过TensorFlow搭建ResNet50卷积神经网络算法(CNN)模型。通过对10种常见的昆虫图片数据集('蜜蜂', '甲虫', '蝴蝶', '蝉', '蜻蜓', '蚱蜢', '蛾', '蝎子', '蜗牛', '蜘蛛')进行训练,得到一个识别精度较高的H5格式模型文件,然后使用Django搭建Web网页端可视化操作界面,实现用户上传一张昆虫图片识别其名称。
270 7
【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50
下一篇
DDNS