标签: python random parallel-processing joblib
我需要在使用Joblib并行的函数中生成随机数。但是,从核心生成的随机数完全相同。
目前,我通过为不同核心分配随机种子来解决问题。有没有简单的方法来解决这个问题?
答案 0 :(得分:2)
预计这是不幸的。
原因是joblib(基于标准的多处理Python工具)依赖于Unix下的分叉。分叉创建完全相同的过程,从而生成相同的伪随机数。
解决此问题的正确方法是将您为每个调用并行调用的函数传递给函数,例如随机生成的整数。然后在函数内部使用该种子来生成本地随机数生成。