A base class
TrainableModelis introduced for machine learning models. This class follows Scikit-Learn principles and makes the quantum machine learning compatible with classical models. Both
NeuralNetworkRegressorextend this class. A base class
ObjectiveFunctionis introduced for objective functions optimized by machine learning models. There are three objective functions introduced that are used by ML models:
OneHotObjectiveFunction. These functions are used internally by the models.
optimizerargument for the classes
NeuralNetworkRegressor, both of which extends the
TrainableModelclass, is made optional with the default value being
SLSQP(). The same is true for the classes
VQRas they inherit from
The constructor of
NeuralNetwork, and all classes that inherit from it, has a new parameter
input_gradientswhich defaults to False. Previously this parameter could only be set using the setter method. Note that
NeuralNetworkit was instantiated with to
True. This is not longer the case. So if you use
TorchConnectorand want to compute the gradients w.r.t. the input, make sure you set
NeuralNetworkbefore passing it to
Added a parameter
initial_pointto the neural network classifiers and regressors. This an array that is passed to an optimizer as an initial point to start from.
Computation of gradients with respect to input data in the backward method of
NeuralNetworkis now optional. By default gradients are not computed. They may inspected and turned on, if required, by getting or setting a new property
RegressorMixinfrom Scikit-Learn and rely on their methods for score calculation. This also adds an ability to pass sample weights as an optional parameter to the score methods.
The valid values passed to the loss argument of the
TrainableModelconstructor were partially deprecated (i.e.
loss='l1'is replaced with
loss='l2'is replaced with
loss='squared_error'). This affects instantiation of classes like the
NeuralNetworkClassifier. This change was made to reduce confusion that stems from using lowercase ‘l’ character which can be mistaken for a numeric ‘1’ or capital ‘I’. You should update your model instantiations by replacing ‘l1’ with ‘absolute_error’ and ‘l2’ with ‘squared_error’.
TorchConnectoris deprecated in favor of the
weightproperty which is PyTorch compatible. By default, PyTorch layers expose
weightproperties to get access to the computed weights.
This fixes the exception that occurs when no
optimizerargument is passed to
Fixes the computation of gradients in TorchConnector when a batch of input samples is provided.
TorchConnector now returns the correct input gradient dimensions during the backward pass in hybrid nn training.
Added a dedicated handling of
ComposedOpas a operator in
OpflowQNN. In this case output shape is determined from the first operator in the
Fix the dimensions of the gradient in the quantum generator for the qGAN training.