paddle_quantum.loss.measure
测量的损失函数的功能实现。
- class ExpecVal(hamiltonian, shots=0)
基类:
paddle_quantum.Operator
该类用来计算可观测量的期望值。
该类可以让你使用对可观测量的期望值作为损失函数。
- 参数:
hamiltonian (paddle_quantum.Hamiltonian) – 输入的可观测量的信息。
shots (int, optional) – 测量的次数。默认是
0
,使用解析解。只有当后端为 QuLeaf 时,才需要指定该参数。
- forward(state, decompose=False)
计算可观测量对于输入的量子态的期望值。
该函数计算的值可以作为损失函数进行优化。
- 参数:
state (paddle_quantum.State) – 输入量子态,它将被用来计算期望值。
decompose (bool, optional) – 输出每项可观测量的期望值。默认为
False
,表示返回输入量子态的期望值之和。
- 抛出:
NotImplementedError – 所指定的后端必须为量桨已经实现的后端。
- 返回:
计算得到的期望值,如果后端是 QuLeaf,则返回根据采样计算的到的结果。
- 返回类型:
paddle.Tensor
- class Measure(measure_basis='z')
基类:
paddle_quantum.Operator
该类用来计算可观测量的期望值。
该类可以让你使用对可观测量的期望值作为损失函数。
- 参数:
measure_basis (Union[Iterable[paddle.Tensor], str]) – 要观测的测量基底。默认为
'z'
,在 Z 方向上测量。
- forward(state, qubits_idx='full', desired_result=None)
计算对输入量子态进行测量得到的概率值。
- 参数:
state (paddle_quantum.State) – 需要测量的量子态。
qubits_idx (Union[Iterable[int], int, str], optional) – 要测量的量子比特的下标,默认为
'full'
,表示全都测量。desired_result (Union[Iterable[str], str], optional) – 指定要返回的测量结果的概率值。默认为
None
,返回所有测量结果的概率值。
- 抛出:
NotImplementedError – 所指定的后端必须为量桨已经实现的后端
NotImplementedError –
qubits_idx
须为Iterable
或'full'
。NotImplementedError – 目前我们只支持在Z方向上测量。
- 返回:
测量结果所对应的概率值。
- 返回类型:
paddle.Tensor