SlideShare una empresa de Scribd logo
1 de 54
딥러닝 프레임워크 비교
송준이
socurites@aidentify.io
목차
• 딥러닝 프레임워크 종류
• 딥러닝 프레임워크 비교 Sheet
– 주요 특성 관점
– Tech. Stack 관점
– 설계 관점
• 딥러닝 프레임워크 사용 예시
딥러닝 프레임워크 종류
딥러닝 프레임워크 Timeline
2010 2013 2014 2015 2016 2017
https://github.com/Theano/Theano/blob/master/HISTORY.txt
https://www.embedded-vision.com/industry-analysis/technical-articles/caffe-deep-learning-framework-interview-core-developers
https://www.preferred-networks.jp/en/news/8531
https://www.microsoft.com/en-us/research/blog/microsoft-computational-network-toolkit-offers-most-efficient-distributed-deep-
learning-computational-performance/github/#sm.0000qz6ljpzl3fnrxby1iwpo5v5rf
https://www.wired.com/2014/06/skymind-deep-learning/
https://twitter.com/fchollet/status/581627598741999616
https://github.com/dmlc/mxnet/issues?q=is%3Aissue+is%3Aopen+sort%3Acreated-asc
https://www.wired.com/2015/11/google-open-sources-its-artificial-intelligence-engine/
https://github.com/Theano/Theano/blob/master/HISTORY.txt
https://www.facebook.com/yann.lecun/posts/10152142434782143
https://techcrunch.com/2017/04/18/facebook-open-sources-caffe2-its-flexible-deep-learning-framework-of-choice/
(Nov.)
(Dec.)
(Jul.)
(Jun.)
On GitHub
(Debut: Apr. ‘2015)
(Oct.)
(Jun.)
(Nov.)
(Jan.) (Apr.)(Mar.)
• 주체
– Created by
• Yangqing Jia (http://daggerfs.com/)
– UC Berkerey 컴퓨터 과학 Ph.D. / 지도 교수(Trevor Darrell, BAIR 책임자)
– 구글 브레인 TensorFlow 프로젝트 참여
– 페이스북 리서치 사이언티트
• Evan Shellhamer (http://imaginarynumber.net/)
– UC Berkerey 컴퓨터 과학 Ph.D. / 지도 교수(Trevor Darrell, BAIR 책임자)
– Maintained by
• BAIR(Berkeley Artificial Intelligence Research, http://bair.berkeley.edu/)
• 릴리즈
– ‘2013: DeCAF (https://arxiv.org/abs/1310.1531)
– Dec. ‘2013: Caffe v0
• 적용 사례
– Facebook, Adobe, Microsoft, Samsung, Flickr, Tesla, Yelp, Pinterest, etc.
• Motivation
– ‘2012 ILSVRC에서 발표한 AlexNet을 재현
– DNN 정의/훈련/배포하기 위한 범용 F/W 구현
Caffe
http://caffe.berkeleyvision.org/
Caffe
• 특징
– 장점
• 이미지 처리에 특화
• 프로그래밍하는 대신 설정 파일로 학습 방법을 정의
• Caffe Model Zoo를 통한 다양한 Pre-trained Model 제공
• 이미지 기반 참조 모델의 de facto standard
– 단점
• 이미지 이외의 텍스트, 사운드 등의 데이터 처리에는 부적합
• 유연하지 못한 API
– 새로운 기능 추가의 경우 C++/CUDA로 직접 구현 필요
• 문서화가 잘 안되어 있음
http://caffe.berkeleyvision.org/
Caffe2(http://caffe2.ai/) 출시
- By Facebook
- Android 지원, iOS 지원(예정)
- 분산 처리 지원
F/W 주체 플랫폼 모바일 언어 인터페이스 OpenMP CUDA OpenCL 멀티GPU 분산
Caffe BAIR
Linux,
Mac
- C++
Python,
MATLAB
Y
Y
- Y
• 주체
– Created & Maintained by
• Preferred Networks, Inc.(https://www.preferred-networks.jp/ja/)
• 릴리즈
– Jun. ‘2015
• 적용 사례
– Toyota motors, Panasonic
(https://www.wsj.com/articles/japan-seeks-tech-revival-with-artificial-
intelligence-1448911981)
– FANUC
(http://www.fanucamerica.com/FanucAmerica-news/Press-
releases/PressReleaseDetails.aspx?id=79)
• Motivation
– Define-by-Run 아키텍처
• 실행 시점에 네트워크 그래프가 정의됨
• 복잡한 네트워크 정의를 보다 유연하게 지원할 수 있게 함
Chainer
http://docs.chainer.org/en/latest/index.html
Chainer
• 특징
– 장점
• 빠른 속도
출처: Performance of Distributed Deep Learning using ChainerMN
http://chainer.org/general/2017/02/08/Performance-of-Distributed-Deep-Learning-Using-ChainerMN.html
http://docs.chainer.org/en/latest/index.html
F/W 주체 플랫폼 모바일 언어 인터페이스 OpenMP CUDA OpenCL 멀티GPU 분산
Chainer
Preferred
Networks
Linux - Python Python -
Y
- Y Y
Chainer
• 특징
– 장점
• Define-by-Run 모델 기반의 유연성 제공
– 단점
• 협소한 사용자 커뮤니티
출처: Complex Neural networks made easy by Chainer
https://www.oreilly.com/learning/complex-neural-networks-made-easy-by-chainer
[Define-and-Run (TensorFlow)] [Define-by-Run (Chainer, PyTorch)]
http://docs.chainer.org/en/latest/index.html
• 주체
– Created & Maintained by
• Microsoft Research
• 릴리즈
– Jan. ‘2016
• 적용 사례
– Microsoft’s speech recognition engine
– Skype’s Translator
• Motivation
– Efficient performance on distributed environments
CNTK
https://www.microsoft.com/en-us/research/product/cognitive-toolkit/
https://www.microsoft.com/en-us/research/blog/microsoft-computational-network-toolkit-offers-most-efficient-distributed-deep-learning-computational-performance/
CNTK
• 특징
– 장점
• 처리 성능의 linear scaling
– 단점
• 협소한 사용자 커뮤니티
https://www.microsoft.com/en-us/research/product/cognitive-toolkit/
출처: Microsoft Computational Network Toolkit offers most efficient distributed deep learning computational performance
https://www.microsoft.com/en-us/research/blog/microsoft-computational-network-toolkit-offers-most-efficient-distributed-
deep-learning-computational-performance/
[2015. 7]
F/W 주체 플랫폼 모바일 언어 인터페이스 OpenMP CUDA OpenCL 멀티GPU 분산
CNTK Microsoft
Linux,
Windows
- C++ Python, C++ Y Y - Y Y
• 주체
– Created by
• Adam Gibson @Skymind (CTO)
• Chris Nicholson @Skymind (CEO)
– Maintained by
• Skymind (https://skymind.ai/)
• 릴리즈
– Jun. ‘2014
• 적용 사례
– 은행 Fraud Detection 연구 파트너쉽 with Nextremer in Japan
(https://skymind.ai/press/nextremer)
• Motivation
– 가장 많은 프로그래머를 보유하는 Java 기반의 딥러닝 프레임워크 개발
– 추론엔진에 대해 엔터프라이즈 서비스급 안정성을 보장
DL4J
https://deeplearning4j.org/
DL4J
• 특징
– 장점
• Java를 기반으로 한 쉬운 이식성 및 엔터프라이즈 시스템 수준의 안전성 제공
• Spark 기반의 분산 처리 지원
• 문서화가 잘 되어 있음 / 학습 디버깅을 위한 시각화 도구 DL4J UI 제공
• 기업 대상 기술 컨설팅 제공
– 단점
• Java 언어로 인한 학습 및 테스트 과정의 번거로움
• 협소한 사용자 커뮤니티
• 부족한 예제
https://deeplearning4j.org/
F/W 주체 플랫폼 모바일 언어 인터페이스 OpenMP CUDA OpenCL 멀티GPU 분산
DL4J SkyMind
Cross-
platform
(JVM)
Android Java
Java, Scala,
Python
Y Y
- Y
Y
(Spark)
• 주체
– Created & Maintained by
• Francois Chollet @Google
• 릴리즈
– Mar. ‘2015
• 적용 사례
– TensorFlow (http://www.fast.ai/2017/01/03/keras)
• Motivation
– Provide a high-level interface based on deep learning framework like
Theano, TensorFlow
– Easy to use
– 최소화, 단순화, 모듈화
– 다양한 딥러닝 프레임워크와의 쉬운 연동
Keras
https://keras.io/
Keras
• 특징
– 장점
• 직관적인 API 인터페이스
• Caffe, Torch, TensorFlow 등 다양한 딥러닝 프레임워크 모델 import 기능 제공
• 문서화가 잘되어 있음
– 단점
• 기반 Theano 프레임워크에서 문제가 발생시 debugging이 어려움
https://keras.io/
F/W 주체 플랫폼 모바일 언어 인터페이스 OpenMP CUDA OpenCL 멀티GPU 분산
Keras
François
Chollet
Linux,
Mac,
Windows
- Python Python
Y(Theano)
N(TF)
Y
- Y
• 주체
– Created by
• CMU (http://www.cs.cmu.edu/~muli/file/mxnet-learning-sys.pdf)
– Maintained by
• DMLC(Distributed Machine Learning Community)
– CMU, NYU, NVIDIA, Baidu, Amazon, etc.
• 릴리즈
– Oct. ‘2015
• 적용 사례
– AWS (https://www.infoq.com/news/2016/11/amazon-mxnet-deep-learning)
• Motivation
– Support for Mixed Programming Model: Imperative & Symbolic
– Support for Portability: Desktops, Clusters, Mobiles, etc.
– Support for Multiple Languages: C++, R, Python, Matlab, Javascript, etc.
MXNet
http://mxnet.io/
MXNet
• 특징
– 장점
• 다양한 프로그래밍 인터페이스 제공
• 모바일 지원
• 빠르게 발전
• low-level / high-level API 모두 제공
• Imperative / Graph 프로그래밍 모델 모두 지원
http://mxnet.io/
F/W 주체 플랫폼 모바일 언어 인터페이스 OpenMP CUDA OpenCL 멀티GPU 분산
MXNet DMLC
Linux,
Mac,
Windows,
Javascript
Android,
iOS
C++
C++, Python,
Julia, MATLAB,
JavaScript, Go,
R, Scala, Perl
Y
Y
- Y Y
MXNet
– 단점
• 다소 처리 속도 느림
http://mxnet.io/
출처: How to run deep neural networks on weak hardware
https://www.linkedin.com/pulse/how-run-deep-neural-networks-
weak-hardware-dmytro-prylipko
출처: Benchmarking State-of-the-Art Deep Learning
Software Tools
http://dlbench.comp.hkbu.edu.hk/?v=v7
• 주체
– Created & Maintained by
• Google Brain
• 릴리즈
– Nov. ‘2015
• 적용 사례
– Google
• Search Signals (https://www.bloomberg.com/news/articles/2015-10-26/google-
turning-its-lucrative-web-search-over-to-ai-machines)
• Email auto-responder (https://research.googleblog.com/2015/11/computer-
respond-to-this-email.html)
• Photo Search (https://techcrunch.com/2015/11/09/google-open-sources-the-
machine-learning-tech-behind-google-photos-search-smart-reply-and-
more/#.t38yrr8:fUIZ)
• Motivation
– It’s Google
TensorFlow
https://www.tensorflow.org/
TensorFlow
• 특징
– 장점
• 추상화된 그래프 모델
• 학습 디버깅을 위한 시각화 도구 TensorBoard 제공
• 모바일 지원
• low-level / high-level API 모두 제공
https://www.tensorflow.org/
F/W 주체 플랫폼 모바일 언어 인터페이스 OpenMP CUDA OpenCL 멀티GPU 분산
TensorFlow Google
Linux,
Mac,
Windows
Android,
iOS
C++,
Python
Python,
C/C++, Java,
Go
N
Y
- Y Y
TensorFlow
– 장점
• 방대한 사용자 커뮤니티
https://www.tensorflow.org/
출처: Machine Learning Frameworks Comparison
https://blog.paperspace.com/which-ml-framework-should-i-use
TensorFlow
– 단점
• Define-and-Run 모델 / 런타임에 그래프 변경 안됨
• Torch에 비해 느림
https://www.tensorflow.org/
출처: soumith/convnet-benchmarks
https://github.com/soumith/convnet-benchmarks
• 주체
– Created by
• James Bergstra, Frederic Bastien, etc.
(http://www.iro.umontreal.ca/~lisa/pointeurs/theano_scipy2010.pdf_
– Maintained by
• LISA lab @ Université de Montréal
• 릴리즈
– Nov ‘2010
• 적용 사례
– Keras
– Lasagne
– Blocks
• Motivation
– There’s any.
Theano
http://deeplearning.net/software/theano/index.html
Theano
• 특징
– 장점
• low-level을 제어할 수 있는 API
• 추상화된 그래프 모델 지원
• 빠르고 유연함
• Keras, Lasagne, Blocks 등 Wrapper 프레임워크의 기반 프레임워크
– 단점
• low-level API의 복잡성
http://deeplearning.net/software/theano/index.html
F/W 주체 플랫폼 모바일 언어 인터페이스 OpenMP CUDA OpenCL 멀티GPU 분산
Theano
Université
de
Montréal
Linux,
Mac,
Windows
- Python Python
Y Y
- Y
• 주체
– Created & Maintained by
• Ronan Collobert: Research Scientist @ Facebook
• Clément Farabet: Senior Software Engineer @ Twitter
• Koray Kavukcuoglu: Research Scientist @ Google DeepMind
• Soumith Chinatala: Research Engineer @ Facebook
• 릴리즈
– Jul. ‘2014
• 적용 사례
– Facebook, Google, Twitter, Element Inc., etc.
• Motivation
– Unlike Caffe, for research rather than mass market
– Unlike Theano, easy to use based on imperative model rather than
symbolic model
Torch
http://torch.ch/
Torch
• 특징
– 장점
• 알고리즘 모듈화가 잘 되어 있어 사용이 용이
• 다양한 데이터 전처리 및 시각화 유틸리티 제공
• 간단한 Lua 프로그래밍 구문
• Imperative 프로그래밍 모델 기반의 직관적인 API
• OpenCL 지원
• 모바일 지원
– 단점
• 파이썬 인터페이스 없음(PyTorch 별도 존재)
• 문서화가 잘 안되어 있음
• 협소한 사용자 커뮤니티
• 심볼릭 모델 미제공
• 상용 어플레케이션이 아니라 연구용으로 적합
http://torch.ch/
F/W 주체 플랫폼 모바일 언어 인터페이스 OpenMP CUDA OpenCL 멀티GPU 분산
Torch
Ronan,
Clément,
Koray,
Soumith
Linux,
Mac,
Windows
Android,
iOS
C, Lua Lua Y
Y
Y Y
Not
officiall
y
딥러닝 프레임워크 비교 Sheet
오픈소스 딥러닝 프레임워크
• 비교 기준
– 주요 특성
• 설치 플랫폼
• 모바일 지원
• 개발 언어
• 프로그래밍 인터페이스
• OpenMP 지원
• CUDA / OpenCL 지원
• 멀티 노드 지원
• 프로그래밍 모델
– Tech. Stack
• 시각화
• 워크플로우 관리
• Computational Graph(CG) 관리
• Multi-dimensional array 처리
• Numerical computation
• Computational Device
오픈소스 딥러닝 프레임워크
• 비교 기준
– 설계
• (Which) Interface Language
• (How) Compute backprop
• (How) Update parameters
• (When) Run user codes
• (How) Optimize CG
• (How) Scale up training
딥러닝 프레임워크 Sheet – 주요 특성
F/W 주체 플랫폼 모바일 언어 인터페이스 OpenMP CUDA OpenCL 멀티GPU 분산
Caffe BAIR
Linux,
Mac
- C++
Python,
MATAB
Y
Y
- Y
Chainer
Preferred
Networks
Linux - Python Python -
Y
- Y Y
CNTK Microsoft
Linux,
Windows
- C++ Python, C++ Y Y - Y Y
DL4J SkyMind
Cross-
platform
(JVM)
Android Java
Java, Scala,
Python
Y Y
- Y
Y
(Spark)
Keras
François
Chollet
Linux,
Mac,
Windows
- Python Python
Y(Theano)
N(TF)
Y
- Y
MXNet DMLC
Linux,
Mac,
Windows,
Javascript
Android,
iOS
C++
C++, Python,
Julia, MATLAB,
JavaScript, Go,
R, Scala, Perl
Y
Y
- Y Y
TensorFlow Google
Linux,
Mac,
Windows
Android,
iOS
C++,
Python
Python,
C/C++, Java,
Go
N
Y
- Y Y
Theano
Université
de
Montréal
Linux,
Mac,
Windows
- Python Python
Y Y
- Y
Torch
Ronan,
Clément,
Koray,
Soumith
Linux,
Mac,
Windows
Android,
iOS
C, Lua Lua Y
Y
Y Y
Not
officiall
y
출처: Comparison of deep learning software
https://en.wikipedia.org/wiki/Comparison_of_deep_learning_software#cite_note-29
딥러닝 프레임워크 Sheet – 주요 특성
출처: Getting Started with Dep Learning
https://svds.com/getting-started-deep-learning/
딥러닝 프레임워크 Sheet – Tech. Stack
• 딥러닝 프레임워크의 주요 Tech. Stack
출처: DLIF: Common design of neural network implementations
https://www.dropbox.com/s/qfz34ba3ftuli6b/AAAI2017-2-0203.pdf
딥러닝 프레임워크 Sheet
Chainer
Numpy
BLAS
시각화
워크플로우 관리
CG 관리
Multi-dimensional
Array 처리
Numerical
computation
CPU
Computational
Device
시각화
워크플로우 관리
CG 관리
Multi-dimensional
Array 처리
Numerical
computation
Computational
Device
[Caffe] [Chainer]
[CNTK] [DL4J]
Cupy
cuBLAS
GPU
cuDNN
Caffe
blob
BLAS
CPU
cuBLAS
GPU
cuDNN
CNTK
BLAS
CPU
Tensor
cuBLAS
GPU
cuDNN
DL4J
ND4J
BLAS
CPU
cuBLAS
GPU
cuDNN
TensorBoard DL4J UI
출처: DLIF: Common design of neural network implementations
https://www.dropbox.com/s/qfz34ba3ftuli6b/AAAI2017-2-0203.pdf
딥러닝 프레임워크 Sheet
시각화
워크플로우 관리
CG 관리
Multi-dimensional
Array 처리
Numerical
computation
Computational
Device
시각화
워크플로우 관리
CG 관리
Multi-dimensional
Array 처리
Numerical
computation
Computational
Device
[MXNet] [TensorFlow]
[Theano]
Tensor
BLAS
CPU
cuBLAS
GPU
cuDNN
visdom
TensorFlow
TF slim
Keras, Lasgane, Blocks, etc
Theano
BLAS
CPU
Numpy libgpuarray
CUDA, OpenCL
CUDA Toolkit
GPU
[Torch]
MXNet
mxnet.ndarray
BLAS
CPU
cuBLAS
GPU
cuDNN
Torch
Tensor
BLAS
CPU
cuBLAS
GPU
cuDNN
mxnet.viz TensorBoard
출처: DLIF: Common design of neural network implementations
https://www.dropbox.com/s/qfz34ba3ftuli6b/AAAI2017-2-0203.pdf
딥러닝 프레임워크 Sheet – 설계
• 딥러닝 프레임워크의 설계 전략
출처: DLIF: Differences of deep learning frameworks
https://www.dropbox.com/s/6sbt9jmrwg414c8/AAAI2017-3-0331.pdf
딥러닝 프레임워크 Sheet – 설계
출처: DLIF: Differences of deep learning frameworks
https://www.dropbox.com/s/6sbt9jmrwg414c8/AAAI2017-3-0331.pdf
딥러닝 프레임워크 Sheet – 설계
Write NNs – in Which Languges?
Declarative
Config. File
High portability Low flexibility Caffe
Procedural
Scripting
High flexibility Low portability Others
Compute backprop – How?
Graph Easy and simple to
implement
Low flexibility Torch
Caffe
Chainer
Extended Graph High flexibility
Backprop extended
graph에도 오퍼레이
션 가능(eg.
Backrprop of
backprop)
Implementation gets
complicated
Theano
MXNet
TensorFlow
출처: DLIF: Differences of deep learning frameworks
https://www.dropbox.com/s/6sbt9jmrwg414c8/AAAI2017-3-0331.pdf
딥러닝 프레임워크 Sheet – 설계
Update parameters – How to represent?
Parameters as part of operator nodes Intuitiveness Low flexibility and
reusability
Torch
Caffe
MXNet
Parameters as separate nodes in the graph High flexibility and
reusability
We can apply any
operations that can
be done for
variable nodes to
the parameters
Theano
Chainer
TensorFlow
출처: DLIF: Differences of deep learning frameworks
https://www.dropbox.com/s/6sbt9jmrwg414c8/AAAI2017-3-0331.pdf
딥러닝 프레임워크 Sheet – 설계
Update parameters – How to update?
by routines outside of the graph Easy to
impelement
Low integrity Torch
Caffe
MXNet
Chainer
As a part of the graphs High integrity Implement gets
complicated
Theano
TensorFlow
출처: DLIF: Differences of deep learning frameworks
https://www.dropbox.com/s/6sbt9jmrwg414c8/AAAI2017-3-0331.pdf
딥러닝 프레임워크 Sheet – 설계
Run user codes – When?
Static CG
(Define-and-run)
Easy to optimize
the computations
Low flexibility and
usability
Others
Dynamic CG
(Define-by-run)
High flexibility and
usability
Users can build
different graphs for
different iterations
using language
syntaxes
Hard to optimize the
computations
Difficult to do
optimization every
iteration due to its
computational cost
Chainer
출처: DLIF: Differences of deep learning frameworks
https://www.dropbox.com/s/6sbt9jmrwg414c8/AAAI2017-3-0331.pdf
딥러닝 프레임워크 Sheet – 설계
Optimize CG – How to extend current F/W?
Transform the graph to optimize the computations Theano
TensorFlow
Provide easy ways to write custom operator nodes Torch
MXNet
Chainer
Chainer
: also provides ways to write custom CUDA
kernels with JIT compilation
출처: DLIF: Differences of deep learning frameworks
https://www.dropbox.com/s/6sbt9jmrwg414c8/AAAI2017-3-0331.pdf
Scale up training – How?
Multi-GPU All
Distributed Computations MXNet
TensorFlow
CNTK
Chainer
DL4J
Torch(Not Officially)
딥러닝 프레임워크 사용 예시
- MNIST -
Caffe
https://github.com/BVLC/caffe/tree/master/examples/mnist
모델 정의 학습 정의
Chainer
https://github.com/pfnet/chainer/tree/master/examples/mnist
모델 정의
학습 정의
CNTK
https://www.microsoft.com/en-us/research/product/cognitive-toolkit/
모델 정의 학습 정의
DL4J
https://github.com/deeplearning4j/dl4j-examples/tree/master/dl4j-examples/src/main/java/org/deeplearning4j/examples/feedforward
모델 정의
학습 정의
Keras
https://github.com/fchollet/keras/blob/master/examples/mnist_mlp.py
모델 정의
학습 정의
MXNet
http://mxnet.io/tutorials/python/mnist.html
모델 정의
학습 정의
TensorFlow
https://github.com/aymericdamien/TensorFlow-Examples/
모델 정의
학습 정의
Torch
https://github.com/socurites/torch-book-examples/tree/master/model/chap1
모델 정의
학습 정의
References
• Comparison of deep learning software
https://en.wikipedia.org/wiki/Comparison_of_deep_learning_software#cit
e_note-29
• Deep Learning Frameworks
https://developer.nvidia.com/deep-learning-frameworks
• Comparing Frameworks: Deeplearning4j, Torch, Theano, TensorFlow,
Caffe, Paddle, MxNet, Keras & CNTK
https://deeplearning4j.org/compare-dl4j-torch7-pylearn#caffe
• Performance of Distributed Deep Learning using ChainerMN
http://chainer.org/general/2017/02/08/Performance-of-Distributed-
Deep-Learning-Using-ChainerMN.html
• Comparison with Other Frameworks
http://docs.chainer.org/en/latest/comparison.html
• Complex Neural networks made easy by Chainer
https://www.oreilly.com/learning/complex-neural-networks-made-easy-
by-chainer
References
• How is PyTorch different from Tensorflow?
https://hackernoon.com/how-is-pytorch-different-from-tensorflow-
2c90f44747d6
• How to run deep neural networks on weak hardware
https://www.linkedin.com/pulse/how-run-deep-neural-networks-weak-
hardware-dmytro-prylipko
• Deep Learning frameworks: a review before finishing 2016
https://medium.com/@ricardo.guerrero/deep-learning-frameworks-a-
review-before-finishing-2016-5b3ab4010b06
• Microsoft Computational Network Toolkit offers most efficient
distributed deep learning computational performance
https://www.microsoft.com/en-us/research/blog/microsoft-
computational-network-toolkit-offers-most-efficient-distributed-deep-
learning-computational-performance/
References
• Machine Learning Frameworks Comparison
https://blog.paperspace.com/which-ml-framework-should-i-use/
• soumith/convnet-benchmarks
https://github.com/soumith/convnet-benchmarks
• Getting Started with Deep Learning
https://svds.com/getting-started-deep-learning/
• Benchmarking State-of-the-Art Deep Learning Software Tools
http://dlbench.comp.hkbu.edu.hk/?v=v7
• DLIF: Common design of neural network implementations
https://www.dropbox.com/s/qfz34ba3ftuli6b/AAAI2017-2-0203.pdf
• DLIF: Differences of deep learning frameworks
https://www.dropbox.com/s/6sbt9jmrwg414c8/AAAI2017-3-0331.pdf
• Complex neural networks made easy by Chainer
https://www.oreilly.com/learning/complex-neural-networks-made-easy-
by-chainer
References
• Microsoft Computational Network Toolkit offers most efficient
distributed deep learning computational performance
https://www.microsoft.com/en-us/research/blog/microsoft-
computational-network-toolkit-offers-most-efficient-distributed-deep-
learning-computational-performance/
• Torch vs Theano
http://fastml.com/torch-vs-theano/

Más contenido relacionado

La actualidad más candente

ネットワークエンジニアはどこでウデマエをみがくのか?
ネットワークエンジニアはどこでウデマエをみがくのか?ネットワークエンジニアはどこでウデマエをみがくのか?
ネットワークエンジニアはどこでウデマエをみがくのか?
Yuya Rin
 

La actualidad más candente (20)

cnn ppt.pptx
cnn ppt.pptxcnn ppt.pptx
cnn ppt.pptx
 
XMPPの紹介
XMPPの紹介XMPPの紹介
XMPPの紹介
 
PLC制御の概要とロボコンへの利用について
PLC制御の概要とロボコンへの利用についてPLC制御の概要とロボコンへの利用について
PLC制御の概要とロボコンへの利用について
 
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
 
_基幹系システムの機能拡張:コンポーザブルERP・マイクロERP資料.pdf
_基幹系システムの機能拡張:コンポーザブルERP・マイクロERP資料.pdf_基幹系システムの機能拡張:コンポーザブルERP・マイクロERP資料.pdf
_基幹系システムの機能拡張:コンポーザブルERP・マイクロERP資料.pdf
 
Computer Vision with Deep Learning
Computer Vision with Deep LearningComputer Vision with Deep Learning
Computer Vision with Deep Learning
 
自宅ネットワーク構築
自宅ネットワーク構築自宅ネットワーク構築
自宅ネットワーク構築
 
PCCC22:インテル株式会社 テーマ1「インテル® Agilex™ FPGA デバイス 最新情報」
PCCC22:インテル株式会社 テーマ1「インテル® Agilex™ FPGA デバイス 最新情報」PCCC22:インテル株式会社 テーマ1「インテル® Agilex™ FPGA デバイス 最新情報」
PCCC22:インテル株式会社 テーマ1「インテル® Agilex™ FPGA デバイス 最新情報」
 
Deep-Learning-2017-Lecture6RNN.ppt
Deep-Learning-2017-Lecture6RNN.pptDeep-Learning-2017-Lecture6RNN.ppt
Deep-Learning-2017-Lecture6RNN.ppt
 
Win32 APIをてなずけよう
Win32 APIをてなずけようWin32 APIをてなずけよう
Win32 APIをてなずけよう
 
DETR ECCV20
DETR ECCV20DETR ECCV20
DETR ECCV20
 
katagaitaictf11_misc_ysk
katagaitaictf11_misc_yskkatagaitaictf11_misc_ysk
katagaitaictf11_misc_ysk
 
ネットワークエンジニアはどこでウデマエをみがくのか?
ネットワークエンジニアはどこでウデマエをみがくのか?ネットワークエンジニアはどこでウデマエをみがくのか?
ネットワークエンジニアはどこでウデマエをみがくのか?
 
Recurrent Neural Network
Recurrent Neural NetworkRecurrent Neural Network
Recurrent Neural Network
 
20161210_第8回jenkins勉強会
20161210_第8回jenkins勉強会20161210_第8回jenkins勉強会
20161210_第8回jenkins勉強会
 
Introduction to TensorFlow
Introduction to TensorFlowIntroduction to TensorFlow
Introduction to TensorFlow
 
PHPで使うIPv6の実際
PHPで使うIPv6の実際PHPで使うIPv6の実際
PHPで使うIPv6の実際
 
PR-120: ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture De...
PR-120: ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture De...PR-120: ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture De...
PR-120: ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture De...
 
한국어 MRC 연구를 위한 표준 데이터셋(KorQuAD) 소개 및 B2B를 위한 MRC 연구 사례
한국어 MRC 연구를 위한 표준 데이터셋(KorQuAD) 소개 및 B2B를 위한 MRC 연구 사례한국어 MRC 연구를 위한 표준 데이터셋(KorQuAD) 소개 및 B2B를 위한 MRC 연구 사례
한국어 MRC 연구를 위한 표준 데이터셋(KorQuAD) 소개 및 B2B를 위한 MRC 연구 사례
 
未来(あす)Xamlの1msに泣かないために
未来(あす)Xamlの1msに泣かないために未来(あす)Xamlの1msに泣かないために
未来(あす)Xamlの1msに泣かないために
 

Destacado

Destacado (9)

Tensorflow vs MxNet
Tensorflow vs MxNetTensorflow vs MxNet
Tensorflow vs MxNet
 
딥러닝(Deep Learing) using DeepDetect
딥러닝(Deep Learing) using DeepDetect딥러닝(Deep Learing) using DeepDetect
딥러닝(Deep Learing) using DeepDetect
 
응답하라 반응형웹 - 3. bootstrap
응답하라 반응형웹 - 3. bootstrap응답하라 반응형웹 - 3. bootstrap
응답하라 반응형웹 - 3. bootstrap
 
마인즈랩 사업소개 20151031_v1.0
마인즈랩 사업소개 20151031_v1.0마인즈랩 사업소개 20151031_v1.0
마인즈랩 사업소개 20151031_v1.0
 
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
 
마인즈랩 회사소개서 V1.5
마인즈랩 회사소개서 V1.5마인즈랩 회사소개서 V1.5
마인즈랩 회사소개서 V1.5
 
Differentiable Neural Computer
Differentiable Neural ComputerDifferentiable Neural Computer
Differentiable Neural Computer
 
알아두면 쓸데있는 신기한 강화학습 NAVER 2017
알아두면 쓸데있는 신기한 강화학습 NAVER 2017알아두면 쓸데있는 신기한 강화학습 NAVER 2017
알아두면 쓸데있는 신기한 강화학습 NAVER 2017
 
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
 

Similar a 딥러닝프레임워크비교

Similar a 딥러닝프레임워크비교 (20)

Apache Deep Learning 201
Apache Deep Learning 201Apache Deep Learning 201
Apache Deep Learning 201
 
Apache Deep Learning 201 - Barcelona DWS March 2019
Apache Deep Learning 201 - Barcelona DWS March 2019Apache Deep Learning 201 - Barcelona DWS March 2019
Apache Deep Learning 201 - Barcelona DWS March 2019
 
Apache Deep Learning 101 - ApacheCon Montreal 2018 v0.31
Apache Deep Learning 101 - ApacheCon Montreal 2018 v0.31Apache Deep Learning 101 - ApacheCon Montreal 2018 v0.31
Apache Deep Learning 101 - ApacheCon Montreal 2018 v0.31
 
After summit catch up
After summit catch upAfter summit catch up
After summit catch up
 
Stackato v6
Stackato v6Stackato v6
Stackato v6
 
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
 
Amazon Deep Learning
Amazon Deep LearningAmazon Deep Learning
Amazon Deep Learning
 
Apereo OAE - Bootcamp
Apereo OAE - BootcampApereo OAE - Bootcamp
Apereo OAE - Bootcamp
 
DevOps-Roadmap
DevOps-RoadmapDevOps-Roadmap
DevOps-Roadmap
 
A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, & Deep Learning ...
A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, & Deep Learning ...A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, & Deep Learning ...
A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, & Deep Learning ...
 
A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, and Deep Learnin...
A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, and Deep Learnin...A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, and Deep Learnin...
A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, and Deep Learnin...
 
Data Con LA 2018 - A Tale of DL Frameworks: TensorFlow, Keras, & Deep Learnin...
Data Con LA 2018 - A Tale of DL Frameworks: TensorFlow, Keras, & Deep Learnin...Data Con LA 2018 - A Tale of DL Frameworks: TensorFlow, Keras, & Deep Learnin...
Data Con LA 2018 - A Tale of DL Frameworks: TensorFlow, Keras, & Deep Learnin...
 
Stackato v4
Stackato v4Stackato v4
Stackato v4
 
Stackato
StackatoStackato
Stackato
 
Create great cncf user base from lessons learned from other open source com...
Create great cncf user base from   lessons learned from other open source com...Create great cncf user base from   lessons learned from other open source com...
Create great cncf user base from lessons learned from other open source com...
 
AI and Spark - IBM Community AI Day
AI and Spark - IBM Community AI DayAI and Spark - IBM Community AI Day
AI and Spark - IBM Community AI Day
 
Enterprise Deep Learning with DL4J
Enterprise Deep Learning with DL4JEnterprise Deep Learning with DL4J
Enterprise Deep Learning with DL4J
 
Apache deep learning 202 Washington DC - DWS 2019
Apache deep learning 202   Washington DC - DWS 2019Apache deep learning 202   Washington DC - DWS 2019
Apache deep learning 202 Washington DC - DWS 2019
 
Stackato v2
Stackato v2Stackato v2
Stackato v2
 
Apache Deep Learning 201 - Philly Open Source
Apache Deep Learning 201 - Philly Open SourceApache Deep Learning 201 - Philly Open Source
Apache Deep Learning 201 - Philly Open Source
 

Último

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Último (20)

Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 

딥러닝프레임워크비교

  • 2. 목차 • 딥러닝 프레임워크 종류 • 딥러닝 프레임워크 비교 Sheet – 주요 특성 관점 – Tech. Stack 관점 – 설계 관점 • 딥러닝 프레임워크 사용 예시
  • 4. 딥러닝 프레임워크 Timeline 2010 2013 2014 2015 2016 2017 https://github.com/Theano/Theano/blob/master/HISTORY.txt https://www.embedded-vision.com/industry-analysis/technical-articles/caffe-deep-learning-framework-interview-core-developers https://www.preferred-networks.jp/en/news/8531 https://www.microsoft.com/en-us/research/blog/microsoft-computational-network-toolkit-offers-most-efficient-distributed-deep- learning-computational-performance/github/#sm.0000qz6ljpzl3fnrxby1iwpo5v5rf https://www.wired.com/2014/06/skymind-deep-learning/ https://twitter.com/fchollet/status/581627598741999616 https://github.com/dmlc/mxnet/issues?q=is%3Aissue+is%3Aopen+sort%3Acreated-asc https://www.wired.com/2015/11/google-open-sources-its-artificial-intelligence-engine/ https://github.com/Theano/Theano/blob/master/HISTORY.txt https://www.facebook.com/yann.lecun/posts/10152142434782143 https://techcrunch.com/2017/04/18/facebook-open-sources-caffe2-its-flexible-deep-learning-framework-of-choice/ (Nov.) (Dec.) (Jul.) (Jun.) On GitHub (Debut: Apr. ‘2015) (Oct.) (Jun.) (Nov.) (Jan.) (Apr.)(Mar.)
  • 5. • 주체 – Created by • Yangqing Jia (http://daggerfs.com/) – UC Berkerey 컴퓨터 과학 Ph.D. / 지도 교수(Trevor Darrell, BAIR 책임자) – 구글 브레인 TensorFlow 프로젝트 참여 – 페이스북 리서치 사이언티트 • Evan Shellhamer (http://imaginarynumber.net/) – UC Berkerey 컴퓨터 과학 Ph.D. / 지도 교수(Trevor Darrell, BAIR 책임자) – Maintained by • BAIR(Berkeley Artificial Intelligence Research, http://bair.berkeley.edu/) • 릴리즈 – ‘2013: DeCAF (https://arxiv.org/abs/1310.1531) – Dec. ‘2013: Caffe v0 • 적용 사례 – Facebook, Adobe, Microsoft, Samsung, Flickr, Tesla, Yelp, Pinterest, etc. • Motivation – ‘2012 ILSVRC에서 발표한 AlexNet을 재현 – DNN 정의/훈련/배포하기 위한 범용 F/W 구현 Caffe http://caffe.berkeleyvision.org/
  • 6. Caffe • 특징 – 장점 • 이미지 처리에 특화 • 프로그래밍하는 대신 설정 파일로 학습 방법을 정의 • Caffe Model Zoo를 통한 다양한 Pre-trained Model 제공 • 이미지 기반 참조 모델의 de facto standard – 단점 • 이미지 이외의 텍스트, 사운드 등의 데이터 처리에는 부적합 • 유연하지 못한 API – 새로운 기능 추가의 경우 C++/CUDA로 직접 구현 필요 • 문서화가 잘 안되어 있음 http://caffe.berkeleyvision.org/ Caffe2(http://caffe2.ai/) 출시 - By Facebook - Android 지원, iOS 지원(예정) - 분산 처리 지원 F/W 주체 플랫폼 모바일 언어 인터페이스 OpenMP CUDA OpenCL 멀티GPU 분산 Caffe BAIR Linux, Mac - C++ Python, MATLAB Y Y - Y
  • 7. • 주체 – Created & Maintained by • Preferred Networks, Inc.(https://www.preferred-networks.jp/ja/) • 릴리즈 – Jun. ‘2015 • 적용 사례 – Toyota motors, Panasonic (https://www.wsj.com/articles/japan-seeks-tech-revival-with-artificial- intelligence-1448911981) – FANUC (http://www.fanucamerica.com/FanucAmerica-news/Press- releases/PressReleaseDetails.aspx?id=79) • Motivation – Define-by-Run 아키텍처 • 실행 시점에 네트워크 그래프가 정의됨 • 복잡한 네트워크 정의를 보다 유연하게 지원할 수 있게 함 Chainer http://docs.chainer.org/en/latest/index.html
  • 8. Chainer • 특징 – 장점 • 빠른 속도 출처: Performance of Distributed Deep Learning using ChainerMN http://chainer.org/general/2017/02/08/Performance-of-Distributed-Deep-Learning-Using-ChainerMN.html http://docs.chainer.org/en/latest/index.html F/W 주체 플랫폼 모바일 언어 인터페이스 OpenMP CUDA OpenCL 멀티GPU 분산 Chainer Preferred Networks Linux - Python Python - Y - Y Y
  • 9. Chainer • 특징 – 장점 • Define-by-Run 모델 기반의 유연성 제공 – 단점 • 협소한 사용자 커뮤니티 출처: Complex Neural networks made easy by Chainer https://www.oreilly.com/learning/complex-neural-networks-made-easy-by-chainer [Define-and-Run (TensorFlow)] [Define-by-Run (Chainer, PyTorch)] http://docs.chainer.org/en/latest/index.html
  • 10. • 주체 – Created & Maintained by • Microsoft Research • 릴리즈 – Jan. ‘2016 • 적용 사례 – Microsoft’s speech recognition engine – Skype’s Translator • Motivation – Efficient performance on distributed environments CNTK https://www.microsoft.com/en-us/research/product/cognitive-toolkit/ https://www.microsoft.com/en-us/research/blog/microsoft-computational-network-toolkit-offers-most-efficient-distributed-deep-learning-computational-performance/
  • 11. CNTK • 특징 – 장점 • 처리 성능의 linear scaling – 단점 • 협소한 사용자 커뮤니티 https://www.microsoft.com/en-us/research/product/cognitive-toolkit/ 출처: Microsoft Computational Network Toolkit offers most efficient distributed deep learning computational performance https://www.microsoft.com/en-us/research/blog/microsoft-computational-network-toolkit-offers-most-efficient-distributed- deep-learning-computational-performance/ [2015. 7] F/W 주체 플랫폼 모바일 언어 인터페이스 OpenMP CUDA OpenCL 멀티GPU 분산 CNTK Microsoft Linux, Windows - C++ Python, C++ Y Y - Y Y
  • 12. • 주체 – Created by • Adam Gibson @Skymind (CTO) • Chris Nicholson @Skymind (CEO) – Maintained by • Skymind (https://skymind.ai/) • 릴리즈 – Jun. ‘2014 • 적용 사례 – 은행 Fraud Detection 연구 파트너쉽 with Nextremer in Japan (https://skymind.ai/press/nextremer) • Motivation – 가장 많은 프로그래머를 보유하는 Java 기반의 딥러닝 프레임워크 개발 – 추론엔진에 대해 엔터프라이즈 서비스급 안정성을 보장 DL4J https://deeplearning4j.org/
  • 13. DL4J • 특징 – 장점 • Java를 기반으로 한 쉬운 이식성 및 엔터프라이즈 시스템 수준의 안전성 제공 • Spark 기반의 분산 처리 지원 • 문서화가 잘 되어 있음 / 학습 디버깅을 위한 시각화 도구 DL4J UI 제공 • 기업 대상 기술 컨설팅 제공 – 단점 • Java 언어로 인한 학습 및 테스트 과정의 번거로움 • 협소한 사용자 커뮤니티 • 부족한 예제 https://deeplearning4j.org/ F/W 주체 플랫폼 모바일 언어 인터페이스 OpenMP CUDA OpenCL 멀티GPU 분산 DL4J SkyMind Cross- platform (JVM) Android Java Java, Scala, Python Y Y - Y Y (Spark)
  • 14. • 주체 – Created & Maintained by • Francois Chollet @Google • 릴리즈 – Mar. ‘2015 • 적용 사례 – TensorFlow (http://www.fast.ai/2017/01/03/keras) • Motivation – Provide a high-level interface based on deep learning framework like Theano, TensorFlow – Easy to use – 최소화, 단순화, 모듈화 – 다양한 딥러닝 프레임워크와의 쉬운 연동 Keras https://keras.io/
  • 15. Keras • 특징 – 장점 • 직관적인 API 인터페이스 • Caffe, Torch, TensorFlow 등 다양한 딥러닝 프레임워크 모델 import 기능 제공 • 문서화가 잘되어 있음 – 단점 • 기반 Theano 프레임워크에서 문제가 발생시 debugging이 어려움 https://keras.io/ F/W 주체 플랫폼 모바일 언어 인터페이스 OpenMP CUDA OpenCL 멀티GPU 분산 Keras François Chollet Linux, Mac, Windows - Python Python Y(Theano) N(TF) Y - Y
  • 16. • 주체 – Created by • CMU (http://www.cs.cmu.edu/~muli/file/mxnet-learning-sys.pdf) – Maintained by • DMLC(Distributed Machine Learning Community) – CMU, NYU, NVIDIA, Baidu, Amazon, etc. • 릴리즈 – Oct. ‘2015 • 적용 사례 – AWS (https://www.infoq.com/news/2016/11/amazon-mxnet-deep-learning) • Motivation – Support for Mixed Programming Model: Imperative & Symbolic – Support for Portability: Desktops, Clusters, Mobiles, etc. – Support for Multiple Languages: C++, R, Python, Matlab, Javascript, etc. MXNet http://mxnet.io/
  • 17. MXNet • 특징 – 장점 • 다양한 프로그래밍 인터페이스 제공 • 모바일 지원 • 빠르게 발전 • low-level / high-level API 모두 제공 • Imperative / Graph 프로그래밍 모델 모두 지원 http://mxnet.io/ F/W 주체 플랫폼 모바일 언어 인터페이스 OpenMP CUDA OpenCL 멀티GPU 분산 MXNet DMLC Linux, Mac, Windows, Javascript Android, iOS C++ C++, Python, Julia, MATLAB, JavaScript, Go, R, Scala, Perl Y Y - Y Y
  • 18. MXNet – 단점 • 다소 처리 속도 느림 http://mxnet.io/ 출처: How to run deep neural networks on weak hardware https://www.linkedin.com/pulse/how-run-deep-neural-networks- weak-hardware-dmytro-prylipko 출처: Benchmarking State-of-the-Art Deep Learning Software Tools http://dlbench.comp.hkbu.edu.hk/?v=v7
  • 19. • 주체 – Created & Maintained by • Google Brain • 릴리즈 – Nov. ‘2015 • 적용 사례 – Google • Search Signals (https://www.bloomberg.com/news/articles/2015-10-26/google- turning-its-lucrative-web-search-over-to-ai-machines) • Email auto-responder (https://research.googleblog.com/2015/11/computer- respond-to-this-email.html) • Photo Search (https://techcrunch.com/2015/11/09/google-open-sources-the- machine-learning-tech-behind-google-photos-search-smart-reply-and- more/#.t38yrr8:fUIZ) • Motivation – It’s Google TensorFlow https://www.tensorflow.org/
  • 20. TensorFlow • 특징 – 장점 • 추상화된 그래프 모델 • 학습 디버깅을 위한 시각화 도구 TensorBoard 제공 • 모바일 지원 • low-level / high-level API 모두 제공 https://www.tensorflow.org/ F/W 주체 플랫폼 모바일 언어 인터페이스 OpenMP CUDA OpenCL 멀티GPU 분산 TensorFlow Google Linux, Mac, Windows Android, iOS C++, Python Python, C/C++, Java, Go N Y - Y Y
  • 21. TensorFlow – 장점 • 방대한 사용자 커뮤니티 https://www.tensorflow.org/ 출처: Machine Learning Frameworks Comparison https://blog.paperspace.com/which-ml-framework-should-i-use
  • 22. TensorFlow – 단점 • Define-and-Run 모델 / 런타임에 그래프 변경 안됨 • Torch에 비해 느림 https://www.tensorflow.org/ 출처: soumith/convnet-benchmarks https://github.com/soumith/convnet-benchmarks
  • 23. • 주체 – Created by • James Bergstra, Frederic Bastien, etc. (http://www.iro.umontreal.ca/~lisa/pointeurs/theano_scipy2010.pdf_ – Maintained by • LISA lab @ Université de Montréal • 릴리즈 – Nov ‘2010 • 적용 사례 – Keras – Lasagne – Blocks • Motivation – There’s any. Theano http://deeplearning.net/software/theano/index.html
  • 24. Theano • 특징 – 장점 • low-level을 제어할 수 있는 API • 추상화된 그래프 모델 지원 • 빠르고 유연함 • Keras, Lasagne, Blocks 등 Wrapper 프레임워크의 기반 프레임워크 – 단점 • low-level API의 복잡성 http://deeplearning.net/software/theano/index.html F/W 주체 플랫폼 모바일 언어 인터페이스 OpenMP CUDA OpenCL 멀티GPU 분산 Theano Université de Montréal Linux, Mac, Windows - Python Python Y Y - Y
  • 25. • 주체 – Created & Maintained by • Ronan Collobert: Research Scientist @ Facebook • Clément Farabet: Senior Software Engineer @ Twitter • Koray Kavukcuoglu: Research Scientist @ Google DeepMind • Soumith Chinatala: Research Engineer @ Facebook • 릴리즈 – Jul. ‘2014 • 적용 사례 – Facebook, Google, Twitter, Element Inc., etc. • Motivation – Unlike Caffe, for research rather than mass market – Unlike Theano, easy to use based on imperative model rather than symbolic model Torch http://torch.ch/
  • 26. Torch • 특징 – 장점 • 알고리즘 모듈화가 잘 되어 있어 사용이 용이 • 다양한 데이터 전처리 및 시각화 유틸리티 제공 • 간단한 Lua 프로그래밍 구문 • Imperative 프로그래밍 모델 기반의 직관적인 API • OpenCL 지원 • 모바일 지원 – 단점 • 파이썬 인터페이스 없음(PyTorch 별도 존재) • 문서화가 잘 안되어 있음 • 협소한 사용자 커뮤니티 • 심볼릭 모델 미제공 • 상용 어플레케이션이 아니라 연구용으로 적합 http://torch.ch/ F/W 주체 플랫폼 모바일 언어 인터페이스 OpenMP CUDA OpenCL 멀티GPU 분산 Torch Ronan, Clément, Koray, Soumith Linux, Mac, Windows Android, iOS C, Lua Lua Y Y Y Y Not officiall y
  • 28. 오픈소스 딥러닝 프레임워크 • 비교 기준 – 주요 특성 • 설치 플랫폼 • 모바일 지원 • 개발 언어 • 프로그래밍 인터페이스 • OpenMP 지원 • CUDA / OpenCL 지원 • 멀티 노드 지원 • 프로그래밍 모델 – Tech. Stack • 시각화 • 워크플로우 관리 • Computational Graph(CG) 관리 • Multi-dimensional array 처리 • Numerical computation • Computational Device
  • 29. 오픈소스 딥러닝 프레임워크 • 비교 기준 – 설계 • (Which) Interface Language • (How) Compute backprop • (How) Update parameters • (When) Run user codes • (How) Optimize CG • (How) Scale up training
  • 30. 딥러닝 프레임워크 Sheet – 주요 특성 F/W 주체 플랫폼 모바일 언어 인터페이스 OpenMP CUDA OpenCL 멀티GPU 분산 Caffe BAIR Linux, Mac - C++ Python, MATAB Y Y - Y Chainer Preferred Networks Linux - Python Python - Y - Y Y CNTK Microsoft Linux, Windows - C++ Python, C++ Y Y - Y Y DL4J SkyMind Cross- platform (JVM) Android Java Java, Scala, Python Y Y - Y Y (Spark) Keras François Chollet Linux, Mac, Windows - Python Python Y(Theano) N(TF) Y - Y MXNet DMLC Linux, Mac, Windows, Javascript Android, iOS C++ C++, Python, Julia, MATLAB, JavaScript, Go, R, Scala, Perl Y Y - Y Y TensorFlow Google Linux, Mac, Windows Android, iOS C++, Python Python, C/C++, Java, Go N Y - Y Y Theano Université de Montréal Linux, Mac, Windows - Python Python Y Y - Y Torch Ronan, Clément, Koray, Soumith Linux, Mac, Windows Android, iOS C, Lua Lua Y Y Y Y Not officiall y 출처: Comparison of deep learning software https://en.wikipedia.org/wiki/Comparison_of_deep_learning_software#cite_note-29
  • 31. 딥러닝 프레임워크 Sheet – 주요 특성 출처: Getting Started with Dep Learning https://svds.com/getting-started-deep-learning/
  • 32. 딥러닝 프레임워크 Sheet – Tech. Stack • 딥러닝 프레임워크의 주요 Tech. Stack 출처: DLIF: Common design of neural network implementations https://www.dropbox.com/s/qfz34ba3ftuli6b/AAAI2017-2-0203.pdf
  • 33. 딥러닝 프레임워크 Sheet Chainer Numpy BLAS 시각화 워크플로우 관리 CG 관리 Multi-dimensional Array 처리 Numerical computation CPU Computational Device 시각화 워크플로우 관리 CG 관리 Multi-dimensional Array 처리 Numerical computation Computational Device [Caffe] [Chainer] [CNTK] [DL4J] Cupy cuBLAS GPU cuDNN Caffe blob BLAS CPU cuBLAS GPU cuDNN CNTK BLAS CPU Tensor cuBLAS GPU cuDNN DL4J ND4J BLAS CPU cuBLAS GPU cuDNN TensorBoard DL4J UI 출처: DLIF: Common design of neural network implementations https://www.dropbox.com/s/qfz34ba3ftuli6b/AAAI2017-2-0203.pdf
  • 34. 딥러닝 프레임워크 Sheet 시각화 워크플로우 관리 CG 관리 Multi-dimensional Array 처리 Numerical computation Computational Device 시각화 워크플로우 관리 CG 관리 Multi-dimensional Array 처리 Numerical computation Computational Device [MXNet] [TensorFlow] [Theano] Tensor BLAS CPU cuBLAS GPU cuDNN visdom TensorFlow TF slim Keras, Lasgane, Blocks, etc Theano BLAS CPU Numpy libgpuarray CUDA, OpenCL CUDA Toolkit GPU [Torch] MXNet mxnet.ndarray BLAS CPU cuBLAS GPU cuDNN Torch Tensor BLAS CPU cuBLAS GPU cuDNN mxnet.viz TensorBoard 출처: DLIF: Common design of neural network implementations https://www.dropbox.com/s/qfz34ba3ftuli6b/AAAI2017-2-0203.pdf
  • 35. 딥러닝 프레임워크 Sheet – 설계 • 딥러닝 프레임워크의 설계 전략 출처: DLIF: Differences of deep learning frameworks https://www.dropbox.com/s/6sbt9jmrwg414c8/AAAI2017-3-0331.pdf
  • 36. 딥러닝 프레임워크 Sheet – 설계 출처: DLIF: Differences of deep learning frameworks https://www.dropbox.com/s/6sbt9jmrwg414c8/AAAI2017-3-0331.pdf
  • 37. 딥러닝 프레임워크 Sheet – 설계 Write NNs – in Which Languges? Declarative Config. File High portability Low flexibility Caffe Procedural Scripting High flexibility Low portability Others Compute backprop – How? Graph Easy and simple to implement Low flexibility Torch Caffe Chainer Extended Graph High flexibility Backprop extended graph에도 오퍼레이 션 가능(eg. Backrprop of backprop) Implementation gets complicated Theano MXNet TensorFlow 출처: DLIF: Differences of deep learning frameworks https://www.dropbox.com/s/6sbt9jmrwg414c8/AAAI2017-3-0331.pdf
  • 38. 딥러닝 프레임워크 Sheet – 설계 Update parameters – How to represent? Parameters as part of operator nodes Intuitiveness Low flexibility and reusability Torch Caffe MXNet Parameters as separate nodes in the graph High flexibility and reusability We can apply any operations that can be done for variable nodes to the parameters Theano Chainer TensorFlow 출처: DLIF: Differences of deep learning frameworks https://www.dropbox.com/s/6sbt9jmrwg414c8/AAAI2017-3-0331.pdf
  • 39. 딥러닝 프레임워크 Sheet – 설계 Update parameters – How to update? by routines outside of the graph Easy to impelement Low integrity Torch Caffe MXNet Chainer As a part of the graphs High integrity Implement gets complicated Theano TensorFlow 출처: DLIF: Differences of deep learning frameworks https://www.dropbox.com/s/6sbt9jmrwg414c8/AAAI2017-3-0331.pdf
  • 40. 딥러닝 프레임워크 Sheet – 설계 Run user codes – When? Static CG (Define-and-run) Easy to optimize the computations Low flexibility and usability Others Dynamic CG (Define-by-run) High flexibility and usability Users can build different graphs for different iterations using language syntaxes Hard to optimize the computations Difficult to do optimization every iteration due to its computational cost Chainer 출처: DLIF: Differences of deep learning frameworks https://www.dropbox.com/s/6sbt9jmrwg414c8/AAAI2017-3-0331.pdf
  • 41. 딥러닝 프레임워크 Sheet – 설계 Optimize CG – How to extend current F/W? Transform the graph to optimize the computations Theano TensorFlow Provide easy ways to write custom operator nodes Torch MXNet Chainer Chainer : also provides ways to write custom CUDA kernels with JIT compilation 출처: DLIF: Differences of deep learning frameworks https://www.dropbox.com/s/6sbt9jmrwg414c8/AAAI2017-3-0331.pdf Scale up training – How? Multi-GPU All Distributed Computations MXNet TensorFlow CNTK Chainer DL4J Torch(Not Officially)
  • 51. References • Comparison of deep learning software https://en.wikipedia.org/wiki/Comparison_of_deep_learning_software#cit e_note-29 • Deep Learning Frameworks https://developer.nvidia.com/deep-learning-frameworks • Comparing Frameworks: Deeplearning4j, Torch, Theano, TensorFlow, Caffe, Paddle, MxNet, Keras & CNTK https://deeplearning4j.org/compare-dl4j-torch7-pylearn#caffe • Performance of Distributed Deep Learning using ChainerMN http://chainer.org/general/2017/02/08/Performance-of-Distributed- Deep-Learning-Using-ChainerMN.html • Comparison with Other Frameworks http://docs.chainer.org/en/latest/comparison.html • Complex Neural networks made easy by Chainer https://www.oreilly.com/learning/complex-neural-networks-made-easy- by-chainer
  • 52. References • How is PyTorch different from Tensorflow? https://hackernoon.com/how-is-pytorch-different-from-tensorflow- 2c90f44747d6 • How to run deep neural networks on weak hardware https://www.linkedin.com/pulse/how-run-deep-neural-networks-weak- hardware-dmytro-prylipko • Deep Learning frameworks: a review before finishing 2016 https://medium.com/@ricardo.guerrero/deep-learning-frameworks-a- review-before-finishing-2016-5b3ab4010b06 • Microsoft Computational Network Toolkit offers most efficient distributed deep learning computational performance https://www.microsoft.com/en-us/research/blog/microsoft- computational-network-toolkit-offers-most-efficient-distributed-deep- learning-computational-performance/
  • 53. References • Machine Learning Frameworks Comparison https://blog.paperspace.com/which-ml-framework-should-i-use/ • soumith/convnet-benchmarks https://github.com/soumith/convnet-benchmarks • Getting Started with Deep Learning https://svds.com/getting-started-deep-learning/ • Benchmarking State-of-the-Art Deep Learning Software Tools http://dlbench.comp.hkbu.edu.hk/?v=v7 • DLIF: Common design of neural network implementations https://www.dropbox.com/s/qfz34ba3ftuli6b/AAAI2017-2-0203.pdf • DLIF: Differences of deep learning frameworks https://www.dropbox.com/s/6sbt9jmrwg414c8/AAAI2017-3-0331.pdf • Complex neural networks made easy by Chainer https://www.oreilly.com/learning/complex-neural-networks-made-easy- by-chainer
  • 54. References • Microsoft Computational Network Toolkit offers most efficient distributed deep learning computational performance https://www.microsoft.com/en-us/research/blog/microsoft- computational-network-toolkit-offers-most-efficient-distributed-deep- learning-computational-performance/ • Torch vs Theano http://fastml.com/torch-vs-theano/