Pytorch

Tensors Operation

술임 2025. 4. 9. 09:49
torch.is_tensor(x) # 텐서 여부 확인
torch.is_nonzero(x) # zero 여부 확인 
# 학습이 잘 안된 케이스는 0인 케이스가 발생함 
# 텐서로 들어온 인풋은 잘 작동 안함

 

텐서 생성

torch.tensor([[0,1,2], [3,4,5]])

torch.from_numpy(n)

torch.zeros(2,3)

torch.ones(2,3)

 

연산

torch.permute # 위치 바꾸기

torch.reshape(b, (-1,)) # flatten

torch.transpose # 2 axis를 바꿈

torch.squeeze # 데이터 전처리에 활용. 디멘션을 출여줌. 차원이 1인 것을 없애줌.

 

reduction ops

torch.argmax(a) # 가장 큰 값의 인덱스를 가져오는 것

torch.argmin(a) # 가장 작은 값의 인덱스를 가져오는 것

 

comparison ops

torch.isinf() # infinity한 num으로 넘어갈 때 

torch.isnan() # nan은 자료형에서 담을 수 없을 때 많이 뜨는 편. 
# optimize에서 gradient 변화한 값이 너무 작아서 알 수 없을 때

 

disabling gradient computation

# 필요없는 grad에 대해서는 with로 감싸서 처리하는 것
x = torch.zeros(1, requires_grad = True)
with torch.no_grad():
	y = x*2
y.requires_grad

# 잘 안씀
is_train = False
with torch.set_grad_enabled(is_train):
	 y = x*2
y.requires_grad

torch.set_grad_enabled(True)
y= x*2
y.requires_grad

torch.set_grad_enabled(False)
y= x*2
y.requires_grad

training에서는 모델에 데이터가 계속 들어와서 통과하는데, 모르는 사이에서도 역전파 될 수 있음

미연에 방지하고자, with로 씌워서 방지하는 것

 

'Pytorch' 카테고리의 다른 글

Transform  (0) 2025.04.14
DataLoader  (0) 2025.04.11
Tensor  (0) 2025.04.08
딥러닝 파이프라인  (0) 2025.04.07
torch.cat과 torch.stack  (1) 2023.11.27