code: def box_iou(boxes1, boxes2):
      area1 = box_area(boxes1)
      area2 = box_area(boxes2)
      lt = ivy.maximum(boxes1[:, None, :2], boxes2[:, :2])
      rb = ivy.minimum(boxes1[:, None, 2:], boxes2[:, 2:])
      wh = (rb - lt).clip(x_min=0)
      inter = wh[:, :, 0] * wh[:, :, 1]
      union = area1[:, None] + area2 - inter
      iou = inter / union
      return iou
  
file_path: ivy/ivy/functional/frontends/torchvision/ops.py
imports: import ivy
  from ivy.functional.frontends.torch.func_wrapper import to_ivy_arrays_and_back
  from ivy.func_wrapper import with_supported_dtypes, with_unsupported_device_and_dtypes
label_desc: Use image node_id 3 for calling a global function with example usage: box_iou(boxes1, boxes2) and returns: iou