docstr: Bidirectional LSTM encoder.
  
  Parameters
  ----------
  latent_dim
      Latent dimension. Must be an even number given the bidirectional encoder.
  name
      Name of encoder.
docstr_tok: ["Bidirectional","LSTM","encoder",".","Parameters","--","--","--","--","--","latent_dim","Latent","dimension",".","Must","be","an","even","number","given","the","bidirectional","encoder",".","name","Name","of","encoder","."]
code: def __init__(
      self, latent_dim: int, name: str = "encoder_lstm"
  ) -> None:
      """
      Bidirectional LSTM encoder.
  
      Parameters
      ----------
      latent_dim
          Latent dimension. Must be an even number given the bidirectional encoder.
      name
          Name of encoder.
      """
      super(EncoderLSTM, self).__init__(name=name)
      self.encoder_net = Bidirectional(
          LSTM(
              latent_dim // 2, return_state=True, return_sequences=True
          )
      )
  
imports: import numpy
  import tensorflow
  from tensorflow.keras.layers import Bidirectional, Concatenate, Dense, Flatten, Layer, LSTM
  from typing import Callable, List, Tuple
  from alibi_detect.utils.tensorflow.distance import relative_euclidean_distance
label_desc: Use image node_id 1 to create a new EncoderLSTM object from inherited base classes: Layer with example: obj = EncoderLSTM(latent_dim, name)