【问题标题】:The usage of randomstate in Numpy related to seedNumpy中randomstate的使用与种子相关
【发布时间】:2016-01-17 12:45:19
【问题描述】:

我最近正在研究深度学习。在研究几个python脚本的过程中,我发现了这一行。

numpy_rng = numpy.random.RandomState(123)

我相信这个 RandomState 会为偏差和权重生成随机数 机器学习。

但我不知道什么时候称为“种子”的“123”数字。

我想知道种子到底是做什么的。

我可以写任何我喜欢的数字吗?完全取决于我吗?

还有,有没有一种方法可以打印生成的随机数 通过 RandomState?

【问题讨论】:

  • 是的,你可以使用任何你想要的种子。只是为了让生成器产生的伪随机在一次运行到另一次运行中是相同的,以获得可重现的结果。
  • 感谢您的评论。所以我写为“种子”的数字没有任何作用......我可以写 234,54354,1234234,2223 任何数字,这并不意味着什么,对吧?比如seed=123表示生成123个随机数什么的。
  • 您可以选择任何您喜欢的值,它甚至与您要生成的数字数量无关。这只是一个“起点”,以确保下次运行程序时,按此顺序输出相同的数字。

标签: python numpy random deep-learning


【解决方案1】:

这个种子意味着随机数生成器每轮都在同一个地方开始,这意味着结果从开始状态是完全确定的(即非随机的)。

通过不使用种子,NumPy 将生成一个随机数(我认为)填充seed,这意味着深度学习的结果是不确定的。在深度学习示例中,结果应该非常接近,但永远不会完全相同。

【讨论】:

  • 感谢您的评论。您的意思是,如果我将种子指定为“123”,那么每次运行脚本时生成的随机数都将相同?这就是你说“确定性”的原因?如果我不指定种子,那么每次我运行脚本时它(RandomState)都会给出不同的随机数,对吧?
  • 也就是说,据我了解,正确。设置种子意味着您生成的随机数每次都相同。为简化起见,想象一下您生成的 RNG:abcdefghijklmnopqrstuvwxyz。通过指定seed=2,您可以指定RNG 每次都从字母b 开始。如果让它随机初始化,它可以取任何值作为起点。这意味着您的 RNG 的结果始终是确定性的,因此是可重现的。
猜你喜欢
  • 2016-09-10
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
  • 2017-12-24
  • 1970-01-01
  • 2018-06-05
  • 2020-08-28
  • 2020-03-25
相关资源
最近更新 更多