in mapillary_sls/utils/eval.py [0:0]
def apk(pidx, rank, k):
if len(rank)>k:
rank = rank[:k]
score = 0.0
num_hits = 0.0
for i,p in enumerate(rank):
if p in pidx and p not in rank[:i]:
num_hits += 1.0
score += num_hits / (i+1.0)
return score / min(len(pidx), k)