class_docstr: Time series encoder. This module can learn features for any `order_by` temporal column, both with and without accompanying target data.
  
  The backbone of this encoder is either a recurrent neural network or a transformer; both structured in an encoder-decoder fashion.
class_docstr_tok: ["Time","series","encoder",".","This","module","can","learn","features","for","any","`","order_by","`","temporal","column",",","both","with","and","without","accompanying","target","data",".","The","backbone","of","this","encoder","is","either","a","recurrent","neural","network","or","a","transformer",";","both","structured","in","an","encoder-decoder","fashion","."]
docstr: Decode a list of embedded multidimensional time series
  :param encoded_data: a list of embeddings [ e1, e2, ...] to be decoded into time series
  :param steps: fixed number of timesteps to reconstruct from each embedding.
  If None, encoder will output the largest length encountered during training.
  :return: a list of reconstructed time series
docstr_tok: ["Decode","a","list","of","embedded","multidimensional","time","series",":","param","encoded_data",":","a","list","of","embeddings","[","e1",",","e2",",","...","]","to","be","decoded","into","time","series",":","param","steps",":","fixed","number","of","timesteps","to","reconstruct","from","each","embedding",".","If","None",",","encoder","will","output","the","largest","length","encountered","during","training",".",":","return",":","a","list","of","reconstructed","time","series"]
code: def decode(self, encoded_data, steps=None):
      """
      Decode a list of embedded multidimensional time series
      :param encoded_data: a list of embeddings [ e1, e2, ...] to be decoded into time series
      :param steps: fixed number of timesteps to reconstruct from each embedding.
      If None, encoder will output the largest length encountered during training.
      :return: a list of reconstructed time series
      """
      if not self.is_prepared:
          raise Exception(
              'You need to call "prepare" before calling "encode" or "decode".'
          )
  
      ret = []
      for _, val in enumerate(encoded_data):
          hidden = torch.unsqueeze(
              torch.unsqueeze(val, dim=0), dim=0
          ).to(self.device)
          reconstruction = (
              self._decode_one(hidden, steps).cpu().squeeze().T.numpy()
          )
  
          if self._n_dims == 1:
              reconstruction = reconstruction.reshape(1, -1)
  
          if self._normalizer:
              reconstruction = self._normalizer.decode(reconstruction)
  
          ret.append(reconstruction)
  
      return torch.Tensor(ret)
  
imports: import time
  from math import gcd
  from typing import List
  from copy import deepcopy
  import numpy
  import pandas
  import torch
  import torch.nn
  from torch import optim
  from type_infer.dtype import dtype
  from lightwood.helpers.log import log
  from lightwood.encoder.base import BaseEncoder
  from lightwood.helpers.device import get_device_from_name
  from lightwood.helpers.torch import LightwoodAutocast
  from lightwood.encoder.datetime import DatetimeNormalizerEncoder
  from lightwood.encoder.time_series.helpers.rnn_helpers import EncoderRNNNumerical, DecoderRNNNumerical
  from lightwood.encoder.helpers import MinMaxNormalizer, CatNormalizer
  from lightwood.encoder.time_series.helpers.transformer_helpers import TransformerEncoder, get_chunk, len_to_mask
label_desc: Use image node_id 10 for calling the TimeSeriesEncoder obj's underlying member method code with example usage: obj.decode(encoded_data, steps) and returns: torch