Code to recreate the paper "Biomimetic computations improve neural network robustness", Linnea Evanson 1, Maksim Lavrov 1, Iakov Kharitonov 1, Sihao Lu, Andriy S. Kozlov
1 Equal contribution
Instructions:
- The code for implementing the flexible layer is found in network_definitions.py.
- To recreate main results, run train_VGG16.ipynb, import the network of interest from network_definitions.py. This script saves validation accuracies. Uncomment the line to save model weights if you wish to run further analyses.
- Once you have trained a VGG16 model, run adverserial_FGSM.ipynb (to recreate Fig. 4D) or adverserial_PGD.ipynb to recreate the adverserial attack results.
- Train a network on a downsampled subset of data using this script: train_downsampled.ipynb. To recreate our results run for seeds 1-10.
- The spectral analysis figures are created with test_robustness.ipynb, out_of_distribution_inference.ipybn, or bandpass_inference.ipynb.