找回密码
 立即注册
首页 业界区 业界 一个纯净的自动微分框架—autograd

一个纯净的自动微分框架—autograd

更成痒 7 天前
技术背景

自动微分是一个在深度学习等计算领域非常常用的一个工具了,其核心原理就是基于链式法则的求导。但是如果只是为了使用一个自动微分的功能,不做深度学习的话,去安装一个庞大的深度学习框架,学习成本是很高的,尤其是在个别硬件环境下,配置还相当的复杂。如果只是想使用一个自动微分的功能,可以考虑本文所介绍的autograd自动微分计算框架。
autograd实例

autograd是一个基于numpy或者scipy接口的自动微分计算框架,使用cpu环境即可,安装也非常简单,直接使用pip install autograd即可完成环境部署。在使用方式上,跟普通的numpy模块的区别就是,此处的numpy函数要从autograd中进行导入,例如如下示例:
  1. from autograd import numpy as np
  2. from autograd import grad, elementwise_grad
  3. def f(x):
  4.     return 2 * x
  5. def f1(x):
  6.     return np.sum(2 * x)
  7. g = elementwise_grad(f)
  8. h = grad(f1)
  9. x = np.arange(10).astype(np.float32)
  10. print (g(x))
  11. print (h(x))
  12. # [2. 2. 2. 2. 2. 2. 2. 2. 2. 2.]
  13. # [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

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册