GPUMDkit 标签检查与 DeepMD 衔接
规范NEP字段、检查帧对应和缺失标签,实际往返DeepMD并说明BEC等额外字段的保留范围。
阅读本篇目录
下载原始输入输出、转换脚本与绘图资料包。解压进入目录,inputs 是原始参考输入,reference 是实际结果。bash run.sh all 只做转换与检查,不重新启动 DFT;每次在 work 新建目录,LAST-RUN.txt 记录位置。下面独立示例均从资料包根目录开始。
先检查,再转格式#
train.xyz 能打开,不等于其中所有字段都能被下一个工具识别。本篇用真实 CP2K Si 标签和 VASP ZnS Born 标签,演示 规范键名 → 核对完整性 → DeepMD 双向转换 → 对照保留字段。

1. 区分总量、每原子量和应力#
| 文件或字段 | 单位与含义 |
|---|---|
NEP extxyz energy |
eV/构型,完整晶胞总量 |
NEP extxyz forces |
eV/Å,每原子 xyz |
NEP extxyz virial |
eV/构型,完整张量 |
NEP 预测对照 energy_train.out、virial_train.out |
常用 eV/atom;按相应输出格式解释 |
ASE stress |
eV/ų,不能直接当 virial |
bec |
每原子 9 个 Born 分量,单位 e |
ASE 应力与 virial 使用 virial = -V × stress 对应。程序输出的压力式张量还需按其符号约定处理;本例 CP2K/ABACUS 的源输出分别按 bar/kbar 换算。
1 kbar = 0.1 GPa
1 bar = 0.0001 GPa
1 eV/ų = 160.2176634 GPa
不要重复除以原子数,也不要把缺失力或 virial 默认为真实的零。
2. 规范字段名称,保留数值#
部分工具使用 Energy、Virial 或单数 force,下游则可能要求标准小写和 forces。包内 label_io.py 从已有标签读取,规范为标准 extxyz;它不做能量零点拟合。
在资料包根目录:
module purge
module load gpumdkit/1.5.8
python label_io.py reference/born/data.xyz canonical-born.xyz
head -n 4 canonical-born.xyz
canonical-born.xyz 仍保留 bec:R:9。若输出名已经存在,换一个新名字;不要覆盖唯一数据副本。
能量/力必须来自真实计算;普通坐标文件没有这些标签时,规范工具会停止,不会替它生成一组零力。
3. CP2K 的帧检查必须在转换前做#
python check_cp2k_md.py inputs/cp2k-md/labels-pos-1.xyz \
inputs/cp2k-md/labels-frc-1.xyz inputs/cp2k-md/labels-1.cell
本例三文件都有 5 帧,并且步号、时间、原子顺序对应。少一帧晶胞、不同步的力文件或非有限值,都不应进入后续训练集。完整路线见CP2K 标签转换。
4. 转为 DeepMD,再转回来#
对刚生成的 ZnS 标准数据建立独立工作目录:
mkdir my-deepmd
cp canonical-born.xyz my-deepmd/
cd my-deepmd
gpumdkit.sh -xyz2dp canonical-born.xyz S Zn
gpumdkit.sh -dp2xyz deepmd_data roundtrip.xyz
head -n 4 roundtrip.xyz
元素参数规定 type_map.raw 的顺序,不要随意交换 S、Zn。输出数据目录名可能按组成生成,查看目录内的 type_map.raw 与 type.raw。
转回的 extxyz 可能用 stress 表示应力,而不是直接显示 virial。比较时按 -V×stress 恢复对应总 virial,不能只比较字段名是否相同。
本次 CP2K 的 5 帧与 ZnS 的 1 帧实际往返中,能量、力、晶胞、原子顺序保持;virial 的差在浮点舍入量级。这里比较数据读写,不是在评价机器学习模型精度。
5. BEC 不会跟着普通格式自动保留#
ZnS 的 bec 在源 NEP 和规范后的 NEP 文件中存在,但本例普通 DeepMD 数据目录与转回的 extxyz 没有该字段。
要训练 qNEP/BEC 响应,继续使用保留额外标签的 NEP 原件,或为目标框架明确设置支持这些标签的专用数据路线。不要把普通 E/F/virial 往返称为所有响应标签的无损转换。
6. 不同软件的数据也需要一致的物理参考#
规范键名与单位,并不统一不同赝势、基组、泛函和软件的能量参考。VASP、CP2K、ABACUS 本篇各自独立演示;不能仅因元素相同,就把它们的绝对能量直接拼进一个训练集。
bash run.sh all
bash run.sh plots
整组入口分别保留原数据、转换结果、字段对应和图示。普通客户准备自己的数据时,也按这个顺序检查:来源与方法 → 帧对应 → E/F/可选 virial → 元素顺序 → 转换后的数值和额外标签。