Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Guide to choose right deep Learning framework f...

Pycon ZA
October 12, 2018

Guide to choose right deep Learning framework for your AI project by Rishikesh

As world rolling around Artificial Intelligence (AI), demand for the AI-based product seen exponential growth, so the AI research. Deep learning algorithms and techniques are widely used for research and development of these products. Good news is that year by year Deep Learning has seen its glory in the release of many open source frameworks which ease the pain to develop and implement these algorithms.

As there are many deep learning frameworks out there and it can lead to confusion as to which one is better for your task. And choosing a deep learning framework for an AI project is as important as choosing a programming language to code product, Data science project coupled with the right deep learning framework has truly amplified the overall productivity.

In this talk, I will discuss the common points which help developers to understand which framework will be the perfect fit for solving given business challenges. Also, we will look into some of the most widely used frameworks and comparing with standard benchmarks.

Following deep learning/machine learning frameworks will be discussed:
1. **Tensorflow**
2. **PyTorch**
3. **Chainer** and/or **MXNET**

Key Highlight of this talk:

* define key points to judge any deep learning framework.

* hardware dependencies.

* anatomy of widely used open source frameworks.

* comparison of above-mentioned frameworks as per defined key points.

**Who is the audience?**

Anyone who inspired to code deep learning algorithms.

**Audience Level**: Beginner to Intermediate

Pycon ZA

October 12, 2018
Tweet

More Decks by Pycon ZA

Other Decks in Programming

Transcript

  1. Guide to choose right deep Learning framework for your AI

    project Rishikesh [email protected] Data Scientist @ Humonics Global Pvt ltd
  2. @whoami • Data Scientist at Humonics Global Private Ltd. •

    Github: rishikksh20 • Telegram: @rishikksh20 • Contribute to : Keras, Numpy, Scikit-Learn, matplotlib etc.
  3. Quick Survey o How many have machine learning background ?

    o How many have ever used any deep learning framework ? o How many people have used only 1 framework ? o How many of you contributed to any deep learning framework ?
  4. o Key points to keep o Identify scope of the

    project o Bottlenecks o Frameworks o Benchmarking Outline
  5. • Easy of coding • Installation and support • Boilerplate

    examples and community • Stability and Scalability • Speed of Training and Inference Key Points to keep
  6. Ease of Coding • Minimum Line of code for complex

    algorithms • Ease of use in terms of architecture • Deployment friendly • Coding flexibility • How many functions/methods are offered out of the box • High level as well as Low level APIs • Debugging and logging
  7. Installation and Support • Single hand installation • Good documentation

    • OS support • Multiple language support • Support bleeding edge technologies • Hardware Support (Mobile/CPU/GPU/Multi-GPU/TPU/Distributive/Cloud)
  8. Boilerplate examples and community • Framework Developers • Kick start

    examples • Availability of tutorials and training materials • Active communities
  9. Stability and Scalability • Maturity of frameworks • Back compatibility

    • Frequency of release • Number of users • Number of existing issues • Scale to large distributive environment
  10. Speed of Training and Inference • How much time it

    take to train a model ? • How much time it take to inference ?
  11. Identify scope of the project • Research Project • Small

    Project or POC • Medium Scale Project • Large Complex Project
  12. Bottleneck • Installation and Dependency management • Hard to keep

    up with latest development • So far there is no standardization • Inconsistency in low level optimization • Too much Hardware dependencies
  13. Tensorflow • Originally developed by Google Brain • Widely used

    machine learning framework • Backed by excellent and large community • Adequate documentation and huge learning resource available • Probably all necessary functions and features are out-of-the box • Production ready framework
  14. • High level API like Keras. • Written in C++

    but support many client language APIs like Java, Python, Go etc. • Started as static graph structure now support dynamic graph computation. • Deploy on Android • Good Visualization tool like tensorboard
  15. So Any Reason to looks others ? • Less pythonic

    and flexible. For researchers, Tensorflow is hard to learn and hard to use. Research is all about flexibility, and lack of flexibility is baked into Tensorflow at a deep level.
  16. PyTorch • Primarily developed by Facebook and Uber • Pure

    Pythonic approach and highly flexible (Dynamic computational Graph) • Research friendly • No need high level API like Keras • Simple to learn and code • Butter smooth debugging
  17. Cons • Less mature • Not yet Production ready, but

    is in roadmap • Lack of in-built visualization tool like Tensorboard • Do not have mobile support yet • Scalability
  18. • Supported by Microsoft and Amazon • Supports many languages,

    from C++ to Python, JavaScript, Go, and R • Faster training than other popular frameworks • Highly scalable and production ready • Easy to code using High level API “Gluon”. • Distributed environment • Deploy any where from GPU to mobile MXNet
  19. Speed tensorflow pytorch mxnet 130 135 140 145 150 155

    160 165 170 175 180 173 169 145 ResNet50 Feature Extraction
  20. tensorflow pytorch mxnet 28 28.5 29 29.5 30 30.5 31

    31.5 30 31 29 IMDB movie reviews