GPUMDkit专题

GPUMDkit 标签检查与 DeepMD 衔接

规范NEP字段、检查帧对应和缺失标签,实际往返DeepMD并说明BEC等额外字段的保留范围。

更新于 2026-10-28约 4 分钟阅读按任务与环境选择适用配置
阅读本篇目录

下载原始输入输出、转换脚本与绘图资料包。解压进入目录,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 → 元素顺序 → 转换后的数值和额外标签。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗