不使用Python库计算向量梯度

2024-10-02 22:33:20 发布

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

我试图找到函数的梯度

 f(x) = w1 * x1^2 + w2 * x2

其中x是向量坐标(x1,x2)

def gradient(w1, w2, x):
    x= (x1,x2)
    gradx1=2*w1*x1 + w2 * x2
    gradx2= w2 + w1 * x1^2
    return (gradx1, gradx2)

我的代码出现了一个nameError,在调用函数时说x1 is not defined

gradient(5, 6, (10,10))

Tags: 函数代码returndef向量w1梯度x1
2条回答

x是一个tuple,您需要像这样解包:

x1, x2 = x

而不是:

x = (x1, x2)

第一件事:

x1, x2 = x  # unpack your coord tuple

第二:

gradx2= w2 + w1 * x1 ** 2 # or gradx2= w2 + w1 * x1 * x1

在python中,{}是按位异或。求幂是**

相关问题 更多 >