mindquantum.nn

Quantum neural networks operators and cells.

mindquantum.nn.generate_evolution_operator(param_names, circuit: mindquantum.circuit.circuit.Circuit, hams=None)[source]

A method to generate a parameterized quantum circuit simulation operator.

Parameters
  • param_names (list[str]) – The list of parameter names.

  • circuit (Circuit) – The whole circuit combined with encoder circuit and ansatz circuit.

  • hams (Union[Hamiltonian, list[Hamiltonian]]) – The measurement hamiltonian.

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
>>> circ = Circuit(G.RX('a').on(0))
>>> evol = generate_evolution_operator(['a'], circ)
>>> state = evol(Tensor(np.array([0.5]).astype(np.float32)))
>>> state = state.asnumpy()
>>> state = state[:, 0] + 1j * state[:, 1]
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, hams, 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.

  • hams (Union[Hamiltonian, list[Hamiltonian]]) – The measurement hamiltonian.

  • n_threads (int) – Number of threads for data parallelize.

Returns

PQC, A parameterized quantum circuit simulator operator supported by mindspore framework.

Examples

>>> from projectq.ops import QubitOperator
>>> from mindquantum import Circuit
>>> import mindquantum.gate as G
>>> 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

mindquantum.nn.MindQuantumAnsatzOnlyOperator