Closed lmj1029123 closed 5 years ago
I found the problem and it should be fixed now.
On a side note, I would also recommend adding a special standardization layer for symmetry functions and one for the energies. For the SF, this would look something like this:
reps = rep.BehlerSFBlock(...)
reps = rep.StandardizeSF(reps, train_loader)
The scaling for the energy in the output layer can be done via:
mean, stddev = train_loader.get_statistics('energy', True)
output = atm.ElementalEnergy(...
create_graph=True,
mean=mean,
stddev=stddev)
Hope this could fix your issue.
Hi,
It seems that the trainer is not working properly when I did force training with angular symmetry functions for clusters with different number of atoms. (ElementalEnergy)
When I did the training for clusters with same number of atoms, it is OK. By looking at the log, it seems that the losses are going down. However, if I use it for clusters with different number of atoms, the losses become nan. This applies to both "Behler" and "Weighted" mode. Changing the learning rate of the Adam optimizer does not help. I don't know exactly why this is the case. My guess is that it could be due to the padding you do to the "representation" when you have clusters of different size. Could you have a look at that? Thanks!
Best, Mingjie