mindspore.ops.diag

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

用给定的对角线值构造对角线Tensor。

假设输入Tensor维度为 \((D_1,... D_k)\) ,则输出是一个rank为2k的Tensor,其维度为 \((D_1,..., D_k, D_1,..., D_k)\) ,其中 \(output[i_1,..., i_k, i_1,..., i_k] = input[i_1,..., i_k]\) 并且其他位置的值为0。

警告

这是一个实验性API,后续可能修改或删除。

参数:
  • input (Tensor) - 输入Tensor。

返回:

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

异常:
  • TypeError - input 不是Tensor。

  • ValueError - input 的rank小于1。

支持平台:

Ascend GPU CPU

样例:

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