Last Updated on September 13, 2019
Two of the top numerical platforms in Python that provide the basis for Deep Learning research and development are Theano and TensorFlow.
Both are very powerful libraries, but both can be difficult to use directly for creating deep learning models.
In this post, you will discover the Keras Python library that provides a clean and convenient way to create a range of deep learning models on top of Theano or TensorFlow.
Discover how to develop deep learning models for a range of predictive modeling problems with just a few lines of code in my new book, with 18 step-by-step tutorials and 9 projects.
Let’s get started.
- Update Oct/2016: Updated for Keras 1.1.0, Theano 0.8.2 and TensorFlow 0.10.0.
- Update Sep/2019: Updated for Keras 2.2.5 API.
What You Will Learn
What is Keras?
Keras is a minimalist Python library for deep learning that can run on top of Theano or TensorFlow.
It was developed to make implementing deep learning models as fast and easy as possible for research and development.
It runs on Python 2.7 or 3.5 and can seamlessly execute on GPUs and CPUs given the underlying frameworks. It is released under the permissive MIT license.
Keras was developed and maintained by François Chollet, a Google engineer using four guiding principles:
- Modularity: A model can be understood as a sequence or a graph alone. All the concerns of a deep learning model are discrete components that can be combined in arbitrary ways.
- Minimalism: The library provides just enough to achieve an outcome, no frills and maximizing readability.
- Extensibility: New components are intentionally easy to add and use within the framework, intended for researchers to trial and explore new ideas.
- Python: No separate model files with custom file formats. Everything is native Python.
How to Install Keras
Keras is relatively straightforward to install if you already have a working Python and SciPy environment.
You must also have an installation of Theano or TensorFlow on your system already.
You can see installation instructions for both platforms here:
Keras can be installed easily using PyPI, as follows:
At the time of writing, the most recent version of Keras is version 2.2.5. You can check your version of Keras on the command line using the following snippet:
You can check your version of Keras on the command line using the following snippet:
python -c “import keras; print keras.__version__”
python -c “import keras; print keras.__version__”
Running the above script you will see:
You can upgrade your installation of Keras using the same method:
sudo pip install –upgrade keras
sudo pip install –upgrade keras
Theano and TensorFlow Backends for Keras
Assuming you have both Theano and TensorFlow installed, you can configure the backend used by Keras.
The easiest way is by adding or editing the Keras configuration file in your home directory:
Which has the format:
{
“image_data_format”: “channels_last”,
“backend”: “tensorflow”,
“epsilon”: 1e-07,
“floatx”: “float32”
}
{
“image_data_format”: “channels_last”,
“backend”: “tensorflow”,
“epsilon”: 1e-07,
“floatx”: “float32”
}
In this configuration file you can change the “backend” property from “tensorflow” (the default) to “theano“. Keras will then use the configuration the next time it is run.
You can confirm the backend used by Keras using the following snippet on the command line:
python -c “from keras import backend; print(backend.backend())”
python -c “from keras import backend; print(backend.backend())”
Running this with default configuration you will see:
Using TensorFlow backend.
tensorflow
Using TensorFlow backend.
tensorflow
You can also specify the backend to use by Keras on the command line by specifying the KERAS_BACKEND environment variable, as follows:
KERAS_BACKEND=theano python -c “from keras import backend; print(backend.backend())”
KERAS_BACKEND=theano python -c “from keras import backend; print(backend.backend())”
Running this example prints:
Using Theano backend.
theano
Using Theano backend.
theano
Need help with Deep Learning in Python?
Take my free 2-week email course and discover MLPs, CNNs and LSTMs (with code).
Click to sign-up now and also get a free PDF Ebook version of the course.
Start Your FREE Mini-Course Now!
Build Deep Learning Models with Keras
The focus of Keras is the idea of a model.
The main type of model is called a Sequence which is a linear stack of layers.
You create a sequence and add layers to it in the order that you wish for the computation to be performed.
Once defined, you compile the model which makes use of the underlying framework to optimize the computation to be performed by your model. In this you can specify the loss function and the optimizer to be used.
Once compiled, the model must be fit to data. This can be done one batch of data at a time or by firing off the entire model training regime. This is where all the compute happens.
Once trained, you can use your model to make predictions on new data.
We can summarize the construction of deep learning models in Keras as follows:
- Define your model. Create a sequence and add layers.
- Compile your model. Specify loss functions and optimizers.
- Fit your model. Execute the model using data.
- Make predictions. Use the model to generate predictions on new data.
You can develop your first deep learning neural network in Keras with just a few lines of code. See this step-by-step Keras Tutorial:
Keras Resources
The list below provides some additional resources that you can use to learn more about Keras.
Summary
In this post, you discovered the Keras Python library for deep learning research and development.
You discovered that Keras is designed for minimalism and modularity allowing you to very quickly define deep learning models and run them on top of a Theano or TensorFlow backend.
Do you have any questions about Keras or this post? Ask your questions in the comments and I will do my best to answer them.
Develop Deep Learning Projects with Python!
What If You Could Develop A Network in Minutes
…with just a few lines of Python
Discover how in my new Ebook:
Deep Learning With Python
It covers end-to-end projects on topics like:
Multilayer Perceptrons, Convolutional Nets and Recurrent Neural Nets, and more…
Finally Bring Deep Learning To
Your Own Projects
Skip the Academics. Just Results.
See What’s Inside