https://nlpforhackers.io/keras-intro/

In the previous tutorial on Deep Learning, we’ve built a super simple network with numpy. I figured that the best next step is to jump right in and build some deep learning models for text. The best way to do this at the time of writing is by using Keras .
What is Keras?
Keras is a deep learning framework that actually under the hood uses other deep learning frameworks in order to expose a beautiful, simple to use and fun to work with, high-level API. Keras can use either of these backends:
- Tensorflow – Google’s deeplearning library
- Theano – may not be further developed
- CNTK – Microsoft’s deeplearning library
- MXNet – deeplearning library from Apache.org (currently under development)
Keras uses these frameworks to deliver powerful computation while exposing a beautiful and intuitive (that kinda looks like scikit-learn) API.
Here’s what Keras brings to the table:
- The integration with the various backends is seamless
- Run training on either CPU/GPU
- Comes in two flavours: sequential or functional. Just to ways of thinking about building models. The resulting models are perfectly equivalent. We’re going to use the sequential one.
- Fast prototyping – With all these good abstractions in place, you can just focus more on the problem and hyperparameter tunning.
Let’s now start using Keras to develop various types of models for Natural Language Processing. Here’s what we’ll be building:
- (Dense) Deep Neural Network – The NN classic model – uses the BOW model
- Convolutional Network – build a network using 1D Conv Layers – uses word vectors
- Recurrent Networks – LSTM Network – Long Short-Term Memory – uses word vectors