class_docstr: Decode bounding boxes training target with normalized center offsets.
  This decoder must cooperate with NormalizedBoxCenterEncoder of same `stds`
  in order to get properly reconstructed bounding boxes.
  
  Returned bounding boxes are using corner type: `x_{min}, y_{min}, x_{max}, y_{max}`.
  
  Parameters
  ----------
  stds : array-like of size 4
      Std value to be divided from encoded values, default is (0.1, 0.1, 0.2, 0.2).
  clip : float, default is None
      If given, bounding box target will be clipped to this value.
  convert_anchor : boolean, default is False
      Whether to convert anchor from corner to center format.
  minimal_opset : bool
      We sometimes add special operators to accelerate training/inference, however, for exporting
      to third party compilers we want to utilize most widely used operators.
      If `minimal_opset` is `True`, the network will use a minimal set of operators good
      for e.g., `TVM`.
class_docstr_tok: ["Decode","bounding","boxes","training","target","with","normalized","center","offsets",".","This","decoder","must","cooperate","with","NormalizedBoxCenterEncoder","of","same","`","stds","`","in","order","to","get","properly","reconstructed","bounding","boxes",".","Returned","bounding","boxes","are","using","corner","type",":","`","x_","{","min","}",",","y_","{","min","}",",","x_","{","max","}",",","y_","{","max","}","`",".","Parameters","--","--","--","--","--","stds",":","array-like","of","size","4","Std","value","to","be","divided","from","encoded","values",",","default","is","(","0.1",",","0.1",",","0.2",",","0.2",")",".","clip",":","float",",","default","is","None","If","given",",","bounding","box","target","will","be","clipped","to","this","value",".","convert_anchor",":","boolean",",","default","is","False","Whether","to","convert","anchor","from","corner","to","center","format",".","minimal_opset",":","bool","We","sometimes","add","special","operators","to","accelerate","training\/inference",",","however",",","for","exporting","to","third","party","compilers","we","want","to","utilize","most","widely","used","operators",".","If","`","minimal_opset","`","is","`","True","`",",","the","network","will","use","a","minimal","set","of","operators","good","for","e.g.",",","`","TVM","`","."]
code: def hybrid_forward(self, F, x, anchors):
      if not self._minimal_opset and "box_decode" in F.contrib.__dict__:
          x, anchors = F.amp_multicast(
              x, anchors, num_outputs=2, cast_narrow=True
          )
          if self._clip is None:
              self._clip = -1  # match the signature of c++ operator
          return F.contrib.box_decode(
              x,
              anchors,
              self._stds[0],
              self._stds[1],
              self._stds[2],
              self._stds[3],
              clip=self._clip,
              format=self._format,
          )
      if self.corner_to_center is not None:
          a = self.corner_to_center(anchors)
      else:
          a = anchors.split(axis=-1, num_outputs=4)
      p = F.split(x, axis=-1, num_outputs=4)
      ox = F.broadcast_add(
          F.broadcast_mul(p[0] * self._stds[0], a[2]), a[0]
      )
      oy = F.broadcast_add(
          F.broadcast_mul(p[1] * self._stds[1], a[3]), a[1]
      )
      dw = p[2] * self._stds[2]
      dh = p[3] * self._stds[3]
      if self._clip:
          dw = F.minimum(dw, self._clip)
          dh = F.minimum(dh, self._clip)
      dw = F.exp(dw)
      dh = F.exp(dh)
      ow = F.broadcast_mul(dw, a[2]) * 0.5
      oh = F.broadcast_mul(dh, a[3]) * 0.5
      return F.concat(ox - ow, oy - oh, ox + ow, oy + oh, dim=-1)
  
imports: from __future__ import absolute_import
  import numpy
  from mxnet import gluon
  from mxnet import nd
  from .bbox import BBoxCornerToCenter, NumPyBBoxCornerToCenter
label_desc: Use image node_id 2 for calling the NormalizedBoxCenterDecoder obj's underlying member method code with example usage: obj.hybrid_forward(F, x, anchors) and returns: F, F