注意:Autograd 目前已停止维护,作者不打算回应未来的问题或拉取请求。寻求类似用户体验(带有强大附加功能)的人可以考虑使用 JAX,这是由同一批作者设计的 Autograd 的继任者。
Autograd
Autograd 可以自动微分原生 Python 和 Numpy 代码。它可以处理 Python 的大部分特性,包括循环、条件语句、递归和闭包,甚至可以对导数求导数。它支持反向模式微分(又称反向传播),这意味着它可以高效地计算标量值函数相对于数组值参数的梯度,同时也支持前向模式微分,两者可以任意组合。Autograd 的主要应用是基于梯度的优化。欲了解更多信息,请查看教程和示例目录。
使用示例:
[Python 代码示例]
我们可以继续求导多次,并使用 numpy 的标量值函数向量化来处理多个不同的输入值:
[Python 代码示例]
[图片]
完整代码请参见 tanh 示例文件。
文档
你可以在这里找到教程。
端到端示例
- 简单神经网络
- 卷积神经网络
- 循环神经网络
- LSTM
- 神经图灵机
- 通过流体模拟进行反向传播
[动图]
- 贝叶斯神经网络中的变分推断
- 高斯过程回归
- Sampyl,一个纯 Python MCMC 包,支持 HMC 和 NUTS
如何安装
使用 Pip 安装 Autograd:
[Shell 命令]
某些功能需要 SciPy,你可以单独安装或作为 Autograd 的可选依赖项一起安装:
[Shell 命令]
作者
Autograd 由 Dougal Maclaurin、David Duvenaud、Matt Johnson、Jamie Townsend 和许多其他贡献者编写。该软件包目前仍在维护,但不再积极开发。请随时提交任何错误或功能请求。我们也很乐意听到你使用 Autograd 的经验。给我们发送电子邮件吧!
我们要感谢 Jasper Snoek 和 HIPS 小组(由 Ryan P. Adams 教授领导)的其他成员提供的有益贡献和建议;感谢 Barak Pearlmutter 在自动微分方面的开创性工作以及对我们实现的指导;感谢 Analog Devices Inc.(Lyric Labs)和三星高级技术研究院的慷慨支持。