尝试将 Maxcor 传递给 L-BFGS-B 最小化器时出现类型错误

TypeError while trying to pass Maxcor into L-BFGS-B minimizer

当我尝试在 L-BFGS-B 方法中指定 maxcor kwarg 时出现以下错误。优化线如下图,

minimizer_kwargs = {"method": "L-BFGS-B", "bounds": bounds, "maxcor": 190}
BH_result=optimize.basinhopping(obj_Basinhopping, initial_guess, minimizer_kwargs=minimizer_kwargs, accept_test=mybounds,callback=printx, disp=True)

我收到以下错误,

TypeError: minimize() got an unexpected keyword argument 'maxcor'

我很确定我在这里犯了一个愚蠢的错误。任何人都请帮助。

在您输入 minimizer_kwargs 的选项中,只有 methodbounds 实际上是 scipy.optimize.minimize 接受的参数。要使用 L-BFGS-B 方法的 maxcor 选项,您必须将其传递给 options 参数中的 minimize。即:

minimizer_kwargs = {"method": "L-BFGS-B",
                    "bounds": bounds,
                    "options": {"maxcor": 190}}