Deep Learning 프레임 워크 목록

machinelearning

#1

Deep Learning 프레임 워크 목록

학습 용 프레임 워크 및 기타 관련 라이브러리 소개 하자는 기사입니다.

Higher API

이른바 딥 러닝 프레임 워크를 더욱 추상화하여 Deep Neural Network (DNN)을 쉽게 쓸 수 있도록 한 라이브러리입니다.

  • Keras
    • by [Francois Chollet (https://twitter.com/fchollet) Google
    • https://keras.io/ja/
    • 주로 TensorFlow을 추상화하여보다 쉽게 ​​DNN을 취급 할 수 있도록 라이브러리. TensorFlow 1.4에서 TensorFlow에 병합되었습니다.
    • TensorFlow, CNTK, Theano 등의 모델을 생성 할 수 있습니다.
  • Gluon
    • by AWS, Microsoft
    • https://github.com/gluon-api/gluon-api
    • http://gluon.mxnet.io/
    • https://mli.github.io/cvpr17/
    • AWS 및 Microsoft가 만든 역시 DNN을 쉽게 작성하기위한 라이브러리입니다. 현재는 MXNet을 대상으로하고 있고, MXNet 라이브러리의 일부로 공개되어 있습니다.
    • 본래 정적 네트워크 쓰기 MXNet을 동적 네트워크 구축 (define by run)으로 쓸 수 있도록 할 수있는 것이 특징입니다.

Framework

흔히 말하는 깊은 학습 프레임 워크입니다.

  • TensorFlow
    • by Google
    • https://www.tensorflow.org/
    • 아마도 세계에서 가장 많이 사용되고있는 프레임 워크. 이 글을 쓰는 시점에서 최신 버전은 1.4입니다.
  • Chainer
    • by Preferred Networks
    • https://chainer.org/
    • 이것도 아시 PFN이 공개 한 일제 프레임 워크. 일본에서는 잘 사용되고있는 느낌이지만, 그외에서는 아쉽게도 널리 사용되지 않은 느낌.
    • 단, 아마도 동적 네트워크 구축 (define by run) 기술을 세계에 보급시킨 프레임 워크
  • Caffe
    • by [Yangqing Jia] (http://daggerfs.com/), UC Barkeley
    • http://caffe.berkeleyvision.org/
    • 2013 년경 UCB로 만들어진 프레임 워크. 주로 이미지 인식을 대상으로 만들어진 것
    • 설정 파일만으로 움직일 등 비교적 손쉽게 취급 할 수있는 것이 특징. 현재도 꾸준한 인기.
  • Caffe2
    • by [Yangqing Jia] (http://daggerfs.com/), Facebook
    • https://github.com/caffe2/caffe2
    • Caffe 저자 Jia 님이 Facebook에 옮겨 Caffe를 더욱 발전시키는 형태로 개발 된 라이브러리.
    • Facebook에서 꽤 사용되고, Caffe에 비해 아직 작은 느낌이 있습니다.
  • MXNet
  • PyTorch
    • by [Adam Paszke (https://twitter.com/apaszke) 등 NYU, Facebook
    • http://pytorch.org/
    • 꽤 오래된 Lua 제 프레임 워크 [Torch (http://torch.ch/)와 같은 팀이 제공하는, Python 제 프레임 워크.
    • Chainer를 fork하여 만들어 졌다는 이야기가 있고 Chainer과 같이 define by run을 지원합니다.
  • The Microsoft Cognitive Toolkit (CNTK)
  • Theano
    • by Yoshua Bengio 몬트리올 대학
    • http://deeplearning.net/software/theano/
    • 딥 러닝 업계에서는 유명한 Bengio 교수 하에서 만들어진 Python과의 통합 프레임 워크. 꽤 오래되었습니다.
    • 한 시대를 쌓아 올린 이미지가있는 라이브러리이지만, 올해 들어 1.0 버전 출시와 함께 [개발 중지가 발표] (https://groups.google.com/forum/m/#!topic/theano- users / 7Poq8BZutbY)되었습니다.
  • neon
  • NNabla (Neural Network Library)

Graph IR

모델을 작성하기위한 중간 표현 형식입니다. 보통은 각 프레임 워크마다 고유의 포맷을 정하고 있습니다 만, 여기에서는 프레임 워크 독립적 인 표준 포맷을 소개합니다.

  • ONNX (Open Neural Network Exchange)
    • by Facebook and Microsoft
    • https://github.com/onnx/onnx
    • Facebook과 MS가 제창하고있는 표준 포맷. 처음으로 공식 지원되는 것은 Pytorch, Caffe2, CNTK. 이러한 프레임 워크의 출력을 ONNX 통해 서로 교환 할 수도 있습니다.
    • 최근에는 Intel (Nervana), AWS 기타 다수의 기업이 공식 지원을 표명했다. ONNX에서 MXNet, TensorFlow에 가져올 수있게되어 있습니다.
    • 현재 최신 버전은 점점 업데이트되고 있으며, 사양이 점점 바뀌고 있습니다. 일반인들이 안심하고 표준 포맷으로 사용할 수있게되기 위해서는 아직 시간 걸릴 것.
  • NNEF (Neural Network Exchange Format)
    • by Khronos Group
    • https://www.khronos.org/nnef
    • OpenGL 등을 정하는 표준화 단체 Khronos Group이 제창하는 표준 형식입니다.
    • 다만 현재는 보도 자료에서 표명되고있을뿐, 구현 및 사양의 종류는 아직 일절 공개되지 않습니다.
  • CoreML

Backend stack

DNN 모델을로드 최적화 고속화하고, 다양한 플랫폼에 배포 할 라이브러리. 주목하고있는 사람이 적은 (Qiita에 기사 라든지별로 없다)하지만 여기도 다양한 것이 제창되고 있습니다.

끝으로

과거에 작성된 동일한 프레임 워크 목록 기사와 목록이있는 것 같아서 그것을 소개해 둡니다.

- [Deep Learning Frameworks | NVIDIA Developer (https://developer.nvidia.com/deep-learning-frameworks)
- [Top Deep Learning Projects (https://github.com/aymericdamien/TopDeepLearning)
- [Top 10 Deep Learning Frameworks (https://datahub.packtpub.com/deep-learning/top-10-deep-learning-frameworks/)
- [Comparison of deep learning software - Wikipedia (https://en.wikipedia.org/wiki/Comparison_of_deep_learning_software)
- [Deep Learning frameworks : a review before finishing 2016] (https://buzzrobot.com/deep-learning-frameworks-a-review-before-finishing-2016-5b3ab4010b06)

는!