이 글은 부스트캠프 AI Tech 3기 강의를 듣고 정리한 글입니다.
딥러닝을 할 때 코드는 처음부터 다짠다?
- 예전에는 바닥부터 짜서 쓰기도 했었지만, 이젠 프레임워크를 사용한다.
- 바닥부터 짜고 싶으면 "밑바닥부터 시작하는 딥러닝" 책을 추천한다.
- 텐서플로우(구글)와 파이토치(Facebook)가 대표적인 오픈소스(업계표준)
프레임워크 비교
-
keras는 wrapper
- TF나 파이토치를 인터페이스로 받아 유저가 편하게 사용하도록 지원하는 용도
- TF2.0이 나오면서 keras와 합쳐짐
- 쉽게 배울 수 있는 장점
-
Pytorch : Dynami Computation Graphs(역전파 실행시점에서 그래프를 그림) ; Define by run
- Dynami Computation Graphs(DCG) 장점 : 디버그할 때 값을 확인 할 수 있어 편리함
-
TF, Keras : Static graphs (static하게 그래프를 그린후 run) ; Define and run
근황
TF는 점점 우하향이거나 유저수가 유지되는 반면
Pytorch는 유저수가 치고 올라오는 중이다.
왜 PyTorch?
- Define by Run의 장점
- 디버깅시 즉시 확인 가능 -> pythonic code
- GPU support, Good APL and community
- 사용하기 편한 장점이 큼
- TF는 production과 scalability 의 장점이 있으니 TF만의 장점이 있다는 정도 알아두자
PyTorch
Numpy + AutoGrad + Function
- Numpy 구조를 가지는 Tensor 객체로 array 표현
- 자동미분을 지원하여 DL 연산을 지원
- 다양한 딥러닝 관련 함수 지원 ; 특히 Multi - GPU 지원
=> PyTorch와 함께라면 어려운 것도 쉽게 할 수 있다.