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

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 来帮助我们完善它。

https://github.com/propelml/propel

原文发布于微信公众号 - 交互设计前端开发与后端程序设计(interaction_Designer)

原文发表时间:2018-04-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT大咖说

Elastic探秘:技术海洋里遗落的珍珠

内容来源:2018 年 06 月 30 日,Elastic工程师与布道师曾勇在“Elastic Meetup 南京交流会”进行的《Elastic探秘之遗落的珍珠...

1043
来自专栏北京马哥教育

让弹幕文明一点的Python屏蔽功能小实验

突然想到一个视频里面弹幕被和谐的一满屏的*号觉得很有趣,然后就想用python来试试写写看,结果还真玩出了点效果,思路是首先你得有一个脏话存放的仓库好到时候检测...

3055
来自专栏沈唁志

你认为该怎么样学习PHP?PHP成长之路

2785
来自专栏Crossin的编程教室

喜大普奔!Django官方文档终于出中文版了

之前对于 Django 的学习我一直推荐看官方文档,但不得不加上一句“如果你英语水平允许的话……”。现在总算是等来好日子了。各位想向网站/服务器开发方向进阶的同...

1561
来自专栏java达人

tryLock的一个使用示例

就算是有几年工作经验的,如果没有专业的训练,也不一定能写出一手线程安全的代码,对于一般的web开发而言,多线程相关的部分都封装在web server里了,而平时...

1945
来自专栏腾讯防水墙

以变制变 - 前端动态化代码保护方案探索

本文分享了腾讯防水墙团队关于机器对抗的动态化思路,希望能抛砖引玉,给现在正在做人机对抗的团队一些启发。

75318
来自专栏happyJared

Python + Selenium 自动发布文章(四):加入 bat 脚本

  这是本系列的第四篇文章,同时也是最后一篇。有关于Bat脚本和自动发布博客的内容,不太了解的可以先看看之前写的文章。这篇文章是介绍如何整合Bat脚本来一键自动...

1262
来自专栏IT大咖说

自动化测试的理想境界:AppCrawler自动遍历工具

内容来源:2017 年 6 月 24 日,TesterHome联合创始人黄延胜在“Testwo第一届测试分享沙龙”进行《App crawler自动遍历工具》演讲...

4873
来自专栏嵌入式程序猿

移植uIP开源协议栈需注意的几点

随着物联网的发展,越来越多的设备需要加入联网的功能,Uip是专为嵌入式设计的轻型开源TCP/IP协议栈,很小的代码尺寸,因为嵌入式控制器资源的限制,所以不是全功...

3789
来自专栏大数据和云计算技术

MongoDB系列12:MongoDB电子商务产品目录模型设计

本文是第12篇,主要讲述MongoDB电子商务产品目录模型设计实战操作,非常值得一看。

1453

扫码关注云+社区

领取腾讯云代金券