def forward(self, pred3d, pred2d, inputs):
        """
        mpjpe: mpjpe loss between 3d joints
        keypoint_2d_loss: 2d joints loss compute by criterion_2dpose
        """
        gt_3d_joints = inputs['joints_3d']
        gt_2d_joints = inputs['joints_2d']
        has_3d_joints = inputs['has_3d_joints']
        has_2d_joints = inputs['has_2d_joints']

        loss_3d = mpjpe_focal(pred3d, gt_3d_joints, has_3d_joints)
        loss = self.weight_3d * loss_3d
        epoch = inputs['epoch_id']
        if self.weight_2d > 0:
            weight = self.weight_2d * pow(0.1, (epoch // 8))
            if epoch > 8:
                weight = 0
            loss_2d = keypoint_2d_loss(self.criterion_2dpose, pred2d,
                                       gt_2d_joints, has_2d_joints)
            loss += weight * loss_2d
        return loss

        mpjpe: mpjpe loss between 3d joints
        keypoint_2d_loss: 2d joints loss compute by criterion_2dpose
        
ppdet/modeling/losses/pose3d_loss.py