code: def __init__(self, cfg):
      super(FCOSOutputs, self).__init__()
  
      self.focal_loss_alpha = cfg.CONFIG.MODEL.FCOS.LOSS_ALPHA
      self.focal_loss_gamma = cfg.CONFIG.MODEL.FCOS.LOSS_GAMMA
      self.center_sample = cfg.CONFIG.MODEL.FCOS.CENTER_SAMPLE
      self.radius = cfg.CONFIG.MODEL.FCOS.POS_RADIUS
      self.pre_nms_thresh_train = (
          cfg.CONFIG.MODEL.FCOS.INFERENCE_TH_TRAIN
      )
      self.pre_nms_topk_train = cfg.CONFIG.MODEL.FCOS.PRE_NMS_TOPK_TRAIN
      self.post_nms_topk_train = (
          cfg.CONFIG.MODEL.FCOS.POST_NMS_TOPK_TRAIN
      )
      self.loc_loss_func = IOULoss(cfg.CONFIG.MODEL.FCOS.LOC_LOSS_TYPE)
  
      self.pre_nms_thresh_test = cfg.CONFIG.MODEL.FCOS.INFERENCE_TH_TEST
      self.pre_nms_topk_test = cfg.CONFIG.MODEL.FCOS.PRE_NMS_TOPK_TEST
      self.post_nms_topk_test = cfg.CONFIG.MODEL.FCOS.POST_NMS_TOPK_TEST
      self.nms_thresh = cfg.CONFIG.MODEL.FCOS.NMS_TH
      self.thresh_with_ctr = cfg.CONFIG.MODEL.FCOS.THRESH_WITH_CTR
  
      self.num_classes = cfg.CONFIG.MODEL.FCOS.NUM_CLASSES
      self.strides = cfg.CONFIG.MODEL.FCOS.FPN_STRIDES
  
      # generate sizes of interest
      soi = []
      prev_size = -1
      for s in cfg.CONFIG.MODEL.FCOS.SIZES_OF_INTEREST:
          soi.append([prev_size, s])
          prev_size = s
      soi.append([prev_size, INF])
      self.sizes_of_interest = soi
  
imports: import logging
  import math
  from typing import List, Dict
  import torch
  from torch import nn
  from torch.nn import functional
  from ...nn.shape_spec import ShapeSpec
  from ...nn.deform_conv import DeformConvWithChangeableStride
  from ...nn.group_norm import NaiveGroupNorm
  from ...data.structures import Instances, Boxes
  from ...nn.focal_loss import sigmoid_focal_loss_jit
  from ...nn.nms import ml_nms
  from ...utils.loss import IOULoss
  from ...utils.comm import get_world_size, reduce_sum, compute_locations
label_desc: Use image node_id 1 to create a new FCOSOutputs object from inherited base classes: nn with example: obj = FCOSOutputs(cfg)