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 – 所指定的后端必须为量桨已经实现的后端

  • NotImplementedErrorqubits_idx 须为 Iterable'full'

  • NotImplementedError – 目前我们只支持在Z方向上测量。

返回:

测量结果所对应的概率值。

返回类型:

paddle.Tensor