Boostcamp AI tech 3기/개념 이해

텐서 함수 조금 정리. 생성, 타입, select, cat, stack

mcdn 2022. 1. 25. 14:09
반응형

각종 텐서 다루는 함수 정리 

 

참고한 문서들 

http://www.gisdeveloper.co.kr/?p=8392

잘 정리되어있음 추천!!

 

# 텐서 생성 

1. torch.rand(2,3) 

그냥 난수 값으로 2*3 텐서 생성 

2. torch.randn(2,3)

정규분포 따른 난수 값 

3. torch.randint(0,10,size=(2,3))

정수값으로 이루어진 난수값 

4. torch.zeros(2,3)

5. torch.zeros_like(other_tensor)
6. torch.ones_like(other_tensor)

 

 

# 텐서 타입 

1. tf.type() # torch.FloatTensor

2. type(tf) # <class 'torch.tensor'="">

3. tf.type(dtype=torch.IntTensor)

int type으로 타입을 변경해줌 

4. torch.from_numpy(x1)

numpy array를 파이토치 텐서로 만들어준다. 

반대는 .numpy()

 

# 텐서 크기 

1. tf.size()

tf.size()[1]처럼 접근할 수 있다. 

 

# index_select() : 인덱스를 기준으로 빼오기 

x = torch.randn(4,3)
# 4 *3 배열 
ret = torch.index_select(x, 1, torch.LongTensor([0,2]))
# 4 *2 배열 \ COL을 기준으로 0번째, 2번째 인덱스를 돌려준다.

 

# masked_select() : boolTensor를 기준으로 빼오기. 

x = torch.randn(2,3)
mask = torch.BoolTensor([False, False, True], [False, True, False])
output = torch.masked_select(x, mask)
# [0,2], [1,1] 값만 나오게 된다.

 

# cat() : 텐서 결합하기 

output = torch.cat([x,y], dim=0)

# stack() : 같은 텐서 덧붙이기 

x = torch.Tensor([[1,2,3],[4,5,6]])
output = torch.stack([x,x,x,x],dim=0)

 

# view, reshape :  텐서 모양 바꾸기 

import numpy as np 
import torch 

t = np.zeros((3,3,4))
ft = torch.Tensor(t)
ft =

 

반응형