code: def __init__(self, in_nc, out_nc, nf, nb, gc=32):
      super(RRDBNet, self).__init__()
      RRDB_block_f = functools.partial(RRDB, nf=nf, gc=gc)
  
      self.conv_first = nn.Conv2D(in_nc, nf, 3, 1, 1, bias_attr=True)
      self.RRDB_trunk = make_layer(RRDB_block_f, nb)
      self.trunk_conv = nn.Conv2D(nf, nf, 3, 1, 1, bias_attr=True)
      #### upsampling
      self.upconv1 = nn.Conv2D(nf, nf, 3, 1, 1, bias_attr=True)
      self.upconv2 = nn.Conv2D(nf, nf, 3, 1, 1, bias_attr=True)
      self.HRconv = nn.Conv2D(nf, nf, 3, 1, 1, bias_attr=True)
      self.conv_last = nn.Conv2D(nf, out_nc, 3, 1, 1, bias_attr=True)
  
      self.lrelu = nn.LeakyReLU(negative_slope=0.2)
  
imports: import functools
  import paddle
  import paddle.nn
  import paddle.nn.functional
label_desc: Use image node_id 1 to create a new RRDBNet object from inherited base classes: nn with example: obj = RRDBNet(in_nc, out_nc, nf, nb, gc)