Blog Details



Blog Title: TensorFlow or Keras
Blogger: ishanroy726@gmail.com
Image: View
Content:

Deep learning is everywhere. 2016 was the year where we saw some huge advancements in the field of Deep Learning and 2019 is all set to see many more advanced use cases. With plenty of libraries out there for deep learning, one thing that confuses a beginner in this field the most is which library to choose.

Image result for tensorflow

Tensorflow is the most famous library used in production for deep learning models. It has a very large and awesome community. The number of commits as well the number of forks on TensorFlow Github repository are enough to define the wide-spreading popularity of Tensorflow. However, TensorFlow is not that easy to use. On the other hand, Keras is a high-level API built on TensorFlow (and can be used on top of Theano too). It is more user-friendly and easy to use as compared to Tensorflow.

Image result for keras

If Keras is built on top of TensorFlow, what’s the difference between the two then? And if Keras is more user-friendly, why should I ever use TensorFlow for building deep learning models? The following points will clarify which one you should choose.

 

Rapid prototyping

If you want to quickly build and test a neural network with minimal lines of code, choose Keras. With Keras, you can build simple or very complex neural networks within a few minutes. The Model and the Sequential APIs are so powerful that you can do almost everything you may want.

Flexibility

Sometimes you just don’t want to use what is already there but you want to define something of your own (for example a cost function, a metric, a layer, etc.). 
Although Keras 2 has been designed in such a way that you can implement almost everything you want but we all know that low-level libraries provide more flexibility. Same is the case with TensorFlow. You can tweak TensorFlow much more as compared to Keras.

Who doesn’t love being Pythonic!!

Keras was developed in such a way that it should be more user-friendly and hence in a way more pythonic. Modularity is another elegant guiding principle of Keras. Everything in Keras can be represented as modules which can further be combined as per the user’s requirements.

Functionality

Although Keras provides all the general purpose functionalities for building Deep learning models, it doesn’t provide as much as TensorFlow. TensorFlow offers more advanced operations as compared to Keras. This comes very handy if you are doing a research or developing some special kind of deep learning models. 

Conclusion 

If you are not doing some research purpose work or developing some special kind of neural network, then go for Keras . And it’s super easy to quickly build even very complex models in Keras.

If you want more control over your network and want to watch closely what happens with the network over the time, TensorFlow is the right choice (though the syntax can give you nightmares sometimes). But as we all know that Keras has been integrated in TensorFlow, it is wiser to build your network using tensorflow.keras and insert anything you want in the network using pure TensorFlow.