docstr: Forward features from the upstream network.
  
  Args:
      feats (tuple[Tensor]): Features from the upstream network, each is
          a 4D-tensor.
  
  Returns:
      tuple:
          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.
          centernesses (list[Tensor]): centerness for each scale level,                     each is a 4D-tensor, the channel number is num_points * 1.
docstr_tok: ["Forward","features","from","the","upstream","network",".","Args",":","feats","(","tuple","[","Tensor","]",")",":","Features","from","the","upstream","network",",","each","is","a","4D-tensor",".","Returns",":","tuple",":","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.","centernesses","(","list","[","Tensor","]",")",":","centerness","for","each","scale","level",",","each","is","a","4D-tensor",",","the","channel","number","is","num_points","*","1","."]
code: def forward(self, feats, data_samples=None):
      """Forward features from the upstream network.
  
          Args:
              feats (tuple[Tensor]): Features from the upstream network, each is
                  a 4D-tensor.
  
          Returns:
              tuple:
                  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.
                  centernesses (list[Tensor]): centerness for each scale level, \
                      each is a 4D-tensor, the channel number is num_points * 1.
          """
  
      return multi_apply(
          self.forward_single, feats[1:], self.scales, self.strides
      )
  
file_path: mmocr/projects/ABCNet/abcnet/model/abcnet_det_head.py
imports: import torch.nn
  from mmcv.cnn import ConvModule, Scale
  from mmdet.models.utils import multi_apply
  from mmocr.models.textdet.heads.base import BaseTextDetHead
  from mmocr.registry import MODELS
label_desc: Use image node_id 6 for calling the ABCNetDetHead obj's underlying member method code with example usage: obj.forward(feats, data_samples) and returns: multi_apply