您可以在Keras文档中找到答案
简而言之,要绝对确保使用一台计算机/笔记本电脑的CPU上的python脚本可获得可重复的结果,则必须执行以下操作:
- 将
PYTHONHASHSEED
环境变量设置为固定值 - 将
python
内置的伪随机数发生器设置为固定值 - 组
numpy
伪随机数发生器设置为固定值 - 组
tensorflow
伪随机数发生器设置为固定值 - 配置新的全局
tensorflow
会话
Keras
通过顶部的链接,我正在使用的源代码如下:
# Seed value
# Apparently you may use different seed values at each stage
seed_value= 0
# 1. Set `PYTHONHASHSEED` environment variable at a fixed value
import os
os.environ['PYTHONHASHSEED']=str(seed_value)
# 2. Set `python` built-in pseudo-random generator at a fixed value
import random
random.seed(seed_value)
# 3. Set `numpy` pseudo-random generator at a fixed value
import numpy as np
np.random.seed(seed_value)
# 4. Set `tensorflow` pseudo-random generator at a fixed value
import tensorflow as tf
tf.set_random_seed(seed_value)
# 5. Configure a new global `tensorflow` session
from keras import backend as K
session_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)