From 41c516364068bb5a5dee9af73c9c8dd9045f5ed9 Mon Sep 17 00:00:00 2001 From: liut0012 <43602411+liut0012@users.noreply.github.com> Date: Fri, 11 Jan 2019 15:41:27 +0800 Subject: [PATCH] Update evaluate.py correct a bug which cause precision to be of integer and thus is always zero --- cirtorch/utils/evaluate.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cirtorch/utils/evaluate.py b/cirtorch/utils/evaluate.py index 9b3ae60..431a962 100644 --- a/cirtorch/utils/evaluate.py +++ b/cirtorch/utils/evaluate.py @@ -102,7 +102,7 @@ def compute_map(ranks, gnd, kappas=[]): pos += 1 # get it to 1-based for j in np.arange(len(kappas)): kq = min(max(pos), kappas[j]); - prs[i, j] = (pos <= kq).sum() / kq + prs[i, j] = (pos <= kq).astype(float).sum() / kq pr = pr + prs[i, :] map = map / (nq - nempty) @@ -146,4 +146,4 @@ def compute_map_and_print(dataset, ranks, gnd, kappas=[1, 5, 10]): mapH, apsH, mprH, prsH = compute_map(ranks, gnd_t, kappas) print('>> {}: mAP E: {}, M: {}, H: {}'.format(dataset, np.around(mapE*100, decimals=2), np.around(mapM*100, decimals=2), np.around(mapH*100, decimals=2))) - print('>> {}: mP@k{} E: {}, M: {}, H: {}'.format(dataset, kappas, np.around(mprE*100, decimals=2), np.around(mprM*100, decimals=2), np.around(mprH*100, decimals=2))) \ No newline at end of file + print('>> {}: mP@k{} E: {}, M: {}, H: {}'.format(dataset, kappas, np.around(mprE*100, decimals=2), np.around(mprM*100, decimals=2), np.around(mprH*100, decimals=2)))