DP-GEN专题

DP-GEN数据收集与迭代统计

用32帧初始数据和4个真实VASP新标签,实操collect与run/report,核对组成、帧数和候选结构统计。

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

完成一轮DP-GEN后,常见操作是收集可用于下一次训练的数据,并查看标注来自哪些系统与温压条件。收集不是重新计算,也不会自动去重或重新划分测试集。 本篇使用鸢算科技已完成的Si主动学习流程,直接操作真实数据和阶段输出。

1 下载实例#

下载DP-GEN数据工具实例包,保存为dpgen-data-tools.zip。

python3 -m zipfile -e dpgen-data-tools.zip .
cd dpgen-data-tools

附件使用DP-GEN0.14.0、Python3.12及其现有dpdata依赖,run.sh自动加载模块。收集和统计只读已有结果;本包不训练模型,不运行LAMMPS或VASP,不需要GPU。较大数据处理可使用1CPU批作业,例如sbatch job.slurm collect。

2 先看要收集的目录#

job/
  initial/Si2/                  16帧,2原子
  initial/Si8/                  16帧,8原子
  iter.000000/02.fp/data.000/Si8/ 4帧新VASP标签
  param.json

每组DeepMD数据保留type.raw、type_map.raw与set.000/*.npy,包括晶胞、坐标、能量、力与维里。param.json在本包中仅保留收集/统计需要的字段,不是完整主动学习输入。

{
  "type_map": ["Si"],
  "init_data_prefix": "initial",
  "init_data_sys": ["Si2", "Si8"],
  "sys_configs_prefix": ".",
  "sys_configs": [["Si8.POSCAR"]]
}

迭代目录的数量还由完整附件中的model_devi_jobs配置决定;不要把上面的阅读摘要直接覆盖原任务参数。

3 一条命令收集#

bash run.sh collect

实际调用的是:

module load dpgen/0.14.0
dpgen collect job collected -m -v

本例得到三组目录:

输出 原子数 帧数 来源
collected/init.000 2 16 初始Si2
collected/init.001 8 16 初始Si8
collected/sys.Si8 8 4 第0轮新增VASP标签

总计36帧,初始数据与新增标签分别保存。-m按化学式归并迭代数据,-v打印数量;它不会把不同原子数的Si2和Si8强行塞成同一个固定原子数数组,也不会将初始数据自动并入新增目录。

真实初始与新增标签的帧数、每原子能量及体积

图中每原子能量与体积由原始总量除以原子数得到,仅展示本例数据分布,不是新做的状态方程拟合或模型误差测试。

4 检查能量、力和元素#

import dpdata
s = dpdata.LabeledSystem('collected/sys.Si8', fmt='deepmd/npy')
print(len(s), s.get_natoms(), s['atom_names'])
print(s['energies'].shape, s['forces'].shape, s['virials'].shape)

本例对应4帧、8原子,能量形状(4,)、力(4,8,3)、维里(4,3,3)。检查类型顺序与原单位,不因为文件合并成功就混入不同赝势、泛函或能量零点的数据。

不希望按化学式归并时,可执行dpgen collect job collected-separate。当前0.14.0对data.000/Si8这类多体系目录的非合并详细打印有类型索引限制;这条路径先不加-v,需要详细数量时优先使用上面的-m -v。

5 查看系统与迭代统计#

bash run.sh report

对应原生命令可分别使用:

dpgen run/report job -s -v
dpgen run/report job -i -v

-s按系统及探索温压条件统计已选择的标注任务;-i查看候选、准确、偏差过大及第一性原理输出等计数。本例来自300/600 K与0/10000 bar的四个短探索条件,完成4个新VASP标注。具体选中数量为300 K/0 bar 1个、300 K/10000 bar 1个、600 K/10000 bar 2个;600 K/0 bar本轮没有选中标注,不代表这个探索条件没有运行。

迭代统计实际为35个候选帧、9个偏差过大帧、0个准确帧,共44个受检轨迹帧;其中最终选出4个做VASP标注。短流程的委员会尚不成熟,这些分类不是材料势的泛化精度。

统计的是目录里的任务和输出,不是材料势的准确率。候选结构数量、最终成功标注数量和训练集帧数可以不同;尤其初始训练数据也在收集结果中时,不能把36帧解释成“本轮新算36次”。

6 保留任务关联,再整理数据#

原生统计会沿conf.dump关联到探索轨迹和input.lammps。附件setup.py在当前解压目录内恢复这些相对链接,run.sh自动调用;不要仅复制四个OUTCAR后期待系统/温压统计仍完整。

重复收集时使用新的输出目录,并独立保留测试数据。-s/--shuffle只是打乱数据顺序,不会去重,也不会保证按原始构型分组划分训练、验证和测试。

下一步参阅参数骨架生成或训练、探索与再训练。官方运行与参数说明可用于检查自己的完整配置。

图表数据与重新绘图#

bash plot.sh

图件保存在plots/,原数值另存于附件reference-data/。直接下载:Initial-Si2.csv、Initial-Si8.csv、New-Si8-labels.csv、generated-job-temperatures.csv、generated-system-groups.csv。

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

查看配图

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

100%查看原图 ↗