DeePMD专题

DeePMD模型格式与七种后端

用同一个Si64教学模型认识各后端格式,准备个人环境并读取结构与参考数据。

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

本例适合已经有DeePMD模型、准备更换运行后端或检查模型格式的用户。先准备个人环境和四个结构,再运行同权重对照,最后了解CPU与GPU的操作差别。

1 下载与解压#

下载完整示例包,把ZIP放在自己的工作目录,再执行:

mkdir Si64-backends
python3 -m zipfile -e si64-deepmd-backends-*.zip Si64-backends
cd Si64-backends

示例包含原始模型、四个周期结构、原始参考数组、转换程序、Slurm脚本生成器和绘图程序。原始模型SHA256为 3624a5cfc4078b887c6be4ef706a475734f057f18427a1fa88bda243394547c3;ZIP自己的SHA256见本页末尾。

2 准备个人后端环境#

bash setup.sh

脚本在当前目录建立 .venv,继承集群 deepmd-kit/3.2.0 的基础环境,然后安装固定版本的个人依赖,不更改公共模块。首次安装需要联网和数GB空间,保留 requirements-lock.txt、requirements-gpu-lock.txt 即可核对版本及下载文件哈希。安装未结束时先查看终端报错,勿另开同目录重复安装。

本例使用Python3.12、DeePMD-kit3.2.0、PyTorch2.12.0、TensorFlow2.21.0、JAX0.12.0.1和Paddle3.3.0。公共源码版依托GCC13.3与CUDA12.9环境;个人JAX GPU组件使用CUDA12系列和cuDNN9.10.2.21。本例的Paddle依赖是CPU版。

3 四个真实输入结构#

python3 code/show_inputs.py

四个输入均有64个Si原子:scale0.98、scale1、scale1.02 和 perturbed。前三个是同一个周期金刚石结构的均匀缩放,立方盒边长依次为10.6428、10.8600、11.0772 Å;最后一个使用原盒子加小幅原子扰动。程序读取下载包内已经固定的坐标,不会每次重新随机生成。

source/*.xyz 是带晶胞信息的扩展XYZ,可用OVITO读取;source/GEOMETRIES.json 给Python接口提供坐标和九分量晶胞数组。本文沿用本站的硅势教学模型,比较同一个函数在各后端的表示,不用四个结构宣称生产硅势的材料精度。

DeePMD-backend-Si64-reference-geometries

4 后端名称、文件后缀与输出范围#

后端 本例文件 本例原生输出
PyTorch .pth 能量、力、virial
NumPy / DPModel .dp 有限能量;力和virial返回NaN
TensorFlow 1 .pb 等价导出后为能量、力、virial
TensorFlow 2 .savedmodeltf目录 能量、力、virial
JAX .hlo 能量、力、virial;按目标平台导出
Paddle .pd检查点 本例用CPU原生接口读出能量、力、virial
PyTorch Export .pte 能量、力、virial;按CPU或CUDA设备导出

这些是本例 se_e2_a 单元素能量模型的结果,不表示每一种描述符、张量模型或扩展都能任意跨后端转换。pretrained 用于解析预训练模型名称,不作为第八个独立数值引擎。NumPy的NaN表示该接口没有提供相应原生导数,不能用0代替。

DeePMD-backend-native-formats-and-outputs

5 先看附带结果,还是自己重新算?#

bash analyze.sh

这个命令只核对下载包中的参考文件和数组,并生成 tables-reference/backend-results.csv;没有重新训练模型,也没有重新执行原生后端。真正提交自己的新计算,接着运行下一篇的 bash run.sh。

模型转换及后端选择依据:DeePMD-kit3.2.0官方版本。ZIP SHA256:0fd10a35a6a95a2247eb5da77ba45e7e72a5c90c95784b5508afcaea81ee1146。

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

查看配图

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

100%查看原图 ↗