cpp怎么给int dp[]设置初始值_【DP系列教程06】DPGEN之甲烷力场构建

这篇教程介绍了如何在C++中为动态规划的int dp[]数组设置初始值,特别是在DP-GEN框架下。内容涉及到DP-GEN与第一性原理计算软件CP2K的接口使用,帮助读者理解如何在实际计算中应用。
摘要由CSDN通过智能技术生成

6025f853e1ebb243f470825a713db268.png

DP-GEN是一款在DeePMD-kit的基础上开发的同步学习工作流,它与许多常用分子模拟软件接口,可在高性能计算集群上面自动地生成输入脚本并维持运行。今天DP君就以甲烷力场构建为例来带大家入门DP-GEN的主流程。 DP-GEN功能多样,包括initbulk、initsurf、run和test,今天DP君重点讲解的就是run流程,这个流程主要包括三个步骤:

1e8df254c42cdcd1437ae9bf88b04302.png

图1  run流程的3个步骤

6bae719b1d0a34a0d23f8362e0f0513e.png 首先我们需要一套DeePMD-kit能识别的数据格式的初始数据集。大家如果有不清楚的可以看DP君之前的推送。 (【DP系列教程-01】如何在5分钟之内setup一个DeePMD-kit训练) 然后调用DeePMD-kit训练多个深度势能模型,默认是训练四个模型,这也是DP君推荐的呀!这四个模型之间的唯一区别就在于初始化神经网络时使用不同的随机数种子。接着调用LAMMPS软件以我们之前训练的四个模型中的一个模型作为原子间相互作用势进行分子动力学模拟,对于任一轨迹中 snapshot,模型间预测偏差越大意味着当前模型系综对该 snapshot 构象的预测精度越低,通过引入模型偏差作为误差判据并设定上下限, 挑选出有希望有效改进模型对势能面整体预测精度的 snapshot 构象,作为准备加入训练数据集的候选构象,随机挑选其中部分的构象进行DFT计算得到一些新的数据加入我们现有的数据集再训练就可以得到精度比之前更高的深度势能模型啦!整个过程循环迭代,各迭代会根据所选系综在给定的温度、压力或体积等条件下进行 DPMD 采样与筛选,实现同步学习,所有迭代希望能够有效覆盖训练可靠模型所需的势能面上样本空间。 说了这么多,相信大家早已迫不及待想自己上手试试了吧。现在,我们就需要准备输入脚本了,DP-GEN需要两套输入脚本,分别是参数设置文件和机器配置文件,想想写输入脚本就觉得头大,还好官网提供了一个参数设置文件模版,让我们先把模版以及其他的一些需要的文件下到自己的服务器吧:
wget  https://raw.githubusercontent.com/deepmodeling/dpgen/master/examples/run/dp-lammps-cp2k/CH4/param_CH4.json
这个参数设置文件主要分为三部分,分别为training、modeldevi和fp,其中training部分的参数设置可以参考DP君之前的推送。( 【DP系列教程-01】如何在5分钟之内setup一个DeePMD-kit训练) 对于另外两个部分,首先我们需要修改一下初始数据集的路径:
"init_data_prefix": "path/","init_data_sys":    ["path_to_init_data_sets"],
这里既可以是绝对路径也可以是相对路径࿰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值