我正在运行嵌套优化代码。相同的优化代码不同的计算机上的不同结果
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'。 –