- Trending Categories
- Data Structure
- Operating System
- C Programming
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to create Models in Keras?
In this article, we are going to learn about how to create Models in Keras
Keras is an open-source library in Python which provides APIs for building Artificial Neural Network Models with great flexibility. Modelling in Keras can be done either using the Functional API or the Keras Sequential Model. Keras module is also available under the popular Tensorflow Library.
Latest version and installation
The latest version of keras as of writing this article is 2.1.0.
Keras can be installed from PyPI repository using pip.
Advantages of Keras for Modelling
Keras is used for fast implementation due to the simple API it exposes
Keras is Flexible and robust and provides both simple and advanced workflows for building models
Provides industry strength API for building robust models
Can also be used for quick prototyping and research work
There are two types of Keras Models:
1. Keras Sequential Model
As the name suggest Keras Sequential model lets us build models layer by layer in a sequential manner.
This helps to create models that are limited to single input and output. It is used for building simple layers.
Example snippet to show use of Keras Sequential Model.
from keras.models import Sequential from keras.layers import Dense model=Sequential() model.add(Dense(128,input_shape=(8,))) model.add(Dense(64)) model.add(Dense(32))
2.Keras Functional API
Keras Functional API provides more flexibility in terms of creating models. It can help us to create models with multiple inputs and outputs. Layers can be added and shared across as in graphs.
Keras Functional API can be used as blueprint and the graph and nodes can be used wherever required.
Example of Keras Function API –
from keras.layers import Input, Dense,Concatenate from keras.models import Model import numpy as np # This returns a tensor inputs = Input(shape=(784,)) # a layer instance is callable on a tensor, and returns a tensor x = Dense(64, activation='relu')(inputs) x = Dense(64, activation='relu')(x) predictions = Dense(10, activation='softmax')(x) # This creates a model that includes # the Input layer and three Dense layers model = Model(inputs=inputs, outputs=predictions) model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy']) print(model.summary()) # Keras with muliple inputs input1 = Input(shape=(32,)) input2 = Input(shape=(64,)) x = Concatenate(axis=1)([input1, input2]) output = Dense(10, activation='softmax')(x) model10 = Model([input1, input2],output) print(model10.summary())
Keras using Tensorflow API [ Functional API ]
Keras is available under Tensorflow as tf.keras API. The functional API is basically centered around building directed acyclic graph (DAG) of layers. It is a graph of layers.
Example using tensorflow keras with mnist model:
import tensorflow as tf from tensorflow import keras from tensorflow.keras import layers inputs = keras.Input(shape=(784,)) image_inputs = keras.Input(shape=(32, 32, 3)) dense_layer = layers.Dense(64, activation="relu") x = dense_layer(inputs) x = layers.Dense(64, activation="relu")(x) outputs = layers.Dense(10)(x) model = keras.Model(inputs=inputs, outputs=outputs, name="mnist") #TRAINING AND INFERENCE (x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data() x_train = x_train.reshape(60000, 784).astype("float32") / 255 x_test = x_test.reshape(10000, 784).astype("float32") / 255 model.compile( loss=keras.losses.SparseCategoricalCrossentropy(from_logits=True), optimizer=keras.optimizers.RMSprop(), metrics=["accuracy"], ) history = model.fit(x_train, y_train, batch_size=32, epochs=10, validation_split=0.3) test_scores = model.evaluate(x_test, y_test, verbose=2) print("Test loss:", test_scores) print("Test accuracy:", test_scores)
Advantages of Functional API
In Functional API the input shape and dtype are created in advance using Input. There will be an internal check by the API for the specifications passed for the input and dtype and it also raises helpful suggestions.
The graph can be plotted and we can access the intermediate nodes in a graph. Such as
features_list = [layer.output for layer in vgg19.layers] feat_extraction_model = keras.Model(inputs=vgg19.input, outputs=features_list)
A functional API is serializable and can be stored as a single file since it is a data structure.
Disadvantages of Functional API
Dynamic architectures are not supported since the Functional API treats a network as a directed acyclic graph.
Keras is a powerful tool/ library for deep learning model implementation both for industry and as well as for prototyping owing to its simplicity and robustness. While the Sequential API helps to build quick models, where more control is needed the Functional API comes to the rescue.
- How to create a list of regression models for predefined vectors in R?
- What is TensorFlow and how Keras work with TensorFlow to create Neural Networks?
- Discuss how the Keras functional API can be used to create layers using Python
- How can Keras be used to create a callback and save the weights using Python?
- How can Keras be used to create a model where the input shape of model is specified in advance?
- How can Keras be used to implement ensembling in Python?
- How to order the results of related models in Laravel Eloquent?
- How can Keras be used to compile the built sequential model in Python?
- How can Keras be used to save model using hdf5 format in Python?
- How can Keras be used to plot the model using Python?
- How can Keras be used to train the model using Python?
- How can Keras be used to evaluate the model using Python?
- How to load an image and show the image using Keras?
- Reference Models in Computer Network
- Exporting models data in Django