{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "kernelspec": { "name": "python3", "display_name": "Python 3", "language": "python" }, "language_info": { "mimetype": "text/x-python", "nbconvert_exporter": "python", "name": "python", "pygments_lexer": "ipython3", "version": "3.5.4", "file_extension": ".py", "codemirror_mode": { "version": 3, "name": "ipython" } }, "colab": { "name": "DeepLearningWithKeras-NeuralNetworks-DigitClassification.ipynb", "version": "0.3.2", "provenance": [] } }, "cells": [ { "cell_type": "markdown", "metadata": { "collapsed": true, "id": "Tt8924WQ2BST", "colab_type": "text" }, "source": [ "# Digit Classification with Neural Networks" ] }, { "cell_type": "markdown", "metadata": { "id": "VtyebjvN2BSU", "colab_type": "text" }, "source": [ "## Import packages" ] }, { "cell_type": "code", "metadata": { "trusted": true, "id": "zstpjJOH2BSW", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 34 }, "outputId": "342104db-cfeb-4fe5-95b5-672a52d0a645" }, "source": [ "from keras.datasets import mnist\n", "from keras.preprocessing.image import load_img, array_to_img\n", "from keras.utils.np_utils import to_categorical\n", "from keras.models import Sequential\n", "from keras.layers import Dense\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ], "execution_count": 1, "outputs": [ { "output_type": "stream", "text": [ "Using TensorFlow backend.\n" ], "name": "stderr" } ] }, { "cell_type": "markdown", "metadata": { "id": "nqgY__cH2BSb", "colab_type": "text" }, "source": [ "## Load the data" ] }, { "cell_type": "code", "metadata": { "trusted": true, "id": "VGOk-O-W2BSd", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 50 }, "outputId": "e06b3f45-3c2f-43ae-a72d-c749853ff634" }, "source": [ "(X_train, y_train), (X_test, y_test) = mnist.load_data()" ], "execution_count": 2, "outputs": [ { "output_type": "stream", "text": [ "Downloading data from https://s3.amazonaws.com/img-datasets/mnist.npz\n", "11493376/11490434 [==============================] - 1s 0us/step\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "trusted": true, "id": "QvLpuXWG2BSg", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 101 }, "outputId": "78d5dd22-2d6a-494b-8717-2a49b3b08537" }, "source": [ "print(type(X_train))\n", "print(X_train.shape)\n", "print(y_train.shape) #60k is the answers\n", "print(X_test.shape) #10K entries\n", "print(y_test.shape)\n", "\n" ], "execution_count": 3, "outputs": [ { "output_type": "stream", "text": [ "\n", "(60000, 28, 28)\n", "(60000,)\n", "(10000, 28, 28)\n", "(10000,)\n" ], "name": "stdout" } ] }, { "cell_type": "markdown", "metadata": { "collapsed": true, "id": "egYr3_Cl2BSj", "colab_type": "text" }, "source": [ "## Understanding the image data format" ] }, { "cell_type": "code", "metadata": { "trusted": true, "id": "k98nNU7n2BSk", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 302 }, "outputId": "88a50deb-7ebd-45c0-9a56-79ce19ee817c" }, "source": [ "#Lets look at the data to see what it looks like\n", "print(X_train[0].shape) #Look at the size of the 1st entry\n", "\n", "#Plot it to see what it looks like\n", "\n", "plt.imshow(X_train[0])\n", "\n", "#Print the answer\n", "print(\"The answer is {}\".format(y_train[0]))" ], "execution_count": 4, "outputs": [ { "output_type": "stream", "text": [ "(28, 28)\n", "The answer is 5\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "tags": [] } } ] }, { "cell_type": "markdown", "metadata": { "id": "Vx6blgAX2BSn", "colab_type": "text" }, "source": [ "## Preprocessing the image data" ] }, { "cell_type": "code", "metadata": { "trusted": true, "id": "kCgYpHgN2BSo", "colab_type": "code", "colab": {} }, "source": [ "image_height, image_width =28, 28" ], "execution_count": 0, "outputs": [] }, { "cell_type": "code", "metadata": { "trusted": true, "id": "nOXZBfo32BSr", "colab_type": "code", "colab": {} }, "source": [ "#Lets reshape each image to be a single vector rather than a matrix\n", "\n", "#Have to flatten to plug into neural net\n", "\n", "X_train =X_train.reshape(60000,image_height*image_width)\n", "\n", "X_test =X_test.reshape(10000,image_height*image_width)" ], "execution_count": 0, "outputs": [] }, { "cell_type": "code", "metadata": { "trusted": true, "id": "IpJPT-4J2BSt", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 50 }, "outputId": "0cdffd6d-c4c2-4dbd-e80a-012b5c7e8fff" }, "source": [ "print(X_train.shape) #28X28 =784\n", "print(X_test.shape)\n" ], "execution_count": 7, "outputs": [ { "output_type": "stream", "text": [ "(60000, 784)\n", "(10000, 784)\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "trusted": true, "id": "eEvI6YTz2BSz", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 34 }, "outputId": "e41857a6-5a9f-4982-c907-20f9dee6c8c1" }, "source": [ "#Check to see if image is between 0-255\n", "print(min(X_train[0]), max(X_train[0])) #it is! so we need to normalize\n", "\n", "#We will convert data to float (insead of int) to scale the data betwn 0-1 (not 0-255)\n", "\n", "X_train = X_train.astype('float32') #Convert to float\n", "X_test = X_test.astype('float32') #Convert to float" ], "execution_count": 8, "outputs": [ { "output_type": "stream", "text": [ "0 255\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "trusted": true, "id": "OgMFUuTf2BS6", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 34 }, "outputId": "e0b48cd0-479d-4c25-eec7-d508696add93" }, "source": [ "#Normalize the data\n", "X_train /= 255.0\n", "X_test /= 255.0\n", "print(min(X_train[0]), max(X_train[0])) #Normalized" ], "execution_count": 9, "outputs": [ { "output_type": "stream", "text": [ "0.0 1.0\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "trusted": true, "id": "us9-i2wW2BTB", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 50 }, "outputId": "7eac3e76-e8c1-48fc-9c1f-8d24b436bd93" }, "source": [ "# We want the output to be in one of 9 bins to rep each of the 0-9 numbers\n", "#In order to do this we can convert the answers to a categorical value\n", "#We do this using the 'to_categorical' method\n", "\n", "y_train =to_categorical(y_train, 10)\n", "y_test =to_categorical(y_test, 10)\n", "print(y_train.shape)\n", "print(y_test.shape)" ], "execution_count": 10, "outputs": [ { "output_type": "stream", "text": [ "(60000, 10)\n", "(10000, 10)\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "trusted": true, "id": "2XX0dPYS2BTG", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 302 }, "outputId": "b4cc6d2e-b976-48cc-fe50-78ec035ced55" }, "source": [ "print(y_test[0])\n", "plt.imshow(X_test[0].reshape(image_height, image_width))" ], "execution_count": 11, "outputs": [ { "output_type": "stream", "text": [ "[0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n" ], "name": "stdout" }, { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": { "tags": [] }, "execution_count": 11 }, { "output_type": "display_data", "data": { "image/png": "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\nh9/2LEn3S7opIg5I+rqksyUt0uiVwbhvMI+INRExGBGDfepvQ8sA2mFS4bfdp9Hg3x0RD0hSROyL\niDci4pikb0gqf/oEQE+ZMPy2LekOSTsi4itjls8ds9pnJD3Z/vYAdMpkXu2/UNJySdttb62WrZS0\nzPYijY727JJ0XUc6REv+8qWFxfqjv7WgWI+929vYDXrJZF7tf0SSxykxpg9MYbzDD0iK8ANJEX4g\nKcIPJEX4gaQIP5CUo4tTLJ/i2XGBL+7a/oBsNsdGHYj94w3NvwVnfiApwg8kRfiBpAg/kBThB5Ii\n/EBShB9Iqqvj/LZfkPSTMYtOl/Ri1xp4e3q1t17tS6K3ZrWzt7Mi4t2TWbGr4X/Lzu3hiBisrYGC\nXu2tV/uS6K1ZdfXGZT+QFOEHkqo7/Gtq3n9Jr/bWq31J9NasWnqr9Tk/gPrUfeYHUJNawm/7Utv/\nYftZ2zfX0UMjtnfZ3m57q+3hmntZa3vE9pNjls22/bDtndXvcadJq6m3Vbb3VMduq+3La+ptvu1/\ntv207ads31gtr/XYFfqq5bh1/bLf9jRJ/ynpEkm7JW2RtCwinu5qIw3Y3iVpMCJqHxO2/ZuSXpF0\nZ0ScVy27VdL+iLil+o/z1Ij4kx7pbZWkV+qeubmaUGbu2JmlJV0p6XdV47Er9HWVajhudZz5F0t6\nNiKei4jDku6VtLSGPnpeRGyStP9Ni5dKWlfdXqfRP56ua9BbT4iIvRHxeHX7oKTjM0vXeuwKfdWi\njvDPk/TTMfd3q7em/A5JP7T9mO2hupsZx5xq2nRJel7SnDqbGceEMzd305tmlu6ZY9fMjNftxgt+\nb3VRRPy6pMskXV9d3vakGH3O1kvDNZOaublbxplZ+ufqPHbNznjdbnWEf4+k+WPun1kt6wkRsaf6\nPSLpQfXe7MP7jk+SWv0eqbmfn+ulmZvHm1laPXDsemnG6zrCv0XSObbfa3uGpKslra+hj7ewPVC9\nECPbA5I+qd6bfXi9pBXV7RWSHqqxl1/QKzM3N5pZWjUfu56b8Toiuv4j6XKNvuL/Y0l/WkcPDfp6\nn6Qnqp+n6u5N0j0avQw8otHXRq6RdJqkjZJ2SvonSbN7qLe7JG2XtE2jQZtbU28XafSSfpukrdXP\n5XUfu0JftRw33uEHJMULfkBShB9IivADSRF+ICnCDyRF+IGkCD+QFOEHkvp/uK0ZUt56JeQAAAAA\nSUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "tags": [] } } ] }, { "cell_type": "markdown", "metadata": { "collapsed": true, "id": "m81yrfqe2BTI", "colab_type": "text" }, "source": [ "## Build a model" ] }, { "cell_type": "code", "metadata": { "trusted": true, "id": "Gg059r_H2BTJ", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 87 }, "outputId": "b7ef9775-737e-43b3-89c6-ee49351a9a9d" }, "source": [ "#Assign the model type\n", "model = Sequential()" ], "execution_count": 12, "outputs": [ { "output_type": "stream", "text": [ "WARNING: Logging before flag parsing goes to stderr.\n", "W0820 07:05:57.344842 140205005252480 deprecation_wrapper.py:119] From /usr/local/lib/python3.6/dist-packages/keras/backend/tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n", "\n" ], "name": "stderr" } ] }, { "cell_type": "code", "metadata": { "trusted": true, "id": "mmHICxrt2BTM", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 104 }, "outputId": "4e15d86f-f54a-43b5-e9af-de21379decc3" }, "source": [ "#Add layers to the model\n", "\n", "model.add(Dense(512, activation='relu',input_shape=(784,)))\n", "model.add(Dense(512, activation='relu'))\n", "model.add(Dense(10, activation='softmax'))\n" ], "execution_count": 13, "outputs": [ { "output_type": "stream", "text": [ "W0820 07:05:57.396619 140205005252480 deprecation_wrapper.py:119] From /usr/local/lib/python3.6/dist-packages/keras/backend/tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n", "\n", "W0820 07:05:57.411686 140205005252480 deprecation_wrapper.py:119] From /usr/local/lib/python3.6/dist-packages/keras/backend/tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n", "\n" ], "name": "stderr" } ] }, { "cell_type": "markdown", "metadata": { "collapsed": true, "id": "4OUEjsAN2BTP", "colab_type": "text" }, "source": [ "## Compile the model" ] }, { "cell_type": "code", "metadata": { "trusted": true, "id": "O8DG_lWm2BTQ", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 104 }, "outputId": "95890ddd-0674-4ff4-f276-77fb1856b3ad" }, "source": [ "model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])" ], "execution_count": 14, "outputs": [ { "output_type": "stream", "text": [ "W0820 07:05:57.470818 140205005252480 deprecation_wrapper.py:119] From /usr/local/lib/python3.6/dist-packages/keras/optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n", "\n", "W0820 07:05:57.507090 140205005252480 deprecation_wrapper.py:119] From /usr/local/lib/python3.6/dist-packages/keras/backend/tensorflow_backend.py:3295: The name tf.log is deprecated. Please use tf.math.log instead.\n", "\n" ], "name": "stderr" } ] }, { "cell_type": "code", "metadata": { "trusted": true, "id": "YsaQaFZW2BTT", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 235 }, "outputId": "0e6b3054-22a3-40ca-b781-b6a5aca3e6e9" }, "source": [ "model.summary()" ], "execution_count": 15, "outputs": [ { "output_type": "stream", "text": [ "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "dense_1 (Dense) (None, 512) 401920 \n", "_________________________________________________________________\n", "dense_2 (Dense) (None, 512) 262656 \n", "_________________________________________________________________\n", "dense_3 (Dense) (None, 10) 5130 \n", "=================================================================\n", "Total params: 669,706\n", "Trainable params: 669,706\n", "Non-trainable params: 0\n", "_________________________________________________________________\n" ], "name": "stdout" } ] }, { "cell_type": "markdown", "metadata": { "trusted": false, "id": "sBRDPjFB2BTW", "colab_type": "text" }, "source": [ "## Calculating the number of parameters for each layer\n", "\n", "### *Layer 1*\n", "* After flattening each image we get:\n", " * 28 X 28=784\n", "* We then pass the 784 into 512 nodes in the model plus a bias layer 512 (zeros)\n", "* This gives:\n", " * 784(pixels) X 512(neurons) X 512(bias)=401920\n", "\n", "\n", "### *Layer 2*\n", "* We have 512 (output from previous), going into another 512 nodes (in new layer), plus another 512\n", "* This gives:\n", " * 512 (input) X 512 (this layer) X 512 =262656\n", "\n", "### *Layer 3*\n", "* We have 512 (incoming from last layer), going into 10 nodes (in this layer), 10 bias units\n", "* This gives:\n", " * 512 (last layer) X 10 (nodes in this layer) + 10 (bias) =5130" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true, "id": "MrYIj_gd2BTX", "colab_type": "text" }, "source": [ "## Train the model" ] }, { "cell_type": "markdown", "metadata": { "trusted": false, "id": "CinytpOS2BTY", "colab_type": "text" }, "source": [ "Now we can trian our model. \n", "To do this we have to pass:\n", "* Training data\n", "* Number of epochs (the number of times that model passes through the training data)\n", "* Validation data (testing data)\n" ] }, { "cell_type": "code", "metadata": { "trusted": true, "id": "xZmpLf0f2BTZ", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 810 }, "outputId": "beb5cf33-fa5f-48a3-fc87-e8ba9a77b6dc" }, "source": [ "history =model.fit(X_train, y_train, epochs =20, validation_data=(X_test, y_test))" ], "execution_count": 16, "outputs": [ { "output_type": "stream", "text": [ "W0820 07:05:57.687465 140205005252480 deprecation.py:323] From /usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/math_grad.py:1250: add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", "Instructions for updating:\n", "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", "W0820 07:05:57.748347 140205005252480 deprecation_wrapper.py:119] From /usr/local/lib/python3.6/dist-packages/keras/backend/tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Train on 60000 samples, validate on 10000 samples\n", "Epoch 1/20\n", "60000/60000 [==============================] - 27s 452us/step - loss: 0.1842 - acc: 0.9437 - val_loss: 0.1321 - val_acc: 0.9579\n", "Epoch 2/20\n", "60000/60000 [==============================] - 26s 437us/step - loss: 0.0789 - acc: 0.9759 - val_loss: 0.0777 - val_acc: 0.9754\n", "Epoch 3/20\n", "60000/60000 [==============================] - 26s 432us/step - loss: 0.0563 - acc: 0.9823 - val_loss: 0.0869 - val_acc: 0.9733\n", "Epoch 4/20\n", "60000/60000 [==============================] - 26s 426us/step - loss: 0.0431 - acc: 0.9864 - val_loss: 0.0694 - val_acc: 0.9800\n", "Epoch 5/20\n", "60000/60000 [==============================] - 26s 433us/step - loss: 0.0346 - acc: 0.9891 - val_loss: 0.0767 - val_acc: 0.9817\n", "Epoch 6/20\n", "60000/60000 [==============================] - 26s 435us/step - loss: 0.0301 - acc: 0.9905 - val_loss: 0.0891 - val_acc: 0.9782\n", "Epoch 7/20\n", "60000/60000 [==============================] - 26s 427us/step - loss: 0.0251 - acc: 0.9923 - val_loss: 0.1008 - val_acc: 0.9777\n", "Epoch 8/20\n", "60000/60000 [==============================] - 26s 435us/step - loss: 0.0205 - acc: 0.9935 - val_loss: 0.1029 - val_acc: 0.9775\n", "Epoch 9/20\n", "60000/60000 [==============================] - 26s 432us/step - loss: 0.0183 - acc: 0.9943 - val_loss: 0.0857 - val_acc: 0.9805\n", "Epoch 10/20\n", "60000/60000 [==============================] - 27s 443us/step - loss: 0.0205 - acc: 0.9940 - val_loss: 0.1044 - val_acc: 0.9815\n", "Epoch 11/20\n", "60000/60000 [==============================] - 26s 436us/step - loss: 0.0190 - acc: 0.9942 - val_loss: 0.1140 - val_acc: 0.9777\n", "Epoch 12/20\n", "60000/60000 [==============================] - 26s 429us/step - loss: 0.0146 - acc: 0.9958 - val_loss: 0.1239 - val_acc: 0.9775\n", "Epoch 13/20\n", "60000/60000 [==============================] - 26s 427us/step - loss: 0.0152 - acc: 0.9956 - val_loss: 0.1150 - val_acc: 0.9823\n", "Epoch 14/20\n", "60000/60000 [==============================] - 26s 427us/step - loss: 0.0149 - acc: 0.9957 - val_loss: 0.1235 - val_acc: 0.9800\n", "Epoch 15/20\n", "60000/60000 [==============================] - 25s 423us/step - loss: 0.0154 - acc: 0.9960 - val_loss: 0.1280 - val_acc: 0.9797\n", "Epoch 16/20\n", "60000/60000 [==============================] - 25s 422us/step - loss: 0.0166 - acc: 0.9956 - val_loss: 0.1625 - val_acc: 0.9742\n", "Epoch 17/20\n", "60000/60000 [==============================] - 25s 424us/step - loss: 0.0140 - acc: 0.9965 - val_loss: 0.1035 - val_acc: 0.9820\n", "Epoch 18/20\n", "60000/60000 [==============================] - 25s 422us/step - loss: 0.0153 - acc: 0.9960 - val_loss: 0.1205 - val_acc: 0.9829\n", "Epoch 19/20\n", "60000/60000 [==============================] - 25s 422us/step - loss: 0.0111 - acc: 0.9969 - val_loss: 0.1324 - val_acc: 0.9804\n", "Epoch 20/20\n", "60000/60000 [==============================] - 25s 420us/step - loss: 0.0166 - acc: 0.9962 - val_loss: 0.1513 - val_acc: 0.9795\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "trusted": false, "id": "ZOP2laxE2BTd", "colab_type": "code", "colab": {} }, "source": [ "" ], "execution_count": 0, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "Y9RzxCRe2BTg", "colab_type": "text" }, "source": [ "## What is the accuracy of the model?" ] }, { "cell_type": "markdown", "metadata": { "id": "atwiYvbz2BTk", "colab_type": "text" }, "source": [ "### Plot the accuracy of the training model" ] }, { "cell_type": "code", "metadata": { "trusted": true, "id": "mPI7OcCA2BTl", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "outputId": "58a1b082-223d-4aee-ade5-b4aa97bb0531" }, "source": [ "#Look at the attributes in the history object to find the accuracy\n", "history.__dict__" ], "execution_count": 17, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "{'epoch': [0,\n", " 1,\n", " 2,\n", " 3,\n", " 4,\n", " 5,\n", " 6,\n", " 7,\n", " 8,\n", " 9,\n", " 10,\n", " 11,\n", " 12,\n", " 13,\n", " 14,\n", " 15,\n", " 16,\n", " 17,\n", " 18,\n", " 19],\n", " 'history': {'acc': [0.9437166666666666,\n", " 0.9758666666666667,\n", " 0.9822833333333333,\n", " 0.9864166666666667,\n", " 0.9891166666666666,\n", " 0.99045,\n", " 0.9922833333333333,\n", " 0.9935166666666667,\n", " 0.9943,\n", " 0.99405,\n", " 0.9942,\n", " 0.9957833333333334,\n", " 0.9956,\n", " 0.99565,\n", " 0.9959666666666667,\n", " 0.9955666666666667,\n", " 0.99645,\n", " 0.9960166666666667,\n", " 0.99685,\n", " 0.99625],\n", " 'loss': [0.18416011471686264,\n", " 0.07894161813653384,\n", " 0.05629563206637589,\n", " 0.043141744812547886,\n", " 0.03463797800432561,\n", " 0.03007295670452998,\n", " 0.025087888938408045,\n", " 0.020477740043793727,\n", " 0.018332584290340098,\n", " 0.020489056526854378,\n", " 0.01904268060001924,\n", " 0.014636038859433074,\n", " 0.015241379422380274,\n", " 0.01488577041779337,\n", " 0.015401399811703709,\n", " 0.01655236050960512,\n", " 0.014017093596740634,\n", " 0.015295848346811408,\n", " 0.011142703662544658,\n", " 0.01661629691273954],\n", " 'val_acc': [0.9579,\n", " 0.9754,\n", " 0.9733,\n", " 0.98,\n", " 0.9817,\n", " 0.9782,\n", " 0.9777,\n", " 0.9775,\n", " 0.9805,\n", " 0.9815,\n", " 0.9777,\n", " 0.9775,\n", " 0.9823,\n", " 0.98,\n", " 0.9797,\n", " 0.9742,\n", " 0.982,\n", " 0.9829,\n", " 0.9804,\n", " 0.9795],\n", " 'val_loss': [0.13213747869767248,\n", " 0.07768956533807796,\n", " 0.08690066614362876,\n", " 0.06944087889036164,\n", " 0.07673393609686209,\n", " 0.08913333164230862,\n", " 0.10080510411080691,\n", " 0.1028824891035541,\n", " 0.08566066905374536,\n", " 0.10436492597102856,\n", " 0.1140227648591278,\n", " 0.12387610763142443,\n", " 0.1149812871933566,\n", " 0.12350996273625792,\n", " 0.12803592754282145,\n", " 0.1625020817862077,\n", " 0.10353397753429631,\n", " 0.12051795932296623,\n", " 0.13241675687355067,\n", " 0.15128104574999485]},\n", " 'model': ,\n", " 'params': {'batch_size': 32,\n", " 'do_validation': True,\n", " 'epochs': 20,\n", " 'metrics': ['loss', 'acc', 'val_loss', 'val_acc'],\n", " 'samples': 60000,\n", " 'steps': None,\n", " 'verbose': 1},\n", " 'validation_data': [array([[0., 0., 0., ..., 0., 0., 0.],\n", " [0., 0., 0., ..., 0., 0., 0.],\n", " [0., 0., 0., ..., 0., 0., 0.],\n", " ...,\n", " [0., 0., 0., ..., 0., 0., 0.],\n", " [0., 0., 0., ..., 0., 0., 0.],\n", " [0., 0., 0., ..., 0., 0., 0.]], dtype=float32),\n", " array([[0., 0., 0., ..., 1., 0., 0.],\n", " [0., 0., 1., ..., 0., 0., 0.],\n", " [0., 1., 0., ..., 0., 0., 0.],\n", " ...,\n", " [0., 0., 0., ..., 0., 0., 0.],\n", " [0., 0., 0., ..., 0., 0., 0.],\n", " [0., 0., 0., ..., 0., 0., 0.]], dtype=float32),\n", " array([1., 1., 1., ..., 1., 1., 1.], dtype=float32)]}" ] }, "metadata": { "tags": [] }, "execution_count": 17 } ] }, { "cell_type": "code", "metadata": { "trusted": true, "id": "KeVOHoul2BTs", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 312 }, "outputId": "e754a297-3430-4220-ea6f-f5439159e076" }, "source": [ "#Plot the accuracy \n", "plt.plot(history.history['acc'],label='train')\n", "plt.xlabel('Epoch Number')\n", "plt.ylabel('Accuracy (%)')\n", "plt.title('Model Accuracy Over Epoch')\n", "plt.legend()" ], "execution_count": 18, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": { "tags": [] }, "execution_count": 18 }, { "output_type": "display_data", "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEWCAYAAACXGLsWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3Xl8XHW9//HXJ3vTJl3ShbbpBi2l\nZStQKptQELGggoAiIJv6ExQXvF5U/OnlIoqi4tWL6w+wClxWK5teVpHiAgUKdN8o0Gzd0qRZmsme\nz++Pc9JO0yQzpZnMJPN+Ph7zmLN8z5zPnEzmM9/v95zvMXdHRESkNxnJDkBERFKfkoWIiMSkZCEi\nIjEpWYiISExKFiIiEpOShYiIxKRkIf3KzKaamZtZVhxlrzKzf/ZHXJJ6zOwPZvb9ZMchASUL6ZGZ\nbTKzFjMb3WX5m+EX/tTkRLZXLMPMbJeZPZXsWBLJzEaY2W/MbKuZRcxspZl9uh/3f5OZtYbHuvNR\n01/7l+RTspBY3gUu6ZwxsyOB/OSFs48LgWbgg2Z2UH/uOJ7aUR/tJwf4KzAFOBEYDnwduNXMvpaA\n/fX0vh5y92FRjxF9vW9JXUoWEsu9wBVR81cC90QXMLPhZnaPmVWaWYmZfcfMMsJ1mWZ2m5ntMLN3\ngA93s+3vzGyLmVWY2ffNLHM/4rsS+C2wArisy2tPMrNHwriqzOyXUes+Z2ZrzazezNaY2bHhcjez\n6VHldjeFmNl8Mys3s2+a2Vbg92Y20sz+Eu5jZzhdHLX9KDP7vZltDtc/Fi5fZWYfjSqXHR6jY7p5\nj5cDk4FPuPu77t7q7k8DXwFuNrPCMKZFXd7/f5vZ7bGOc9jc9y8z+5mZVQE37cfx79yXm9lXzOyd\n8H38JOozkBF+JkrMbHv4WRkete0pZvaSmdWYWZmZXRX10iPN7H/Dv9MrZnbI/sYmfUPJQmJZAhSa\n2azwy+Vi4H+6lPkFwa/dg4HTCJJLZxPJ54CPAMcAc4GPd9n2D0AbMD0scxbwf+IJzMymAPOB+8LH\nFVHrMoG/ACXAVGAi8GC47hMEX4hXAIXAuUBVPPsEDgJGEfzKv5rgf+j34fxkoBH4ZVT5ewlqYocD\nY4GfhcvvYe/kdg6wxd3f7GafHwSecveGLsv/BOQR1DYeBM4xs4Ko938RcH9Y9g/0fpzfB7wDjANu\n6f0Q9Oh8gr/xscB5wGfC5VeFj9MJPiPDCI9R+Dd8iuAzNAaYAyyLes2Lge8CI4GNBxCbHCh310OP\nbh/AJuBM4DvAD4EFwHNAFuAEX8KZQAswO2q7a4DF4fTfgM9HrTsr3DaL4IupGRgStf4S4IVw+irg\nn73E9x1gWTg9EWgHjgnnTwQqgaxutnsGuK6H13RgetT8H4Dvh9Pzw/ea10tMc4Cd4fR4oAMY2U25\nCUA9UBjOLwK+0cNr/hW4tYd1W4FPhdP/BK4Ipz8IvB1Ox3OcS2N8Fm4K33tN1OOFLsdtQdT8tcDz\n4fTzwLVR62YCreFn4FvAoz3s8w/AXVHz5wDrkv1/ka6PfmlzlQHvXuDvwDS6NEEBo4Fsgl/wnUoI\nvrwh+FIs67Ku05Rw2y1m1rkso0v53lwB3Ang7hVm9iJBs9SbwCSgxN3butluEvB2nPvoqtLdmzpn\nzCyfoLawgODXL0BB+Mt+ElDt7ju7voi7bzazfwEXmtmjwNnAdT3scwdB4tlL2LcwOlwPQS3iEoK/\n0aXsqVXEc5zjOeYPu/tlvazv+neeEE5PYN/PR+ePhVh/i61R0xGCWokkgZqhJCZ3LyHo6D4HeKTL\n6h0EvxKnRC2bDFSE01sIvhCi13UqI/jFO9rdR4SPQnc/PFZMZnYSMAP4VniG0FaCppRLwy/RMmBy\nD521ZUBPbd8R9u7A79pp3nWY5n8n+KX8PncvBE7tDDHczygz66kj+G6CpqhPAC+7e0UP5f4KnG1m\nQ7ss7+zcXxLO/xGYH/aZnM+eZBHPce6L4ae7/p03h9Ob2ffz0QZso/e/haQQJQuJ12eBM7xLu7m7\ntwMPA7eYWUHYBv019vRrPAx8xcyKzWwkcEPUtluAZ4Gfhp20GWZ2iJmdFkc8VxI0ic0maPqZAxwB\nDCH4lf4qQaK61cyGmlmemZ0cbnsXcL2ZHWeB6WHcELSXXxp2zC8g6IPpTQFBP0WNmY0C/rPL+3sK\n+HXYEZ5tZqdGbfsYQfv+dexbY4t2L1AO/NGC61SyzexDwO3ATe5eG+6vElhM0IfyrruvjYrjvR7n\n/fH18H1OCt/TQ+HyB4B/M7NpZjYM+AHBmVVtBH1NZ5rZRWaWZWZFZjanj+OSPqBkIXFx97fdfWkP\nq78MNBB0kP6T4BftwnDdnQR9BMuBN9i3ZnIFkAOsAXYStN3v0+QSzczyCDpvf+HuW6Me7xJ8sV4Z\nJrGPEnTolhJ82X4yfC9/JOgovZ+g3+Axgk5rCL7kPkrQJv+pcF1vfk6QoHYQ/MJ/usv6ywlqXuuA\n7cBXO1e4eyNBJ/W0bo4LUeWaCfqOyoBXgDrgv4Bvu/tPuhS/Pyx7f5fl+32cu/FJ2/s6i11mNjZq\n/ePA6wQJ93+B34XLF7KnKfNdoIngM4O7lxLUWP8dqA63PXo/45J+YO66+ZFIspjZjcChMfoCUp6Z\nOTDD3TcmOxZJDHVwiyRJ2Gz1WYLah0hKUzOUSBKY2ecImpWecve/JzsekVjUDCUiIjGpZiEiIjEN\nmj6L0aNH+9SpU5MdhojIgPL666/vcPcxscoNmmQxdepUli7t6cxOERHpjpmVxC6lZigREYmDkoWI\niMSkZCEiIjENmj6L7rS2tlJeXk5TU1PswgNcXl4excXFZGdnJzsUERmEBnWyKC8vp6CggKlTpxI1\nNPOg4+5UVVVRXl7OtGnTkh2OiAxCg7oZqqmpiaKiokGdKADMjKKiorSoQYlIcgzqZAEM+kTRKV3e\np4gkx6BuhhIRSVUNzW2s3VLH6s11tLR1MKUonylFQ5k8Kp8hOZnJDm8fShYJVlNTw/3338+11167\nX9udc8453H///YwY0dNN1kSkL3SOj5fI2nlNpIXVm+tYVVEbPG+u5d0dDfQ0NN9BhXlMLspnaphA\nphTlM7VoKJOL8inMS85JLEoWCVZTU8Ovf/3rfZJFW1sbWVk9H/4nn3wy0aGJpB13p6KmkZXltSwv\nr2VlRQ0rymtpbu1gbGEu4wrzGFsQPhfmMq4gb/fycQV5FA7J6jWpuDvb65v3JIXwuaKmcXeZiSOG\nMHtCIecdPZHDJxRyxMTh5GVnUFIVYVNVA6VVETZVRSipauCF9ZVU1pfvtY9RQ3P2JI9R+Uwdnc/0\nMQUcWTw8YccNlCwS7oYbbuDtt99mzpw5ZGdnk5eXx8iRI1m3bh0bNmzgYx/7GGVlZTQ1NXHddddx\n9dVXA3uGL9m1axdnn302p5xyCi+99BITJ07k8ccfZ8iQIUl+ZyLvnbsTaWlnZ6SFmkgrWZnGmGG5\njMzPISOj737hb69vYkVZLSsqallRXsPK8lqqGloAyM40DjuokI8ePYGC3Cy21zezra6JDdvq+efG\nHdQ3te3zerlZGbuTSGdCGVuQx67mVlZV1LF6cy07drXsLn/w6KEcM3kEl584hSMmDGf2hEJGDc3p\nNtYR+TkcPWnfloSG5jZKqiKUVjfsTiIlVRFefbeax5ZV4A5HTxrB4188uZtX7Ttpkyy+++fVrNlc\n16evOXtCIf/50cN7LXPrrbeyatUqli1bxuLFi/nwhz/MqlWrdp/iunDhQkaNGkVjYyPHH388F154\nIUVFRXu9xltvvcUDDzzAnXfeyUUXXcSf/vQnLrtsQN9YTfrI9rom/rJiC1UNzeTnZDEkO5P8nEyG\n5GSSn5MVNZ1JfnbW7ukh2ZkH9KXc0eG0u9Pe4XS409DcTk2khZ2R1jABBNM1kdZwunO+JVzWSkt7\nxz6vm5lhjB6Ww5iCXEYPy2XMsFzGFEQ9huUyOpwuyN37V35NpIUV5bWsrKhleVkNKytq2VIbnCGY\nYTBjbAFnHDaWo4qHc1TxCA4bX0BuVs99A5GWNrbXBQmkM5F0Pm+ra2Lt1jpe3NDMruY2MjOMGWOH\nMX/m2N21hVnjCxmWe+BfsUNzs5g9oZDZEwr3Wdfc1k5ZdSNNre0HvJ9Y0iZZpIp58+btdS3E7bff\nzqOPPgpAWVkZb7311j7JYtq0acyZE9zD/rjjjmPTpk39Fq+knsaWdp5ds5VH3qjgH29V0uFgRo/t\n3z3Jy87YnWAyMqCjA9rDJLBXMti9jN3L4pWdaYzIz2FkfjYj8nOYNnooI/NzGJ6fzcio5W3tTmV9\nE5W7mqmsb2bHrhYq65tZt6WeHbuaaetmn7lZGbuTSnVDC6XVkd3rpo0eyrxpozhy4nCOnjSCwycU\nkp+zf193+TlZTB2dxdTRQ3stt6u5jawMIy+7/zulc7MymT52WL/sK22SRawaQH8ZOnTPB2/x4sX8\n9a9/5eWXXyY/P5/58+d3e61Ebm7u7unMzEwaGxv3KSODW0eH8+qmah55o5wnV25lV3MbE0cM4dr5\n0zn/2IkcPHoozW0dNLa0E2ltp7GljUhLO5GW9mBZSzuNXZe3thMJ590hw4zMjODXfTC953nPNGSa\nkZFhe54zjPyczN1JYWR+DiPC5/yczAPuOO7ocGoaW8MkEiSTyvrm3Ymlsr6Z8cPzuGTeZI4qHs4R\nE4czfEj/dQL3Re1hIEiPd5lEBQUF1NfXd7uutraWkSNHkp+fz7p161iyZEk/Ryep7t0dDTz6RjmP\nvFlB+c5GhuZkcs6R47ng2GLeN23UXk1JedmZ5GVnMjKJ8SZCRoYxamgOo4bmMJOCZIeTtpQsEqyo\nqIiTTz6ZI444giFDhjBu3Ljd6xYsWMBvf/tbZs2axcyZMznhhBOSGKmkippIC39ZsYVH3ijnjdIa\nMgxOnj6a68+ayVmHj9vv5hSRvjBo7sE9d+5c73rzo7Vr1zJr1qwkRdT/0u399pWODscsuVfBt7Z3\nsHh9JY+8Uc7za7fT0t7BoeOGceGxxZw3ZyIHDc9LWmwyuJnZ6+4+N1Y5/USRtFITaWHtlnrWba1j\n7ZY61m2tZ/3Weto6nGG5WRTkZVGQl01BXhaFUdOdyzvLFO5eHjw70NTaHj46aG5tp6ktnA6fO9c1\nheuaw+mGlnb+tXEH1Q0tFA3N4bITpnDBscE5+BrGRVKFkoUMSu0dzrs7Gli7ZU9SWLulbveplABF\nQ3OYNb6Qy06YQl52BvVNbeGjlbqmNipqmqhvqqe+qY1dzW37dRZQLDlZGeRlZezuZzjx4CIuPG4i\n758xhuzMQT9kmwxAgz5ZuHta/DobLM2J70VdUyurK+r2qS00twXn8WdlGIeMGcb7po3isPGFzBpf\nyKyDChhTkBv3Z8PdaWxt3yuZdE7XN7WRYUEHc25WJrnZGeRlZZKXvScZ5O1elkluVkafXngm0h8G\ndbLIy8ujqqpq0A9T3nk/i7y89GjX7uhw1mypY/H67bywvpI3S3fS+aO/s7Zw+QlTmDW+kMPGFzB9\n7LBeL76Kh5mFF7llMa4wPY6zSLRBnSyKi4spLy+nsrIy2aEkXOed8gar2kgr/9hYyeL1wWPHrmYA\njpw4nC+ePp25U0ftd21BROI3qJNFdna27hw3QLl31h4qWbx+O2+U1tDe4Qwfks37Z4zm9JljOfXQ\nMYwpyI39YiJywAZ1spCBpa6plX++tYMX1m3nxQ2VbK8Pag9HTCzkC6cdwvyZY5gzaQRZ6gAW6XdK\nFpJUOxtaWPR6Oc+t3cbrJTtp73AK8rI49dAxzD90DKfNHMPYAvURiCSbkoUkxaqKWu55eROPL9tM\nc1sHs8cX8vnTDmb+zLEco9qDSMpRspB+09rewdOrtnL3S5tYWrKTIdmZXHhcMVeeOJWZB2nMH5FU\npmQhCVdZ38wDr5Zy3yslbKtrZvKofL7z4Vl84rhJDM9Pzi0iRWT/KFlIwiwrq+Hulzbxvyu20NLe\nwftnjOYH5x/J/JljydRFaSIDipKF9KnmtnaeXLmFP7xUwvKyGobmZHLJvElccdJUDhnTPzdpEZG+\np2QhfWJbXRP3LSnh/lfL2LGrmYNHD+Wmj87mwuOKKchTU5PIQJfQZGFmC4D/BjKBu9z91i7rpwAL\ngTFANXCZu5eH634EfDgs+j13fyiRscr+q2tqZfH6Sp5etYVnV2+j3Z3TZ47lypOm8v7pozX+kcgg\nkrBkYWaZwK+ADwLlwGtm9oS7r4kqdhtwj7vfbWZnAD8ELjezDwPHAnOAXGCxmT3l7nWJilfis6W2\nkefWbOO5NdtY8k4Vre1O0dAcrjxpKlecOIUpRb3fr1hEBqZE1izmARvd/R0AM3sQOA+IThazga+F\n0y8Aj0Ut/7u7twFtZrYCWAA8nMB4pRvuzvpt9Ty7OkgQKytqATh49FA+c/I0zjp8HHMmjVSHtcgg\nl8hkMREoi5ovB97Xpcxy4AKCpqrzgQIzKwqX/6eZ/RTIB05n7yQDgJldDVwNMHny5L6OP221tXfw\n2qadQQ1i7VbKqhsBOGbyCL6xYCZnzT6I6WPVWS2STpLdwX098Eszuwr4O1ABtLv7s2Z2PPASUAm8\nDLR33djd7wDugOC2qv0V9GAUaWnj7xsqeXbNNv62bjs1kVZysjI4+ZAirp0/nQ/MGqthN0TSWCKT\nRQUwKWq+OFy2m7tvJqhZYGbDgAvdvSZcdwtwS7jufmBDAmNNW6VVEW59ei3Pr91Oc1sHw4dkc8Zh\nY/ng7HGceugYhuUm+/eEiKSCRH4TvAbMMLNpBEniYuDS6AJmNhqodvcO4FsEZ0Z1do6PcPcqMzsK\nOAp4NoGxpp3W9g7u+se7/PfzG8jKyOCSeZM5a/Y4jp82Srf1FJF9JCxZuHubmX0JeIbg1NmF7r7a\nzG4Glrr7E8B84Idm5gTNUF8MN88G/hHexKaO4JTatkTFmm5eL9nJtx9dybqt9Xzo8HHcdO7hjB8+\nJNlhiUgKs8Fy7+a5c+f60qVLkx1GSqttbOUnz6zjvldKOagwj++eezhnHX5QssMSkSQys9fdfW6s\ncmqQTgPuzpMrt3LTn1dTtauZT580ja+ddaj6I0Qkbvq2GOTKqiPc+PgqXlhfyRETC1l45fEcWTw8\n2WGJyACjZDFItbV3sPBf7/Kz597CDP7jI7O58sQpuqmQiLwnShaD0LKyGv7vIytZs6WOM2eN5bvn\nHcHEEerAFpH3TsliEKlvauWnz27g7pc3MbYgl99ediwfOvwgwrPKRETeMyWLQeLpVVu56YnVbKtv\n4ooTpnD9h2ZqaHAR6TNKFgNcpKWNrz20nKdXb2XW+EJ+e/lxzJk0Itlhicggo2QxgNU3tfLp37/G\nG6U7ueHsw/jsKdN09bWIJISSxQBVE2nhioWvsmZzHb+89FjOOXJ8skMSkUFMyWIA2rGrmcvueoV3\ndjRwxxXHccZh45IdkogMckoWA8zW2iYuvWsJW2qaWHjl8ZwyY3SyQxKRNKBkMYCUVUf41F2vUN3Q\nwj2fncfxU0clOyQRSRNKFgPEuzsa+NSdS2hoaee+//M+jtYZTyLSj5QsBoAN2+r51F2v0NHhPPC5\nE5g9oTDZIYlImlGySHGrKmq5/HevkJ2ZwUPXnMD0sQXJDklE0pBOyk9hb5Tu5JI7l5Cfk8XD15yo\nRCEiSaOaRYpa8k4Vn/3Da4wpyOW+z52ggQBFJKlUs0hBL26o5MqFrzJhxBAevuZEJQoRSTrVLFLM\ns6u38qX732T62GHc+9l5FA3LTXZIIiJKFqnkz8s389WHlnHkxOHc/el5DM/XqLEikhqULFLEH5eW\n8c0/rWDu1FEsvOp43R9bRFKK+ixSwL1LSvj6ohWcPH00d396nhKFiKQcfSsl2ctvV/Efj63izFlj\n+eWlx5KXnZnskERE9qGaRRI1NLfx9UXLmVqUz+2XHKNEISIpSzWLJPrhU2upqGnk4WtOJD9HfwoR\nSV2qWSTJvzbu4H+WlPKZk6dp9FgRSXlKFklQ39TKNxat4ODRQ7n+rJnJDkdEJCa1fSTBD55cx5ba\nRv74+ZMYkqN+ChFJfQmtWZjZAjNbb2YbzeyGbtZPMbPnzWyFmS02s+KodT82s9VmttbMbjczS2Ss\n/eXvGyp54NVSPvf+gzluyshkhyMiEpeEJQszywR+BZwNzAYuMbPZXYrdBtzj7kcBNwM/DLc9CTgZ\nOAo4AjgeOC1RsfaXuqZWbvjTCg4ZM5R/++ChyQ5HRCRuiaxZzAM2uvs77t4CPAic16XMbOBv4fQL\nUesdyANygFwgG9iWwFj7xS1/WcvWuiZ+etEcnSYrIgNKIpPFRKAsar48XBZtOXBBOH0+UGBmRe7+\nMkHy2BI+nnH3tV13YGZXm9lSM1taWVnZ52+gL72wfjsPLS3jmtMOYY5uiSoiA0yyz4a6HjjNzN4k\naGaqANrNbDowCygmSDBnmNn7u27s7ne4+1x3nztmzJj+jHu/1DYGzU+HjhvGV8+ckexwRET2WyLP\nhqoAJkXNF4fLdnP3zYQ1CzMbBlzo7jVm9jlgibvvCtc9BZwI/COB8SbM9/6yhh27WrjzirnkZqn5\nSUQGnkTWLF4DZpjZNDPLAS4GnoguYGajzawzhm8BC8PpUoIaR5aZZRPUOvZphhoInl+7jUWvl3Pt\n/EM4qljNTyIyMCUsWbh7G/Al4BmCL/qH3X21md1sZueGxeYD681sAzAOuCVcvgh4G1hJ0K+x3N3/\nnKhYE6Um0sK3HlnJYQcV8OUz1PwkIgNXzGao8Jf/0cAEoBFY5e7b43lxd38SeLLLshujphcRJIau\n27UD18Szj1T23T+vobqhhYVXHU9OVrK7h0RE3rsek4WZHQJ8EzgTeAuoJDid9VAziwD/D7jb3Tv6\nI9CB5tnVW3n0zQqu+8AMjpg4PNnhiIgckN5qFt8HfgNc4+4evcLMxgKXApcDdycuvIFpZ0ML//fR\nVcweX8gXT5+e7HBERA5Yj8nC3S/pZd124OcJiWgQ+M8nVlPb2MI9n5mn5icRGRTi/iYzs+lm9j9m\n9iczOzGRQQ1kT63cwhPLN/PlM2Ywe0JhssMREekTvfVZ5Ll7U9Si7wHfCKf/DMxJZGADUdWuZr7z\n2CqOmFjIF+YfkuxwRET6TG81iz+b2RVR863AVGAK0J7IoAaqG59YTV1TKz/9xByyM9X8JCKDR2/f\naAuAQjN72sxOJRia40MEYzh9qj+CG0j+smIz/7tiC18981BmHlSQ7HBERPpUbx3c7cAvzexe4D+A\nLwDfcfe3+yu4gaKyvpn/eGwVRxcP55pTD052OCIifa63Pov3AV8HWoAfEFyQd4uZVQDfc/ea/gkx\n9d34+CoaWtq57RNHk6XmJxEZhHq7zuL/AecAw4Dfu/vJwMVmdhrwEEGTVNrbXt/EU6u28pUzpjNj\nnJqfRGRw6i1ZtBF0aA8lqF0A4O4vAi8mNqyBo7QqAsCxukWqiAxivSWLSwnGZ2oBruilXForrQ6S\nxeRR+UmOREQkcXpLFm+5+7/3trGZWdehQNJNSVUEM5g4ckiyQxERSZjeemNfMLMvm9nk6IVmlmNm\nZ5jZ3cCViQ0v9ZVVR5gwfIhuaiQig1pvNYsFwGeAB8xsGlBDMOpsJvAs8HN3fzPxIaa20uoIk0ap\nViEig1tv11k0Ab8Gfh3erW400KhTZvdWWh1h/szUvf+3iEhfiOse3O7eCmxJcCwDTmNLO9vrm5lS\nNDTZoYiIJJSuIDsAZTuDM6Em6UwoERnklCwOQOc1FjptVkQGu5jJIjwjSlecdaNE11iISJqIp2Yx\nDnjNzB42swVmZokOaqAoq45QkJvFyPzsZIciIpJQMZOFu38HmAH8DrgKeMvMfmBmaX93n+C02XyU\nP0VksIurzyK8Sntr+GgDRgKLzOzHCYwt5ZVWR9QEJSJpIZ4+i+vM7HXgx8C/gCPd/QvAccCFCY4v\nZXV0OKXVEaYUKVmIyOAXz3UWo4AL3L0keqG7d5jZRxITVurbXt9MS1uHTpsVkbQQTzPUU0B154yZ\nFYY3RsLd1yYqsFSn0WZFJJ3Ekyx+A+yKmt8VLktrJVUNgJKFiKSHeJLFXsOQu3sHcQ4TMpiVVUfI\n0NDkIpIm4kkW75jZV8wsO3xcB7wTz4uH12WsN7ONZnZDN+unmNnzZrbCzBabWXG4/HQzWxb1aDKz\nj+3fW0us0uoIE0YMIVv33BaRNBDPN93ngZOACqAceB9wdayNzCwT+BVwNjAbuMTMZncpdhtwj7sf\nBdwM/BDA3V9w9znuPgc4A4gQDIueMkp02qyIpJGYzUnuvh24+D289jxgo7u/A2BmDwLnAWuiyswG\nvhZOvwA81s3rfBx4yt0j7yGGhCmrjnDmrHHJDkNEpF/ETBZmlgd8Fjic4OZHALj7Z2JsOhEoi5rv\nrJVEWw5cAPw3cD5QYGZF7l4VVeZi4L96iO1qwlrO5MmTuyuSEA3NbezY1cJkXWMhImkinmaoe4GD\ngA8BLwLFQH0f7f964DQzexM4jaCpq71zpZmNB44EnuluY3e/w93nuvvcMWP67wZEnUOTqxlKRNJF\nPGc1TXf3T5jZee5+t5ndD/wjju0qgElR88Xhst3cfTNBzQIzGwZc2OVOfBcBj4Y3X0oZJRqaXETS\nTDw1i84v6hozOwIYDoyNY7vXgBlmNs3Mcgiak56ILmBmo82sM4ZvAQu7vMYlwANx7KtflYUX5E0Z\npTvkiUh6iCdZ3BHez+I7BF/2a4AfxdrI3duALxE0Ia0FHnb31WZ2s5mdGxabD6w3sw0EQ6Hf0rm9\nmU0lqJm8GO+b6S+l1REK87IYrqHJRSRN9NoMFf7qr3P3ncDfgYP358Xd/UngyS7LboyaXgQs6mHb\nTQSd5CmnpCqizm0RSSu91izCq7W/0U+xDBhlusZCRNJMPM1QfzWz681skpmN6nwkPLIU1d7hlO9s\nZLL6K0QkjcRzNtQnw+cvRi1z9rNJarDYVtdES3uHahYiklbiuYJ7Wn8EMlDotFkRSUfxXMF9RXfL\n3f2evg8n9e0+bVYd3CKSRuJphjo+ajoP+ADwBpCWyaK0OkJmhjF+eF7swiIig0Q8zVBfjp43sxHA\ngwmLKMWVVEeYOGIIWRqaXETUg581AAAQhUlEQVTSyHv5xmsA0rYfo1SnzYpIGoqnz+LPBGc/QZBc\nZgMPJzKoVFZWHWHBEQclOwwRkX4VT5/FbVHTbUCJu5cnKJ6UVt/USnVDi2oWIpJ24kkWpcAWd28C\nMLMhZjY1HI4jrZRW67RZEUlP8fRZ/BHoiJpvD5elnTIlCxFJU/Ekiyx3b+mcCadzEhdS6tpds9A1\nFiKSZuJJFpVRQ4pjZucBOxIXUuoqqYowIj+bwjwNTS4i6SWePovPA/eZ2S/D+XKg26u6BzudNisi\n6Sqei/LeBk4Ib3uKu+9KeFQpqqw6whEThyc7DBGRfhezGcrMfmBmI9x9l7vvMrORZvb9/ggulbS1\nd4RDk6tmISLpJ54+i7PdvaZzJrxr3jmJCyk1baltoq3DlSxEJC3FkywyzSy3c8bMhgC5vZQflMp0\nJpSIpLF4OrjvA543s9+H858mDUec1QV5IpLO4ung/pGZLQfODBd9z92fSWxYqaekOkJWhjF++JBk\nhyIi0u/iqVng7k8DTwOY2Slm9it3/2KMzQaV0uoIxSOHkJlhyQ5FRKTfxZUszOwY4BLgIuBd4JFE\nBpWKyqojTC4amuwwRESSosdkYWaHEiSISwiu2H4IMHc/vZ9iSyklVRGOKtY1FiKSnnqrWawD/gF8\nxN03ApjZv/VLVCmmNtJKbWOrOrdFJG31dursBcAW4AUzu9PMPgCkZYN92c7OM6HUDCUi6anHZOHu\nj7n7xcBhwAvAV4GxZvYbMzurvwJMBTptVkTSXcyL8ty9wd3vd/ePAsXAm8A3Ex5ZCimpCpLFpFE6\nbVZE0lM8V3Dv5u473f0Od/9APOXNbIGZrTezjWZ2Qzfrp5jZ82a2wswWm1lx1LrJZvasma01szVm\nNnV/Yu1LpdURRg3NoUBDk4tImtqvZLE/zCwT+BVwNjAbuMTMZncpdhtwj7sfBdwM/DBq3T3AT9x9\nFjAP2J6oWGMp09DkIpLmEpYsCL7gN7r7O+Hd9R4EzutSZjbwt3D6hc71YVLJcvfnIBgW3d0jCYy1\nVyXVDUoWIpLWEpksJgJlUfPl4bJoywnOugI4HygwsyLgUKDGzB4xszfN7CdhTWUvZna1mS01s6WV\nlZUJeAvQ2t7B5pomJQsRSWuJTBbxuB44zczeBE4DKoB2gus/3h+uPx44GLiq68Zh/8lcd587ZsyY\nhAS4paaJ9g7XaLMiktYSmSwqgElR88Xhst3cfbO7X+DuxwDfDpfVENRCloVNWG3AY8CxCYy1Rzpt\nVkQkscniNWCGmU0zsxzgYuCJ6AJmNtrMOmP4FrAwatsRZtZZXTgDWJPAWHtUUt0AKFmISHpLWLII\nawRfAp4B1gIPu/tqM7vZzM4Ni80H1pvZBmAccEu4bTtBE9TzZraS4MrxOxMVa29KqyPkZGYwrjAv\nGbsXEUkJcY06+165+5PAk12W3Rg1vQhY1MO2zwFHJTK+eJRVRygepaHJRSS9JbuDO+WVVOkaCxER\nJYteuDulShYiIkoWvaltbKW+uU3JQkTSnpJFL3TarIhIQMmiF52jzeqCPBFJd0oWveisWUwaqWQh\nIulNyaIXZdURRg/LZWhuQs8wFhFJeUoWvQhOm9UNj0RElCx6Uar7WIiIAEoWPWpp62BLbaOShYgI\nShY9qqhppMNhctHQZIciIpJ0ShY90DUWIiJ7KFn0QMlCRGQPJYselFVHyM3KYGxBbrJDERFJOiWL\nHpRUNTBpVD4ZGppcRETJoiel1ToTSkSkk5JFN9ydMl1jISKym5JFN6obWtiloclFRHZTsuiGzoQS\nEdmbkkU3dicLDU0uIgIoWXSrTEOTi4jsRcmiGyVVEcYW5DIkJzPZoYiIpAQli25otFkRkb0pWXRD\np82KiOxNyaKL5rZ2ttQ1qXNbRCSKkkUX5TsbcddpsyIi0ZQsutA1FiIi+1Ky6KJM11iIiOwjocnC\nzBaY2Xoz22hmN3SzfoqZPW9mK8xssZkVR61rN7Nl4eOJRMYZraQqQl52BmOGaWhyEZFOWYl6YTPL\nBH4FfBAoB14zsyfcfU1UsduAe9z9bjM7A/ghcHm4rtHd5yQqvp50njZrpqHJRUQ6JbJmMQ/Y6O7v\nuHsL8CBwXpcys4G/hdMvdLO+3+m0WRGRfSUyWUwEyqLmy8Nl0ZYDF4TT5wMFZlYUzueZ2VIzW2Jm\nH0tgnLu5e1izGNofuxMRGTCS3cF9PXCamb0JnAZUAO3huinuPhe4FPi5mR3SdWMzuzpMKEsrKysP\nOJgdu1qItLQzedSQA34tEZHBJJHJogKYFDVfHC7bzd03u/sF7n4M8O1wWU34XBE+vwMsBo7pugN3\nv8Pd57r73DFjxhxwwBptVkSke4lMFq8BM8xsmpnlABcDe53VZGajzawzhm8BC8PlI80st7MMcDIQ\n3TGeEKXVDQBqhhIR6SJhycLd24AvAc8Aa4GH3X21md1sZueGxeYD681sAzAOuCVcPgtYambLCTq+\nb+1yFlVClFY1AlA8Us1QIiLREnbqLIC7Pwk82WXZjVHTi4BF3Wz3EnBkImPrTml1hIMK88jL1tDk\nIiLRkt3BnVJ02qyISPeULKKUVDeoc1tEpBtKFqGm1na21TWrZiEi0g0li1D5To02KyLSEyWLUEmV\nrrEQEemJkkVI97EQEemZkkWotDpCfk4mRUNzkh2KiEjKUbIIlWlochGRHilZhEqqdI2FiEhPlCyI\nHppcyUJEpDtKFkBlfTPNbR06E0pEpAdKFkCJzoQSEemVkgVQWqVkISLSGyULgtNmzWCihiYXEemW\nkgXBabPjC/PIzdLQ5CIi3VGyIOizUOe2iEjPlCxAp82KiMSQ9smisaWdynoNTS4i0pu0TxaRljbO\nPXoCR08akexQRERSVkLvwT0QFA3L5fZLjkl2GCIiKS3taxYiIhKbkoWIiMSkZCEiIjEpWYiISExK\nFiIiEpOShYiIxKRkISIiMSlZiIhITObuyY6hT5hZJVByAC8xGtjRR+EkguI7MIrvwCi+A5PK8U1x\n9zGxCg2aZHGgzGypu89Ndhw9UXwHRvEdGMV3YFI9vnioGUpERGJSshARkZiULPa4I9kBxKD4Dozi\nOzCK78Ckenwxqc9CRERiUs1CRERiUrIQEZGY0ipZmNkCM1tvZhvN7IZu1uea2UPh+lfMbGo/xjbJ\nzF4wszVmttrMruumzHwzqzWzZeHjxv6KLyqGTWa2Mtz/0m7Wm5ndHh7DFWZ2bD/GNjPq2Cwzszoz\n+2qXMv16DM1soZltN7NVUctGmdlzZvZW+Dyyh22vDMu8ZWZX9mN8PzGzdeHf71Ez6/Y2krE+CwmM\n7yYzq4j6G57Tw7a9/r8nML6HomLbZGbLetg24cevT7l7WjyATOBt4GAgB1gOzO5S5lrgt+H0xcBD\n/RjfeODYcLoA2NBNfPOBvyT5OG4CRvey/hzgKcCAE4BXkvj33kpwwVHSjiFwKnAssCpq2Y+BG8Lp\nG4AfdbPdKOCd8HlkOD2yn+I7C8gKp3/UXXzxfBYSGN9NwPVx/P17/X9PVHxd1v8UuDFZx68vH+lU\ns5gHbHT3d9y9BXgQOK9LmfOAu8PpRcAHzMz6Izh33+Lub4TT9cBaYGJ/7LuPnQfc44ElwAgzG5+E\nOD4AvO3uB3JV/wFz978D1V0WR3/O7gY+1s2mHwKec/dqd98JPAcs6I/43P1Zd28LZ5cAxX2933j1\ncPziEc//+wHrLb7wu+Mi4IG+3m8ypFOymAiURc2Xs++X8e4y4T9LLVDUL9FFCZu/jgFe6Wb1iWa2\n3MyeMrPD+zWwgAPPmtnrZnZ1N+vjOc794WJ6/idN9jEc5+5bwumtwLhuyqTKcfwMQU2xO7E+C4n0\npbCZbGEPzXipcPzeD2xz97d6WJ/M47ff0ilZDAhmNgz4E/BVd6/rsvoNgmaVo4FfAI/1d3zAKe5+\nLHA28EUzOzUJMfTKzHKAc4E/drM6FY7hbh60R6Tk+etm9m2gDbivhyLJ+iz8BjgEmANsIWjqSUWX\n0HutIuX/l6KlU7KoACZFzReHy7otY2ZZwHCgql+iC/aZTZAo7nP3R7qud/c6d98VTj8JZJvZ6P6K\nL9xvRfi8HXiUoLofLZ7jnGhnA2+4+7auK1LhGALbOpvmwuft3ZRJ6nE0s6uAjwCfChPaPuL4LCSE\nu29z93Z37wDu7GG/yT5+WcAFwEM9lUnW8Xuv0ilZvAbMMLNp4S/Pi4EnupR5Aug86+TjwN96+kfp\na2H75u+Ate7+Xz2UOaizD8XM5hH8/fozmQ01s4LOaYKO0FVdij0BXBGeFXUCUBvV5NJfevxFl+xj\nGIr+nF0JPN5NmWeAs8xsZNjMcla4LOHMbAHwDeBcd4/0UCaez0Ki4ovuAzu/h/3G8/+eSGcC69y9\nvLuVyTx+71mye9j780Fwps4GgrMkvh0uu5ngnwIgj6DpYiPwKnBwP8Z2CkFzxApgWfg4B/g88Pmw\nzJeA1QRndiwBTurn43dwuO/lYRydxzA6RgN+FR7jlcDcfo5xKMGX//CoZUk7hgRJawvQStBu/lmC\nfrDngbeAvwKjwrJzgbuitv1M+FncCHy6H+PbSNDe3/k57DxDcALwZG+fhX6K797ws7WCIAGM7xpf\nOL/P/3t/xBcu/0PnZy6qbL8fv758aLgPERGJKZ2aoURE5D1SshARkZiULEREJCYlCxERiUnJQkRE\nYlKykEHJzNq7jEDbZ6OOmtnU6FFGeyl3k5lFzGxs1LJd/RmDSF/JSnYAIgnS6O5zkh0EsAP4d+Cb\nyQ4kmpll+Z7BAkViUs1C0kp4D4Efh/cReNXMpofLp5rZ38LB6Z43s8nh8nHhPR2Wh4+TwpfKNLM7\nLbj3yLNmNqSHXS4EPmlmo7rEsVfNwMyuN7ObwunFZvYzM1tqZmvN7Hgze8SC+1p8P+plsszsvrDM\nIjPLD7c/zsxeDAeoeyZqaJHFZvbz8N4J+9wvRaQ3ShYyWA3p0gz1yah1te5+JPBL4Ofhsl8Ad7v7\nUQQD590eLr8deNGDgQePJbjaFmAG8Ct3PxyoAS7sIY5dBAljf7+cW9x9LvBbguFAvggcAVxlZp0j\nIc8Efu3us4A64NpwfLFfAB939+PCfd8S9bo57j7X3VN18D1JUWqGksGqt2aoB6KefxZOn0gw8BsE\nw0n8OJw+A7gCwN3bgdpwrKZ33b3zDmivA1N7ieV2YJmZ3bYf8XeOY7QSWO3h+Fpm9g7BAHk1QJm7\n/yss9z/AV4CnCZLKc+EQWJkEw1F06nFgO5HeKFlIOvIepvdHc9R0O9BTMxTuXmNm9xPUDjq1sXfN\nPq+H1+/osq8O9vzfdo3dCcbmWu3uJ/YQTkNPcYr0Rs1Qko4+GfX8cjj9EsHIpACfAv4RTj8PfAHA\nzDLNbPh73Od/Adew54t+GzDWzIrMLJdgOPD9NdnMOpPCpcA/gfXAmM7lZpZtybnBkwwyShYyWHXt\ns7g1at1IM1tB0I/wb+GyLwOfDpdfzp4+huuA081sJUFz0+z3Eoy77yC4Z0FuON9KMOLxqwS3TF33\nHl52PcFNc9YS3Kf7Nx7cQvTjwI/MbDnBqLEn9fIaInHRqLOSVsxsE8Gw6TuSHYvIQKKahYiIxKSa\nhYiIxKSahYiIxKRkISIiMSlZiIhITEoWIiISk5KFiIjE9P8BV4cTLwGM3iUAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "tags": [] } } ] }, { "cell_type": "markdown", "metadata": { "collapsed": true, "id": "oM5brTcH2BTw", "colab_type": "text" }, "source": [ "### Plot the accuracy of training and validation set" ] }, { "cell_type": "code", "metadata": { "trusted": true, "id": "mY6P17xz2BTx", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 312 }, "outputId": "ffcedbc4-87ac-4027-b2c6-2cd29a4a660a" }, "source": [ "#Plot the accuracy of training data and validation data\n", "plt.plot(history.history['acc'],label='train')\n", "plt.plot(history.history['val_acc'],label='val')\n", "plt.xlabel('Epoch Number')\n", "plt.ylabel('Accuracy (%)')\n", "plt.title('Model Accuracy Over Epoch')\n", "plt.legend()" ], "execution_count": 19, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": { "tags": [] }, "execution_count": 19 }, { "output_type": "display_data", "data": { "image/png": "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\nHykyDywZbRzuAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "tags": [] } } ] }, { "cell_type": "markdown", "metadata": { "collapsed": true, "id": "51XAZnc32BT1", "colab_type": "text" }, "source": [ "### Accuracy of training and validation with loss" ] }, { "cell_type": "code", "metadata": { "trusted": true, "id": "4TrhWDGr2BT2", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 312 }, "outputId": "c53dca18-fd16-49d9-c203-297c52f4edb6" }, "source": [ "#Plot the accuracy of training data and validation data AND loss\n", "plt.plot(history.history['acc'],label='train')\n", "plt.plot(history.history['val_acc'],label='val')\n", "plt.plot(history.history['loss'],label='loss')\n", "plt.xlabel('Epoch Number')\n", "plt.ylabel('Accuracy (10*%)')\n", "plt.title('Model Accuracy Over Epoch')\n", "plt.legend()\n", "# plt.yscale('log')" ], "execution_count": 20, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": { "tags": [] }, "execution_count": 20 }, { "output_type": "display_data", "data": { "image/png": "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\n4pa32uljqwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "tags": [] } } ] }, { "cell_type": "markdown", "metadata": { "id": "GkSFamCH2BT7", "colab_type": "text" }, "source": [ "## Evaluating model" ] }, { "cell_type": "code", "metadata": { "trusted": true, "id": "5r5mFRxQ2BT8", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 34 }, "outputId": "8757cc27-58d5-4c0d-8045-66438132c9b4" }, "source": [ "score=model.evaluate(X_test, y_test)" ], "execution_count": 21, "outputs": [ { "output_type": "stream", "text": [ "10000/10000 [==============================] - 1s 73us/step\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "trusted": true, "id": "ALqc_p-_2BUC", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 34 }, "outputId": "aba469e1-b6c9-4300-ca21-bde25da66d73" }, "source": [ "#We get score as a list\n", "#The second item in score gives us the accuracy of or model\n", "score" ], "execution_count": 22, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "[0.15128104574999485, 0.9795]" ] }, "metadata": { "tags": [] }, "execution_count": 22 } ] } ] }