This repository includes necessary scripts and models for reproducing "Active learning accelerated exploration of the single atom local environments in multimetallic systems for oxygen electrocatalysis". More information about the data, models and results can be found here. Dataset and trained model can be found in our Zenodo dataset here
- Clone the repository
git clone https://github.com/learningmatter-mit/SingleAtom-LocalEnv.git
- Conda environments setting and necessary package
- Conda environment
conda upgrade conda
conda env create -f environment.yml
conda activate SingeAtom
- Install NeuralForceField (nff)
Used for the dataset (graph) structure. Tested up to commit 72d1f32f43f202c1a466116beeed15845a6456e7
on the master
branch.
git clone https://github.com/learningmatter-mit/NeuralForceField.git
Add the following to ~/.bashrc
or equivalent with appropriate paths and then source ~/.bashrc
.
export NFFDIR="/path/to/NeuralForceField"
export PYTHONPATH=$NFFDIR:$PYTHONPATH
- Install Wandb
To monitor the training log more efficiently you can use wandb
.
Create an account here and install the Python package:
pip install wandb
wandb login
- Install
persite_painn
# Go to SingleAtom-LocalEnv directory
pip install .
# For editable mode
pip install -e .
-
Train the model:
run
main.py
with config (example config files inexamples/configs
)
## In case you have converted dataset
python main.py --data_cache "path/to/dataset" --details "path/to/details" --savedir "path/to/savedir"
## In case you have raw dataset
python main.py --data_raw "path/to/dataset_raw" --data_cache "path/to/dataset" --details "path/to/details" --savedir "path/to/savedir"
- Active Learning Sampling
python active_learning.py --total_dataset "path/to/search_space" --model_path "path/to/trained_ensemble_models" --dataset "path/to/dataset" --multifidelity --uncertainty_type bayesian --save --plot
Some examples of ensemble inference and node embedding analysis are described in examples
.