To install Foolbox in editable mode, see the installation instructions under Contributing to Foolbox.
To run the tests, you need to have pytest and pytest-cov installed. Afterwards, you can simply run
pytest in the root folder of the project. Some tests will require TensorFlow, PyTorch and the other frameworks, so to run all tests, you need to have all of them installed.
New Adversarial Attacks¶
Foolbox makes it easy to develop new adversarial attacks that can be applied to arbitrary models.
To implement an attack, simply subclass the
Attack class, implement the
__call__() method and decorate it with the :decorator:`call_decorator`. The :decorator:`call_decorator` will make sure that your
__call__() implementation will be called with an instance of the
Adversarial class. You can use this instance to ask for model predictions and gradients, get the original image and its label and more. In addition, the
Adversarial instance automatically keeps track of the best adversarial amongst all the images tested by the attack. That way, the implementation of the attack can focus on the attack logic.