NoiseLearnerV3

class NoiseLearnerV3(mode=None, options=None)[source]

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 (Optional[Union[BackendV2, Session, Batch]]) –

    The execution mode used to make the primitive query. It can be:

    • A Backend if you are using job mode.

    • A Session if you are using session execution mode.

    • A Batch if you are using batch execution mode.

    Refer to the Qiskit Runtime documentation for more information about the execution modes.

  • options (Optional[NoiseLearnerV3Options]) – The desired options.

References

  1. 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

options

The options in this noise learner.

Methods

backend()[source]

Return the backend the primitive query will be run on.

Return type:

BackendV2

run(instructions)[source]

Submit a request to the noise learner program.

Args:

instructions: The instructions to learn the noise of.

Returns:

The submitted job.

Raises:
  • IBMInputValueError – If an instruction does not contain a box.

  • IBMInputValueError – If an instruction contains a box without twirl annotation.

  • IBMInputValueError – 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.

  • IBMInputValueError – If an instruction a box with non-ISA gates.

  • IBMInputValueError – If an instruction cannot be learned by any of the supported learning protocols.

Parameters:

instructions (Iterable[CircuitInstruction])

Return type:

RuntimeJobV2