Python scipy.optimize.least_squares是确定性的吗?
我使用的是Python scipy.optimize.least_squares是确定性的吗?,python,scipy,deterministic,Python,Scipy,Deterministic,我使用的是scipy的优化。最小二乘法设置了初始条件,在我的计算机上总是得到相同的结果,但是如果我在任何其他计算机上尝试这个方法(都使用最新的scipy、Python和bumpy包以及相同的64位Ubuntu Linux),我在每台计算机上都会得到不同的结果。这是为什么 谢谢。答案是肯定的 正如你在网上看到的, 在优化上实现了3种方法 信赖域反射算法 具有矩形信赖域的dogleg算法 Levenberg-Marquardt算法 所有这些都是迭代方法,从初始值(或向量)开始,逐步到最小值。如何确定
scipy
的优化。最小二乘法设置了初始条件,在我的计算机上总是得到相同的结果,但是如果我在任何其他计算机上尝试这个方法(都使用最新的scipy、Python和bumpy包以及相同的64位Ubuntu Linux),我在每台计算机上都会得到不同的结果。这是为什么
谢谢。答案是肯定的
正如你在网上看到的,
在优化上实现了3种方法
信赖域反射算法
具有矩形信赖域的dogleg算法
Levenberg-Marquardt算法
所有这些都是迭代方法,从初始值(或向量)开始,逐步到最小值。如何确定该步骤因方法而异,但在所有方法中都是确定的。
有关更多详细信息,您可以阅读此函数的开发人员编写的
对不起,我不知道为什么在每台电脑上会得到不同的结果。默认情况下(如果diff\u step=None
),优化。最小二乘法使用与机器相关的步长进行有限差分近似[1]。对于一台特定的计算机,结果应该是确定的,但在另一台计算机上可能会有所不同
除非存在其他机器相关参数,否则手动设置diff_step
应在不同机器上产生相同的结果
[1] 查看。您是否找到原因?