code: def __init__(self, c_in):
      super(ConvLayer, self).__init__()
      self.downConv = nn.Conv1d(
          in_channels=c_in,
          out_channels=c_in,
          kernel_size=3,
          padding=2,
          padding_mode="circular",
      )
      self.norm = nn.BatchNorm1d(c_in)
      self.activation = nn.ELU()
      self.maxPool = nn.MaxPool1d(kernel_size=3, stride=2, padding=1)
  
imports: import math
  import numpy
  from typing import Optional
  import torch
  import torch.nn
  from neuralforecast.common._modules import TransEncoderLayer, TransEncoder, TransDecoderLayer, TransDecoder, DataEmbedding, AttentionLayer
  from ..common._base_windows import BaseWindows
  from ..losses.pytorch import MAE
label_desc: Use image node_id 1 to create a new ConvLayer object from inherited base classes: nn with example: obj = ConvLayer(c_in)