def EPE(input_flow, target_flow, sparse=False, mean=True): EPE_map = torch.norm(target_flow-input_flow,2,1) batch_size = EPE_map.size(0) if sparse: # invalid flow is defined with both flow coordinates to be exactly 0 mask = (target_flow[:,0] == 0) & (target_flow[:,1] == 0) EPE_map = EPE_map[~mask] if mean: return EPE_map.mean() else: return EPE_map.sum()/batch_size
时间: 2024-04-25 13:27:09 浏览: 61
PyPI 官网下载 | torch_sparse-0.6.12.tar.gz
5星 · 资源好评率100%
这段代码是用来计算光流场误差(End Point Error,EPE)的,其中input_flow表示输入的光流场,target_flow表示目标光流场。如果sparse参数为True,则会忽略无效的光流向量,即目标光流场中两个坐标都为0的向量。如果mean参数为True,则返回所有有效光流向量的平均EPE;否则返回所有有效光流向量的总EPE除以批次大小。
阅读全文