eth-sri / mn-bab

[ICLR 2022] Complete Verification via Multi-Neuron Relaxation Guided Branch-and-Bound
https://www.sri.inf.ethz.ch/publications/ferrari2022complete
7 stars 6 forks source link

Add Container Definitions #10

Open kkaulen opened 3 months ago

kkaulen commented 3 months ago

As MN-BaB strongly relies on C dependencies, getting it to run, especially on compute clusters where one does not have root access, can be quite a hustle. Therefore, I added Docker and Apptainer (formerly Singularity) Image definitions to give users an easy way to set MN-BaB up, on personal computers as well as compute clusters.

I added documentation in the README file to get both images to run.

The available CUDA images are based on Ubuntu 20.04, so I updated MN-BaB to work with Python 3.8. This was more straightforward than getting Python 3.7 to run in the images. This led to a change in the network loading code (not sure why it was needed to reference the blocks property of the network earlier) and in the requirements.txt (I also fixed all dependencies and versions to make the build process bullet-proof).

I hope the maintainers see this as a valuable addition to make MN-BaB runnable by a broader audience of researchers. I would be very happy to address any questions you might have and to work on any further suggestions!