in mapillary_sls/utils/eval.py [0:0]
def eval(query_keys, positive_keys, predictions, ks = [1, 5, 10, 20]):
# ensure that the positive and predictions are for the same elements
pred_queries = predictions[:,0:1]
pred2gt = [np.where(pred_queries == key)[0][0] for key in query_keys]
# change order to fit with ground truth
predictions = predictions[pred2gt,1:]
recall_at_k = recall(predictions, positive_keys, ks)
metrics = {}
for i, k in enumerate(ks):
metrics['recall@{}'.format(k)] = recall_at_k[i]
metrics['map@{}'.format(k)] = mapk(predictions, positive_keys, k)
return metrics