1.简介
deeplearn.js
是一款用于机器智能领域的基于硬件加速的JavaScript
库。该库将高性能的机器学习构建模块引入到web 开发
领域,允许我们在浏览器中训练神经网络模型或在推理模式下运行预训练的模型。
该库提供了两个API
模型:一个是立即执行模型(可认为是NumPy),另一个是基于TensorFlow API镜像的延期执行模型。deeplearn.js
最初是由Google Brain PAIR团队开发的,目的是为了构建强大的基于浏览器的交互式机器学习工具,几乎可以被应用于任何领域,包括教育、模型理解、艺术项目等。
2.用法
TypeScript/ES6 JavaScript
npm install deeplearn
该命令的作用是安装deeplearn
的依赖包,在运行该命令之前,确保您的电脑上安装了node.js
,去学习:npm & yarn
一个简单的用标量求数组之和的例子:
import {Array1D, NDArrayMathGPU, Scalar} from 'deeplearn';
const math = new NDArrayMathGPU();
const a = Array1D.new([1, 2, 3]);
const b = Scalar.new(2);
math.scope(() => {
const result = math.add(a, b);
console.log(result.getValues()); // Float32Array([3, 4, 5])
});
ES3/ES5 JavaScript
您也可以在普通的JavaScript
平台上使用,直接从Google CDN上加载最新的版本库:
`<script src="https://storage.googleapis.com/learnjs-data/deeplearn-latest.js"></script>
您可以在 GitHub 的发布页寻找到特定的版本替换一个新的版本号(例如:deeplearn-0.1.0.js)。在导入该库后,可以在全局命名空间使用该API
,名称为deeplearn
:
var math = new deeplearn.NDArrayMathGPU();
var a = deeplearn.Array1D.new([1, 2, 3]);
var b = deeplearn.Scalar.new(2);
math.scope(function() {
var result = math.add(a, b);
console.log(result.getValues()); // Float32Array([3, 4, 5])
});
3.构建
从源代码构建deeplearn.js,我们需要克隆该项目以准备好开发环境:
$ git clone https://github.com/PAIR-code/deeplearnjs.git
$ cd deeplearnjs
$ npm run prep #安装node模块和bower组件。
我们需要用Visual Studio Code作为我们的开发工具。确保安装了 clang-format
命令行工具以及自动格式化工具Clang-Format VSCode extension
。
demo用以下方法运行:
$ ./scripts/watch-demo demos/nn-art/nn-art.ts
(译者注:在deeplearn
根目录下运行该命令)运行成功后命令行会出现如下内容:
>> Starting up http-server, serving ./
>> Available on:
>> http://127.0.0.1:8080
>> Hit CTRL-C to stop the server
>> 1357589 bytes written to dist/demos/nn-art/bundle.js (0.85 seconds) at 10:34:45 AM
然后,在浏览器中访问http://localhost:8080/demos/nn-art/nn-art-demo.html 。watch-demo 的脚本监视代码增量编译(~200-400ms),因此用户可以在开发应用程序的过程中有一个快速编辑刷新周期。
在提交请求的时候,通过以下命令确保您的代码通过所有测试以及对程序进行了错误分析:
$ npm run test
$ npm run lint
构建一个独立的可以用script 标签导入到浏览器的ES5库:
$ ./scripts/build-standalone.sh VERSION # 构建独立的库
>> Stored standalone library at dist/deeplearn-VERSION(.min).js
构建一个仅运行和测试的npm包:
$ ./scripts/build-npm.sh
>> Stored npm package at dist/deeplearn-VERSION.tgz
在本地安装,运行:
npm install ./dist/deeplearn-VERSION.tgz
在Windows上,用Git bash使用上面的脚本
4.支持环境
WebGL1.0设备(具备OES_texture_float 扩展)和WebGL2.0设备。对于那些没有WebGL的平台,提供了CPU回退机制。
然而,目前演示案例不支持手机、火狐以及Safari浏览器。请在PC端用谷歌浏览器进行浏览。