class_docstr: Shared WaveNet-like encoder for query and support set.
  Multi-head attention to match the encoded query and support set.
  Feedforward decoder for multi-step quantile prediction.
code: def __init__(self, config: TcnEcDcConfig):
      common_encoder = CausalCNNEncoder(
          in_channels=1,
          channels=config.num_channels,
          depth=config.num_layers,
          out_channels=config.num_channels,
          kernel_size=config.kernel_size,
      )
      Configurable.__init__(self, config)
      EncoderDecoderMetaModel.__init__(
          self,
          feature_extractor=IdentityFeatureExtractor(),
          supps_enc=TcnSupportSetEncoder(encoder=common_encoder),
          query_enc=TcnQueryEncoder(
              encoder=common_encoder,
          ),
          attention=MultiHeadSupportSetQueryAttention(
              supps_size=config.num_channels,
              q_size=config.num_channels,
              num_heads=config.num_heads,
          ),
          decoder=FeedForwardQuantileDecoder(
              embed_size=config.num_channels,
              q_size=config.num_channels,
              hidden_size=config.decoder_hidden_size,
              prediction_length=config.prediction_length,
              num_quantiles=len(config.quantiles),
          ),
      )
  
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 1 to create a new TcnEcDc object from inherited base classes: EncoderDecoderMetaModel, Configurable with example: obj = TcnEcDc(config)