qlearnkit.encodings package

Submodules

qlearnkit.encodings.amplitude_encoding module

class qlearnkit.encodings.amplitude_encoding.AmplitudeEncoding[source]

Bases: qlearnkit.encodings.encoding_map.EncodingMap

Amplitude Encoding algorithm

circuit(x)[source]

return quantum circuit encoding data

n_qubits(x)[source]

Retrieves the number of needed qubits for the amplitude encoding, which is nothing but \(\lceil log_2{x}\rceil\)

Parameters

x – the vector to be encoded

Returns

the number of required qubits

state_vector(x)[source]

The encoding of a state via amplitude encoding operates as follows: given a quantum state \(\psi\), it processes the data such that

Parameters

x – the classical data

Returns

(np.array) encoded quantum state

qlearnkit.encodings.angle_encoding module

class qlearnkit.encodings.angle_encoding.AngleEncoding(rotation='Y', scaling=1.5707963267948966)[source]

Bases: qlearnkit.encodings.encoding_map.EncodingMap

Angle Encoding algorithm. Assumes data is feature-normalized.

circuit(x)[source]
Parameters

x (np.array) – The input data to encode

Returns

The circuit that encodes x

Assumes data is feature-normalized. Assumes every element in x is in [0, 1].

Return type

(qiskit.QuantumCircuit)

n_qubits(x)[source]
Parameters

x (np.array) – The input data to encode

Returns

Number of qubits needed to encode x

state_vector(x)[source]
Args

x (np.array): The input data to encode

Returns

The state vector representation of x after angle encoding

Return type

np.array

qlearnkit.encodings.basis_encoding module

class qlearnkit.encodings.basis_encoding.BasisEncoding[source]

Bases: qlearnkit.encodings.encoding_map.EncodingMap

circuit(x: numpy.ndarray) qiskit.circuit.quantumcircuit.QuantumCircuit[source]

Retrieves the quantum circuit encoding via Basis Encoding :param x: the data vector to encode

Returns

the quantum encoding circuit

Note

All data values must be either 1s or 0s

n_qubits(x)[source]

return number of required qubits for qauntum encoding

state_vector(x)[source]

return state vector after quantum encoding

qlearnkit.encodings.encoding_map module

class qlearnkit.encodings.encoding_map.EncodingMap[source]

Bases: abc.ABC

Abstract Base class for qlearnkit encoding maps

abstract circuit(x)[source]

return quantum circuit encoding data

encode_dataset(dataset)[source]

This method encodes a dataset. :param dataset: A dataset. Rows represent data examples :type dataset: np.npdarray

Returns

the encoded dataset

Return type

(np.ndarray)

abstract n_qubits(x)[source]

return number of required qubits for qauntum encoding

abstract state_vector(x)[source]

return state vector after quantum encoding

Module contents

class qlearnkit.encodings.AmplitudeEncoding[source]

Bases: qlearnkit.encodings.encoding_map.EncodingMap

Amplitude Encoding algorithm

circuit(x)[source]

return quantum circuit encoding data

n_qubits(x)[source]

Retrieves the number of needed qubits for the amplitude encoding, which is nothing but \(\lceil log_2{x}\rceil\)

Parameters

x – the vector to be encoded

Returns

the number of required qubits

state_vector(x)[source]

The encoding of a state via amplitude encoding operates as follows: given a quantum state \(\psi\), it processes the data such that

Parameters

x – the classical data

Returns

(np.array) encoded quantum state

class qlearnkit.encodings.AngleEncoding(rotation='Y', scaling=1.5707963267948966)[source]

Bases: qlearnkit.encodings.encoding_map.EncodingMap

Angle Encoding algorithm. Assumes data is feature-normalized.

circuit(x)[source]
Parameters

x (np.array) – The input data to encode

Returns

The circuit that encodes x

Assumes data is feature-normalized. Assumes every element in x is in [0, 1].

Return type

(qiskit.QuantumCircuit)

n_qubits(x)[source]
Parameters

x (np.array) – The input data to encode

Returns

Number of qubits needed to encode x

state_vector(x)[source]
Args

x (np.array): The input data to encode

Returns

The state vector representation of x after angle encoding

Return type

np.array

class qlearnkit.encodings.BasisEncoding[source]

Bases: qlearnkit.encodings.encoding_map.EncodingMap

circuit(x: numpy.ndarray) qiskit.circuit.quantumcircuit.QuantumCircuit[source]

Retrieves the quantum circuit encoding via Basis Encoding :param x: the data vector to encode

Returns

the quantum encoding circuit

Note

All data values must be either 1s or 0s

n_qubits(x)[source]

return number of required qubits for qauntum encoding

state_vector(x)[source]

return state vector after quantum encoding

class qlearnkit.encodings.EncodingMap[source]

Bases: abc.ABC

Abstract Base class for qlearnkit encoding maps

abstract circuit(x)[source]

return quantum circuit encoding data

encode_dataset(dataset)[source]

This method encodes a dataset. :param dataset: A dataset. Rows represent data examples :type dataset: np.npdarray

Returns

the encoded dataset

Return type

(np.ndarray)

abstract n_qubits(x)[source]

return number of required qubits for qauntum encoding

abstract state_vector(x)[source]

return state vector after quantum encoding