3

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

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 页面,该方法似乎在图形级别设置种子,因此会话之间的结果将是相同的。事实上,根据该页面,似乎只能:

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

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

4

0 回答 0