schnetpack

Tips

Training

It is necessary to precondition with the mean and standard deviation per atom of the energy when training energies and forces.

# loading training data
training_data = AtomsData('training.db')

# generate training, validation and test data
train, val, test = spk.train_test_split(
        data=training_data,
        num_train=950,
        num_val=50
    )

train_loader = spk.AtomsLoader(train, batch_size=100, shuffle=True)

# calculate means and stddevs
means, stddevs = train_loader.get_statistics('energy', divide_by_atoms=True)

energy_model = spk.atomistic.Atomwise(
    property='energy',
    mean=means['energy'],
    stddev=stddevs['energy'],
    derivative='forces',
    negative_dr=True
)

MD

Currently only a primitive version of a neighbor list is implemented, which cannot deal with periodic boundary conditions and does not possess optimal scaling for large systems.