脚本在不同的机器上返回不同的结果
Posted
技术标签:
【中文标题】脚本在不同的机器上返回不同的结果【英文标题】:Script returns different results on different machines 【发布时间】:2014-11-09 09:52:42 【问题描述】:我有 Python 脚本 - 简单的遗传算法。它从列表中生成随机序列(列表是使用 itertools 创建的),对其进行测试,改变最佳结果并生成更多随机结果。它在某些计算机上完美运行,但在其他计算机上却无法收敛。
我不能展示所有代码,但据我所知没有什么特别的。
使用的库:
import itertools
import numpy.random as random
import copy
从随机开始,我使用 randint,随机播放。
我尝试过的:
-
python random 和 numpy.random 之间的变化 - 没有变化。
检查版本 - 它不适用于 Python 2.7.6(到目前为止我测试过的)。所以我不认为 Python 版本是相关的。
我测试了 64 位和 32 位操作系统 - 它可以在 32 位 windows 7、32 位 Ubuntu、64 位 Ubuntu 上运行,但不能在另一个 32 位 Ubuntu 上运行!因此,操作系统似乎也不重要。
有人遇到过类似的问题吗?接下来要检查什么?
【问题讨论】:
【参考方案1】:很可能存在错误或数值问题,导致算法收敛于某些输入但不收敛于其他输入(或者,如果算法是不确定的,则取决于随机数生成器生成的值)。
尝试播种随机数生成器以使结果可重现。
【讨论】:
这让我意识到,这个问题不是随机数。以上是关于脚本在不同的机器上返回不同的结果的主要内容,如果未能解决你的问题,请参考以下文章
为啥 java.awt.Font.getStringBounds 在不同的机器上给出不同的结果?