torch.triu() - torch.triu_() - v1.5.0

torch.triu() - torch.triu_() - v1.5.0

  • torch.triu (Python function, in torch)
  • torch.Tensor.triu (Python method, in torch.Tensor)
  • torch.Tensor.triu_ (Python method, in torch.Tensor)

torch.Tensor
https://pytorch.org/docs/stable/tensors.html

triu(k=0) -> Tensor
See torch.triu()

triu_(k=0) -> Tensor
In-place version of triu()

torch
https://pytorch.org/docs/stable/torch.html

torch.triu(input, diagonal=0, out=None) -> Tensor
Returns the upper triangular part of a matrix (2-D tensor) or batch of matrices input, the other elements of the result tensor out are set to 0.
返回一個張量,包含輸入矩陣 (2D 張量) 的上三角部分,其餘部分被設爲 0。上三角部分爲矩陣指定對角線 diagonal 之上的元素。

The upper triangular part of the matrix is defined as the elements on and above the diagonal.
上三角部分爲矩陣指定對角線 diagonal 之上的元素。

The argument diagonal controls which diagonal to consider. If diagonal = 0, all elements on and above the main diagonal are retained. A positive value excludes just as many diagonals above the main diagonal, and similarly a negative value includes just as many diagonals below the main diagonal. The main diagonal are the set of indices {(i,i)}\{(i,i)\} for i[0,min{d1,d2}1]i \in [0, \min\{d_{1}, d_{2}\} - 1] where d1d_{1}, d2d_{2} are the dimensions of the matrix.
參數 diagonal 控制要考慮的對角線。如果 diagonal = 0,則保留主對角線上和上方的所有元素。正值排除主對角線和對角線上方的部分元素,同樣負值包括主對角線和主對角線下方的部分元素。主對角線是 {(i,i)}\{(i,i)\} for i[0,min{d1,d2}1]i \in [0, \min\{d_{1}, d_{2}\} - 1] 的索引集,其中 d1d_{1}, d2d_{2} 是矩陣的維數。

參數 k 控制對角線:

  • k = 0,主對角線
  • k > 0,主對角線之上
  • k < 0,主對角線之下

1. Parameters

input (Tensor) – the input tensor.

diagonal (int, optional) – the diagonal to consider. (指定對角線。)

out (Tensor, optional) – the output tensor.

2. Example

(pt-1.4_py-3.6) yongqiang@yongqiang:~$ python
Python 3.6.10 |Anaconda, Inc.| (default, May  8 2020, 02:54:21)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>>
>>> a = torch.randn(4, 4)
>>> a
tensor([[ 0.5144,  0.5091, -0.3698,  0.3694],
        [-1.1344, -0.2793,  1.6651, -1.3632],
        [-0.3397, -0.1468, -0.0300, -1.1186],
        [-2.1449,  1.3087, -0.1409,  2.4678]])
>>>
>>> torch.triu(a)
tensor([[ 0.5144,  0.5091, -0.3698,  0.3694],
        [ 0.0000, -0.2793,  1.6651, -1.3632],
        [ 0.0000,  0.0000, -0.0300, -1.1186],
        [ 0.0000,  0.0000,  0.0000,  2.4678]])
>>>
>>> torch.triu(a, diagonal=1)
tensor([[ 0.0000,  0.5091, -0.3698,  0.3694],
        [ 0.0000,  0.0000,  1.6651, -1.3632],
        [ 0.0000,  0.0000,  0.0000, -1.1186],
        [ 0.0000,  0.0000,  0.0000,  0.0000]])
>>>
>>> torch.triu(a, diagonal=-1)
tensor([[ 0.5144,  0.5091, -0.3698,  0.3694],
        [-1.1344, -0.2793,  1.6651, -1.3632],
        [ 0.0000, -0.1468, -0.0300, -1.1186],
        [ 0.0000,  0.0000, -0.1409,  2.4678]])
>>>
>>> torch.triu(a, diagonal=-2)
tensor([[ 0.5144,  0.5091, -0.3698,  0.3694],
        [-1.1344, -0.2793,  1.6651, -1.3632],
        [-0.3397, -0.1468, -0.0300, -1.1186],
        [ 0.0000,  1.3087, -0.1409,  2.4678]])
>>>
>>> torch.triu(a, diagonal=-3)
tensor([[ 0.5144,  0.5091, -0.3698,  0.3694],
        [-1.1344, -0.2793,  1.6651, -1.3632],
        [-0.3397, -0.1468, -0.0300, -1.1186],
        [-2.1449,  1.3087, -0.1409,  2.4678]])
>>>
>>> exit()
(pt-1.4_py-3.6) yongqiang@yongqiang:~$
(pt-1.4_py-3.6) yongqiang@yongqiang:~$ python
Python 3.6.10 |Anaconda, Inc.| (default, May  8 2020, 02:54:21)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>>
>>> b = torch.randn(4, 6)
>>> b
tensor([[-1.3014, -1.2629,  0.7176,  1.2692, -0.1408, -0.9948],
        [ 1.4856, -1.1522,  0.8107,  0.2437,  0.0965, -0.9363],
        [-0.2229, -0.6405, -0.3730,  1.5058,  0.6841,  1.7821],
        [ 0.1128, -0.2907,  0.1218,  1.1333, -0.2058, -0.0554]])
>>>
>>> torch.triu(b, diagonal=1)
tensor([[ 0.0000, -1.2629,  0.7176,  1.2692, -0.1408, -0.9948],
        [ 0.0000,  0.0000,  0.8107,  0.2437,  0.0965, -0.9363],
        [ 0.0000,  0.0000,  0.0000,  1.5058,  0.6841,  1.7821],
        [ 0.0000,  0.0000,  0.0000,  0.0000, -0.2058, -0.0554]])
>>>
>>> torch.triu(b, diagonal=2)
tensor([[ 0.0000,  0.0000,  0.7176,  1.2692, -0.1408, -0.9948],
        [ 0.0000,  0.0000,  0.0000,  0.2437,  0.0965, -0.9363],
        [ 0.0000,  0.0000,  0.0000,  0.0000,  0.6841,  1.7821],
        [ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000, -0.0554]])
>>>
>>> torch.triu(b, diagonal=-1)
tensor([[-1.3014, -1.2629,  0.7176,  1.2692, -0.1408, -0.9948],
        [ 1.4856, -1.1522,  0.8107,  0.2437,  0.0965, -0.9363],
        [ 0.0000, -0.6405, -0.3730,  1.5058,  0.6841,  1.7821],
        [ 0.0000,  0.0000,  0.1218,  1.1333, -0.2058, -0.0554]])
>>>
>>> torch.triu(b, diagonal=-2)
tensor([[-1.3014, -1.2629,  0.7176,  1.2692, -0.1408, -0.9948],
        [ 1.4856, -1.1522,  0.8107,  0.2437,  0.0965, -0.9363],
        [-0.2229, -0.6405, -0.3730,  1.5058,  0.6841,  1.7821],
        [ 0.0000, -0.2907,  0.1218,  1.1333, -0.2058, -0.0554]])
>>>
>>> exit()
(pt-1.4_py-3.6) yongqiang@yongqiang:~$
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章