code: def encode(self,
                 data: mx.sym.Symbol,
                 data_length: Optional[mx.sym.Symbol],
                 seq_len: int) -> Tuple[mx.sym.Symbol, mx.sym.Symbol, int]:
          
          # outputs: (batch_size, seq_len, num_hidden)
          outputs = mx.sym.dot(data, mx.sym.zeros((self.num_embed, self.num_hidden)))
          return outputs, data_length, seq_len
docs: Encodes data given sequence lengths of individual examples and maximum sequence length.
          :param data: Input data.
          :param data_length: Vector with sequence lengths.
          :param seq_len: Maximum sequence length.
          :return: Expected number of empty states (zero-filled).