import tensorflow as tf

                        use_bias=True):
            with tf.variable_scope(name) as scope:
                if scale > 1:
                    X = self.t_conv(name + '_upsample', X, filter, scale, scale, (not norm) and use_bias, "VALID", stddev)
                else:
                    X = self.t_conv(name + '_deconf', X, filter, f_size, 1, (not norm) and use_bias, "VALID", stddev)
                if norm == 'I':
                    X = tf.contrib.layers.instance_norm(X, scope=scope, reuse=reuse)
                elif norm == 'B':
                    X = tf.layers.batch_normalization(X, reuse=reuse, training=is_train, name=name)
                elif norm == 'G':
                    X = tf.contrib.layers.group_norm(X, groups=16, scope=scope, reuse=reuse)
                if dropout > 0.0:
                    X = tf.layers.dropout(X, dropout, training=is_train)
