torch.linalg.vander
- torch.linalg.vander(x, N=None) → Tensor
-
生成范德蒙德矩阵。
返回范德蒙矩阵 $V$
$V = \begin{pmatrix} 1 & x_1 & x_1^2 & \dots & x_1^{N-1}\\ 1 & x_2 & x_2^2 & \dots & x_2^{N-1}\\ 1 & x_3 & x_3^2 & \dots & x_3^{N-1}\\ \vdots & \vdots & \vdots & \ddots &\vdots \\ 1 & x_n & x_n^2 & \dots & x_n^{N-1} \end{pmatrix}.$当 N > 1 时。如果
N
= None,则 N = x.size(-1),此时输出会是一个方阵。支持浮点型、双精度型、复数浮点型、复数双精度型以及整数数据类型。还支持向量的批量处理,如果
x
是一个向量的批量,则输出将具有相同的批次维度。与 numpy.vander 的区别:
-
与numpy.vander不同,此函数以升序返回
x
的幂。 若要以降序获取它们,请调用linalg.vander(x, N).flip(-1)
。
示例:
>>> x = torch.tensor([1, 2, 3, 5]) >>> linalg.vander(x) tensor([[ 1, 1, 1, 1], [ 1, 2, 4, 8], [ 1, 3, 9, 27], [ 1, 5, 25, 125]]) >>> linalg.vander(x, N=3) tensor([[ 1, 1, 1], [ 1, 2, 4], [ 1, 3, 9], [ 1, 5, 25]])
-