def weight_variable(shape, l2_reg_lambda=None, l1_reg_lambda=None):
regularizer = None
if l2_reg_lambda:
regularizer = tf.contrib.layers.l2_regularizer(l2_reg_lambda)
elif l1_reg_lambda:
regularizer = tf.contrib.layers.l1_regularizer(l1_reg_lambda)
return tf.get_variable('weight', shape, initializer=tf.random_normal_initializer(stddev=0.1), regularizer=regularizer)
def bias_variable(shape):
return tf.get_variable('bias', shape, initializer=tf.constant_initializer(0.1))
def full_connect(inputs, num_units, activation=None, name='full_connect'):
with tf.variable_scope(name):
shape = [inputs.get_shape()[-1], num_units]
weight = weight_variable(shape)
bias = bias_variable(shape[-1])
outputs = tf.matmul(inputs, weight) + bias
if activation=="relu":
outputs = tf.nn.relu(outputs)
elif activation == "tanh":
outputs = tf.tanh(outputs)
elif activation == "sigmoid":
outputs = tf.nn.sigmoid(outputs)
return outputs
Ceci est ma couche de connexion complète. Et je l'utilise dans le graphique comme ça. Le poids, initialisé dans la variable weight_variable, s'initialisera-t-il à nouveau lorsque les données de lot suivantes entreront? Ou juste initialiser de la distribution normale aléatoire seulement à la première fois? Merci.Le poids s'initialisera-t-il à nouveau lorsque le lot suivant arrivera?
L'étape d'initialisation de variable doit cependant être explicite. –