Rate this Page

torch.triu#

torch.triu(input,diagonal=0,*,out=None)Tensor#

Returns the upper triangular part of a matrix (2-D tensor) or batch of matricesinput, the other elements of the result tensorout are set to 0.

The upper triangular part of the matrix is defined as the elements on andabove the diagonal.

The argumentdiagonal controls which diagonal to consider. Ifdiagonal = 0, all elements on and above the main diagonal areretained. A positive value excludes just as many diagonals above the maindiagonal, and similarly a negative value includes just as many diagonals belowthe main diagonal. The main diagonal are the set of indices{(i,i)}\lbrace (i, i) \rbrace fori[0,min{d1,d2}1]i \in [0, \min\{d_{1}, d_{2}\} - 1] whered1,d2d_{1}, d_{2} are the dimensions of the matrix.

Parameters
  • input (Tensor) – the input tensor.

  • diagonal (int,optional) – the diagonal to consider

Keyword Arguments

out (Tensor,optional) – the output tensor.

Example:

>>>a=torch.randn(3,3)>>>atensor([[ 0.2309,  0.5207,  2.0049],        [ 0.2072, -1.0680,  0.6602],        [ 0.3480, -0.5211, -0.4573]])>>>torch.triu(a)tensor([[ 0.2309,  0.5207,  2.0049],        [ 0.0000, -1.0680,  0.6602],        [ 0.0000,  0.0000, -0.4573]])>>>torch.triu(a,diagonal=1)tensor([[ 0.0000,  0.5207,  2.0049],        [ 0.0000,  0.0000,  0.6602],        [ 0.0000,  0.0000,  0.0000]])>>>torch.triu(a,diagonal=-1)tensor([[ 0.2309,  0.5207,  2.0049],        [ 0.2072, -1.0680,  0.6602],        [ 0.0000, -0.5211, -0.4573]])>>>b=torch.randn(4,6)>>>btensor([[ 0.5876, -0.0794, -1.8373,  0.6654,  0.2604,  1.5235],        [-0.2447,  0.9556, -1.2919,  1.3378, -0.1768, -1.0857],        [ 0.4333,  0.3146,  0.6576, -1.0432,  0.9348, -0.4410],        [-0.9888,  1.0679, -1.3337, -1.6556,  0.4798,  0.2830]])>>>torch.triu(b,diagonal=1)tensor([[ 0.0000, -0.0794, -1.8373,  0.6654,  0.2604,  1.5235],        [ 0.0000,  0.0000, -1.2919,  1.3378, -0.1768, -1.0857],        [ 0.0000,  0.0000,  0.0000, -1.0432,  0.9348, -0.4410],        [ 0.0000,  0.0000,  0.0000,  0.0000,  0.4798,  0.2830]])>>>torch.triu(b,diagonal=-1)tensor([[ 0.5876, -0.0794, -1.8373,  0.6654,  0.2604,  1.5235],        [-0.2447,  0.9556, -1.2919,  1.3378, -0.1768, -1.0857],        [ 0.0000,  0.3146,  0.6576, -1.0432,  0.9348, -0.4410],        [ 0.0000,  0.0000, -1.3337, -1.6556,  0.4798,  0.2830]])