Day 13 of 100DaysofML
TensorFlow. Just thought of explaining this library which is heavily used these days for all our ML, DL, DNN, RNN, etc. applications. TensorFlow was developed by Google and has a backend on which most of our models are trained but the documentation and understanding is a little complex because of which Google came out with a wrapper package or a front end based library called Keras which uses TensorFlow in the backend. It helps and makes things easy with usage of the complex library.
Right now, we have a number of popular libraries such as Pytorch developed by Facebook and MxNet developed by Apache and commonly used by AWS. But I’m going to base today's discussion just on the overview of TensorFlow.
There is one common question that is always asked.
If TensorFlow is a powerful and strong library for training of neural nets, why is it open sourced and why, isn’t it paid?
Google has already provided an explanation on their website but its is covered with a lot of corporate comments so I’ll try to make it simple here.
The field of Deep Learning is already very diverse and with companies coming out with a number of powerful open source tools for DL (Pytorch, MxNet), it really does not make sense to build a powerful tool and make it paid because a large number of students and companies would not be willing to pay for it. Another very important point is that by open sourcing the library, TF could get contributors from outside who could actually work on improving and implementing the library.
Alright, now Lets talk about TensorFlow.
What is TensorFlow and what exactly is it used for?
TensorFlow is an end-to-end open source platform for machine learning. It has a comprehensive, flexible ecosystem of tools, libraries and community resources that lets researchers push the state-of-the-art in ML and developers easily build and deploy ML powered applications.
Tensorflow is an extremely robust library which can be used for easy development and deployment of Neural Nets and can be used on other environments like NodeJS using their Tensorflow.js file and can also be deployed on IOS and android. At the same time, they can also be used for development in production (By production, we mean code that is used by companies for their products).
Misconception
I have personally used TensorFlow for a few of my academic projects but I never really understood the purpose of it and used to just blindly copy source code from Github without really understand the meaning but I used to often feel like the library is extremely overwhelming and it requires me to code like a freaking alien. I used to wonder how people can actually code all this out but hold up. Y’all really need to understand about TensorFlow Eager which comes as a part of the Library. You can read the documentation as part which I have mentioned below:
Using Eager makes you feel like you’re working with normal python code and if you still face difficulties with the documentation and find TensorFlow overwhelming, you can always focus on keras as the front end for the library.
What else if good about TensorFlow?
Honestly, the list is quite big. But a few things that could attract a lot of people looking for quick results from their models area:
- Google TPU’s: Google has released its own TPU’s (T stands for Tensor) in order to improve the processing speed of different models and decrease the latency and overall processing time.
- Tensorflow Hub: This is one of the resources which is very similar to the concept of Transfer Learning and helps out since it consists of pre-trained models.
I’m going to be writing blogs on creation of your own models. Just wanted to give a gist on TensorFlow for today. Keep Learning.
Cheers.