如何使用自动签名包?

2024-06-09 16:40:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着做一件简单的事情:使用自动栅格获取渐变并进行渐变下降:

import tangent

def model(x):
    return a*x + b

def loss(x,y):
    return (y-model(x))**2.0

在得到输入输出对的损耗后,我想得到梯度与损耗的关系:

^{pr2}$

但是库教程并没有说明如何获得关于a或b的梯度,也就是参数,所以既没有autograd也没有切线。在


Tags: import参数modelreturn关系def教程tangent
1条回答
网友
1楼 · 发布于 2024-06-09 16:40:30

可以使用grad函数的第二个参数指定此参数:

def f(x,y):
    return x*x + x*y

f_x = grad(f,0) # derivative with respect to first argument
f_y = grad(f,1) # derivative with respect to second argument

print("f(2,3)   = ", f(2.0,3.0))
print("f_x(2,3) = ", f_x(2.0,3.0)) 
print("f_y(2,3) = ", f_y(2.0,3.0))

在你的例子中,“a”和“b”应该是损失函数的输入,损失函数将它们传递给模型,以便计算导数。在

我刚回答了一个类似的问题: Partial Derivative using Autograd

相关问题 更多 >