src/utils.py [325:341]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    pos_target = target[:, :config.out_features.features_wo_occlusions()]
    pos_input3 = pos_input.reshape((len(pos_input), -1, 3))
    target3 = pos_target.reshape((len(pos_target), -1, 3)).clone()

    par_idx = config.skeleton.parent_idx_vector()
    par_idx[0] = 0
    par_pos_input3 = pos_input3[:, par_idx]
    par_pos_target3 = target3[:, par_idx]

    diff_in = pos_input3 - par_pos_input3
    diff_target = target3 - par_pos_target3

    l_hand_joints, r_hand_joints = config.skeleton.Idx.get_hand_joints()
    l_hand_wo_wrist, r_hand_wo_wrist = l_hand_joints.copy(), r_hand_joints.copy()
    l_hand_wo_wrist.remove(l_hand_wo_wrist[0])
    r_hand_wo_wrist.remove(r_hand_wo_wrist[0])
    pos_loss = (diff_in - diff_target) ** 2
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



src/utils.py [355:371]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    pos_target = target[:, :config.out_features.features_wo_occlusions()]
    pos_input3 = pos_input.reshape((len(pos_input), -1, 3))
    target3 = pos_target.reshape((len(pos_target), -1, 3)).clone()

    par_idx = config.skeleton.parent_idx_vector()
    par_idx[0] = 0
    par_pos_input3 = pos_input3[:, par_idx]
    par_pos_target3 = target3[:, par_idx]

    diff_in = pos_input3 - par_pos_input3
    diff_target = target3 - par_pos_target3

    l_hand_joints, r_hand_joints = config.skeleton.Idx.get_hand_joints()
    l_hand_wo_wrist, r_hand_wo_wrist = l_hand_joints.copy(), r_hand_joints.copy()
    l_hand_wo_wrist.remove(l_hand_wo_wrist[0])
    r_hand_wo_wrist.remove(r_hand_wo_wrist[0])
    pos_loss = (diff_in - diff_target) ** 2
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



