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 (Tensor) – 形状为(*, n)的张量,其中*表示零个或多个批次维度,每个批次包含向量。

关键字参数

N (int, 可选) – 确定输出的列数。默认值:x.size(-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]])
本页目录