parameters: (self, bboxes_in, scores_in)
return_statement: return bboxes_in, F.softmax(scores_in, dim=-1)
docstring: Do scale and transform from xywh to ltrb
              suppose input Nx4xnum_bbox Nxlabel_numxnum_bbox
docstring_summary: Do scale and transform from xywh to ltrb
              suppose input Nx4xnum_bbox Nxlabel_numxnum_bbox
docstring_tokens: Do scale and transform from xywh to ltrb suppose input Nx4xnum_bbox Nxlabel_numxnum_bbox
function: def scale_back_batch(self, bboxes_in, scores_in):
          """
              Do scale and transform from xywh to ltrb
              suppose input Nx4xnum_bbox Nxlabel_numxnum_bbox
          """
          if bboxes_in.device == torch.device("cpu"):
              self.dboxes = self.dboxes.cpu()
              self.dboxes_xywh = self.dboxes_xywh.cpu()
          else:
              self.dboxes = self.dboxes.cuda()
              self.dboxes_xywh = self.dboxes_xywh.cuda()
              
          bboxes_in = bboxes_in.permute(0, 2, 1)
          scores_in = scores_in.permute(0, 2, 1)
          #print(bboxes_in.device, scores_in.device, self.dboxes_xywh.device)
  
          bboxes_in[:, :, :2] = self.scale_xy*bboxes_in[:, :, :2]
          bboxes_in[:, :, 2:] = self.scale_wh*bboxes_in[:, :, 2:]
  
          bboxes_in[:, :, :2] = bboxes_in[:, :, :2]*self.dboxes_xywh[:, :, 2:] + self.dboxes_xywh[:, :, :2]
          bboxes_in[:, :, 2:] = bboxes_in[:, :, 2:].exp()*self.dboxes_xywh[:, :, 2:]
  
          # Transform format to ltrb 
          l, t, r, b = bboxes_in[:, :, 0] - 0.5*bboxes_in[:, :, 2],\
                       bboxes_in[:, :, 1] - 0.5*bboxes_in[:, :, 3],\
                       bboxes_in[:, :, 0] + 0.5*bboxes_in[:, :, 2],\
                       bboxes_in[:, :, 1] + 0.5*bboxes_in[:, :, 3]
  
          bboxes_in[:, :, 0] = l
          bboxes_in[:, :, 1] = t
          bboxes_in[:, :, 2] = r
          bboxes_in[:, :, 3] = b
  
          return bboxes_in, F.softmax(scores_in, dim=-1)
function_tokens: def scale_back_batch ( self , bboxes_in , scores_in ) : if bboxes_in . device == torch . device ( "cpu" ) : self . dboxes = self . dboxes . cpu ( ) self . dboxes_xywh = self . dboxes_xywh . cpu ( ) else : self . dboxes = self . dboxes . cuda ( ) self . dboxes_xywh = self . dboxes_xywh . cuda ( ) bboxes_in = bboxes_in . permute ( 0 , 2 , 1 ) scores_in = scores_in . permute ( 0 , 2 , 1 ) #print(bboxes_in.device, scores_in.device, self.dboxes_xywh.device) bboxes_in [ : , : , : 2 ] = self . scale_xy * bboxes_in [ : , : , : 2 ] bboxes_in [ : , : , 2 : ] = self . scale_wh * bboxes_in [ : , : , 2 : ] bboxes_in [ : , : , : 2 ] = bboxes_in [ : , : , : 2 ] * self . dboxes_xywh [ : , : , 2 : ] + self . dboxes_xywh [ : , : , : 2 ] bboxes_in [ : , : , 2 : ] = bboxes_in [ : , : , 2 : ] . exp ( ) * self . dboxes_xywh [ : , : , 2 : ] # Transform format to ltrb  l , t , r , b = bboxes_in [ : , : , 0 ] - 0.5 * bboxes_in [ : , : , 2 ] , bboxes_in [ : , : , 1 ] - 0.5 * bboxes_in [ : , : , 3 ] , bboxes_in [ : , : , 0 ] + 0.5 * bboxes_in [ : , : , 2 ] , bboxes_in [ : , : , 1 ] + 0.5 * bboxes_in [ : , : , 3 ] bboxes_in [ : , : , 0 ] = l bboxes_in [ : , : , 1 ] = t bboxes_in [ : , : , 2 ] = r bboxes_in [ : , : , 3 ] = b return bboxes_in , F . softmax ( scores_in , dim = - 1 )