Experiments for "Convex and Bilevel Optimization for Neuro-Symbolic Inference and Learning".
These experiments expect that you are running on a POSIX (Linux/Mac) system. The specific application dependencies are as follows:
- Bash >= 4.0
- Java >= 7
- Python >= 3.7
These scripts assume you have already built and installed NeuPSL from our repository. If you have not, please follow the instructions in our NeuPSL repository.
Data for the HL-MRF experiments in the top-level scripts directory will be pulled from the psl-examples repository
Data for the deep HL-MRF experiments must be created by running the create_data.py scripts in the citation and mnist-addition directories.
Models for the HL-MRF experiments in the top-level scripts directory will be pulled from the psl-examples repository
Models for the deep HL-MRF experiments are in the citation and mnist-addition directories.
An additional step is required to create the deep HL-MRF models for the citation experiments as the neural component is pretrained.
After creating the data, run citation/scripts/setup-networks.py.
This will pre-train the neural component for the NeuPSL models.
The experiments are organized into a series of scripts.
Each script is responsible for running a single experiment.
To run all experiments, simply run the run.sh script in the top level directory.
To run a single experiment, run its corresponding python script.
The HL-MRF timing experiments are found in the top level scripts directory.
scripts/run_dual_bcd_inference_regularization_experiments.py runs the dual BCD regularization experiments.
scripts/run_weight_learning_inference_timing_experiments.py runs the weight learning runtime experiments.
scripts/run_weight_learning_performance_experiments.py runs the HL-MRF weight learning runtime experiments.
The deep HL-MRF experiments are in the citation/scripts and mnist-addition/scripts directories.
For the HL-MRF experiments, results will be written to the top-level results directory.
For the Deep HL-MRF experiments, results will be written to the results directory in the citation and mnist-addition directories.
To parse the results for the HL-MRF experiments, run the parse_results.py script in the top-level scripts directory.
To parse the results for the Deep HL-MRF experiments, run the parse_results.py script in the citation/scripts and mnist-addition/scripts directories.