打印选择的 scipy.optimize.minimize 方法
Posted
技术标签:
【中文标题】打印选择的 scipy.optimize.minimize 方法【英文标题】:print chosen method of 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 方法设置为 slsqp
或 cobyla
,但我想看看程序选择了什么。我怎样才能得到这些信息?
【问题讨论】:
请显示一些您目前尝试过的代码并提供minimal, reproducible example。 我觉得我的问题很基础,所以不需要给出可执行代码 我问了一个例子,因为我假设你指的是目标函数,但现在我明白你的意思了,我希望我的回答能有所帮助。 【参考方案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
。以上是关于打印选择的 scipy.optimize.minimize 方法的主要内容,如果未能解决你的问题,请参考以下文章