Python Keras Features Must to Know with Real Time Use Case

Free Keras course with real-time projects Start Now!!

In this DataFlair Keras features tutorial, you study some of the features of Keras that you must know.

You will also perform handwritten digit classification on the MNIST dataset using Python Keras and its features. This is one of the top Keras use case.

So let’s start.

What is Keras?

Keras is a neural network library in python that generally uses TensorFlow, Microsoft CNTK or Theano as its backend.

It is more user friendly and easy as compared to TensorFlow.

You can install Keras and its backend (preferably TensorFlow) from PyPI as:

pip install Keras
pip install tensorFlow

Why Learn Keras?

Keras is based on python that is very easy to debug and explore. It focuses on user experiences. Using Keras you have to write minimum code in order to perform common functions. It is modular and extensible, you can reuse and extend a model or a piece of code in the future. It also supports almost all neural network models.

It’s noteworthy to note that Keras AI offers a high-level and user-friendly interface for developing and refining deep learning models. Running on top of several backend deep learning frameworks like TensorFlow, Theano, and Microsoft Cognitive Toolkit (CNTK) is one of Keras’ primary benefits. Due to their adaptability, developers and researchers may move between different backends without having to rewrite any of their code.

Additionally, Keras provides an extensive library of pre-built layers, activation functions, and optimisation methods, greatly streamlining the process of building sophisticated neural networks. Keras is a great option for both novices and seasoned experts wishing to quickly build and experiment with cutting-edge deep learning models because of its clarity and straightforward design.

Keras Features

Let us see some of the top features of Keras that make it worth learning:

1. Prelabeled Datasets

  • Keras provides a ton of prelabeled datasets that you can directly import and load.
    Example: CIFAR10 small image classification, IMDB movie review sentiment classification, Reuters newswire topics classification, MNIST handwritten digit dataset, and few others (these are the examples of some famous datasets that are available in Keras)
  • To import and load this MNIST dataset (a dataset):
from Keras.datasets import mnist
(X_train, y_train), (X_test, y_test) = mnist.load_data()

2. Numerous implemented layers and parameters

Keras contains numerous implemented layers and parameters like loss functions, optimizers, evaluations metric.

You can use these layers and parameters for construction, configuration, training, and evaluation of neural networks.

  • You would load the required layers to build your digit classifier.
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Dropout
from keras.layers import Flatten
from keras.optimizers import Adam
from keras.utils import np_utils

Keras also has support for 1D and 2D convolutions and recurrent neural nets and for our digit classifier, you would use Convolution neural nets(Conv2D layer).

from keras.layers.convolutional import Conv2D
from keras.layers.convolutional import MaxPooling2D

3. Multiple methods for Data Preprocessing

Keras also has a ton of methods for data preprocessing, here you would use Keras.np_utils.to_categorical() method for one-hot encoding of y_train and y_test.

Before that, reshape and normalize the dataset for your requirements.

#reshape in form of (60000, 28, 28, 1)

X_train = X_train.reshape(X_train.shape[0], X_train.shape[1], X_train.shape[2], 1).astype('float32')

X_test = X_test.reshape(X_test.shape[0], X_test.shape[1], X_test.shape[2], 1).astype('float32')

#normalize to get data in range of 0-1
X_train/=255
X_test/=255


number_of_classes = 10
y_train = np_utils.to_categorical(y_train, number_of_classes)
y_test = np_utils.to_categorical(y_test, number_of_classes)

4. .add() Method in Keras

To add layers imported above by specifying parameters to build your digit classifier, it is done using .add() method.

model = Sequential()
model.add(Conv2D(32, (5, 5), input_shape=(X_train.shape[1], X_train.shape[2], 1), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(32, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.5))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(number_of_classes, activation='softmax')

5. .compile() Method in Keras

Before training, you need to configure your learning process which is done using .compile() method.

model.compile(loss='categorical_crossentropy', optimizer=Adam(), metrics=['accuracy'])

6. .fit() method

You can train Keras models on numpy arrays using .fit().

model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=5, batch_size=200)

The training may take some time, here I have used only 5 epochs but you can increase the epoch count as per your systems.

The training looks like this:

Features of Keras

7. Model Evaluation

After training your model, you need to test your results on unseen data or you can evaluate your model using .predict_classes() or .evaluate().

You can test your model on your own handwritten digits. I tested it on the following handwritten digit.

Keras

But before giving it as the input, you need to convert it in the form of MNIST dataset digits.

MNIST dataset digits are grayscale images of (28*28*1) dimensions.

import cv2
img = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
 
# resize image
resized = cv2.resize(img, (28,28), interpolation = cv2.INTER_AREA)
img = np.resize(resized, (28,28,1))
im2arr = np.array(img)
im2arr = im2arr.reshape(1,28,28,1)
y_pred = model.predict_classes(im2arr)
print(y_pred)

Output:

9

You can see my model predicted it successfully.

8. Modularity

As discussed above, Keras is modular. You can save the model you train and use this model later by loading it.

This is done as:

model.save('model.h5')

Summary

Finally, you have seen some common features of Keras. You also learned how to load a dataset, how to build a model, how to add layers with its parameters, how to compile, train, and evaluate a model in Keras.

This article also has the codes to build a Handwritten digit classifier on MNIST dataset. It shows how you can make deep learning projects in Keras in only tens of lines of code.

By offering a potent yet user-friendly framework for creating cutting-edge artificial intelligence models, Keras has transformed the area of deep learning. Because of its emphasis on abstraction and simplicity, complicated neural networks may now be used by a larger range of people, unleashing the full potential of AI.

As a result, Keras has been essential in advancing the adoption of deep learning across industries, including robotics and healthcare as well as computer vision and natural language processing. With its ongoing development and broad support, Keras continues to be a significant resource for the AI community, enabling academics, developers, and enthusiasts to push the boundaries of the technology and promote innovation.

If you are Happy with DataFlair, do not forget to make us happy with your positive feedback on Google

follow dataflair on YouTube

Leave a Reply

Your email address will not be published. Required fields are marked *