DeePMD专题

DeePMD分子极化率张量训练实操

使用分子总极化率训练全原子中心模型,分析误差、选中中心和旋转平移行为。

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

本篇使用量化标签整理的同一份NH₃数据,演示 polar 模型如何学习静态极化率。训练已由上一篇的 bash run.sh 一并完成;本篇继续读结果,不需再次提交。

1 查看实际输入#

cat reference/all-centers/inputs/polar-global-allatoms.json

核心设置如下:

{
  "fitting_net": {"type": "polar", "sel_type": [0, 1], "neuron": [16, 16], "fit_diag": false, "precision": "float64"},
  "loss": {"type": "tensor", "pref": 1.0, "pref_atomic": 0.0}
}

选择N和H全部中心,由总α监督中心贡献的总和。使用 polarizability.npy,不需要,也不应仅凭总α臆造每个原子的 atomic_polarizability.npy。fit_diag=false 保留对应拟合矩阵设置,输出是3×3对称极化率张量;输入九分量顺序与单位见标签篇。

2 读取结果与重新绘图#

bash plot.sh

读取提供的实际结果生成图片,不启动训练。全部原始学习曲线、冻结模型与对照预测仍在 reference/。

head -n 12 tables-new/your-tensors.csv

查看新算例对应的模型、RMSE和旋转/平移误差。表中的偶极为eÅ,极化率为ų,两种单位应分开比较。

3 为什么要检查选中中心#

只选N与选择全部中心的实际极化率误差

初始只选N的 polar-atomic 和 polar-global,在本例测试集上的RMSE约0.09037 ų;保持相同量化标签、原始几何划分、网络大小、学习率、种子和3000训练步,改为全部N/H中心并使用全局α监督后,RMSE约0.01333 ų。P100与V100结果均如此。初始模型和曲线保留在包中,供比较。

这说明本例的中心表示选择会明显影响效果,不能只看训练是否跑完,也不能遇到误差偏大就盲目增加训练步数。该现象不意味着所有体系都应全选中心;化学环境、数据覆盖和模型表示仍需分别检查。

4 张量应怎样跟着结构变化#

预测接口使用 from deepmd.tf.infer import DeepPolar。把同一个结构整体旋转R后,张量应满足α′=RαRᵀ;整体平移后应保持不变。同一冻结权重的CPU/GPU数值也应一致,这些对照与模型对HF标签的拟合误差是不同问题。

head -n 14 tables/tensor-results.csv

实际旋转平移和同一权重CPU GPU差异

偶极差异在约10⁻¹⁶ eÅ量级,全中心极化率差异在约10⁻¹⁴ ų量级;图中使用实际差值,两个面板单位不同。每个图形对应的NPZ在 reference/all-centers/API-*/,包括实际预测、标签、旋转矩阵及平移量。

测试结构01的HF张量对角约(1.3555,1.3555,0.7906) ų,模型约(1.3872,1.3872,0.7759) ų,可结合响应椭球图理解方向各向异性。这是静态、孤立分子、HF/6-31G(d)下的数值;没有频率依赖、凝聚相效应,也没有在此例生成拉曼谱。生产应用需要更大、更有代表性的数据与独立测试。损失与标签格式参见DeePMD官方教程。

本组完整实例下载包包含三篇教程使用的全部可公开数据与脚本。

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

查看配图

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

100%查看原图 ↗