Skip to content

Commit 0d5550c

Browse files
authored
Merge pull request #183 from KushajveerSingh/results_diff
Add rank difference, and top-1/top-5 difference from ImageNet-1k validation for the 3 additional test sets
2 parents d72ac0d + 5699e84 commit 0d5550c

File tree

5 files changed

+745
-694
lines changed

5 files changed

+745
-694
lines changed

results/README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,4 @@ An ImageNet test set of 10,000 images sampled from new images roughly 10 years a
3535
A collection of 7500 images covering 200 of the 1000 ImageNet classes. Images are naturally occuring adversarial examples that confuse typical ImageNet classifiers. This is a challenging dataset, your typical ResNet-50 will score 0% top-1.
3636

3737
## TODO
38-
* Add rank difference, and top-1/top-5 difference from ImageNet-1k validation for the 3 additional test sets
3938
* Explore adding a reduced version of ImageNet-C (Corruptions) and ImageNet-P (Perturbations) from https://github.com/hendrycks/robustness. The originals are huge and image size specific.

results/generate_csv_results.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import numpy as np
2+
import pandas as pd
3+
4+
results = {
5+
'results-imagenet.csv' : pd.read_csv('results-imagenet.csv'),
6+
'results-imagenetv2-matched-frequency.csv': pd.read_csv('results-imagenetv2-matched-frequency.csv'),
7+
'results-sketch.csv' : pd.read_csv('results-sketch.csv'),
8+
'results-imagenet-a.csv' : pd.read_csv('results-imagenet-a.csv'),
9+
}
10+
11+
def diff(csv_file):
12+
base_models = results['results-imagenet.csv']['model'].values
13+
csv_models = results[csv_file]['model'].values
14+
15+
rank_diff = np.zeros_like(csv_models, dtype='object')
16+
top1_diff = np.zeros_like(csv_models, dtype='object')
17+
top5_diff = np.zeros_like(csv_models, dtype='object')
18+
19+
for rank, model in enumerate(csv_models):
20+
if model in base_models:
21+
base_rank = int(np.where(base_models==model)[0])
22+
top1_d = results[csv_file]['top1'][rank]-results['results-imagenet.csv']['top1'][base_rank]
23+
top5_d = results[csv_file]['top5'][rank]-results['results-imagenet.csv']['top5'][base_rank]
24+
25+
# rank_diff
26+
if rank == base_rank: rank_diff[rank] = f'='
27+
elif rank > base_rank: rank_diff[rank] = f'-{rank-base_rank}'
28+
else: rank_diff[rank] = f'+{base_rank-rank}'
29+
30+
# top1_diff
31+
if top1_d >= .0: top1_diff[rank] = f'+{top1_d:.3f}'
32+
else : top1_diff[rank] = f'-{abs(top1_d):.3f}'
33+
34+
# top5_diff
35+
if top5_d >= .0: top5_diff[rank] = f'+{top5_d:.3f}'
36+
else : top5_diff[rank] = f'-{abs(top5_d):.3f}'
37+
38+
else:
39+
rank_diff[rank] = 'X'
40+
top1_diff[rank] = 'X'
41+
top5_diff[rank] = 'X'
42+
43+
results[csv_file]['rank_diff'] = rank_diff
44+
results[csv_file]['top1_diff'] = top1_diff
45+
results[csv_file]['top5_diff'] = top5_diff
46+
47+
results[csv_file]['param_count'] = results[csv_file]['param_count'].map('{:,.2f}'.format)
48+
49+
results[csv_file].to_csv(csv_file, index=False, float_format='%.3f')
50+
51+
for csv_file in results:
52+
if csv_file != 'results-imagenet.csv': diff(csv_file)

0 commit comments

Comments
 (0)