import tensorflow as tf

        shapes = tf.shape(input_var)
        shapes = tf.stack([shapes[0],shapes[1]*self.strides[1],shapes[2]*self.strides[2],tf.shape(self.b)[0]])

        def _init():
            v_norm = tf.nn.l2_normalize(self.v,axis=[0,1,3])
            t = tf.nn.conv2d_transpose(input_var,v_norm,
                                       output_shape=shapes,
                                       strides=self.strides,
