Official repo for the paper
Hardening DNNs against Transfer Attacks during Network Compression using Greedy Adversarial Pruning
Authors: Jonah O'Brien Weiss, Tiago Alves, and Sandip Kundu
Published in the 2022 IEEE 4th International Conference on Artificial Intelligence Circuits and Systems (AICAS)
- Conda
- Python 3.9
Run inshall.sh. This will create a conda environment called "gap", install the requirements, and setup the submodule dependency on the "shrinkbench" repo.
- Modify src/config.yaml to define what experiments to run. This is prepopulated with an example configuration in debug mode. Configs get saved in a new file when running experiements.
- Run
download_dataset.py - Run
run.py.
Notable files under src:
src/
├── analyze_data.py # Scripts for plotting experiment results and data
├── config.yaml # Main configuration file for experiments
├── download_dataset.py # Script to download required datasets
├── email_pw.txt # (Sensitive) Email password for notifications (should not be shared)
├── evaulate_model.py # Model evaluation utilities and scripts
├── experiments.py # Main experiment orchestration logic
├── remove_models.py # Script to remove or clean up models
├── run.py # Entry point to run experiments
└── shrinkbench/ # Submodule: ShrinkBench library for pruning and compression
├── experiment/ # Core experiment tracking and logging functionality
├── models/ # Neural network model definitions and utilities
├── pruning/ # Base pruning classes and adversarial pruning implementations
└── strategies/ # Different pruning strategy implementations (magnitude, gradient, etc.)
For questions or issues, please contact jgow98@gmail.com.