【问题标题】:scipy optimize - View steps during procedurescipy optimize - 查看过程中的步骤
【发布时间】:2017-10-12 06:32:17
【问题描述】:

我正在使用 scipy.optimize 库中的 minimize 函数。 有没有办法在优化过程期间打印一些值?当前 x、目标函数值、迭代次数和梯度评估次数等值。

我知道有一些选项可以保存这些值并在优化结束后返回它们。但是我可以在每一步看到它们吗?

【问题讨论】:

  • 是的,通过定义回调。这对 x 来说是微不足道的,但对于其他两个用例,您应该包装这些函数(手动计数)并可能缓存 obj。 (你必须决定 disp 是否足够你;它可能很大程度上取决于最小化器的详细程度)
  • 就是这样!我没有注意文档中的那个选项。谢谢!

标签: python optimization scipy


【解决方案1】:

minimize 函数将 options 字典作为关键字参数。此 dict 的接受键包括 disp,应设置为 True 以打印最小化进度。

【讨论】:

  • 我将disp 选项设置为True。它只显示程序完成后的输出,而不是程序期间的输出。
  • 那我不知道你说的“过程中”是什么意思。这应该在求解器的每个步骤中打印出有关目标、梯度等的信息。您想在每次功能评估时获得这些信息吗?
  • 我认为您理解正确。确实是在每次迭代中,但 disp 选项不会这样做。 @sascha 告诉我callback 选项,它在每一步都给了我x 的值。感谢您的帮助!
猜你喜欢
  • 2010-10-22
  • 2014-05-17
  • 1970-01-01
  • 2020-01-11
  • 2021-12-18
  • 2017-11-09
  • 1970-01-01
  • 2020-07-24
  • 1970-01-01
相关资源
最近更新 更多