autograd

自动微分

下面用反正切函数作为例子:

import autograd.numpy as np
from autograd import value_and_grad 
import matplotlib.pyplot as plt

g = lambda w: np.tanh(w)
w=np.linspace(-5,5,20)
c = g(w)
plt.plot(c)
plt.show

在这里插入图片描述

dgdw = value_and_grad(g)
# evaluate the gradient function at a point
w_val = 1.0
print (dgdw(w_val))

输出:(0.76159415595576485, 0.41997434161402608)
第一个为函数g在1.0的值,第二个为该函数在1.0的梯度

下面测试多个输入的情况:
dgdw([-1,1,2,3])
Out[50]: 
(array([-0.76159416,  0.76159416,  0.96402758,  0.99505475]),
 array([ 0.41997434,  0.41997434,  0.07065082,  0.00986604]))

可见输出两个array,第一个为函数值,第二个为梯度值,对应着其名字:value_and_grad.

参考

  1. https://jermwatt.github.io/machine_learning_refined/notes/3_First_order_methods/3_5_Automatic.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值