DeePMD专题

DeePMD续训、初始化与微调

用500到1500步的真实续训区分检查点和冻结权重。

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

下载结构、标签、完整JSON、冻结模型、参考结果和脚本。解压到自己的工作目录,以下命令从附件根目录开始。预处理可交互操作;训练、批量预测和MD在申请的计算资源内运行。所有新结果进入work,不覆盖reference。

1. 先完成500步训练#

sbatch train.sbatch dpa1-500

等任务正常结束,再提交续训;不要同时让两个训练任务写一个目录。

sbatch train.sbatch dpa1-1500

续训目录使用与前一轮相同训练/留出数据,完整JSON在inputs/dpa1-1500/input.json,目标numb_steps=1500。实际原生命令为:

cd work/dpa1-1500
dp --pt train input.json --restart ../dpa1-500/model.ckpt.pt
dp --pt freeze -o model.pth
dp --pt test -m model.pth -s ../../data/test -n 3 -d holdout

1500是全局目标步数,从500继续增加1000步;不是再增加1500步。检查点包含续训状态,冻结model.pth用于推断,不能简单改后缀代替检查点。

2. 比较两轮实际结果#

全局步数 留出E eV/atom 留出F eV/Å 留出W eV/atom
500 0.725410 1.232725 3.294267
1500 0.043773 0.301006 0.601787

实际训练曲线与500/1500步留出力对比

本次续训降低误差,但仍只覆盖很窄的位移分支。训练损失下降不能代替独立材料构型测试,也不能只挑某一个力分量判断整个模型。

3. 微调演示#

sbatch train.sbatch finetune

内部使用:

dp --pt train input.json --finetune ../dpa1-500/model.ckpt.pt

此例将最初留出的3帧用于200步微调,以最初6帧监测,学习率从1E-4开始。监测数据已在预训练中见过,因此这里只演示参数加载和改用数据的操作,不报告“迁移到新体系”的泛化能力。其监测力RMSE1.243565eV/Å,也没有优于原始续训模型。

--restart用于同一训练的延续;--init-model与--finetune用于从已有模型开始新的训练场景,具体头部/元素映射必须按模型和版本核对。迁移到新元素或多头预训练模型前,先查看dp --pt train --help和官方说明,不能把本例单元素操作直接套用。

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

查看配图

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

100%查看原图 ↗