NoiseLearnerV3
class NoiseLearnerV3(mode=None, options=None)
Bases: object
Class for executing noise learning experiments.
The noise learner allows characterizing the noise processes affecting target instructions, based on the Pauli-Lindblad noise model described in [1]. The instructions provided to the run() method must contain a twirled-annotated BoxOp containing ISA operations. The result of a noise learner job contains a list of NoiseLearnerV3Result objects, one for each given instruction.
Parameters
-
mode (BackendV2 | Session |Batch | None) –
The execution mode used to make the primitive query. It can be:
- A
Backendif you are using job mode. - A
Sessionif you are using session execution mode. - A
Batchif you are using batch execution mode.
Refer to the IBM Quantum Compute (formerly Qiskit Runtime) documentation for more information about the execution modes.
- A
-
options (NoiseLearnerV3Options) – The desired options.
References
- E. van den Berg, Z. Minev, A. Kandala, K. Temme, Probabilistic error cancellation with sparse Pauli–Lindblad models on noisy quantum processors, Nature Physics volume 19, pages 1116–1121 (2023). arXiv:2201.09866 [quant-ph]
Attributes
mode
Return the execution mode used by this primitive.
Returns
Mode used by this primitive, or None if an execution mode is not used.
options
Type: NoiseLearnerV3Options
The options in this noise learner.
Methods
backend
run
run(instructions, dry_run=False)
Submit a request to the noise learner program.
Two protocols are supported:
-
Lindblad: for boxed instructions which content can be cast to
Cliffordand contain a single layer of (up to) two qubit gates. -
TREX: for boxed instructions which content can contain exactly one measurement per qubit.
To minimize the number of noise learning experiments, call find_unique_box_instructions() before running the noise learning job.
Parameters
- instructions (Iterable[CircuitInstruction]) – The instructions to learn the noise of.
- dry_run (bool) – If
True, performs a dry run without executing the job on a QPU. This mode can be used to validate the job, estimate usage consumption, and retrieve circuit timing metadata. Returned results preserve the expected schema but contain randomized mock data rather than actual or simulated measurement results. Unlike the fake backends, the processing of this dry run happens on the server-side, so the job may not finish immediately and access to this feature may be restricted.
Returns
The submitted job.
Raises
IBMInputValueError – If the instructions cannot be used with the noise learner, such as: * If an instruction contains a box without twirl annotation. * If an instruction contains unphysical qubits, i.e., qubits that do not belong to the “physical” register QuantumRegister(backend.num_qubits, 'q') for the backend in use. * If an instruction contains a box with non-ISA gates. * If an instruction cannot be learned by any of the supported learning protocols.
Return type