읽기일기

Deep Learning with PyTorch: A 60 Minutes Blitz (1) – What is PyTorch?

http://pytorch.org/tutorials/beginner/blitz/tensor_tutorial.html

Deep Learning with PyTorch: A 60 Minute Blitz

Author: Soumith Chintala(http://soumith.ch)

이 튜토리얼의 목표는 아래와 같습니다.

  • PyTorch의 Tensor와 neural network 라이브러리를 높은 수준에서 이해한다.
  • 이미지를 분류하는 작은 신경망을 학습해본다.

이 튜토리얼은 numpy의 사용에 익숙한 사람들을 위한 것입니다.

Note: torch와 torchvision 패키지를 미리 설치해야 합니다.

What is PyTorch?

아래 사용자를 위하여 개발된 Python 기반 과학 컴퓨팅 패키지입니다.

  • GPU의 힘을 이용하기 위해 numpy를 대체하려는사 람
  • 최고의 유연함과 속도를 제공하는 딥러닝 연구 플랫폼

Getting Started

Tensors

Tensors는 numpy의 ndarray와 비슷한 것입니다. 하지만 Tensors는 GPU를 이용한 빠른 연산을 할 수 있습니다.

5x3 행렬을 초기화없이 만들어봅시다.

Out:

크기도 얻어봅시다.

Out:

Note: torch.Size는 튜플 타입이므로 == 연산을 지원합니다.

Operations

여러 문법으로 연산을 할 수가 있습니다. 예제를 살펴봅시다.

덧셈: 문법 1

Out:

덧셈: 문법 2

Out:

덧셈: 출력 텐서를 지정

Out:

덧셈: in-place

Out:

Note:

In-place가 일어나 Tensor가 수정되는 모든 연산은 _로 끝납니다. 예: x.copy_(y), x.t_()x를 변화시킵니다.

Out:

Resizing: Tensor의 크기를 변화시키거나 shape을 변화시키고 싶다면 torch.view를 사용하면 됩니다.

Out:

Read later:

Transposing, indexing, slicing, 수학 연산, 선형 대수, random number 등 100개가 넘는 Tensor 연산은 여기에 설명되어있습니다.

Numpy Bridge

Torch의 Tensor를 numpy array로, 혹은 그 반대로 변환하는 것도 매우 쉽습니다.

Torch Tensor와 numpy array는 같은 메모리 위치를 공유하고 있으므로, 하나를 바꾸면 나머지쪽도 값이 바뀌게 됩니다.

Converting torch Tensor to numpy Array

Out:

Out:

Numpy array의 값이 변하는지 확인해봅시다.

Out:

Converting numpy Array to torch Tensor

np array를 변경하면 자동적으로 torch Tensor를 바뀌는지 살펴봅시다.

Out:

CharTensor를 제외한 CPU에 만들어진 모든 Tensors는 Numpy로 변경하거나 다시 돌아오는 것이 가능합니다.

CUDA Tensors

Tensors는 .cuda함수를 이용해서 GPU로 옮길 수 있습니다.

 


Tags:
Add a Comment Trackback