| |
|
| | import os |
| | import json |
| |
|
| | import numpy as np |
| | import pandas as pd |
| | import matplotlib as mpl |
| | import seaborn as sns |
| |
|
| |
|
| | def main(): |
| |
|
| | |
| | dataset = "cifar10" |
| | EXP_NUM = 20 |
| | selected_epochs=[24, 100,200] |
| | k=15 |
| | exps = list(range(EXP_NUM)) |
| | col = np.array(["metric", "method", "hue", "period", "eval"]) |
| | data = np.array([]) |
| | |
| | |
| | metric = "NN" |
| | |
| | eval_path = "/home/xianglin/projects/DVI_data/resnet18_{}/Model/test_evaluation_hybrid.json".format(dataset) |
| | with open(eval_path, "r") as f: |
| | eval = json.load(f) |
| | for epoch_id in range(3): |
| | epoch = selected_epochs[epoch_id] |
| | nn_train = round(eval["nn_train"][str(epoch)][str(k)], 3) |
| | nn_test = round(eval["nn_test"][str(epoch)][str(k)], 3) |
| |
|
| | if len(data) == 0: |
| | data = np.array([[metric, "DeepDebugger", "DeepDebugger(Train)", "{}".format(str(epoch_id)), nn_train]]) |
| | else: |
| | data = np.concatenate((data, np.array([[metric, "DeepDebugger", "DeepDebugger(Train)", "{}".format(str(epoch_id)), nn_train]])), axis=0) |
| | data = np.concatenate((data, np.array([[metric, "DeepDebugger", "DeepDebugger(Test)", "{}".format(str(epoch_id)), nn_test]])), axis=0) |
| | |
| | for epoch_id in range(3): |
| | for exp in exps: |
| | eval_path = "/home/xianglin/projects/DVI_data/resnet18_{}/Model/exp_{}/test_evaluation_hybrid.json".format(dataset, str(exp)) |
| | with open(eval_path, "r") as f: |
| | eval = json.load(f) |
| | epoch = selected_epochs[epoch_id] |
| | nn_train = round(eval["nn_train"][str(epoch)][str(k)], 3) |
| | nn_test = round(eval["nn_test"][str(epoch)][str(k)], 3) |
| |
|
| | data = np.concatenate((data, np.array([[metric, "-OS", "-OS(Train)", "{}".format(str(epoch_id)), nn_train]])), axis=0) |
| | data = np.concatenate((data, np.array([[metric, "-OS", "-OS(Test)", "{}".format(str(epoch_id)), nn_test]])), axis=0) |
| |
|
| |
|
| | |
| | metric = "INV" |
| | |
| | eval_path = "/home/xianglin/projects/DVI_data/resnet18_{}/Model/test_evaluation_hybrid.json".format(dataset) |
| | with open(eval_path, "r") as f: |
| | eval = json.load(f) |
| | for epoch_id in range(3): |
| | epoch = selected_epochs[epoch_id] |
| | ppr_train = round(eval["ppr_train"][str(epoch)], 3) |
| | ppr_test = round(eval["ppr_test"][str(epoch)], 3) |
| | |
| | data = np.concatenate((data, np.array([[metric, "DeepDebugger", "DeepDebugger(Train)", "{}".format(str(epoch_id)), ppr_train]])), axis=0) |
| | data = np.concatenate((data, np.array([[metric, "DeepDebugger", "DeepDebugger(Test)", "{}".format(str(epoch_id)), ppr_test]])), axis=0) |
| | |
| | |
| | for epoch_id in range(3): |
| | for exp in exps: |
| | eval_path = "/home/xianglin/projects/DVI_data/resnet18_{}/Model/exp_{}/test_evaluation_hybrid.json".format(dataset, str(exp)) |
| | with open(eval_path, "r") as f: |
| | eval = json.load(f) |
| | epoch = selected_epochs[epoch_id] |
| | nn_train = round(eval["ppr_train"][str(epoch)], 3) |
| | nn_test = round(eval["ppr_test"][str(epoch)], 3) |
| |
|
| | data = np.concatenate((data, np.array([[metric, "-OS", "-OS(Train)", "{}".format(str(epoch_id)), nn_train]])), axis=0) |
| | data = np.concatenate((data, np.array([[metric, "-OS", "-OS(Test)", "{}".format(str(epoch_id)), nn_test]])), axis=0) |
| |
|
| | |
| | metric= "TLR" |
| | |
| | eval_path = "/home/xianglin/projects/DVI_data/resnet18_{}/Model/test_evaluation_hybrid.json".format(dataset) |
| | with open(eval_path, "r") as f: |
| | eval = json.load(f) |
| | for epoch_id in range(3): |
| | epoch = selected_epochs[epoch_id] |
| | nn_train = round(eval["tlr_train"][str(epoch)], 3) |
| | nn_test = round(eval["tlr_test"][str(epoch)], 3) |
| | data = np.concatenate((data, np.array([[metric, "DeepDebugger", "DeepDebugger(Train)","{}".format(str(epoch_id)), nn_train]])), axis=0) |
| | data = np.concatenate((data, np.array([[metric, "DeepDebugger", "DeepDebugger(Test)", "{}".format(str(epoch_id)), nn_test]])), axis=0) |
| | |
| | |
| | for epoch_id in range(3): |
| | for exp in exps: |
| | eval_path = "/home/xianglin/projects/DVI_data/resnet18_{}/Model/exp_{}/test_evaluation_hybrid.json".format(dataset, str(exp)) |
| | with open(eval_path, "r") as f: |
| | eval = json.load(f) |
| | epoch = selected_epochs[epoch_id] |
| | nn_train = round(eval["tlr_train"][str(epoch)], 3) |
| | nn_test = round(eval["tlr_test"][str(epoch)], 3) |
| | |
| | data = np.concatenate((data, np.array([[metric, "-OS", "-OS(Train)","{}".format(str(epoch_id)), nn_train]])), axis=0) |
| | data = np.concatenate((data, np.array([[metric, "-OS", "-OS(Test)", "{}".format(str(epoch_id)), nn_test]])), axis=0) |
| |
|
| |
|
| | df = pd.DataFrame(data, columns=col) |
| | df[["period"]] = df[["period"]].astype(int) |
| | df[["eval"]] = df[["eval"]].astype(float) |
| |
|
| | |
| |
|
| | pal20c = sns.color_palette('tab20c', 20) |
| | sns.set_theme(style="whitegrid", palette=pal20c) |
| | hue_dict = { |
| | "-OS(Train)": pal20c[0], |
| | "DeepDebugger(Train)": pal20c[8], |
| |
|
| | "-OS(Test)": pal20c[3], |
| | "DeepDebugger(Test)": pal20c[11], |
| | } |
| | sns.palplot([hue_dict[i] for i in hue_dict.keys()]) |
| |
|
| | axes = {'labelsize': 15, |
| | 'titlesize': 15,} |
| | mpl.rc('axes', **axes) |
| | mpl.rcParams['xtick.labelsize'] = 15 |
| |
|
| | hue_list = ["-OS(Train)", "-OS(Test)", "DeepDebugger(Train)", "DeepDebugger(Test)"] |
| |
|
| | fg = sns.catplot( |
| | x="period", |
| | y="eval", |
| | hue="hue", |
| | hue_order=hue_list, |
| | |
| | |
| | col="metric", |
| | ci=0.001, |
| | height=2.5, |
| | aspect=1.0, |
| | data=df, |
| | sharey=False, |
| | kind="box", |
| | palette=[hue_dict[i] for i in hue_list], |
| | legend=True |
| | ) |
| | sns.move_legend(fg, "lower center", bbox_to_anchor=(.42, 0.92), ncol=2, title=None, frameon=False) |
| | mpl.pyplot.setp(fg._legend.get_texts(), fontsize='15') |
| |
|
| | axs = fg.axes[0] |
| | |
| | |
| | |
| | axs[0].set_title("NN") |
| | axs[1].set_title("INV") |
| | axs[2].set_title("Temporal") |
| |
|
| | (fg.despine(bottom=False, right=False, left=False, top=False) |
| | .set_xticklabels(['Early', 'Mid', 'Late']) |
| | .set_axis_labels("", "") |
| | ) |
| | |
| |
|
| | fg.savefig( |
| | "./plot_results/cifar10_segment.png", |
| | dpi=300, |
| | bbox_inches="tight", |
| | pad_inches=0.0, |
| | transparent=True, |
| | ) |
| |
|
| |
|
| | if __name__ == "__main__": |
| | main() |
| |
|
| |
|