본문 바로가기
기술/딥러닝

[Boostcamp AI Tech] PyTorch

by 팡팡구리 2021. 8. 20.
반응형

이번 주의 부캠


전체 3주차이자 Level 1 U-stage의 마지막 주였던 이번 주는 PyTorch와 친해지는(?) 그런 한 주였다.

대부분의 강의가 PyTorch 문법적인 내용이었기 때문에

수학 공식들이 심심하면 등장했던 1,2주차와 비교했을 때 전반적으로 수월했다.

그러나 일명 '부덕'이라 불리는 녀석이 내준 과제는 그 양이 정말 지독했다.

( 특히 extra_repr 이 자식이... 고생 꽤나 시켰다.)

그래도 이번 한 주 교육을 통해 모델링을 위한 PyTorch 코드를 다룰 수 있게 됐다는 점은 좋은 일인 것 같다.

 

 

PyTorch


딥러닝 프레임워크는 정말 여러가지가 존재하지만

Top Deep Learning Frameworks를 2개만 꼽자면 TensorFlowPyTorch가 있다.

Boostcamp에서 사용할 프레임워크는 PyTorch로,

그동안 주로 TensorFlow로 프로젝트들을 해왔던 나로써는 참 가슴 아픈 일이지만

많은 논문들이 PyTorch로 구현되고 있고, 각종 대회에서도 PyTorch가 보이는 걸 보면

PyTorch가 대세라는 걸 새삼 느낄 수 있다.

 

그렇다면 PyTorch가 인기를 얻고 있는 이유는 무엇일지 TensorFlow와 비교하며 살펴보려 한다.

TensorFlow와 PyTorch의 가장 큰 차이는 Computational graph를 그리는 방식이다.

연산 과정을 그래프로 표현하는 것을 Computational graph라고 하는데,

 

TensorFlow는 그래프를 먼저 정의하고 실행 시점에 데이터를 feed하는

Define and Run 방식의 Static Graph를 사용한다.

 

반면, PyTorch는 실행을 하면서 그래프를 생성하는

Define by Run 방식의 Dynamic Computation Graph (DCG)를 사용한다.

DCG는 중간중간 값을 확인할 수 있기 때문에 Debugging에 용이하고,

이러한 점이 특히 PyTorch가 사랑받게 된 원인이 아닐까 한다.

 

TensorFlow도 2.0 버전 이후, Define by Run 방식을 사용하지만,
PyTorch와 TensorFlow의 차이점으로 항상 언급되는 특징이기 때문에
일종의 아이덴티티로서 기억해 두자!

 

Keras vs TensorFlow vs PyTorch

 

PyTorch의 장점

 

1. Numpy : Numpy 구조를 가지는 Tensor 객체를 사용해서 array를 표현한다.

2. AutoGrad : 자동미분을 지원하여 Deep Learning 연산을 지원한다.

3. Function : 다양한 형태의 Deep Learning 지원 함수와 모델을 지원한다. 

   - ex) Multi-GPU, Augmentation 등

 

 

References


https://www.boostcourse.org/

 

다 함께 배우고 성장하는 부스트코스

부스트코스(boostcourse)는 모두 함께 배우고 성장하는 비영리 SW 온라인 플랫폼입니다.

www.boostcourse.org

https://datasciencecareer.wordpress.com/2020/12/09/ml03-pytorch-vs-tensorflow/

 

ML03: PyTorch vs. Tensorflow

PyTroch—a promising framework for DLRead time: 3 minThis is a part my mid-term report of the course PyTorch and Machine Learning in NCCU. The original report: Architecture of PyTorch &am…

datasciencecareer.wordpress.com