code: def __init__(
      self, in_channels=[256, 512, 1024, 1024], out_channels=256
  ):
      super().__init__()
      self.out_c = 512
      self.logit_scale = paddle.to_tensor(np.exp(np.log([1 / 0.07])))
      self.layer1_rn = nn.Conv2D(
          in_channels[0],
          out_channels,
          kernel_size=3,
          stride=1,
          padding=1,
          bias_attr=False,
          groups=1,
      )
      self.layer2_rn = nn.Conv2D(
          in_channels[1],
          out_channels,
          kernel_size=3,
          stride=1,
          padding=1,
          bias_attr=False,
          groups=1,
      )
      self.layer3_rn = nn.Conv2D(
          in_channels[2],
          out_channels,
          kernel_size=3,
          stride=1,
          padding=1,
          bias_attr=False,
          groups=1,
      )
      self.layer4_rn = nn.Conv2D(
          in_channels[3],
          out_channels,
          kernel_size=3,
          stride=1,
          padding=1,
          bias_attr=False,
          groups=1,
      )
  
      self.refinenet1 = FeatureFusionBlock_custom(out_channels, bn=True)
      self.refinenet2 = FeatureFusionBlock_custom(out_channels, bn=True)
      self.refinenet3 = FeatureFusionBlock_custom(out_channels, bn=True)
      self.refinenet4 = FeatureFusionBlock_custom(out_channels, bn=True)
  
      self.head1 = nn.Conv2D(out_channels, self.out_c, kernel_size=1)
  
      self.output_conv = nn.Sequential(
          Interpolate(
              scale_factor=2, mode="bilinear", align_corners=True
          )
      )
  
imports: import numpy
  import paddle
  import paddle.nn
label_desc: Use image node_id 1 to create a new Scratch object from inherited base classes: nn with example: obj = Scratch(in_channels, out_channels)