numpy.random.seed是否能使结果在不同计算机上固定?

4

我知道当你使用numpy.random.seed(0)时,每次在自己的电脑上得到的结果都是相同的。我想知道这是否也适用于不同的电脑和不同的numpy安装。


2
兼容性保证:使用相同参数的固定种子和固定的“RandomState”方法调用序列将始终产生相同的结果,直到舍入误差,除非值不正确。https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.random.RandomState.html#numpy.random.RandomState - Meri Khurshudyan
你在不同的电脑上尝试时发生了什么? 你从文档对这个主题的解释中没有理解的是什么? - Prune
1
@Prune 我还没有在不同的电脑上尝试过。我想知道我是否可以依赖它。文档总是指出,使用相同的种子将生成相同的数字,但我认为他们是指在同一台计算机+当前安装的numpy上。我没有看到在不同的计算机和不同的安装之间保证相同的保证。 - milad aghajohari
请在问题中包含您的研究以澄清观点。 - Prune
1个回答

3
这一切都取决于numpy随机函数内部实现的算法类型。在numpy中,是由伪随机数生成器 (PRNGs) 算法操作的。这意味着如果您提供相同的种子(即起始输入),您将获得相同的输出。如果您更改种子,您将获得不同的输出。因此,这种算法不依赖于系统。
但是对于真随机数生成器(TRNG)来说,它们通常依赖于某种专门的硬件,该硬件对环境中的某些不可预测性物质进行了一些物理测量,例如光线、温度、电噪声、放射性物质。因此,如果模块实现了这种算法,则它将依赖于系统。

你能否添加引用段落来源的链接?这是否意味着它在不同的计算机和不同的numpy安装中保证是相同的?我有点困惑。 - milad aghajohari
1
我在本地主机、服务器控制台和不同版本的Python虚拟机上执行了它,但结果都是相同的。我只是在你的回答上下文中区分PRNG和TRNG,以便你可以了解到底发生了什么。链接 - Davinder Singh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接