Deep neural networks can help to solve complex tasks, but understanding the processes within neural networks and estimating the uncertainty of predictions is difficult. The MIMO architecture introduces a method that adds minimal additional computational cost compared to other techniques for uncertainty estimation. In this project we reproduce some of the key results from the original MIMO paper, in some cases using untested architecture changes and datasets. Additionally, we conduct new experiments on OOD detection where we use predictive entropy to evaluate the quality of the uncertainty estimates. Our results indicate that the results obtained in the original paper are reproducible, and also give promising results on our new experiments.
This work received the maximum possible grade, an A.
- Activate a virtual environment by running
python3 -m venv venv
- Activate venv:
source venv/bin/activate
- To deactivate venv:
deactivate
- To deactivate venv:
- Install dependencies:
pip install -r requirements.txt
- Install uncertainty_baselines dependency by running:
- Install robustness_metrics by running:
- install Edward2 dependency by running
pip install edward2
THIS IS NOT WORKING ALL THE WAY - still error on row 225 in cifar.py
- Go to
/mimo_code/
directory - with the virtual environment activated, run
python cifar.py
- The first time the code is run, it will download associated datasets which can take a while. It is possible that problems are encountered in this process, here are a few things to try if there are errors:
- Remove the virtual environment and re-install everything
- Add code in the uncertainty_baselines package:
- in
uncertainty_baselines/datasets/cifar.py
on row 109 add: dataset_builder.download_and_prepare()
- in
- run
tfds build cifar10
in the terminal
- About the tensorflow_datasets module: