CS 공부/AI

torch 함수

imsmile2000 2023. 3. 14. 11:26
torch.gather

import torch

A = torch.Tensor([[1, 2], [3, 4]])

# torch.gather 함수를 써서 해보세요! 정답=[1,4]
A=torch.gather(A,0,torch.tensor([[0, 1]]))

여기서 index=torch.tensor[[0,1]]이므로

[[1,2],

 [3,4]] 에서 첫째줄의 0번째 인덱스 둘째줄의 1번째 인덱스가 가져와져 -> [[1,4]]가 된다.

[[1,4]]를 squeeze하면 [1,4]가 됨

0 -> 0번째 layer의 0번째 블록들 (맨 아래부터)

 

torch.from_numpy
더보기
tensor([1, 2, 3])
[-1  2  3]

 

 

torch.chunk
더보기
 
(tensor([[1, 2, 3]]), tensor([[4, 5, 6]]))
(tensor([[1, 2],
        [4, 5]]), tensor([[3],
        [6]]))

 

 

torch.swapdims
더보기
 
tensor([[[0, 1],
         [2, 3]],

        [[4, 5],
         [6, 7]]])
 
tensor([[[0, 1],
         [4, 5]],

        [[2, 3],
         [6, 7]]])

 

tensor([[[0, 4],
         [2, 6]],

        [[1, 5],
         [3, 7]]])

 

torch.Tensor.scatter
더보기

 #scatter( 인덱싱할 축, index , src , reduce = None )

torch.gather랑 비슷한 느낌..

src=tensor([[ 1, 2, 3, 4, 5], [ 6, 7, 8, 9, 10]])

index = torch.tensor([[0, 1, 2], [0, 1, 4]]) #src=[[1,2,3],[6,7,8]]

tensor([[1, 2, 3, 0, 0],
        [6, 7, 0, 0, 8],
        [0, 0, 0, 0, 0]])

 

torch.randn
더보기
평균이 0 이고 분산이 1 인 정규 분포에서 난수로 채워진 텐서를 반환
torch.randn(size)

 

torch.randperm
더보기
0에서 n-1까지 정수의 임의 순열을 반환
torch.randperm(n)

 

 

torch.randperm
더보기
0에서 n-1까지 정수의 임의 순열을 반환
torch.randperm(n)

 

torch.poisson(input)
더보기
주어진 속도 매개변수(input)를 사용하여 푸아송 분포에서 샘플링된 각 요소와 동일한 크기의 텐서를 반환
torch.poisson(input)

 

torch.log1p
더보기
자연 로그가 (1 + input)인 새 텐서를 반환합니다 
torch.log1p(input)

 

torch.rad2deg
더보기
각 요소를 라디안 각도에서 degree로 변환 
torch.rad2deg(input)

 

torch.clamp
더보기
모든 요소를 ​​[min ,max ] 범위로 고정. min_value 및 max_value를 각각 min, max로 지정하면 
yi​=min(max(xi​,min_valuei​),max_valuei​)가 반환됨
torch.clamp(input,min,max,out)

 

torch.prod
더보기
input 텐서의 모든 요소의 곱을 반환
torch.prod(input,줄일 차원)

 

torch.count_nonzero
더보기
지정된 dim에 따라 input 텐서에서 0이 아닌 값의 수를 셈. dim이 지정되지 않으면 텐서의 0이 아닌 모든 값이 계산됨
torch.count_nonzero(input,dim)

 

torch.argmax
더보기
input텐서에 있는 모든 요소의 최대값 인덱스를 반환
torch.argmax(input)

 

torch.allclose
더보기
∣input−other∣≤atol+rtol×∣other∣ 식을 만족하는지 확인
torch.allclose(input, other, rtol=1e-05, atol=1e-08, equal_nan=False) 

 

torch.argsort
더보기
지정된 차원을 따라 값별 오름차순으로 텐서를 정렬하는 인덱스를 반환
torch.argsort(input)

 

torch.topk
더보기
input텐서에 있는 모든 요소의 최대값 인덱스를 반환
torch.topk(input, k, dim=None, largest=True, sorted=True, *, out=None)

 

torch.triu
더보기
행렬(2-D 텐서) 또는 행렬 배치 입력의 위쪽 삼각형 부분을 반환. output 텐서 출력의 다른 요소는 0으로 설정됨
torch.triu(input, diagonal=0, *, out=None)

 

torch.einsum
더보기
input 피연산자 요소의 곱을 아인슈타인 합계 규칙에 기반한 표기법을 사용하여 지정된 차원에 따라 합합니다.
torch.einsum(equation, *operands)

 

torch.bucketize
더보기
버킷의 경계가 경계로 설정된 input의 각 값이 속한 버킷의 인덱스를 반환(입력과 동일한 크기로 반환)
torch.bucketize(input, boundaries, *) 

 

torch.addmm
더보기
행렬 mat1과 mat2의 행렬곱을 수행. input이 최종 결과에 +됨
torch.addmm(input, mat1, mat2)

 

torch.qr
더보기
행렬 또는 행렬 배치 입력의 QR 분해를 계산하고 input=QR과 같은 텐서의 명명된 튜플(Q, R)을 반환
torch.qr(input, some=True)