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 make_decoder_hourglass_block(
      in_dim, out_dim, norm_type, kernel_regularizer, num_blocks
  ):
      hourglass_block = []
      for _ in range(num_blocks - 1):
          hourglass_block.append(
              network_cb.ResidualBlock(
                  in_dim, norm_type, kernel_regularizer
              )
          )
      skip = in_dim != out_dim
      hourglass_block.append(
          network_cb.ResidualBlock(
              out_dim, norm_type, kernel_regularizer, skip=skip
          )
      )
      return hourglass_block
  
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 3 for calling the EncoderDecoderBlock obj's underlying member method code with example usage: obj.make_decoder_hourglass_block(in_dim, out_dim, norm_type, kernel_regularizer, num_blocks) and returns: hourglass_block