在Tensorflow中,是否可以在会话级别设置种子?

时间:2019-03-14 12:35:04

标签: tensorflow random-seed binary-reproducibility

我试图在运行会话时获得可重复的结果,但希望在会话之间自由更改种子。 像这样:

a = tf.random_uniform([1])

#Set seed here to e.g. 123
with tf.Session() as sess:
   print(sess.run(a)) #Output: A1
   print(sess.run(a)) #Output: A2

#Set seed here to e.g. 42
with tf.Session() as sess:
   print(sess.run(a)) #Output: A3
   print(sess.run(a)) #Output: A4

#Set seed here to e.g. 123
with tf.Session() as sess:
   print(sess.run(a)) #Output: A1
   print(sess.run(a)) #Output: A2

如果我了解set_random_seed page correctly,则该方法似乎将种子设置在图级别,因此会话之间的结果将相同。实际上,根据该页面,似乎只能:

  • 使运行不可重复
  • 使单个操作具有可复制性,而不必在会话之间进行更改(通过直接设置操作的种子)
  • 使所有操作具有可重复性,而不必在会话之间进行更改(通过使用set_random_seed)

我无法找到任何方法来灵活地更改种子,而不必重建图。任何指向正确解决方案的指针将受到高度赞赏。

0 个答案:

没有答案