如何解决为什么python多处理初始化相同的值?
这是一个例子
import multiprocessing
import numpy as np
def inner_function(idx,return_dic,N):
c = np.random.choice(N)
return_dic[idx] = c
if __name__ == '__main__':
manager = multiprocessing.Manager()
return_dic = manager.dict()
jobs = []
for index in range(10):
p = multiprocessing.Process(
target=inner_function,args=(index,10)
)
jobs.append(p)
p.start()
for proc in jobs:
proc.join()
print(return_dic)
结果将是相同的(例如,{0: 4,1: 4,2: 4,3: 4,4: 4,5: 4,6: 4,7: 4,8: 4,9 : 4})。如何用多处理器生成随机数?
编辑:问题已解决。如果我们想生成随机值,似乎 numpy 会以相同的方式对待多处理器。所以即使我们调用随机函数,我们也会得到相同的值。我们需要为每个处理器手动设置随机种子。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。