프레임워크 | 장점 | 단점 |
Theano | - Python 지원
- Wrapper 를 통한 높은 추상화로 사용성 편리
- 여러 에코시스템이 존재
- 연구용으로 많이 사용됨
| - Theano자체는 로우레벨 라이브러리
- 큰 규모 모델에 많은 컴파일 시간
- torch에 비해 매우 큰 라이브러리
- 에러메시지가 부정확
|
Torch | - 모듈화된 라이브러리로 상호 연계가 쉬움
- GPU지원, 본인 레이어 타입 작성이 편리
- 선훈련된 모델들이 많음
| - Lua 기반
- 회귀 뉴럴 네트워크에 적합하지 않음
- 문서화 부실
|
TensorFlow | - Python + Numpy
- 컴퓨팅 그래프 추상화
- Theano보다 빠른 컴파일
- 시각화를 위한 TensorBoard
- 데이터와 모델의 병렬화
| - 다른 프레임워크보다 느림
- Torch보다 훨씬 큰 라이브러리
- 선 훈련된 모델이 적음
- 계산 그래프가 Python으로 되어 있어서 느림
- 도구로서의 기능이 약함
|
Caffe | - 이미지 프로세싱에 적합
- 잘 튜닝된 네트워크
- 코드 작성없이 모델 트레이닝 가능
- Python인터페이스가 유용
| - GPU를 위해서는 C++/CUDA작성 필요
- 회귀 네트워크에는 부적합
- 큰 네트워크에는 부적절
- 확장성이 떨어짐
|
MxNet | - 혼합 패러다임 지원(symbolic/imperative)
- 자동 미분화
- GPU, mobile에서도 동작
- 여러 언어 지원(C++, Python, R, Scala, Julia, Matlab and Javascript)
- 최적화된 C++ 엔진으로 좋은 성능
| - 로우 레벨 텐서 연산자가 적음
- 흐름 제어 연산자 지원하지 않음
- 컴파일 세팅에 따라 결과가 달라짐.
- 자신의 커스컴 레이어 생성을 위해서는 어느정도 백엔드 텐서 라이브러리 이해가 필요
|