tensorcircuit.noisemodelΒΆ
General Noise Model Construction.
- class tensorcircuit.noisemodel.NoiseConf[source]ΒΆ
Bases:
objectNoise Configurationclass.error1 = tc.channels.generaldepolarizingchannel(0.1, 1) error2 = tc.channels.thermalrelaxationchannel(300, 400, 100, "ByChoi", 0) readout_error = [[0.9, 0.75], [0.4, 0.7]] noise_conf = NoiseConf() noise_conf.add_noise("x", error1) noise_conf.add_noise("h", [error1, error2], [[0], [1]]) noise_conf.add_noise("readout", readout_error)
- add_noise(gate_name: str, kraus: KrausList | Sequence[KrausList], qubit: Sequence[Any] | None = None) None[source]ΒΆ
Add noise channels on specific gates and specific qubits in form of Kraus operators.
- Parameters:
gate_name (str) β noisy gate
kraus (Sequence[Gate]) β noise channel
qubit (Optional[Sequence[Any]], optional) β the list of noisy qubit, defaults to None, indicating applying the noise channel on all qubits
- add_noise_by_condition(condition: Callable[[Dict[str, Any]], bool], kraus: KrausList, name: Any | None = 'custom') None[source]ΒΆ
Add noise based on specified condition
- Parameters:
condition (Callable[[Dict[str, Any]], bool]) β a function to decide if the noise should be added to the qir.
kraus (KrausList) β the error channel
name (Any) β the name of the condition. A metadata that does not affect the numerics.
- tensorcircuit.noisemodel.apply_qir_with_noise(c: Any, qir: List[Dict[str, Any]], noise_conf: NoiseConf, status: Any | None = None) Any[source]ΒΆ
- Parameters:
c (AbstractCircuit) β A newly defined circuit
qir (List[Dict[str, Any]]) β The qir of the clean circuit
noise_conf (NoiseConf) β Noise Configuration
status (1D Tensor, optional) β The status for Monte Carlo sampling, defaults to None
- Returns:
A newly constructed circuit with noise
- Return type:
- tensorcircuit.noisemodel.circuit_with_noise(c: AbstractCircuit, noise_conf: NoiseConf, status: Any | None = None) Any[source]ΒΆ
Noisify a clean circuit.
- Parameters:
c (AbstractCircuit) β A clean circuit
noise_conf (NoiseConf) β Noise Configuration
status (1D Tensor, optional) β The status for Monte Carlo sampling, defaults to None
- Returns:
A newly constructed circuit with noise
- Return type:
- tensorcircuit.noisemodel.expectation_noisfy(c: Any, *ops: Tuple[Node, List[int]], noise_conf: NoiseConf | None = None, nmc: int = 1000, status: Any | None = None, **kws: Any) Any[source]ΒΆ
Calculate expectation value with noise configuration.
- Parameters:
c (Any) β The clean circuit
noise_conf (Optional[NoiseConf], optional) β Noise Configuration, defaults to None
nmc (int, optional) β repetition time for Monte Carlo sampling for noisfy calculation, defaults to 1000
status (Optional[Tensor], optional) β external randomness given by tensor uniformly from [0, 1], defaults to None, used for noisfy circuit sampling
- Returns:
expectation value with noise
- Return type:
Tensor
- tensorcircuit.noisemodel.sample_expectation_ps_noisfy(c: Any, x: Sequence[int] | None = None, y: Sequence[int] | None = None, z: Sequence[int] | None = None, noise_conf: NoiseConf | None = None, nmc: int = 1000, shots: int | None = None, statusc: Any | None = None, status: Any | None = None, **kws: Any) Any[source]ΒΆ
Calculate sample_expectation_ps with noise configuration.
- Parameters:
c (Any) β The clean circuit
x (Optional[Sequence[int]], optional) β sites to apply X gate, defaults to None
y (Optional[Sequence[int]], optional) β sites to apply Y gate, defaults to None
z (Optional[Sequence[int]], optional) β sites to apply Z gate, defaults to None
noise_conf (Optional[NoiseConf], optional) β Noise Configuration, defaults to None
nmc (int, optional) β repetition time for Monte Carlo sampling for noisfy calculation, defaults to 1000
shots (Optional[int], optional) β number of measurement shots, defaults to None, indicating analytical result
statusc (Optional[Tensor], optional) β external randomness given by tensor uniformly from [0, 1], defaults to None, used for noisfy circuit sampling
status (Optional[Tensor], optional) β external randomness given by tensor uniformly from [0, 1], defaults to None, used for measurement sampling
- Returns:
sample expectation value with noise
- Return type:
Tensor