What Is Keras: Overview
Keras is used specially for building neural network models. It is written in Python and is compatible with both versions of Python that are 2.7 & 3.5. It was developed for fast execution of ideas. It’s interface is very simple and highly modular, which helps us to create even complex neural network models very easily and syntax is also very easy to understand. Also this library abstracts low level libraries, like TensorFlow and Theano so that the users are free from “implementation details” of these libraries.
The key features of Keras are:
- Modularity : Modules necessary for building a neural network are included in an interface so that It is easier to use for the end user.
- Minimalistic : Implementation is short and concise.
- Extensibility : It is very suitable for advanced research and also it is very easy to write a new module for Keras.
Keras : Advantages
Being a high level library and its simpler interface, Keras certainly shines as one of the best deep learning libraries available. There are few features of itself , which makes it easy to use and also provides more features:
- If we compare Keras with Theano and TensorFlow it tries to give better “User Experience” and this places Keras above these two libraries.
- As It is a python library, it is more accessible to the general public because of Python’s inherent simplicity as a programming language.
- Lasagne is a library which is almost similar to Keras, but having used both the libraries I can say Keras is much easier to use.
Considering above mentioned reasons, it is no surprise that Keras is increasingly becoming popular as a deep learning library.
Limitations
- Since Keras has it’s dependency on low level languages like Theano and TensorFlow so this acts as a double edged sword for Keras. This is the reason why Keras cannot go “out of the realms” of these libraries. For example, If we talk about both Theano and TensorFlow currently do not support GPUs other than Nvidia that’s why Keras also doesn’t have the corresponding support.
- Same as Lasagne, Keras also completely abstracts the low level languages. So, it is less flexible when it comes to building custom operations.
- The last point I’ll make is that Keras is new in this field. It’s first version was released in late 2015, and it has undergone many changes since then. Although Keras is already used in production, you should always think twice before deploying keras models for productions.
Solving general problems with Neural Networks
Machine Learning algorithms use a special type of algorithm that is Neural Network. Similar to every ML algorithm, it also follows the usual ML workflow of data preprocessing and model evaluation. For the sake of convenience, I have listed out a To-Do list of how to approach a Neural Network problem.
- Check if there are problems where Neural Network gives you uplift over traditional algorithms.
- Do a survey for which Neural Network architecture is the most suitable required problem
- Define Neural Network architecture through language / library according to your choice.
- Convert data into the right format and divide it into different batches.
- According to your needs, pre-process the data.
- Augment Data is used to increase size and make better trained models
- Batches are fed for the Neural Network.
- Monitor changes in training and validation data sets, and also train them.
- Test your model.
Starting with a Its implementation on “Identify the Digits”
Let’s give a look to our problem statement that we have to do:
Our problem is an image recognition problem, to identify digits from a given 28 by 28 image. We can divide our subset of images into both test and training dataset for our model. So let’s start by downloading the train and test files. Both datasets contain a zipped file of all the images and both the train.csv and test.csv have the name of corresponding train and test images. No additional features are provided in the datasets, it’s just the raw images are provided in ‘.png’ format.
Let’s start:
STEP 0: Getting Ready
a) Importing all the necessary libraries
b) Let’s control our models randomness by setting it’s seed value:
STEP 1: Data Loading and Preprocessing
b) Let us see how our data looks! We try to display our image.
c) The above image can be represented as numpy array, as seen below
d)Let’s store all our images as numpy arrays
e) Since this is a typical ML problem, to test the proper functioning of our model we create a validation set. Let’s split our train and validation set in the ratio of 70:30:
Endnotes
So after reading this article you come to know about Keras, how it is useful in the field of Deep Learning along with its advantages and limitations. We have also seen how Keras is dependent on low level Languages like Theano and TensorFlow. Also I have mentioned how we have to proceed with Neural Network Models. At last we work on the simple problem of “Identifying digits” using Keras.
I hope you found this article helpful. Now, You should practice and read as much as you can.
Article By: Amit Shukla
If you are Interested In Machine Learning You Can Check Machine Learning Internship Program
Also Check Other Technical And Non Technical Internship Programs