From 5c911219b9cc6cfa332bfbf24a05b90c3c056548 Mon Sep 17 00:00:00 2001 From: Adog64 Date: Tue, 23 Apr 2024 17:12:30 -0400 Subject: [PATCH] Debugged code to run in background --- .../defense_filters.cpython-312.pyc | Bin 6310 -> 7188 bytes Filter_Analysis/defense_filters.py | 2 +- Filter_Analysis/fgsm.py | 13 +++++++++---- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Filter_Analysis/__pycache__/defense_filters.cpython-312.pyc b/Filter_Analysis/__pycache__/defense_filters.cpython-312.pyc index 5e94778bbb74ab28017e284a0b8b34ee1ce8d3df..f26c8e7d3a47b68637fcfed233a931a6c40db1cd 100644 GIT binary patch delta 1360 zcmZ`&O>7%Q6yDig?~lFfwY`qxq&Poy)Mmp0Ck4f!CUs~6C=fRRN~9jBsK)szP^!%y zTF1d4aWE1{b{2snB(x{wiXMV|DG~=NaR6~y+m&i1M(PnGRSFb|3j*HkCJH|Aqg|hvX=t!pB!B|tCsyybiI5!F(+a619XYU683-O8)Uu^RewY&1iG@ zfjpD<^g#hLc{(Rhl=*qjV&o{u`6w#S<~=C@d^By^p+26)9!z7#JP4gJGm%)I#%1&% zly#mc4^cExocVU-d6vDhZkTr?!vPVT%Q$=8SkqsG@``yOFqvLPMbsJ?v6gn$tHJ8* zt={^;`2E;aJvQ}iycwImADgSk=DyE1V=w*ihP`z0$JKi5wW3l%4Wa*lL7rvvANhQN zgXI|b9%T?keMaROjNXLn(4&}!6TyZslY=s5$zirw15mEysXWTFUlA_ID}?EBm?4J= zcd_L$4y$kt1nucUa|B(0MtpZG(sYY6$Xz(%P`P7jH+qYP#)8v0V312Z=D-0~=-c8k z6Odj9={LkfV8PuPecRUslN^|Az?offHbHk`^iNkG4XdXH-HvK@>!_;{-) zQo2#TWDS>JxAb~gD~fGp&|XS_+ zVG9XTpKgf5t#E&3rchbinXd+SGWGD|WTg|8S!=Ai-c*vdkbDsCDXo>~tzbD*6k5Ju z>2kw2(pHD8u$8+r`rQlm)WSVAV@sKqtlGU=L)O}A+?uV9-4X7oGqyD2W*sh z++hsnWk@?pV;qR%cP9SB0T<-K5vLP?=m<=Hbl#o2V*c5?K;e+aS|| oKNX>U%KI}lxKD-lDd~5?+>8!~A592o{2(GC_K&cNo^dw)FEHUi?f?J) delta 540 zcmbPYvCNR~G%qg~0}!xjOQikco5&}@m^M+}z?wUSrG+tyJ%u}k6-aZW@T9N-Y0ebh z6m}rZmBN?80i?N8_)|E6G*5~^3Kx*(tz^^`+&CwcQ9MUKBR@A)zc?eYs329}B|o_| zH#M)McrqVTJ|pMmI;J`%M&ZqWS$LTk~n533NyCt;vew2AfZEU0`Cf z0P*Jm`9_;B^7b+@I&Y2_n8wWR2NITJoGi$$zgb&^hmp}?atxo;WLrTmelrG!TGkro z8dgc5ni{6b8$|;IYM83HfgF|^RvVyTkHzE%Lcx=>#AGK22(wLIBIeA?TUeTySCUzk zSdy8aH~F=gqBwVPUSdIfa(+&JQE`zsP**z0${8S+Sj01SFy4?;Sr9lga|Q23In(R1 zwijh>_atAIb-FI=c~RE$jOu0CfD3_f7iHr*_-8O);*k2l%*Yx)nV-)rPLt`S1JJ0K ztUyAOsmKRNrTfILmU$zjsI z<|`SBl!3e=J|OXn!zMRBr8Fnit|$n|Wd!14OCSMs5F_Jl2Clmd^0yg;ZZq(F;+lM4 OT9NCE5eK6oSUUiJ_l(Q{ 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))