首页 > 解决方案 > 如何从python中的函数计算梯度 - 元组IndexError?

问题描述

我正在寻找以下函数在点 x 处的渐变:

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

到目前为止我的代码:

def gradient(w1, w2, x):
   gradient = w1 * (x[0]**2) + w2 * (x[1]**2)
   return gradient 

但是,这不适用于以下例如

w1 = 5; w2 = 3; x = (1,)

我收到此错误:IndexError: tuple index out of range

这是否意味着我的指数之一是错误的?我认为一个元组只有两个索引 0 和 1。道歉 - 欣赏这可能是 av 基本问题。

标签: pythonmathtuplesgradient

解决方案


你发送两个值x = (v1,v2)作为元组。

尝试这个:

def gradient(w1, w2, x):
    gradient = w1 * (x[0]**2) + w2 * (x[1]**2)
    return gradient

w1 = 5; w2 = 3; x = (1,2)
print(gradient(w1,w2,x))
# 17

推荐阅读