* Deep Learning Framework Power Scores 2018 (2018.09.20)
구인구직 현황, 업계 사용량, 구글 검색량, 블로그/책/논문 등 출판량, Github 활동량을 조사하여 매긴 점수이다.
* Keras
사용자 많고 수요도 크며 간편하다.
Tensorflow 위에 얹어서 사용하는 high-level api이다.
맨 처음 딥러닝에 입문하는 입장에서는 Keras로 공부하는 것을 보통 추천한다.
그리고 keras를 이미 알고, 더 깊게 공부를 해보고 싶다면 tensorflow, pytorch 중 어떤 프레임워크를 선택할 지 고민하게 된다.
* Tensorflow, PyTorch 차이
두개의 프레임워크의 차이는 딥러닝을 구현하는 패러다임이 다른 것이다.
- Tensorflow: Define-and-Run, 먼저 모델을 만들고 한번에 돌린다. 값을 담을 공간 미리 정의하고, 돌릴때 값을 넣어줘야 한다. 정적인 모델. (static graph)
- PyTorch: Define-by-Run, 모델을 돌릴 때 정의한다. 값을 담을 공간을 따로 정의할 필요 없다. 동적인 모델. (dynamic graph)
즉, PyTorch가 Tensorflow보다 유연한 편이다. 예를 들면, PyTorch는 모델을 학습시키는 도중에 조건문들을 넣어 학습 stage마다 조건을 바꿔줄 수 있지만, Tensorflow는 미리 정의된 다음 학습을 돌리므로 학습 도중 조건에 따라 변화를 줄 수 없다.
그래서 보통 회사에서 제품 출시를 위해서는 Tensorflow, 연구실에서 연구를 위해서는 PyTorch를 쓴다고 많이 알려져 있다.
* Tensorflow
장점)
첫번째 그래프에서도 볼 수 있듯이, Tensorflow는 현재 가장 많은 사람들이 사용하는 프레임워크이다.
그래서 한국에서도 Tensorflow KR와 같은 그룹이 활발하다.(딥러닝 프레임워크 커뮤니티 중 규모가 가장 크다.)
Tensorboard와 같이 로그를 그래프로 편리하게 확인할 수 있는 툴을 제공해준다.
단점)
현재 텐서플로우, 파이토치 차이 글들을 찾아보면 텐서플로우에 대한 비판적인 시각이 많다.
문법이 직관적이지 않고 텐서플로우만에 특이한 문법이 있고, 업데이트가 잦아 변화에 적응해야 한다.
예를 들어 이번 tensorflow 2.x 업데이트로 인해 tensorflow 1.x 버전과 호환되지 않는 부분이 많고, 다시 새롭게 익히고 기존 코드를 수정해야 한다.
본인도 tensorflow를 공부해보고 싶은 현재 상황에서, tensorflow 1.x 버전으로 이루어진 기존 코드와 자료들을 공부하자니 tensorflow 2.x에 뒤쳐지는 것 같고, 그렇다고 tensorflow 2.x으로 공부하자니 자료도 부족하고 tensorflow 1.x에 대한 기초 지식도 필요로 한다.
* PyTorch
장점)
문법이 간단하다. Python 문법을 기반으로 하기 때문에 직관적이고 간단하다.
dynamic graph로 모델이 유연하다.
단점)
현재 사용하는 이용자 수가 tensorflow, keras에 비해 부족하다. 따라서 도움을 받거나 공부를 하기 위한 자료가 부족할 수 있다.
'Machine Learning & Deep Learning' 카테고리의 다른 글
Active Learning이란 (0) | 2020.09.16 |
---|---|
머신러닝 Loss Function 이해하기 (0) | 2020.03.03 |
AI(Artificial Intelligence), ML(Machine Learning), DL(Deep Learning) 차이점 알아보기 (0) | 2020.01.23 |