Replies: 4 comments 5 replies
-
Hello! Thanks for using our package. First I want to ensure that you are using eigenvalues from DFT as the training target right? A quick answer for your cases is: This "e3baseline" parameterization is mainly developed to directly fitting the DFT Hamiltonian matrix under LCAO basis instead of the eigenvalues, please use the "se2" for fitting eigenvalues. The poor performance in your with se2 is mainly caused by the training procedure. To train an accurate and transferable DeePTB model using eigenvalues, there is a general procedure, please see our hBN/silicon examples for details. Here is more explanation on "e3baseline": The e3baseline_0 descriptors, along with others prefixed with "e3baseline", are equivariant graph-neural-network-based descriptors that parameterize the Hamiltonian in tensor product space of the E3 group. Unlike the two-center approximation applied in SKTB format, it does not have any constraint on the Hamiltonian elements, except they must obey the equivariance under E3 group operations. This feature has been tested, and will be released very soon. Please feel free to reach us if there are more questions. Cheers! Zhanghao |
Beta Was this translation helpful? Give feedback.
-
Hi there,
Thank you for the speedy reply! It's good to know the e3baseline descriptors are designed for Hamiltonian training--I have a dataset of Hamiltonian data so I will try that as well.
I will try using the se2 descriptor this week and follow the procedure shown in the documentation.
Just to clarify, I should train in this order (following the Si example), right?
- NNSK model
- Perfect crystal model only
- First with only the first nearest neighbor, no onsite correction, and valence only basis
- Then with the onsite correction and orbitals for the conduction bands
- Then push the cutoff radius out
- Then push the w to a smaller value
- Next, train bond-length dependent parameters using MD data
- Start with a low-T dataset, and then increase to higher T.
- Environmentally-dependent model using the se2 descriptor
I have a couple of questions about the process:
- When pushing r_cut out or reducing w, does the training output the best value? For example, I don't have a good intuition for what omega should be, so during the push procedure, how will I know if I have reduced it too much? Or, for r_cut, if I pushed it too far?
- The bond-length dependent training still needs the perfect crystal in the training set so it does not forget those parameters, correct?
- Since I am interested in structures with defects, where is the best place in this procedure to introduce them?
Thank you!
…On Thursday, May 23rd, 2024 at 10:26 PM, Yinzhanghao Zhou ***@***.***> wrote:
Hello!
Thanks for using our package. First I want to ensure that you are using eigenvalues from DFT as the training target right?
A quick answer for your cases is: This "e3baseline" parameterization is mainly developed to directly fitting the DFT Hamiltonian matrix under LCAO basis instead of the eigenvalues, please use the "se2" for fitting eigenvalues.
The poor performance in your with se2 is mainly caused by the training procedure. To train an accurate and transferable DeePTB model using eigenvalues, there is a general procedure, please see our hBN/silicon examples for details.
Here is more explanation on "e3baseline":
The e3baseline_0 descriptors, along with others prefixed with "e3baseline", are equivariant graph-neural-network-based descriptors that parameterize the Hamiltonian in tensor product space of the E3 group. Unlike the two-center approximation applied in SKTB format, it does not have any constraint on the Hamiltonian elements, except they must obey the equivariance under E3 group operations. This feature has been tested, and will be released very soon.
Please feel free to reach us if there are more questions.
Cheers!
Zhanghao
—
Reply to this email directly, [view it on GitHub](#179 (comment)), or [unsubscribe](https://github.com/notifications/unsubscribe-auth/ABO2ZUPI64T3S76T6RFAHX3ZD2QMFAVCNFSM6AAAAABIGM77SSVHI2DSMVQWIX3LMV43SRDJONRXK43TNFXW4Q3PNVWWK3TUHM4TKNBRHA2TM).
You are receiving this because you authored the thread.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Thanks for your guidance, Zhanghao! I am currently training a model as you suggested and I'm excited to see the outcome. I had couple more questions as I follow the Si example:
Thanks again! |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Hello,
I have been testing DeePTB v2 with the
e3baseline_0
descriptor (I have found this descriptor works better than these2
descriptor) on a large dataset of defective BN supercells. When I use the model for inference on the test set (which is composed of the same structures but k-points not included in the training data), the mean absolute error (MAE) is too high for practical prediction of properties. Here is a 2d histogram of the error in the eigenvalues vs the actual eigenvalues:I am using
["2s", "2p", "d*"]
for the basis for both B and N. My model options are:The atomic data options in my training data files are all:
The final training loss was
0.046430
and the final validation loss was0.101003
.Do y'all have any suggestions as to how to improve the accuracy for systems with many defects?
Thanks!
Beta Was this translation helpful? Give feedback.
All reactions