Skip to content

pgruening/bio_inspired_min_nets_improve_the_performance_and_robustness_of_deep_networks

Repository files navigation

Code Submission for: Bio-inspired Min-Nets Improve the Performance and Robustness of Deep Networks

Run with docker

To build a docker environment, change dir to 'docker' and run:

bash docker_build.sh

Move back to the parent folder and run

bash docker_run.sh

to start the docker environment. Note that this environments uses Pytorch 1.8 and Cuda 11.1.

Run with virtualenv

In a new virtual environment run

pip install -r venv_requirements.txt

The PYTHONPATH needs to be updated. Append this to your '.bashrc':

export PYTHONPATH=path/to/this/repository:$PYTHONPATH

Furthermore, you need to specify the variable 'DATA_FOLDER' in 'config.py'.

Running the experiments

Python modules meant to be executed include the prefix 'exe_' in their name. The experiments of the paper are located in the 'experiments' folder. Note that each module must be started from the repositories folder, e.g. to evaluate experiment 10 run:

python experiments/exp_10/exe_train_exp_10.py

Here is a list of all experiments:

exp_10: ResNet and PyrblockNet experiment on Cifar-10 classification and JPEG compression

  • 'exe_train_exp_10.py': retrain the networks on Cifar-10. Creates log-files in 'experiments/exp_10/exp_data'
  • 'exe_eval_exp_10.py': runs classification evaluation
  • 'exe_exp10_jpeg_tests.py': evaluates the predictions in saved in 'jpeg_model_predictions'. To again compute the predictions, run this module with the flag 'RUN_PREDICTIONS' set to 'True'

exp_11_1: DenseNet experiment on Cifar-10 classification and JPEG compression

  • 'exe_train_exp_11_1.py': retrain the networks on Cifar-10. Creates log-files in 'experiments/exp_11_1/exp_data'
  • 'exe_eval_exp_11_1.py': runs classification evaluation
  • 'exe_exp10_jpeg_tests.py': evaluates the predictions in saved in 'jpeg_model_predictions'. To again compute the predictions, run this module with the flag 'RUN_PREDICTIONS' set to 'True'

Other modules:

  • 'run_training.py': Module to train a CNN. Is started in any 'exe_train'-file as a subprocess.
  • 'run_jpeg_robustness_test.py': Module to create predictions on compressed data.
  • 'datasets/ds_ds_cifar10_compression_test.py': run this module to create 10 compressed Cifar-10 test-sets. The data are save to 'DATA_FOLDER' in the 'config.py' file

All models are located in the 'model' folder, the dataset code is in the 'datasets' folder.

Downloading model.pt files and JPEG-model-predictions

Additional files containing the models and predictions can be downloaded. To add each model and prediction to the respective experiment folders, extract the zip file, change the path variable 'DOWNLOADED_MODELS' and 'DOWNLOADED_PREDICTIONS' in 'config.py' (if necessary) and run 'exe_move_downloaded_files.py'.

To archive the repo:

git archive -o min_nets_latest.zip HEAD

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published