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,即使截断参数设置为修剪掉所有奇异值,当前也至少会保留一个奇异值在输出中。此行为在未来的版本中可能会发生变化。