code: def __init__(
      self,
      act,
      in_ch,
      out_ch=None,
      temb_dim=None,
      up=False,
      down=False,
      dropout=0.1,
      fir=False,
      fir_kernel=(1, 3, 3, 1),
      skip_rescale=True,
      init_scale=0.0,
  ):
      super().__init__()
  
      out_ch = out_ch if out_ch else in_ch
      self.GroupNorm_0 = nn.GroupNorm(
          num_groups=min(in_ch // 4, 32), num_channels=in_ch, eps=1e-6
      )
      self.up = up
      self.down = down
      self.fir = fir
      self.fir_kernel = fir_kernel
  
      self.Conv_0 = conv3x3(in_ch, out_ch)
      if temb_dim is not None:
          self.Dense_0 = nn.Linear(temb_dim, out_ch)
          self.Dense_0.weight.data = default_init()(
              self.Dense_0.weight.shape
          )
          nn.init.zeros_(self.Dense_0.bias)
  
      self.GroupNorm_1 = nn.GroupNorm(
          num_groups=min(out_ch // 4, 32), num_channels=out_ch, eps=1e-6
      )
      self.Dropout_0 = nn.Dropout(dropout)
      self.Conv_1 = conv3x3(out_ch, out_ch, init_scale=init_scale)
      if in_ch != out_ch or up or down:
          self.Conv_2 = conv1x1(in_ch, out_ch)
  
      self.skip_rescale = skip_rescale
      self.act = act
      self.in_ch = in_ch
      self.out_ch = out_ch
  
imports: import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  from espnet2.enh.layers.ncsnpp_utils import layers, up_or_down_sampling
label_desc: Use image node_id 1 to create a new ResnetBlockBigGANpp object from inherited base classes: nn with example: obj = ResnetBlockBigGANpp(act, in_ch, out_ch, temb_dim, up, down, dropout, fir, fir_kernel, skip_rescale, init_scale)