跳到主要内容
版本:2024.05-cpu

Python inference

我们提供了两种 python inference 方式,一种是直接对结构做预测,使用infer命令,如 章节-预测结构 所示,第二种是对大量的 pwmlff/npy、vasp/outcar、pwmat/movement 格式或者它们的混合格式做预测,对于这类需求,我们提供了使用 json 配置文件的方式,使用 test 命令,如 章节-混合数据预测 所示。

预测结构

本章节介绍如何使用训练好的模型对原子结构进行性质预测。训练好的模型可以用来预测原子结构的性质,如系统的能量、力和应力等。 在模型训练完成后,我们可以得到模型文件,即 .ckpt 文件。 然后我们可以执行以下命令来预测新的原子结构的性质:

PWMLFF infer dp_model.ckpt atom.config pwmat/config

其中 dp_model.ckpt 是模型文件,atom.config 是原子结构文件,pwmat/config 是原子结构文件的格式。

这里也支持 pwmat/movementvasp/poscarvasp/outcar 以及 lammps/lmplammps/dump 格式,对于lammps/dump需要用户指明文件中的元素类型,例如

PWMLFF infer dp_model.ckpt lmps.dump lammps/dump Hf O

命令执行结束后,将会在命令行直接输出该结构的预测总能、每个原子能量、力以及维里。

混合数据预测

本部分介绍如何使用训练好的 DP 模型对大量的 pwmlff/npy、vasp/outcar、pwmat/movement 格式或者它们的混合格式做预测。

用户需要准备如下例子所示的 json 文件,之后使用 PWMLFF test jsonfile 命令即可。

{
"model_type": "DP",
"atom_type": [28, 44, 45, 46, 77],
"model_load_file":"dp_model.ckpt",
"format": "pwmat/movement",
"raw_files":[
"movement_0",
"movement_1"
],
"datasets_path":[
"PWdata/mvm_files_11",
"PWdata/mvm_files_12/train",
"PWdata/mvm_files_13/valid"
]
}

model_load_file 为 训练好的 dp模型 所在路径;

formatraw_files 中的结构文件格式;

用户也可以直接在 datasets_path 中使用 pwmlff/npy 格式的文件所在目录。

例如对于如下的pwmlff/npy文件结构,如果用户设置 "datasets_path":['pathA'],那么trainvalid所在目录下的所有结构都会用于推理;如果用户设置 "datasets_path":['pathA/valid'],那么只使用pathA/valid下的结构做推理。

您也可以混合使用 raw_filesdatasets_path

pathA
├──train
│ └──ei.npy,forces.npy,...
└──valid
└──ei.npy,forces.npy,...

命令执行结束后,会在当前目录新建一个名称为 test_result 的目录,保存推理结果,包含如下文件。

test_result
├──inference_summary.txt
├──image_atom_nums.txt
├──dft_total_energy.txt
├──dft_atomic_energy.txt
├──dft_force.txt
├──dft_virial.txt
├──inference_total_energy.txt
├──inference_atomic_energy.txt
├──inference_force.txt
├──inference_virial.txt
└──inference_loss.csv

inference_summary.txt 保存推理信息汇总,内容如下例所示

For 200 images: 
Average RMSE of Etot: 0.34629015882102976
Average RMSE of Etot per atom: 0.0036071891543857267
Average RMSE of Ei: 1.3401666387065987
Average RMSE of RMSE_F: 0.03597006701703569

More details can be found under the file directory:
/the/path/test_result

image_atom_nums.txt 顺序存储每个结构对应的原子数。

dft_total_energy.txt 顺序存储每个结构的能量标签。

dft_atomic_energy.txt 顺序存储每个结构中,每个原子的能量标签(该标签为PWmat 独有),每个结构存储为一行。

dft_force.txt 顺序存储每个结构中,每个原子的力标签,每行存储该原子的x、y、z三个方向分力。

inference_total_energy.txt 顺序存储每个结构的能量推理结果。

inference_atomic_energy.txt 顺序存储每个结构中,每个原子的能量推理结果,每个结构存储为一行。

inference_force.txt 顺序存储每个结构中,每个原子的力推理结果,每行存储该原子的x、y、z三个方向分力。

inference_loss.csv 保存了每个结构的推理结果与标签之间的RMSE值,每列从左到右对应的值为 img_idx 代表结构顺序, RMSE_EtotRMSE_Etot_per_atomRMSE_EiRMSE_F 分别代表总量、每个原子能量、力对应的RMSE。