其他
【DP系列教程-05】DeePMD-kit 的restart 和 init-model 工具
restart工具顾名思义是重启动,一般用于训练过程异常终止后,想完全从中断的训练继续进行。restart完全继承上次训练的参数和超参数(训练步、学习率等)。restart 时不推荐修改输入脚本。
dp train --restart model.ckpt input.json
init-model一般用于改善当前模型。例如我们已有一个模型能够描述0-200K,0-10GPa的物质,且增加一些200-300K,0-10GPa的数据用于扩展模型的适用范围。这时或者将新数据加入旧数据集重新训练,或者我们偷懒使用init-model模式,继承旧模型中的知识,并让模型学会新数据中的知识。具体来说init-model使用一个已有模型中的参数初始化当前的模型参数,而训练过程则是重头来过。训练中学习步,学习率,能量、受力、维里系数等超参数可以自由设定。
"learning_rate" :{
"stop_lr": 3.0e-8,
"type": "exp",
"start_lr": 0.0001,
},
公式中的p(t)代表能量、力、或者维里在训练过程中的权重,它是随学习率在训练过程中线性变化的,从训练开始的p_start逐渐演变为训练结束时的p_limit. 因此初始学习率改变则初始的能量,受力,维里loss function系数也要进行相应调整。
"loss" :{
"start_pref_e": 0.9,
"limit_pref_e": 1,
"start_pref_f": 100,
"limit_pref_f": 1,
"start_pref_v": 0.9,
"limit_pref_v": 1,
"_comment": " that's all"
},
如果我们想在新训练中着重改善能量预测精度,则可以适当增大loss function中能量的系数,例如:
"loss" :{
"start_pref_e": 100
"limit_pref_e":100,
"start_pref_f": 1,
"limit_pref_f": 1,
"start_pref_v": 0.9,
"limit_pref_v": 1,
"_comment":
" that's all"
},
"systems" : ["data.old0","data.old1","data.old2","data.new0","data.new1"],
"systems" : ["data.old0","data.old1","data.old2","data.new0","data.new1"],
"auto_prob_style": "prob_sys_size; 0:3:9; 3:5:1",
dp train --init-model model.ckpt init-model.json
end
DP视角
最新独门秘籍放送,技巧虽小,效果拔群;操作简单,省时高效。