cuquantum.cutensornet.tensor.SVDMethod¶
- class cuquantum.cutensornet.tensor.SVDMethod(max_extent: Optional[int] = None, abs_cutoff: Optional[float] = 0.0, rel_cutoff: Optional[float] = 0.0, discarded_weight_cutoff: Optional[float] = 0.0, partition: Optional[str] = None, normalization: Optional[str] = None, algorithm: Optional[str] = 'gesvd', gesvdj_tol: Optional[float] = 0, gesvdj_max_sweeps: Optional[int] = 0, gesvdr_oversampling: Optional[int] = 0, gesvdr_niters: Optional[int] = 0)[源代码]¶
一个数据类,用于为
cuquantum.cutensornet.tensor.decompose()函数提供 SVD 选项。- partition¶
默认情况下,奇异值 S 将被显式返回 (
partition=None)。或者,奇异值可以被分解到输出张量 U (partition="U")、输出张量 V (partition="V") 或均匀地分解到输出张量 U 和输出张量 V (partition="UV")。当选择这些分区方案中的任何一种时,来自cuquantum.cutensornet.tensor.decompose()和cuquantum.cutensornet.experimental.contract_decompose()返回的S操作数将为None。- 类型
Optional[str]
- gesvdr_oversampling¶
当
algorithm设置为"gesvdr"时,过采样的尺寸。默认值 0 表示 4 倍max_extent与满秩和max_extent之间差值的较小值。- 类型
Optional[int]
注意
如果设置了多个截断参数,例如
max_extent和discarded_weight_cutoff,则截断范围将确定为所有参数中最低的。注意
有关不同 SVD 算法和相应参数的详细说明,请参阅 cuSolver 文档页面
注意
对于截断 SVD,即使截断参数设置为修剪掉所有奇异值,当前也至少会保留一个奇异值在输出中。此行为在未来的版本中可能会发生变化。