def METHOD_NAME(self, inputs: Tensor, data_samples: SampleList) -> SampleList:
    """Predict results from a batch of inputs and data samples with post-
    processing.
    Args:
        inputs (Tensor): Inputs with shape (N, C, H, W)
        data_samples (List[:obj:`PoseDataSample`]): The batch
            data samples
    Returns:
        list[:obj:`PoseDataSample`]: The pose estimation results of the
        input images. The return value is `PoseDataSample` instances with
        ``pred_instances`` and ``pred_fields``(optional) field , and
        ``pred_instances`` usually contains the following keys:
            - keypoints (Tensor): predicted keypoint coordinates in shape
                (num_instances, K, D) where K is the keypoint number and D
                is the keypoint dimension
            - keypoint_scores (Tensor): predicted keypoint scores in shape
                (num_instances, K)
    """
    assert self.with_head, (
        'The model must have head to perform prediction.')
    if self.test_cfg.get('flip_test', False):
        _feats = self.extract_feat(inputs)
        _feats_flip = self.extract_feat(inputs.flip(-1))
        feats = [_feats, _feats_flip]
    else:
        feats = self.extract_feat(inputs)
    preds = self.head.METHOD_NAME(feats, data_samples, test_cfg=self.test_cfg)
    if isinstance(preds, tuple):
        batch_pred_instances, batch_pred_fields = preds
    else:
        batch_pred_instances = preds
        batch_pred_fields = None
    results = self.add_pred_to_datasample(batch_pred_instances,
                                          batch_pred_fields, data_samples)
    return results