【问题标题】:The usage of np.random.seed when we change its value [duplicate]当我们改变 np.random.seed 的值时的用法[重复]
【发布时间】:2018-07-30 23:25:36
【问题描述】:

根据What does numpy.random.seed(0) do?,我们了解了这段代码的使用概念。

但是,我们如何理解什么值适合种子? 例如,在http://emcee.readthedocs.io/en/latest/tutorials/line/ 中,我们可以看到值(123)(42)np.random.seed(123)np.random.seed(42)。 是基于特定的原则吗?这个问题是一个重要的原因,在许多代码中,如果我们改变种子的值,输出将是错误的,我们有另一个答案不是我们所期望的!

感谢您的帮助和关注。

【问题讨论】:

  • 它只是任意已知的选择值,以防您以后需要复制相同的数字序列(使用相同的种子)
  • @sshashank124 谢谢,你的意思是这个123和42是实验得到的?我们必须相信它?
  • 不,编写代码的人只是选择了那个值
  • 选择的数字是任意的。这只是为了保证如果您将来使用相同的号码。您将获得相同的伪随机值序列。那是种子的属性。种子的任何值都将以这种方式起作用。 42 和 123 在这个或任何其他上下文中没有什么特别的
  • @sshashank124 是的,当然,感谢您的回答。你的状态是真的。但我认为作者选择这些数字是为了获得接近初始点的答案。因为如果我们选择 120 而不是 123,那么输出将是错误的,42 也是如此。感谢您的帮助。

标签: python numpy random seed


【解决方案1】:

emcee 文章中建议的值可能是双关语(尤其是 42;see)。如果随机生成器提供了足够好的伪随机值,您几乎可以在其周期范围内取任意数字作为开始,并且您获得的“随机性”的质量应该没有特别的差异。当然(与密码一样)人们会采用一些比其他值更常见的值(例如 123、42、1234 等)。这些都是最好避免的。

【讨论】:

    猜你喜欢
    • 2017-02-25
    • 2019-02-12
    • 1970-01-01
    • 2020-10-03
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    相关资源
    最近更新 更多