diff --git a/Final Task/A4_201043.ipynb b/Final Task/A4_201043.ipynb new file mode 100644 index 0000000..9ffa7cd --- /dev/null +++ b/Final Task/A4_201043.ipynb @@ -0,0 +1,1200 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Copy of ICG-CVwTF-Final_Task.ipynb", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + }, + "accelerator": "GPU", + "gpuClass": "standard" + }, + "cells": [ + { + "cell_type": "markdown", + "source": [ + "## Final Task:\n", + "This is your final evaluation for the project. As decided, we will be predicting images of people into three classes: `without_mask`, `mask_weared_incorrect` and `with_mask`. " + ], + "metadata": { + "id": "rtI19Rt-H7Uc" + } + }, + { + "cell_type": "code", + "source": [ + "import tensorflow as tf\n", + "import numpy as np\n", + "from tensorflow import keras\n", + "from keras import layers" + ], + "metadata": { + "id": "c2CiXcHQTbX8" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "### Loading the dataset\n", + "Make a copy of the dataset given to you in your Google Drive (keep it outside, don't put it in any folder to avoid inconvenience). Ensure it is named as `Mask_Dataset` or change the path (the variable `data_dir`) accordingly." + ], + "metadata": { + "id": "QKDPyiZTIm1c" + } + }, + { + "cell_type": "code", + "source": [ + "# Mount Google Drive\n", + "from google.colab import drive\n", + "drive.mount('/content/drive')" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "hNEMe7XsIjrK", + "outputId": "4014d5e8-15cc-4fb5-a213-0ed8773b0099" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Mounted at /content/drive\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "import pathlib\n", + "\n", + "path='/content/drive/MyDrive/Mask_Dataset/'\n", + "data_dir = pathlib.Path(path)" + ], + "metadata": { + "id": "8CXzo4MOJOl8" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "### Know the Dataset\n", + "Most of the code is written for you as you aren't used to these libraries. You are to go through the documentation for your benefit." + ], + "metadata": { + "id": "YHPHkGyDKscK" + } + }, + { + "cell_type": "code", + "source": [ + "# Print image count\n", + "image_count = len(list(data_dir.glob('*/*.png')))\n", + "print(image_count)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "PzbSy-vXKjD-", + "outputId": "f104e43d-a8ad-4952-906d-fbda41ea08d7" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "8982\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Print Output Labels\n", + "import os\n", + "output_classes = os.listdir(data_dir)\n", + "print(output_classes)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "rFHWFYj5NCVm", + "outputId": "0e9b62f6-c2fd-425f-c633-31e7a366e06e" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "['mask_weared_incorrect', 'without_mask', 'with_mask']\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Plot count of each ouput label\n", + "import matplotlib.pyplot as plt\n", + "\n", + "count=[]\n", + "for label in output_classes:\n", + " this_path=path+label\n", + " dir=pathlib.Path(this_path)\n", + " im_count=os.listdir(dir)\n", + " count.append(len(im_count))\n", + "\n", + "print(count)\n", + "\n", + "plt.bar(output_classes,count)\n", + "plt.title(\"Statistics\")\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 299 + }, + "id": "fESyMw90KaxN", + "outputId": "0fcd386a-62dd-49d6-f7df-5eee277a226a" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[2994, 2994, 2994]\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Check some sample images (Use of cv2)\n", + "import cv2\n", + "from google.colab.patches import cv2_imshow\n", + "for label in output_classes:\n", + " this_path=path+label\n", + " dir=pathlib.Path(this_path)\n", + " sample=str(os.listdir(dir)[0])\n", + " this_path=this_path + \"/\" + sample\n", + " dir=pathlib.Path(this_path)\n", + " img = cv2.imread(this_path)\n", + " cv2_imshow(img)\n", + "\n", + " \n", + " \n", + "\n", + "# Your code" + ], + "metadata": { + "id": "HDSJ2Zk5a14s", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 401 + }, + "outputId": "3591fdd1-c8c0-49e7-df7f-70bec081711a" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "image/png": "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\n" + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "image/png": "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\n" + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "image/png": "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1twrM9mbb2266XaM7TFUhUkBDexAjBCyCa5mt93r87q1aqBuzbdmrXlVMyKibmbTALODsQCqQUZGH72P0fuIMci0tl0vctn2y9v764+f+8ubqvruSiIkh6A8UCRcZtIbREHdTOTCDiduVOk74ILd9bZvb7fbt9fX99fXt5fbbd/31pq5miUTNBGYKlzFjIJUpCBITZqYMAWYHCpkgLOJlRPnqhiArCpiKJO0WbdDSIjambPCrLkLUJ222SJ125qbaWt6u49fx7i0Y1O5uHy4Hn3EUCU21Zdmr7u/7u1l97dre71uL5vvTbdmrVlbNUJh61KrPwlhIDMSyewxHqM/jn4co/dOskENwra329v1228v376buTdTkENUJCeup/PQKWeFMGMtkSspqjxUAQcuDS+X7dvr7ce399++//jt2/f31/eX621rm6kWDD6zWxURV8C4W4ZkIpJJEVNSUT/LVKggwTrJyEBEpbBgTDiWMgNXJDmQTM3ywlKENTVxmEzswlX2Zvvurem+2eu9/3r0W/Ory2vTX5sdfUSkAbvbrfnL3m673za/7e3l4pdmm2lzbW5uRdWrVGAaILFqupAge8S9j1+Pfj/6o0dEiijFs1308tZev1+//Xz98Zu6z45Y5VViE/83ZVBGYtUIQSKAADMB4kSuNuDa7O16+f7+9vO3H3/7/fefv//+/ceP6+3W9l3dKZJkRI6oFwmKpFhaS9+4ZQaTkiOUKVmdB9VmM5nOZYAYyMAM0TmzMsxCVpBVR6oZzERVBarGmadSDd60tdn6v7Tj2nw33YU308/djz4iaCK722Xz294um182u2x+3X1zayqm2nxBKXJWJEaRICMzg5Xp/urxz3v/4358HtETgLVtb/ub3L7b6/f2+n17/ba9fjd3r6ZRQcqmQgoNlpLAEACayUwZE9qYHfry/oXEbabXfXt9eXl///btx4/37z9e3t/btokaRSOiH+N4PHrvyYK40Ed/RHRIVx1mA8roMrpkiqlJU3fzZqaF8ghTMoUpGYxgDuaISV0YiGAkyBRRM3VX95k8VP5WtSo9Mre2XbYUQgnJlIgmuLv24UmqSHO/NN9335tvm+2b7c03V5NqaWixTypFVFMpgKXSOKJn3kf8eoz/uPf/+ByfnanubXvZXnB919u7Xl+xXdK2VBcxX+kqVo2nCqYiCROQOVT6hDYWbMbZfjFgb7js++16fXl5eX17fXl9u768bNerqhWho49xHMfj/jiOIwsYBEbGEXFEdKIDnYwx+Dgkw9yaybY1V9NlAwUVc8kQkeOI0SWOGEcczAyORIaQVKUnW4oZTKDlNsnqKKiZeXOfUEykZGyCo9mISKJCd2u+ba01bc22ZlszN7MqASsxW6ihqKopISkhmQmMyEfPjx6/jvzzwD1VbLttr/by7fLt5+Xbz+3lm243qicEENdVWZkVooioOEj0JIkj0irhw0w6RbC57G6byeul/fj+7fv37+/vby8vL/tlN28VPiIzInrvvffoY4zBTKgQMjJHZI/sEX1kjxiRTGoCEBcTdbXmbVMzEVGInQYYkWIiNtFYI4ITHK9UIeo/AAVWxDkUZun0LYlMAxrQBJvi6jYiYvbZ1bwIM+7NvNVxMldTEcUZ5de+VVFTAuzjiKy+YiRHSE8d4vTWru+37799/5d/+flv//j9H//4/vPn6/u3y+3Ft70KiYoBstDIaYCRxOBRPbos5vYMACJwxWVvt4q9P358+/btdntp3pCI3sdxUGREZLLgJwhUJM1ENQEhmT2Ooz8ex/0+7kdGCETKT7fN2mbe1FphPtVWRFIiJRNZaYK7URwGgw76YCweG5EjZgGnRV+kQkzUzeCupJFCKun1UklCCtXx1ry5tYkvuBf0UVD4l4YEJnBLcFDMhhQCN5/I981bu718++33v/39X//xj3/7H//j7//6j/dv75frdd+3/XJRkTKAiMCqNwREciQRHNX3xOTVRBYxCCZobtfL/vb28u3b+7cfv728vW/7TvJ43D9//cqIWmiIMFMEquqtFfZWyYvkg73Hx+f4/IwxhDBzb63te9su7purKaTWMyIkU2NIhEYgo3Br0YJpdjAZI2NEwU1RiXiCrENwYuwmxXTWwpDTnSREkpw+qgywublNA9RYwFz9ZzNjNsZUkrSkTrKHuurufttFmun17dtvP/71b3/7t3/91//xj3/87e9/v73c3F1NW3MRcVvgtquYiYhoEpHJ2bdafTs0gxpU5LK199fXH9+/ff/+7bcf33/+/Pn+7du27Rnx+evXH5Bj381dzM29ypOCTapkL4i8mzlhmRYhpJq3bdsvl23ftn1v3kysWK1ZOyIGo0uMzFCy8nA1W11AkpmjSz9wPNiPjMdqHVco5oJW52/SMt0mxUdjtqHMpwFaM1e1ZYB1AhZgKE8DiBTd1K272Wa2e7vtksKLbO31/bfffvzjb7//29//5d/+/veff/vbdr0USleQtcusp6qxWT6OyZlmF47hKntz28x82y/768vLj2/ffv724/v379/e33+8v397ue1mOcbnn3/gOAoK8G1v++6rEybuRb4ttC17z34wholkRJXpbdva1pq5q+rkkYDUVXvMlqE8+war+IIQCTETgxjMJTw4KEmhFCkXUJCEaUIVajCXBlPNNAIrW3JrzVt170RNz6ZqGW9RNAoREKgwMylbG7tvvfXrxqCJIWzb324/v739/P7t548fP3789v3Hb23fkhER1ZvzL93j2XBkIjMjxxgjc4Bhgs3tsl0uL29v7+8/vn//+fPnb7/9eH97e7nebpf9qqqjj+ORY8Tnx+at7ft+uTJeQDrg5U7NxYygguBNBe5+XO+jD5AT6i8GRk72jgAGNSHUWS2E6uJgglbVXVvNXhFrpibbZhzJibBEDomeEcEqZqYxTYWqAuZC+PVLY0sXVdjsHOFRrOYcztCpQmEYN99627bWL4PBFGNY2/d22/y6+da8tebb5ttO0phaBqjXj0Rq+VspDn1kJkNAN72Ibtb2l7e3Hz9/+/n773/7/fff//b9+/fb9bq5O6Cjx+hH7/3+OcjuvvcrknOuqlAB1ckeru6sadvafrscj8d4HNl79mBEeWohi0R1kvKhExUtoKVI2yQzv5CZKi/0ZlYthciMyC79MboRXfIA4vxZETWtZ5nlQqELZmJrEENOAL6MtIhiNbCm0xh0Y/O2tbZvWyRThgym2tZkd5hSkMkM0iFiajA1F4GPyJmDpmjSnvmytQa4bmIpbvv15duPH7//y+//8i8/f//bz58/397e99YE5NHH56/7/bMjI0aMwQgRsa21GJbhZFaBodNfm6v53vZtj0uMMR6P8Tji8YijZyQnaFE86yLpFvChhJHOjDl1F6gxiyyCrYqimpQmCkFKJmLmO6AipWY0ABUZk/6batVgrFm857DUkyMx3cQKiTW/UPxKVSXRHNm22PYcA6Cq+shUa5teHE2qwRFZwRUFaJuIeD+6CDIVTNDIsr64+0X96rtuF7/cLre3t99+/+33v/347ffvP368f3t/ub64GiOGfj5GT/dunqZJhQlNqRLzU0MlRATQTAXrHLuZu2dr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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Check shape of the images in your dataset. This will be helpful while specifying input_shape in your Transfer Learning Model\n", + "shape=img.shape" + ], + "metadata": { + "id": "jWBEMC1FUfXS" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Check if all the images have same shape, else you need to resize them to some common size\n", + "# The code provided as it is above in the template will help \n", + "for label in output_classes:\n", + " this_path=path+label\n", + " dir=pathlib.Path(this_path)\n", + " for i in range(0,len(im_count)):\n", + " sample=str(os.listdir(dir)[i])\n", + " this_path_=this_path + \"/\" + sample\n", + " #dir_=pathlib.Path(this_path)\n", + " img = cv2.imread(this_path_)\n", + " if(img.shape!=shape):\n", + " print(sample+\" has a different shape.\")\n", + " " + ], + "metadata": { + "id": "52BhBWRab5yc" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# If the shape is variable, reshape to a common size \n", + "# If it is same, prove it\n", + "len(im_count)" + ], + "metadata": { + "id": "G-Atau4Rfc-x", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "a9220c6d-f3bc-4d2c-fc8d-4c9b431a75d3" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "2994" + ] + }, + "metadata": {}, + "execution_count": 10 + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Anything else you want to plot/experiment\n", + "size=np.insert(shape,0,3*len(im_count))\n", + "data=np.zeros(size)\n", + "labels=[]\n", + "j=0\n", + "for label in output_classes:\n", + " this_path=path+label\n", + " dir=pathlib.Path(this_path)\n", + " for i in range(0,len(im_count)):\n", + " sample=str(os.listdir(dir)[i])\n", + " this_path_=this_path + \"/\" + sample\n", + " #dir_=pathlib.Path(this_path)\n", + " img = cv2.imread(this_path_)\n", + " data[j]=img\n", + " labels.append(label)\n", + " j=j+1\n", + "\n" + ], + "metadata": { + "id": "F0XHxMo2RVQd" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "### Model Definition\n", + "Choose a model for Transfer Learning (You may also experment with multiple models and keep all of them in this notebook)" + ], + "metadata": { + "id": "zSoUXS1cRbnu" + } + }, + { + "cell_type": "code", + "source": [ + "from tensorflow.keras.layers import Input, Lambda, Dense, Flatten\n", + "from tensorflow.keras.models import Model\n", + "from tensorflow.keras.preprocessing import image\n", + "from tensorflow.keras.models import Sequential" + ], + "metadata": { + "id": "QKZmIgXMTHfy" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Choose and define base model\n", + "base_model = tf.keras.applications.MobileNetV2(input_shape=shape,\n", + " include_top=False,\n", + " weights='imagenet')" + ], + "metadata": { + "id": "9xWLUibHRNGj", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "705c30f1-0401-40d5-c2f8-78fdb9260d88" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/mobilenet_v2/mobilenet_v2_weights_tf_dim_ordering_tf_kernels_1.0_128_no_top.h5\n", + "9412608/9406464 [==============================] - 0s 0us/step\n", + "9420800/9406464 [==============================] - 0s 0us/step\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Print base model summary and have a look at the layers\n", + "base_model.summary()" + ], + "metadata": { + "id": "J3TwB_GLd7BU", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "4a125ecf-490a-448b-d30f-53e442c8e2c3" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Model: \"mobilenetv2_1.00_128\"\n", + "__________________________________________________________________________________________________\n", + " Layer (type) Output Shape Param # Connected to \n", + "==================================================================================================\n", + " input_1 (InputLayer) [(None, 128, 128, 3 0 [] \n", + " )] \n", + " \n", + " Conv1 (Conv2D) (None, 64, 64, 32) 864 ['input_1[0][0]'] \n", + " \n", + " bn_Conv1 (BatchNormalization) (None, 64, 64, 32) 128 ['Conv1[0][0]'] \n", + " \n", + " Conv1_relu (ReLU) (None, 64, 64, 32) 0 ['bn_Conv1[0][0]'] \n", + " \n", + " expanded_conv_depthwise (Depth (None, 64, 64, 32) 288 ['Conv1_relu[0][0]'] \n", + " wiseConv2D) \n", + " \n", + " expanded_conv_depthwise_BN (Ba (None, 64, 64, 32) 128 ['expanded_conv_depthwise[0][0]']\n", + " tchNormalization) \n", + " \n", + " expanded_conv_depthwise_relu ( (None, 64, 64, 32) 0 ['expanded_conv_depthwise_BN[0][0\n", + " ReLU) ]'] \n", + " \n", + " expanded_conv_project (Conv2D) (None, 64, 64, 16) 512 ['expanded_conv_depthwise_relu[0]\n", + " [0]'] \n", + " \n", + " expanded_conv_project_BN (Batc (None, 64, 64, 16) 64 ['expanded_conv_project[0][0]'] \n", + " hNormalization) \n", + " \n", + " block_1_expand (Conv2D) (None, 64, 64, 96) 1536 ['expanded_conv_project_BN[0][0]'\n", + " ] \n", + " \n", + " block_1_expand_BN (BatchNormal (None, 64, 64, 96) 384 ['block_1_expand[0][0]'] \n", + " ization) \n", + " \n", + " block_1_expand_relu (ReLU) (None, 64, 64, 96) 0 ['block_1_expand_BN[0][0]'] \n", + " \n", + " block_1_pad (ZeroPadding2D) (None, 65, 65, 96) 0 ['block_1_expand_relu[0][0]'] \n", + " \n", + " block_1_depthwise (DepthwiseCo (None, 32, 32, 96) 864 ['block_1_pad[0][0]'] \n", + " nv2D) \n", + " \n", + " block_1_depthwise_BN (BatchNor (None, 32, 32, 96) 384 ['block_1_depthwise[0][0]'] \n", + " malization) \n", + " \n", + " block_1_depthwise_relu (ReLU) (None, 32, 32, 96) 0 ['block_1_depthwise_BN[0][0]'] \n", + " \n", + " block_1_project (Conv2D) (None, 32, 32, 24) 2304 ['block_1_depthwise_relu[0][0]'] \n", + " \n", + " block_1_project_BN (BatchNorma (None, 32, 32, 24) 96 ['block_1_project[0][0]'] \n", + " lization) \n", + " \n", + " block_2_expand (Conv2D) (None, 32, 32, 144) 3456 ['block_1_project_BN[0][0]'] \n", + " \n", + " block_2_expand_BN (BatchNormal (None, 32, 32, 144) 576 ['block_2_expand[0][0]'] \n", + " ization) \n", + " \n", + " block_2_expand_relu (ReLU) (None, 32, 32, 144) 0 ['block_2_expand_BN[0][0]'] \n", + " \n", + " block_2_depthwise (DepthwiseCo (None, 32, 32, 144) 1296 ['block_2_expand_relu[0][0]'] \n", + " nv2D) \n", + " \n", + " block_2_depthwise_BN (BatchNor (None, 32, 32, 144) 576 ['block_2_depthwise[0][0]'] \n", + " malization) \n", + " \n", + " block_2_depthwise_relu (ReLU) (None, 32, 32, 144) 0 ['block_2_depthwise_BN[0][0]'] \n", + " \n", + " block_2_project (Conv2D) (None, 32, 32, 24) 3456 ['block_2_depthwise_relu[0][0]'] \n", + " \n", + " block_2_project_BN (BatchNorma (None, 32, 32, 24) 96 ['block_2_project[0][0]'] \n", + " lization) \n", + " \n", + " block_2_add (Add) (None, 32, 32, 24) 0 ['block_1_project_BN[0][0]', \n", + " 'block_2_project_BN[0][0]'] \n", + " \n", + " block_3_expand (Conv2D) (None, 32, 32, 144) 3456 ['block_2_add[0][0]'] \n", + " \n", + " block_3_expand_BN (BatchNormal (None, 32, 32, 144) 576 ['block_3_expand[0][0]'] \n", + " ization) \n", + " \n", + " block_3_expand_relu (ReLU) (None, 32, 32, 144) 0 ['block_3_expand_BN[0][0]'] \n", + " \n", + " block_3_pad (ZeroPadding2D) (None, 33, 33, 144) 0 ['block_3_expand_relu[0][0]'] \n", + " \n", + " block_3_depthwise (DepthwiseCo (None, 16, 16, 144) 1296 ['block_3_pad[0][0]'] \n", + " nv2D) \n", + " \n", + " block_3_depthwise_BN (BatchNor (None, 16, 16, 144) 576 ['block_3_depthwise[0][0]'] \n", + " malization) \n", + " \n", + " block_3_depthwise_relu (ReLU) (None, 16, 16, 144) 0 ['block_3_depthwise_BN[0][0]'] \n", + " \n", + " block_3_project (Conv2D) (None, 16, 16, 32) 4608 ['block_3_depthwise_relu[0][0]'] \n", + " \n", + " block_3_project_BN (BatchNorma (None, 16, 16, 32) 128 ['block_3_project[0][0]'] \n", + " lization) \n", + " \n", + " block_4_expand (Conv2D) (None, 16, 16, 192) 6144 ['block_3_project_BN[0][0]'] \n", + " \n", + " block_4_expand_BN (BatchNormal (None, 16, 16, 192) 768 ['block_4_expand[0][0]'] \n", + " ization) \n", + " \n", + " block_4_expand_relu (ReLU) (None, 16, 16, 192) 0 ['block_4_expand_BN[0][0]'] \n", + " \n", + " block_4_depthwise (DepthwiseCo (None, 16, 16, 192) 1728 ['block_4_expand_relu[0][0]'] \n", + " nv2D) \n", + " \n", + " block_4_depthwise_BN (BatchNor (None, 16, 16, 192) 768 ['block_4_depthwise[0][0]'] \n", + " malization) \n", + " \n", + " block_4_depthwise_relu (ReLU) (None, 16, 16, 192) 0 ['block_4_depthwise_BN[0][0]'] \n", + " \n", + " block_4_project (Conv2D) (None, 16, 16, 32) 6144 ['block_4_depthwise_relu[0][0]'] \n", + " \n", + " block_4_project_BN (BatchNorma (None, 16, 16, 32) 128 ['block_4_project[0][0]'] \n", + " lization) \n", + " \n", + " block_4_add (Add) (None, 16, 16, 32) 0 ['block_3_project_BN[0][0]', \n", + " 'block_4_project_BN[0][0]'] \n", + " \n", + " block_5_expand (Conv2D) (None, 16, 16, 192) 6144 ['block_4_add[0][0]'] \n", + " \n", + " block_5_expand_BN (BatchNormal (None, 16, 16, 192) 768 ['block_5_expand[0][0]'] \n", + " ization) \n", + " \n", + " block_5_expand_relu (ReLU) (None, 16, 16, 192) 0 ['block_5_expand_BN[0][0]'] \n", + " \n", + " block_5_depthwise (DepthwiseCo (None, 16, 16, 192) 1728 ['block_5_expand_relu[0][0]'] \n", + " nv2D) \n", + " \n", + " block_5_depthwise_BN (BatchNor (None, 16, 16, 192) 768 ['block_5_depthwise[0][0]'] \n", + " malization) \n", + " \n", + " block_5_depthwise_relu (ReLU) (None, 16, 16, 192) 0 ['block_5_depthwise_BN[0][0]'] \n", + " \n", + " block_5_project (Conv2D) (None, 16, 16, 32) 6144 ['block_5_depthwise_relu[0][0]'] \n", + " \n", + " block_5_project_BN (BatchNorma (None, 16, 16, 32) 128 ['block_5_project[0][0]'] \n", + " lization) \n", + " \n", + " block_5_add (Add) (None, 16, 16, 32) 0 ['block_4_add[0][0]', \n", + " 'block_5_project_BN[0][0]'] \n", + " \n", + " block_6_expand (Conv2D) (None, 16, 16, 192) 6144 ['block_5_add[0][0]'] \n", + " \n", + " block_6_expand_BN (BatchNormal (None, 16, 16, 192) 768 ['block_6_expand[0][0]'] \n", + " ization) \n", + " \n", + " block_6_expand_relu (ReLU) (None, 16, 16, 192) 0 ['block_6_expand_BN[0][0]'] \n", + " \n", + " block_6_pad (ZeroPadding2D) (None, 17, 17, 192) 0 ['block_6_expand_relu[0][0]'] \n", + " \n", + " block_6_depthwise (DepthwiseCo (None, 8, 8, 192) 1728 ['block_6_pad[0][0]'] \n", + " nv2D) \n", + " \n", + " block_6_depthwise_BN (BatchNor (None, 8, 8, 192) 768 ['block_6_depthwise[0][0]'] \n", + " malization) \n", + " \n", + " block_6_depthwise_relu (ReLU) (None, 8, 8, 192) 0 ['block_6_depthwise_BN[0][0]'] \n", + " \n", + " block_6_project (Conv2D) (None, 8, 8, 64) 12288 ['block_6_depthwise_relu[0][0]'] \n", + " \n", + " block_6_project_BN (BatchNorma (None, 8, 8, 64) 256 ['block_6_project[0][0]'] \n", + " lization) \n", + " \n", + " block_7_expand (Conv2D) (None, 8, 8, 384) 24576 ['block_6_project_BN[0][0]'] \n", + " \n", + " block_7_expand_BN (BatchNormal (None, 8, 8, 384) 1536 ['block_7_expand[0][0]'] \n", + " ization) \n", + " \n", + " block_7_expand_relu (ReLU) (None, 8, 8, 384) 0 ['block_7_expand_BN[0][0]'] \n", + " \n", + " block_7_depthwise (DepthwiseCo (None, 8, 8, 384) 3456 ['block_7_expand_relu[0][0]'] \n", + " nv2D) \n", + " \n", + " block_7_depthwise_BN (BatchNor (None, 8, 8, 384) 1536 ['block_7_depthwise[0][0]'] \n", + " malization) \n", + " \n", + " block_7_depthwise_relu (ReLU) (None, 8, 8, 384) 0 ['block_7_depthwise_BN[0][0]'] \n", + " \n", + " block_7_project (Conv2D) (None, 8, 8, 64) 24576 ['block_7_depthwise_relu[0][0]'] \n", + " \n", + " block_7_project_BN (BatchNorma (None, 8, 8, 64) 256 ['block_7_project[0][0]'] \n", + " lization) \n", + " \n", + " block_7_add (Add) (None, 8, 8, 64) 0 ['block_6_project_BN[0][0]', \n", + " 'block_7_project_BN[0][0]'] \n", + " \n", + " block_8_expand (Conv2D) (None, 8, 8, 384) 24576 ['block_7_add[0][0]'] \n", + " \n", + " block_8_expand_BN (BatchNormal (None, 8, 8, 384) 1536 ['block_8_expand[0][0]'] \n", + " ization) \n", + " \n", + " block_8_expand_relu (ReLU) (None, 8, 8, 384) 0 ['block_8_expand_BN[0][0]'] \n", + " \n", + " block_8_depthwise (DepthwiseCo (None, 8, 8, 384) 3456 ['block_8_expand_relu[0][0]'] \n", + " nv2D) \n", + " \n", + " block_8_depthwise_BN (BatchNor (None, 8, 8, 384) 1536 ['block_8_depthwise[0][0]'] \n", + " malization) \n", + " \n", + " block_8_depthwise_relu (ReLU) (None, 8, 8, 384) 0 ['block_8_depthwise_BN[0][0]'] \n", + " \n", + " block_8_project (Conv2D) (None, 8, 8, 64) 24576 ['block_8_depthwise_relu[0][0]'] \n", + " \n", + " block_8_project_BN (BatchNorma (None, 8, 8, 64) 256 ['block_8_project[0][0]'] \n", + " lization) \n", + " \n", + " block_8_add (Add) (None, 8, 8, 64) 0 ['block_7_add[0][0]', \n", + " 'block_8_project_BN[0][0]'] \n", + " \n", + " block_9_expand (Conv2D) (None, 8, 8, 384) 24576 ['block_8_add[0][0]'] \n", + " \n", + " block_9_expand_BN (BatchNormal (None, 8, 8, 384) 1536 ['block_9_expand[0][0]'] \n", + " ization) \n", + " \n", + " block_9_expand_relu (ReLU) (None, 8, 8, 384) 0 ['block_9_expand_BN[0][0]'] \n", + " \n", + " block_9_depthwise (DepthwiseCo (None, 8, 8, 384) 3456 ['block_9_expand_relu[0][0]'] \n", + " nv2D) \n", + " \n", + " block_9_depthwise_BN (BatchNor (None, 8, 8, 384) 1536 ['block_9_depthwise[0][0]'] \n", + " malization) \n", + " \n", + " block_9_depthwise_relu (ReLU) (None, 8, 8, 384) 0 ['block_9_depthwise_BN[0][0]'] \n", + " \n", + " block_9_project (Conv2D) (None, 8, 8, 64) 24576 ['block_9_depthwise_relu[0][0]'] \n", + " \n", + " block_9_project_BN (BatchNorma (None, 8, 8, 64) 256 ['block_9_project[0][0]'] \n", + " lization) \n", + " \n", + " block_9_add (Add) (None, 8, 8, 64) 0 ['block_8_add[0][0]', \n", + " 'block_9_project_BN[0][0]'] \n", + " \n", + " block_10_expand (Conv2D) (None, 8, 8, 384) 24576 ['block_9_add[0][0]'] \n", + " \n", + " block_10_expand_BN (BatchNorma (None, 8, 8, 384) 1536 ['block_10_expand[0][0]'] \n", + " lization) \n", + " \n", + " block_10_expand_relu (ReLU) (None, 8, 8, 384) 0 ['block_10_expand_BN[0][0]'] \n", + " \n", + " block_10_depthwise (DepthwiseC (None, 8, 8, 384) 3456 ['block_10_expand_relu[0][0]'] \n", + " onv2D) \n", + " \n", + " block_10_depthwise_BN (BatchNo (None, 8, 8, 384) 1536 ['block_10_depthwise[0][0]'] \n", + " rmalization) \n", + " \n", + " block_10_depthwise_relu (ReLU) (None, 8, 8, 384) 0 ['block_10_depthwise_BN[0][0]'] \n", + " \n", + " block_10_project (Conv2D) (None, 8, 8, 96) 36864 ['block_10_depthwise_relu[0][0]']\n", + " \n", + " block_10_project_BN (BatchNorm (None, 8, 8, 96) 384 ['block_10_project[0][0]'] \n", + " alization) \n", + " \n", + " block_11_expand (Conv2D) (None, 8, 8, 576) 55296 ['block_10_project_BN[0][0]'] \n", + " \n", + " block_11_expand_BN (BatchNorma (None, 8, 8, 576) 2304 ['block_11_expand[0][0]'] \n", + " lization) \n", + " \n", + " block_11_expand_relu (ReLU) (None, 8, 8, 576) 0 ['block_11_expand_BN[0][0]'] \n", + " \n", + " block_11_depthwise (DepthwiseC (None, 8, 8, 576) 5184 ['block_11_expand_relu[0][0]'] \n", + " onv2D) \n", + " \n", + " block_11_depthwise_BN (BatchNo (None, 8, 8, 576) 2304 ['block_11_depthwise[0][0]'] \n", + " rmalization) \n", + " \n", + " block_11_depthwise_relu (ReLU) (None, 8, 8, 576) 0 ['block_11_depthwise_BN[0][0]'] \n", + " \n", + " block_11_project (Conv2D) (None, 8, 8, 96) 55296 ['block_11_depthwise_relu[0][0]']\n", + " \n", + " block_11_project_BN (BatchNorm (None, 8, 8, 96) 384 ['block_11_project[0][0]'] \n", + " alization) \n", + " \n", + " block_11_add (Add) (None, 8, 8, 96) 0 ['block_10_project_BN[0][0]', \n", + " 'block_11_project_BN[0][0]'] \n", + " \n", + " block_12_expand (Conv2D) (None, 8, 8, 576) 55296 ['block_11_add[0][0]'] \n", + " \n", + " block_12_expand_BN (BatchNorma (None, 8, 8, 576) 2304 ['block_12_expand[0][0]'] \n", + " lization) \n", + " \n", + " block_12_expand_relu (ReLU) (None, 8, 8, 576) 0 ['block_12_expand_BN[0][0]'] \n", + " \n", + " block_12_depthwise (DepthwiseC (None, 8, 8, 576) 5184 ['block_12_expand_relu[0][0]'] \n", + " onv2D) \n", + " \n", + " block_12_depthwise_BN (BatchNo (None, 8, 8, 576) 2304 ['block_12_depthwise[0][0]'] \n", + " rmalization) \n", + " \n", + " block_12_depthwise_relu (ReLU) (None, 8, 8, 576) 0 ['block_12_depthwise_BN[0][0]'] \n", + " \n", + " block_12_project (Conv2D) (None, 8, 8, 96) 55296 ['block_12_depthwise_relu[0][0]']\n", + " \n", + " block_12_project_BN (BatchNorm (None, 8, 8, 96) 384 ['block_12_project[0][0]'] \n", + " alization) \n", + " \n", + " block_12_add (Add) (None, 8, 8, 96) 0 ['block_11_add[0][0]', \n", + " 'block_12_project_BN[0][0]'] \n", + " \n", + " block_13_expand (Conv2D) (None, 8, 8, 576) 55296 ['block_12_add[0][0]'] \n", + " \n", + " block_13_expand_BN (BatchNorma (None, 8, 8, 576) 2304 ['block_13_expand[0][0]'] \n", + " lization) \n", + " \n", + " block_13_expand_relu (ReLU) (None, 8, 8, 576) 0 ['block_13_expand_BN[0][0]'] \n", + " \n", + " block_13_pad (ZeroPadding2D) (None, 9, 9, 576) 0 ['block_13_expand_relu[0][0]'] \n", + " \n", + " block_13_depthwise (DepthwiseC (None, 4, 4, 576) 5184 ['block_13_pad[0][0]'] \n", + " onv2D) \n", + " \n", + " block_13_depthwise_BN (BatchNo (None, 4, 4, 576) 2304 ['block_13_depthwise[0][0]'] \n", + " rmalization) \n", + " \n", + " block_13_depthwise_relu (ReLU) (None, 4, 4, 576) 0 ['block_13_depthwise_BN[0][0]'] \n", + " \n", + " block_13_project (Conv2D) (None, 4, 4, 160) 92160 ['block_13_depthwise_relu[0][0]']\n", + " \n", + " block_13_project_BN (BatchNorm (None, 4, 4, 160) 640 ['block_13_project[0][0]'] \n", + " alization) \n", + " \n", + " block_14_expand (Conv2D) (None, 4, 4, 960) 153600 ['block_13_project_BN[0][0]'] \n", + " \n", + " block_14_expand_BN (BatchNorma (None, 4, 4, 960) 3840 ['block_14_expand[0][0]'] \n", + " lization) \n", + " \n", + " block_14_expand_relu (ReLU) (None, 4, 4, 960) 0 ['block_14_expand_BN[0][0]'] \n", + " \n", + " block_14_depthwise (DepthwiseC (None, 4, 4, 960) 8640 ['block_14_expand_relu[0][0]'] \n", + " onv2D) \n", + " \n", + " block_14_depthwise_BN (BatchNo (None, 4, 4, 960) 3840 ['block_14_depthwise[0][0]'] \n", + " rmalization) \n", + " \n", + " block_14_depthwise_relu (ReLU) (None, 4, 4, 960) 0 ['block_14_depthwise_BN[0][0]'] \n", + " \n", + " block_14_project (Conv2D) (None, 4, 4, 160) 153600 ['block_14_depthwise_relu[0][0]']\n", + " \n", + " block_14_project_BN (BatchNorm (None, 4, 4, 160) 640 ['block_14_project[0][0]'] \n", + " alization) \n", + " \n", + " block_14_add (Add) (None, 4, 4, 160) 0 ['block_13_project_BN[0][0]', \n", + " 'block_14_project_BN[0][0]'] \n", + " \n", + " block_15_expand (Conv2D) (None, 4, 4, 960) 153600 ['block_14_add[0][0]'] \n", + " \n", + " block_15_expand_BN (BatchNorma (None, 4, 4, 960) 3840 ['block_15_expand[0][0]'] \n", + " lization) \n", + " \n", + " block_15_expand_relu (ReLU) (None, 4, 4, 960) 0 ['block_15_expand_BN[0][0]'] \n", + " \n", + " block_15_depthwise (DepthwiseC (None, 4, 4, 960) 8640 ['block_15_expand_relu[0][0]'] \n", + " onv2D) \n", + " \n", + " block_15_depthwise_BN (BatchNo (None, 4, 4, 960) 3840 ['block_15_depthwise[0][0]'] \n", + " rmalization) \n", + " \n", + " block_15_depthwise_relu (ReLU) (None, 4, 4, 960) 0 ['block_15_depthwise_BN[0][0]'] \n", + " \n", + " block_15_project (Conv2D) (None, 4, 4, 160) 153600 ['block_15_depthwise_relu[0][0]']\n", + " \n", + " block_15_project_BN (BatchNorm (None, 4, 4, 160) 640 ['block_15_project[0][0]'] \n", + " alization) \n", + " \n", + " block_15_add (Add) (None, 4, 4, 160) 0 ['block_14_add[0][0]', \n", + " 'block_15_project_BN[0][0]'] \n", + " \n", + " block_16_expand (Conv2D) (None, 4, 4, 960) 153600 ['block_15_add[0][0]'] \n", + " \n", + " block_16_expand_BN (BatchNorma (None, 4, 4, 960) 3840 ['block_16_expand[0][0]'] \n", + " lization) \n", + " \n", + " block_16_expand_relu (ReLU) (None, 4, 4, 960) 0 ['block_16_expand_BN[0][0]'] \n", + " \n", + " block_16_depthwise (DepthwiseC (None, 4, 4, 960) 8640 ['block_16_expand_relu[0][0]'] \n", + " onv2D) \n", + " \n", + " block_16_depthwise_BN (BatchNo (None, 4, 4, 960) 3840 ['block_16_depthwise[0][0]'] \n", + " rmalization) \n", + " \n", + " block_16_depthwise_relu (ReLU) (None, 4, 4, 960) 0 ['block_16_depthwise_BN[0][0]'] \n", + " \n", + " block_16_project (Conv2D) (None, 4, 4, 320) 307200 ['block_16_depthwise_relu[0][0]']\n", + " \n", + " block_16_project_BN (BatchNorm (None, 4, 4, 320) 1280 ['block_16_project[0][0]'] \n", + " alization) \n", + " \n", + " Conv_1 (Conv2D) (None, 4, 4, 1280) 409600 ['block_16_project_BN[0][0]'] \n", + " \n", + " Conv_1_bn (BatchNormalization) (None, 4, 4, 1280) 5120 ['Conv_1[0][0]'] \n", + " \n", + " out_relu (ReLU) (None, 4, 4, 1280) 0 ['Conv_1_bn[0][0]'] \n", + " \n", + "==================================================================================================\n", + "Total params: 2,257,984\n", + "Trainable params: 2,223,872\n", + "Non-trainable params: 34,112\n", + "__________________________________________________________________________________________________\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# As we're using Transfer Learning, you do not need to train all the layers. Freeze all of the layers or train some layers (experiment)\n", + "for layer in base_model.layers:\n", + " layer.trainable = False" + ], + "metadata": { + "id": "F_Heq3C1eKd-" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Append Fully connected/custom Conv2D/Dropout/MaxPooling layers to the base model\n", + "model=tf.keras.Sequential()\n", + "model.add(base_model)\n", + "model.add(tf.keras.layers.AveragePooling2D(pool_size=(7,7), padding=\"same\"))\n", + "model.add(tf.keras.layers.Flatten())\n", + "model.add(tf.keras.layers.Dense(128, activation=\"relu\"))\n", + "model.add(tf.keras.layers.Dropout(0.5))" + ], + "metadata": { + "id": "MKx1EtUJea6D" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Add the final output layer\n", + "model.add(tf.keras.layers.Dense(3,activation=\"softmax\"))" + ], + "metadata": { + "id": "q6I3oTTNgP8L" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Print your model's summary\n", + "model.summary()" + ], + "metadata": { + "id": "6aVQocJwgN5r", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "2d1a0c68-f3cd-49c4-b1b1-90cc4ec9708f" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Model: \"sequential\"\n", + "_________________________________________________________________\n", + " Layer (type) Output Shape Param # \n", + "=================================================================\n", + " mobilenetv2_1.00_128 (Funct (None, 4, 4, 1280) 2257984 \n", + " ional) \n", + " \n", + " average_pooling2d (AverageP (None, 1, 1, 1280) 0 \n", + " ooling2D) \n", + " \n", + " flatten (Flatten) (None, 1280) 0 \n", + " \n", + " dense (Dense) (None, 128) 163968 \n", + " \n", + " dropout (Dropout) (None, 128) 0 \n", + " \n", + " dense_1 (Dense) (None, 3) 387 \n", + " \n", + "=================================================================\n", + "Total params: 2,422,339\n", + "Trainable params: 164,355\n", + "Non-trainable params: 2,257,984\n", + "_________________________________________________________________\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Compile you model (set the parameters like loss/optimizers/metrics)\n", + "model.compile(optimizer='adam',loss='categorical_crossentropy', metrics=['accuracy'])" + ], + "metadata": { + "id": "qdC71fUBgXAg" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "### Data Augmentation and Pre-processing\n", + "Augment the data. You may also try dyanamic augmentation using [`tf.keras.preprocessing.image.ImageDataGenerator `](https://www.tensorflow.org/api_docs/python/tf/keras/preprocessing/image/ImageDataGenerator). \n", + "You may use [`tf.keras.applications.vgg16.preprocess_input`](https://www.tensorflow.org/api_docs/python/tf/keras/applications/vgg16/preprocess_input)(or some other base model's utility) for pre-processing (can also be passed as a parameter to `ImageDataGenerator`)" + ], + "metadata": { + "id": "RdUSMLggifex" + } + }, + { + "cell_type": "code", + "source": [ + "from keras.applications.mobilenet_v2 import preprocess_input # Change according to your base model\n", + "from tensorflow.keras.preprocessing.image import ImageDataGenerator\n", + "from sklearn.preprocessing import LabelBinarizer\n", + "from sklearn.model_selection import train_test_split\n", + "from tensorflow.keras.utils import to_categorical\n", + "\n", + "aug = ImageDataGenerator(\n", + "\trotation_range=20,\n", + "\tzoom_range=0.15,\n", + "\twidth_shift_range=0.2,\n", + "\theight_shift_range=0.2,\n", + "\tshear_range=0.15,\n", + "\thorizontal_flip=True,\n", + "\tfill_mode=\"nearest\")\n", + "\n", + "# Your code " + ], + "metadata": { + "id": "DBscSsvkgn39" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "data=preprocess_input(data)" + ], + "metadata": { + "id": "h9o3Zsd7IKAp" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "### Training and Validation Dataset \n", + "Split the dataset into training and validation (We'll be looking for your validation accuracy, assume we are using complete dataset for now). \n", + "\n", + "Hint: `flow_from_directory` used with `ImageDataGenerator` will simplify things for you." + ], + "metadata": { + "id": "IcKPxCpOkcuG" + } + }, + { + "cell_type": "code", + "source": [ + "# Your code\n", + "from sklearn.preprocessing import LabelBinarizer\n", + "from sklearn.model_selection import train_test_split\n", + "from tensorflow.keras.utils import to_categorical\n", + "\n", + "lb = LabelBinarizer()\n", + "labels_ = lb.fit_transform(labels)\n", + "#labels_ = to_categorical(labels_, num_classes=3)" + ], + "metadata": { + "id": "sB7hb3ybkJRq" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "(trainX, testX, trainY, testY) = train_test_split(data, labels_,test_size=0.20, stratify=labels_, random_state=42)" + ], + "metadata": { + "id": "LrzAO4njPAgA" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "del(base_model)" + ], + "metadata": { + "id": "OyppjiakJ_zP" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "### Training \n", + "Train your model for some epochs and plot the graph. Try and save your best model. Experiment with the parameters of `model.fit`" + ], + "metadata": { + "id": "ZZPsjpT1mp3z" + } + }, + { + "cell_type": "code", + "source": [ + "from keras.callbacks import ModelCheckpoint\n", + "\n", + "history=model.fit(aug.flow(trainX, trainY, batch_size=32), steps_per_epoch= len(trainX) // 32, validation_data=(testX, testY), validation_steps=len(testX) // 32,\n", + "\tepochs=20)\n", + "# ModelCheckpoint is helpful to save the model giving best results (brownie points)" + ], + "metadata": { + "id": "Gs2X14MBmu7W", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "3c7b57bf-902c-49d4-e3fa-cb02ce3cb6b1" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Epoch 1/20\n", + "224/224 [==============================] - ETA: 0s - loss: 0.3011 - accuracy: 0.8875WARNING:tensorflow:Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches (in this case, 56 batches). You may need to use the repeat() function when building your dataset.\n", + "224/224 [==============================] - 44s 137ms/step - loss: 0.3011 - accuracy: 0.8875 - val_loss: 0.1047 - val_accuracy: 0.9616\n", + "Epoch 2/20\n", + "224/224 [==============================] - 26s 116ms/step - loss: 0.1798 - accuracy: 0.9374\n", + "Epoch 3/20\n", + "224/224 [==============================] - 26s 116ms/step - loss: 0.1483 - accuracy: 0.9449\n", + "Epoch 4/20\n", + "224/224 [==============================] - 26s 116ms/step - loss: 0.1350 - accuracy: 0.9509\n", + "Epoch 5/20\n", + "224/224 [==============================] - 26s 116ms/step - loss: 0.1162 - accuracy: 0.9583\n", + "Epoch 6/20\n", + "224/224 [==============================] - 27s 123ms/step - loss: 0.1109 - accuracy: 0.9582\n", + "Epoch 7/20\n", + "224/224 [==============================] - 26s 116ms/step - loss: 0.1032 - accuracy: 0.9644\n", + "Epoch 8/20\n", + "224/224 [==============================] - 26s 115ms/step - loss: 0.1048 - accuracy: 0.9620\n", + "Epoch 9/20\n", + "224/224 [==============================] - 26s 116ms/step - loss: 0.0962 - accuracy: 0.9645\n", + "Epoch 10/20\n", + "224/224 [==============================] - 26s 117ms/step - loss: 0.0997 - accuracy: 0.9638\n", + "Epoch 11/20\n", + "224/224 [==============================] - 27s 123ms/step - loss: 0.0974 - accuracy: 0.9649\n", + "Epoch 12/20\n", + "224/224 [==============================] - 26s 116ms/step - loss: 0.0890 - accuracy: 0.9673\n", + "Epoch 13/20\n", + "224/224 [==============================] - 26s 116ms/step - loss: 0.0888 - accuracy: 0.9681\n", + "Epoch 14/20\n", + "224/224 [==============================] - 26s 116ms/step - loss: 0.0805 - accuracy: 0.9720\n", + "Epoch 15/20\n", + "224/224 [==============================] - 26s 117ms/step - loss: 0.0936 - accuracy: 0.9656\n", + "Epoch 16/20\n", + "224/224 [==============================] - 28s 123ms/step - loss: 0.0835 - accuracy: 0.9695\n", + "Epoch 17/20\n", + "224/224 [==============================] - 26s 116ms/step - loss: 0.0796 - accuracy: 0.9713\n", + "Epoch 18/20\n", + "224/224 [==============================] - 26s 116ms/step - loss: 0.0697 - accuracy: 0.9729\n", + "Epoch 19/20\n", + "224/224 [==============================] - 27s 122ms/step - loss: 0.0811 - accuracy: 0.9685\n", + "Epoch 20/20\n", + "224/224 [==============================] - 26s 116ms/step - loss: 0.0785 - accuracy: 0.9719\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "### Evaluate the performance" + ], + "metadata": { + "id": "FTvRa1FXri4R" + } + }, + { + "cell_type": "code", + "source": [ + "# Plot training & validation loss/accuracy values\n", + "test_loss, test_acc = model.evaluate(testX,testY)" + ], + "metadata": { + "id": "cTH6flzcrck0", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "b32a9915-8818-4558-b547-c973d69ddd89" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "57/57 [==============================] - 2s 28ms/step - loss: 0.0462 - accuracy: 0.9844\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "from sklearn.metrics import classification_report, confusion_matrix\n", + "import numpy as np\n", + "preds=model.predict(testX)\n", + "#classification_report(np.argmax(preds,axis=1),testY)" + ], + "metadata": { + "id": "fJ-ZtU84r66Z" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "#x=np.argmax(preds,axis=1)\n", + "#preds[:,x]=1\n", + "preds\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "oOK4pTW5OlIw", + "outputId": "faf99d12-80be-4c7e-fa00-f53a11b5ad36" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[1., 1., 1.],\n", + " [1., 1., 1.],\n", + " [1., 1., 1.],\n", + " ...,\n", + " [1., 1., 1.],\n", + " [1., 1., 1.],\n", + " [1., 1., 1.]], dtype=float32)" + ] + }, + "metadata": {}, + "execution_count": 47 + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Use the classification report to print precision, recall, f1-score for the three classes(optional, brownie points)" + ], + "metadata": { + "id": "VytDxkswrvXw" + }, + "execution_count": null, + "outputs": [] + } + ] +} \ No newline at end of file