脚本在不同的机器上返回不同的结果

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】:

很可能存在错误或数值问题,导致算法收敛于某些输入但不收敛于其他输入(或者,如果算法是不确定的,则取决于随机数生成器生成的值)。

尝试播种随机数生成器以使结果可重现。

【讨论】:

这让我意识到,这个问题不是随机数。

以上是关于脚本在不同的机器上返回不同的结果的主要内容,如果未能解决你的问题,请参考以下文章

如何在不同的机器上设置芹菜工人?

Unpack() 在不同的机器上提供不同的结果

为啥 java.awt.Font.getStringBounds 在不同的机器上给出不同的结果?

相同的 Cypress 测试使用 Chrome 和 Electron 在不同的机器上报告不同的结果

Redis Lua 脚本解包返回不同的结果

从 phpmyadmin(好)和 PHP 脚本(坏)执行 sql 查询的不同结果