squlearn.encoding_circuit.YZ_CX_EncodingCircuit

class squlearn.encoding_circuit.YZ_CX_EncodingCircuit(num_qubits: int, num_features: int, num_layers: int = 1, closed: bool = True, c: float = 1.0)

Creates the YZ-CX Encoding Circuit from reference [1].

Example for 4 qubits, a 4 dimensional feature vector, 2 layers and c = 2.0:

(Source code, png, hires.png, pdf)

../../_images/squlearn-encoding_circuit-YZ_CX_EncodingCircuit-1.png

One combination of Ry and Rz is considered as a single layer.

Parameters:
  • num_qubits (int) – Number of qubits of the YZ-CX Encoding Circuit encoding circuit

  • num_features (int) – Dimension of the feature vector

  • num_layers (int) – Number of layers (default: 1)

  • c (float) – Prefactor \(c\) for rescaling the data (default: 1.0)

References

[1]: T. Haug, C. N. Self and M. S. Kim, “Quantum machine learning of large datasets using randomized measurements”, arxiv:2108.01039v3 (2021).

compose(x, concatenate_features=True, concatenate_parameters=False)

Composition of encoding circuits with options for handling features and parameters

Number of qubits and features have to be equal in both encoding circuits! The special function and properties of the both encoding circuits are lost by this composition.

Parameters:
Returns:

Returns the composed encoding circuit as special class ComposedEncodingCircuit

draw(output: str = None, feature_label: str = 'x', parameter_label: str = 'p', decompose: bool = False, **kwargs) None

Draws the encoding circuit circuit using the QuantumCircuit.draw() function.

Parameters:
  • feature_label (str) – Label for the feature vector (default:”x”).

  • parameter_label (str) – Label for the parameter vector (default:”p”).

  • decompose (bool) – If True, the circuit is decomposed before printing (default: False).

  • kwargs – Additional arguments from Qiskit’s QuantumCircuit.draw() function.

Returns:

Returns the circuit in qiskit QuantumCircuit.draw() format

generate_initial_parameters(seed: int | None = None) ndarray

Generates random parameters for the encoding circuit

Parameters:

seed (Union[int,None]) – Seed for the random number generator (default: None)

Returns:

The randomly generated parameters

get_circuit(features: ParameterVector | ndarray, parameters: ParameterVector | ndarray) QuantumCircuit

Return the circuit of the YZ-CX encoding circuit.

Parameters:
  • features (Union[ParameterVector,np.ndarray]) – Input vector of the features from which the gate inputs are obtained.

  • param_vec (Union[ParameterVector,np.ndarray]) – Input vector of the parameters from which the gate inputs are obtained.

Returns:

Returns the circuit in qiskit format.

get_params(deep: bool = True) dict

Returns hyper-parameters and their values of the YZ-CX Encoding Circuit encoding circuit

Parameters:

deep (bool) – If True, also the parameters for contained objects are returned (default=True).

Returns:

Dictionary with hyper-parameters and values.

inverse()

Returns the inverse of the encoding circuit.

Returns:

The inverse of the encoding circuit

set_params(**params) EncodingCircuitBase

Sets value of the encoding circuit hyper-parameters.

Parameters:

params – Hyper-parameters and their values, e.g. num_qubits=2.