diff --git a/Filter_Analysis/__pycache__/defense_filters.cpython-312.pyc b/Filter_Analysis/__pycache__/defense_filters.cpython-312.pyc index 5e94778..f26c8e7 100644 Binary files a/Filter_Analysis/__pycache__/defense_filters.cpython-312.pyc and b/Filter_Analysis/__pycache__/defense_filters.cpython-312.pyc differ diff --git a/Filter_Analysis/defense_filters.py b/Filter_Analysis/defense_filters.py index 1fa318a..837ee8d 100644 --- a/Filter_Analysis/defense_filters.py +++ b/Filter_Analysis/defense_filters.py @@ -128,7 +128,7 @@ def filtered(data, batch_size=64, strength=0, filter="gaussian_blur"): bits = 2**strength return bit_depth(data, batch_size, bits) elif filter == "random_noise": - intensity == 0.0005*(2*strength + 1) + intensity = 0.0005*(2*strength + 1) return random_noise(data, batch_size, intensity) else: strength = (2*strength + 1) diff --git a/Filter_Analysis/fgsm.py b/Filter_Analysis/fgsm.py index 16fc7d0..2a16eb3 100644 --- a/Filter_Analysis/fgsm.py +++ b/Filter_Analysis/fgsm.py @@ -85,7 +85,7 @@ def test(model, device, test_loader, epsilon, filter): test_step = 0 for data, target in test_loader: - print("[" + "="*int(20*test_step/len(test_loader)) + " "*(20 - int(20*test_step/len(test_loader))) + "]", f"{100*test_step/len(test_loader)}%", end='\r') + print(filter, f"Epsilon: {epsilon}", "[" + "="*int(1 + 20*test_step/len(test_loader)) + " "*(20 - int(20*test_step/len(test_loader))) + "]", f"{100*test_step/len(test_loader)}%", end='\r') test_step += 1 data, target = data.to(device), target.to(device) @@ -163,18 +163,23 @@ def test(model, device, test_loader, epsilon, filter): return unfiltered_acc, filtered_accuracies -accurracies = {} +accuracies = {} filters = ("gaussian_blur", "gaussian_kuwahara", "mean_kuwahara", "random_noise", "bilateral_filter", "bit_depth", "threshold_filter") for filter in filters: for eps in epsilons: unfiltered_accuracy, filtered_accuracy = test(model, device, test_loader, eps, filter) - if len(accuracies["unfiltered"] < len(epsilons): + if list(accuracies.keys()).count("unfiltered") == 0: + accuracies["unfiltered"] = [] + if len(accuracies["unfiltered"]) < len(epsilons): accuracies["unfiltered"].append(unfiltered_accuracy) + + if list(accuracies.keys()).count(filter) == 0: + accuracies[filter] = [] accuracies[filter].append(filtered_accuracy) -json.dump(accuracies, "fgsm_accuracies.json") +json.dump(accuracies, "fgsm_mnist_accuracies.json") # Plot the results #plt.figure(figsize=(16,9))