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

mindquantum.nn.Evolution

Inputs of this operation is generated by MindQuantum framework.

CPU

mindquantum.nn.MindQuantumLayer

A trainable Mindquantum layer.

CPU

mindquantum.nn.MindQuantumAnsatzOnlyLayer

An ansatz only trainable Mindquantum layer.

CPU

mindquantum.nn.MindQuantumAnsatzOnlyOperator

An Ansatz only Mindquantum operator.

CPU

mindquantum.nn.PQC

Evaluate a parameterized quantum circuit and calculate the gradient of each parameters.

CPU