https://github.com/causallearning/sparsefool

https://github.com/causallearning/sparsefool

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.9%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: CausalLearning
  • License: apache-2.0
  • Language: Python
  • Default Branch: master
  • Size: 695 KB
Statistics
  • Stars: 110
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created almost 2 years ago · Last pushed almost 2 years ago
Metadata Files
Readme License

README.md

SparseFool

This repository contains the official PyTorch implementation of SparseFool algorithm described in [1].

Requirements

To execute the code, please make sure that the following packages are installed:

Executing the demos

test_sparsefool.py

A simple demo that computes the sparse adversarial perturbation of a test image.

test_perceptibility.py

A simple demo that controls the perceptibility of the resulted perturbation of a test image.

Contents

sparsefool.py

This function implements the algorithm proposed in [1] using PyTorch to find sparse adversarial perturbations.

The parameters of the function are:

  • im: image (tensor).
  • net: neural network.
  • lb: the lower bounds for the adversarial image values.
  • ub: the upper bounds for the adversarial image values.
  • lambda_: the control parameter for going further into the classification region, by default = 3.
  • max_iter: max number of iterations, by default = 50.

linear_solver.py

This function implements the algorithm proposed in [1] for solving the linearized box-constrained problem. It is used by sparsefool.py for solving the linearized problem.

deepfool.py

This function implements the algorithm proposed in [2] for computing adversarial perturbations. It is used by sparsefool.py for the linear approximation of the decision boundary.

utils.py

Includes general functions

data/

Contains some examples for the demos. The images where cropped to have square dimensions:

  • cat.jpg(source): it is used by test_sparsefool.py.
  • red_light.jpg(source): it is used by test_perceptibility.py.

Reference

[1] A. Modas, S. Moosavi-Dezfooli, P. Frossard: SparseFool: a few pixels make a big difference. In Computer Vision and Pattern Recognition (CVPR ’19), IEEE, 2019.

[2] S. Moosavi-Dezfooli, A. Fawzi, P. Frossard: DeepFool: a simple and accurate method to fool deep neural networks. In Computer Vision and Pattern Recognition (CVPR ’16), IEEE, 2016.

Owner

  • Name: CausalLearning
  • Login: CausalLearning
  • Kind: organization

GitHub Events

Total
  • Watch event: 67
Last Year
  • Watch event: 67