Prepare Ubuntu environment:
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install zip
This project requires Python 3. Follow the instructions to install all the dependencies.
Install Anaconda.
a. Create a conda venv:
conda create --name rci python=3.6 --yes
b. Activate the venv:
conda activate rci
If it doesn't work, try:
source activate rci
c. Make sure you are using the python inside the venv by:
which python
d. Note for MacOS: Make sure wget is installed in the system. You can install it by brew.
e. Run the following command which automates the download and installation of dependencies.
sh ./install.sh
f. Install torch and gpytorch (only needed for NIRD conditional test):
pip install torch
pip install --upgrade git+https://github.com/cornellius-gp/gpytorch.git
- Run the sample script just to check everything is working fine:
./sample.sh
- It'll take less than a minute to finish. It'll create a zip called sample.zip containing the outputs, logs and plots created for the sample run.
-
Run the following script to reproduce the reported results:
sh ./neurips21.sh 100
-
Enter your preferred configuration for experiment in a config json file inside conf directory
- conf/exp_1a_dep.json is a config file for case 1a. It includes both synthetic graph parameters as well as experiment parameters. Refer to experiments.md for detailed explanation of experiment configs.
-
Then run the experiment using the following command:
python experiment.py -config conf/exp_1a_dep.json -o out/exp_1a_dep.csv
-config: Input config
-o: Output csv path. By default it will be stored in out directory.
Following files will be created:
-
out/exp_1a_dep_type_i.csv
-
out/exp_1a_dep_type_ii.csv
-
-
There are several other arguments you can use:
python experiment.py -config conf/sample.json -nt 2 # override number of trials python experiment.py -config conf/sample.json -jobs 2 # specifiy job for parallel python experiment.py -config conf/sample.json --nop # no parallel run python experiment.py -config conf/sample.json -a 0.01 --cache # specify alpha, get results from logged p-values, no exp done
-
To plot results run the following:
python plotter.py -fmt png -res out/exp_1a_dep_type_ii.csv -sres out/exp_1a_dep_type_i.csv
-res: Input results csv file (type ii)
-sres: Input results csv file (type i)
-fmt: Output image format (png / eps)