簡體   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