【问题标题】:Why is my model giving different result each time I train it?为什么每次训练我的模型都会给出不同的结果?
【发布时间】:2019-06-25 11:29:53
【问题描述】:

我的问题是为什么当我两次训练相同的算法时,每次训练它都会给出不同的结果? 是正常还是数据或代码有问题?

算法是deep deterministic policy gradient

【问题讨论】:

  • 您需要在问题中提供更多详细信息,包括代码 sn-ps 和数据示例。请参阅有关如何制作MCVE 的指南
  • 一般来说,大多数模型、平衡方法等都有一个随机种子,您可以将其设置为固定值以获得可重复的结果

标签: python tensorflow deep-learning reinforcement-learning


【解决方案1】:

这完全正常。数据和代码都没有问题。

算法可以初始化为随机状态,例如人工神经网络中的初始权重。 尝试设置 numpy 种子以获得结果可重复性,如下所示:

import numpy as np
np.random.seed(42)

通过here了解更多信息。

【讨论】:

【解决方案2】:

当您为模型初始化权重时,它们通常由您使用的任何东西随机初始化,很可能是 np.random.rand(),因此每次都会产生不同的结果。

如果您不想随机化权重,请使用 np.random.seed(10) 始终获得相同的结果。如果使用任何其他库,我确信有相同的命令。

编辑:我看到你使用了 tensorflow,在这种情况下:

tf.random.set_random_seed(10)

【讨论】:

  • 非常感谢您的回复。我有w_init=tf.random_uniform_initializer(-0.003,0.003)。我可以用tf.random.set_random_seed(10)替换它吗?
猜你喜欢
  • 1970-01-01
  • 2018-06-29
  • 2018-05-02
  • 1970-01-01
  • 1970-01-01
  • 2015-03-12
  • 2020-02-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多