Pytorch 기본 익히기1 -Pytorch가 무엇이고 기본 문법 익히기-

1. pytorch 소개

 

딥러닝을 다루는 대표적인 라이브러리인 Tensorflow, Keras, Pytorch중 페이스북 인공지능 연구팀에 의해 개발된 라이브러리 Pytorch

 

python의 언어 구조와 굉장히 유사하며, 간결함

 

내부적으로 Computed Unified Device Architecture(CUDA)CUDA based Deep Neural Network(cuDNN)라는 API(application programming interface)를 이용해 GPU(graphics processing unit)연산을 가능하게 하여 연산 속도가 월등히 빠르다.

 

numpy와 autogradient와 function을 제공해주는 framework

 

데이터의 형태로, numpy 구조의 array를 받아 tensor로 표현한다

 

numpy 연산이 거의 그대로 사용된다고 보면 됨

 

tensor는 새로운 개념이 아니고, 0차원 - 스칼라(scalar), 1차원 - 벡터(vector), 2차원 - 행렬(matrix), 3차원 이상을 n차원 텐서(n-tensor)라고 부름

 

자동미분에 의한 딥러닝 연산을 지원

 

다양한 형태의 딥러닝을 지원함

 

dynamic graph 방식으로, 선언한 순간 알아서 그래프를 그린다고함

 

pytorch 튜토리얼로 공부하는 것을 추천

 

 

paperswithcode에서 implementation에 사용한 프레임워크를 비교해보면 시간이 갈수록 pytorch를 사용한 경우가 많았음

 

pytorch에 대한 관심, 인기가 많아지는 것은 사실이지만, tensorflow가 절대 밀린다? 그런것은 아닌듯

 

 

2. 설치

 

설치는 매우 까다롭다..

 

인터넷에 많이 나와있지만.. google colab에서 설치하지 않고 사용하는게 제일 무난함

 

 

3. create tensor

 

import torch로 Pytorch 라이브러리인 torch를 불러온다.

 

보통 torch는 별칭을 사용하지 않음

 

numpy array를 받아서, torch.FloatTensor()을 사용하면, 해당 array를 float tensor로 바꿔줌

 

당연히 tensor 종류는 여러가지가 있다

 

 

4. tensor size

 

.size()가 numpy에서는 데이터의 총 수였지만, pytorch에서는 shape를 나타냄

 

 

 

5. dim

 

numpy의 axis 연산이 pytorch에서는 dim을 사용

 

 

 

6. view

 

numpy의 reshape 연산은 array의 shape를 바꿔주는데.. pytorch에서는 view가 이 역할을 함

 

함수명들이 기능은 동일해도 numpy와는 약간씩 다름

 

 

 

7. squeeze, unsqueeze

 

squeeze는 차원을 감소시키고, unsqueeze는 차원을 증가시킴

 

원래 (10)인 tensor가 unsqueeze(dim=0)하면 (1,10)으로 차원이 늘어남

 

 

 

unsqueeze된 tensor를 squeeze해보면, 차원이 감소함

 

 

8. auto differentiation

 

핵심 기능으로 자동 미분을 지원

 

$z = 2w^{2}+5$를 w로 미분하고, f'(2)를 구하고 싶다

 

 

 

하나하나 다 외울수는 없으니..

 

여러가지 딥러닝 코드를 하나하나 살펴보면서

 

모르겠으면 뜯어가면서 익숙해지도록 살펴보면서 공부하는게 최선

TAGS.

Comments