DeePMD专题

DeePMD量化张量标签整理

用真实NH3量化结果整理偶极矩和静态极化率标签,说明单位、非周期格式与训练集划分。

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

训练分子偶极矩或极化率模型,先准备与结构一一对应的张量标签。本例在鸢算科技集群实际计算16个NH₃几何的HF/6-31G(d)结果,再整理为DeePMD3.2.0的TensorFlow训练数据。先完成本篇的数据准备,再阅读偶极矩训练和极化率训练。

1 下载并解压#

下载输入、选定量化数值、冻结模型、原始训练曲线与绘图脚本,在登录目录执行:

mkdir NH3-tensors
python3 -m zipfile -e nh3-deepmd-tensors-*.zip NH3-tensors
cd NH3-tensors

这里提供已实际计算的数值标签,后续训练无需再运行Gaussian。包内不包含Gaussian程序、检查点、完整格式化检查点或分子轨道。

2 本例算的是什么#

每个结构为1个N和3个H,中性单重态,共10个电子。N置于原点,三个H的方位角分别为0°、120°、240°,位于朝−z的锥面;通过改变N—H距离、锥角和小的不对称位移产生16个原始几何。训练集8个、验证集4个、测试集4个,先按原始几何分组,再对每个结构施加三种刚体姿态,合计24、12、12帧。旋转出的帧共享同一个量化计算,不能说成48个独立量化样本。

实际NH3几何和偶极方向

蓝色为N,灰色为H,红色为量化偶极方向;箭头按0.8 Å/(eÅ)缩放作展示。训练N—H基准距离0.96或1.06 Å,锥角66°或70°,不对称量0或0.03 Å;测试使用其间的独立几何,未把同一个原始结构的旋转分到不同集合。

查看一个真实计算输入:

cat reference/original/gaussian-inputs/NH3-train-01.gjf
%NProcShared=1
%Mem=1GB
%chk=calc.chk
#p HF/6-31G(d) SCF=(Tight,Conver=10) Polar NoSymm

NH3 actualtensorlabel NH3-train-01

0 1
N 0.00000000000000 0.00000000000000 0.00000000000000
H 0.87700363933690 0.00000000000000 -0.39046717735277
H -0.43850181966845 0.75950743087716 -0.39046717735277
H -0.43850181966845 -0.75950743087716 -0.39046717735277

路由中的 Polar 求静态极化率,偶极矩由同一次HF计算给出。实际使用Gaussian16 C.01 AVX版,每个分子1核、1GB内存;Gaussian使用厂商提供的可执行程序。DeePMD-kit3.2.0配套TensorFlow2.21.0,集群源码环境使用GCC13.3、CUDA12.9;绘图使用ASE3.29.0环境内的NumPy与Matplotlib。

3 单位与矩阵顺序#

选定数值在 reference/original/selected-labels/:坐标Å、SCF能量Hartree、偶极e·Bohr和eÅ、极化率原子单位和ų均保留。原始日志与格式化检查点中的偶极/极化率已逐项对照;两者输出小数位不同,不能直接比较文本字符串。

量 换算或排列
坐标 1 Bohr = 0.529177210903 Å
偶极 μ(eÅ)=μ(e·Bohr)×0.529177210903;1 e·Bohr≈2.541746473 D
极化率 α(ų)=α(au)×0.529177210903³
FCHK六分量 xx、xy、yy、xz、yz、zz,先展开对称3×3矩阵
训练九分量 xx、xy、xz、yx、yy、yz、zx、zy、zz,按行展平

重建数据并核对提供的数据集:

bash labels.sh

输出 labels-rebuilt/train、validation、test。脚本读取已导出的量化字段,换算单位并同时旋转结构和标签:μ′=Rμ,α′=RαRᵀ。中性分子整体平移不改变总偶极与极化率。它不会重新启动Gaussian,也不会修改参考数据。

head -n 30 reference/original/selected-labels/NH3-test-01.json

本例是孤立分子,数据目录有 nopbc;box.npy 的20 Å矩阵是格式占位,训练按非周期处理,Python接口传 cell=None。元素映射固定为 N H,type.raw 为 0 1 1 1。

4 全局与原子标签要分清#

dipole.npy 每帧3个分量,polarizability.npy 每帧9个分量,表示整个分子。atomic_ 文件代表选中中心的标签:本例偶极仅选择一个N中心,把整个中性分子的偶极赋给这一中心,演示两种损失入口;这是一种明确的标签约定,不是物理原子电荷/偶极分解。

全原子中心的极化率模型只使用全局α监督,不凭空构造每个N/H的原子极化率。它的训练数据在 reference/all-centers/data/,没有 atomic_*.npy;训练后各中心贡献是模型的内部可加表示,不能当作唯一的量化原子响应。

真实静态极化率矩阵与响应椭球

上图为测试结构01的HF与学习模型对照,椭球半轴按√(α/ų)绘制,仅用于展示响应方向和相对大小,不是电子密度或分子外形。继续偶极矩训练。文件命名和损失定义可查DeePMD官方张量训练说明。

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

查看配图

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

100%查看原图 ↗