Framework is generally a software package which provides basic functionalities and procedures which helps in completing your task successfully in easy and efficient manner . Many companies have provided deep learning framework so that we can develop and design our deep learning model easily and efficiently . Tensorflow, PYTORCH, deeplearning 4J, CNTK and MXnet which provide function such as tensor handling, multiplication, broadcasting, automatic differentiation and many others which really ease your task. We will discuss all this framework in detail in this post.
some frameworks provide full eco-system because of which deployment becomes very easy. It take care all heavy lifting work for integration with different platform for your model. frameworks such as tensorflow provides deploy facilities in low computation device such as mobile.
It is deep learning framework maintained and developed by google. It contains both low and high level API to handle deep learning task. Both levels API has its own usage. From low level API you can make your full network architecture from scratch which is more flexible but you have to write more code and complexity of its implementation. On other side in high level API you have to write less code because of basic functionalities and simple architecture backbone is already implemented in this API. It also incorporates Keras in it which is high level deep learning API which is really easy to implement and to develop deep learning model.
Tensorflow uses classic graph submission technique to develop model's based on data. We have to create a graph in which should define input output and architecture of graph and then submit to create model. Tensorflow contains its own debugging tool which is really hard to use.
you can deploy tensorflow generated model in any platform . Due to its graph submission it is hard to develop but easy to deploy.
It is an open source high level API module which generally sites on any of this following backend as tensorflow, CNTK, MXnet .It really makes your development easy. It is just as sequential programming we write in KERAS which eventually converts model to graph for you in background. It is easy to develop but is less flexible.
It is developed and maintained by facebook and it is also supported by microsoft. It really uses power of pythonic language . This full framework is developed as Object Oriented Programming. It contain only low level API which is very flexible and gives really clean code. You can debug it using python debugger only. Its main power is auto differentiation .You have to write more code for simple models also as compared to KERAS . Deployment is done through ONNX.
As we have KERAS in tensorflow, we have FASTAI high level API in PYTORCH which makes life really easy which is maintained and developed by Jeremy Howard. It requires less code to develop small models.
CNTK (Microsoft Cognizant Tool Kit)
It is deep learning framework which is maintained and developed by microsoft. It uses classical graph submission technique for generating deep learning model . You need to create graph which is hard design compared to KERAS and FASTAI. Deployment is done through ONNX.
It is deep learning framework developed for JAVA language. It uses object oriented programming.This can be developed in android also. You can deploy in mobile and web.
This framework is maintained and developed by amazon companies. It uses object oriented programming to develop deep learning model. It uses low level API to develop. It is not that famous as other library as tensorflow, PYTORCH, it uses ONNX and tensorflow deployment strategies.
We have seen two types of programming paradigm for deep learning which is graph submission or by object oriented programming. Both have them have their pros and cons. Different frameworks use different paradigm, If you are coder then you should go for object oriented programming in beginning because it makes life really easy. And PYTORCH should be your choice ,Or if you have already done some research in deep learning and having good command on mathematics you should choose tensorflow.
If you are beginner you should try KERAS or FASTAI to achieve your targets .
If you have any query or feedback or need any help regarding boiler code of any topic , you can freely ask in comments. I would really love to help you