All models were trained for 200 epochs using the L1 loss function. This is due to the shape of the data distribution, shown in Figure . The Reduce On LR Plateau learning rate scheduler was used as implemented in pytorch with the AdamW optimizer. A train/valid/test split of 85:5:10 was used for all runs. Each model was run 3 times with the same random seed in the train/valid/test split to obtain average values for the test predictions and train/validation losses.