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 |