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

为什么在并行运行时numpy随机种子不能保持固定,但是RandomState是?

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

为什么在并行运行时numpy随机种子不能保持固定,但是RandomState是?

numpy.random.*
由于 比赛条件,
您获得的结果正在发生。
numpy.random.*
仅使用一个在所有线程之间共享的全局PRNG,而无需同步。由于线程同时并行运行,并且它们对全局PRNG的访问未在它们之间同步,因此它们都竞相访问PRNG状态(因此PRNG的状态可能在其他线程的支持下改变)。为每个线程提供自己的PRNG(
RandomState
)解决了此问题,因为不再有任何状态在不同步的情况下被多个线程共享。


由于您使用的是NumPy 1.17,因此您应该知道还有更好的选择:NumPy
1.17引入了新的随机数生成系统;它使用诸如PCG之类的所谓
位生成器 ,以及诸如new之类的 随机生成器

numpy.random.Generator


这是一项更改RNG政策的建议的结果,该政策指出

numpy.random.*
通常不应再使用功能。这尤其是因为
numpy.random.*
在全局状态下运行。

NumPy文档现在具有有关以下内容的详细信息:

  • 并行播种RNG,以及
  • 多线程RNG,

在新的RNG系统中。另请参阅我的文章中的“非加密PRNG的种子生成”,其中包含有关RNG选择的一般建议。



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

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

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