mindspore.ops.diag
- mindspore.ops.diag(input)[source]
Constructs a diagonal tensor with a given diagonal values.
Assume input has dimensions \((D_1,... D_k)\) , the output is a tensor of rank 2k with dimensions \((D_1,..., D_k, D_1,..., D_k)\) where: \(output[i_1,..., i_k, i_1,..., i_k] = input[i_1,..., i_k]\) and 0 everywhere else.
- Parameters
input (Tensor) – The input tensor.
- Returns
Tensor, has the same dtype as the input.
- Raises
TypeError – If input is not a Tensor.
ValueError – If rank of input is less than 1.
- Supported Platforms:
Ascend
GPU
CPU
Examples
>>> 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]]