В настоящее время я тренирую convolutional neural network
, используя conv2D layer
, определенный следующим образом:
conv1 = tf.keras.layers.Conv2D(filters=64, kernel_size=(3,3), padding='SAME', activation='relu')(inputs)
Насколько я понимаю, по умолчанию для kernel_initializer установлено значение glorot_uniform
, в котором по умолчанию используется начальное значение none. :
tf.keras.layers.Conv2D(
filters, kernel_size, strides=(1, 1), padding='valid', data_format=None,
dilation_rate=(1, 1), activation=None, use_bias=True,
kernel_initializer='glorot_uniform', bias_initializer='zeros',
kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None,
kernel_constraint=None, bias_constraint=None, **kwargs
)
tf.compat.v1.keras.initializers.glorot_uniform(seed=None, dtype=tf.dtypes.float32)
Я пытаюсь создать воспроизводимый код и уже установил случайные начальные числа согласно этому сообщению StackOverflow :
seed_num = 1
os.environ['PYTHONHASHSEED'] = '0'
np.random.seed(seed_num)
rn.seed(seed_num)
session_conf = tf.compat.v1.ConfigProto(intra_op_parallelism_threads=1, inter_op_parallelism_threads=1)
tf.random.set_seed(seed_num)
sess = tf.compat.v1.Session(graph=tf.compat.v1.get_default_graph(), config=session_conf)
K.set_session(sess)
Это tf.random.set_seed
номер семени, используемый glorot_uniform
в пределах conv2D layer
? Если нет, как это семя будет определено при определении conv2D layer
?