mindspore.ops.diag

mindspore.ops.diag(input_x)[源代码]

用给定的对角线值构造对角线张量。

假设输入Tensor维度为 [D1,...Dk] ,则输出是一个rank为2k的tensor,其维度为 [D1,...,Dk,D1,...,Dk] ,其中 output[i1,...,ik,i1,...,ik]=inputx[i1,...,ik] 并且其他位置的值为0。

参数:

  • input_x (Tensor) - 输入Tensor。

返回:

Tensor,具有与输入Tensor相同的数据类型。

异常:

  • TypeError - input_x 不是Tensor。

  • ValueError - input_x 的rank小于1。

支持平台:

Ascend GPU

样例:

>>> from mindspore import Tensor
>>> import mindspore.ops as ops
>>> input_x = Tensor([1, 2, 3, 4]).astype('int32')
>>> output = ops.diag(input_x)
>>> print(output)
[[1, 0, 0, 0]
 [0, 2, 0, 0]
 [0, 0, 3, 0]
 [0, 0, 0, 4]]