【发布时间】:2016-09-10 11:36:39
【问题描述】:
我已经阅读了文档,但我仍然很难理解使用的区别
numpy.random.RandomState(0)
或
numpy.random.seed(0)
他们不是都确保选择随机值的过程在运行中是相同且一致的吗?
【问题讨论】:
我已经阅读了文档,但我仍然很难理解使用的区别
numpy.random.RandomState(0)
或
numpy.random.seed(0)
他们不是都确保选择随机值的过程在运行中是相同且一致的吗?
【问题讨论】:
numpy.random.seed(0) 重置现有全局 RandomState 实例的状态,该实例是 numpy.random 命名空间中函数的基础。
numpy.random.RandomState(0) 返回一个新的种子 RandomState 实例,但不会改变任何内容。您必须使用返回的 RandomState 实例来获得一致的伪随机数。如果您使用 numpy.random 命名空间中的函数,您将无法获得一致的伪随机数,因为它们是从与您刚刚创建的实例不同的 RandomState 实例中提取的。
如果您关心可重复性,最好将代码结构化为传递 RandomState 实例。全球状态很烂。参考文献Consistenly create same random numpy array
【讨论】: