Python 在scipy optimize.minimize目标函数中传递参数(获取参数数量错误)

Python 在scipy optimize.minimize目标函数中传递参数(获取参数数量错误),python,scipy,optimization,Python,Scipy,Optimization,我试图使用scipy的optimizer.minimize函数,但我无法找出将参数传递给目标函数的确切方法。我有下面的代码,根据我的说法应该可以很好地工作,但在参数数量上给了我错误 result = minimize(compute_cost, x0, args=(parameter), method='COBYLA',constraints=cons, options={'maxiter':10000,'rhobeg':20}) 这是目标函数的函数签名:def compute\u cost(

我试图使用scipy的optimizer.minimize函数,但我无法找出将参数传递给目标函数的确切方法。我有下面的代码,根据我的说法应该可以很好地工作,但在参数数量上给了我错误

result = minimize(compute_cost, x0, args=(parameter), method='COBYLA',constraints=cons, options={'maxiter':10000,'rhobeg':20})
这是目标函数的函数签名:
def compute\u cost(x,参数)

参数
是具有51个键值对的dict

这会产生以下错误:

capi\u返回值为空
在cobyla用户例程中回调cb\U calcfc\U失败。
回溯(最近一次呼叫最后一次):
文件“C:\..\resource\u optimizer.py”,第138行,在
结果=最小化(计算成本,x0,参数=(参数),方法='COBYLA',约束=cons,选项={'maxiter':10000,'rhobeg':20})
文件“C:\Python27\lib\site packages\scipy\optimize\\u minimize.py”,第432行,在minimize中
return _minimize_cobyla(fun、x0、args、constraints、**选项)
文件“C:\Python27\lib\site packages\scipy\optimize\cobyla.py”,第246行,在\u minimize\u cobyla中
dinfo=info)
文件“C:\Python27\lib\site packages\scipy\optimize\cobyla.py”,第238行,在calcfc中
f=乐趣(x,*args)
TypeError:compute_cost()正好接受2个参数(给定52个)

有人能帮我解决这个问题吗

args=(参数)
更改为
args=(参数,)
,因此
args
是包含单个元素的元组

args=(参数)
相当于
args=parameter
。执行此操作时,
参数
的每个元素都作为单独的参数传递给目标函数