summaryrefslogtreecommitdiff
path: root/eval.py
blob: c0505f8a98278934a0bd0c1768266da98449e023 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import numpy as np

from config import config
from models import Model
from utils.dataset import ClipConditions
from utils.misc import set_visible_cuda

set_visible_cuda(config['system'])
model = Model(config['system'], config['model'], config['hyperparameter'])

dataset_selectors = {
    'nm': {'conditions': ClipConditions({r'nm-0\d'})},
    'bg': {'conditions': ClipConditions({r'nm-0\d', r'bg-0\d'})},
    'cl': {'conditions': ClipConditions({r'nm-0\d', r'cl-0\d'})},
}

accuracy = model.predict_all(config['model']['total_iters'], config['dataset'],
                             dataset_selectors, config['dataloader'])
rank = 5
np.set_printoptions(formatter={'float': '{:5.2f}'.format})
for n in range(rank):
    print(f'===Rank-{n + 1} Accuracy===')
    for (condition, accuracy_c) in accuracy.items():
        acc_excl_identical_view = accuracy_c[:, :, n].fill_diagonal_(0)
        num_gallery_views = (acc_excl_identical_view != 0).sum(0)
        acc_each_angle = acc_excl_identical_view.sum(0) / num_gallery_views
        print('{0}: {1} mean: {2:5.2f}'.format(
            condition, acc_each_angle.cpu().numpy() * 100,
            acc_each_angle.mean() * 100)
        )