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_iter'], 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()
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)
)
|