[딥러닝] 프레임워크 비교(Tensorflow, Keras, PyTorch)
0. Computational Graph
- 연산 과정을 그래프로 표현하여 수학적 계산을 효율적이고 체계적으로 수행할 수 있도록 돕는 도구
1. Tensorflow와 Keras
- 배포와 안정성이 중요한 프로덕션 환경에 적합 (모바일 애플리케이션, 클라우드 배포, IoT 디바이스 등)
- 대규모 데이터 처리에 강점, Google지원으로 장기 지원과 생태계 제공
- Define and Run : 그래프를 먼저 정의하고, 실행 시점에 데이터를 feed(넣어줌)
1) Tensorflow
- 대규모 배포와 클라우드 지원
- 배포 및 프로덕션 친화적
- Google 생태계와의 통합
- 초기에 정적 그래프로 디버깅이 어려웠으나 현재는 동적 그래프도 지원
2) Keras
- 초기에 독립적인 라이브러리로 시작했지만, tensorflow 기본 api로 통합됨
- 간단한 API로 간단한 모델 개발과 초보자 학습에 적합하다
2. PyTorch
- Dynamic Computation Graph(DCG)
: 실행을 하면서 그래프를 생성하는 방식 => 중간 중간 값을 확인할 수 있어 디버깅에 좋다
- python코드처럼 동작해 즉시 확인 가능하여 디버깅이 매우 쉽다
- 최신 AI 기술과 연구 결과를 빠르게 제품화 하려면 Pytorch가 적합
- 빠르게 새로운 모델을 실험하고 수정하려는 환경에 유리
- 모델의 동작을 세부적으로 제어할 수 있다
- 연구, 프로토타입에 강점으로, 최신 AI 논문에 자주 사용된다
- 최근 torchserve등을 통해 배포 가능
- Numpy, AutoGrad(자동미분), Function(DL), dataset, multi-GPU 등 지원