mindspore.ops.diag_embed

查看源文件
mindspore.ops.diag_embed(input, offset=0, dim1=- 2, dim2=- 1)[源代码]

创建一个tensor,其特定二维平面(由 dim1dim2 指定)的对角线由输入tensor填充,其余位置填充为 0 。不指定维度时,默认填充返回tensor的最后两个维度所形成的二维平面的对角线。

参数:
  • input (Tensor) - 对角线填充值。

  • offset (int,可选) - 对角线偏移量。默认 0

    • offset 是正整数时,对角线向上方偏移。

    • offset 是负整数时,对角线向下方偏移。

  • dim1 (int,可选) - 填充对角线的第一个维度。默认 -2

  • dim2 (int,可选) - 填充对角线的第二个维度。默认 -1

返回:

一个数据类型与 input 一致,但输出shape维度比 input 高一维的tensor。

异常:
  • ValueError - input 的维度不是1D-6D。

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore
>>> input = mindspore.tensor([[1, 2, 3],
...                           [4, 5, 6],
...                           [7, 8, 9]])
>>> mindspore.ops.diag_embed(input)
Tensor(shape=[3, 3, 3], dtype=Int64, value=
[[[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.diag_embed(input, offset=1, dim1=0, dim2=1)
Tensor(shape=[4, 4, 3], dtype=Int64, value=
[[[0, 0, 0], [1, 4, 7], [0, 0, 0], [0, 0, 0]],
 [[0, 0, 0], [0, 0, 0], [2, 5, 8], [0, 0, 0]],
 [[0, 0, 0], [0, 0, 0], [0, 0, 0], [3, 6, 9]],
 [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]])