注意传入数据不要传错了,不然梯度会出问题
注意维度pred_depth是11280717,mask是1280*717
data7和data6里面照片的分辨率不一样
`def pcc_loss(pred_depth, gt_depth, mask, eps=1e-6, min_valid=50):
if pred_depth.dim() == 3:
pred_depth = pred_depth.squeeze(0)
if gt_depth.dim() == 3:
gt_depth = gt_depth.squeeze(0)
mask = mask > 0if mask.sum() < min_valid:return torch.tensor(0.0, device=pred_depth.device)pred = pred_depth[mask]
gt = gt_depth[mask]pred = pred - pred.mean()
gt = gt - gt.mean()pred_std = pred.std()
gt_std = gt.std()corr = (pred * gt).mean() / (pred_std * gt_std + eps)return 1.0 - corr`