def METHOD_NAME(preds, target):
    preds, target = preds.numpy(), target.numpy()
    if preds.ndim == 2:
        mean_pred = np.mean(preds, axis=0)
        mean_gt = np.mean(target, axis=0)
        std_pred = np.std(preds, axis=0)
        std_gt = np.std(target, axis=0)
        pearson = np.stack([pearsonr(t, p)[0] for t, p in zip(target.T, preds.T)])
    else:
        mean_pred = np.mean(preds)
        mean_gt = np.mean(target)
        std_pred = np.std(preds)
        std_gt = np.std(target)
        pearson = pearsonr(target, preds)[0]
    return 2.0 * pearson * std_pred * std_gt / (std_pred**2 + std_gt**2 + (mean_pred - mean_gt) ** 2)