繁体   English   中英

scipy.optimize.least_squares确定性吗?

[英]Is scipy.optimize.least_squares deterministic?

我正在使用scipyoptimize.least_squares算法和设置初始条件,并且总是在我的计算机上得到相同的结果,但是我在任何其他计算机上尝试这个(所有这些都使用最新的Scipy,Python和颠簸的包以及相同的64位Ubuntu Linux),我在每台PC上得到不同的结果。 为什么是这样?

谢谢。

答案是肯定的。

正如您在文档中找到的那样,在optimize.least_squares实现了3种方法;

  1. 信赖域反射算法
  2. 具有矩形信任区域的狗腿算法
  3. Levenberg-Marquardt算法

所有这些都是迭代方法,从初始值(或向量)开始,逐步进入最小值。 如何确定此步骤与方法不同,但在所有方法中都是确定性的。
有关更多详细信息,您可以阅读此功能的开发人员撰写的此博客

我不确定为什么你会在每台PC上得到不同的结果,对不起。

默认情况下(如果diff_step=None ), optimize.least_squares使用与机器相关的步长来进行有限差分近似[1]。 对于特定的计算机,结果应该是确定性的,但在另一台计算机上可能会有所不同。

除非存在其他与机器相关的参数, diff_step手动设置diff_step应在不同的机器上产生相同的结果。

[1]请参阅scipy文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM