[toc]
将以气态甲烷分子为例,详细介绍Deep Potential (DP)模型的训练和应用。
手动安装cpu版
1 | wget https://github.com/deepmodeling/deepmd-kit/releases/download/v3.0.0b3/deepmd-kit-3.0.0b3-cpu-Linux-x86_64.sh |
安装过程中可以自定义路径 /home/xxx/softwares/miniconda/miniconda3/envs/deepmd-kit
激活环境
数据准备
1 | wget https://bohrium-api.dp.tech/ds-dl/DeePMD-kit-Tutorial-a8z5-v1.zip |
.
├── 00.data : 存储训练和测试数据
├── 01.train:包含使用DeePMD-kit训练模型的示例脚本
├── 01.train.finished:包括训练过程的完整结果
├── 02.lmp:包含使用LAMMPS进行分子动力学模拟的示例脚本
└── 02.lmp.finished5 directories, 0 files
1 | tree 00.data/ -L 1 |
00.data/
├── abacus_md:包含通过ABACUS从头分子动力学(AIMD)模拟获得的数据
├── training_data
└── validation_data3 directories, 0 files
DeePMD-kit的训练数据来源于第一性原理计算数据,包括atomic types, simulation cells, atomic coordinates, atomic forces, system energies, and virials.
采用”dpdata”工具划分数据:
1 | pip install dpdata |
1 | # split_data.py |
00.data/training_data/
├── set.000:存放压缩格式数据(NumPy压缩数组)的目录
├── type_map.raw:它是一个包含原子类型(表示为整数)的文件
└── type.raw:它是一个包含原子类型名称的文件1 directory, 2 files
输入脚本准备
数据准备完成后,可以开始训练
现在转到training 目录。DeePMD-kit需要一个json格式的文件来指定训练参数。
1 | pip show dargs || pip install --upgrade dargs |
1 | # input_pre.py |
1 | { |
模型训练
运行 DeePMD-kit 来开始训练
1 | cd ./01.train |
1 | # screen输出 |
1 | # 输出lcurve.out文件 |
1 | # 绘图 |
模型冻结
在训练结束时,应该将保存在 TensorFlow 检查点文件中的模型参数冻结为一个通常以扩展名
.pb
结尾的模型文件。只需执行以下操作:
1 | dp freeze -o graph.pb |
模型测试
检查训练模型的质量
1 | dp test -m graph.pb -s ../00.data/validation_data |
1 | [2024-09-24 13:02:43,966] DEEPMD INFO # ---------------output of dp test--------------- |
计算预测数据和原始数据之间的相关性
1 | import dpdata |
在LAMMPS中执行MD模拟
1 | cd 02.lmp |
.
├── ch4.dump
├── conf.lmp:气相甲烷分子动力学模拟的初始构型
├── graph.pb
├── in.lammps:标准的 MD 模拟 LAMMPS 输入文件,只有pair_style 和pair_style 例外
└── log.lammps0 directories, 5 files
在具有兼容版本的 LAMMPS 环境中,执行深度势分子动力学:
1 | mpirun -np 8 lmp_mpi -i in.lammps |
1 | Summary of lammps deepmd module ... |
参考
[1] https://docs.deepmodeling.com/projects/deepmd/en/r2/getting-started/quick_start.html