Description Usage Arguments Value Examples
View source: R/QuantumClassifier.R
Quantum classifier which was proposed by Maria Schuld (2018). Consists of code blocks which have parallel single qubit quantum gates followed by controlled qubit gates. Takes as input samples and a corresponding list of labels indicating the correct output value of each sample. Will update the parameters of the gates in order to correctly identify the samples.
1 2 3 4 5 6 |
n |
Number of qubits that this the classifier will use. |
B |
Number of blocks in the circuit. A block consists of n single qubit gates applied to each of the qubits in parallel and then n/(gcd,r) controlled qubit gates to perform a maximal entanglement. r is the specified range of the controlled gates |
r |
Vector containing the range for each block. length(r) should be equal to B. r of 1 means controlled gates are performed on adjacent qubits |
data |
matrix containing input training data. Rows are individual samples. The number of columns should be equal to 2^n |
labels |
Vector containing labels of digits. Length must be the same as the number of rows in data |
digit |
Individual output to identify. The network will attempt to differentiate between inputs that are labelled as digit (in the labels vector) and inputs that are labelled as any other number |
eta |
learning rate for parameter updates |
decay |
Multiplier for learning rate after each training iteration. If set to less than 1, the learning rate decays in time |
bsc |
Scaler for the learning rate of the bias. Setting to a low value will result in other parameters updating faster than the bias |
t |
Number of training iterations to perform. Total runs is equal to this value multiplied by the number of samples provided |
tag |
String to attach to name of output files |
pl |
Boolean indicating whether training output should be plotted |
train |
Boolean specifying if network should trained on training data, only false if passing in pretrained model |
validT |
Boolean specifying if the network should be tested on validation data while being trained |
vdata |
Validation data, necessary if validT is set to true in which case network is tested on this data while being trained. Can be set to same as data. |
vlabels |
Validation labels, necessary if validT is set to true in which case network is tested on vdata while being trained. Can be set to same as labels. |
pretrained |
Boolean specifying if a pretrained model is being passed in. If so, alpha, beta, and gamme will be set to intputs, rather than randomized. |
alpha |
alpha values for gates if pretrained is set to TRUE, should be a vector of length equal to the number of gates in the circuit. |
beta |
beta values for gates if pretrained is set to TRUE, should be a vector of length equal to the number of gates in the circuit. |
gamma |
gamma values for gates if pretrained is set to TRUE, should be a vector of length equal to the number of gates in the circuit. |
bias |
Bias applied to the output of the circuit. |
writeParameters |
Boolean specifying whether function should write the parameters as it trains. Useful when training takes a long time. |
outputPath |
String which specifies path to write output parameters to if writeParameters is TRUE. Must have write priveleges in this directory. The function will create two directories inside outputPath, named 0 and 1, and will alternate output to each folder. This prevents corruption of output if interrupted. |
List containing a list of the 33 gates and the matrix representing the entire circuit of the trained classifier
1 2 3 4 5 6 |
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.