Saving and loading calibration data¶

It is possible to save calibration data and, optionally, re-load it at a later time. Let us generate some calibration data and save it.

from qiskit_ibm_runtime.fake_provider import FakeCasablanca
import mthree

backend = FakeCasablanca()

mit = mthree.M3Mitigation(backend)
mit.cals_from_system([1, 3, 5], cals_file='my_cals.json')
mit.single_qubit_cals
[None,
 array([[0.99291992, 0.01977539],
        [0.00708008, 0.98022461]]),
 None,
 array([[0.9855957 , 0.01733398],
        [0.0144043 , 0.98266602]]),
 None,
 array([[0.9921875 , 0.02734375],
        [0.0078125 , 0.97265625]]),
 None]

or,

mit = mthree.M3Mitigation(backend)
mit.cals_from_system([1, 3, 5])
mit.cals_to_file('my_cals.json')

We can then load this data at a later point in time using:

import mthree

mit2 = mthree.M3Mitigation()
mit2.cals_from_file('my_cals.json')
mit2.single_qubit_cals
[None,
 array([[0.99328613, 0.02111816],
        [0.00671387, 0.97888184]]),
 None,
 array([[0.98583984, 0.01806641],
        [0.01416016, 0.98193359]]),
 None,
 array([[0.99353027, 0.02929688],
        [0.00646973, 0.97070312]]),
 None]