mindquantum.nn
Functions
Quantum neural networks operators and cells.
- mindquantum.nn.generate_evolution_operator(circuit, param_names=None, hams=None)[source]
A method to generate a parameterized quantum circuit simulation operator.
- Parameters
circuit (Circuit) – The whole circuit combined with encoder circuit and ansatz circuit, can be a parameterized circuit or a non parameterized circuit.
param_names (list[str]) – The list of parameter names, if None, than the circuit should be a non parameterized circuit, otherwise, param_names will be take from circuit. Default: None.
hams (Union[Hamiltonian, list[Hamiltonian]]) – The measurement hamiltonian. If None, than no hamiltonians will be applied on the final quantum state. Default: None.
- Returns
Evolution, A parameterized quantum circuit simulator operator supported by mindspore framework.
Examples
>>> import numpy as np >>> from mindspore import Tensor >>> import mindquantum.gate as G >>> from mindquantum import Circuit >>> from mindquantum.nn import generate_evolution_operator >>> circ = Circuit(G.RX('a').on(0)) >>> evol = generate_evolution_operator(circ, ['a']) >>> state = evol(Tensor(np.array([0.5]).astype(np.float32))) array([0.9689124+0.j , 0. -0.24740396j], dtype=complex64) >>> G.RX(0.5).matrix()[:, 0] array([0.96891242+0.j , 0. -0.24740396j])
- mindquantum.nn.generate_pqc_operator(encoder_params_names, ansatz_params_names, circuit: mindquantum.circuit.circuit.Circuit, measurements, n_threads=1)[source]
A method to generate a parameterized quantum circuit simulation operator.
- Parameters
encoder_params_names (list[str]) – The list of parameter names for encoder circuit.
ansatz_params_names (list[str]) – The list of parameter names for ansatz circuit.
circuit (Circuit) – The whole circuit combined with encoder circuit and ansatz circuit.
measurements (Union[Hamiltonian, list[Hamiltonian], Projector, list[Projector]]) – The measurement operators, would be hamiltonians or projectors.
n_threads (int) – Number of threads for data parallelize. Default: 1.
- Returns
PQC, A parameterized quantum circuit simulator operator supported by mindspore framework.
Examples
>>> from mindquantum.ops import QubitOperator >>> from mindquantum import Circuit >>> import mindquantum.gate as G >>> from mindquantum.nn import generate_pqc_operator >>> encoder_circ = Circuit([G.RX('a').on(0)]) >>> ansatz_circ = Circuit([G.RY('b').on(0)]) >>> circ = encoder_circ + ansatz_circ >>> ham = G.Hamiltonian(QubitOperator('Z0')) >>> pqc = generate_pqc_operator(['a'], ['b'], circ, ham)
Operators
API Name |
Description |
Supported Platforms |
Inputs of this operation is generated by MindQuantum framework. |
|
|
A trainable Mindquantum layer. |
|
|
An ansatz only trainable Mindquantum layer. |
|
|
An Ansatz only Mindquantum operator. |
|
|
Evaluate a parameterized quantum circuit and calculate the gradient of each parameters. |
|