Choosing a Deep Learning Framework

Vivek Amilkanthawar
The HumAIn Blog
Published in
4 min readFeb 28, 2019

Implementing deep learning algorithms from scratch using Python and NumPY is a good way to understand what these deep learning algorithms are really doing by unfolding the deep learning black box.

However, it is increasingly not practical, at least for most people like me, is not practical to (CNN) or recurring neural networks (CNN) or such complex models, such as convolutional neural networks implement everything yourself from scratch.

Even though you understand how to do multiplayer and you are able to build a large multiplication and you are probably not want to implement your own matrix multiplication function but instead, you want to call a numerical linear algebra library that could be more more efficiently for you. Is not it?

Deep Learning Development Cycle

The IDEA -> EXPERIMENT -> CODE cycle much more quickly.

I think this is crucially important when you are in the middle of Deep Learning pipeline.

Deep Learning Pipeline

So let's take a look at the frameworks out there ...

Today, there are many deep learning frameworks that make it easy for you to implement neural networks, and here are some of the leading ones.

Deep Learning Frameworks

These Frameworks Of Each Has A Dedicated User And Developer Community And I Think Each Of These Frameworks Is A Credible Choice For Some Subset Of Applications. However, When I See The Below Graph My Obvious Choice Goes For TensorFlow .

Deep Learning Frameworks Scores of of Dec 2018

Well, I just said that I would choose TensorFlow. Turns out not not ...

If the framework scores top in popularity in 2018 then by the end of 2019 it may not hold the same position.

And are these frameworks and how well these deep learning frameworks and how well these evolution and getting better evolving and getting better month to month, I'll leave you to do a few internet searches yourself, if you want to see the arguments on the pros and cons of some of these frameworks.

So than than too strongly endorsing any of these frameworks, I would encourage you to take Andrew Ng's words into consideration before choosing a framework for your project

So, how can you make a decision about which framework to use?

Rather than strongly endorsing any of these frameworks, I would like to share three factors that Stanford Professor Andrew Ng considers important enough to influence your decision.

1) Ease of programming

This includes developing, iterating, and finally, deploying your neural network to production where it may be used by millions of users.

2) Running Speeds

Training on large data sets can take a lot of time, and differences in training speed between frameworks can make your workflow a lot more time efficient.

3) Openness

This last criterion is not often discussed, but Andrew Ng believes it is also very important. A truly open framework must be open source, of course, but must also be governed well.
So it is important to use a framework from the company that you can trust. As the number of people starts to use the software, the company should not gradually close off what was open source, or perhaps move the functionality into their own proprietary cloud services.

But at least in the short term depending on your preferences of language, whether you prefer Python or Java or C++ or something else, and depending on what application you’re working on, whether this can be division or natural language processing or online advertising or something else, I think multiple of these frameworks could be a good choice.

So that was just a higher level abstraction of deep learning programming framework. Any of these frameworks can make you more efficient as you develop machine learning applications.

In a subsequent post, we’ll take a step from zero → one to learn TensorFlow.

That’s it for this post, my name is Vivek from Goalist. See you soon with one of such next time; until then, Happy Learning :)

--

--