9bc56cc177b7997d6b4a30d204a08ef95a03a343,art/attacks/virtual_adversarial.py,VirtualAdversarialMethod,generate,#VirtualAdversarialMethod#Any#,33
Before Change
e = np.random.randn(*dims)
for _ in range(self.max_iter):
d = self.finite_diff * self._normalize(d)
e = self.finite_diff * self._normalize(e)
preds_new = self.classifier.predict(np.stack((val + d, val + e)))
// Compute KL divergence between logits
from scipy.stats import entropy
kl_div1 = entropy(preds[ind], preds_new[0])
kl_div2 = entropy(preds[ind], preds_new[1])
d = (kl_div1 - kl_div2) / np.abs(d - e)
// Apply perturbation and clip
val = np.clip(val + self.eps * self._normalize(d), clip_min, clip_max)
After Change
// TODO remove for loop
d_new = d
for i in range(*dims):
d[i] += self.finite_diff
preds_new = self.classifier.predict((val + d)[None, ...], logits=False)
kl_div2 = entropy(preds[ind], preds_new[0])
d_new[i] = (kl_div2-kl_div1)/self.finite_diff
d[i] -= self.finite_diff
d = d_new
// Apply perturbation and clip
val = np.clip(val + self.eps * self._normalize(d), clip_min, clip_max)
In pattern: SUPERPATTERN
Frequency: 3
Non-data size: 8
Instances
Project Name: IBM/adversarial-robustness-toolbox
Commit Name: 9bc56cc177b7997d6b4a30d204a08ef95a03a343
Time: 2018-05-09
Author: Maria-Irina.Nicolae@ibm.com
File Name: art/attacks/virtual_adversarial.py
Class Name: VirtualAdversarialMethod
Method Name: generate
Project Name: arraiy/torchgeometry
Commit Name: 7db18ce0c28c0b7c93e9a61af55433f2d88d4213
Time: 2019-05-02
Author: edgar.riba@gmail.com
File Name: torchgeometry/metrics/confusion_matrix.py
Class Name:
Method Name: confusion_matrix
Project Name: IBM/adversarial-robustness-toolbox
Commit Name: 557622faca0328c0303b824006c5fe11cc87cca1
Time: 2018-05-09
Author: mathsinn@ie.ibm.com
File Name: art/attacks/virtual_adversarial.py
Class Name: VirtualAdversarialMethod
Method Name: generate