Skip to content

Navigation Menu

Sign in
Sign up

Polarizibility training #5511

mayankaditya started this conversation in General
Discussion options

Hi,

I am trying to train the deepMD model for the polarizability of BaZrO3. I have calculated the dielectric matrix tensor for different sampled configurations from AIMD and used this for training data. I used a single-unit-cell (5 atoms) for polarisation data.
I found rmse_trn and rmse_gl_trn are bouncing around wildly instead of steadily decreasing (as shown below):

44000 4.64e-01 nan 2.07e-01 1.0e-03
44100 7.36e-01 nan 3.29e-01 1.0e-03
44200 8.48e-01 nan 3.79e-01 1.0e-03
44300 6.99e-01 nan 3.13e-01 1.0e-03
44400 1.07e+00 nan 4.78e-01 1.0e-03
44500 1.95e+00 nan 8.74e-01 1.0e-03
44600 7.62e-01 nan 3.41e-01 1.0e-03
44700 5.06e-01 nan 2.26e-01 1.0e-03
44800 6.97e-01 nan 3.12e-01 1.0e-03
44900 6.80e-01 nan 3.04e-01 1.0e-03
45000 6.85e-01 nan 3.06e-01 1.0e-03
45100 8.03e-01 nan 3.59e-01 1.0e-03
45200 7.33e-01 nan 3.28e-01 1.0e-03
45300 3.30e-01 nan 1.48e-01 1.0e-03
45400 8.44e-01 nan 3.77e-01 1.0e-03
45500 1.71e+00 nan 7.64e-01 1.0e-03
45600 8.03e-01 nan 3.59e-01 1.0e-03
45700 1.62e+00 nan 7.24e-01 1.0e-03
45800 1.05e+00 nan 4.70e-01 1.0e-03
45900 6.22e-01 nan 2.78e-01 1.0e-03
46000 5.65e-01 nan 2.53e-01 1.0e-03
46100 3.74e-01 nan 1.67e-01 1.0e-03
46200 8.15e-01 nan 3.64e-01 1.0e-03
46300 3.57e-01 nan 1.60e-01 1.0e-03
46400 3.50e-01 nan 1.56e-01 1.0e-03
46500 4.86e-01 nan 2.17e-01 1.0e-03
46600 7.18e-01 nan 3.21e-01 1.0e-03
46700 6.15e-01 nan 2.75e-01 1.0e-03
46800 1.12e+00 nan 5.03e-01 1.0e-03
46900 1.65e+00 nan 7.37e-01 1.0e-03
47000 2.70e-01 nan 1.21e-01 1.0e-03
47100 5.69e-01 nan 2.54e-01 1.0e-03
"

I have also attached the training input file; I'm not sure if I made any mistakes.
inp.json

Thanks,
Mayank

You must be logged in to vote

Replies: 1 comment

Comment options

Hi Mayank,

A few points from your input file and the log:

  1. The nan column is expected with your current input because validation_data is null. If you want a meaningful trend, please split out a small fixed validation set and add it under training.validation_data.

  2. The training RMSE printed in lcurve.out is evaluated on the mini-batch used when the line is printed, not on the whole training set. With batch_size: 1, the polarizability tensor can vary substantially from frame to frame, so the reported rmse_trn/rmse_gl_trn may bounce a lot and is not expected to decrease monotonically. I would first try a larger batch size, or at least judge convergence from a moving average / a fixed validation set rather than individual printed lines.

  3. If your data only contains the total tensor label (polarizability.npy/.raw, shape nframes x 9), I would set the atomic part of the loss to zero for clarity:

"loss": {
 "type": "tensor",
 "pref": 1,
 "pref_atomic": 0
}

Only keep pref_atomic > 0 if you also provide atomic_polarizability.npy/.raw labels.

  1. Please also double-check the label you are fitting: the polar fitting net is fitting a second-rank tensor label. If the quantity from AIMD is the dielectric tensor rather than the cell polarizability, make sure the target is defined consistently for all frames (units/convention, volume dependence, and the order xx xy xz yx yy yz zx zy zz).

  2. If the validation curve is still unstable after the above checks, try lowering start_lr (for example 1e-4) and/or increasing the amount/diversity of training data. A 5-atom unit cell can work as a toy system, but the tensor target may still have large frame-to-frame variance.

So I would not diagnose this as a bug from the snippet alone. The first concrete changes I would make are: add validation data, increase batch_size, and set pref_atomic: 0 unless atomic tensor labels are present.

— OpenClaw 2026年6月8日 (844f405), model: custom-chat-jinzhezeng-group/gpt-5.5

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet

AltStyle によって変換されたページ (->オリジナル) /