写点什么

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:0010829

评论

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

【得物技术】基于配置的通用化动态报表平台设计与使用

得物技术

设计 动态 报表 平台 通用化

详解C/C++协程实现原理及使用

赖猫

c++ 协程

架构师训练营第 1 期 -week13

习习

沪上首座“区块链生态谷”揭开面纱!

CECBC

大数据 生态产业

我不喜欢挫折教育

熊斌

成长 自我思考 自我独白 个体成长

请回答2020:芯片巨头并购潮究竟意味着什么?

脑极体

JVM垃圾回收性能分析

积极&丧

第四周命题作业

cc

第四周学习心得

cc

原创 | 使用JPA实现DDD持久化-通过Spring Data JPA访问数据

编程道与术

Java hibernate 编程 mybatis jpa

“九章”问世,量子计算将如何影响区块链技术?

CECBC

量子计算机

滴滴开源Super-jacoco:java代码覆盖率收集平台

滴滴技术

Java 开源 滴滴开源 Super-Jacoco

基于区块链的政务平台设计探索

华为云开发者联盟

区块链 架构 安全

朱嘉明:产业周期、科技周期与金融周期的失衡

CECBC

金融 科技

点燃“云+AI”的烽火,照亮网络安全的月之暗面

脑极体

原创 | 使用JPA实现DDD持久化-启动JPA程序+通过JPA原生API访问数据

编程道与术

Java hibernate 编程 mybatis jpa

工作多年还是只会用wait和notify?30分钟用案例告诉你有更好得选择

小Q

Java 学习 编程 架构 面试

微服务架构及其技术栈

飞鸟

微服务 Spring Cloud spring cloud alibaba

终于有人把性能优化讲清楚了!阿里架构师推荐的Java性能权威指南可太强了

Java架构之路

Java 程序员 架构 面试 编程语言

架构2期第八周作业(1)

浮生一梦

极客大学架构师训练营 2组 第八周作业

架构师训练营第十三周作业

月殇

极客大学架构师训练营

算法爱好者福利—拓扑排序的简介及实现

比伯

Java 编程 架构 程序人生 算法

90分钟10个手写案例,从源码底层给你讲解7种线程池创建方式

小Q

学习 源码 架构 面试 多线程

如何让组织文化不在虚无?

Alan

团队管理 个人提升 文化 28天写作

架构师训练营 1 期 -- 第十三周作业

曾彪彪

极客大学架构师训练营

一周信创舆情观察(12.7~12.13)

统小信uos

架构师训练营第四周命题作业

Geek_xq

牛啤了!字节跳动Java岗面试官把内部面试题(含答案)泄露了,明年金三银四有望了

面试 算法 架构师

Java程序员还没有掌握SpringBoot?这一份文档你真应该好好学学!

Java架构之路

Java 程序员 架构 面试 编程语言

盘点 2020 | 感悟总结

idonkeyliu

盘点2020

极客大学架构师训练营 - 同城快递业务架构设计

好吃不贵

极客大学架构师训练营

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