栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何与子进程共享父进程的numpy随机状态?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何与子进程共享父进程的numpy随机状态?

即使您设法做到这一点,我也不认为它会做您想要的。一旦有多个进程并行地从同一个随机状态中拉出,就不再确定它们各自到达状态的顺序,这意味着您的运行实际上不会重复。可能有一些解决方法,但这似乎是一个不小的问题。

同时,有一个解决方案应同时解决您想要的问题和不确定性问题:

在生成子进程之前,请向RNG询问随机数,并将其传递给子进程。然后,孩子可以用该数字播种。然后,每个子代将具有与其他子代不同的随机序列,但是如果您使用固定种子重新运行整个应用程序,则每个子代将具有与同一子代相同的随机序列。

如果您的主流程执行了可能不确定地依赖于子流程执行的任何其他RNG工作,那么您将需要在提取任何其他随机数之前按顺序为所有子流程预先生成种子。


正如senderle在评论中指出的那样:如果您不需要多次不同的运行,而只需要进行一次固定运行,则甚至不需要从已播种的RNG中提取种子。只需使用一个从1开始的计数器,并为每个新进程递增它,并将其用作种子即可。我不知道这是否可以接受,但是如果可以接受,很难比这更简单。

正如Amir在评论中指出的那样:一种更好的方法是每次生成新进程时都绘制一个随机整数,并将该随机整数传递给新进程,以使用该整数设置numpy的随机种子。这个整数确实可以来自

np.random.randint()



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/610423.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号