code: def __init__(
      self,
      input_feature_num,
      future_seq_len,
      output_feature_num,
      lstm_hidden_dim=128,
      lstm_layer_num=2,
      dropout=0.25,
      teacher_forcing=False,
      seed=None,
  ):
      super(LSTMSeq2Seq, self).__init__()
      seed_everything(seed, workers=True)
      self.lstm_encoder = nn.LSTM(
          input_size=input_feature_num,
          hidden_size=lstm_hidden_dim,
          num_layers=lstm_layer_num,
          dropout=dropout,
          batch_first=True,
      )
      self.lstm_decoder = nn.LSTM(
          input_size=output_feature_num,
          hidden_size=lstm_hidden_dim,
          num_layers=lstm_layer_num,
          dropout=dropout,
          batch_first=True,
      )
      self.fc = nn.Linear(
          in_features=lstm_hidden_dim, out_features=output_feature_num
      )
      self.future_seq_len = future_seq_len
      self.output_feature_num = output_feature_num
      self.teacher_forcing = teacher_forcing
  
file_path: BigDL/python/chronos/src/bigdl/chronos/model/Seq2Seq_pytorch.py
imports: import torch
  import torch.nn
  from .utils import PYTORCH_REGRESSION_LOSS_MAP
  import numpy
  from pytorch_lightning import seed_everything
  from bigdl.chronos.pytorch.model_wrapper.normalization import NormalizeTSModel
  from bigdl.chronos.pytorch.model_wrapper.decomposition import DecompositionTSModel
label_desc: Use image node_id 1 to create a new LSTMSeq2Seq object from inherited base classes: nn with example: obj = LSTMSeq2Seq(input_feature_num, future_seq_len, output_feature_num, lstm_hidden_dim, lstm_layer_num, dropout, teacher_forcing, seed)