The reference codebase for the paper "Graph Structured Prediction Energy Networks," appeaing in NeurIPS 2019.
This code was developed/run using the following versions of the following libraries; in some cases, newer versions may be acceptable. The primary exception is PyTorch - some of the syntax used here changed in newer versions.
- PyTorch 0.4.1
- torchvision 0.2.0
- numpy 1.15.4
- scikit-image 0.13.1
- tensorflow 1.12.0 (This is for training visualization purposes)
- liac-arff (for reading bibtex)
- torchfile 0.1.0 (for reading bookmarks data files)
Additionally, this code contains a module written in C++; thus, a C++ compiler needs to be installed as well. To make use of LP/ILP inference, you will need a valid Gurobi installation; make sure the GUROBI_HOME environment variable is set to the root dir of this installation.
Make sure to install the library using pip before running (this compiles the C++ code) by running the following command from the root directory:
pip install ./
If you plan on making your own changes, make sure to include the
-e flag. Run all scripts from the root directory.
The (compressed) synthetic words datasets are included in the
data/ directory. The bibtex/bookmarks datasets can be downloaded here. The script
data/arff2tensor.py converts the raw data files into the form used by the training code; see
scripts/run_bibtex.sh to see how to run this script. The bookmarks experiment script uses the data files provided by following the instructions listed here. Tagging data can be found here.