Propel 项目改为基于 TensorFlow.js

  • Dylan Schiemann
  • 盖磊

2018 年 5 月 27 日

话题:JavaScriptNode.js语言 & 开发架构AI

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

Propel项目给出一种科学计算和机器学习 JavaScript 库。近期,该项目宣布改变研发方向。Propel 最初致力于扩展 TensorFlow 的 deeplearn.js 和 C 语言实现。但在 2018 年 3 月Propel 首次发布后数星期,Google 就发布了 Tensorflow.js。Tensorflow.js 是由 Google 发布的 Javascript 库 deeplearn.js 演化而来。

考虑到 Tensorflow.js 和 Propel 两者在底层方法上的相似性,Propel 项目团队迅速认识到,归并到同一共享平台是一种更好的做法:

TensorFlow.js(TFJS)近期发布。它设计良好,为后向传播(backprop)提供了自动微分(autograd)风格的接口,并将努力实现对 Node 的支持。这也符合我们的要求。追求两者的齐头并进会适得其反。因此,我们放弃了自己的后向传播实现、与 TF C 的绑定,以及构成 Propel 库基础的 TF/DL 桥。我们打算基于 TFJS 重新设计我们的工作。

由此,当前 Propel 项目正在重启。Propel 网站已不再提供服务以及使用 Propel 例子,并且在团队努力确定新方向期间,在过去几周内项目面向公众的活动一直很少:

我们的高层目标依然是实现用于 JavaScript 科学计算的高效工作流。基于 TFJS 构建,使我们得以聚焦于高层功能。

类似于 Propel 最初的早期工作,TensorFlow.js 也使用 WebGL 实现受 GPU 支持的数值计算。据 TensorFlow.js 团队介绍,现在 TensorFlow.js 提供了对 Node.js 的支持:

是的!我们近期发布了 TensorFlow 对 Node.js 的绑定。这使得同一 JavaScript 代码可工作于浏览器和 Node.js 中,同时绑定到节点中底层的 TensorFlow C 语言实现。你可以通过 GitHub 追踪项目的进展,并试用 NPM 软件包。

作为 TensorFlow.js 发布的一部分,deeplearn.js 软件库已成为 TensorFlow.js 的核心库(Core)。在核心库之外,TensorFlow.js 还添加了一个构建机器学习模型和工具的 Layers API,支持自动移植 TensorFlow SavedModel 格式和 Keras HDF5 格式的模型。

Propel 和 TensorFlow.js 项目均采用 Apache 2.0 许可开源。鼓励开发人员通过TensorFlow.jsPropel的 GitHub 代码库做出贡献。

查看英文原文: Propel Shifts Plans to Leverage TensorFlow.js

JavaScriptNode.js语言 & 开发架构AI