import tensorflow as tf

            w = variable_with_weight_decay([n_in, output_dim], initializer, l2_strength)

            variable_summaries(w)

            if isinstance(bias, float):
                bias = tf.get_variable("biases", [output_dim], tf.float32, tf.constant_initializer(bias))

            variable_summaries(bias)

            output = tf.nn.bias_add(tf.matmul(x, w), bias)

            return output

    def _bn(self, name, x):
        with tf.variable_scope(name):
            moving_average_decay = 0.9
            decay = moving_average_decay

