mindspore.ops.diag_embed
- mindspore.ops.diag_embed(input, offset=0, dim1=- 2, dim2=- 1)[source]
- Creates a tensor with diagonals filled by input. The remaining elements are filled by 0. If the shape of input is \([x_{0}, x_{1}, ..., x_{n-1}, x_{n}]\), the output shape is: the vector obtained by inserting \(x_{n}+|offset|\) into the vector \([x_{0}, x_{1}, ..., x_{n-1}]\) at position dim1 and dim2. - Parameters
- input (Tensor) – Values to fill diagonal. 
- offset (int, optional) – - Offset of the diagonal. \(offset=0\) refers to the main diagonal. Default: - 0.- If \(offset>0\), fill the diagonals that are offset units upward from the main diagonal. 
- If \(offset<0\), fill the diagonals that are |offset| units downward from the main diagonal. 
 
- dim1 (int, optional) – The first dimension in input with respect to which to fill diagonal. Default: - -2.
- dim2 (int, optional) – The second dimension in input with respect to which to fill diagonal. Default: - -1.
 
- Returns
- Tensor, has the same dtype as input, but the shape of output is one dimension higher than the input. 
- Raises
- TypeError – If input is not a Tensor. 
- TypeError – If dtype of input is not supported. 
- TypeError – If offset is not an int. 
- TypeError – If dim1 or dim2 is not an int. 
- ValueError – If the dimension of input is not 1D-6D. 
- ValueError – If dim1 is not in range of [-len(input.shape) - 1, len(input.shape)]. 
- ValueError – If dim2 is not in range of [-len(input.shape) - 1, len(input.shape)]. 
- ValueError – If dim1 and dim2 are identical. 
 
 - Supported Platforms:
- Ascend- GPU- CPU
 - Examples - >>> import mindspore >>> import numpy as np >>> from mindspore import Tensor, ops >>> x = Tensor(np.array([2,3,4]), mindspore.float32) >>> output = ops.diag_embed(x) >>> print(output) [[2. 0. 0.] [0. 3. 0.] [0. 0. 4.]]