DeePMD续训、初始化与微调
用500到1500步的真实续训区分检查点和冻结权重。
阅读本篇目录
下载结构、标签、完整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 |

本次续训降低误差,但仍只覆盖很窄的位移分支。训练损失下降不能代替独立材料构型测试,也不能只挑某一个力分量判断整个模型。
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和官方说明,不能把本例单元素操作直接套用。
需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。