class_docstr: Batch Bounding Box IOU.
  
  Parameters
  ----------
  axis : int
      On which axis is the length-4 bounding box dimension.
  fmt : str
      BBox encoding format, can be 'corner' or 'center'.
      'corner': (xmin, ymin, xmax, ymax)
      'center': (center_x, center_y, width, height)
  offset : float, default is 0
      Offset is used if +1 is desired for computing width and height, otherwise use 0.
  eps : float, default is 1e-15
      Very small number to avoid division by 0.
class_docstr_tok: ["Batch","Bounding","Box","IOU",".","Parameters","--","--","--","--","--","axis",":","int","On","which","axis","is","the","length-4","bounding","box","dimension",".","fmt",":","str","BBox","encoding","format",",","can","be","'corner","'","or","'center","'",".","'corner","'",":","(","xmin",",","ymin",",","xmax",",","ymax",")","'center","'",":","(","center_x",",","center_y",",","width",",","height",")","offset",":","float",",","default","is","0","Offset","is","used","if","+1","is","desired","for","computing","width","and","height",",","otherwise","use","0.","eps",":","float",",","default","is","1e-15","Very","small","number","to","avoid","division","by","0","."]
docstr: Compute IOU for each batch
  
  Parameters
  ----------
  a : mxnet.nd.NDArray or mxnet.sym.Symbol
      (B, N, 4) first input.
  b : mxnet.nd.NDArray or mxnet.sym.Symbol
      (B, M, 4) second input.
  
  Returns
  -------
  mxnet.nd.NDArray or mxnet.sym.Symbol
      (B, N, M) array of IOUs.
docstr_tok: ["Compute","IOU","for","each","batch","Parameters","--","--","--","--","--","a",":","mxnet.nd.NDArray","or","mxnet.sym.Symbol","(","B",",","N",",","4",")","first","input",".","b",":","mxnet.nd.NDArray","or","mxnet.sym.Symbol","(","B",",","M",",","4",")","second","input",".","Returns","--","--","--","-","mxnet.nd.NDArray","or","mxnet.sym.Symbol","(","B",",","N",",","M",")","array","of","IOUs","."]
code: def hybrid_forward(self, F, a, b):
      """Compute IOU for each batch
  
      Parameters
      ----------
      a : mxnet.nd.NDArray or mxnet.sym.Symbol
          (B, N, 4) first input.
      b : mxnet.nd.NDArray or mxnet.sym.Symbol
          (B, M, 4) second input.
  
      Returns
      -------
      mxnet.nd.NDArray or mxnet.sym.Symbol
          (B, N, M) array of IOUs.
  
      """
      al, at, ar, ab = self._pre(a)
      bl, bt, br, bb = self._pre(b)
  
      # (B, N, M)
      left = F.broadcast_maximum(al.expand_dims(-1), bl.expand_dims(-2))
      right = F.broadcast_minimum(
          ar.expand_dims(-1), br.expand_dims(-2)
      )
      top = F.broadcast_maximum(at.expand_dims(-1), bt.expand_dims(-2))
      bot = F.broadcast_minimum(ab.expand_dims(-1), bb.expand_dims(-2))
  
      # clip with (0, float16.max)
      iw = F.clip(
          right - left + self._offset, a_min=0, a_max=6.55040e04
      )
      ih = F.clip(bot - top + self._offset, a_min=0, a_max=6.55040e04)
      i = iw * ih
  
      # areas
      area_a = (
          (ar - al + self._offset) * (ab - at + self._offset)
      ).expand_dims(-1)
      area_b = (
          (br - bl + self._offset) * (bb - bt + self._offset)
      ).expand_dims(-2)
      union = F.broadcast_add(area_a, area_b) - i
  
      return i / (union + self._eps)
  
imports: from __future__ import absolute_import
  import numpy
  from mxnet import gluon
label_desc: Use image node_id 2 for calling the BBoxBatchIOU obj's underlying member method code with example usage: obj.hybrid_forward(F, a, b) and returns: unknown