squlearn.encoding_circuit.TranspiledEncodingCircuit
- class squlearn.encoding_circuit.TranspiledEncodingCircuit(encoding_circuit: EncodingCircuitBase, backend: Backend, num_features: int, transpile_func: Callable | None = None, **kwargs)
Class for generated a Encoding Circuit with a transpiled circuit.
Note
This is the one encoding circuit that is bound to a backend.
get_circuit()returns aqc_executor.qiskit.QiskitCircuitholding the ISA circuit, which carries a transpile layout the framework-independent IR cannot express. It therefore runs on the Qiskit executor only, unlike every other encoding circuit, whoseget_circuitreturns a backend-independentqc_executor.QuantumCircuit.Example:
from squlearn.encoding_circuit import TranspiledEncodingCircuit,ChebyshevRx from qiskit_ibm_runtime.fake_provider import FakeManilaV2 fm = TranspiledEncodingCircuit( ChebyshevRx(3,1), backend=FakeManilaV2(), num_features=1, initial_layout=[0,1,4] ) fm.draw("mpl", num_features=1)
- Parameters:
encoding_circuit (EncodingCircuitBase) – Encoding circuit to be transpiled.
backend (Backend) – Backend used for the transpilation.
transpile_func (Union[Callable,None]) – Optional function for transpiling the circuit. First argument is the circuit, second the backend. If no function is specified, Qiskit’s transpile function is used.
kwargs – Additional arguments for Qiskit’s transpile function.
- compose(x, concatenate_features=False, concatenate_parameters=False, num_circuit_features: Tuple[int, int] = (None, None))
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:
self (EncodingCircuitBase) – right / first encoding circuit
x (EncodingCircuitBase) – left / second encoding circuit
concatenate_features (bool) – If True, the features of both encoding circuits are concatenated (default: False). If False, the features of both encoding circuits are taken
concatenate_parameters (bool) – If True, the parameters of both encoding circuits are concatenated (default: False). If False, the parameters of both encoding circuits are taken
num_circuit_features (Tuple[int, int]) – Tuple of the number of features for both encoding circuits. This has to be provided if concatenate_features is True otherwise an error is raised.
- Returns:
Returns the composed encoding circuit as special class ComposedEncodingCircuit
- draw(output: str = None, num_features: int = None, feature_label: str = 'x', parameter_label: str = 'p', decompose: bool = False, **kwargs) None
Draws the encoding circuit using the QuantumCircuit.draw() function.
- Parameters:
output (str) – Output format of the drawing (default: None).
num_features (int) – Number of features to draw the circuit with (default: None).
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.
- Raises:
ValueError – Raised if the number of features is not provided.
- Returns:
Returns the circuit in qiskit QuantumCircuit.draw() format
- generate_initial_parameters(num_features: int, seed: int | None = None) ndarray
Generates random parameters for the encoding circuit
- Parameters:
num_features (int) – Number of features of the input data
seed (Union[int,None]) – Seed for the random number generator (default: None)
- Returns:
The randomly generated parameters
- get_circuit(features: Parameters | ndarray, parameters: Parameters | ndarray) QiskitCircuit
Return the circuit of the transpiled encoding circuit
- Parameters:
Union[Parameters (param_vec) – Input vector of the features from which the gate inputs are obtained
np.ndarray] – Input vector of the features from which the gate inputs are obtained
Union[Parameters – Input vector of the parameters from which the gate inputs are obtained
np.ndarray] – Input vector of the parameters from which the gate inputs are obtained
- Returns:
The transpiled circuit, adopted into a
QiskitCircuit. The ISA circuit carries a layout the IR cannot express, so unlike other encoding circuits the result runs on the Qiskit executor only.
- get_feature_bounds(num_features: int) ndarray
Returns the feature bounds expanded for a given number of features.
- Parameters:
num_features (int) – Number of features to expand the bounds for.
- Returns:
Feature bounds expanded for the number of features.
- Return type:
np.ndarray
- get_params(deep: bool = True) dict
Returns hyper-parameters and their values of the 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) None
Sets value of the encoding circuit hyper-parameters.
- Parameters:
params – Hyper-parameters and their values, e.g.
num_qubits=2