mindspore.ops.diagonal
- mindspore.ops.diagonal(input, offset=0, dim1=0, dim2=1)[源代码]
返回输入tensor在指定维度上的对角线视图。
若输入tensor是二维的,则返回一个一维tensor,包含给定偏移位置处的对角线。
若输入tensor超过二维,则返回由 dim1 和 dim2 指定二维平面的对角线。返回tensor的shape为移除 input 的 dim1 和 dim2 维度,并且由 dim1 和 dim2 确定的对角线元素插入 input 的最后一维。
- 参数:
input (Tensor) - 维度至少为二维的输入tensor。
offset (int, 可选) - 对角线偏移量。默认
0
。当 offset 是正整数时,对角线向上方偏移。
当 offset 是负整数时,对角线向下方偏移。
dim1 (int, 可选) - 返回指定平面对角线的第一维度。默认
0
。dim2 (int, 可选) - 返回指定平面对角线的第二维度。默认
1
。
- 返回:
Tensor
- 支持平台:
Ascend
GPU
CPU
样例:
>>> import mindspore >>> input = mindspore.tensor([[[1, 0, 0], ... [0, 2, 0], ... [0, 0, 3]], ... [[4, 0, 0], ... [0, 5, 0], ... [0, 0, 6]], ... [[7, 0, 0], ... [0, 8, 0], ... [0, 0, 9]]]) >>> mindspore.ops.diagonal(input) Tensor(shape=[3, 3], dtype=Int64, value= [[1, 0, 0], [0, 5, 0], [0, 0, 9]]) >>> mindspore.ops.diagonal(input, offset=1) Tensor(shape=[3, 2], dtype=Int64, value= [[0, 0], [2, 0], [0, 6]]) >>> mindspore.ops.diagonal(input, offset=0, dim1=2, dim2=1) Tensor(shape=[3, 3], dtype=Int64, value= [[1, 2, 3], [4, 5, 6], [7, 8, 9]])