class_docstr: Block for the initial feature downsampling.
  
  Attributes:
    input_shape: Tuple with the input shape i.e. (None, 512, 512, 3).
    out_dims: Integer tuple, number of filter in the first and second
      convolutions.
    norm_type: Object type of the norm to use.
code: def __init__(
      self, input_shape, out_dims, norm_type, kernel_regularizer
  ):
      super(InputDownsampleBlock, self).__init__(
          name="InputDownsampleBlock"
      )
      self.conv_block = network_cb.ConvolutionalBlock(
          7,
          out_dims[0],
          norm_type=norm_type,
          kernel_regularizer=kernel_regularizer,
          stride=2,
          input_shape=input_shape,
          padding="valid",
      )
  
      self.residual_block = network_cb.ResidualBlock(
          out_dims[1],
          norm_type,
          kernel_regularizer,
          stride=2,
          skip=True,
      )
  
imports: import gin
  import tensorflow
  from tensorflow_graphics.projects.points_to_3Dobjects.networks import networks
  import tensorflow_graphics.projects.points_to_3Dobjects.networks.custom_blocks
label_desc: Use image node_id 1 to create a new InputDownsampleBlock object from inherited base classes: tf.keras.layers with example: obj = InputDownsampleBlock(input_shape, out_dims, norm_type, kernel_regularizer)