`tf.set_random_seed()`等效于操作种子?

时间:2018-05-07 08:13:25

标签: python python-3.x tensorflow

标题几乎解释了一切。您是否知道tensorflow中的操作种子是否存在等效于tf.set_random_seed()的内容。我试图在定义为两个不同图形的两个精确NN处初始化完全相同的权重,因此我想知道是否有一种方法可以为所有操作全局设置操作种子,而不必为每个操作定义种子一个(在我的例子中,在NN的每一层的内核初始化器上 - > tf.glorot_uniform_initializer(seed=777))。

我一直在寻找它,但我的搜索失败了。有谁知道如何立即为图中的所有操作设置操作种子?谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

根据tf.set_random_seed()设置的文档,只有图表级别的种子才能实现您的目标:

  

如果设置了图级别种子,但操作种子不是:系统确定性地将操作种子与图级别种子一起选取,以便它获得唯一的随机序列。

     

要使所有操作生成的随机序列在会话中可重复,请设置图级别种子

但是你必须记得使用相同的种子单独调用两个图表tf.set_random_seed()

但这可能仍然无效,特别是如果图表在不同的设备上执行(我不确定)。确保两个图形使用相同初始化的安全选项可能只是初始化两个图形中的一个,然后只需将第二个中的变量设置为第一个中的值。