问题
我被randomness的Tensorflow文档弄糊涂了,因为它与^{
具体地说,我正在寻找一种方法来在不同的运行中保持确定性行为,这样每次运行程序时都可以获得相同的结果,但仍然希望在每个新的纪元处重新排列迭代器。在
代码片段
我将把这个问题概括起来,因为它涉及到整个文档,但我特别想知道为什么以下问题不起作用:
tf.set_random_seed(hparams.graph_seed)
...
dataset = dataset.shuffle(hparams.shuffle_buffer_size, hparams.shuffle_seed, reshuffle_each_iteration=True)
根据tf.Dataset.shuffle()
的文档,似乎这应该是我想要的;设置了graph seed
和{
问题是,它并不是每次初始化时都进行重组。我注意到这个possible duplicate,但是注意到Tensorflow自己的NMT Tutorial并没有像Github问题中建议的那样为种子使用占位符,而且每次都会得到无序的结果。也许这是因为它们没有调用tf.set_random_seed
?在
额外问题
如果tf.set_random_seed
只在与op-level
种子一起使用时产生确定性行为,那么tf.set_random_seed
的目的是什么?在
另外,tf.Dataset.shuffle()
中参数seed
的用途是什么?是操作级种子吗?这些应该如何正确使用?在
目前没有回答
相关问题 更多 >
编程相关推荐