CoolFace
Apppublic

DIaac/FGSM_attack_demo

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
show_robustness.py27 linesDownload Raw Back to utils
1from .show_evaluation import fgsm_evaluate, construct_CREI
2
3import pandas as pd
4
5def show_robustness(models_name, epsilon, batch_size, dataset):
6    results = {}
7    for model_name in models_name:
8        acc_before, conf_correct_before, conf_incorrect_before = fgsm_evaluate(model_name, 0, batch_size, dataset)
9        acc_after, conf_correct_after, conf_incorrect_after = fgsm_evaluate(model_name, epsilon, batch_size, dataset)
10        crei = construct_CREI(acc_before, acc_after, conf_correct_before, conf_correct_after, conf_incorrect_before, conf_incorrect_after)
11        results[model_name] = {
12            'CREI': crei,
13            'Accuracy': acc_after,
14            'Correct Confidence': conf_correct_after,
15            'Incorrect Confidence': conf_incorrect_after,
16            'Accuracy Difference': acc_after - acc_before,
17            'Correct Confidence Difference': conf_correct_after - conf_correct_before,
18            'Incorrect Confidence Difference': conf_incorrect_after - conf_incorrect_before
19        }
20
21    df = pd.DataFrame(results).T
22    df.reset_index(inplace=True)
23    df.rename(columns={'index': 'Model'}, inplace=True)
24    df['Rank'] = df['CREI'].rank(ascending=True)
25    df = df.sort_values(by='Rank')
26    df = df[['Model', 'Rank', 'CREI', 'Accuracy', 'Correct Confidence', 'Incorrect Confidence', 'Accuracy Difference', 'Correct Confidence Difference', 'Incorrect Confidence Difference']]
27    return df