docstr: returns a tensorflow conv2d layer
  :param input_layer: previous layer
  :param name: layer name
  :return: conv2d layer
docstr_tok: ["returns","a","tensorflow","conv2d","layer",":","param","input_layer",":","previous","layer",":","param","name",":","layer","name",":","return",":","conv2d","layer"]
code: def __call__(
      self,
      input_layer,
      name: str = None,
      is_training=None,
      kernel_initializer=None,
  ):
      """
      returns a tensorflow conv2d layer
      :param input_layer: previous layer
      :param name: layer name
      :return: conv2d layer
      """
      return tf.layers.conv2d(
          input_layer,
          filters=self.num_filters,
          kernel_size=self.kernel_size,
          strides=self.strides,
          data_format="channels_last",
          name=name,
          kernel_initializer=kernel_initializer,
      )
  
imports: import math
  from types import FunctionType
  import tensorflow
  from rl_coach.architectures import layers
  from rl_coach.architectures.tensorflow_components import utils
label_desc: Use image node_id 2 for calling the Conv2d obj's underlying member method code with example usage: obj.__call__(input_layer, name, is_training, kernel_initializer) and returns: tf