Keras Models – Sequential and Functional Model of Keras

Keras is one of the most popular Python libraries for Deep Learning. It is a library that provides you various tools to deal with neural network models. These tools enable you to visualize and understand your model.

Keras is a simple and user-friendly library that focuses on the idea of Models. Let us learn more about Keras Models.

Keras Models

These represent the actual neural network model. These models group layers into objects. There are two types of Models available in Keras: The Sequential model and the Functional model.

Keras Sequential Model

It is simple and easy to use model. It is a linear stack of methods that groups a linear stack of layers into a tf.keras.Model. According to its name, its main task is to arrange the layers of the Keras in sequential order.

In this model, the data flow from one layer to another layer. The flow of data is continued until the data reaches the final layer. Most of the ANN’s use the Sequential API Model.

Create a Sequential Model

You can create a Sequential model by calling the Sequential() method. You have to pass a list of instances to the constructor.

from keras.models import Sequential
model = Sequential()

Adding a Layer in the Sequential Model

Adding a layer in the Sequential Model is very easy. You can add any layer easily by the add() method. To use add() method, you initially need to create a layer using API then pass the layer through the add() method.

model = Sequential()
model.add(Dense(32, input_dim=784))
model.add(Activation(’relu’))

Specifying the Input Shape

It is necessary to specify the shape of the input to the layer. You need to specify the shape of the first layer only. Because the output of the first layer becomes the input of the sun-sequent layers automatically.

1. To specify the input shape to the layer, there is a number of methods available. You can use input_shape argument. You can pass this argument to the very first layer.

2. For 2D layers like Dense, there is input_dim argument. 3D layers have input_dim and input_lenght to specify the input shape of the model.

Accessing and Serializing the Keras Model

To access the model, Keras provides a ton of methods. These methods help you to get the model information.

1. model.layers():
This method returns all the layers of the model as a list. It informs you about the layer that comprises a model.

2. model.inputs():
It is the list of the input tensors of the model. It provides you the list of all the input tensors in a model.

3. model.outputs():
This method is useful in returning the list of all the output tensors of a model.

4. model.summary():
It helps you to create a summary of a model. It provides you a summary of full information about the model and the layer.

5. model.to_yaml():
It returns the model as a YAML string.

6. model.get_weights():
It provides you a list of all the weights tensor as a NumPy array.

7. model.get_config():
It provides the configuration of the model in the form of the dictionary.

8. model.to_json():
It returns the representation of the model. This representation is in the form of a JSON string.

9. model.from_json():
It accepts the representation of the model in the form of a JSON string. It further helps you to create a new model.

10. model.from_config():
It accepts the configuration of the model. It further helps you to create a new model according to the information it accepts.

Compiling the Keras Model

The compilation is the process that is to be done before training the model. It configures the learning process of the model. You need to configure the model. To compile a model, you can use the compile() method.

To use the compile method, you must know about its arguments:

1. Loss:
It is an objective function. It helps you to optimize the score of a function.

2. Optimizer:
It contains built-in optimizer classes.

3. Metrics:
It provides you a list of built-in metrics functions.

Training and Predicting the Keras Model

Training of models is done after the compilation of the model and is done on NumPy array. The array consists of input data and labels.

  • To train your model, the fit() method is useful. This enables you to train the model using the training data.
  • To predict the model, predict() method suits them best. It helps you to predict the results for the new input.

Keras Functional Model

It is a more flexible API and is more advanced in nature. It is an alternative model against the Sequential Model that enables you to create models in a more complex manner. This model helps you to define multiple numbers of input and output.

These models are sharing layers. This model helps you define directed cyclic graphs, multi-layer output, sharing of the layer, etc.

To perform tasks using this model, you initially need to create an instance of the model. Further, connect the layers with this model to access the input and the output of the model.

Functional Model API enables you to reuse the trained model. Calling the model on the tensor, you can use the model as the layer. Functional Model API enables you to work with a large number of branched networks.

  • To create a new model in the Functional Model API, you can use the input() method.
  • After creating a new model, you need to create an input layer. This will help you to specify the input dimension shapes.
  • Now, import the dense model.
  • After importing the dense model, create a dense layer for the input. Now, define the model using the import module.
  • Now, specify the input and the output using the Functional API.
from keras.layers import Input
data = input(shape(2,3))
from keras.layers import Dense
layer = Dense(2)(data)
print(layer)
from keras.models import Model
model = Model(inputs=data, outputs=layer)

Conclusion

Keras is the best platform to deal with a neural network. It works on the top of TensorFlow and Theano. It focuses on the idea of Model. Keras provides two types of models: The Sequential Model and The Functional Model.

The Sequential Model is simple. It deals with non-complex models and works with a single layer. It is an easy to use model. The Functional Model is a complex model. It enables you to work with multiple layers. It works with the sharing of the layers.

These Keras Models are very useful. These enable you to create a model of your own. These are very simple and easy to work with.