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中,输入 k 和 padding_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)