DeePMD专题

DeePMD能量、力、virial与压力误差

用实际预测文件计算误差,分清每构型和每原子单位。

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

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

1. 直接测试冻结模型#

在已申请的资源内执行:

module load deepmd-kit/3.2.0
python -B predict.py

脚本读取reference/dpa1-1500/model.pth和data/test,将原始E/F/W预测写进work/predict/prediction.npz;metrics.json由原始数组独立计算。也可使用原生命令:

mkdir -p work/test-native
dp --pt test -m reference/dpa1-1500/model.pth -s data/test -n 3 -d work/test-native/holdout

2. 读懂列和归一化#

输出 参考与预测 单位
holdout.e.out 整个构型E eV
holdout.e_peratom.out E/N eV/atom
holdout.f.out Fx Fy Fz与预测三列 eV/Å
holdout.v.out 9个W分量与预测9列 eV
holdout.v_peratom.out W/N eV/atom

能量RMSE以3个构型为样本;力RMSE使用全部原子三分量;virial使用全部构型9分量。不要把三分量误差与力模长误差混为一谈。预测结果为0.043773eV/atom、0.301006eV/Å、0.601787eV/atom。

3. 独立算一遍力RMSE#

import numpy as np
x = np.loadtxt('work/test-native/holdout.f.out')
delta = x[:, :3] - x[:, 3:6]
print(np.sqrt(np.mean(delta**2)))

4. 从virial到压力#

使用本例W约定,构型压强张量P=W/V,单位先为eV/ų,再乘160.21766208换成GPa。ASE的Cauchy应力采用相反符号σ=−W/V。比较工具输出前先确定约定;相反符号不代表模型物理结果相反。

没有参考virial时不要把缺失值当成零或纳入误差。GPUMDkit DPA接口将缺失参考W和压力的相应列写为−1E6哨兵,预测列仍是模型结果;必须排除哨兵计算统计。

普通能量势的E/F/W不等于偶极矩、极化率或其他专用张量模型。本页只训练有真实E/F/W标签的能量势;张量模型需准备对应物理标签并用相应拟合网络,不能拿virial训练代替。

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

查看配图

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

100%查看原图 ↗