class_docstr: FEDformer decoder layer with the progressive decomposition architecture
class_docstr_tok: ["FEDformer","decoder","layer","with","the","progressive","decomposition","architecture"]
code: def __init__(
      self,
      self_attention,
      cross_attention,
      hidden_size,
      c_out,
      conv_hidden_size=None,
      MovingAvg=25,
      dropout=0.1,
      activation="relu",
  ):
      super(DecoderLayer, self).__init__()
      conv_hidden_size = conv_hidden_size or 4 * hidden_size
      self.self_attention = self_attention
      self.cross_attention = cross_attention
      self.conv1 = nn.Conv1d(
          in_channels=hidden_size,
          out_channels=conv_hidden_size,
          kernel_size=1,
          bias=False,
      )
      self.conv2 = nn.Conv1d(
          in_channels=conv_hidden_size,
          out_channels=hidden_size,
          kernel_size=1,
          bias=False,
      )
      self.decomp1 = SeriesDecomp(MovingAvg)
      self.decomp2 = SeriesDecomp(MovingAvg)
      self.decomp3 = SeriesDecomp(MovingAvg)
      self.dropout = nn.Dropout(dropout)
      self.projection = nn.Conv1d(
          in_channels=hidden_size,
          out_channels=c_out,
          kernel_size=3,
          stride=1,
          padding=1,
          padding_mode="circular",
          bias=False,
      )
      self.activation = F.relu if activation == "relu" else F.gelu
  
imports: import numpy
  from typing import Optional
  import torch
  import torch.nn
  import torch.nn.functional
  from ..common._modules import DataEmbedding
  from ..common._base_windows import BaseWindows
  from ..losses.pytorch import MAE
label_desc: Use image node_id 1 to create a new DecoderLayer object from inherited base classes: nn with example: obj = DecoderLayer(_attention, cross_attention, hidden_size, c_out, conv_hidden_size, MovingAvg, dropout, activation)