code: def forward(self, x):
      H, W = x.size()[2:]
      feat_res8, feat_cp8, feat_cp16 = self.cp(
          x
      )  # here return res3b1 feature
      feat_sp = feat_res8  # use res3b1 feature to replace spatial path feature
      feat_fuse = self.ffm(feat_sp, feat_cp8)
  
      feat_out = self.conv_out(feat_fuse)
      feat_out16 = self.conv_out16(feat_cp8)
      feat_out32 = self.conv_out32(feat_cp16)
  
      feat_out = F.interpolate(
          feat_out, (H, W), mode="bilinear", align_corners=True
      )
      feat_out16 = F.interpolate(
          feat_out16, (H, W), mode="bilinear", align_corners=True
      )
      feat_out32 = F.interpolate(
          feat_out32, (H, W), mode="bilinear", align_corners=True
      )
      return feat_out, feat_out16, feat_out32
  
imports: import torch
  import torch.nn
  import torch.nn.functional
  from ParsingResnet import Resnet18
label_desc: Use image node_id 2 for calling the BiSeNet obj's underlying member method code with example usage: obj.forward(x) and returns: feat_out,  feat_out16,  feat_out32