

{"id":79237,"date":"2020-07-11T13:47:38","date_gmt":"2020-07-11T08:17:38","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=79237"},"modified":"2021-08-25T13:49:39","modified_gmt":"2021-08-25T08:19:39","slug":"keras-convolution-neural-network","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/keras-convolution-neural-network\/","title":{"rendered":"Keras Convolution Neural Network Layers and Working"},"content":{"rendered":"<p>We widely use Convolution Neural Networks for computer vision and image classification tasks. The Convolution Neural Network architecture generally consists of two parts. The first part is the feature extractor which we form from a series of convolution and pooling layers. The second part includes fully connected layers which act as classifiers.<\/p>\n<p>In this article, we will study how to use Convolution Neural Networks for image classification tasks. We will walk through a few examples to show the code for the implementation of Convolution Neural Networks in Keras.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Keras-Convolution-Neural-Network.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-79240\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Keras-Convolution-Neural-Network.jpg\" alt=\"Keras Convolution Neural Network\" width=\"802\" height=\"420\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Keras-Convolution-Neural-Network.jpg 802w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Keras-Convolution-Neural-Network-300x157.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Keras-Convolution-Neural-Network-150x79.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Keras-Convolution-Neural-Network-768x402.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Keras-Convolution-Neural-Network-520x272.jpg 520w\" sizes=\"auto, (max-width: 802px) 100vw, 802px\" \/><\/a><\/p>\n<h2>Convolution Neural Network Architecture<\/h2>\n<p>The convolution neural network algorithm is the result of continuous advancements in computer vision with deep learning.<br \/>\nCNN is a Deep learning algorithm that is able to assign importance to various objects in the image and able to differentiate them.<br \/>\nCNN has the ability to learn the characteristics and perform classification.<br \/>\nAn input image has many spatial and temporal dependencies, CNN captures these characteristics using relevant filters\/kernels.<\/p>\n<p>A Kernel or filter is an element in CNN that performs convolution around the image in the first part. The kernel moves to the right and shifts according to the stride value. Every time during convolution a matrix multiplication operation is performed.<\/p>\n<p>After convolution, we obtain another image with a different height, width, and depth. We obtain more channels than just RGB but less width and height.<\/p>\n<p>We slide each filter though out the image step by step, this step in the forward pass is called stride.<\/p>\n<h2>Layers in CNN<\/h2>\n<h3>1. Keras Convolution layer<\/h3>\n<p>It is the first layer to extract features from the input image. Here we define the kernel as the layer parameter. We perform matrix multiplication operations on the input image using the kernel.<\/p>\n<p>Example:<\/p>\n<p>Suppose a 3*3 image pixel and a 2*2 filter as shown:<\/p>\n<p>pixel : [[1,0,1],<br \/>\n[0,1,0],<br \/>\n[1,0,1]]<br \/>\nfilter : [[1,0],<br \/>\n[0,1]]<\/p>\n<p>The restaurant matrix after convolution of filter would be:<br \/>\n[[2,0],<br \/>\n[0,2]]<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Convolution-Layer-in-Keras-df.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-79239\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Convolution-Layer-in-Keras-df.jpg\" alt=\"Convolution Layer in Keras\" width=\"986\" height=\"586\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Convolution-Layer-in-Keras-df.jpg 986w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Convolution-Layer-in-Keras-df-300x178.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Convolution-Layer-in-Keras-df-150x89.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Convolution-Layer-in-Keras-df-768x456.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Convolution-Layer-in-Keras-df-520x309.jpg 520w\" sizes=\"auto, (max-width: 986px) 100vw, 986px\" \/><\/a><\/p>\n<h3>2. Keras Pooling Layer<\/h3>\n<p>After convolution, we perform pooling to reduce the number of parameters and computations.<br \/>\nThere are different types of pooling operations, the most common ones are max pooling and average pooling.<\/p>\n<p>Example:<br \/>\nTake a sample case of max pooling with 2*2 filter and stride 2.<\/p>\n<p>Image pixels:<br \/>\n[[1,2,3,4],<br \/>\n[5,6,7,8],<br \/>\n[3,4,5,6],<br \/>\n[6,7,8,9]]<\/p>\n<p>The resultant matrix after max-pooling would be:<br \/>\n[[6,8],<br \/>\n[7,9]]<\/p>\n<h3><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Pooling-Layer-in-Keras-df.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-79241\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Pooling-Layer-in-Keras-df.jpg\" alt=\"Pooling Layer in Keras\" width=\"521\" height=\"307\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Pooling-Layer-in-Keras-df.jpg 521w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Pooling-Layer-in-Keras-df-300x177.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Pooling-Layer-in-Keras-df-150x88.jpg 150w\" sizes=\"auto, (max-width: 521px) 100vw, 521px\" \/><\/a><br \/>\n3. Keras Dropout Layer<\/h3>\n<p>It is used to prevent the network from overfitting. In this layer, some fraction of units in the network is dropped in training such that the model is trained on all the units.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Dropout-Layer-in-Keras-DF.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-79242\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Dropout-Layer-in-Keras-DF.jpg\" alt=\"Dropout Layer in Keras\" width=\"629\" height=\"401\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Dropout-Layer-in-Keras-DF.jpg 629w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Dropout-Layer-in-Keras-DF-300x191.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Dropout-Layer-in-Keras-DF-150x96.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Dropout-Layer-in-Keras-DF-520x332.jpg 520w\" sizes=\"auto, (max-width: 629px) 100vw, 629px\" \/><\/a><\/p>\n<p>A series of convolution and pooling layers are used for feature extraction. After that, we construct densely connected layers to perform classification based on these features.<\/p>\n<h3>4. Keras Flatten Layer<\/h3>\n<p>It is used to convert the data into 1D arrays to create a single feature vector. After flattening we forward the data to a fully connected layer for final classification.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Flatten-Layer-in-Keras-df.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-79243\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Flatten-Layer-in-Keras-df.jpg\" alt=\"Flatten Layer in Keras\" width=\"406\" height=\"291\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Flatten-Layer-in-Keras-df.jpg 406w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Flatten-Layer-in-Keras-df-300x215.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Flatten-Layer-in-Keras-df-150x108.jpg 150w\" sizes=\"auto, (max-width: 406px) 100vw, 406px\" \/><\/a><\/p>\n<h3>5. Keras Dense Layer<\/h3>\n<p>It is a fully connected layer. Each node in this layer is connected to the previous layer i.e densely connected. This layer is used at the final stage of CNN to perform classification.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Dense-Layer-in-Keras-df.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-79244\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Dense-Layer-in-Keras-df.jpg\" alt=\"Dense Layer in Keras\" width=\"937\" height=\"345\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Dense-Layer-in-Keras-df.jpg 937w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Dense-Layer-in-Keras-df-300x110.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Dense-Layer-in-Keras-df-150x55.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Dense-Layer-in-Keras-df-768x283.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Dense-Layer-in-Keras-df-520x191.jpg 520w\" sizes=\"auto, (max-width: 937px) 100vw, 937px\" \/><\/a><\/p>\n<h2>Implementing CNN on CIFAR 10 Dataset<\/h2>\n<p>CIFAR 10 dataset consists of 10 image classes. The available image classes are :<\/p>\n<ul>\n<li>Car<\/li>\n<li>Airplane<\/li>\n<li>Bird<\/li>\n<li>Cat<\/li>\n<li>Deer<\/li>\n<li>Dog<\/li>\n<li>Frog<\/li>\n<li>Horse<\/li>\n<li>Ship<\/li>\n<li>Truck<\/li>\n<\/ul>\n<p>This is one of the most popular datasets that allow researchers to practice different algorithms for object recognition.<br \/>\nConvolution Neural Networks have shown the best results in solving the CIFAR-10 problem.<\/p>\n<p>Let&#8217;s build our Convolution model to recognize CIFAR-10 classes.<\/p>\n<p><strong>1. Load the dataset from keras datasets module.<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">from keras.datasets import cifar10\r\nimport matplotlib.pyplot as plt\r\n\r\n(train_X,train_Y),(test_X,test_Y)=cifar10.load_data()<\/pre>\n<p><strong>2. To visualize the dataset<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">n=6\r\nplt.figure(figsize=(20,10))\r\nfor i in range(n):\r\nplt.subplot(330+1+i)\r\nplt.imshow(train_X[i])\r\nplt.show()<\/pre>\n<p><strong>3. The dataset looks like<\/strong><\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/1_visualize_dataset.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-79245\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/1_visualize_dataset.png\" alt=\"Keras visualize_dataset\" width=\"1920\" height=\"911\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/1_visualize_dataset.png 1920w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/1_visualize_dataset-300x142.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/1_visualize_dataset-1024x486.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/1_visualize_dataset-150x71.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/1_visualize_dataset-768x364.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/1_visualize_dataset-1536x729.png 1536w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/1_visualize_dataset-520x247.png 520w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><br \/>\nNow import required modules,<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">from keras.models import Sequential\r\nfrom keras.layers import Dense\r\nfrom keras.layers import Dropout\r\nfrom keras.layers import Flatten\r\nfrom keras.constraints import maxnorm\r\nfrom keras.optimizers import SGD\r\nfrom keras.layers.convolutional import Conv2D\r\nfrom keras.layers.convolutional import MaxPooling2D\r\nfrom keras.utils import np_utils<\/pre>\n<p><strong>4. Normalizing inputs<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">train_x=train_X.astype('float32')\r\ntest_X=test_X.astype('float32')\r\n\r\ntrain_X=train_X\/255.0\r\ntest_X=test_X\/255.0<\/pre>\n<p><strong>5. One hot encoding<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">train_Y=np_utils.to_categorical(train_Y)\r\ntest_Y=np_utils.to_categorical(test_Y)\r\n\r\nnum_classes=test_Y.shape[1]<\/pre>\n<p><strong>6. Build the model<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">model=Sequential()\r\nmodel.add(Conv2D(32,(3,3),input_shape=(32,32,3),padding='same',activation='relu',kernel_constraint=maxnorm(3)))\r\nmodel.add(Dropout(0.2))\r\nmodel.add(Conv2D(32,(3,3),activation='relu',padding='same',kernel_constraint=maxnorm(3)))\r\nmodel.add(MaxPooling2D(pool_size=(2,2)))\r\nmodel.add(Flatten())\r\nmodel.add(Dense(512,activation='relu',kernel_constraint=maxnorm(3)))\r\nmodel.add(Dropout(0.5))\r\nmodel.add(Dense(num_classes, activation='softmax'))<\/pre>\n<p><strong>7. Model Compiling<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">sgd=SGD(lr=0.01,momentum=0.9, decay=(0.01\/25),nesterov=False)\r\nmodel.compile(loss='categorical_crossentropy',optimizer=sgd,metrics=['accuracy'])<\/pre>\n<p><strong>8. Analyzing Model Summary<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">model.summary()<\/pre>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/2_model_summary.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-79246\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/2_model_summary.png\" alt=\"keras model summary\" width=\"1920\" height=\"911\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/2_model_summary.png 1920w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/2_model_summary-300x142.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/2_model_summary-1024x486.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/2_model_summary-150x71.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/2_model_summary-768x364.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/2_model_summary-1536x729.png 1536w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/2_model_summary-520x247.png 520w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p><strong>9. Train the model and check its accuracy on test data<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">model.fit(train_X,train_Y,validation_data=(test_X,test_Y),epochs=10,batch_size=32)<\/pre>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/3_train_model.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-79247\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/3_train_model.png\" alt=\"train keras model\" width=\"1920\" height=\"911\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/3_train_model.png 1920w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/3_train_model-300x142.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/3_train_model-1024x486.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/3_train_model-150x71.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/3_train_model-768x364.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/3_train_model-1536x729.png 1536w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/3_train_model-520x247.png 520w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p><strong>10. Evaluate the model<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">_,acc=model.evaluate(test_X,test_Y)\r\nprint(acc*100)<\/pre>\n<h2>Implementing CNN on Fashion MNIST Dataset<\/h2>\n<p>The Fashion MNIST dataset consists of a training set of 60000 images and a testing set of 10000 images. There are 10 image classes in this dataset and each class has a mapping corresponding to the following labels:<\/p>\n<ul>\n<li>0 T-shirt\/top<\/li>\n<li>1 Trouser<\/li>\n<li>2 pullover<\/li>\n<li>3 Dress<\/li>\n<li>4 Coat<\/li>\n<li>5 sandals<\/li>\n<li>6 shirt<\/li>\n<li>7 sneaker<\/li>\n<li>8 bag<\/li>\n<li>9 ankle boot<\/li>\n<\/ul>\n<p>Let&#8217;s build our CNN model on this dataset.<\/p>\n<p><strong>1. Import required modules<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">from numpy import mean\r\nfrom numpy import std\r\nfrom matplotlib import pyplot\r\nfrom sklearn.model_selection import KFold\r\nfrom keras.datasets import fashion_mnist\r\nfrom keras.utils import to_categorical\r\nfrom keras.models import Sequential\r\nfrom keras.layers import Conv2D\r\nfrom keras.layers import MaxPooling2D\r\nfrom keras.layers import Dense\r\nfrom keras.layers import Flatten\r\nfrom keras.optimizers import SGD<\/pre>\n<p><strong>2. Load the dataset<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">(train_X,train_Y),(test_X,test_Y)=fashion_mnist.load_data()<\/pre>\n<p><strong>3. Reshaping and one hot encoding<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">train_X=train_X.reshape((train_X.shape[0],28,28,1))\r\ntest_X=test_X.reshape((test_X.shape[0],28,28,1))\r\n\r\ntrain_Y=to_categorical(train_Y)\r\ntest_Y=to_categorical(test_Y)<\/pre>\n<p><strong>4. Visualize the dataset using matplotlib<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">n=5\r\n\r\npyplot.figure(figsize=(20,2))\r\n\r\nfor i in range(n):\r\nax=pyplot.subplot(1,n,i+1)\r\npyplot.imshow(train_X[i].reshape(28,28))\r\npyplot.gray()\r\nax.get_xaxis().set_visible(False)\r\nax.get_yaxis().set_visible(False)\r\npyplot.show()<\/pre>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/4_visualize_MNIST.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-79248\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/4_visualize_MNIST.png\" alt=\"visualize_MNIST\" width=\"1920\" height=\"911\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/4_visualize_MNIST.png 1920w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/4_visualize_MNIST-300x142.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/4_visualize_MNIST-1024x486.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/4_visualize_MNIST-150x71.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/4_visualize_MNIST-768x364.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/4_visualize_MNIST-1536x729.png 1536w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/4_visualize_MNIST-520x247.png 520w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p><strong>5. Normalizing data<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">train_X=train_X.astype('float32')\r\ntest_X=test_X.astype('float32')\r\n\r\ntrain_X=train_X\/255.0\r\ntest_X=test_X\/255.0<\/pre>\n<p><strong>6. Build the model<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">model=Sequential()\r\nmodel.add(Conv2D(32,(3,3),activation='relu',kernel_initializer='he_uniform',input_shape=(28,28,1)))\r\nmodel.add(MaxPooling2D((2,2)))\r\nmodel.add(Flatten())\r\nmodel.add(Dense(100,activation='relu',kernel_initializer='he_uniform'))\r\nmodel.add(Dense(10,activation='softmax'))\r\n\r\nopt=SGD(lr=0.01, momentum=0.9)\r\nmodel.compile(optimizer=opt,loss='categorical_crossentropy',metrics=['accuracy'])<\/pre>\n<p><strong>7. Training our model<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">model.fit(train_X,train_Y,epochs=10,batch_size=32)<\/pre>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/5_train_model_MNIST.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-79249\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/5_train_model_MNIST.png\" alt=\"train_model_MNIST\" width=\"1920\" height=\"911\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/5_train_model_MNIST.png 1920w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/5_train_model_MNIST-300x142.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/5_train_model_MNIST-1024x486.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/5_train_model_MNIST-150x71.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/5_train_model_MNIST-768x364.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/5_train_model_MNIST-1536x729.png 1536w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/5_train_model_MNIST-520x247.png 520w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p><strong>8. Evaluate our Model P<\/strong><\/p>\n<p><strong>erformance<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">_, acc=model.evaluate(test_X,test_Y)\r\nprint(acc*100)<\/pre>\n<h2>Summary<\/h2>\n<p>This tutorial talks about the use of cases of convolution neural network and explains how to implement them in Keras. Convolution Neural Networks have outstanding results on image classification problems. The above examples verify this fact. Here we have shown two examples of Convolution Neural Network &#8211; One on CIFAR 10 dataset problem and another on Fashion MNIST dataset problem.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We widely use Convolution Neural Networks for computer vision and image classification tasks. The Convolution Neural Network architecture generally consists of two parts. The first part is the feature extractor which we form from&#46;&#46;&#46;<\/p>\n","protected":false},"author":10,"featured_media":79240,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22185],"tags":[22596,22598,22599,22597],"class_list":["post-79237","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-keras","tag-convolution-neural-network","tag-keras-convolution-layer","tag-keras-pooling-layer","tag-keras-tutorial"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Keras Convolution Neural Network Layers and Working - DataFlair<\/title>\n<meta name=\"description\" content=\"Convolution neural Network in keras - Learn what it is and its architecture with different layers like convolution layer, pooling layer, dense layer, etc.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/keras-convolution-neural-network\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Keras Convolution Neural Network Layers and Working - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Convolution neural Network in keras - Learn what it is and its architecture with different layers like convolution layer, pooling layer, dense layer, etc.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/keras-convolution-neural-network\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-11T08:17:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-08-25T08:19:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Keras-Convolution-Neural-Network.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"802\" \/>\n\t<meta property=\"og:image:height\" content=\"420\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Keras Convolution Neural Network Layers and Working - DataFlair","description":"Convolution neural Network in keras - Learn what it is and its architecture with different layers like convolution layer, pooling layer, dense layer, etc.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/keras-convolution-neural-network\/","og_locale":"en_US","og_type":"article","og_title":"Keras Convolution Neural Network Layers and Working - DataFlair","og_description":"Convolution neural Network in keras - Learn what it is and its architecture with different layers like convolution layer, pooling layer, dense layer, etc.","og_url":"https:\/\/data-flair.training\/blogs\/keras-convolution-neural-network\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2020-07-11T08:17:38+00:00","article_modified_time":"2021-08-25T08:19:39+00:00","og_image":[{"width":802,"height":420,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Keras-Convolution-Neural-Network.jpg","type":"image\/jpeg"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/keras-convolution-neural-network\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/keras-convolution-neural-network\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/a90b082e16aa38d207212d22b0581f33"},"headline":"Keras Convolution Neural Network Layers and Working","datePublished":"2020-07-11T08:17:38+00:00","dateModified":"2021-08-25T08:19:39+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/keras-convolution-neural-network\/"},"wordCount":763,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/keras-convolution-neural-network\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Keras-Convolution-Neural-Network.jpg","keywords":["Convolution Neural Network","keras convolution layer","keras pooling layer","keras tutorial"],"articleSection":["Keras Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/keras-convolution-neural-network\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/keras-convolution-neural-network\/","url":"https:\/\/data-flair.training\/blogs\/keras-convolution-neural-network\/","name":"Keras Convolution Neural Network Layers and Working - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/keras-convolution-neural-network\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/keras-convolution-neural-network\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Keras-Convolution-Neural-Network.jpg","datePublished":"2020-07-11T08:17:38+00:00","dateModified":"2021-08-25T08:19:39+00:00","description":"Convolution neural Network in keras - Learn what it is and its architecture with different layers like convolution layer, pooling layer, dense layer, etc.","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/keras-convolution-neural-network\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/keras-convolution-neural-network\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/keras-convolution-neural-network\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Keras-Convolution-Neural-Network.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/Keras-Convolution-Neural-Network.jpg","width":802,"height":420,"caption":"Keras Convolution Neural Network"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/keras-convolution-neural-network\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"Keras Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/keras\/"},{"@type":"ListItem","position":3,"name":"Keras Convolution Neural Network Layers and Working"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/a90b082e16aa38d207212d22b0581f33","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/dd6de0d647a0185cd6faf264e4ba860b0d85d08d7070766f9cd41bea5bb0b227?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/dd6de0d647a0185cd6faf264e4ba860b0d85d08d7070766f9cd41bea5bb0b227?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dd6de0d647a0185cd6faf264e4ba860b0d85d08d7070766f9cd41bea5bb0b227?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"The DataFlair Team is passionate about delivering top-notch tutorials and resources on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. With expertise in the tech industry, we simplify complex topics to help learners excel. Stay updated with our latest insights.","url":"https:\/\/data-flair.training\/blogs\/author\/dfadteam1\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/79237","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=79237"}],"version-history":[{"count":1,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/79237\/revisions"}],"predecessor-version":[{"id":79250,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/79237\/revisions\/79250"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/79240"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=79237"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=79237"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=79237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}