mindspore.ops.Tril

class mindspore.ops.Tril(diagonal=0)[源代码]

返回单个或一批二维矩阵下三角形部分,其他位置的元素将被置零。 矩阵的下三角形部分定义为对角线本身和对角线以下的元素。

警告

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

参数:
  • diagonal (int,可选) - 指定对角线位置,默认值:0,指定主对角线。

输入:
  • x (Tensor) - 输入Tensor。shape为 \((x_1, x_2, ..., x_R)\) ,其rank至少为2。 支持的数据类型有包括所有数值型和bool类型。

输出:

Tensor,其数据类型和shape维度与 input_x 相同。shape的第一个维度等于 segment_ids 最后一个元素的值加1,其他维度与 input_x 一致。

异常:
  • TypeError - 如果 x 不是Tensor。

  • TypeError - 如果 diagonal 不是int类型。

  • TypeError - 如果 x 的数据类型既不是数值型也不是bool。

  • ValueError - 如果 x 的秩小于2。

支持平台:

Ascend GPU CPU

样例:

>>> x = Tensor(np.array([[ 1,  2,  3,  4],
...                      [ 5,  6,  7,  8],
...                      [10, 11, 12, 13],
...                      [14, 15, 16, 17]]))
>>> tril = ops.Tril()
>>> result = tril(x)
>>> print(result)
[[ 1  0  0  0]
 [ 5  6  0  0]
 [10 11 12  0]
 [14 15 16 17]]
>>> x = Tensor(np.array([[ 1,  2,  3,  4],
...                      [ 5,  6,  7,  8],
...                      [10, 11, 12, 13],
...                      [14, 15, 16, 17]]))
>>> tril = ops.Tril(diagonal=1)
>>> result = tril(x)
>>> print(result)
[[ 1  2  0  0]
 [ 5  6  7  0]
 [10 11 12 13]
 [14 15 16 17]]
>>> x = Tensor(np.array([[ 1,  2,  3,  4],
...                      [ 5,  6,  7,  8],
...                      [10, 11, 12, 13],
...                      [14, 15, 16, 17]]))
>>> tril = ops.Tril(diagonal=-1)
>>> result = tril(x)
>>> print(result)
[[ 0  0  0  0]
 [ 5  0  0  0]
 [10 11  0  0]
 [14 15 16  0]]