Closed hkthirano closed 4 years ago
Hi @hkthirano Thank you very much for using ART and asking this question! Could you please provide more information/code about how you define the ART classifier and your model? Does your model predict probabilities or logits?
@beat-buesser I agree with @hkthirano that there is a bug.
batch
is equal to x_adv[batch_index_1:batch_index_2]
(line in here ) and operations on batch
are in-place, which will cause x_adv2
will always be 0 (line in here).
# art/attacks/evasion/deepfool.py
100 : batch = x_adv[batch_index_1:batch_index_2]
....
142: batch[active_indices] += r_var[active_indices]
...
164: x_adv2 = (1 + self.epsilon) * (batch - x_adv[batch_index_1:batch_index_2])
Deepfool does not work well.
Maybe because
batch
andx_adv[batch_index_1:batch_index_2]
are eaual, overshoot parameter is zero.If we change it like this, it works well.