mindquantum.nn.MindQuantumAnsatzOnlyOperator
- class mindquantum.nn.MindQuantumAnsatzOnlyOperator(param_names, circuit, measurements, n_threads=1)[source]
An Ansatz only Mindquantum operator.
This operator only need an ansatz circuit and the parameter data for ansatz circuit.
- Parameters
param_names (list[str]) – Parameters names of ansatz circuit. The order of this parameters is the same as the order of trainable parameters.
circuit (Circuit) – The ansatz circuit.
measurements (Union[Hamiltonian, list[Hamiltonian], Projector, list[Projector]]) – Hamiltonian or a list of Hamiltonian for measurement.
n_threads (int) – Number of threads for data parallel. Default: 1.
- Inputs:
input (Tensor) - Tensor of shape \((E_{in}, )\), where \(E_{in}\) is the number of parameters in ansatz circuit.
- Outputs:
Tensor of shape \((1, 1)\).
- Supported Platforms:
CPU
Examples
>>> from mindquantum import Circuit, RX, Hamiltonian >>> from mindquantum.ops import QubitOperator >>> from mindquantum.nn import MindQuantumAnsatzOnlyOperator >>> from mindspore import Tensor >>> import numpy as np >>> circuit = Circuit(RX('a').on(0)) >>> ham = Hamiltonian(QubitOperator('Z0')) >>> mea = MindQuantumAnsatzOnlyOperator(circuit.para_name, circuit, ham) >>> data = Tensor(np.array([0.5]).astype(np.float32)) >>> mea(data) Tensor(shape=[1, 1], dtype=Float32, value= [[ 8.77582550e-01]])