class_docstr: A middleware embedder is the middle part of the network. It takes the embeddings from the input embedders,
  after they were aggregated in some method (for example, concatenation) and passes it through a neural network
  which can be customizable but shared between the heads of the network
docstr: Get a formatted name for the module
  :return: the formatted name
docstr_tok: ["Get","a","formatted","name","for","the","module",":","return",":","the","formatted","name"]
code: def get_name(self) -> str:
      """
      Get a formatted name for the module
      :return: the formatted name
      """
      return self.name
  
file_path: coach/rl_coach/architectures/tensorflow_components/middlewares/middleware.py
imports: import copy
  from typing import Union, Tuple
  import tensorflow
  from rl_coach.architectures.tensorflow_components.layers import BatchnormActivationDropout, convert_layer, Dense
  from rl_coach.base_parameters import MiddlewareScheme, NetworkComponentParameters
  from rl_coach.core_types import MiddlewareEmbedding
label_desc: Use image node_id 4 for calling the Middleware obj's underlying member method code with example usage: obj.get_name() and returns: self