Skip to content

Commit 2c586aa

Browse files
committed
finish batching for newtonfool
1 parent 1a1d70b commit 2c586aa

File tree

2 files changed

+74
-7
lines changed

2 files changed

+74
-7
lines changed

art/attacks/newtonfool.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ def generate(self, x, **kwargs):
6969

7070
# Compute the gradients and norm
7171
grads = self.classifier.class_gradient(batch, label=l, logits=False)
72+
grads = np.squeeze(grads, axis=1)
7273
norm_grad = np.linalg.norm(np.reshape(grads, (batch.shape[0], -1)), axis=1)
7374

7475
# Theta

art/attacks/newtonfool_unittest.py

Lines changed: 73 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
logger = logging.getLogger('testLogger')
1919

20-
BATCH_SIZE, NB_TRAIN, NB_TEST = 100, 1000, 10
20+
BATCH_SIZE, NB_TRAIN, NB_TEST = 100, 1000, 10000
2121

2222

2323
class Model(nn.Module):
@@ -84,8 +84,30 @@ def test_tfclassifier(self):
8484
tfc.fit(x_train, y_train, batch_size=BATCH_SIZE, nb_epochs=2)
8585

8686
# Attack
87-
nf = NewtonFool(tfc, max_iter=5)
88-
x_test_adv = nf.generate(x_test)
87+
import time
88+
nf = NewtonFool(tfc, max_iter=50)
89+
90+
print("Test Tensorflow....")
91+
starttime = time.clock()
92+
x_test_adv = nf.generate(x_test, batch_size=1)
93+
endtime = time.clock()
94+
print(1, endtime - starttime)
95+
96+
starttime = time.clock()
97+
x_test_adv = nf.generate(x_test, batch_size=10)
98+
endtime = time.clock()
99+
print(10, endtime - starttime)
100+
101+
starttime = time.clock()
102+
x_test_adv = nf.generate(x_test, batch_size=100)
103+
endtime = time.clock()
104+
print(100, endtime - starttime)
105+
106+
starttime = time.clock()
107+
x_test_adv = nf.generate(x_test, batch_size=1000)
108+
endtime = time.clock()
109+
print(1000, endtime - starttime)
110+
89111
self.assertFalse((x_test == x_test_adv).all())
90112

91113
y_pred = tfc.predict(x_test)
@@ -118,8 +140,30 @@ def test_krclassifier(self):
118140
krc.fit(x_train, y_train, batch_size=BATCH_SIZE, nb_epochs=2)
119141

120142
# Attack
121-
nf = NewtonFool(krc, max_iter=5)
122-
x_test_adv = nf.generate(x_test)
143+
import time
144+
nf = NewtonFool(krc, max_iter=50)
145+
146+
print("Test Keras....")
147+
starttime = time.clock()
148+
x_test_adv = nf.generate(x_test, batch_size=1)
149+
endtime = time.clock()
150+
print(1, endtime - starttime)
151+
152+
starttime = time.clock()
153+
x_test_adv = nf.generate(x_test, batch_size=10)
154+
endtime = time.clock()
155+
print(10, endtime - starttime)
156+
157+
starttime = time.clock()
158+
x_test_adv = nf.generate(x_test, batch_size=100)
159+
endtime = time.clock()
160+
print(100, endtime - starttime)
161+
162+
starttime = time.clock()
163+
x_test_adv = nf.generate(x_test, batch_size=1000)
164+
endtime = time.clock()
165+
print(1000, endtime - starttime)
166+
123167
self.assertFalse((x_test == x_test_adv).all())
124168

125169
y_pred = krc.predict(x_test)
@@ -151,8 +195,30 @@ def test_ptclassifier(self):
151195
ptc.fit(x_train, y_train, batch_size=BATCH_SIZE, nb_epochs=1)
152196

153197
# Attack
154-
nf = NewtonFool(ptc, max_iter=5)
155-
x_test_adv = nf.generate(x_test)
198+
import time
199+
nf = NewtonFool(ptc, max_iter=50)
200+
201+
print("Test Pytorch....")
202+
starttime = time.clock()
203+
x_test_adv = nf.generate(x_test, batch_size=1)
204+
endtime = time.clock()
205+
print(1, endtime - starttime)
206+
207+
starttime = time.clock()
208+
x_test_adv = nf.generate(x_test, batch_size=10)
209+
endtime = time.clock()
210+
print(10, endtime - starttime)
211+
212+
starttime = time.clock()
213+
x_test_adv = nf.generate(x_test, batch_size=100)
214+
endtime = time.clock()
215+
print(100, endtime - starttime)
216+
217+
starttime = time.clock()
218+
x_test_adv = nf.generate(x_test, batch_size=1000)
219+
endtime = time.clock()
220+
print(1000, endtime - starttime)
221+
156222
self.assertFalse((x_test == x_test_adv).all())
157223

158224
y_pred = ptc.predict(x_test)

0 commit comments

Comments
 (0)