The template library was constructed by filtering the respective dataset for templates that occurred a minimum of 3 times. In all cases duplicate reactions were removed prior to filtering as explained in our previous work. Products were represented as extended connectivity fingerprints (ECFP) with a radius of 2, using the Morgan algorithm in RDKit. Whereas, templates were represented as binarized labels in a one-vs-all fashion using the scikit-learn library using the 'LabelBinarizer'. Both the input ECFP4 and output vectors were precomputed. Training, validation, and test sets were constructed as a random 90/5/5 split of the datasets, using a random state of 42, where the datasets were shuffled prior to splitting. This was conducted using the scikit-learn library. The network framed as a supervised multiclass classification problem was trained using Keras with Tensorflow as the backend, the Adam optimizer with an initial learning rate of 0.001, and categorical cross entropy as the loss function (Figure ). The learning rate was decayed on plateau by a factor of previous work. The multi-label approach enables faster training relative to the single-label approach whilst achieving similar accuracy and loss values (Figure ).