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

This folder contains the code used to reproduce the results for IMDb. 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.2 in the paper. The current code uses v=0.025 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 IMDb_MAP.py

  - DE with N models  
    Run:  
        python IMDb_DE.py

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

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

  - HMC_parallel  
    Run: to generate raw data  
        python IMDb_MAP_phmc.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 IMDb_MAP_phmc_summary.py

* UQ: Produces the results described in Section G.2.  
  Run:  
      python IMDb_UQ.py

* OOD reference: Produces Figure 4 and the results described in Section H.2.  
  Run:  
      python IMDb_OOD_reference.py
