docstr: An input embedder is the first part of the network, which takes the input from the state and produces a vector
  embedding by passing it through a neural network. The embedder will mostly be input type dependent, and there
  can be multiple embedders in a single network.
  
  :param params: parameters object containing input_clipping, input_rescaling, batchnorm, activation_function
      and dropout properties.
code: def __init__(self, params: InputEmbedderParameters):
      """
      An input embedder is the first part of the network, which takes the input from the state and produces a vector
      embedding by passing it through a neural network. The embedder will mostly be input type dependent, and there
      can be multiple embedders in a single network.
  
      :param params: parameters object containing input_clipping, input_rescaling, batchnorm, activation_function
          and dropout properties.
      """
      super(InputEmbedder, self).__init__()
      self.embedder_name = params.name
      self.input_clipping = params.input_clipping
      self.scheme = params.scheme
  
      with self.name_scope():
          self.net = nn.HybridSequential()
          if isinstance(self.scheme, EmbedderScheme):
              blocks = self.schemes[self.scheme]
          else:
              # if scheme is specified directly, convert to MX layer if it's not a callable object
              # NOTE: if layer object is callable, it must return a gluon block when invoked
              blocks = [convert_layer(l) for l in self.scheme]
          for block in blocks:
              self.net.add(block())
              if params.batchnorm:
                  self.net.add(nn.BatchNorm())
              if params.activation_function:
                  self.net.add(
                      nn.Activation(params.activation_function)
                  )
              if params.dropout_rate:
                  self.net.add(nn.Dropout(rate=params.dropout_rate))
  
file_path: coach/rl_coach/architectures/mxnet_components/embedders/embedder.py
imports: from typing import Union
  from types import ModuleType
  import mxnet
  from mxnet.gluon import nn
  from rl_coach.architectures.embedder_parameters import InputEmbedderParameters
  from rl_coach.architectures.mxnet_components.layers import convert_layer
  from rl_coach.base_parameters import EmbedderScheme
label_desc: Use image node_id 1 to create a new InputEmbedder object from inherited base classes: nn with example: obj = InputEmbedder(params)