code: def get_retinanet_blob_names(is_training=True):
      """
      Returns blob names in the order in which they are read by the data
      loader.
  
      N = number of images per minibatch
      A = number of anchors = num_scales * num_aspect_ratios
          (for example 9 used in RetinaNet paper)
      H, W = spatial dimensions (different for each FPN level)
      M = Out of all the anchors generated, depending on the positive/negative IoU
          overlap thresholds, we will have M positive anchors. These are the anchors
          that bounding box branch will regress on.
  
      retnet_cls_labels -> labels for the cls branch for each FPN level
                           Shape: N x A x H x W
  
      retnet_roi_bbox_targets -> targets for the bbox regression branch
                                 Shape: M x 4
  
      retnet_roi_fg_bbox_locs -> for the bbox regression, since we are only
                                 interested in regressing on fg bboxes which are
                                 M in number and the output prediction of the network
                                 is of shape N x (A * 4) x H x W
                                 (in case of non class-specific bbox), so we
                                 store the locations of positive fg boxes in this
                                 blob retnet_roi_fg_bbox_locs of shape M x 4 where
                                 each row looks like: [img_id, anchor_id, x_loc, y_loc]
      """
      # im_info: (height, width, image scale)
      blob_names = ["im_info"]
      assert cfg.FPN.FPN_ON, "RetinaNet uses FPN for dense detection"
      # Same format as RPN blobs, but one per FPN level
      if is_training:
          blob_names += ["retnet_fg_num", "retnet_bg_num"]
          for lvl in range(
              cfg.FPN.RPN_MIN_LEVEL, cfg.FPN.RPN_MAX_LEVEL + 1
          ):
              suffix = "fpn{}".format(lvl)
              blob_names += [
                  "retnet_cls_labels_" + suffix,
                  "retnet_roi_bbox_targets_" + suffix,
                  "retnet_roi_fg_bbox_locs_" + suffix,
              ]
      return blob_names
  
file_path: dense-pose/detectron/roi_data/retinanet.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from __future__ import unicode_literals
  import numpy
  import logging
  import detectron.utils.boxes
  import detectron.roi_data.data_utils
  from detectron.core.config import cfg
label_desc: Use image node_id 1 for calling a global function with example usage: get_retinanet_blob_names(is_training) and returns: blob_names