modules.applications.qml.generative_modeling.mappings.preset_qiskit_noisy_backend.PresetQiskitNoisyBackend
- class PresetQiskitNoisyBackend
Bases:
LibraryGenerativeThis module maps a library-agnostic gate sequence to a qiskit circuit.
- __init__()
Constructor method.
Methods
__init__()Constructor method.
configure_backend(backend, device, ...)This method configures the backend with the specified device and simulation method.
decompile_noisy_config(config_dict, num_qubits)This method processes a configuration dictionary.
get_FakeBackend(noise_configuration, num_qubits)This method returns a fake backend based on the provided noise configuration and number of qubits.
Gets the list of available options.
get_available_submodules(option)If the module has submodules depending on certain options, this method should adjust the submodule_options accordingly.
get_default_submodule(option)Returns the default submodule based on the given option.
get_depending_parameters(option, config)If the module has parameters depending on certain options, this method should return the parameters for the given option.
get_execute_circuit(circuit, backend, ...)This method combines the qiskit circuit implementation and the selected backend and returns a function, that will be called during training.
Returns the configurable settings for the Qiskit Library.
Returns requirements of this module.
get_simulation_method_and_device(device, ...)This method determines the simulation method and device based on the provided configuration.
get_submodule(option)Submodule is instantiated according to the information given in self.sub_options.
get_transpile_routine(transpile_config)This method returns the transpile routine based on the provided configuration.
log_backend_info(backend)postprocess(input_data, config, **kwargs)This method corresponds to the identity and passes the information of the subsequent module back to the preceding module in the benchmarking process.
preprocess(input_data, config, **kwargs)Base class for mapping the gate sequence to a library such as Qiskit.
select_backend(config, n_qubits)This method configures the backend.
This method selects the backend configuration based on the provided noise configuration.
sequence_to_circuit(input_data)Maps the gate sequence, that specifies the architecture of a quantum circuit to its Qiskit implementation.
split_string(s)Attributes
circuit_transpiled- class Config
Bases:
TypedDictAttributes of a valid config.
backend: str n_shots: int
- clear() None. Remove all items from D.
- copy() a shallow copy of D
- fromkeys(value=None, /)
Create a new dictionary with keys from iterable and values set to value.
- get(key, default=None, /)
Return the value for key if key is in the dictionary, else default.
- items() a set-like object providing a view on D's items
- keys() a set-like object providing a view on D's keys
- pop(k[, d]) v, remove specified key and return the corresponding value.
If the key is not found, return the default if given; otherwise, raise a KeyError.
- popitem()
Remove and return a (key, value) pair as a 2-tuple.
Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty.
- setdefault(key, default=None, /)
Insert key with a value of default if key is not in the dictionary.
Return the value for key if key is in the dictionary, else default.
- update([E, ]**F) None. Update D from mapping/iterable E and F.
If E is present and has a .keys() method, then does: for k in E.keys(): D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]
- values() an object providing a view on D's values
- configure_backend(backend: Backend, device: str, simulation_method: str) None
This method configures the backend with the specified device and simulation method.
- Parameters:
backend -- Backend to be configured
device -- Device type (CPU/GPU)
simulation_method -- Simulation method
- decompile_noisy_config(config_dict: dict, num_qubits: int) Backend
This method processes a configuration dictionary. If a custom noise configuration is specified, it creates a custom backend configuration; otherwise, it defaults to the 'aer_simulator' backend. It returns the configured backend.
- Parameters:
config_dict -- Contains information about config
num_qubits -- Number of qubits
- Returns:
Configured qiskit backend
- get_FakeBackend(noise_configuration: str, num_qubits: int) Backend
This method returns a fake backend based on the provided noise configuration and number of qubits.
- Parameters:
noise_configuration -- Noise configuration type
num_qubits -- Number of qubits
- Returns:
Fake backend simulator
- get_available_submodule_options() list
Gets the list of available options.
- Returns:
List of module options
- get_available_submodules(option: list) list
If the module has submodules depending on certain options, this method should adjust the submodule_options accordingly.
- Parameters:
option -- List of chosen options
- Returns:
List of available submodules
- get_default_submodule(option: str) QCBM | Inference
Returns the default submodule based on the given option.
- Parameters:
option -- The submodule option to select
- Returns:
Instance of the selected submodule
- Raises:
NotImplemented -- If the provided option is not implemented
- get_depending_parameters(option: str, config: dict) dict
If the module has parameters depending on certain options, this method should return the parameters for the given option.
- Parameters:
option -- The chosen option
config -- Current config dictionary
- Returns:
The parameters for the given option
- get_execute_circuit(circuit: QuantumCircuit, backend: Backend, config: str, config_dict: dict) tuple[any, any]
This method combines the qiskit circuit implementation and the selected backend and returns a function, that will be called during training.
- Parameters:
circuit -- Qiskit implementation of the quantum circuit
backend -- Configured qiskit backend
config -- Name of a backend
config_dict -- Contains information about config
- Returns:
Tuple that contains a method that executes the quantum circuit for a given set of parameters and the
transpiled circuit
- get_parameter_options() dict
Returns the configurable settings for the Qiskit Library.
- return:
Dictionary with configurable settings.
{ "backend": { "values": ["aer_simulator_gpu", "aer_simulator_cpu"], "description": "Which backend do you want to use? " "In the NoisyQiskit Module only aer_simulators can be used." }, "simulation_method": { "values": ["automatic", "statevector", "density_matrix", "cpu_mps"], # TODO Change names "description": "What simulation methode should be used" }, "n_shots": { "values": [100, 1000, 10000, 1000000], "description": "How many shots do you want use for estimating the PMF of the model?" }, "transpile_optimization_level": { "values": [1, 2, 3, 0], "description": "Switch between different optimization levels in the Qiskit transpile routine. " "1: light optimization, 2: heavy optimization, 3: even heavier optimization, " "0: no optimization. Level 1 recommended as standard option." }, "noise_configuration": { "values": value_list, "description": "What noise configuration do you want to use?" }
}
- static get_requirements() list[dict]
Returns requirements of this module.
- Returns:
List of dict with requirements of this module
- get_simulation_method_and_device(device: str, simulation_config: str) tuple[str, str]
This method determines the simulation method and device based on the provided configuration.
- Parameters:
device -- Contains information about processing unit
simulation_config -- Contains information about qiskit simulation method
- Returns:
Tuple containing the simulation method and device
- get_submodule(option: str) Core
Submodule is instantiated according to the information given in self.sub_options. If self.sub_options is None, get_default_submodule is called as a fallback.
- Parameters:
option -- String with the options
- Returns:
Instance of a module
- get_transpile_routine(transpile_config: int) int
This method returns the transpile routine based on the provided configuration.
- Parameters:
transpile_config -- Configuration for transpile routine
- Returns:
Transpile routine level
- postprocess(input_data: dict, config: dict, **kwargs) tuple[dict, float]
This method corresponds to the identity and passes the information of the subsequent module back to the preceding module in the benchmarking process.
- Parameters:
input_data -- Collected information of the benchmarking procesS
config -- Config specifying the number of qubits of the circuit
kwargs -- Optional keyword arguments
- Returns:
Tuple with input dictionary and the computation time of the function
- preprocess(input_data: dict, config: Config, **kwargs) tuple[dict, float]
Base class for mapping the gate sequence to a library such as Qiskit.
- Parameters:
input_data -- Collection of information from the previous modules
config -- Config specifying the number of qubits of the circuit
kwargs -- Optional keyword arguments
- Returns:
Tuple including dictionary with the function to execute the quantum circuit on a simulator or quantum hardware and the computation time of the function
- static select_backend(config: str, n_qubits: int) Backend
This method configures the backend.
- Parameters:
config -- Name of a backend
n_qubits -- Number of qubits
- Returns:
Configured qiskit backend
- select_backend_configuration(noise_configuration: str, num_qubits: int) Backend
This method selects the backend configuration based on the provided noise configuration.
- Parameters:
noise_configuration -- Noise configuration type
num_qubits -- Number of qubits
- Returns:
Selected backend configuration
- sequence_to_circuit(input_data: dict) dict
Maps the gate sequence, that specifies the architecture of a quantum circuit to its Qiskit implementation.
- Parameters:
input_data -- Collected information of the benchmarking process
- Returns:
Same dictionary but the gate sequence is replaced by it Qiskit implementation