class_docstr: Encodes each time step in the support set times series via the hidden states of a LSTM.
  
  Parameters
  ----------
  input_size: The number of features of the time series.
  hidden_size: The size of hidden states of LSTM, corresponds to encoding size of the queries,
      i.e. the encoder returns a tensor with shape [batch, sequence length, D * hidden_size].
  num_layers: number of layers of the LSTM.
  bidirectional: If a bidirectional LSTM is used. If true: D = 2, else D = 1.
code: def forward(self, supps: SeriesBatch) -> torch.Tensor:
      supps_packed = pack_padded_sequence(
          supps.sequences,
          supps.lengths.cpu(),
          batch_first=True,
          enforce_sorted=False,
      )
      output_packed, _ = self.encoder(supps_packed)
      output_padded, output_lengths = pad_packed_sequence(
          output_packed, batch_first=True
      )
      return SeriesBatch(
          output_padded, output_lengths, supps.split_sections
      )
  
imports: from abc import ABC, abstractmethod
  import torch
  from meta.models.EcDc.components.tcn import CausalCNNEncoder
  from torch import nn
  import torch.nn.functional
  from torch.nn.utils.rnn import pack_padded_sequence, pad_packed_sequence
  from meta.data.batch import SeriesBatch
label_desc: Use image node_id 2 for calling the LSTMSupportSetEncoder obj's underlying member method code with example usage: obj.forward(supps) and returns: SeriesBatch