mindspore.ops.matrix_diag_part

查看源文件
mindspore.ops.matrix_diag_part(x, k, padding_value, align='RIGHT_LEFT')[源代码]

返回一个tensor,包含输入tensor x 的第 k[0]k[1] 个对角线中的值,缺失部分使用 padding_value 填充。

在graph mode中,输入 kpadding_value 必须为常量tensor。

参数:
  • x (Tensor) - 输入tensor,其秩不小于2。

  • k (Union[int, Tensor], 可选) - 对角线偏移。正值表示超对角线,负值表示次对角线。当k是2个整数,表示子对角线的上界和下界。

  • padding_value (Tensor) - 填充对角线带外区域的数值。

  • align (str, 可选) - 指定超对角线和次对角线的对齐方式。 可选 "RIGHT_LEFT""LEFT_RIGHT""LEFT_LEFT""RIGHT_RIGHT" 。 默认 "RIGHT_LEFT"

    • "RIGHT_LEFT" 表示将超对角线与右侧对齐(左侧填充行),将次对角线与左侧对齐(右侧填充行)。

    • "LEFT_RIGHT" 表示将超对角线与左侧对齐(右侧填充行),将次对角线与右侧对齐(左侧填充行)。

    • "LEFT_LEFT" 表示将超对角线和次对角线均与左侧对齐(右侧填充行)。

    • "RIGHT_RIGHT" 表示将超对角线和次对角线均与右侧对齐(左侧填充行)。

返回:

Tensor

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore
>>> x = mindspore.tensor([[1., 2., 3., 4.],
...                       [5., 6., 7., 8.],
...                       [9., 8., 7., 6.]])
>>> k = mindspore.tensor([1, 3], mindspore.int32)
>>> output = mindspore.ops.matrix_diag_part(x, k, mindspore.tensor(9.), align='RIGHT_LEFT')
>>> print(output)
[[9. 9. 4.]
 [9. 3. 8.]
 [2. 7. 6.]]
>>> print(output.shape)
(3, 3)