def METHOD_NAME(self):
    # Backbone
    body_feats = self.backbone(self.inputs)
    # SSD Head
    if self.training:
        return self.ssd_head(body_feats, self.inputs['image'],
                             self.inputs['gt_bbox'],
                             self.inputs['gt_class'])
    else:
        preds, anchors = self.ssd_head(body_feats, self.inputs['image'])
        bbox, bbox_num, nms_keep_idx = self.post_process(
            preds, anchors, self.inputs['im_shape'],
            self.inputs['scale_factor'])
        if self.use_extra_data:
            extra_data = {}  # record the bbox output before nms, such like scores and nms_keep_idx
            """extra_data:{
                        'scores': predict scores,
                        'nms_keep_idx': bbox index before nms,
                       }
                       """
            preds_logits = preds[1]  # [[1xNumBBoxNumClass]]
            extra_data['scores'] = F.softmax(paddle.concat(
                preds_logits, axis=1)).transpose([0, 2, 1])
            extra_data['logits'] = paddle.concat(
                preds_logits, axis=1).transpose([0, 2, 1])
            extra_data['nms_keep_idx'] = nms_keep_idx  # bbox index before nms
            return bbox, bbox_num, extra_data
        else:
            return bbox, bbox_num