--------
Overview
--------

This folder contains the code used to reproduce the results for MNIST7.

----------------------------------------------------------------------
Instructions to Reproduce Results for UQ, OOD reference, and Ablations
----------------------------------------------------------------------

* Ablations: Start with this step to obtain the complete set of results required for MAP, DE (with N and 8N models), SMC_parallel (P chains with N samples), and HMC_parallel (NP chains). These results correspond to Table 1, Figure 6, and Section I.1 in the paper. The current code uses v=0.1 and s=0.1 as default values. If other s values are needed (as used in the paper), you must modify them manually in the code.

  - MAP  
    Run:  
        python MNIST_MAP.py

  - DE with N models  
    Run:  
        python MNIST_DE.py

  - DE with 8N models  
    Run:  
        python MNIST_DE_8.py

  - SMC_parallel  
    Run: to generate raw data  
        python MNIST_MAP_psmc.py seed numwork  
    Set seed=1,2,...,P manually. The numwork parameter corresponds to the number of CPU cores allocated per node on HPC.  
    Run: to compute full metrics  
        python MNIST_MAP_psmc_summary.py

  - HMC_parallel  
    Run: to generate raw data  
        python MNIST_MAP_phmc.py seed
    Set seed=1,2,...,P manually.
    Run: to compute full metrics  
        python MNIST_MAP_phmc_summary.py

* UQ: Produces Figure 3 and the results described in Section G.1.  
  Run:  
      python MNIST_UQ.py

* OOD reference: Produces Table 2 and the results described in Section H.1.  
  Run:  
      python MNIST_OOD_reference.py
