[부스트캠프 AI Tech 5기] PyTorch Basics

박상우·2023년 3월 5일
0

부스트캠프

목록 보기
2/54
post-thumbnail

Pytorch Operation

Numpy + AutoGrad

Tensor

  • 다차원 Array를 표현하는 파이토치 클래스
  • Ndarray와 동일
  • Tensor 생성 함수도 거의 동일
t_array = torch.FloatTensor(array)
t_array.shape
t_array.ndim
t_array = torch.tensor(list)
t_array.shape
t_array.ndim
  • 다만 딥 러닝 중에서 요렇게 사용할 일은 없을 것
  • Tensor의 data type은 numpy와 동일

slice, flatten, ones_like 등 numpy와 동일하게 적용 됨

x_data.device

다음 함수를 통해 gpu, cpu로 연산할 수 있음

Tensor Handling

  • view : reshape과 동일하게 tensor shape 변환
  • squeeze : 차원의 개수가 1인 차원을 삭제
  • unsqueeze : 차원의 개수가 1인 차원을 추가

view랑 reshape는 메모리 관련해서 차이가 좀 있는데, view를 쓰면 됨
squeeze, unsqueeze는 (2,2)라면 (1,2,2), (2,1,2), (2,2,1) 요렇게 만들거나 빼거나 해줌

Tensor Operation

사칙연산은 동일
다만 행렬곱셈은 dot이 아니라 mm 혹은 matmul 을 사용

t1.mm(t2)
t1.matmul(t2)

matmul과 mm의 차이는 matmul은 broadcasting을 지원 (자동으로 차원을 채워줌)

ML/DL formula

import torch
import torch.nn.functioanl as F 
tensor = torch.FloatTensor([0.5,0.7,0.1])
h_tensor = F.softmax(Tensor,dim=0)
h_tensor
# Tensor([0.3458,0.4224,0.2318])

Autograd

Pytorch의 핵심은 자동 미분의 지원 - Backward 함수 사용

profile
세상아 덤벼라

0개의 댓글