class_docstr: Base class for meta models with a specific encoder - decoder architecture.
  
  Parameters
  ----------
  feature_extractor: A feature extractor that is applied to queries and support series alike
      and computes features for each time step.
  supps_enc: A support set encoder that encodes each time step of each support series.
  query_enc: A query encoder that encodes each query into a global presentation (not each time step).
  attention: Attention over encoded query and support series.
  decoder: Forecasts from attention(query, supps) and encoded query.
docstr: Computes the forecasts from the provided queries and support set.
  
  Parameters
  ----------
  supps: The support set.
  query: The query.
  return_attention: If true, also return attention.
docstr_tok: ["Computes","the","forecasts","from","the","provided","queries","and","support","set",".","Parameters","--","--","--","--","--","supps",":","The","support","set",".","query",":","The","query",".","return_attention",":","If","true",",","also","return","attention","."]
code: def forward(
      self,
      supps: SeriesBatch,
      query: SeriesBatch,
      return_attention: bool = False,
  ) -> torch.Tensor:
      """
      Computes the forecasts from the provided queries and support set.
  
      Parameters
      ----------
      supps: The support set.
      query: The query.
      return_attention: If true, also return attention.
      """
      supps = self.feature_extractor(supps)
      query = self.feature_extractor(query)
  
      supps = self.supps_enc(supps)
      query = self.query_enc(query)
  
      value, attention = self.attention(query=query, supps=supps)
      result = self.decoder(query=query, value=value)
      if return_attention:
          return result, attention
      else:
          return result
  
imports: from typing import List
  import torch
  from meta.models.EcDc.components import CausalCNNEncoder
  from lightkit.nn import Configurable
  from dataclasses import dataclass, field
  from meta.models.registry import register_model
  from meta.data.batch import SeriesBatch
  from meta.models.model import MetaModel
  from .components import FeatureExtractor, SupportSetEncoder, QueryEncoder, SupportSetQueryAttention, Decoder, TcnQueryEncoder, IdentityFeatureExtractor, LSTMSupportSetEncoder, LSTMQueryEncoder, FeedForwardQuantileDecoder, MultiHeadSupportSetQueryAttention, CNNSupportSetEncoder, TcnSupportSetEncoder
label_desc: Use image node_id 2 for calling the EncoderDecoderMetaModel obj's underlying member method code with example usage: obj.forward(supps, query, return_attention) and returns: result,  attention, result