Scipy.optimize check_grad 函数给出 "Unknown keyword arguments: ['args']" 错误
Scipy.optimize check_grad function gives "Unknown keyword arguments: ['args']" error
我想用scipy.optimize.check_grad
来评估梯度的正确性。我指定
def func(x, a):
return x[0]**2 - 0.5 * x[1]**3 + a**2
def grad(x, a):
return [2 * x[0], -1.5 * x[1]**2 + 2*a]
from scipy.optimize import check_grad
a = 5
check_grad(func, grad, [1.5, -1.5], args = (a))
并得到错误
Unknown keyword arguments: ['args']
值得注意的参数在 help file 中列为参数。这应该行不通吗?
*args
只是将位置参数传递给 func
和 grad
函数。
您只想传递元参数 a
的值作为 x0
之后的参数。
def func(x, a, b):
return x[0]**2 - 0.5 * x[1]**3 + a**2 + b
def grad(x, a, b):
return [2 * x[0], -1.5 * x[1]**2 + 2*a + b]
from scipy.optimize import check_grad
a = 5
b = 10
check_grad(func, grad, [1.5, -1.5], a, b)
我想用scipy.optimize.check_grad
来评估梯度的正确性。我指定
def func(x, a):
return x[0]**2 - 0.5 * x[1]**3 + a**2
def grad(x, a):
return [2 * x[0], -1.5 * x[1]**2 + 2*a]
from scipy.optimize import check_grad
a = 5
check_grad(func, grad, [1.5, -1.5], args = (a))
并得到错误
Unknown keyword arguments: ['args']
值得注意的参数在 help file 中列为参数。这应该行不通吗?
*args
只是将位置参数传递给 func
和 grad
函数。
您只想传递元参数 a
的值作为 x0
之后的参数。
def func(x, a, b):
return x[0]**2 - 0.5 * x[1]**3 + a**2 + b
def grad(x, a, b):
return [2 * x[0], -1.5 * x[1]**2 + 2*a + b]
from scipy.optimize import check_grad
a = 5
b = 10
check_grad(func, grad, [1.5, -1.5], a, b)