class_docstr: Block that creates recursively the Encode-Decoder structure of one Hourglass.
  
  Attributes:
    depth: Integer, depth of the encoder
    features_dims: Integer list, feature dimensions in each depth.
    blocks_per_stage: Integer list, number of residual blocks in each stage.
    norm_type: Object type of the norm to use.
code: def call(self, inputs, **kwargs):
      x = inputs
      for block in self.encoder_block1:
          x = block(x)
      x_s = inputs
      for block in self.encoder_block2:
          x_s = block(x_s)
      for block in self.inner_block:
          x_s = block(x_s)
      for block in self.decoder_block:
          x_s = block(x_s)
      x_s = self.upsample(x_s)
      merge_features = self.merge_features([x, x_s])
      return merge_features
  
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 4 for calling the EncoderDecoderBlock obj's underlying member method code with example usage: obj.call(inputs) and returns: merge_features