我在 Stack Overflow 以及 Github 上阅读了很多关于这个主题的帖子,但我认为我的情况可能略有不同。
我的代码如下所示,如果我只使用密集层,我可以始终如一地重现结果 100%。
import numpy as np
import random as rn
import tensorflow as tf
import os
os.environ['PYTHONHASHSEED'] = '0'
np.random.seed(1)
rn.seed(2)
session_conf = tf.ConfigProto(intra_op_parallelism_threads=1, inter_op_parallelism_threads=1)
from tensorflow.keras import backend as K
tf.set_random_seed(3)
sess = tf.Session(graph=tf.get_default_graph(), config=session_conf)
K.set_session(sess)
但是,每次我运行时,如果我在“model.add(Flatten())”之前插入这一行“model.add(Conv2D(32, 3, activation='relu'))”,我会得到不同的结果。
Input> flatten > dense 产生一致的结果,但是 input > conv2d > flatten > dense 每次运行代码时都会产生不同的结果。
我会很感激任何指导。