Propel 是一个使用 JavaScript 做可微分编程的机器学习框架,既能在 Node 中使用,又能在浏览器中使用。在这两种环境中,Propel 都能够使用 GPU 硬件进行加速计算。在浏览器中,它能通过 deeplearn.js 使用 WebGL ;在 Node 上,它能使用 TensorFlow 的 C API 。
Node 中使用:
npm install propel import { grad } from "propel";
浏览器中使用:
<script src="https://unpkg.com/propel@3.0.0"></script>
与 TensorFlow 不同的是,Propel 有一个命令式的 autograd 风格的 API 。运行过程中会随着追踪计算图 —— 一种通用的梯度函数提供反向传播的简洁接口。
import { grad, linspace, plot } from "propel"; f = x => x.tanh(); x = linspace(-4, 4, 200); plot(x, f(x), x, grad(f)(x), x, grad(grad(f))(x), x, grad(grad(grad(f)))(x), x, grad(grad(grad(grad(f))))(x))