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

This folder contains the code used to reproduce the results for CIFAR10. Due to space limitations in the supplementary material, the embedding used in the paper is not provided. However, the code includes functionality for generating an appropriate embedding.

----------------------------------------------------------------------
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 Figure 6 and Section I.3 in the paper. The current code uses v=0.2 and s=0.05 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 CIFAR_MAP.py

  - DE with N models  
    Run:  
        python CIFAR_DE.py

  - SMC_parallel  
    Run: to generate raw data  
        python CIFAR_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 CIFAR_MAP_psmc_summary.py

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

* UQ: Produces the results described in Section G.3.  
  Run:  
      python CIFAR_UQ.py

* OOD reference: Produces the results described in Section H.3.  
  Run:  
      python CIFAR_OOD_reference.py
