写点什么

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

  • 2018-03-15
  • 本文字数:1003 字

    阅读完需:约 3 分钟

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

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

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

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

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

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

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

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

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

复制代码
npm install propel

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

复制代码
npm install -g ts-node
./tools/build.js
ts-node ./example.ts

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

复制代码
<script src="https://unpkg.com/propel@3.1.0"></script>

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

复制代码
import { grad, linspace, plot } from "propel";

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

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


感谢冬雨对本文的审校。

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

2018-03-15 03:0011799

评论

发布
暂无评论
发现更多内容

MLOps RNN 卷积神经网络- 吴恩达Andrew Ng 论文等资料汇总 易筋 ARTS 打卡 Week 66

John(易筋)

ARTS 打卡计划

ES知识总结

十二万伏特皮卡丘

0x00 Go参考

Uasen_

看直播拿证书 | 12 天,0 基础晋级 Serverless 高手

阿里巴巴云原生

阿里云 Serverless 云原生 直播

linux之lscpu命令

入门小站

Linux

Prometheus 2.24.0 新特性

耳东@Erdong

release Prometheus 9月日更

Python 千猫图,简单技术满足你的收集控

梦想橡皮擦

9月日更

消息队列:发送消息实现

正向成长

RocketMQ

穿越时空,跟我一起探索云栖数字谷

阿里巴巴云原生

云栖大会

每个开发人员都应该知道的 JavaScript Web API

Regan Yue

JavaScript web api 9月日更

一个不错的投屏软件

IT蜗壳-Tango

9月日更

参数校验如何优雅的处理

卢卡多多

参数校验 9月日更

什么是操作型系统

奔向架构师

数据仓库 9月日更

手撸二叉树之二叉树的锯齿形层序遍历

HelloWorld杰少

9月日更

架构实战营第八模块作业

子豪sirius

架构实战营

那段记忆中的声音:单式评书再现江湖背后的AI技术

脑极体

Opus从入门到精通(七)Opus编码基础之认识声音

轻口味

android 音视频 9月日更

SpringMVC源码分析-HandlerAdapter(1)-初始化和简单实现

Brave

源码 springmvc 9月日更

给开发新人的信:学会深思熟虑

baiyutang

9月日更

JVM启动参数学习笔记二

风翱

JVM 9月日更

Vue进阶(幺贰贰):ES6 判断是否为空对象

No Silver Bullet

Vue 9月日更

【Flutter 专题】41 图解神秘的 SystemChrome

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9月日更

产品分析:解决什么问题?

石云升

产品经理 9月日更

JavaScript进阶(五)节流

Augus

JavaScript 9月日更

利用 Kotlin 协程提升应用性能

Changing Lin

9月日更

Canvas API 的基本用法

devpoint

html5 canvas 9月日更

网络攻防学习笔记 Day142

穿过生命散发芬芳

数据中心 9月日更

架构训练营模块三

yphust

在线将JS/JavaScript-Object转JSON工具

入门小站

工具

模块八作业

秀聪

架构实战营

手撸二叉树之从中序与后序遍历序列构造二叉树

HelloWorld杰少

9月日更

Propel: 由Node.js之父创建的JavaScript科学计算库_JavaScript_Dylan Schiemann_InfoQ精选文章