Topics to cover:
 Introduction to Keras
 Features
 Guiding Principles of Keras
 Keras Workflow
 Keras vs Tensorflow
 Examples for Building Simple Model using Keras
 Advantages
 Disadvantages
Introduction to Keras
Keras is a deep learning framework for Python Machine Learning and Deep Learning that provides a convenient way to define and train almost any kind of deep learning model. Keras is a highlevel neural networks API, written in Python which is capable of running on top of Tensorflow, Theano and CNTK. It was developed for enabling fast experimentation.
Keras does not involve lowlevel computations so it makes use of Backend library to solve those tasks (highlevel computations) such that it minimizes the error loss and optimizes the target function for achieving great accuracy results and can handle multiple inputoutput models.
Some important features of Keras
 Allows for easy and fast prototyping.
 Can run seamlessly on CPU and GPU (Often trained on GPU).
 Supports both convolutional networks(for computer vision) and recurrent networks(for sequence and timeseries), as well as the combination of two.
 Supports arbitrary network architectures: multiinput or multioutput models, layer sharing, model sharing and so on. This means Keras is appropriate for building deep learning models.
Keras recommend users to switch to tf.keras in Tensorflow 2.0, who use multibackend keras with the tensorflow backend.
Guiding Principles of Keras
 User Friendliness.
 Highly flexible for training neural network models.
 Extensive Modularity.
 Easy Extensibility.
 Work with Python.
Keras doesn’t handle lowlevel operations such as tensor manipulations and differentiation. Instead, it relies on a specialized, welloptimized tensor library to do so which serves as the backend engine of Keras. We can use several backend engine for keras, and currently three existing backend implementations are the Tensorflow backend, the Theano backend, and the Microsoft Cognitive Toolkit (CNTK) backend.
The typical Keras workflows looks like:
 Define your training data: input tensor and target tensor
 Define a network of layers(or model ) that maps input to the targets specified.
 Configure the learning process by choosing a loss function, an optimizer, and some metrics to monitor.
 Iterate your training data by calling the fit() method of your model and evaluate the performance of the model.
Keras vs Tensorflow
 Keras uses highlevel APIs while Tensorflow uses both highlevel and lowlevel APIs.
 Comparatively speed of Tensorflow is fast than Keras.
 Compared to Tensorflow architecture Keras is simple, more readable and concise.
 Keras supports multiple backend APIs whereas Tensorflow provides object detection functionality (base).
 Keras is built in Python which makes it way more userfriendly than Tensorflow.
 Keras offers simple and consistent highlevel APIs and follows best practices to reduce the cognitive load for the users.
Examples for Building Simple Model using Keras
Basic model building in Keras as follows:
You can define your model in two ways:

Sequential Class: Linear Stack of layers
from keras import models from keras import layers model = models.Sequential() model.add(layers.Dense(32, activation='relu', input_shape=(784,))) model.add(layers.Dense(10, activation='softmax')

Functional API: Directed acyclic graphs of layers
input_tensor = layers.Input(shape=(784,)) x = layers.Dense(32, activation='relu')(input_tensor) output_tensor = layers.Dense(10, activation='softmax')(x) model = models.Model(inputs=input_tensor, outputs=output_tensor)
Implementing Loss Function, Optimizer and Metrics
from keras import optimizers model.compile(optimizer=optimizers.RMSprop(lr=0.001),loss='mse', metrics=['accuracy'])
Finally, passing input and target tensors
model.fit(input_tensor, target_tensor, batch_size=128, epochs=10)
This the basic workflow of implementing Keras neural networks model and based upon the requirements more models can be developed for other neural network model architectures such as VGGNet, InceptionV3, ResNet, etc.
Advantages
 Userfriendly and has fast deployment production of models based on the model complexity.
 Offers consistent and simple APIs.
 Keras has the ability to built neural network models with fewer lines of code. It has good support for functions that enable users for fast deployment.
 Great community and calibrated documentation which is simple, more readable and concise.
Disadvantages
 Does not provide support for lowlevel APIs compared to Tensorflow.
 Only used on small datasets.
 Inefficient errors making model ineffective to debug the root cause problem.
 Training speed is slow compared to Tensorflow.