class_docstr: The tied embeddings layer. 
  See https://arxiv.org/pdf/1608.05859.pdf
  The representations table is taken from a MultichannelLookup layer.
  
  :param input_layers: The input layers to be connected. 
      The integer in each tuple specifies the number of the output.
      If not set, the first output will be used.
  :type input_layers: object, tuple(object, int) or list of them
  :param embeddings_layer_name: The name of the layer used for embeddings. 
      Needs to be a MultichannelLookup layer.   
  :type embeddings_layer_name: str
  :param channel: The channel index in the embeddings layer.
  :type channel: int, >=0
  :param name: The layer name.
  :type name: str, default=None
  
  .. rubric:: Layer inputs:
  
  The layer may have any number of inputs, of the dimensions:
  
  - **BatchLength** * **BatchWidth** * **ListSize** is the number of objects
  - **Height**, **Width**, **Depth** are 1
  - **Channels** is the embedding size
  
  .. rubric:: Layer outputs:
  
  For each input the layer has one output of the same dimensions.
code: def __init__(
      self, input_layers, embeddings_layer_name, channel, name=None
  ):
      if type(input_layers) is PythonWrapper.TiedEmbeddings:
          super().__init__(input_layers)
          return
  
      if channel < 0:
          raise ValueError("`channel` must be >= 0.")
  
      layers, outputs = check_input_layers(input_layers, 0)
  
      internal = PythonWrapper.TiedEmbeddings(
          str(name),
          layers,
          outputs,
          str(embeddings_layer_name),
          int(channel),
      )
      super().__init__(internal)
  
file_path: neoml/NeoML/Python/neoml/Dnn/TiedEmbeddings.py
imports: import numpy
  import neoml.PythonWrapper
  from .Dnn import Layer
  from neoml.Utils import check_input_layers
  import neoml.Blob
label_desc: Use image node_id 1 to create a new TiedEmbeddings object from inherited base classes: Layer with example: obj = TiedEmbeddings(input_layers, embeddings_layer_name, channel, name)