使用 OpenQasm 3.0 计算梯度 - Amazon Braket

通过以下方式学习量子计算的基础 AWS!注册 Amazon Braket 数字学习计划,完成一系列学习课程和数字评估后,即可获得自己的数字徽章。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 OpenQasm 3.0 计算梯度

Amazon Braket 支持使用伴随微分法在shots=0(精确)模式下在按需模拟器和本地模拟器上计算梯度。您可以提供适当的编译指示来指定要计算的梯度,如以下示例所示。

OPENQASM 3.0; input float alpha; bit[2] b; qubit[2] q; h q[0]; h q[1]; rx(alpha) q[0]; rx(alpha) q[1]; b[0] = measure q[0]; b[1] = measure q[1]; #pragma braket result adjoint_gradient h(q[0]) @ i(q[1]) alpha

您不必单独列出所有参数,还可以在编译指示all中指定。这将计算与列出的所有input参数相关的梯度。当参数数量非常多时,这可能很方便。在这种情况下,编译指示将类似于以下示例。

#pragma braket result adjoint_gradient h(q[0]) @ i(q[1]) all

支持所有可观测类型,包括单个运算符、张量积、Hermitian 可观测值和。Sum要用来计算梯度的运算符必须封装在expectation()封装器中,并且必须指定每个项作用的量子比特。