code: def __init__(self, n_input=3, n_output=3, n_fmap=64, B=16):
      super(Generator, self).__init__()
  
      self.l1 = nn.Sequential(
          nn.Conv2d(n_input, n_fmap, 9, 1, 4),
          nn.PReLU(),
      )
  
      # A cascaded of B residual blocks.
      self.R = []
      for _ in range(B):
          self.R.append(ResidualBlock(n_fmap))
      self.R = nn.Sequential(*self.R)
  
      self.l2 = nn.Sequential(
          nn.Conv2d(n_fmap, n_fmap, 3, 1, 1),
          nn.BatchNorm2d(n_fmap),
      )
  
      self.px = nn.Sequential(
          ShuffleBlock(64, 256),
          ShuffleBlock(64, 256),
      )
  
      self.conv_final = nn.Sequential(
          nn.Conv2d(64, n_output, 9, 1, 4),
          nn.Tanh(),
      )
  
imports: import torch
  from torch import nn
  from torchvision.models import vgg19
  from torch.autograd import Variable
label_desc: Use image node_id 1 to create a new Generator object from inherited base classes: nn with example: obj = Generator(n_input, n_output, n_fmap, B)