code: def obj_loss(self, pbox, gbox, pobj, tobj, anchor, downsample):
      # pbox
      pbox = decode_yolo(pbox, anchor, downsample)
      pbox = xywh2xyxy(pbox)
      pbox = paddle.concat(pbox, axis=-1)
      b = pbox.shape[0]
      pbox = pbox.reshape((b, -1, 4))
      # gbox
      gxy = gbox[:, :, 0:2] - gbox[:, :, 2:4] * 0.5
      gwh = gbox[:, :, 0:2] + gbox[:, :, 2:4] * 0.5
      gbox = paddle.concat([gxy, gwh], axis=-1)
  
      iou = batch_iou_similarity(pbox, gbox)
      iou.stop_gradient = True
      iou_max = iou.max(2)  # [N, M1]
      iou_mask = paddle.cast(
          iou_max <= self.ignore_thresh, dtype=pbox.dtype
      )
      iou_mask.stop_gradient = True
  
      pobj = pobj.reshape((b, -1))
      tobj = tobj.reshape((b, -1))
      obj_mask = paddle.cast(tobj > 0, dtype=pbox.dtype)
      obj_mask.stop_gradient = True
  
      loss_obj = F.binary_cross_entropy_with_logits(
          pobj, obj_mask, reduction="none"
      )
      loss_obj_pos = loss_obj * tobj
      loss_obj_neg = loss_obj * (1 - obj_mask) * iou_mask
      return loss_obj_pos + loss_obj_neg
  
file_path: PaddleDetection/ppdet/modeling/losses/yolo_loss.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import paddle
  import paddle.nn
  import paddle.nn.functional
  from ppdet.core.workspace import register
  from ..bbox_utils import decode_yolo, xywh2xyxy, batch_iou_similarity
label_desc: Use image node_id 2 for calling the YOLOv3Loss obj's underlying member method code with example usage: obj.obj_loss(pbox, gbox, pobj, tobj, anchor, downsample) and returns: unknown