【问题标题】:tf.set_random_seed seems doesn't work, any better way to make tensorflow code reproducible?tf.set_random_seed 似乎不起作用,有什么更好的方法可以使 tensorflow 代码可重现?
【发布时间】:2018-04-03 18:46:42
【问题描述】:

我想重现我的结果,我使用以下几行来修复随机性
将 numpy 导入为 np np.random.seed(1) 将张量流导入为 tf tf.set_random_seed(1)

但每次运行我仍然得到不同的结果。知道如何解决吗?

【问题讨论】:

  • 您能否分享一个简短的示例程序,在该程序中您获得了不可重现的结果?

标签: tensorflow random-seed


【解决方案1】:

您还必须为每个使用随机数的操作设置种子。

Tensorflow 有两种不同的种子:图级种子和操作级 sedd。

例如,tf.truncated_normal 需要同时具有图形种子(您使用 tf.set_random_seed(1) 设置的)和操作种子(seed 参数),以便可重现。

【讨论】:

  • 感谢回复,但我还是一头雾水,不就是图的操作部分吗?在初始化图之前设置 tf.set_random_seed(1) 还不够?
  • Tensorflow 有 2 个不同的种子,因此只设置其中一个是不够的。对于每个使用随机数的操作,您必须同时设置图形级种子和操作级种子
  • 我也很困惑,TF 的文档说“要使所有操作生成的随机序列在会话中可重复,请设置图形级种子”。换句话说,只有当您没有设置图形种子时,您才需要设置操作种子。 github.com/tensorflow/tensorflow/blob/master/tensorflow/python/…
猜你喜欢
  • 2014-03-08
  • 1970-01-01
  • 1970-01-01
  • 2017-12-22
  • 2018-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-20
相关资源
最近更新 更多