class_docstr: YOLOV3Head Paper link: https://arxiv.org/abs/1804.02767.
  
  Args:
      num_classes (int): The number of object classes (w/o background)
      in_channels (Sequence[int]): Number of input channels per scale.
      out_channels (Sequence[int]): The number of output channels per scale
          before the final 1x1 layer. Default: (1024, 512, 256).
      anchor_generator (:obj:`ConfigDict` or dict): Config dict for anchor
          generator.
      bbox_coder (:obj:`ConfigDict` or dict): Config of bounding box coder.
      featmap_strides (Sequence[int]): The stride of each scale.
          Should be in descending order. Defaults to (32, 16, 8).
      one_hot_smoother (float): Set a non-zero value to enable label-smooth
          Defaults to 0.
      conv_cfg (:obj:`ConfigDict` or dict, optional): Config dict for
          convolution layer. Defaults to None.
      norm_cfg (:obj:`ConfigDict` or dict): Dictionary to construct and
          config norm layer. Defaults to dict(type='BN', requires_grad=True).
      act_cfg (:obj:`ConfigDict` or dict): Config dict for activation layer.
          Defaults to dict(type='LeakyReLU', negative_slope=0.1).
      loss_cls (:obj:`ConfigDict` or dict): Config of classification loss.
      loss_conf (:obj:`ConfigDict` or dict): Config of confidence loss.
      loss_xy (:obj:`ConfigDict` or dict): Config of xy coordinate loss.
      loss_wh (:obj:`ConfigDict` or dict): Config of wh coordinate loss.
      train_cfg (:obj:`ConfigDict` or dict, optional): Training config of
          YOLOV3 head. Defaults to None.
      test_cfg (:obj:`ConfigDict` or dict, optional): Testing config of
          YOLOV3 head. Defaults to None.
docstr: Generate matching bounding box prior and converted GT.
  
  Args:
      anchors (List[Tensor]): Multi-level anchors of the image.
      responsible_flags (List[Tensor]): Multi-level responsible flags of
          anchors
      gt_instances (:obj:`InstanceData`): Ground truth of instance
          annotations. It should includes ``bboxes`` and ``labels``
          attributes.
  
  Returns:
      tuple:
          target_map (Tensor): Predication target map of each
              scale level, shape (num_total_anchors,
              5+num_classes)
          neg_map (Tensor): Negative map of each scale level,
              shape (num_total_anchors,)
docstr_tok: ["Generate","matching","bounding","box","prior","and","converted","GT",".","Args",":","anchors","(","List","[","Tensor","]",")",":","Multi-level","anchors","of","the","image",".","responsible_flags","(","List","[","Tensor","]",")",":","Multi-level","responsible","flags","of","anchors","gt_instances","(",":","obj",":","`","InstanceData","`",")",":","Ground","truth","of","instance","annotations",".","It","should","includes","``","bboxes","``","and","``","labels","``","attributes",".","Returns",":","tuple",":","target_map","(","Tensor",")",":","Predication","target","map","of","each","scale","level",",","shape","(","num_total_anchors",",","5+num_classes",")","neg_map","(","Tensor",")",":","Negative","map","of","each","scale","level",",","shape","(","num_total_anchors",",",")"]
code: def _get_targets_single(
      self,
      anchors: List[Tensor],
      responsible_flags: List[Tensor],
      gt_instances: InstanceData,
  ) -> tuple:
      """Generate matching bounding box prior and converted GT.
  
      Args:
          anchors (List[Tensor]): Multi-level anchors of the image.
          responsible_flags (List[Tensor]): Multi-level responsible flags of
              anchors
          gt_instances (:obj:`InstanceData`): Ground truth of instance
              annotations. It should includes ``bboxes`` and ``labels``
              attributes.
  
      Returns:
          tuple:
              target_map (Tensor): Predication target map of each
                  scale level, shape (num_total_anchors,
                  5+num_classes)
              neg_map (Tensor): Negative map of each scale level,
                  shape (num_total_anchors,)
      """
      gt_bboxes = gt_instances.bboxes
      gt_labels = gt_instances.labels
      anchor_strides = []
      for i in range(len(anchors)):
          anchor_strides.append(
              torch.tensor(
                  self.featmap_strides[i], device=gt_bboxes.device
              ).repeat(len(anchors[i]))
          )
      concat_anchors = torch.cat(anchors)
      concat_responsible_flags = torch.cat(responsible_flags)
  
      anchor_strides = torch.cat(anchor_strides)
      assert (
          len(anchor_strides)
          == len(concat_anchors)
          == len(concat_responsible_flags)
      )
      pred_instances = InstanceData(
          priors=concat_anchors,
          responsible_flags=concat_responsible_flags,
      )
  
      assign_result = self.assigner.assign(pred_instances, gt_instances)
      sampling_result = self.sampler.sample(
          assign_result, pred_instances, gt_instances
      )
  
      target_map = concat_anchors.new_zeros(
          concat_anchors.size(0), self.num_attrib
      )
  
      target_map[sampling_result.pos_inds, :4] = self.bbox_coder.encode(
          sampling_result.pos_priors,
          sampling_result.pos_gt_bboxes,
          anchor_strides[sampling_result.pos_inds],
      )
  
      target_map[sampling_result.pos_inds, 4] = 1
  
      gt_labels_one_hot = F.one_hot(
          gt_labels, num_classes=self.num_classes
      ).float()
      if self.one_hot_smoother != 0:  # label smooth
          gt_labels_one_hot = (
              gt_labels_one_hot * (1 - self.one_hot_smoother)
              + self.one_hot_smoother / self.num_classes
          )
      target_map[sampling_result.pos_inds, 5:] = gt_labels_one_hot[
          sampling_result.pos_assigned_gt_inds
      ]
  
      neg_map = concat_anchors.new_zeros(
          concat_anchors.size(0), dtype=torch.uint8
      )
      neg_map[sampling_result.neg_inds] = 1
  
      return target_map, neg_map
  
imports: import copy
  import warnings
  from typing import List, Optional, Sequence, Tuple
  import torch
  import torch.nn
  import torch.nn.functional
  from mmcv.cnn import ConvModule, is_norm
  from mmengine.model import bias_init_with_prob, constant_init, normal_init
  from mmengine.structures import InstanceData
  from torch import Tensor
  from mmdet.registry import MODELS, TASK_UTILS
  from mmdet.utils import ConfigType, InstanceList, OptConfigType, OptInstanceList
  from ..task_modules.samplers import PseudoSampler
  from ..utils import filter_scores_and_topk, images_to_levels, multi_apply
  from .base_dense_head import BaseDenseHead
label_desc: Use image node_id 11 for calling the YOLOV3Head obj's underlying member method code with example usage: obj._get_targets_single(anchors, responsible_flags, gt_instances) and returns: target_map,  neg_map