code: def __init__(
      self,
      in_channels,
      base_channels=64,
      downsample_factors=(8, 4),
      out_channels=(128, 256),
  ):
      super(UnconditionalDiscriminator, self).__init__()
  
      self.downsample_factors = downsample_factors
      self.in_channels = in_channels
      self.downsample_factors = downsample_factors
      self.out_channels = out_channels
  
      self.layers = nn.ModuleList()
      self.layers += [DBlock(self.in_channels, base_channels, 1)]
      in_channels = base_channels
      for i, factor in enumerate(downsample_factors):
          self.layers.append(
              DBlock(in_channels, out_channels[i], factor)
          )
          in_channels *= 2
      self.layers += [
          DBlock(in_channels, in_channels, 1),
          DBlock(in_channels, in_channels, 1),
          nn.AdaptiveAvgPool1d(1),
          nn.Conv1d(in_channels, 1, kernel_size=1),
      ]
  
imports: import numpy
  from torch import nn
label_desc: Use image node_id 1 to create a new UnconditionalDiscriminator object from inherited base classes: nn with example: obj = UnconditionalDiscriminator(in_channels, base_channels, downsample_factors, out_channels)