How to choose the ratio of stop_batch/decay_steps to have a better predictbility of potential. Using 5~10 seems to be better than 200 which was mentioned in DP video tutorial #1805
Replies: 3 comments 4 replies
-
May I ask if you conducted parallel testing for the iter10 model? Could you compare the training and validation accuracy, as well as the model_devi, between the model with stop_batch/decay_steps=200 and your parameter settings? Also, does the 'Length' in your table refer to the MD simulation time, and is the unit fs or ps? |
Beta Was this translation helpful? Give feedback.
-
Hi, thank you so much for your reply, For the model-devi. Using ratio of 5, For system6, 0.97LatticeConstant MoO3, is 98.81%; for system 7, 1.00, is 98.17%; for system 8, 1.03, is 98.02% (I retrain a new round with ratio of 5 with the same loss parameters, so a little bit difference with figure). I didn't test the ratio of 200, but according to the iter.8, and 9, also the force RMSE, I assume it will be around 80% accurate. The length is fs. From iter 5-11, it should be 25 (25000 nsteps, dt0.001), 40, 50, 60, 70, 80, 100 fs. Sorry that I mistakely divided by 10. |
Beta Was this translation helpful? Give feedback.
-
Hi, I checked your input files. In input_ratio5.json, the stop_lr is set to 1e-05, whereas in input_ratio200.json it is not specified, so DeePMD-kit defaults to 1e-08. This difference in the stopping learning rate accounts for the accuracy gap between the two models. With stop_lr set to 1e-05, the model maintains a higher learning rate, which can accelerate convergence during the DP-GEN iterative data generation process. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Dear maintainer,
I found that using stop_batch=400k and decay_steps of 80k (so ratio will be 5) is "better" than using decay_steps of 0.2k (ratio is 200, which is recommended by a DeepModelling developer). I attached the figures of accurate ratio using different ratio. I will explain in detail about my test and this "better", also at the end, I have several questions about how to tune the parameter.
First of all, my system is alloy and oxides, to study the oxidation behaviors. Previous initial dataset is bulk alloys, now I introduce oxides. During training the oxide data, I found that among all my introduced oxide (Cr2O3, MoO3, etc), the others are good (using [lo, hi] = [0.10, 0.25]), which means the accurate ratio improve gradually. However, MoO3's accurate was under 30% for iter.0-5, and then was around 80% using [lo, hi]=[0.15,0.30] for iter.5-7 (also conducted 8 and 9, which is also around 80%. The previous these iters are covered by new 8 and 9). It seems like it is not easy for MoO3 to converge to a accuracy of 0.15, which I think is not a very high accuracy under temperature range of 50-400K.
In this way, I tried to use some other parameter to train the potential. I use a larger decay_steps of 80k instead of 0.2k, so maybe learning rate is not reduce too fast and model can learn more (I guess). Using new potential, in the iter.10, MoO3 reach a 99.62% accuracy, which I think the potential is "better" than other old potential (?). The new potential also reach accurate for other four oxides (not list all).
My question is:
Thank you so much for your reply in advance. It gonna be very helpful.

Beta Was this translation helpful? Give feedback.
All reactions