Spaces:
Build error
Build error
Download utils/show_performance.py from DIaac/FGSM_attack_demo: direct link, hf CLI and curl.
- Browser
- Download file 1.88 kB
-
https://huggingface.co/spaces/DIaac/FGSM_attack_demo/resolve/main/utils/show_performance.py
- Command line
-
hf download hf://spaces/DIaac/FGSM_attack_demo/utils/show_performance.py
-
curl -L -o show_performance.py https://huggingface.co/spaces/DIaac/FGSM_attack_demo/resolve/main/utils/show_performance.py
1.88 kB
| import os | |
| import matplotlib.pyplot as plt | |
| import numpy as np | |
| from .show_evaluation import fgsm_evaluate, construct_CREI | |
| def show_performance(model_name, batch_size, dataset): | |
| epsilons = np.arange(0, 0.3, 0.01) # Create a range of epsilon values | |
| if dataset == "CIFAR-10": | |
| epsilons = np.arange(0, 0.3, 0.01) | |
| elif dataset == "CIFAR-100": | |
| epsilons = np.arange(0, 0.3, 0.01) | |
| accuracies = [] | |
| correct_confidences = [] | |
| incorrect_confidences = [] | |
| creis = [] | |
| metrics = [] | |
| for epsilon in epsilons: | |
| acc_before, conf_correct_before, conf_incorrect_before = fgsm_evaluate(model_name, 0, batch_size, dataset) | |
| acc_after, conf_correct_after, conf_incorrect_after = fgsm_evaluate(model_name, epsilon, batch_size, dataset) | |
| crei = construct_CREI(acc_before, acc_after, conf_correct_before, conf_correct_after, conf_incorrect_before, conf_incorrect_after) | |
| accuracies.append(acc_after) | |
| correct_confidences.append(conf_correct_after) | |
| incorrect_confidences.append(conf_incorrect_after) | |
| creis.append(crei) | |
| metrics.append([acc_after, conf_correct_after, conf_incorrect_after, crei]) | |
| # Create the first figure for the line plots | |
| fig1, ax1 = plt.subplots(figsize=(10, 6)) | |
| ax1.plot(epsilons, accuracies, label='$Acc$') | |
| ax1.plot(epsilons, correct_confidences, label=r'$Conf_+$', linestyle='--') | |
| ax1.plot(epsilons, incorrect_confidences, label=r'$Conf_-$', linestyle='--') | |
| ax1.plot(epsilons, creis, label='$CREI$') | |
| ax1.set_xlabel(r'$\epsilon$', fontsize=20) | |
| ax1.set_title('Performance over Epsilon for model {}'.format(model_name)) | |
| ax1.legend() | |
| ax1.grid(True) | |
| base_name, extension = os.path.splitext(model_name) | |
| fig1.savefig(f'./attachments/PoE/{dataset}/{base_name}_PoE.png') | |
| return fig1 | |