我试图在运行会话时获得可重复的结果,但想在会话之间自由更改种子。像这样的东西:
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)
我找不到任何方法来灵活更改种子而无需重建图形。任何指向正确解决方案的指针都将受到高度赞赏。