составление сводки для них по-прежнему является рутиной, но это то, что я придумал для доступа к gamma
и beta
:
def batch_norm(self, x_in):
with tf.variable_scope('batch_norm'):
x = tf.layers.batch_normalization( x_in,
momentum = self.bn_decay,
epsilon = self.bn_epsilon,
training = self.is_training)
gamma = tf.trainable_variables(tf.get_variable_scope().name)[0]
beta = tf.trainable_variables(tf.get_variable_scope().name)[1]
return x
tf.trainable_variables(tf.get_variable_scope().name)
возвращает все переменные в текущей области в виде списка. В этом случае есть две переменные, 0-ая - gamma
, а 1-ая - beta
, но это может измениться в другой реализации.
если вам нужны конкретные имена, используйте:
for var in tf.trainable_variables(tf.get_variable_scope().name):
print(var.name)