写点什么

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

评论

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

在线CSS3压缩美化格式化

入门小站

工具

第三空间娱乐体验重构:AITO 问界 M5雕刻的七宝楼台

脑极体

北京大学董豪老师解密人工智能开发工具的过去与未来

OpenI启智社区

人工智能 开发工具 启智社区 北京大学

区块链正在塑造医疗保健生态系统!

CECBC

2022最新IntellJ IDEA的mall开发部署文档

北极的大企鹅

开源 部署与维护 开发者, MAll

深度关注 | 元宇宙如何改写人类社会生活

CECBC

Java 中的静态字段和静态方法

踏雪痕

Java 3月程序媛福利 3月月更

毕业总结

Geek_93ffb0

「架构实战营」

微博评论高性能高可用计算架构设计

Geek_36cc7c

好评不断的文化纪录片《中国》,背后的“剪刀手”竟是它?

百度大脑

Apache DolphinScheduler&ShenYu(Incubating)联合 Meetup,暖春 3 月与你相约!

白鲸开源

大数据 开源 工作流调度 Apache DolphinScheduler

Flutter 开发一个常用的登录界面

岛上码农

ios 移动端开发 3月月更 flutter开发 安卓开发

被动防御→积极防御,系统稳定性保障思路启发

TakinTalks稳定性社区

达观数据CTO 纪达麒:基于阿里云计算底座,打造智能办公机器人

阿里云弹性计算

机器人 神龙架构 智能办公

网易数帆Curve加入PolarDB开源数据库社区

阿里云数据库开源

数据库 阿里云 开源数据库 polarDB

Redis Pipeline原来是这么用的

Java工程师

数据库 程序员 代码 pipeline redis'

重新刷新你对Redis集群的理解

Java工程师

数据库 复制 数据共享 集群 redis'

在线JSON转HTML工具

入门小站

工具

如何用建木CI实现前端代码自动格式化

Jianmu

前端 代码管理 格式化 prettier 建木CI

Flash退出历史舞台后,Web端3D会迎来怎样的发展?

Orillusion

WebGL 3D渲染 3D模型 Flash webgpu

JVM自定义类加载器在代码扩展性的实践

Java工程师

JVM 代码 类加载器 实践 #java

程序员的工作就只有写代码么?

程序员鱼皮

经验

SpringBoot接入轻量级分布式日志框架(GrayLog)

Java工程师

程序员 分布式 Web spring-boot

网易会议开源之桌面端篇

网易云信

开源

Rust的迭代器

Shine

rust 迭代器

国际自主智能机器人大赛强势来袭,NAACL同声传译任务等你来战

百度大脑

Linux之alias命令

入门小站

Linux

全球央行积极推进CBDC 俄罗斯制裁或成催化剂?

CECBC

Hoo虎符研究院 ∣ 投资前沿——STARKNET 生态一览 (2022.3.18)

区块链前沿News

虎符研究院

失败案例之安全抓包测试

网络安全学海

网络安全 信息安全 渗透测试 安全漏洞 网络抓包

调查:区块链游戏玩家将玩NFT游戏视为一份潜在的全职工作

CECBC

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