2

我需要在使用 Joblib 并行的函数中生成随机数。但是,从内核生成的随机数是完全相同的。

目前我通过为不同的核心分配随机种子来解决这个问题。有什么简单的方法可以解决这个问题吗?

4

1 回答 1

2

这是意料之中的,虽然很不幸。

原因是 joblib(基于标准的多处理 Python 工具)依赖于 Unix 下的分叉。分叉创建完全相同的过程,因此产生相同的伪随机数。

解决此问题的正确方法是向您正在并行调用的函数传递每次调用的种子,例如随机生成的整数。然后在函数内部使用该种子来为本地随机数生成提供种子。

于 2015-10-20T08:58:16.450 回答