mindspore.Tensor.fill_diagonal

mindspore.Tensor.fill_diagonal(fill_value, wrap=False)[源代码]

self Tensor的主对角线,填充成指定的值,并返回结果。 self 必须至少为2D,并且如果维度大于2,则需要所有维度上的长度均相等。

警告

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

参数:
  • fill_value (float) - 对角线的填充值。

  • wrap (bool, 可选) - 控制对角线的元素是否继续在剩余的行上填充,如果 self 是高矩阵的话(矩阵的行比列多)。默认值:False

返回:
  • y (Tensor) - 和 self 具有相同的shape和数据类型。

异常:
  • TypeError - 如果 self 的数据类型不是float32、int32、int64。

  • ValueError - 如果 self 的维度不大于1。

  • ValueError - 在 self 的维度大于2时,所有维度的长度不相等。

支持平台:

Ascend GPU CPU

样例:

>>> import numpy as np
>>> import mindspore
>>> from mindspore import Tensor
>>> x = Tensor(np.ones((6, 3)), mindspore.float32)
>>> output = x.fill_diagonal(5.0, wrap=True)
>>> print(output)
[[5. 1. 1.]
 [1. 5. 1.]
 [1. 1. 5.]
 [1. 1. 1.]
 [5. 1. 1.]
 [1. 5. 1.]]