qilisdk.functionals.quantum_reservoirs
Classes
Input-only parameter used to inject layer-wise data into a reservoir program. |
|
Single reservoir layer template. |
|
Reservoir functional executed over a sequence of input layers. |
Module Contents
- class ReservoirInput(label: str, value: qilisdk.core.types.RealNumber)[fuente]
Bases:
qilisdk.core.ParameterInput-only parameter used to inject layer-wise data into a reservoir program.
This parameter behaves like a standard
Parameterbut is always created as non-trainable, so optimizers do not update it.Create a non-trainable reservoir input parameter.
- Parámetros:
label (
str) – Parameter label used to reference input values.value (
RealNumber) – Default numerical value.
- class ReservoirLayer(evolution_dynamics: qilisdk.analog.Schedule, input_encoding: qilisdk.digital.Circuit | None = None, output_encoding: qilisdk.digital.Circuit | None = None, qubits_to_reset: list[int] | None = None)[fuente]
Bases:
qilisdk.core.parameterizable.ParameterizableSingle reservoir layer template.
A reservoir layer can contain up to three ordered stages:
input_encoding -> evolution_dynamics -> output_encoding. It also stores the observables measured after each layer and optional qubits to reset.Build a reservoir layer description.
- Parámetros:
evolution_dynamics (
Schedule) – Main analog schedule block driving the reservoir dynamics.input_encoding (
Circuit | None) – Optional single-qubit pre-processing circuit. Defaults to None.output_encoding (
Circuit | None) – Optional single-qubit post-processing circuit. Defaults to None.qubits_to_reset (
list[int] | None) – Optional qubit indices to reset between consecutive layers. Defaults to None.
- Muestra:
ValueError – If the input or output encoding circuit contains measurements, multi-qubit gates, or acts on more qubits than the evolution dynamics.
- property input_parameter_names: list[str][fuente]
Input-driven (non-trainable) parameter names for this layer.
- property nqubits: int[fuente]
Number of qubits acted on by this layer.
- property input_encoding: qilisdk.digital.Circuit | None[fuente]
Optional pre-processing circuit, or
Noneif not set.
- property output_encoding: qilisdk.digital.Circuit | None[fuente]
Optional post-processing circuit, or
Noneif not set.
- property observables_as_qtensor: list[qilisdk.core.QTensor][fuente]
Measured observables converted to qubit-sized
QTensoroperators.
- property qubits_to_reset: list[int] | None[fuente]
Qubit indices reset between layers, or
Noneif not set.
- property evolution_dynamics: qilisdk.analog.Schedule[fuente]
Main analog dynamics schedule for each layer.
- property reservoir_dynamics: qilisdk.analog.Schedule[fuente]
Backward-compatible alias for
evolution_dynamics.
- set_parameters(parameters: dict[str, qilisdk.core.types.RealNumber]) None[fuente]
Update a subset of parameters by label.
- Parámetros:
parameters (
dict[str,float]) – Mapping from parameter labels to updated numeric values.- Muestra:
ValueError – If an unknown parameter label is provided or constraints are violated.
- set_parameter_bounds(ranges: dict[str, tuple[float, float]]) None[fuente]
Update the allowable ranges for the specified parameters.
- Parámetros:
ranges (
dict[str,tuple[float,float]]) – Mapping from parameter label to(lower, upper)bounds.- Muestra:
ValueError – If an unknown parameter label is provided.
- class QuantumReservoir(initial_state: qilisdk.core.QTensor, reservoir_layer: ReservoirLayer | None = None, input_per_layer: list[dict[str, float]] | None = None)[fuente]
Bases:
qilisdk.functionals.functional.PrimitiveFunctionalReservoir functional executed over a sequence of input layers.
Each element in
input_per_layeris applied to the underlyingReservoirLayerbefore executing one pass of dynamics and measurement.Construct a quantum reservoir functional.
- Parámetros:
initial_state (
QTensor) – Initial quantum state before the first layer.reservoir_layer (
ReservoirLayer | None) – Reservoir layer definition repeated at each step. Defaults to None.input_per_layer (
list[dict[str,float]] | None) – Input parameter assignments for each layer. Defaults to None.
- Muestra:
ValueError – If
reservoir_layerorinput_per_layerisNone, ifinput_per_layeris empty, or if the initial state qubit count does not match the reservoir layer.
- property nqubits: int[fuente]
Number of qubits in the reservoir.
- property initial_state: qilisdk.core.QTensor[fuente]
Initial quantum state used before the first layer.
- property reservoir_layer: ReservoirLayer[fuente]
Reservoir pass definition applied at each layer.
- property input_per_layer: list[dict[str, float]][fuente]
Layer-ordered input parameter assignments.
- property input_parameter_names: list[str][fuente]
Input-driven (non-trainable) parameter names expected per layer.
- set_inputs_per_layer(input_per_layer: list[dict[str, float]]) None[fuente]
Sets the reservoir’s input per layer.
- Parámetros:
input_per_layer (
list[dict[str,float]]) – the new list of inputs per-layers.
- add_inputs_per_layer(input_per_layer: list[dict[str, float]] | dict[str, float]) None[fuente]
Add a list of per-layer inputs to the current list of inputs.
- Parámetros:
input_per_layer (
list[dict[str,float]] | dict[str,float]) – the new list of inputs to be added.