|
|
--- |
|
|
license: mit |
|
|
pipeline_tag: graph-ml |
|
|
--- |
|
|
|
|
|
# Shift Current Prediction (DPA3-$\sigma$) |
|
|
|
|
|
This model is based on the DPA3 architecture for predicting shift current in materials. |
|
|
|
|
|
The training data follow a **long-tail distribution**, thus the model is trained in **log1p space** using `log1p(x) = log(1 + x)`. Predictions are also in log1p space. |
|
|
|
|
|
## Dependency |
|
|
|
|
|
Install DeepMD: |
|
|
|
|
|
```bash |
|
|
pip install deepmd-kit |
|
|
```` |
|
|
|
|
|
## Usage |
|
|
|
|
|
Basic command: |
|
|
|
|
|
```bash |
|
|
dp --pt test \ |
|
|
-m model.weights.pt \ |
|
|
-f [INPUT_FILE] \ |
|
|
-n 0 \ |
|
|
-d [OUTPUT_PREFIX] |
|
|
``` |
|
|
|
|
|
* `-m model.weights.pt`: path to the trained model. |
|
|
* `-f [INPUT_FILE]`: a text file listing all systems to be evaluated. |
|
|
* `-d [OUTPUT_PREFIX]`: prefix of the output result files. |
|
|
|
|
|
Example: |
|
|
|
|
|
```bash |
|
|
dp --pt test \ |
|
|
-m model.weights.pt \ |
|
|
-f sys_test.txt \ |
|
|
-n 0 \ |
|
|
-d test_result |
|
|
``` |
|
|
|
|
|
## Input format |
|
|
|
|
|
### 1. System list file (`[INPUT_FILE]`) |
|
|
|
|
|
`[INPUT_FILE]` is a plain text file. |
|
|
Each line contains the path to a DeepMD-format system directory, for example: |
|
|
|
|
|
```text |
|
|
.../mp-14_Se_32_spg152_gap0.88eV/ |
|
|
.../mp-19_Te_32_spg152_gap0.19eV/ |
|
|
.../mp-154_N2_23_spg198_gap7.34eV/ |
|
|
.../mp-181_KGa3_spg119_gap0.22eV/ |
|
|
.../mp-189_SiRu_23_spg198_gap0.23eV/ |
|
|
|
|
|
``` |
|
|
|
|
|
### 2. System directory layout (DeepMD npy format) |
|
|
|
|
|
Each system directory must follow the standard DeepMD **npy** structure, such as: |
|
|
|
|
|
```text |
|
|
system_X/ |
|
|
βββ set.000/ |
|
|
βββ box.npy |
|
|
βββ coord.npy |
|
|
βββ v.npy |
|
|
βββ type_map.raw |
|
|
βββ type.raw |
|
|
``` |
|
|
|
|
|
Notes: |
|
|
|
|
|
* The `.npy` dataset can be converted from VASP using official DeepMD tools. |
|
|
* A placeholder `v.npy` file is required; writing zeros in it is sufficient. |
|
|
|
|
|
## Output |
|
|
|
|
|
Running inference produces a file like: |
|
|
|
|
|
```text |
|
|
test_result_property.out.0 |
|
|
``` |
|
|
|
|
|
A typical block looks like: |
|
|
|
|
|
```text |
|
|
# /path/to/system_X/: data_property pred_property |
|
|
0.0000000000000000e+00 2.04... |
|
|
# /path/to/system_Y/: data_property pred_property |
|
|
0.0000000000000000e+00 2.35... |
|
|
``` |
|
|
|
|
|
* Lines starting with `#` indicate the system being evaluated. |
|
|
* Each numeric line contains the reference value (if available) and the model prediction. |
|
|
|
|
|
|
|
|
|