foolbox

A Python toolbox to create adversarial examples that fool neural networks in PyTorch, TensorFlow, and JAX

MIT License

Downloads
4.2K
Stars
2.7K
Committers
33

Bot releases are hidden (Show)

foolbox - Version 2.0.0 with batch support, model and defense zoo, threshold support and more

Published by jonasrauber almost 5 years ago

foolbox.attacks now refers to the attacks with batch support. The old attacks can still be accessed under foolbox.v1.attacks. Batch support has been added to almost all attacks and new attacks will only be implemented with batch support. If you need batch support for an old attack that has not yet been adapted, please open an issue.

foolbox - Version 2.0.0rc0

Published by jonasrauber about 5 years ago

foolbox - Version 2.0.0b0

Published by jonasrauber over 5 years ago

Batch-support is finally here!

See #316 for details until we have updated the documentation. Right now it's still limited to a few attacks, but feel free to open an issue for any attack that you need. It's easy to extend to new attacks, we just haven't done it yet and will prioritize based on requests.

foolbox - Version 1.8.0

Published by jonasrauber almost 6 years ago

Foolbox Model Zoo

Foolbox now has an easy way to load models or defenses from Git repos: https://foolbox.readthedocs.io/en/latest/user/zoo.html

foolbox - Version 1.7.0

Published by jonasrauber almost 6 years ago

New Features

Bug Fixes

  • Foolbox now uses its own random number generators to be independent of seeds set inside models.
foolbox - Version 1.6.2

Published by jonasrauber about 6 years ago

added missing backward() support to the CompositeModel model wrapper

foolbox - Version 1.6.1

Published by jonasrauber about 6 years ago

The foolbox.models.TensorFlowModel.from_keras constructor now automatically uses the session used by tf.keras instead of TensorFlow's default session.

foolbox - Version 1.6.0

Published by jonasrauber about 6 years ago

New features

foolbox - Version 1.5.0

Published by jonasrauber about 6 years ago

New features

  • all Foolbox attacks now support early stopping when reaching a certain perturbation size
    • just pass a threshold to the attack or Adversarial instance during initialization
  • the distance metric can now be passed to the attack during initialization (no need to manually create a Adversarial instance anymore)
foolbox - Version 1.4.0

Published by jonasrauber about 6 years ago

  • The Adversarial class now remembers the model output for the best adversarial so far. For deterministic models this is the same as fmodel.predictions(adversarial.image), but it can be useful for non-deterministic models. Note that very close to the decision boundary even otherwise deterministic models can become stochastic because of non-deterministic floating point operations such as reduce_sum. In addtion to the new output attribute, there is also a new adversarial_class attribute for convience; it just takes the argmax of the output.
  • new ADefAttack thanks to @EvgeniaAR
  • new NewtonFoolAttack thanks to @bveliqi
  • new FAQ section in the docs: https://foolbox.readthedocs.io/en/latest/user/faq.html
foolbox - Version 1.3.2

Published by jonasrauber about 6 years ago

Fixed assertions that prevented custom preprocessing functions from changing the shape of the input (see #187).

foolbox - Version 1.3.1

Published by jonasrauber over 6 years ago

New Features

  • added the EvoluationaryStrategiesGradientEstimator as an alternative to the CoordinateWiseGradientEstimator introduced in 1.3.0 (thanks to @lukas-schott)
foolbox - Version 1.3.0

Published by jonasrauber over 6 years ago

Highlights

  • added support for arbitrary preprocessing functions with custom gradients (e.g. input binarization with a straight-through approximation in the backward pass)
  • added the ModelWithEstimatedGradients model wrapper to replace a model's gradients with gradients estimated by an arbitrary gradient estimator
  • added the CoordinateWiseGradientEstimator and an easy template to implement custom gradient estimators
  • added the BinarizationRefinementAttack that uses information about a model's input binarization to refine adversarials found by other attacks
  • added the ConfidentMisclassification criterion

Other improvements

  • added a binarize function in in utils to provide a consistent way to specify input binarization as part of the preprocessing
  • added batch_crossentropy in utils
  • added preprocessing support to LasagneModel
  • renamed the GradientLess model wrapper to ModelWithoutGradients
  • bug fixes
  • improved documentation and fixed typos
foolbox - Version 1.2.0

Published by jonasrauber over 6 years ago

Highlights

Other improvements

  • official PyTorch example in the docs
  • bug fixes
  • updated tests to use newer versions of the different frameworks
  • improved documentation and fixed typos
foolbox - Version 1.1.0

Published by jonasrauber over 6 years ago

  • added the PointwiseAttack (supersedes the ResetAttack)
  • attacks now provide the full function signature of their __call__ method as well as parameter documentation
  • added additional checks for correctness of the returned adversarials even when attacks misbehave
  • replaced the randomstate package with the randomgen package
  • bug fixes and improvements
foolbox - Version 1.0.0

Published by jonasrauber over 6 years ago

Improved the documentation and the availability of useful function signatures. Attack parameters are now be fully documented, like everything else, and this documentation is directly accessible within Jupyter / IPython and IDEs.

foolbox - Version 0.15.0

Published by jonasrauber over 6 years ago

  • fixed CompositeModel and added it to docs
  • added L0 and Linfinity (Linf) distance measures
  • added DeepFoolLinfinityAttack
  • renamed DeepFoolAttack to DeepFoolL2Attack
  • new DeepFoolAttack now chooses norm to optimize based on the employed distance measure (alternative, p=2 or p=np.inf can be passed)
  • fixed integer overflows caused by numpy
  • improved tests
foolbox - Version 0.14.0

Published by jonasrauber over 6 years ago

Fixed a numeric issue when attacking Keras models that provide probability outputs (instead of logits) using a gradient-based attack.

foolbox - Version 0.13.0

Published by jonasrauber over 6 years ago

Fixed package dependency issues.

foolbox - Version 0.12.4

Published by jonasrauber over 6 years ago

  • Improved GradientAttack and GradientSignAttack (FGSM) to handle smaller epsilons
  • fixed Pillow imports
  • improved README rendering on PyPI
  • other minor changes