gpt4 book ai didi

python - 随机数生成器在 tensorflow 1.0.1 和 0.12.1 之间有所不同

转载 作者:太空狗 更新时间:2023-10-29 20:29:02 39 4
gpt4 key购买 nike

我正在尝试升级到 tensorflow 1.0 版,但发现我无法重现我之前的输出,因为随机数生成器似乎有所不同。我需要能够重现我的结果,所以我总是将种子设置为一个常数值。

import tensorflow as tf

with tf.Graph().as_default():
tf.set_random_seed(1)
a = tf.get_variable('a', 1)

with tf.Session() as sess:
tf.global_variables_initializer().run()
print('TensorFlow version: {0}'.format(tf.__version__))
print(sess.run(a))

输出:

TensorFlow version: 0.12.1
[-0.39702964]

TensorFlow version: 1.0.1
[0.96574152]

我在 Windows x64 上运行 python v3.5.2。我在 Transitioning 文档中没有看到任何描述这种差异的内容。升级后有什么方法可以重现我之前的结果吗?

最佳答案

最有可能的罪魁祸首是在初始化程序创建的随机操作之前生成的操作数正在发生变化。如果您不设置每个操作的种子,TensorFlow 会根据随机操作的整数 id 选择一个种子,这只是在该点之前创建的操作数。如果您想通过设置显式种子来测试它,您可能必须手动覆盖传递给 tf.get_variable 的初始化程序。

一般来说,we don't promise random number consistency between different versions of TensorFlow .我们确实尝试记录它们何时发生变化,但这仅在您设置每个操作种子时才有用,因为我们不会尝试记录操作数何时发生变化。该链接的相关部分是

Random numbers: The specific random numbers computed by the random ops may change at any time: users should rely only on approximately correct distributions and statistical strength, not the specific bits computed. However, we will make changes to random bits rarely and ideally never for patch releases, and all such intended changes will be documented.

关于python - 随机数生成器在 tensorflow 1.0.1 和 0.12.1 之间有所不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43056553/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com