mindspore.ops.diag
- mindspore.ops.diag(input_x)[源代码]
用给定的对角线值构造对角线张量。
假设输入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_x[i_1,..., i_k]\) 并且其他位置的值为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]]