【问题标题】:print chosen method of scipy.optimize.minimize打印选择的 scipy.optimize.minimize 方法
【发布时间】:2019-11-10 20:20:31
【问题描述】:

这是一个简短的问题,但谷歌每次都指向我找不到答案的文档。

我正在使用 scipy.optimize.minimize。它工作得很好,一切都很好。 我可以定义要使用的方法,但即使我不指定方法也可以使用。

有没有什么方法可以得到输出,使用了哪种方法?我知道结果类,但那里没有提到方法。

这是一个例子:

solution = opt.minimize(functitionTOminimize,initialGuess, \
                      constraints=cons,options={'disp':True,'verbose':2})
print(solution)

我可以将 value 方法设置为 slsqpcobyla,但我想看看程序选择了什么。我怎样才能得到这些信息?

【问题讨论】:

  • 请显示一些您目前尝试过的代码并提供minimal, reproducible example
  • 我觉得我的问题很基础,所以不需要给出可执行代码
  • 我问了一个例子,因为我假设你指的是目标函数,但现在我明白你的意思了,我希望我的回答能有所帮助。

标签: python scipy scipy-optimize scipy-optimize-minimize


【解决方案1】:

根据scipy-optimize-minimize-docs:如果未指定方法,则默认选择将是BFGS、L-BFGS-B、SLSQP 之一,具体取决于问题是否有约束或界限。要获取有关方法部署顺序的更多详细信息,您应该查看scipy-optimize-minimize-source-code-line-480。从源代码来看,顺序如下:

if method is None:
    # Select automatically
    if constraints:
        method = 'SLSQP'
    elif bounds is not None:
        method = 'L-BFGS-B'
    else:
        method = 'BFGS'

【讨论】:

  • 好吧,我不能打印了,我只知道自动选择了什么。
  • 您可以为此添加打印语句到本地scipy-optimize-minimize-source-file,或者使用算法知识并在主代码中打印method
猜你喜欢
  • 2020-03-14
  • 1970-01-01
  • 1970-01-01
  • 2018-01-24
  • 2013-11-08
  • 2018-11-26
  • 1970-01-01
  • 2022-01-15
  • 2013-02-05
相关资源
最近更新 更多