python - 如何从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 基本问题。
解决方案
你发送两个值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
推荐阅读
- javascript - C++ - 实现 JS 的 setTimeout 的现代方式
- c# - 如何在 C# 字符串中编写 json 格式?
- api - 创建需要将错误 500 内部服务器页面重定向到自定义页面的扩展
- git - laravel.log 预接收钩子被拒绝
- ansible - Ansible RBAC 模块
- ionic-framework - 离子2发球错误
- django - 通过 self 访问相关对象是否会命中 Django 中的数据库?
- python - 在django中按字符串过滤
- c# - WCF 自定义绑定相互证书不断收到“请求消息必须受到保护”错误
- r - 创建新列以显示 dplyr 中字符串之间的部分匹配