class_docstr: YOLACT box head used in https://arxiv.org/abs/1904.02689.
  
  Note that YOLACT head is a light version of RetinaNet head.
  Four differences are described as follows:
  
  1. YOLACT box head has three-times fewer anchors.
  2. YOLACT box head shares the convs for box and cls branches.
  3. YOLACT box head uses OHEM instead of Focal loss.
  4. YOLACT box head predicts a set of mask coefficients for each box.
  
  Args:
      num_classes (int): Number of categories excluding the background
          category.
      in_channels (int): Number of channels in the input feature map.
      anchor_generator (dict): Config dict for anchor generator
      loss_cls (dict): Config of classification loss.
      loss_bbox (dict): Config of localization loss.
      num_head_convs (int): Number of the conv layers shared by
          box and cls branches.
      num_protos (int): Number of the mask coefficients.
      use_ohem (bool): If true, ``loss_single_OHEM`` will be used for
          cls loss calculation. If false, ``loss_single`` will be used.
      conv_cfg (dict): Dictionary to construct and config conv layer.
      norm_cfg (dict): Dictionary to construct and config norm layer.
docstr: Forward feature of a single scale level.
  
  Args:
      x (Tensor): Features of a single scale level.
  
  Returns:
      tuple:
          cls_score (Tensor): Cls scores for a single scale level                     the channels number is num_anchors * num_classes.
          bbox_pred (Tensor): Box energies / deltas for a single scale                     level, the channels number is num_anchors * 4.
          coeff_pred (Tensor): Mask coefficients for a single scale                     level, the channels number is num_anchors * num_protos.
docstr_tok: ["Forward","feature","of","a","single","scale","level",".","Args",":","x","(","Tensor",")",":","Features","of","a","single","scale","level",".","Returns",":","tuple",":","cls_score","(","Tensor",")",":","Cls","scores","for","a","single","scale","level","the","channels","number","is","num_anchors","*","num_classes",".","bbox_pred","(","Tensor",")",":","Box","energies","\/","deltas","for","a","single","scale","level",",","the","channels","number","is","num_anchors","*","4.","coeff_pred","(","Tensor",")",":","Mask","coefficients","for","a","single","scale","level",",","the","channels","number","is","num_anchors","*","num_protos","."]
code: def forward_single(self, x):
      """Forward feature of a single scale level.
  
          Args:
              x (Tensor): Features of a single scale level.
  
          Returns:
              tuple:
                  cls_score (Tensor): Cls scores for a single scale level \
                      the channels number is num_anchors * num_classes.
                  bbox_pred (Tensor): Box energies / deltas for a single scale \
                      level, the channels number is num_anchors * 4.
                  coeff_pred (Tensor): Mask coefficients for a single scale \
                      level, the channels number is num_anchors * num_protos.
          """
      for head_conv in self.head_convs:
          x = head_conv(x)
      cls_score = self.conv_cls(x)
      bbox_pred = self.conv_reg(x)
      coeff_pred = self.conv_coeff(x).tanh()
      return cls_score, bbox_pred, coeff_pred
  
imports: import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  from mmcv.cnn import ConvModule, xavier_init
  from mmcv.runner import force_fp32
  from mmdet.core import build_sampler, fast_nms, images_to_levels, multi_apply
  from ..builder import HEADS, build_loss
  from .anchor_head import AnchorHead
label_desc: Use image node_id 4 for calling the YOLACTHead obj's underlying member method code with example usage: obj.forward_single(x) and returns: cls_score,  bbox_pred,  coeff_pred