def METHOD_NAME(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