목차
학습 목표
- 3가지 딥러닝 프레임워크의 장단점을 파악
- 내가 많이 쓰려는 Pytorch의 특징을 파악하기
딥러닝 프레임 워크 비교: Overview
Keras
- Wrapper, 즉 껍데기이다.
- 하단에 TF나 pytorch를 사용할 수 있게 하는 High level API이다.
- 특징: User friendly, 배우기 쉬움
Tensorflow(Google) vs Pytorch(FaceBook)
- 둘다 비슷하지만, Computational graph 를 어떻게 정의하느냐가 큰 차이이다.
Q. Computational Graph란 뭔가요?
A. 컴퓨터가 연산을 수행할 때 사용하는 그래프이다.
아래와 같이 함수 g를 수행할 때, 컴퓨터는 각 연산 과정을 그래프로 표현하여 계산한다.
TF: Define and Run
- 그래프를 먼저 정의하고, 실행 시점에 데이터를 feed(삽입)
- 코드 구현 시, (1) 그래프 구조 정의 후에 (2) 실행(어떤 데이터를 feed 해줄 지 지정) 의 2가지 단계를 거침
- 장단점
- 장점: 실제 production 레벨에서 많이 사용한다, scalability
- 단점: 실행 단계를 거쳐야 디버깅이 가능하기 때문에, 디버깅하기 어려움
Pytorch: Define and Run(Dynanmic Computational Graph, DCG)
- 코드를 실행하면서, 그래프를 생성한다.
- 장점
- Define by Run: 그래프를 정의하면서 연산이 함께 되기 때문에, 디버깅하기 편함
코드로 비교해보자
위의 그림을 보면, 왼쪽의 tf 코드는 (1) 그래프를 빌드하고 (2) 각 iteration 마다 그래프에 어떤 데이터를 삽입해야될 지 알려주며 학습이 진행된다. 반면 오른쪽 pytorch 코드의 경우 DCG를 기반으로 그래프를 정의하면서 그래프 연산까지 함께 된다! 그래서 디버깅하기 편함!
Get into Pytorch!
Pytorch의 핵심은 Numpy + AutoGrad + Function 이다!
- Numpy: 넘파이 구조와 비슷한 Tensor 객체를 제공함
- AutoGrad(자동 미분)을 지원
- Function: DL을 지원하는 다양한 함수와 모델을 제공함!
Reference
네이버 부스트 캠프 AI 기초다지기 프리코스
'AI > Pytorch' 카테고리의 다른 글
[Pytorch] 2. 나만의 커스텀 데이터셋과 데이터 로더 만들기 (3) | 2024.11.07 |
---|---|
[Pytorch] 프로젝트 구조 이해 (0) | 2024.07.29 |
[Pytorch] Tensor 기초 다지기 + AutoGrad (0) | 2024.07.26 |