可以看到蔬啡,我們的平臺的FGSM算法废士,實際上是參考了DEEPSEC平臺完成的朽缴。
問題出現(xiàn)在evaluation_base.py中
147行執(zhí)行白盒測試的函數(shù)中瞎疼。(我們分別對主要功能使用了GPUtil實時查看了占用顯存。)
GPUtil:可查看當(dāng)前GPU利用率割卖、GPU占用比
在剛進入147行的函數(shù)時前酿,由于已經(jīng)將model傳入顯存,因此此時顯示的占用結(jié)果為
ID | GPU | MEM |
---|---|---|
0 | 0% | 10% |
直到outputs = model(xs)
一句執(zhí)行后鹏溯,顯存上升為19%
接著到adv_xs = arr.generate(xs, ys)
一句罢维,程序進入FGSM算法內(nèi)部,開始生成對抗樣本丙挽。我們平臺目前的FGSM算法
在64行肺孵,outputs = self.model(var_xs)
執(zhí)行后匀借,顯存上升為36%
在70行,loss.backward()
求完loss之后平窘,顯存達到巔峰值56%
一直到FGSM算法執(zhí)行結(jié)束吓肋,return adv_xs
,此時顯示的MEM始終為56%
問題出現(xiàn)瑰艘,當(dāng)回到evaluation_base中的156行后是鬼,顯存仍然為56%。但事實上紫新,generate函數(shù)執(zhí)行完了均蜜,臨時變量應(yīng)該會被回收才對,除非他仍然被某些在cuda上的數(shù)據(jù)所引用芒率。
事實上囤耳,MEM值再也沒有回落過。隨著for循環(huán)不斷進行敲董,新的一輪迭代中MEM又繼續(xù)累計紫皇,變成了69%。想請問一下這是為什么腋寨?