【问题标题】:TF_agents: Different results with same random seedTF_agents:具有相同随机种子的不同结果
【发布时间】:2021-05-24 03:53:04
【问题描述】:

我目前正在使用 tf_agents 库训练一个 dqn 和强化代理。尽管设置了以下随机种子,但我没有得到相同的结果:

random.seed(0),
tf.random.set_seed(0),
np.random.seed(0),
tf.compat.v1.set_random_seed(0),
tf.experimental.numpy.random.seed(0)

我的 py 环境只使用 numpy 生成随机数。所以我希望这真的有效。 我该怎么做才能获得可复制的结果?

(该问题已在 Github (https://github.com/tensorflow/agents/issues/366) 上提出但未解决。)

谢谢

【问题讨论】:

    标签: tensorflow


    【解决方案1】:

    从您的问题来看,您似乎只想一遍又一遍地生成相同的随机数。如果是这种情况,您可以尝试执行以下操作:

    seed = 0
    x = 5
    rnd = np.random.RandomState(seed)
    z = rnd.randn(x)
    

    您可以在 rnd 对象上调用 numy.random 中的一些其他方法,例如 rnd.ranom(x) 或 rnd.randint(x, y)。 如果你想获得关于 tensorflow 初始化的可复制结果,你可以为每一层指定一个初始化器,然后将种子作为参数。 例如:

    initializers.GlorotUniform(seed=4)
    

    这应该会导致每次初始化的权重都相同。

    【讨论】:

      猜你喜欢
      • 2019-05-31
      • 2011-06-13
      • 2016-09-16
      • 2018-03-05
      • 1970-01-01
      • 2016-06-03
      • 2018-07-02
      • 2018-06-04
      • 2018-07-01
      相关资源
      最近更新 更多