我正在運行嵌套優化代碼。相同的優化代碼不同的計算機上的不同結果
sp.optimize.minimize(fun=A, x0=D, method="SLSQP", bounds=(E), constraints=({'type':'eq','fun':constrains}), options={'disp': True, 'maxiter':100, 'ftol':1e-05})
sp.optimize.minimize(fun=B, x0=C, method="Nelder-Mead", options={'disp': True})
第一次最小化是函數B的一部分,所以它是第二次最小化中運行的一種。
而整個優化是基於數據,沒有涉及到隨機數。
我在兩臺不同的計算機上運行完全相同的代碼,得到完全不同的結果。
我已經安裝了不同版本的森蚺,但
SciPy的,numpy的,以及所使用的所有包具有相同的版本。
我真的不認爲操作系統將無關緊要,但一個是Windows 10(64位),另一種是Windows 8.1中(64位)
我試圖找出什麼可能導致此。
即使我沒有說明整個選項,如果兩臺電腦運行相同的代碼,不應該結果是相同的嗎?
或者是否有sp.optimize的任何選項,默認值設置爲不同於計算機到計算機?
PS。我正在看「eps」選項。這些計算機上的「eps」默認值有可能不同嗎?
Python版本有區別嗎? –
哦。你是對的。我錯過了這個......一個是Python 3.6.0,另一個是Python 3.6.1 它會導致差異嗎?我的意思是......這有點令人沮喪,因爲在一臺計算機上,它在3000次迭代中收斂,但在另一臺計算機上,直到7000次迭代才收斂。 – WKW
這兩個Python實例都是64位的嗎?這也可能是一個因素。檢查numpy數組在兩個實例上使用相同的'dtype'。 –