cuquantum.cutensornet.experimental.ContractDecomposeAlgorithm¶
- class cuquantum.cutensornet.experimental.ContractDecomposeAlgorithm(qr_method: Optional[Union[cuquantum.cutensornet.tensor.QRMethod, Literal[False, None], Dict]] = <factory>, svd_method: Optional[Union[cuquantum.cutensornet.tensor.SVDMethod, Literal[False, None], Dict]] = False)[源代码]¶
用于指定合同和分解操作算法的数据类。支持以下三种选择,如下所示
当
svd_method
为False
而qr_method
不为False
(默认) 时,这相当于直接收缩张量网络,然后进行 QR 分解。当
qr_method
为False
而svd_method
不为False
时,这相当于直接收缩张量网络,然后进行奇异值分解。当
qr_method
和svd_method
都不为False
时,这相当于使用奇异值分解的 QR 辅助收缩。QR 分解将首先应用于某些输入张量,以减小网络大小。生成的 R 张量以及剩余的张量形成一个新的网络,该网络将使用 SVD 进行收缩和分解。来自第一次 QR 操作的 Q 张量以及 SVD 输出随后将进行两次收缩,以产生最终输出。
注意
上面的第三种选择(QR 辅助收缩和 SVD)目前仅支持三元操作数,这些操作数彼此完全连接,并且每个张量上都有未收缩的模式。第三种选择的结果预计与第二种选择的结果等效,但通常计算成本更低。
- qr_method¶
用于分解的 QR 方法。参见
QRMethod
。- 类型
Optional[Union[cuquantum.cutensornet.tensor.QRMethod, Literal[False, None], Dict]]
- svd_method¶
用于分解的 SVD 方法。参见
SVDMethod
。- 类型
Optional[Union[cuquantum.cutensornet.tensor.SVDMethod, Literal[False, None], Dict]]