写点什么

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

评论

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

终于有一款组件可以全面超越Apache POI

葡萄城技术团队

前后端分离 服务端 GrapeCity Documents

故障的传播方式与隔离办法

Wales Kuo

选择适合自己的 OLAP 引擎

程序员小陶

大数据 开源 OLAP

Android10版本引发的生产故障及安全知识归纳

大刘

android https TLS 加解密

一杯茶的时间,上手 React 框架开发

图雀社区

Reac

猿灯塔-Phaser 使用介绍

猿灯塔

油管博主路透 3080Ti 参数、黄教主烤箱中拿出 DGX A100 预热发布会

神经星星

人工智能 互联网巨头 gpu 互联网 英伟达

AtomicStampedReference是怎样解决CAS的ABA问题

捉虫大师

Java

高仿瑞幸小程序 08 创建第一个云函数

曾伟@喵先森

小程序 微信小程序 大前端 移动

游戏夜读 | 关卡设计为什么难?

game1night

由纪念日想到杨德昌

Elizen

随笔 电影

前浪的经验:区块链软件,一定也要去中心化

WasmEdge

比特币 区块链 智能合约 以太坊 加密货币

全面解读信创行业 关注国产操作系统

统小信uos

操作系统

定在下午面试的那位候选人,说他不来了

Geek_6rptuk

团队管理 面试 简历优化 招聘

如何快速更改qcow2镜像文件

奔跑的菜鸟

云计算

什么是工作

史方远

随想 工作

全球经济动荡下,超流币逆袭而来!

极客编

ZigBee3.0 节点入网流程分析

taox

网络协议

Tomcat安全配置

wong

Tomccat security

Flink Weekly | 每周社区动态更新

Apache Flink

大数据 flink 流计算 实时计算

初探Electron,从入门到实践

葡萄城技术团队

大前端 Electron SpreadJS

原创 | 使用JUnit、AssertJ和Mockito编写单元测试和实践TDD (六)测试哪些内容:Right-BICEP

编程道与术

Java 编程 软件测试 TDD 单元测试

需求是被挖掘还是被创造出来的?

Neco.W

产品 互联网 需求

回顾经典,Netflix的推荐系统架构

王喆

人工智能 学习 推荐系统 netflix

线程通信知识点扫盲!

Simon郎

Java 后端 多线程

物联网技术栈之网关技术

老任物联网杂谈

物联网网关

我为什么要开启InfoQ写作

Nick

怀念小时候吗?

安静的下雪天

个人感想

ThreadLocal到底会不会内存泄漏?实战直接告诉你答案!

刘超

Java 多线程 ThreadLocal

谈谈控制感(3):让孩子更好地成长

史方远

心理学 控制感 教育

一文读懂阿里云通信的产品体系、技术架构与智能化应用场景实践

阿里云Edge Plus

人工智能 云通信 短信 语音 智能联络中心

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