import tensorflow as tf

        x_aug = tf.nn.separable_conv2d(tf.expand_dims(tf.pad(x,self.paddings,'SYMMETRIC'), 0), self.kernel, self.pointwise_filter,strides=[1, 1, 1, 1], padding='VALID')
        x_aug = tf.squeeze(x_aug)
        return tf.concat([x, x_aug],axis=2)


    def high_low_pass(self,x):
        x_low = tf.nn.separable_conv2d(tf.expand_dims(tf.pad(x,self.paddings,'SYMMETRIC'), 0), self.kernel, self.pointwise_filter,strides=[1, 1, 1, 1], padding='VALID')
        x_low = tf.squeeze(x_low)
        x_high = x - x_low
        return tf.concat([x, x_high, x_low],axis=2)

    def no_op(self,x):
        return x

