Training of models was done for 2000 or 20000 epochs with L1 loss function (absolute error between the prediction and training data). The stochastic gradient descent optimizer 68 with a momentum of 0.9 and batches of 500 training ligands were used. An exponentially decaying learning rate of 0.005 * 0.1 epoch/10000 was employed. Inverse frequency weighting was used to weigh the loss from individual training examples based on a Gaussian kernel distribution of the training free energies to remove bias due to them. Early stopping based on cross-validation loss was used to limit overtraining.