DeePMD专题

DeePMD类型嵌入concat与strip训练

用单卡Slurm训练两种类型嵌入设置,读取学习曲线和真实测试集能量受力误差。

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

本篇在已准备的数据与环境上训练se_e3_tebd类型嵌入的concat、strip两个变体,同时训练一个DPA4模型,便于后面读取同一批输出。下载完整实例包。

1 一条命令提交#

bash run.sh

默认使用P100分区,申请单卡、2个CPU核、8GB内存,三个小模型依次训练,各3000步。V10016G用户在新解压目录中使用bash run.sh v100。程序打印Slurm作业号并等待结束;排队时不要重复启动。已有new-work时应保留结果,另建目录重算。作业管理仍按集群的普通用户权限执行。

完整顺序为:复制数据和输入→concat训练、冻结、测试→GPU与CPU推断→strip同样操作→DPA4训练与测试→生成自己的结果表。训练均从头开始;没有直接把参考模型复制成新模型。

2 类型嵌入输入怎么读#

concat的实际完整model配置如下:

{
  "type": "standard",
  "type_map": [
    "N",
    "H"
  ],
  "descriptor": {
    "type": "se_e3_tebd",
    "rcut": 3.0,
    "rcut_smth": 2.5,
    "sel": [
      4,
      8
    ],
    "neuron": [
      8,
      16
    ],
    "tebd_dim": 4,
    "tebd_input_mode": "concat",
    "resnet_dt": false,
    "precision": "float64",
    "seed": 596001
  },
  "fitting_net": {
    "type": "ener",
    "neuron": [
      32,
      32
    ],
    "resnet_dt": false,
    "precision": "float64",
    "seed": 596002
  }
}

type_map必须与数据类型编号一致。sel=[4,8]给N、H邻居预留容量,不是体系原子数;rcut=3、rcut_smth=2.5单位Å。tebd_dim=4是类型嵌入维数。concat把类型信息接入嵌入网络;strip使用另一种原生类型嵌入结合方式,两者是同一描述符家族的两个设置,不代表两种独立软件功能。

strip的完整输入见inputs/se3tebd-strip.json,本例主要将tebd_input_mode改成strip。训练部分固定3000步、batch 4、起始学习率0.002、终值0.00001;验证集仅用于观察,测试集不参与优化。损失为总能量与原子力,virial权重为0。

NH3-descriptor-native-learning-curves

3 查看新计算#

head -n 5 tables-new/model-results.csv

三行分别是concat、strip、DPA4。energy_RMSE_peratom_eV是按4个真实原子归一的总能量RMSE;force_RMSE_eVA是测试帧所有原子三方向的分量RMSE。12个测试姿态来自4个独立原始构型,应按4个原始构型理解数据范围。

本次P100和V10016G实算的concat能量RMSE约0.001656 eV/原子、力RMSE约0.05834 eV/Å;strip约0.0003743 eV/原子与0.02097 eV/Å。两块卡得到一致数值范围。此处只比较这个固定小数据集,不能据此得出strip对所有化学体系更好。

NH3-descriptor-heldout-energy-force-predictions

4 查看训练过程#

head -n 8 new-work/p100-se3tebd-concat/lcurve.out

V100运行时目录前缀改为v100-。lcurve.out包含训练与验证误差,模型目录还保存训练输入、原生训练日志和测试预测。concat与strip既保留model.pt检查点,也输出frozen_model.pth。继续训练应使用检查点,并明确区分恢复优化器与只初始化模型;本例没有自动续算旧目录。

5 检查本次完整结果#

python3 code/summary.py

应看到3个新模型、9000次优化更新和新计算的检查摘要。自己的受力与能量结果在new-work中,下载包reference中的曲线仅是配套参考。下一篇说明DPA4的邻居依赖、模型格式和CPU/GPU比较。

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

查看配图

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

100%查看原图 ↗