def __init__(self,
                 backbone='ResNet',
                 neck='ChannelMapper',
                 bbox_head='PETRHead'):
        """
        PETR, see https://openaccess.thecvf.com/content/CVPR2022/papers/Shi_End-to-End_Multi-Person_Pose_Estimation_With_Transformers_CVPR_2022_paper.pdf

        Args:
            backbone (nn.Layer): backbone instance
            neck (nn.Layer): neck between backbone and head
            bbox_head (nn.Layer): model output and loss
        """
        super(PETR, self).__init__()
        self.backbone = backbone
        if neck is not None:
            self.with_neck = True
        self.neck = neck
        self.bbox_head = bbox_head
        self.deploy = False

        PETR, see https://openaccess.thecvf.com/content/CVPR2022/papers/Shi_End-to-End_Multi-Person_Pose_Estimation_With_Transformers_CVPR_2022_paper.pdf

        Args:
            backbone (nn.Layer): backbone instance
            neck (nn.Layer): neck between backbone and head
            bbox_head (nn.Layer): model output and loss
        
ppdet/modeling/architectures/keypoint_petr.py