triu

paddle. triu ( input, diagonal=0, name=None ) [源代码]

返回输入矩阵 input 的上三角部分,其余部分被设为 0。 矩形的上三角部分被定义为对角线上和上方的元素。

参数

  • input (Tensor):输入 Tensor input,数据类型支持 float32, float64, int32, int64, complex64, complex128

  • diagonal (int,可选):指定的对角线,默认值为 0。如果 diagonal = 0,表示主对角线;如果 diagonal 是正数,表示主对角线之上的对角线;如果 diagonal 是负数,表示主对角线之下的对角线。

  • name (str,可选) - 具体用法请参见 Name,一般无需设置,默认值为 None。

返回

Tensor,数据类型与输入 input 数据类型一致。

代码示例

>>> import paddle

>>> x = paddle.arange(1, 13, dtype="int64").reshape([3,-1])
>>> print(x)
Tensor(shape=[3, 4], dtype=int64, place=Place(cpu), stop_gradient=True,
[[1 , 2 , 3 , 4 ],
 [5 , 6 , 7 , 8 ],
 [9 , 10, 11, 12]])

>>> # example 1, default diagonal
>>> triu1 = paddle.tensor.triu(x)
>>> print(triu1)
Tensor(shape=[3, 4], dtype=int64, place=Place(cpu), stop_gradient=True,
[[1 , 2 , 3 , 4 ],
 [0 , 6 , 7 , 8 ],
 [0 , 0 , 11, 12]])

>>> # example 2, positive diagonal value
>>> triu2 = paddle.tensor.triu(x, diagonal=2)
>>> print(triu2)
Tensor(shape=[3, 4], dtype=int64, place=Place(cpu), stop_gradient=True,
[[0, 0, 3, 4],
 [0, 0, 0, 8],
 [0, 0, 0, 0]])

>>> # example 3, negative diagonal value
>>> triu3 = paddle.tensor.triu(x, diagonal=-1)
>>> print(triu3)
Tensor(shape=[3, 4], dtype=int64, place=Place(cpu), stop_gradient=True,
[[1 , 2 , 3 , 4 ],
 [5 , 6 , 7 , 8 ],
 [0 , 10, 11, 12]])