Distributed PyTorch implementation of multi-headed graph convolutional neural networks
![HydraGNN_QRcode](https://private-user-images.githubusercontent.com/2488656/285904663-a6d5369b-2a70-4eee-aa39-b2cf8dedf262.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzODgzNzQsIm5iZiI6MTczOTM4ODA3NCwicGF0aCI6Ii8yNDg4NjU2LzI4NTkwNDY2My1hNmQ1MzY5Yi0yYTcwLTRlZWUtYWEzOS1iMmNmOGRlZGYyNjIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTJUMTkyMTE0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZTg1NjVhOGM5NjNiMzcxZjQ3YmNmYjAyNzRmZDk5Nzg2MTk5Yjg4OGVhZmJkNGM2Zjc0YjM2N2IyN2FkNDJkNyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.s2tlO9tBjq4waz0fT96W2S3DxRrUmkhgEiACHClHJsI)
To install required packages with only basic capability (torch
,
torch_geometric
, and related packages)
and to serialize+store the processed data for later sessions (pickle5
):
pip install -r requirements.txt
pip install -r requirements-torch.txt
pip install -r requirements-pyg.txt
If you plan to modify the code, include packages for formatting (black
) and
testing (pytest
) the code:
pip install -r requirements-dev.txt
Detailed dependency installation instructions are available on the Wiki
After checking out HydgraGNN, we recommend to install HydraGNN in a developer mode so that you can use the files in your current location and update them if needed:
python -m pip install -e .
Or, simply type the following in the HydraGNN directory:
export PYTHONPATH=$PWD:$PYTHONPATH
Alternatively, if you have no plane to update, you can install HydraGNN in your python tree as a static package:
python setup.py install
There are two main options for running the code; both require a JSON input file for configurable options.
- Training a model, including continuing from a previously trained model using configuration options:
import hydragnn
hydragnn.run_training("examples/configuration.json")
- Making predictions from a previously trained model:
import hydragnn
hydragnn.run_prediction("examples/configuration.json", model)
Built in examples are provided for testing purposes only. One source of data to create HydraGNN surrogate predictions is DFT output on the OLCF Constellation: https://doi.ccs.ornl.gov/
Detailed instructions are available on the Wiki
HydraGNN uses a JSON configuration file (examples in examples/
):
There are many options for HydraGNN; the dataset and model type are particularly important:
["Verbosity"]["level"]
:0
,1
,2
,3
,4
["Dataset"]["name"]
:CuAu_32atoms
,FePt_32atoms
,FeSi_1024atoms
["NeuralNetwork"]["Architecture"]["model_type"]
:PNA
,MFC
,GIN
,GAT
,CGCNN
,SchNet
,DimeNet
,EGNN
"HydraGNN: Distributed PyTorch implementation of multi-headed graph convolutional neural networks", Copyright ID#: 81929619 https://doi.org/10.11578/dc.20211019.2
We encourage you to contribute to HydraGNN! Please check the guidelines on how to do so.