Step 4: Training
lambeq, all low-level processing that takes place in training is hidden in the
training package, which provides convenient high-level abstractions for all important supervised learning scenarios with the toolkit, classical and quantum. More specifically, the
training package contains the following high-level/abstract classes and several concrete implementations for them:
Dataset: A class that provides functionality for easy management and manipulation of datasets, including batching, shuffling, and preparation based on the selected backend (tket, NumPy, PyTorch).
Model: The abstract interface for
lambeqmodels. A model bundles the basic attributes and methods used for training, given a specific backend. It stores the symbols and the corresponding weights, and implements the forward pass of the model. Concrete implementations are the
NumpyModelclasses (for more details see Section Choosing a model below).
lambeqoptimizer calculates the gradient of a given loss function with respect to the parameters of a model. It contains a
step()method to modify the model parameters according to the optimizer’s update rule. Currently, we support the SPSA algorithm by [Spa1998], implemented in the
Trainer: The main interface for supervised learning in
lambeq. A trainer implements the (quantum) machine learning routine given a specific backend, using a loss function and an optimizer. Concrete implementations are the
The process of training a model involves the following steps:
Trainer, passing to it a model, a loss function, and an optimizer.
Datasetfor training, and optionally, one for evaluation.
Train the model by handing the dataset to the
fit()method of the trainer.
lambeq covers a wide range of training use cases, which are described in detail under lambeq use cases. Depending on your specific use case (e.g., classical or (simulated) quantum machine learning, etc.), you can choose from a variety of models and their according trainers. Refer to Section Choosing a model for a detailed overview of the available models and trainers.
The following examples demonstrate the usage of the
training package for classical and quantum training scenarios.
- Training: Classical case
- Training: Quantum case