\u0026#xD;\u0026#xD;\u0026#xD;看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料!
\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)关注我们。