如何将纯净的自动微分框架autograd成?

摘要:本文介绍了一个可以基于CPU和numpy的自动微分计算框架。如果只是需要使用自动微分计算的功能,就可以直接在CPU环境下简便的部署,快捷的完成环境搭建。
技术背景 自动微分是一个在深度学习等计算领域非常常用的一个工具了,其核心原理就是基于链式法则的求导。但是如果只是为了使用一个自动微分的功能,不做深度学习的话,去安装一个庞大的深度学习框架,学习成本是很高的,尤其是在个别硬件环境下,配置还相当的复杂。如果只是想使用一个自动微分的功能,可以考虑本文所介绍的autograd自动微分计算框架。 autograd实例 autograd是一个基于numpy或者scipy接口的自动微分计算框架,使用cpu环境即可,安装也非常简单,直接使用pip install autograd即可完成环境部署。在使用方式上,跟普通的numpy模块的区别就是,此处的numpy函数要从autograd中进行导入,例如如下示例: from autograd import numpy as np from autograd import grad, elementwise_grad def f(x): return 2 * x def f1(x): return np.sum(2 * x) g = elementwise_grad(f) h = grad(f1) x = np.arange(10).astype(np.float32) print (g(x)) print (h(x)) # [2. 2. 2. 2. 2. 2. 2. 2. 2. 2.] # [2. 2. 2. 2. 2. 2. 2. 2. 2. 2.] 这里我们用了一个非常简单的函数\(y=2x\)来进行测试,那么得到的预期结果应该是\(y'=2\),所以程序输出没有问题。当然,这里使用的是逐元素的求导,总体的求导就是把逐元素的求导相加。这就是一个简单的在cpu和numpy框架下进行自动微分计算的实例。 总结概要 本文介绍了一个可以基于CPU和numpy的自动微分计算框架。如果只是需要使用自动微分计算的功能,就可以直接在CPU环境下简便的部署,快捷的完成环境搭建。 版权声明 本文首发链接为:https://www.cnblogs.com/dechinphy/p/autograd-cpu.html 作者ID:DechinPhy 更多原著文章:https://www.cnblogs.com/dechinphy/ 请博主喝咖啡:https://www.cnblogs.com/dechinphy/gallery/image/379634.html