BT

您是否属于早期采用者或者创新人士?InfoQ正在努力为您设计更多新功能。了解更多

deeplearn.js:浏览器端机器智能框架

| 作者 徐进 关注 1 他的粉丝 发布于 2017年8月11日. 估计阅读时间: 不到一分钟 | 智能化运维、Serverless、DevOps......2017年有哪些最新运维技术趋势?CNUTCon即将为你揭秘!

deeplearn.js最初由Google Brain PAIR开发,是一款基于硬件加速的开源JavaScript库,可被用在机器智能领域。该库将高性能的机器学习构建模块引入到web开发领域。PAIR是People Plus AI Research的简称,意为“人+人工智能研究”,目标在于“使AI更加注重人性”。通过deeplearn.js,可以实现在浏览器中训练神经网络模型,也可在推理阶段运行预训练模型。

deeplearn.js目前已经开源,地址是:https://github.com/PAIR-code/deeplearnjs

deeplearn.js以TypeScript作为首选语言,提供了可用于构建可微数据流图的API,以及一系列可以直接使用的数学函数。该库有两个API模型,一个是即时执行模型(可认为是NumPy),另一个是基于TensorFlow的API镜像的延时执行模型。该库还支持从TensorFlow检查点将权重转储为可以导入deeplearn.js的格式,但开发者必须在deeplearn.js中重新创建模型,并使用该检查点的权重。该库正计划建立一种可以直接从TensorFlow将模型端口从GraphDef自动传输到deeplearn.js的方法。同时该库使用OES_texture_float扩展以定位支持WebGL 1.0和WebGL 2.0的设备,对于不支持WebGL的设备,deeplearn.js还提出了CPU回退机制。

在deeplearn.js中,NDArray是其核心数据单元,包括一系列浮点值,可以用于将其构建为任意维数的数组。NDArray也拥有一个用来定义形状的shape属性。例如一个3*2的矩阵用法如下:

const shape = [3,2]; // 3行,2列
const matrix = Array2D.new(shape,[1.0,2.0,4.0,6.0,3.0,2.0]);

该库还提供了一个NDArrayMath基类,定义了一系列在NDArray上运行的数学函数,为模型内数据操作提供方便。在deeplearn.js中,可微数据流图和TensorFlow一样,使用的是延迟执行模型。通过FeedEntrys 提供的输入NDArray 构建一个计算图,然后再在上面进行训练或推断。其中FeedEntry对象和TensorFlow中的feed_dict类似,用来提供运行所需的数据。

在当前深度学习的浪潮下,deeplearn.js为浏览器构建了强大的交互式机器学习工具,几乎可以被用在任何领域,包括教育、模型的理解、艺术项目等。


感谢徐川对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT