Sefika's picture
Upload 8 files
90555c2
from sklearn.metrics import roc_curve
from sklearn.metrics import auc
from matplotlib import pyplot as plt
from scipy import interp
# import cleverhans
import sys
import pickle
import numpy as np
import warnings
warnings.filterwarnings("ignore")
import os
plt.rcParams.update({"font.size": 14})
## add your path
prefix = +"logs/"
def learning_curves(percent, epsilon, exp, curve_type):
acc_list = []
"Ten fold CVs of ResNet"
BS = 64
init = (32, 32, 1)
sgd = SGD(lr=0.1, momentum=0.9)
model_name = prefix + exp + "/ResNet_" + str(epsilon) + "_" + str(percent)
for j in range(10):
hist_name = model_name + "_" + curve_type + "" + "_" + str(j) + ".pickle"
with open(hist_name, "rb") as f:
acc = pickle.load(f)
acc_list.append(acc)
return acc_list
def learning_curves_plot(train_sizes, mean_acc, std_acc, exp, curve_type):
plt.figure(dpi=80)
# Draw lines
plt.fill_between(
train_sizes, mean_acc - std_acc, mean_acc + std_acc, alpha=0.1, color="r"
)
plt.plot(mean_acc, "-", color="r", label="ResNet")
plt.fill_between(
train_sizes,
mean_list[0] - std_list[0],
mean_list[0] + std_list[0],
alpha=0.1,
color="darkgreen",
)
plt.plot(mean_list[0], "-", color="darkgreen", label="ResNet-0.25 AEs")
plt.fill_between(
train_sizes,
mean_list[1] - std_list[1],
mean_list[1] + std_list[1],
alpha=0.1,
color="darkblue",
)
plt.plot(mean_list[1], "-", color="darkblue", label="ResNet-0.5 AEs")
plt.fill_between(
train_sizes,
mean_list[2] - std_list[2],
mean_list[2] + std_list[2],
alpha=0.1,
color="darkorange",
)
plt.plot(mean_list[2], "-", color="darkorange", label="ResNet-0.75 AEs")
plt.fill_between(
train_sizes,
mean_list[3] - std_list[3],
mean_list[3] + std_list[3],
alpha=0.1,
color="magenta",
)
plt.plot(mean_list[3], "-", color="magenta", label="ResNet-1.0 AEs")
# # Create plot
plt.title("Learning Curves of Models (epsilon={})".format(epsilon))
plt.xlabel("Epoch"), plt.ylabel(curve_type), plt.legend(loc="best")
plt.tight_layout()
plt.savefig(prefix + exp + curve_type + "/" + str(epsilon) + ".png")
train_sizes = [i for i in range(50)]
epsilons = [0.001, 0.003, 0.005, 0.01, 0.03]
percents = [0.25, 0.5, 0.75, 1.0]
Curve_Types = ["loss", "acc"]
Experiment = ["AEModels", "RandomNoisemodels"]
for exp in Experiment:
for curve_type in Curve_Types:
for epsilon in epsilons:
mean_list, std_list = [], []
train_mean_list, train_std_list = [], []
for percent in percents:
acc_list = learning_curves(percent, epsilon, exp, curve_type)
mean_list.append(np.mean(acc_list, axis=0))
std_list.append(np.std(acc_list, axis=0))
learning_curves_plot(train_sizes, mean_acc, std_list, exp, curve_type)