Research data for "Extending the Range of Graph Neural Networks with Global Encodings"
Authors/Creators
Contributors
Researcher (3):
Supervisor (2):
Description
Package Installation
Please, refer to the GitHub repository of RANGE for up-to-date instructions on how to install the codebase.
File Reconstruction
To reconstruct the .zip files from the split files, run in the terminal:
zip -s 0 input.zip --out output.zip
Model Training
Inside the training directory, data are organized in the following way:
- 📂 dataset directory
- 📂 baseline, range or non-regularized range
- 📂 model type (SchNet, Schnet+RANGE ...)
- 📂 baseline cutoff and seed
- 📄 best_model.ckpt
- 📄 config.yaml
EwaldMP results are self contained within the EwaldMP directory.
The configuration file used for training is provided together with the best model checkpoint (i.e. minimum validation loss).
To train a new model with the same hyperparameters, first update the config.yaml file, selecting the correct path for the dataset splits and the directory where the dataset will be automatically downloaded and processed:
...
# Dataset configuration example in the .yaml file
data:
dataset:
class_path: rangemp.datasets.AQMgasDataset
init_args:
root: YOURPATH/RANGE_review/datasets/AQM/
log_dir: default_root_dir
splits: YOURPATH/RANGE_review/datasets/AQM/selection_n_atoms_30_train_0.7_val_0.15_seed_4272389.npz
...
A progress bar can be visualized changing the corresponding flag (do this only if you are not redirecting into a text file).
After that, the model can be trained using
python YOURPATH/RANGE_review/mlcg/scripts/mlcg-train.py fit --config config.yaml
for baseline, Ewald, and non-regularized RANGE models, or
python YOURPATH/RANGE_review/mlcg/scripts/mlcg-train-regularized.py fit --config config.yaml
for regularized RANGE models.
If EwaldMP model are tested remember to export the pythonpath
export PYTHONPATH=/YOURPATH/RANGE_review/training/EwaldMP/ewaldmp
By default, training is done on GPU. It is also possible to use CPU by setting
...
accelerator: 'cpu'
# strategy: 'ddp'
...
in the config.yaml file.
The trained model can be extracted from a checkpoint using
from mlcg.utils import extract_model_from_checkpoint
PATH = "SOME_PATH.ckpt"
model_extracted = extract_model_from_checkpoint(PATH, None)
After the model is trained, it is possible to test it using the script provided in the metrics_evaluation directory by modifying the example_setup.yaml file appropriately:
python compute_metrics.py --config example_setup.yaml
In case of memory overload, consider to properly set batch_size and inference_batch_size in accordance with your hardware.
Model Simulation
The initial configurations used to perform the simulations, together with the corresponding simulation trajectories from the manuscript, are provided for the buckyball catcher, DHA, and double-walled nanotube datasets.
Before running any simulations, process the model checkpoints saved during training. These checkpoints can be found in the corresponding training folders.
Be sure to select the trained model corresponding to the system you want to simulate.
Use the mlcg-combine_model.py script as follows:
python YOURPATH/RANGE_review/mlcg/scripts/mlcg-combine_model.py --ckpt YOURMODEL.ckpt --prior YOURPATH/RANGE_review/simulations/empty_prior.pt --out combined_model.pt
In all simulations reported in the manuscript, no prior energy term is used.
The object in YOURPATH/RANGE_review/simulations/empty_prior.pt is an empty PyTorch dictionary that is only used to correctly process the model for simulation, without adding any additional prior energy contribution.
Simulations are performed using the mlcg-nvt_langevin.py script. An input YAML file is provided (please be sure to properly modify the paths inside):
python YOURPATH/RANGE_review/mlcg/scripts/mlcg-nvt_langevin.py --config sim_config.yaml
The simulation output consists of .npy files, each containing a segment of independent trajectories (10 for DHA, 5 for buckyball catcher and 2 for double-walled nanotube). The shape of the .npy files is (n_trajectories, n_frames, n_atoms, 3). To reconstruct the full trajectories, all coordinate files should be loaded and concatenated along the first axis.
Neural P3M
All Neural P3M experiment were conducted using the original code provided by the autors.
A separate environment need to be created to reproduce the test, following the instruction provided in the P3M repository.
Training configurations and best model checkpoints are reported for different datasets in training_p3m.
Files
datasets.zip
Files
(46.1 GB)
| Name | Size | |
|---|---|---|
|
md5:51e16bc22b42b8721ef3775cd62ffb55
|
4.4 MB | Preview Download |
|
md5:cc163d056eb092835c87b4656a143100
|
2.7 MB | Preview Download |
|
md5:5a3444047fe38c756dab5fb1fbaa4d3a
|
2.1 GB | Download |
|
md5:b86a9877fde44abef7f0b0e13eeaaf0a
|
2.1 GB | Download |
|
md5:daec12b6a59ff812b2edd0ab27ce5ff5
|
2.1 GB | Download |
|
md5:fb24fdd289030f09dbb226f7e58c1046
|
2.1 GB | Download |
|
md5:382a99a3f13f56c88b4ff15e9c26802c
|
2.1 GB | Download |
|
md5:476e8ea38b66103bd5e3d9c6631f47b7
|
2.1 GB | Download |
|
md5:b23f7e2a155f812ddc8fb280956e843b
|
2.1 GB | Download |
|
md5:05541195f20a82149d9b37bf27b2ca95
|
2.1 GB | Download |
|
md5:6314647cad579a4dbbbd54cdcbcb3510
|
2.1 GB | Download |
|
md5:499964f664bddda0b2ae908e89d2d3f9
|
2.1 GB | Download |
|
md5:6c13e53f54d91438707ebad1b3b41ba6
|
2.1 GB | Download |
|
md5:ee69f8cf2c8d9c5989b1d008fe4fa458
|
2.1 GB | Download |
|
md5:93fc8ea795277e87193621e417b8fc39
|
2.1 GB | Download |
|
md5:5968a8f47423768c776a28b56486524c
|
2.1 GB | Download |
|
md5:4909475475fc3b754654990c8e182cec
|
2.1 GB | Download |
|
md5:7107a833bb684dffffa174935ee7ba9f
|
2.1 GB | Download |
|
md5:12808c7c2d94130bc1383de66ab47105
|
2.1 GB | Download |
|
md5:58ebd187d69b7d826887c83137f31713
|
2.1 GB | Download |
|
md5:603ebf2148c4755ddc22b6792ca68d1d
|
883.4 MB | Preview Download |
|
md5:8ef055578b7d2c56485567ed90a71a5b
|
1.1 GB | Download |
|
md5:b4eecf45b3f6fe3a7f28d7e571ef27c1
|
1.1 GB | Download |
|
md5:d2d6fe030ffaf89f86cfaa40488a1b0b
|
1.1 GB | Download |
|
md5:084314b3eb428890263b9731b73ef5c3
|
1.1 GB | Download |
|
md5:3297106ca82192b1a504eb03e79e67dc
|
1.1 GB | Download |
|
md5:b81d535b62d2f992bb90a61a679a29bd
|
869.5 MB | Preview Download |
|
md5:7c01dd4682ac02af874dd655d99a7095
|
289.3 MB | Preview Download |
Additional details
Software
- Repository URL
- https://github.com/ClementiGroup/range
- Programming language
- Python
- Development Status
- Active