tensorcircuit.results.readout_mitigation#
readout error mitigation functionalities
- class tensorcircuit.results.readout_mitigation.ReadoutMit(execute: Callable[[...], List[Dict[str, int]]], iter_threshold: int = 4096)[source]#
Bases:
object
- __init__(execute: Callable[[...], List[Dict[str, int]]], iter_threshold: int = 4096)[source]#
The Class for readout error mitigation
- Parameters
execute (Callable[..., List[ct]]) – execute function to run the cirucit
iter_threshold (int, optional) – iteration threshold, defaults to 4096
- apply_correction(counts: Dict[str, int], qubits: Sequence[int], positional_logical_mapping: Optional[Dict[int, int]] = None, logical_physical_mapping: Optional[Dict[int, int]] = None, distance: Optional[int] = None, method: str = 'constrained_least_square', max_iter: int = 25, tol: float = 1e-05, return_mitigation_overhead: bool = False, details: bool = False) Dict[str, int] [source]#
Main readout mitigation program for all methods.
- Parameters
counts (ct) – raw count
qubits (Sequence[int]) – user-defined logical qubits to show final mitted results
positional_logical_mapping (Optional[Dict[int, int]], optional) – positional_logical_mapping, defaults to None.
logical_physical_mapping (Optional[Dict[int, int]], optional) – logical_physical_mapping, defaults to None
distance (int, optional) – defaults to None
method (str, optional) – mitigation method, defaults to “square”
max_iter (int, optional) – defaults to 25
tol (float, optional) – defaults to 1e-5
:param return_mitigation_overhead:defaults to False :type return_mitigation_overhead: bool, optional :param details: defaults to False :type details: bool, optional :return: mitigated count :rtype: ct
- apply_readout_mitigation(raw_count: Dict[str, int], method: str = 'inverse') Dict[str, int] [source]#
Main readout mitigation program for method=”inverse” or “square”
- Parameters
raw_count (ct) – the raw count
method (str, optional) – mitigation method, defaults to “inverse”
- Returns
mitigated count
- Return type
ct
- cals_from_api(qubits: Union[int, List[int]], device: Optional[str] = None) None [source]#
Get local calibriation matrix from cloud API from tc supported providers
- Parameters
qubits (Union[int, List[int]]) – list of physical qubits to be calibriated
device (Optional[str], optional) – the device str to qurey for the info, defaults to None
- cals_from_system(qubits: Union[int, List[int]], shots: int = 8192, method: str = 'local', masks: Optional[List[str]] = None) None [source]#
Get calibrattion information from system.
- Parameters
qubits (Sequence[Any]) – calibration qubit list (physical qubits on device)
shots (int, optional) – shots used for runing the circuit, defaults to 8192
method (str, optional) – calibration method, defaults to “local”, it can also be “global”
- expectation(counts: Dict[str, int], z: Optional[Sequence[int]] = None, diagonal_op: Optional[Any] = None, positional_logical_mapping: Optional[Dict[int, int]] = None, logical_physical_mapping: Optional[Dict[int, int]] = None, method: str = 'constrained_least_square') float [source]#
Calculate expectation value after readout error mitigation
- Parameters
counts (ct) – raw counts
z (Optional[Sequence[int]]) – if defaults as None, then
diagonal_op
must be set a list of qubit that we measure Z op ondiagoal_op (Tensor) – shape [n, 2], explicitly indicate the diagonal op on each qubit eg. [1, -1] for z [1, 1] for I, etc.
positional_logical_mapping (Optional[Dict[int, int]], optional) – positional_logical_mapping, defaults to None.
logical_physical_mapping (Optional[Dict[int, int]], optional) – logical_physical_mapping, defaults to None
method (str, optional) – readout mitigation method, defaults to “constrained_least_square”
- Returns
expectation value after readout error mitigation
- Return type
float
- get_matrix(qubits: Optional[Sequence[Any]] = None) Any [source]#
Calculate cal_matrix according to use qubit list.
- Parameters
qubits (Sequence[Any], optional) – used qubit list, defaults to None
- Returns
cal_matrix
- Return type
Tensor
- global_miti_readout_circ() List[tensorcircuit.circuit.Circuit] [source]#
Generate circuits for global calibration.
- Returns
circuit list
- Return type
List[Circuit]
- local_miti_readout_circ() List[tensorcircuit.circuit.Circuit] [source]#
Generate circuits for local calibration.
- Returns
circuit list
- Return type
List[Circuit]
- local_miti_readout_circ_by_mask(bsl: List[str]) List[tensorcircuit.circuit.Circuit] [source]#
- mapping_preprocess(counts: Dict[str, int], qubits: Sequence[int], positional_logical_mapping: Optional[Dict[int, int]] = None, logical_physical_mapping: Optional[Dict[int, int]] = None) Dict[str, int] [source]#
Preprocessing to deal with qubit mapping, including positional_logical_mapping and logical_physical_mapping. Return self.use_qubits(physical) and corresponding counts.
- Parameters
counts (ct) – raw_counts on positional_qubits
qubits (Sequence[int]) – user-defined logical qubits to show final mitted results
positional_logical_mapping (Optional[Dict[int, int]], optional) – positional_logical_mapping, defaults to None.
logical_physical_mapping (Optional[Dict[int, int]], optional) – logical_physical_mapping, defaults to None
- Returns
counts on self.use_qubit(physical)
- Return type
ct
- mitigate_probability(probability_noise: Any, method: str = 'inverse') Any [source]#
Get the mitigated probability.
- Parameters
probability_noise (Tensor) – probability of raw count
method (str, optional) – mitigation methods, defaults to “inverse”, it can also be “square”
- Returns
mitigated probability
- Return type
Tensor