torch.index_select
- Parameter : input, dim, index
- tensor에서 원하는 인덱스를 가져오고 싶을 때 사용 가능한 함수이다
인덱스를 추출하고자 하는 tensor 객체를 input에
선택하고자하는 차원을 dim값으로
그 차원의 몇번째 인덱스인지를 index에 텐서 객체로 주면 된다.
ex) A : [[1, 2], 에서 1열 [1, 3]을 추출하고 싶다면 torch.index_select(A, 1, torch.tensor([0])
[3, 4]] 2행 [3, 4]을 추출하고 싶다면 torch.index_select(A, 0, torch.tensor([1])
torch.Tensor.view
- 원소의 수를 유지하고 텐서의 크기를 바꿔주는 함수이다.
ex) ex) A : [[1, 2], 에서 A.view([4])는 tensor([[1., 2., 3., 4.]])
[3, 4]]
is_tensor
- tensor 객체인지 확인 후 True, False를 반환해주는 함수이다.
-Tensors - Creation Ops
torch.from_numpy
- numpy의 배열을 받아 tensor로 바꿔주는 함수이다.
- 메모리를 참조하기 때문에 tensor 값을 바꾸면 numpy배열 값도 바뀌게 된다.
torch.zeros
- 0으로 채워진 tensor를 리턴한다.
ex) torch.zeros(2, 3) = tensor([[0., 0., 0.],
[0., 0., 0.]])
torch.zeros_like
- tensor 객체를 받아 동일한 크기의 0으로 채워진 tensor를 리턴한다.
torch.chunk
- 텐서를 덩어리로 나눠주는 함수이다. 공식문서에서는 This function may return less then the specified number of chunks!라고 적혀있다.
parameter로 input, chunks, dim=0 을 받는데 차원을 주어진 chunk 수로 나눠 split 한 tensor를 리턴하는 방식이다.
아래 예시는 13개의 요소가 들어있는 tensor를 6으로 chunk 하면 더 적은 개수(5)로 split 되는 것을 확인할 수 있다.
>>> torch.arange(11).chunk(6)
(tensor([0, 1]),
tensor([2, 3]),
tensor([4, 5]),
tensor([6, 7]),
tensor([8, 9]),
tensor([10]))
>>> torch.arange(12).chunk(6)
(tensor([0, 1]),
tensor([2, 3]),
tensor([4, 5]),
tensor([6, 7]),
tensor([8, 9]),
tensor([10, 11]))
>>> torch.arange(13).chunk(6)
(tensor([0, 1, 2]),
tensor([3, 4, 5]),
tensor([6, 7, 8]),
tensor([ 9, 10, 11]),
tensor([12]))
@@@ torch.Tensor.scatter
-random sampling
torch.randn
- 평균이 0이고 표준편차가 1인 가우시안 정규분포를 이용해 생성
torch.randqerm
-주어진 범위 내의 정수를 랜덤 하게 생성
>>> torch.randperm(4)
tensor([2, 1, 0, 3])
torch.log1p
- tensor 객체를 인수로 주면 각 요소들에 loge(x+1)식을 씌운다.
torch.rad2 deg
- tensor의 각 요소를 라디안으로 계산해 각도로 바꿔 리턴한다.
torch.clamp
- min 혹은 max 범위에 해당하도록 tensor의 요소들을 바꿔준다.
torch.clamp(a, min=-0.5, max=0.5)
tensor([-0.5000, 0.1734, -0.0478, -0.0922])
Math operations - Reduction Ops
torch.prod
- 모든 요소를 곱한 값을 리턴한다.
torch.count_nonzero
- 0이 아닌 요소를 카운트해서 리턴한다. dim 인수를 설정하면 각 차원 인덱스마다 카운트해서 리턴한다.
torch.argmax
- 최댓값의 인덱스를 리턴한다. dim 인수를 설정하면 차원 인덱스에서의 최댓값 인덱스들을 반환한다.
argsort
-인수 dim을 따라 오름차순으로 정렬된 인덱스 값을 리턴한다.
topk
- parameter로 주어진 n개의 가장 큰 요소들을 리턴한다.
>>> x = torch.arange(1., 6.)
>>> x
tensor([ 1., 2., 3., 4., 5.])
>>> torch.topk(x, 3)
torch.return_types.topk(values=tensor([5., 4., 3.]), indices=tensor([4, 3, 2]))
triu
- 주 대각선을 제외한 그 아래 값들을 0으로 반환한다.
- diagonal 인수로 대각선을 제어할 수 있다.
einsum
https://ita9 naiwa.github.io/numeric%20 calculation/2018/11/10/Einsum.html
addmm
- parameter로 input, mat1, mat2을 받고 mat1과 mat2의 행렬곱의 결과를 input에 추가한다.
matrix_rank
- 랭크를 리턴한다.
nn.Linear
-
'AI > 파이토치' 카테고리의 다른 글
nn.Module (0) | 2022.01.31 |
---|---|
torch.Tensor와 torch.tensor 차이 (0) | 2022.01.30 |