gpt4 book ai didi

python - Tensorflow:相同随机种子的不同结果

转载 作者:行者123 更新时间:2023-11-30 22:01:27 24 4
gpt4 key购买 nike

我正在健身房环境中运行强化学习程序(BipedalWalker-v2),该程序是在 tensorflow 中实现的。我已手动设置环境、tensorflow 和 numpy 的随机种子,如下

os.environ['PYTHONHASHSEED']=str(42)
random.seed(42)
np.random.seed(42)
tf.set_random_seed(42)

env = gym.make('BipedalWalker-v2')
env.seed(0)

config = tf.ConfigProto(intra_op_parallelism_threads=1, inter_op_parallelism_threads=1)
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)
# run the graph with sess

但是,每次运行程序(不更改任何代码)时都会得到不同的结果。为什么结果不一致?如果想得到相同的结果该怎么办?

<小时/>

更新:

我能想到的唯一可能引入随机性的地方(神经网络除外)是

  1. 我使用tf.truncated_normal生成随机噪声epsilon来实现噪声层
  2. 我使用 np.random.uniform 从重播缓冲区中随机选择样本

我还发现,前 10 集我得到的分数相当一致,但随后开始有所不同。其他诸如损失之类的事情也显示出类似的趋势,但在数字上并不相同。

更新2

我还设置了“PYTHONHASHSEED”并使用单线程CPU,如@jaypops96所述,但仍然无法重现结果。上述代码块中的代码已更新

最佳答案

我建议检查您的 TensorFlow 图是否包含不确定性操作。例如,TensorFlow 1.2 之前的 reduce_sum 就是这样一种操作。这些运算是不确定的,因为浮点加法和乘法是非关联的( float 相加或相乘的顺序会影响结果),而且此类运算不能保证每次都以相同的顺序对输入进行相加或相乘。另请参见 this question

编辑(2020 年 9 月 20 日):GitHub 存储库 framework-determinism 提供了有关机器学习框架(尤其是 TensorFlow)中不确定性来源的更多信息。

关于python - Tensorflow:相同随机种子的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54047654/

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