mindquantum.framework.MQAnsatzOnlyOps
- class mindquantum.framework.MQAnsatzOnlyOps(expectation_with_grad)[source]
MindQuantum operator.
A quantum circuit evolution operator that only include ansatz circuit, who return the expectation of given hamiltonian w.r.t final state of parameterized quantum circuit (PQC). This ops is PYNATIVE_MODE supported only.
- Parameters
expectation_with_grad (GradOpsWrapper) – a grad ops that receive encoder data and ansatz data and return the expectation value and gradient value of parameters respect to expectation.
- Inputs:
ans_data (Tensor) - Tensor with shape \(N\) for ansatz circuit, where \(N\) means the number of ansatz parameters.
- Outputs:
Tensor, The expectation value of the hamiltonian.
- Supported Platforms:
GPU
,CPU
Examples
>>> import numpy as np >>> import mindspore as ms >>> from mindquantum.core.circuit import Circuit >>> from mindquantum.core.operators import Hamiltonian, QubitOperator >>> from mindquantum.framework import MQAnsatzOnlyOps >>> from mindquantum.simulator import Simulator >>> ms.context.set_context(mode=ms.context.PYNATIVE_MODE, device_target="CPU") >>> circ = Circuit().ry('a', 0).h(0).rx('b', 0) >>> ham = Hamiltonian(QubitOperator('Z0')) >>> sim = Simulator('projectq', 1) >>> grad_ops = sim.get_expectation_with_grad(ham, circ) >>> data = np.array([0.1, 0.2]) >>> f, g = grad_ops(data) >>> f array([[0.0978434+0.j]]) >>> net = MQAnsatzOnlyOps(grad_ops) >>> f_ms = net(ms.Tensor(data)) >>> f_ms Tensor(shape=[1], dtype=Float32, value= [ 9.78433937e-02])