class_docstr: Anchor-free head (FCOS, Fovea, RepPoints, etc.).
  
  Args:
      num_classes (int): Number of categories excluding the background
          category.
      in_channels (int): Number of channels in the input feature map.
      feat_channels (int): Number of hidden channels. Used in child classes.
      stacked_convs (int): Number of stacking convs of the head.
      strides (tuple): Downsample factor of each feature map.
      dcn_on_last_conv (bool): If true, use dcn in the last layer of
          towers. Default: False.
      conv_bias (bool | str): If specified as `auto`, it will be decided by
          the norm_cfg. Bias of conv will be set as True if `norm_cfg` is
          None, otherwise False. Default: "auto".
      loss_cls (dict): Config of classification loss.
      loss_bbox (dict): Config of localization loss.
      conv_cfg (dict): Config dict for convolution layer. Default: None.
      norm_cfg (dict): Config dict for normalization layer. Default: None.
      train_cfg (dict): Training config of anchor head.
      test_cfg (dict): Testing config of anchor head.
class_docstr_tok: ["Anchor-free","head","(","FCOS",",","Fovea",",","RepPoints",",","etc.",")",".","Args",":","num_classes","(","int",")",":","Number","of","categories","excluding","the","background","category",".","in_channels","(","int",")",":","Number","of","channels","in","the","input","feature","map",".","feat_channels","(","int",")",":","Number","of","hidden","channels",".","Used","in","child","classes",".","stacked_convs","(","int",")",":","Number","of","stacking","convs","of","the","head",".","strides","(","tuple",")",":","Downsample","factor","of","each","feature","map",".","dcn_on_last_conv","(","bool",")",":","If","true",",","use","dcn","in","the","last","layer","of","towers",".","Default",":","False",".","conv_bias","(","bool","|","str",")",":","If","specified","as","`","auto","`",",","it","will","be","decided","by","the","norm_cfg",".","Bias","of","conv","will","be","set","as","True","if","`","norm_cfg","`","is","None",",","otherwise","False",".","Default",":","``","auto","''",".","loss_cls","(","dict",")",":","Config","of","classification","loss",".","loss_bbox","(","dict",")",":","Config","of","localization","loss",".","conv_cfg","(","dict",")",":","Config","dict","for","convolution","layer",".","Default",":","None",".","norm_cfg","(","dict",")",":","Config","dict","for","normalization","layer",".","Default",":","None",".","train_cfg","(","dict",")",":","Training","config","of","anchor","head",".","test_cfg","(","dict",")",":","Testing","config","of","anchor","head","."]
docstr: Forward features from the upstream network.
  
  Args:
      feats (tuple[Tensor]): Features from the upstream network, each is
          a 4D-tensor.
  
  Returns:
      tuple: Usually contain classification scores and bbox predictions.
          cls_scores (list[Tensor]): Box scores for each scale level,
              each is a 4D-tensor, the channel number is
              num_points * num_classes.
          bbox_preds (list[Tensor]): Box energies / deltas for each scale
              level, each is a 4D-tensor, the channel number is
              num_points * 4.
docstr_tok: ["Forward","features","from","the","upstream","network",".","Args",":","feats","(","tuple","[","Tensor","]",")",":","Features","from","the","upstream","network",",","each","is","a","4D-tensor",".","Returns",":","tuple",":","Usually","contain","classification","scores","and","bbox","predictions",".","cls_scores","(","list","[","Tensor","]",")",":","Box","scores","for","each","scale","level",",","each","is","a","4D-tensor",",","the","channel","number","is","num_points","*","num_classes",".","bbox_preds","(","list","[","Tensor","]",")",":","Box","energies","\/","deltas","for","each","scale","level",",","each","is","a","4D-tensor",",","the","channel","number","is","num_points","*","4","."]
code: def forward(self, feats):
      """Forward features from the upstream network.
  
      Args:
          feats (tuple[Tensor]): Features from the upstream network, each is
              a 4D-tensor.
  
      Returns:
          tuple: Usually contain classification scores and bbox predictions.
              cls_scores (list[Tensor]): Box scores for each scale level,
                  each is a 4D-tensor, the channel number is
                  num_points * num_classes.
              bbox_preds (list[Tensor]): Box energies / deltas for each scale
                  level, each is a 4D-tensor, the channel number is
                  num_points * 4.
      """
      return multi_apply(self.forward_single, feats)[:2]
  
imports: from abc import abstractmethod
  import torch
  import torch.nn
  from mmcv.cnn import ConvModule, bias_init_with_prob, normal_init
  from mmcv.runner import force_fp32
  from mmdet.core import multi_apply
  from ..builder import HEADS, build_loss
  from .base_dense_head import BaseDenseHead
  from .dense_test_mixins import BBoxTestMixin
label_desc: Use image node_id 8 for calling the AnchorFreeHead obj's underlying member method code with example usage: obj.forward(feats) and returns: multi_apply