您可以在Keras文档中找到答案:https://keras.io/getting-started/faq/#how-can-i-obtain-reproducible-
results-using-keras-during-development 。
简而言之,要绝对确保 在一台计算机/笔记本电脑的CPU上 使用python脚本可获得可重复的结果,则必须执行以下 *** 作:
- 将
PYTHONHASHSEED
环境变量设置为固定值 - 将
python
内置的伪随机数发生器设置为固定值 - 将
numpy
伪随机数发生器设置为固定值 - 将
tensorflow
伪随机数发生器设置为固定值 - 配置新的全局
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脚本正是因为与源代码上面我们在全球建立自己的伪随机生成的一个固定值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)