Skip to content

Commit

Permalink
Minor text update.
Browse files Browse the repository at this point in the history
  • Loading branch information
knc6 committed Jul 11, 2021
1 parent 351f5e6 commit 9dc0a9e
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 9 deletions.
11 changes: 5 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,23 +33,22 @@ Examples
Users can keep their structure files in POSCAR, .cif, or .xyz files in a directory. In the examples below we will use POSCAR format files. In the same directory, there should be id_prop.csv file.
In this id_prop.csv, the filenames, and correponding target values are kept in comma separated values (csv) format.
Here is an example of training OptB88vdw bandgaps of 50 materials from JARVIS-DFT. The example is created using the script provided in the script folder.
Users can modify the script more than 50 data, or make their own dataset in this format. The dataset in split in 80:10:10 as training-validation-test set.
With the configuration parameters given in config_example_regrssion.json, the model is trained.
Users can modify the script more than 50 data, or make their own dataset in this format. The dataset in split in 80:10:10 as training-validation-test set. To change the split proportion and other parameters, change the config_example.json file. Sometimes, we want to train on certain sets and val/test on another dataset. For such cases, set n_train, n_val, n_test manually in the config_example.json and also set keep_data_order as True there. With the configuration parameters given in config_example.json, the model is trained.

```
python alignn/scripts/train_folder.py --root_dir "alignn/examples/sample_data" --config "alignn/examples/sample_data/config_example_regrssion.json"
python alignn/scripts/train_folder.py --root_dir "alignn/examples/sample_data" --config "alignn/examples/sample_data/config_example.json"
```
While the above example is for regression, the follwoing example shows a classification task for metal/non-metal based on the above bandgap values. We transform the dataset
into 1 or 0 based on a threshold of 0.01 eV (controlled by the parameter, 'classification_threshold') and train a similar classification model.
```
python alignn/scripts/train_folder.py --root_dir "alignn/examples/sample_data" --config "alignn/examples/sample_data/config_example_classification.json"
python alignn/scripts/train_folder.py --root_dir "alignn/examples/sample_data" --config "alignn/examples/sample_data/config_example.json"
```
While the above example regression was for single-output values, we can train multi-output regression models as well.
An example is given below for training formation energy per atom, bandgap and total energy per atom simulataneously. The script to generate the example data is provided in the script folder of the sample_data_multi_prop.
Another example of training electron and phonon density of states is provided also.
```
python alignn/scripts/train_folder.py --root_dir "alignn/examples/sample_data_multi_prop" --config "alignn/examples/sample_data/config_example_regrssion.json"
python alignn/scripts/train_folder.py --root_dir "alignn/examples/sample_data_multi_prop" --config "alignn/examples/sample_data/config_example.json"
```

You can also try multiple example scripts to run multiple dataset training. Look into the 'scripts' folder.
Users can also try multiple example scripts to run multiple dataset training. Look into the 'alignn/scripts' folder.
These scripts automatically download datasets from jarvis.db.fighshare module in JARVIS-Tools and train several models. Make sure you specify your specific queuing system details in the scripts.
6 changes: 3 additions & 3 deletions alignn/scripts/train_folder.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
parser.add_argument(
"--root_dir",
default="./",
help="Folder with id_props.csv, poscars and config*.json",
help="Folder with id_props.csv, poscars",
)
parser.add_argument(
"--config_name",
Expand All @@ -29,13 +29,13 @@
parser.add_argument(
"--keep_data_order",
default=False,
help="Whether to randomly shuffle samples",
help="Whether to randomly shuffle samples, True/False",
)

parser.add_argument(
"--classification_threshold",
default=None,
help="Threshold for converting into 0/1 class"
help="Floating point threshold for converting into 0/1 class"
+ ", use only for classification tasks",
)

Expand Down

0 comments on commit 9dc0a9e

Please sign in to comment.