class_docstr: Side-Aware Boundary Localization (SABL) for RoI-Head.
  
  Side-Aware features are extracted by conv layers
  with an attention mechanism.
  Boundary Localization with Bucketing and Bucketing Guided Rescoring
  are implemented in BucketingBBoxCoder.
  
  Please refer to https://arxiv.org/abs/1912.04260 for more details.
  
  Args:
      cls_in_channels (int): Input channels of cls RoI feature.             Defaults to 256.
      reg_in_channels (int): Input channels of reg RoI feature.             Defaults to 256.
      roi_feat_size (int): Size of RoI features. Defaults to 7.
      reg_feat_up_ratio (int): Upsample ratio of reg features.             Defaults to 2.
      reg_pre_kernel (int): Kernel of 2D conv layers before             attention pooling. Defaults to 3.
      reg_post_kernel (int): Kernel of 1D conv layers after             attention pooling. Defaults to 3.
      reg_pre_num (int): Number of pre convs. Defaults to 2.
      reg_post_num (int): Number of post convs. Defaults to 1.
      num_classes (int): Number of classes in dataset. Defaults to 80.
      cls_out_channels (int): Hidden channels in cls fcs. Defaults to 1024.
      reg_offset_out_channels (int): Hidden and output channel             of reg offset branch. Defaults to 256.
      reg_cls_out_channels (int): Hidden and output channel             of reg cls branch. Defaults to 256.
      num_cls_fcs (int): Number of fcs for cls branch. Defaults to 1.
      num_reg_fcs (int): Number of fcs for reg branch.. Defaults to 0.
      reg_class_agnostic (bool): Class agnostic regresion or not.             Defaults to True.
      norm_cfg (dict): Config of norm layers. Defaults to None.
      bbox_coder (dict): Config of bbox coder. Defaults 'BucketingBBoxCoder'.
      loss_cls (dict): Config of classification loss.
      loss_bbox_cls (dict): Config of classification loss for bbox branch.
      loss_bbox_reg (dict): Config of regression loss for bbox branch.
docstr: Regress the bbox for the predicted class. Used in Cascade R-CNN.
  
  Args:
      rois (Tensor): shape (n, 4) or (n, 5)
      label (Tensor): shape (n, )
      bbox_pred (list[Tensor]): shape [(n, num_buckets *2),                 (n, num_buckets *2)]
      img_meta (dict): Image meta info.
  
  Returns:
      Tensor: Regressed bboxes, the same shape as input rois.
docstr_tok: ["Regress","the","bbox","for","the","predicted","class",".","Used","in","Cascade","R-CNN",".","Args",":","rois","(","Tensor",")",":","shape","(","n",",","4",")","or","(","n",",","5",")","label","(","Tensor",")",":","shape","(","n",",",")","bbox_pred","(","list","[","Tensor","]",")",":","shape","[","(","n",",","num_buckets","*","2",")",",","(","n",",","num_buckets","*","2",")","]","img_meta","(","dict",")",":","Image","meta","info",".","Returns",":","Tensor",":","Regressed","bboxes",",","the","same","shape","as","input","rois","."]
code: def regress_by_class(self, rois, label, bbox_pred, img_meta):
      """Regress the bbox for the predicted class. Used in Cascade R-CNN.
  
          Args:
              rois (Tensor): shape (n, 4) or (n, 5)
              label (Tensor): shape (n, )
              bbox_pred (list[Tensor]): shape [(n, num_buckets *2), \
                  (n, num_buckets *2)]
              img_meta (dict): Image meta info.
  
          Returns:
              Tensor: Regressed bboxes, the same shape as input rois.
          """
      assert rois.size(1) == 4 or rois.size(1) == 5
  
      if rois.size(1) == 4:
          new_rois, _ = self.bbox_coder.decode(
              rois, bbox_pred, img_meta["img_shape"]
          )
      else:
          bboxes, _ = self.bbox_coder.decode(
              rois[:, 1:], bbox_pred, img_meta["img_shape"]
          )
          new_rois = torch.cat((rois[:, [0]], bboxes), dim=1)
  
      return new_rois
  
imports: import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  from mmcv.cnn import ConvModule, kaiming_init, normal_init, xavier_init
  from mmcv.runner import force_fp32
  from mmdet.core import build_bbox_coder, multi_apply, multiclass_nms
  from mmdet.models.builder import HEADS, build_loss
  from mmdet.models.losses import accuracy
label_desc: Use image node_id 18 for calling the SABLHead obj's underlying member method code with example usage: obj.regress_by_class(rois, label, bbox_pred, img_meta) and returns: new_rois