class_docstr: Encodes the time series in the support set via a CNN.
  
  Parameters
  ----------
  input_size: The number of features of the time series.
  out_channels: The number of output channels of the CNN, corresponds to encoding size of the queries,
      i.e. the encoder returns a tensor with shape [batch, sequence length, D * hidden_size].
code: def __init__(self, input_size: int, out_channels: int):
      super().__init__()
      self.conv1 = nn.Conv1d(
          in_channels=input_size,
          out_channels=out_channels,
          kernel_size=5,
          padding="valid",
      )
  
      self.conv2 = nn.Conv1d(
          in_channels=out_channels,
          out_channels=out_channels,
          kernel_size=5,
          padding="same",
      )
      self.conv3 = nn.Conv1d(
          in_channels=out_channels,
          out_channels=out_channels,
          kernel_size=3,
          padding="same",
      )
      self.conv4 = nn.Conv1d(
          in_channels=out_channels,
          out_channels=out_channels,
          kernel_size=3,
          padding="same",
      )
  
imports: from abc import ABC, abstractmethod
  import torch
  from meta.models.EcDc.components.tcn import CausalCNNEncoder
  from torch import nn
  import torch.nn.functional
  from torch.nn.utils.rnn import pack_padded_sequence, pad_packed_sequence
  from meta.data.batch import SeriesBatch
label_desc: Use image node_id 1 to create a new CNNSupportSetEncoder object from inherited base classes: SupportSetEncoder with example: obj = CNNSupportSetEncoder(input_size, out_channels)