code: def __init__(self, hparams) -> None:
      super().__init__()
  
      self.hparams = hparams
      # 1.EMBEDDING UNIT
      self.embedding = Embeddings(hparams=hparams)
      # 2. ENCODER BLOCKS
      self.encoder = nn.GRU(
          input_size=self.hparams.hidden_size,
          hidden_size=(
              self.hparams.hidden_size // 2
              if self.hparams.bidirectional == True
              else self.hparams.hidden_size
          ),
          bidirectional=self.hparams.bidirectional,
          num_layers=self.hparams.n_layers,
          dropout=(
              0
              if self.hparams.n_layers == 1
              else self.hparams.fw_dropout
          ),
          batch_first=True,
      )
  
imports: from turtle import forward
  from ..transformer.cls_model import Transformer_CLS, Transformer_PSY
  from ..transformer.transformer import AttentionDecoder, AttentionDecoderP, CLS_Decoder_FT2, Deep_Decoder
  from ..transformer.embeddings import Embeddings
  import torch
  import torch.nn
  import logging
label_desc: Use image node_id 1 to create a new GRU_Encoder object from inherited base classes: nn with example: obj = GRU_Encoder(hparams)