Note
This is the documentation for the current state of the development branch of Qiskit Experiments. The documentation or APIs here can change prior to being released.
RestlessNode¶
- class RestlessNode(validate=True, memory_allocation=ShotOrder.circuit_first)[source]¶
An abstract node for restless data processing nodes.
In restless measurements, the qubit is not reset after each measurement. Instead, the outcome of the previous quantum non-demolition measurement is the initial state for the current circuit. Restless measurements therefore require special data processing nodes that are implemented as sub-classes of
RestlessNode
. Restless experiments provide a fast alternative for several calibration and characterization tasks, for details see https://arxiv.org/pdf/2202.06981.pdf.This node takes as input an array of arrays (2d array) where the sub-arrays are the memories of each measured circuit. The sub-arrays therefore have a length given by the number of shots. This data is reordered into a one dimensional array where the element at index j was the jth measured shot. This node assumes by default that a list of circuits
[circ_1, cric_2, ..., circ_m]
is measuredn_shots
times according to the following order:[ circuit 1 - shot 1, circuit 2 - shot 1, ... circuit m - shot 1, circuit 1 - shot 2, circuit 2 - shot 2, ... circuit m - shot 2, circuit 1 - shot 3, ... circuit m - shot n, ]
Once the shots have been ordered in this fashion the data can be post-processed.
Initialize a restless node.
- Parameters:
validate (bool) – If set to True the node will validate its input.
memory_allocation (ShotOrder) – If set to “c” the node assumes that the backend subsequently first measures all circuits and then repeats this n times, where n is the total number of shots. The default value is “c”. If set to “s” it is assumed that the backend subsequently measures each circuit n times.
Methods
- __call__(data)¶
Call the data action of this node on the data.
- Parameters:
data (ndarray) – A numpy array with arbitrary dtype. If the elements are ufloat objects consisting of a nominal value and a standard error, then the error propagation is done automatically.
- Returns:
The processed data.
- Return type:
ndarray