我希望能够在TensorFlow中重现神经网络的训练课程。当我运行TensorFlow时,我假设它有一些rand状态,这使得它为变量选择一些特定的初始化。这就是我认为我最感兴趣的是复制。我想我可以成功地重现SGD步骤,因为我能够获得使我随机选择批次的numpy种子(参见this)。由于numpy的性质是有一个奇怪的元组来保持随机的出现,重新使用该状态在TensorFlow中制作种子对我来说还不清楚。是否有可能获得TensorFlow随机种子?
我确实阅读了the documentation of TensorFlow on random seeds的一些内容,似乎主要是说如何设置种子而不是阅读它们。这是否意味着从TensorFlow获取随机种子的最佳方法是要求计算机操作系统获取随机数?或者也许问python for a random seed什么时候运行?或者可能是那些加上当前时间或类似的东西的组合?
可能是这样的:
random.seed()
random_seed = random.getstate()
tf_set_random_seed(random_seed)
我决定这样做:
rand = int(os.urandom(64).encode('hex'), 16)
results['tf_rand_seed'] = rand
tf.set_random_seed(rand)
这是一个好主意吗?