当前位置: 首页 > 工具软件 > Synaptic.js > 使用案例 >

Propel: 由Node.js之父创建的JavaScript科学计算库

陈功
2023-12-01
\u0026#xD;

看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料!

\u0026#xD;
\u0026#xD;\u0026#xD;

Propel是一个新推出的JavaScript科学计算库,它使用图形处理器来支持JavaScript中的机器学习和科学计算。

\u0026#xD;\u0026#xD;

虽然机器学习默认使用Python开发,但是JavaScript的使用也越来越流行。Propel致力于缩短Python和JavaScript之间的计算差距。

\u0026#xD;\u0026#xD;

Propel提供了一种类似NumPy系统的工具。Ryan Dahl是Propel和Node.js的创始人,据他所说,“JavaScript是一种快速的,动态的语言。因此我们认为它可以作为所有语言开发者理想的工具。”

\u0026#xD;\u0026#xD;

从这一点来看,Dahl并不是孤军奋战。因为有很多其他项目,包括brain.js, ConvNetJS, deeplearn.js, math.js, mljs, Natural, Synaptic以及Webdnn, 它们都在尝试改善JavaScript中的科学计算和机器学习。

\u0026#xD;\u0026#xD;

Propel能够在多个环境中运行,但是由于性能原因,如果需进行密集型计算,更推荐使用Node.js。

\u0026#xD;\u0026#xD;

使用Propel需要依赖一些基础的技术。web版本的Propel需要调用到WebGL模型和deeplearn.js。Node.js版本的Propel需要调用TensorFlow的C语言API,并且支持多个图形处理器和TCP连接的定位。相比而言,web版本更多的用于演示或者直接计算。

\u0026#xD;\u0026#xD;

关于机器学习方面,Propel鼓励开发者在服务器端创建机器学习模型,然后快速部署到浏览器就可以看到一个神经网络的示例。

\u0026#xD;\u0026#xD;

Propel是用TypeScript编写的,同时推荐使用ts-node,因为它给TypeScript提供了运行环境,给Node.js提供了简单的交互环境。安装Propel非常简单,在Node.js中,执行以下命令行:

\u0026#xD;\u0026#xD;
\u0026#xD;npm install propel
\u0026#xD;\u0026#xD;

如果想要查看Node.js中的示例,执行以下命令行:

\u0026#xD;\u0026#xD;
\u0026#xD;npm install -g ts-node\u0026#xD;./tools/build.js\u0026#xD;ts-node ./example.ts
\u0026#xD;\u0026#xD;

在浏览器中加入以下优化的JavaScript包:

\u0026#xD;\u0026#xD;
\u0026#xD;\u0026lt;script src=\"https://unpkg.com/propel@3.1.0\"\u0026gt;\u0026lt;/script\u0026gt;
\u0026#xD;\u0026#xD;

如果想要在Node.js或者web项目的源码中加入Propel库,使用ES语法从Propel中导入相应的模块即可,例如:

\u0026#xD;\u0026#xD;
\u0026#xD;import { grad, linspace, plot } from \"propel\";
\u0026#xD;\u0026#xD;

作为一个新开发的库,Propel还不是很稳定。欢迎大家通过GitHub来帮助我们完善它。

\u0026#xD;\u0026#xD;

查看英文原文Propel: Scientific Computing JavaScript Library from Node.js Founder

\u0026#xD;\u0026#xD;

感谢冬雨对本文的审校。

\u0026#xD;\u0026#xD;

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

 类似资料: