code: def get_netD():
      
      # build the discriminator
      netD = nn.Sequential()
      with netD.name_scope():
          # input is (nc) x 64 x 64
          netD.add(nn.Conv2D(ndf, 4, 2, 1, use_bias=False))
          netD.add(nn.LeakyReLU(0.2))
          # state size. (ndf) x 32 x 32
          netD.add(nn.Conv2D(ndf * 2, 4, 2, 1, use_bias=False))
          netD.add(nn.BatchNorm())
          netD.add(nn.LeakyReLU(0.2))
          # state size. (ndf*2) x 16 x 16
          netD.add(nn.Conv2D(ndf * 4, 4, 2, 1, use_bias=False))
          netD.add(nn.BatchNorm())
          netD.add(nn.LeakyReLU(0.2))
          # state size. (ndf*4) x 8 x 8
          netD.add(nn.Conv2D(ndf * 8, 4, 2, 1, use_bias=False))
          netD.add(nn.BatchNorm())
          netD.add(nn.LeakyReLU(0.2))
          # state size. (ndf*8) x 4 x 4
          netD.add(nn.Conv2D(2, 4, 1, 0, use_bias=False))
          # state size. 2 x 1 x 1
  
      return netD
docs: Get the netD