专栏名称: 前端之巅
InfoQ前端垂直社群:紧跟前端发展,共享一线技术,万名淀粉互助,共登前端之巅!
目录
相关文章推荐
奇舞精选  ·  从 DeepSeek 看25年前端的一个小趋势 ·  12 小时前  
奇舞精选  ·  从 DeepSeek 看25年前端的一个小趋势 ·  12 小时前  
新疆教育厅  ·  全区中小学生家长心理健康教育科普讲座——第十讲 ·  14 小时前  
新疆教育厅  ·  全区中小学生家长心理健康教育科普讲座——第十讲 ·  14 小时前  
前端早读课  ·  【第3452期】React 开发中使用开闭原则 ·  22 小时前  
前端早读课  ·  【第3451期】前端 TypeError ... ·  昨天  
51好读  ›  专栏  ›  前端之巅

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

前端之巅  · 公众号  · 前端  · 2017-08-09 23:25

正文

前几天我们刚刚介绍了可以 在浏览器端运行的神经网络框架 TensorFire ,现在又出来一个深度学习框架,Google 出品,值得关注。

deeplearn.js 最初由 Google Brain PAIR 开发,是一款基于硬件加速的开源 JavaScript 库,可被用在机器智能领域。该库将高性能的机器学习构建模块引入到 web 开发领域。PAIR 是 People plus AI Research 的简称,意为“人 + 人工智能研究”,其目标是“使 AI 更注重人性”。

deeplearn.js 目前已开源,地址是:

https://github.com/PAIR-code/deeplearnjs

通过 deeplearn.js,可以实现在浏览器中训练神经网络模型,也可在推理阶段运行预训练模型。

deeplearn.js 以 TypeScript 作为首选语言,提供了可用于构建可微数据流图的 API,以及一系列可以直接使用的数学函数。该库有两个 API 模型,一个是即时执行模型(可认为是 NumPy),另一个是基于 TensorFlow 的 API 镜像的延时执行模型。该库还支持从 TensorFlow 检查点将权重转储为可以导入 deeplearn.js 的格式,但开发者必须在 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 为浏览器构建了强大的交互式机器学习工具,几乎可以被用在任何领域,包括教育、模型的理解、艺术项目等。







请到「今天看啥」查看全文