Coder Social home page Coder Social logo

sparsefool's Introduction

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.

sparsefool's People

Contributors

amodas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

sparsefool's Issues

An error run test_sparsefool.py

  • windows10
  • torch:0.4.1
  • torchvision:0.2.1

Hi,I have read your published paper and benefited from it. Thank you very much!
I downloaded the code and ran test_sparsefool.py. I don't know if it's because of the torch version .There is an error:

Traceback (most recent call last):
  File "D:/pythonwork/SparseFool-master/test_sparsefool.py", line 22, in <module>
    net = torch_models.vgg16(pretrained=True)
TypeError: vgg16() got an unexpected keyword argument 'pretrained'

Process finished with exit code 1

I hope I can get your help,Thanks!!!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.