import tensorflow as tf

        bshape = [1, 1, 1, nf]
        bias_var_shape = [nf] if one_dim_bias else [1, nf, 1, 1]
        nin = x.get_shape()[channel_ax].value
        wshape = [rf, rf, nin, nf]
        with tf.variable_scope(scope):
            w = tf.get_variable(
                "w", wshape, initializer=self.ortho_init(init_scale))
            b = tf.get_variable(
                "b",
                bias_var_shape,
                initializer=tf.constant_initializer(0.0))
            if not one_dim_bias and data_format == 'NHWC':
                b = tf.reshape(b, bshape)
            return tf.nn.conv2d(
                x,
                w,
                strides=strides,
                padding=pad,
                data_format=data_format) + b

    def fc(self, x, scope, nh, *, init_scale=1.0, init_bias=0.0):
        with tf.variable_scope(scope):
            nin = x.get_shape()[1].value
            w = tf.get_variable(
