我有一个非常奇怪的问题,我在不同的机器上获得相同代码和相同数据的不同结果。
我有一个基于numpy/scipy/sklearn
的python代码,我使用anaconda
作为我的基本python发行版。即使我将整个项目目录(包括所有数据和代码)从我的主机复制到另一台机器并运行它,我得到的结果也不同。具体来说,我正在进行分类任务,我的准确度差异达到3%。我在两台机器上使用相同版本的python和anaconda。我的主机是ubuntu 16.04,其上的结果低于我尝试过的各种操作系统的其他几台机器(OSX,ubuntu 14.04和Centos)。因此,我当前的系统配置应该有问题,因为所有其他机器都显示一致的结果。由于我的anaconda版本在所有机器中都是一致的,我不知道还有什么问题。任何想法我还应该检查什么或可能是问题的根源?
我也从头开始删除并重新安装了anaconda,但它没有帮助。
答案 0 :(得分:1)
如果您的代码使用线性代数,请检查它。通常,舍入误差不是确定性的,如果你有严格条件的矩阵,它就可以了。
答案 1 :(得分:1)
我遇到了类似的问题,我找到了this discussion。可能问题在于MKL(Intel Math Kernel Library)浮点运算默认是非确定性的。所以export MKL_CBWR=AUTO
可以解决问题。