繁体   English   中英

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 ,而不是评估值。

您的代码不是一个简单,完整且可验证的示例 所以我不完全知道你的意图。 但是只是这样使用:

sol = minimize(lambda w: lasso_var(w, *(train_sig, 5)),
        x0=w_equal,
       constraints=con1) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM