code: def __init__(
      self,
      past_seq_len,
      input_feature_num,
      future_seq_len,
      output_feature_num,
      num_channels,
      dummy_encoder=False,
      kernel_size=3,
      dropout=0.1,
      repo_initialization=True,
      seed=None,
  ):
      super(TemporalConvNet, self).__init__()
      seed_everything(seed, workers=True)
      num_channels.append(output_feature_num)
  
      layers = []
      num_levels = 0 if dummy_encoder else len(num_channels)
      for i in range(num_levels):
          dilation_size = 2**i
          in_channels = (
              input_feature_num if i == 0 else num_channels[i - 1]
          )
          out_channels = num_channels[i]
          layers += [
              TemporalBlock(
                  in_channels,
                  out_channels,
                  kernel_size,
                  stride=1,
                  dilation=dilation_size,
                  padding=(kernel_size - 1) * dilation_size,
                  dropout=dropout,
                  repo_initialization=repo_initialization,
              )
          ]
  
      self.tcn = (
          DummyEncoder() if dummy_encoder else nn.Sequential(*layers)
      )
      self.linear = nn.Linear(past_seq_len, future_seq_len)
      if repo_initialization:
          self.init_weights()
  
imports: import warnings
  import torch
  import torch.nn
  from .utils import PYTORCH_REGRESSION_LOSS_MAP
  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 TemporalConvNet object from inherited base classes: nn with example: obj = TemporalConvNet(past_seq_len, input_feature_num, future_seq_len, output_feature_num, num_channels, dummy_encoder, kernel_size, dropout, repo_initialization, seed)