def METHOD_NAME(self, image, transformation=None, **kwargs):
    image = tf.expand_dims(image, axis=0)
    num_channels = tf.shape(image)[-1]
    blur_v, blur_h = transformation
    blur_h = tf.cast(
        tf.tile(blur_h, [1, 1, num_channels, 1]), dtype=self.compute_dtype
    )
    blur_v = tf.cast(
        tf.tile(blur_v, [1, 1, num_channels, 1]), dtype=self.compute_dtype
    )
    blurred = tf.nn.depthwise_conv2d(
        image, blur_h, strides=[1, 1, 1, 1], padding="SAME"
    )
    blurred = tf.nn.depthwise_conv2d(
        blurred, blur_v, strides=[1, 1, 1, 1], padding="SAME"
    )
    return tf.squeeze(blurred, axis=0)