'Initializes a Conv2D block.
Arguments:
depth: The output depth of the block (i.e., #filters)
filter_size: The size of the 2D filter. If it\'s specified as an integer,
it\'s going to create a square filter. Otherwise, this is a tuple
specifying the height x width of the filter.
strides: A tuple specifying the y and x stride.
padding: One of the valid padding modes allowed by tf.nn.conv2d, or
\'REFLECT\'/\'SYMMETRIC\' for mirror padding.
bias: An initializer for the bias, or a Bias class object. If None, there
will be no bias in this block. See BiasAdd block.
act: Optional activation function applied to the output.
initializer: Optional initializer for weights.
name: The name for this conv2d op.'

def __init__(self, depth, filter_size, strides, padding, bias=None, act=None, initializer=None, name=None):

    super(Conv2D, self).__init__(depth, filter_size, strides, padding, bias, act, conv=tf.nn.conv2d, name=name)
    with self._BlockScope():
        if (initializer is None):
            initializer = block_util.RsqrtInitializer(dims=(0, 1, 2))
        self._initializer = initializer
