Why Use Framework for Deep Learning?
You can implement your own deep learning algorithms from scratch using Python or any other programming language. When you start implementing more complex models such as Convolutional Neural Network (CNN) or Recurring Neural Network (RNN) then you will realize that it is not practical to implement very large models from scratch.
There are many deep learning frameworks available in the market that makes it easy for you to implement neural networks. Some of these are:
- TensorFlow
- Caffe/Caffe2
- CNTK
- DL4J
- Keras
- Lasagne
- Mxnet
- PaddlePaddle
- Theano
- Torch
Each of these frameworks has a dedicated user and developer community and you will find a lot of articles on the internet comparing the pros and cons of these frameworks. Each one of them has their own advantages and disadvantages but surely they are evolving and getting better month to month.
Criteria to choose deep learning frameworks
- Ease of programming (development and deployment)
- Running speed
- Truly open (open source with good governance)
My Recommendation
Whether you are building a model for Natural Language Processing or Online Advertising or something else, I would recommend using TensorFlow as it is easy to program and a large community support is available. TensorFlow is an open-source software library for dataflow programming and it is a symbolic math library. It is developed by Google Brain team and used for both research and production at Google. Google released its Machine Learning Crash Course (MLCC) to the public with practical artificial intelligence and machine learning fundamentals. Furthermore Google, in partnership with Udacity, released its extensive course on Deep Learning. The most important thing is that these are free and great resources available online.
Also check: Building Neural Network Application Using TensorFlow