scipy 最小化 'numpy.ndarray' 对象不可调用
scipy minimize 'numpy.ndarray' object is not callable
我的一段代码有问题 运行。它的目的是通过 scipy.opimize 的带约束的最小化函数找到最小化函数的向量。
但是,我不断收到以下错误
line 495, in minimize
constraints, callback=callback, **options) line 378, in _minimize_slsqp
fx = func(x), line 292, in function_wrapper
return function(*(wrapper_args + args), TypeError: 'numpy.ndarray' object is not callable
我对自己做错了什么有点困惑。以下代码包含要最小化的函数和约束函数。
def constraint1(w):
goal = 1
for i in range(w.shape[0]):
goal - w[i]
return goal
def lasso_var(w, *args):
var = w.T.dot(args[0]).dot(w)+args[1]*sum(abs(w))
return var
con1 = {'type': 'eq', 'fun': constraint1}
from scipy.optimize import minimize
sol = minimize(lasso_var(w, *(train_sig, 5)),\
x0=w_equal,\
constraints=con1)
其中 w 是一个向量,train_sig 是一个矩阵。
非常感谢您提供的任何帮助。
您应该将函数本身传递给 minimize
,而不是计算值。
您的代码不是 minimal, complete and verifiable example。所以我不完全知道你的意图。但是就这样使用:
sol = minimize(lambda w: lasso_var(w, *(train_sig, 5)),
x0=w_equal,
constraints=con1)
我的一段代码有问题 运行。它的目的是通过 scipy.opimize 的带约束的最小化函数找到最小化函数的向量。
但是,我不断收到以下错误
line 495, in minimize
constraints, callback=callback, **options) line 378, in _minimize_slsqp
fx = func(x), line 292, in function_wrapper
return function(*(wrapper_args + args), TypeError: 'numpy.ndarray' object is not callable
我对自己做错了什么有点困惑。以下代码包含要最小化的函数和约束函数。
def constraint1(w):
goal = 1
for i in range(w.shape[0]):
goal - w[i]
return goal
def lasso_var(w, *args):
var = w.T.dot(args[0]).dot(w)+args[1]*sum(abs(w))
return var
con1 = {'type': 'eq', 'fun': constraint1}
from scipy.optimize import minimize
sol = minimize(lasso_var(w, *(train_sig, 5)),\
x0=w_equal,\
constraints=con1)
其中 w 是一个向量,train_sig 是一个矩阵。
非常感谢您提供的任何帮助。
您应该将函数本身传递给 minimize
,而不是计算值。
您的代码不是 minimal, complete and verifiable example。所以我不完全知道你的意图。但是就这样使用:
sol = minimize(lambda w: lasso_var(w, *(train_sig, 5)),
x0=w_equal,
constraints=con1)