| import numpy as np | |
| def noise(x, eps=0.3, order=np.inf, clip_min=None, clip_max=None): | |
| """ | |
| A weak attack that just picks a random point in the attacker's action | |
| space. When combined with an attack bundling function, this can be used to | |
| implement random search. | |
| References: | |
| https://arxiv.org/abs/1802.00420 recommends random search to help identify | |
| gradient masking | |
| https://openreview.net/forum?id=H1g0piA9tQ recommends using noise as part | |
| of an attack building recipe combining many different optimizers to | |
| yield a strong optimizer. | |
| Arguments | |
| --------- | |
| x : torch.Tensor | |
| The input image. | |
| """ | |
| if order != np.inf: | |
| raise NotImplementedError(ord) | |
| eta = np.random.uniform(low=-eps, high=eps, size=x.shape) | |
| adv_x = x + eta | |
| return adv_x | |