인공지능/파이토치

파이토치 무작정 시작하기 1 - 파이토치 / 텐서

해피밀세트 2020. 7. 7. 16:38
반응형

 

파이토치(Pytorch)란?

  • Python 기반의 과학 연산 패키지
  • NumPy를 대체하면서 GPU를 이용한 연산이 필요한 경우 사용
  • 최대한의 유연성과 속도를 제공하는 딥러닝 연구 플랫폼이 필요한 경우 사용

 

 

파이토치의 장점

  • 텐서플로보다 간결해서 쉽게 사용할 수 있다.
  • 학습 및 추론 속도가 빠르고 다루기 쉽다.
  • Define-by-Run 프레임워크
  • 많은 논문들이 파이토치로 구현

 


 

https://www.youtube.com/watch?v=6SF_qAd99Yg

 

 

텐서 (Tensor)

  • 파이토치의 기본 단위
  • 다차원 배열을 처리하기 위한 데이터 구조
  •  Numpy의 ndarray와 거의 같은 API를 지니고 있다.
  • GPU를 사용한 계산도 지원한다.
  • 어떤 데이터 형의 텐서이건 torch.tensor라는 함수로 작성할 수 있다.

 

 

# 라이브러리 불러오기

import torch
 

# 빈 텐서 생성

x = torch.empty(5,4)

print(x)

# 1로 구성한 텐서 생성

torch.ones(3,3)

# 0으로 구성한 텐서 생성

torch.zeros(2)

# 랜덤한 값으로 구성한 텐서 생성

torch.rand(5,6)

# 리스트나 nparray를 텐서로 변환

 

l = [13,4]

r = np.array([4,56,7])

 

torch.tensor(l)

torch.tensor(r)

# 텐서 사이즈 확인

x.size()
# 텐서 타입 확인

type(x)
# 텐서의 연산

x = torch.rand(2,2)
y = torch.rand(2,2)
print(x)
print(y)

 

x+y

torch.add(x,y)

y.add(x)

# inplace방식으로 계산

y.add_(x)
print(y)
# 텐서 인덱싱

y[1,1]
# 텐서 슬라이싱

y[:,1]
# 텐서의 사이즈 바꾸기

x = torch.rand(8,8)
print(x)


x.view(64)
x.view(4,16)
# -1로 고정값을 정했을때 나머지를 자동으로 변환

x.view(-1,16)
x.view(-1,4,4)
# 텐서를 ndarray로 변환

y = x.numpy()
print(y)
print(type(y))

# 원소가 한 개일때 원소의 값만 뽑아내고 싶을때

x = torch.ones(1)

x.item()

 

반응형