即使设置了随机种子,为什么在Keras中仍无法获得可重复的结果?

即使设置了随机种子,为什么在Keras中仍无法获得可重复的结果?,第1张

即使设置了随机种子,为什么在Keras中仍无法获得可重复的结果?

您可以在Keras文档中找到答案:https://keras.io/getting-started/faq/#how-can-i-obtain-reproducible-
results-using-keras-during-development 。

简而言之,要绝对确保 在一台计算机/笔记本电脑的CPU上 使用python脚本可获得可重复的结果,则必须执行以下 *** 作:

  1. PYTHONHASHSEED
    环境变量设置为固定
  2. python
    内置的伪随机数发生器设置为固定值
  3. numpy
    伪随机数发生器设置为固定值
  4. tensorflow
    伪随机数发生器设置为固定值
  5. 配置新的全局
    tensorflow
    会话

Keras
通过顶部的链接,我正在使用的源代码如下:

# Seed value# Apparently you may use different seed values at each stageseed_value= 0# 1. Set `PYTHONHASHSEED` environment variable at a fixed valueimport osos.environ['PYTHONHASHSEED']=str(seed_value)# 2. Set `python` built-in pseudo-random generator at a fixed valueimport randomrandom.seed(seed_value)# 3. Set `numpy` pseudo-random generator at a fixed valueimport numpy as npnp.random.seed(seed_value)# 4. Set the `tensorflow` pseudo-random generator at a fixed valueimport tensorflow as tftf.random.set_seed(seed_value)# for later versions: # tf.compat.v1.set_random_seed(seed_value)# 5. Configure a new global `tensorflow` sessionfrom keras import backend as Ksession_conf = tf.ConfigProto(intra_op_parallelism_threads=1, inter_op_parallelism_threads=1)sess = tf.Session(graph=tf.get_default_graph(), config=session_conf)K.set_session(sess)# for later versions:# session_conf = tf.compat.v1.ConfigProto(intra_op_parallelism_threads=1, inter_op_parallelism_threads=1)# sess = tf.compat.v1.Session(graph=tf.compat.v1.get_default_graph(), config=session_conf)# tf.compat.v1.keras.backend.set_session(sess)

这是不用说,你不必指定任何

seed
random_state
numpy
scikit-learn
tensorflow
/
keras
功能您正在使用您的python脚本正是因为与源代码上面我们在全球建立自己的伪随机生成的一个固定值。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5674181.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存