From c3db9ba0004025a8a8d7bf3b8d2bc51ee6c21297 Mon Sep 17 00:00:00 2001 From: UsernameStillUnavailable <88334804+UsernameStillUnavailable@users.noreply.github.com> Date: Mon, 6 Jun 2022 11:32:46 +0530 Subject: [PATCH 01/11] Add files via upload --- CV_WITH_TENSORFLOW ASSIGNMENT 1.ipynb | 336 ++++++++++++++++++++++++++ 1 file changed, 336 insertions(+) create mode 100644 CV_WITH_TENSORFLOW ASSIGNMENT 1.ipynb diff --git a/CV_WITH_TENSORFLOW ASSIGNMENT 1.ipynb b/CV_WITH_TENSORFLOW ASSIGNMENT 1.ipynb new file mode 100644 index 0000000..1f69df3 --- /dev/null +++ b/CV_WITH_TENSORFLOW ASSIGNMENT 1.ipynb @@ -0,0 +1,336 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Copy of CV with TF: Assignment 1.ipynb", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "markdown", + "source": [ + "### **Aim** \n", + "The motive of this assignment is to make predictions using **Linear Regression**. To make sure you truly understand how the underlying algorithm works, you are to implement it from scratch." + ], + "metadata": { + "id": "RB2d1J1f1CF7" + } + }, + { + "cell_type": "markdown", + "source": [ + "### Generating the dataset \n", + "Run the cell below to create the dataset. It further splits the available data into training and testing. Please do not edit this cell.\n" + ], + "metadata": { + "id": "a_S80lf6H4Xv" + } + }, + { + "cell_type": "code", + "source": [ + "from sklearn import datasets\n", + "from sklearn.model_selection import train_test_split\n", + "\n", + "# Generate the data\n", + "X, y = datasets.make_regression(n_samples=100, n_features=5, noise=20, random_state=4)\n", + "\n", + "# Split the data\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1234)" + ], + "metadata": { + "id": "yX0zqXcHIQHP" + }, + "execution_count": 2, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "### Visualizing the data \n", + "Use `matplotlib` to visualize the given data." + ], + "metadata": { + "id": "Zj4rrRXGJBXy" + } + }, + { + "cell_type": "code", + "source": [ + "import matplotlib.pyplot as plt\n", + "for i in range(5):\n", + " plt.scatter(X[:,i],y)\n", + " plt.show()\n", + "\n", + "\n", + "# Your code here" + ], + "metadata": { + "id": "zxfi8dkBJOUi", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "outputId": "705b392d-6a37-4c5d-a58e-bc3a2d522767" + }, + "execution_count": 4, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "You should be able to see the linear relations between `y` and the features in vector `X`." + ], + "metadata": { + "id": "r7vndSBAJceF" + } + }, + { + "cell_type": "markdown", + "source": [ + "### Gradient Descent Review \n", + "1. #### Cost function\n", + "Define the `cost function` to measure the difference between predictions and target outputs. Here, we are working with first degree polynomial, so derivatives are easy to calculate. ( Linear function `y = wx +b` ) \n", + "\n", + "$$Error = \\frac{1}{N}\\sum_{i=1}^N (y_i - \\overline{y}_i)^2 = \\frac{1}{N}\\sum_{i=1}^N (y_i - (x_iw+b))^2 $$ \n", + "\n", + " where `N` is the number of samples \n", + " \n", + "\n", + "\n", + "2. #### Compute the derivative\n", + "$$\\frac{\\delta Error}{\\delta w} = \\frac{2}{N}\\sum_{i=1}^N -x_i(y_i -(m x_i +b )) $$\n", + "$$\\frac{\\delta Error}{\\delta b} = \\frac{2}{N}\\sum_{i=1}^N -(y_i -(m x_i +b )) $$\n", + "3.

Update current parameters

\n", + "$$ w:= w- learning\\_rate \\cdot \\frac{\\delta Error}{\\delta w} $$ \n", + "$$ b:= b- learning\\_rate \\cdot \\frac{\\delta Error}{\\delta b} $$ \n", + "4.

Repeat until it fits good enough

\n" + ], + "metadata": { + "id": "b4I9Z3epNvBM" + } + }, + { + "cell_type": "markdown", + "source": [ + "### Model definition\n", + "\n", + "Complete the functions in the class below. Hints provided at appropriate places." + ], + "metadata": { + "id": "kBtUcOVnJu-I" + } + }, + { + "cell_type": "code", + "source": [ + "import numpy as np\n", + "\n", + "class LinearRegression:\n", + "\n", + " # The __init__ is called when we make any object of our class. Here, you are to specify the default values for \n", + " # Learning Rate, Number of Iterations, Weights and Biases. It doesn't return anything.\n", + " # Hint: Google what a `self pointer` is and figure out how it can be used here.\n", + " def __init__(self, learning_rate=0.05, n_iters=5000):\n", + " # Your code here\n", + "\n", + " # pass # Uncomment this when you're done with this function\n", + " self.learning_rate=learning_rate\n", + " self.n_iters=n_iters\n", + "\n", + "\n", + " # The following function would be the heart of the model. This is where the training would happen. \n", + " # You're supposed to iterate and keep on updating the weights and biases according to the steps of Gradient Descent.\n", + " def fit(self, X, y):\n", + " # Gradient Descent code goes here\n", + " # pass # Uncomment this when you're done with this function\n", + " a,b=X.shape\n", + " self.weights=np.zeros(b)\n", + " self.bias=8\n", + " \n", + " for i in range(self.n_iters):\n", + " y_new=np.dot(X,self.weights)+self.bias\n", + " grad_weights=(np.dot(X.T,(y_new-y)))*(1/a)\n", + " grad_bias=(np.sum(y_new-y))*(1/a)\n", + "\n", + " self.weights-=self.learning_rate*grad_weights\n", + " self.bias-=self.learning_rate*grad_bias\n", + "\n", + "\n", + " \n", + " # This function will be called after our model has been trained and we are predicting on unseen data\n", + " # What is our prediction? Just return that\n", + " def predict(self, X):\n", + " y_predicted=np.dot(X,self.weights)+self.bias\n", + " return y_predicted\n", + " # pass # Uncomment this when you're done with this function" + ], + "metadata": { + "id": "dGnFNPJx3I28" + }, + "execution_count": 5, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "### Initializing, Training & Predictions" + ], + "metadata": { + "id": "EvyInkTKPn7W" + } + }, + { + "cell_type": "code", + "source": [ + "\n", + "# Now, we make an object of our custom class.\n", + "regressor = LinearRegression() # You may pass the custom parameters or let the default values take it ahead\n", + "regressor.fit(X_train,y_train)\n", + "# Call the fit method on the object to train (pass appropriate part of dataset)\n", + "\n", + "\n", + "# Now, let's see our what our model predicts\n", + "predictions = regressor.predict(X_test) # pass appropriate part of dataset" + ], + "metadata": { + "id": "nvItUpAkHTiv" + }, + "execution_count": 6, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "### Evaluate the model \n", + "\n", + "Return [Mean Squared Error](https://en.wikipedia.org/wiki/Mean_squared_error) & [R2 Score](https://www.ncl.ac.uk/webtemplate/ask-assets/external/maths-resources/statistics/regression-and-correlation/coefficient-of-determination-r-squared.html#:~:text=%C2%AFy) from the functions below." + ], + "metadata": { + "id": "tzK6cq8eRD4Q" + } + }, + { + "cell_type": "code", + "source": [ + "def mean_squared_error(y_true, y_pred):\n", + " # return the mean squared error\n", + " # pass # Uncomment this when you're done with this function\n", + " return np.mean((y_true-y_pred)**2)\n", + "\n", + "def r2_score(y_true, y_pred):\n", + " e1=np.sum((y_true-y_pred)**2)\n", + " mean=np.mean(y_true)\n", + " e2=np.sum((y_true-mean)**2)\n", + " return 1-e1/e2\n", + "\n", + "\n", + "mse = mean_squared_error(y_test,predictions) # Pass appropriate parts of dataset\n", + "print(\"MSE:\", mse)\n", + "\n", + "accu = r2_score(y_test,predictions) # Pass appropriate parts of dataset\n", + "print(\"Accuracy:\", accu)" + ], + "metadata": { + "id": "WqkrvDzcRF5m", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "b453fcb2-4a7e-45f4-90a9-c1eacd2ad6e9" + }, + "execution_count": 12, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "MSE: 391.09601968904747\n", + "Accuracy: 0.9630262543923742\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "" + ], + "metadata": { + "id": "O2ySIvmZYbmT" + }, + "execution_count": null, + "outputs": [] + } + ] +} \ No newline at end of file From 68bf132a94d8a753ddaff8e649a220379bede452 Mon Sep 17 00:00:00 2001 From: UsernameStillUnavailable <88334804+UsernameStillUnavailable@users.noreply.github.com> Date: Mon, 6 Jun 2022 11:37:08 +0530 Subject: [PATCH 02/11] 200064 --- .../CV_WITH_TENSORFLOW ASSIGNMENT 1.ipynb | 336 ++++++++++++++++++ 1 file changed, 336 insertions(+) create mode 100644 Assignment 1/CV_WITH_TENSORFLOW ASSIGNMENT 1.ipynb diff --git a/Assignment 1/CV_WITH_TENSORFLOW ASSIGNMENT 1.ipynb b/Assignment 1/CV_WITH_TENSORFLOW ASSIGNMENT 1.ipynb new file mode 100644 index 0000000..1f69df3 --- /dev/null +++ b/Assignment 1/CV_WITH_TENSORFLOW ASSIGNMENT 1.ipynb @@ -0,0 +1,336 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Copy of CV with TF: Assignment 1.ipynb", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "markdown", + "source": [ + "### **Aim** \n", + "The motive of this assignment is to make predictions using **Linear Regression**. To make sure you truly understand how the underlying algorithm works, you are to implement it from scratch." + ], + "metadata": { + "id": "RB2d1J1f1CF7" + } + }, + { + "cell_type": "markdown", + "source": [ + "### Generating the dataset \n", + "Run the cell below to create the dataset. It further splits the available data into training and testing. Please do not edit this cell.\n" + ], + "metadata": { + "id": "a_S80lf6H4Xv" + } + }, + { + "cell_type": "code", + "source": [ + "from sklearn import datasets\n", + "from sklearn.model_selection import train_test_split\n", + "\n", + "# Generate the data\n", + "X, y = datasets.make_regression(n_samples=100, n_features=5, noise=20, random_state=4)\n", + "\n", + "# Split the data\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1234)" + ], + "metadata": { + "id": "yX0zqXcHIQHP" + }, + "execution_count": 2, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "### Visualizing the data \n", + "Use `matplotlib` to visualize the given data." + ], + "metadata": { + "id": "Zj4rrRXGJBXy" + } + }, + { + "cell_type": "code", + "source": [ + "import matplotlib.pyplot as plt\n", + "for i in range(5):\n", + " plt.scatter(X[:,i],y)\n", + " plt.show()\n", + "\n", + "\n", + "# Your code here" + ], + "metadata": { + "id": "zxfi8dkBJOUi", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "outputId": "705b392d-6a37-4c5d-a58e-bc3a2d522767" + }, + "execution_count": 4, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "You should be able to see the linear relations between `y` and the features in vector `X`." + ], + "metadata": { + "id": "r7vndSBAJceF" + } + }, + { + "cell_type": "markdown", + "source": [ + "### Gradient Descent Review \n", + "1. #### Cost function\n", + "Define the `cost function` to measure the difference between predictions and target outputs. Here, we are working with first degree polynomial, so derivatives are easy to calculate. ( Linear function `y = wx +b` ) \n", + "\n", + "$$Error = \\frac{1}{N}\\sum_{i=1}^N (y_i - \\overline{y}_i)^2 = \\frac{1}{N}\\sum_{i=1}^N (y_i - (x_iw+b))^2 $$ \n", + "\n", + " where `N` is the number of samples \n", + " \n", + "\n", + "\n", + "2. #### Compute the derivative\n", + "$$\\frac{\\delta Error}{\\delta w} = \\frac{2}{N}\\sum_{i=1}^N -x_i(y_i -(m x_i +b )) $$\n", + "$$\\frac{\\delta Error}{\\delta b} = \\frac{2}{N}\\sum_{i=1}^N -(y_i -(m x_i +b )) $$\n", + "3.

Update current parameters

\n", + "$$ w:= w- learning\\_rate \\cdot \\frac{\\delta Error}{\\delta w} $$ \n", + "$$ b:= b- learning\\_rate \\cdot \\frac{\\delta Error}{\\delta b} $$ \n", + "4.

Repeat until it fits good enough

\n" + ], + "metadata": { + "id": "b4I9Z3epNvBM" + } + }, + { + "cell_type": "markdown", + "source": [ + "### Model definition\n", + "\n", + "Complete the functions in the class below. Hints provided at appropriate places." + ], + "metadata": { + "id": "kBtUcOVnJu-I" + } + }, + { + "cell_type": "code", + "source": [ + "import numpy as np\n", + "\n", + "class LinearRegression:\n", + "\n", + " # The __init__ is called when we make any object of our class. Here, you are to specify the default values for \n", + " # Learning Rate, Number of Iterations, Weights and Biases. It doesn't return anything.\n", + " # Hint: Google what a `self pointer` is and figure out how it can be used here.\n", + " def __init__(self, learning_rate=0.05, n_iters=5000):\n", + " # Your code here\n", + "\n", + " # pass # Uncomment this when you're done with this function\n", + " self.learning_rate=learning_rate\n", + " self.n_iters=n_iters\n", + "\n", + "\n", + " # The following function would be the heart of the model. This is where the training would happen. \n", + " # You're supposed to iterate and keep on updating the weights and biases according to the steps of Gradient Descent.\n", + " def fit(self, X, y):\n", + " # Gradient Descent code goes here\n", + " # pass # Uncomment this when you're done with this function\n", + " a,b=X.shape\n", + " self.weights=np.zeros(b)\n", + " self.bias=8\n", + " \n", + " for i in range(self.n_iters):\n", + " y_new=np.dot(X,self.weights)+self.bias\n", + " grad_weights=(np.dot(X.T,(y_new-y)))*(1/a)\n", + " grad_bias=(np.sum(y_new-y))*(1/a)\n", + "\n", + " self.weights-=self.learning_rate*grad_weights\n", + " self.bias-=self.learning_rate*grad_bias\n", + "\n", + "\n", + " \n", + " # This function will be called after our model has been trained and we are predicting on unseen data\n", + " # What is our prediction? Just return that\n", + " def predict(self, X):\n", + " y_predicted=np.dot(X,self.weights)+self.bias\n", + " return y_predicted\n", + " # pass # Uncomment this when you're done with this function" + ], + "metadata": { + "id": "dGnFNPJx3I28" + }, + "execution_count": 5, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "### Initializing, Training & Predictions" + ], + "metadata": { + "id": "EvyInkTKPn7W" + } + }, + { + "cell_type": "code", + "source": [ + "\n", + "# Now, we make an object of our custom class.\n", + "regressor = LinearRegression() # You may pass the custom parameters or let the default values take it ahead\n", + "regressor.fit(X_train,y_train)\n", + "# Call the fit method on the object to train (pass appropriate part of dataset)\n", + "\n", + "\n", + "# Now, let's see our what our model predicts\n", + "predictions = regressor.predict(X_test) # pass appropriate part of dataset" + ], + "metadata": { + "id": "nvItUpAkHTiv" + }, + "execution_count": 6, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "### Evaluate the model \n", + "\n", + "Return [Mean Squared Error](https://en.wikipedia.org/wiki/Mean_squared_error) & [R2 Score](https://www.ncl.ac.uk/webtemplate/ask-assets/external/maths-resources/statistics/regression-and-correlation/coefficient-of-determination-r-squared.html#:~:text=%C2%AFy) from the functions below." + ], + "metadata": { + "id": "tzK6cq8eRD4Q" + } + }, + { + "cell_type": "code", + "source": [ + "def mean_squared_error(y_true, y_pred):\n", + " # return the mean squared error\n", + " # pass # Uncomment this when you're done with this function\n", + " return np.mean((y_true-y_pred)**2)\n", + "\n", + "def r2_score(y_true, y_pred):\n", + " e1=np.sum((y_true-y_pred)**2)\n", + " mean=np.mean(y_true)\n", + " e2=np.sum((y_true-mean)**2)\n", + " return 1-e1/e2\n", + "\n", + "\n", + "mse = mean_squared_error(y_test,predictions) # Pass appropriate parts of dataset\n", + "print(\"MSE:\", mse)\n", + "\n", + "accu = r2_score(y_test,predictions) # Pass appropriate parts of dataset\n", + "print(\"Accuracy:\", accu)" + ], + "metadata": { + "id": "WqkrvDzcRF5m", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "b453fcb2-4a7e-45f4-90a9-c1eacd2ad6e9" + }, + "execution_count": 12, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "MSE: 391.09601968904747\n", + "Accuracy: 0.9630262543923742\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "" + ], + "metadata": { + "id": "O2ySIvmZYbmT" + }, + "execution_count": null, + "outputs": [] + } + ] +} \ No newline at end of file From 51042a1304376b73282b9d08d4de880822b45b49 Mon Sep 17 00:00:00 2001 From: UsernameStillUnavailable <88334804+UsernameStillUnavailable@users.noreply.github.com> Date: Mon, 6 Jun 2022 11:43:29 +0530 Subject: [PATCH 03/11] Delete CV_WITH_TENSORFLOW ASSIGNMENT 1.ipynb --- CV_WITH_TENSORFLOW ASSIGNMENT 1.ipynb | 336 -------------------------- 1 file changed, 336 deletions(-) delete mode 100644 CV_WITH_TENSORFLOW ASSIGNMENT 1.ipynb diff --git a/CV_WITH_TENSORFLOW ASSIGNMENT 1.ipynb b/CV_WITH_TENSORFLOW ASSIGNMENT 1.ipynb deleted file mode 100644 index 1f69df3..0000000 --- a/CV_WITH_TENSORFLOW ASSIGNMENT 1.ipynb +++ /dev/null @@ -1,336 +0,0 @@ -{ - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "name": "Copy of CV with TF: Assignment 1.ipynb", - "provenance": [], - "collapsed_sections": [] - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3" - }, - "language_info": { - "name": "python" - } - }, - "cells": [ - { - "cell_type": "markdown", - "source": [ - "### **Aim** \n", - "The motive of this assignment is to make predictions using **Linear Regression**. To make sure you truly understand how the underlying algorithm works, you are to implement it from scratch." - ], - "metadata": { - "id": "RB2d1J1f1CF7" - } - }, - { - "cell_type": "markdown", - "source": [ - "### Generating the dataset \n", - "Run the cell below to create the dataset. It further splits the available data into training and testing. Please do not edit this cell.\n" - ], - "metadata": { - "id": "a_S80lf6H4Xv" - } - }, - { - "cell_type": "code", - "source": [ - "from sklearn import datasets\n", - "from sklearn.model_selection import train_test_split\n", - "\n", - "# Generate the data\n", - "X, y = datasets.make_regression(n_samples=100, n_features=5, noise=20, random_state=4)\n", - "\n", - "# Split the data\n", - "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1234)" - ], - "metadata": { - "id": "yX0zqXcHIQHP" - }, - "execution_count": 2, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "### Visualizing the data \n", - "Use `matplotlib` to visualize the given data." - ], - "metadata": { - "id": "Zj4rrRXGJBXy" - } - }, - { - "cell_type": "code", - "source": [ - "import matplotlib.pyplot as plt\n", - "for i in range(5):\n", - " plt.scatter(X[:,i],y)\n", - " plt.show()\n", - "\n", - "\n", - "# Your code here" - ], - "metadata": { - "id": "zxfi8dkBJOUi", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 1000 - }, - "outputId": "705b392d-6a37-4c5d-a58e-bc3a2d522767" - }, - "execution_count": 4, - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ], - "image/png": "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\n" - }, - "metadata": { - "needs_background": "light" - } - }, - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ], - "image/png": "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\n" - }, - "metadata": { - "needs_background": "light" - } - }, - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ], - "image/png": "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\n" - }, - "metadata": { - "needs_background": "light" - } - }, - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ], - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAD4CAYAAAAEhuazAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAYrUlEQVR4nO3db4wdV3nH8d8T10FGVHJQrJCs7dovTJApRYFVAPlNyZ/GUCAhgJSoRSCQrIpEggoFHOUFvKiEK0tIRSBaUyJAjeJGJCSWDDUJToWKMGRdhxDHMVkFgb0EYkQNSKzAdp6+2Fn77nru3jt3zsw5Z+b7kSzvnbnre+71nWfOPOc5Z8zdBQDol0tiNwAA0D6CPwD0EMEfAHqI4A8APUTwB4Ae+rPYDRjH5Zdf7ps2bYrdDADIyuHDh3/t7uvK9mUR/Ddt2qSZmZnYzQCArJjZz4btI+0DAD1E8AeAHiL4A0APEfwBoIcI/gDQQ1lU+wBd9/CROe0+cFy/OD2vq9au0V03Xa1brpmK3Sx0GMEfiOzhI3O6+6Efa/7MOUnS3Ol53f3QjyWJEwAaQ9oHiGz3gePnA/+i+TPntPvA8UgtQh8Q/IHIfnF6vtJ2IASCPxDZVWvXVNoOhEDwByK766artWb1qiXb1qxepbtuujpSi9AHDPgCkS0O6lLtgzYR/IEE3HLNFMEerSL4A+gF5lIsRfBHFjhwUQdzKS7GgC+St3jgzp2el+vCgfvwkbnYTUMmmEtxMYI/kseBi7qYS3Exgj+Sx4GLuphLcTGCP5LHgYu6mEtxMYI/kseBi7puuWZKn7n1dZpau0YmaWrtGn3m1tf1drBXotoHGWASFEJgLsVSBH9kgQMXCIu0DwD0EMEfAHqItA9QghnF6LraPX8z22Bmj5vZM2Z21Mw+Wmx/pZk9ambPFX9fVmw3M/ucmc2a2VNm9oa6bQBCYkYx+iBE2uespI+7+1ZJb5Z0h5ltlbRT0nfcfYuk7xSPJeltkrYUf3ZI+mKANgDBMKMYfVA77ePuL0h6ofj592Z2TNKUpJsl/XXxtK9K+m9Jnyy2f83dXdIhM1trZlcW/w4QXaoziklFIaSgA75mtknSNZJ+IOmKgYD+S0lXFD9PSTox8Gsni21AElKcUUwqCqEFC/5m9gpJD0r6mLv/bnBf0cv3iv/eDjObMbOZU6dOhWomMFKKM4pJRSG0IMHfzFZrIfDf5+4PFZt/ZWZXFvuvlPRisX1O0oaBX19fbFvC3fe4+7S7T69bty5EM4GxpLgUQKqpKOSrds7fzEzSlyUdc/fPDuzaJ+kDknYVfz8ysP1OM9sr6U2Sfku+H6lJbUbxVWvXaK4k0LO4HSYVoue/TdL7JV1nZk8Wf96uhaB/o5k9J+mG4rEkfVPS85JmJX1J0kcCtAHotBRTUchbiGqf/5FkQ3ZfX/J8l3RH3dcF+oTF7RAaM3yBTKSWigqFEtY4CP4AouHG6vEQ/IGa6vZc+9zzXamEtS+fQSwEf6CGuj3Xvvd8KWGNhyWdgRrqTr7q++StFGdTN+HhI3PatuugNu/cr227DiYxM5vgD9RQt+fa955vH0pYU12ag+AP1FC359qXnu8wKc6mDi3Vqzty/kANd9109ZKcvVSt51r397ugqyWsi1K9uiP4AzXUnXzF5K3uS3VpDoI/UFPXe66oJ9WrO4I/EFGTpZ59nj+QklSv7gj+QGBlQVcqP/ibmuTU9/kDqUnx6pDgDwRUFnTv+vqPJJfOvOTnty0G4qYGA5k5i1Eo9QQCKgu6Z875+cC/aDEQN1XqmWqFCdJB8AcCqhJcf3F6vrFJTn2fP4DRCP5AQFWC61Vr1zQ2yakPM2dRDzl/JCOH6pRRbSwr61u9ypbk/KWlgbiJwcBUK0yQDoI/kpBDdco4bRwWdMu2Nf2+UqwwQTps4a6KaZuenvaZmZnYzUCDtu06WDoLcmrtGn1v53URWnSxHNoIDDKzw+4+XbaPnD+SkEN1Sg5tBMZF8EcScqhOyaGNwLgI/khCWXWKaSGvnsrNL6igQZcw4IskDA6Uzp2el0laHI1KZfCXChp0CQO+SA4Dq0AYKw340vNHchhYRU5ymJ9ShuCP5MS++UWuBzPal8P8lGEY8EVyYg6spnqzbaQp1fvzjoOeP5ITc2D10/uOshTyEFwRXSznFCXBH0mKsTTBw0fmdHr+TOm+HA7mJuWc3mhS7BRlHaR90FkPH5nTtl0HtXnn/rHmCqx0qZ7DwdyknNMbTcp57keQ4G9m95rZi2b29MC2V5rZo2b2XPH3ZcV2M7PPmdmsmT1lZm8I0QZg0CS5+5V69zkczE3KOb3RpKaW5G5DqLTPVyR9XtLXBrbtlPQdd99lZjuLx5+U9DZJW4o/b5L0xeJvIJhJbmM47BL+spevzuJgblLO6Y2m5bp6apCev7t/V9Jvlm2+WdJXi5+/KumWge1f8wWHJK01sytDtAPhVU2dpGKSnuqwS/hPvfO1E7cj189vuZzTGyjX5IDvFe7+QvHzLyVdUfw8JenEwPNOFtteGNgmM9shaYckbdy4scFmYpicB/km6amGrjLK+fNbjqUtuqeVah93dzOrtI6Eu++RtEdaWN6hkYZhRZOkTlJRdketcXqqIS/hc/78yuSa3kC5JoP/r8zsSnd/oUjrvFhsn5O0YeB564ttSEzOg3zLF4pbZbakOqWNIJbz59cFzEtYWZPBf5+kD0jaVfz9yMD2O81srxYGen87kB5CQtoe5At9sC7+btXUS6h2xB4k7XPw61LKrSmhSj3vl/R9SVeb2Ukz+7AWgv6NZvacpBuKx5L0TUnPS5qV9CVJHwnRhhzkNvjX5iBfU8sqVK1PD9kOlqmIh3kJowXp+bv77UN2XV/yXJd0R4jXzUmOPZE2B/mayo9XTb2EbEeMQdLF3n7ZFUfO4w1VkXIbjeUdWpLr4N+oQb5QqYVhB+Xc6Xlt3rl/4n+7auoldNBoc5B0eQejTF+CX+yUm5R+2o3lHVrSxZ5IyNTCSgdlnX+7auol5/v0lnUwlsvhfYQQe15CDmk3gn9Lcg4qwwy7mvn4Az+6aFxj1HhH2cG63CQ526rT72MHjTpGdSRyeR8hxF52IYcxB9I+LZm07jxlw4LNueLWoIu9nZmf/UYPHp5bcbxjeX582MSOSa6UqqRecp7MNCzVIS0Ev1zeRygx5yXkcKVP8G9JzkFlmJWCzaL5M+d0/w9OnD8hDG5fPt4xeLAOu49vG1dKqU9mGpZLHtbByGWhsS5JYcxhFIJ/i1IPKlWVBZsyywP/olHr7HTtSimEcarGcutgpD4wOokcvr/mQw7MlExPT/vMzEzsZvTSqANzcP8lZqWBftWQ7VNr1+h7O6+b+LX7aNgV0ajPMlXDKpQue/lqfeqdr836/zuF76+ZHXb36bJ99Pwx1Di9zMGrmbIDec3qVXrPG6eW5PwXt7e5zk5X5JBLrmJYhdL//eFM8vNgRkn9+0u1D4aqWrEwrMLin255XauVF7nNpK6ia1VjK520UquO6Rp6/hhqkl7m8iuB3QeO6x//88nWLntDz6RO4dJ9UA655CpGFQ3kekWTA3r+GKpOLzPWJJeQ9dUpTtSJXb8e2qj5Hble0eSAnj+GqtPLHGc5iyZ61SFz4qkuyZF6LrmKxffx6X1HdXr+zJJ9OV/R5IDgj6HqlA6OCsKTpmdGnTBC1ld3bXA1tFAn78WTWWoptq4j+GNFk/YyRwXhSXrV45wwQubEc5ioE0sTq9R26YomB+T80Uh1zKg1cibpVY+Tzw+ZE895nZ+m5bB2DVZGz7/nmrrPwKiU0SS96nFPGOP2IEelGXKdMdsGUmL5I/j3XJODmisF4UnSMyHTMOOe9EhFlCMllj/SPj0Xqwc3SXomZBqGtEU9pMTyR8+/52L24Kr2qkOmYZo86S1PJ731Nev0+LOnOpU6IiWWP4J/z+U2YzRUGqbKSa9KCWJZOuk/Dv38/P4c7t08LlJieSPtE1hu68p0bcbouMZNW1Sd5TvOrRRJLyEF9PwDaqpypml97MGNm7aoOiA+btqIqhjERvAPKNXlAFBunJNe1bGBce5utvg8ICaCf0BtVc4wDb49VQfEx7m72ZrVq/TW16zTtl0HG/s/5DuCUcj5B9TGWusprjTZZVVLGsvGUP7+zRuXPF68uU1T/4d8RzAObuMY0LA7WYUcQB12G79VZnrJnV7eEHV6wqF70U3firFrt3rE5LiNY0vaqH0elkJavEduLoPMbao7EB96QLzp9CBLL2AcBP/Amq6cGWdAkUHmpVIbiG96Yh1LL2Ac5PwzM+rOR4vo5V2QWk+46aURWHoB44jW8zez7ZL+RdIqSf/u7rtitSUny1NLl5idT/kMopd3Qaye8LCxgpXSgyHGF3JeeoEqpfZEGfA1s1WSfiLpRkknJT0h6XZ3f6bs+bkM+MbQ5CBzVw7ENgbiQ7xmjHamJPf3n+LxstKAb6y0z7WSZt39eXf/k6S9km6O1JasNbU8Q5fKBWMsYTHJqqF9X2k05/ef4/ESK+0zJenEwOOTkt40+AQz2yFphyRt3LixvZZlqIlB5tQGSetqewmLScYZhu2bOz2vTTv3ayqR3mRTUhubqSLH4yXZAV933+Pu0+4+vW7dutjN6Z2cD8QUVJnwt7gY4KgEbA69yTramCTZlByPl1jBf07ShoHH64ttSETOB2IKJlk1dBy5pEEmkXOVUo7HS6zg/4SkLWa22cwulXSbpH2R2oISOR+IKRh3nGGcJaCXS7k3WUfOy4vneLxEyfm7+1kzu1PSAS2Uet7r7kdDv06Ko++5yLlcsElVvlN1Vg1dScq9ybpyXV48x+Ols2v75F42hvQ08Z0atg6PSaVjAHVej85Q/6RY6tm4nMvGkKYmvlPD0gV/V6wEKi0s2ifVS4PkWIrYttzuwldXZ9f2yXH0HWlr4jvVVrogx1LENuV6F746Ohv8WdyqW1JIWTT1nWojz01naGV9PDl2Nu2T4+g7yqWSssj5OxW6FLFrKZI+nhw7G/xzLhvDUqmM3+T8nQp54krlZBxSjnX6dXU27SPlWzaGpVLqleX6nQo5ttDFFEnZvZdzuaqbVKeDP7qB8ZswQp24UjoZh5JjnX5dBH8kr4+9sjIpDHpL3T0Z53pVN6nO5vzRHbnl2psYDE0pz57zwDcuoOePLOTSK2uqXjxUnj32ncJSuXoBwR+JyT04NDUYGiLPHvLENMnJuI8TqVJG2gfJSCm1MammBkNDlCLGLpmN/fpYiuCPZHQhODRVLx4izx67Sif262Mp0j6YSBPpmUmCQ1k7pHgle01VJoUoRZykSifk/3NXq4RyRfBHZU3lbqsGh7J23PX1H0kunXnJg7ZtXE3Wi9cd9K56Ygr9/0zJbloI/qisqUHNt75mne479PMl69ivFBzK2nHm3MWr4Lc9+zTVyqSqJ6bQ/899nEiVMoI/Kmsid/vwkTk9eHhuSeA3Se954/BAWuX1yCsvqHJiamoJa4J9GhjwRWVNDGqW9TJd0uPPnqrcjrrPxYJhn9klZllVYKEcwR+VNTHDc5JeZlk7Vq8yrb7Egratr8o+X0k6555dCS4uRvBHZU0stzDJ1URZO3a/9/Xa/b7XZ7MURMoWP9/F20gOyq0EFxfr7A3ckZcmbo6OMDbv3F96M3mT9NNdf9t2c1BBL2/gjnws1pLPnzkX5GblCKuPNzrpA4I/ohpc0kFayCcv5ugJ/GnowiqeXbvtZAgEf0TVhSUdui63JbWX68KaUU2gzh9RdXm9l9xXKB2Uc31+F287GQLBH1F1db0Xli9eWZsnxi53MOog7YOoupBPLkM6a7i20zAMWJcj+COq3PPJw9DbHK7tE2NXOxh1kfZBdDnnk4fpajorhLZPjCwoV47gDzSA5YuHi3Fi7GIHo65aaR8ze5+ZHTWzl8xsetm+u81s1syOm9lNA9u3F9tmzWxnndcHUtXVdFYIpGHSULfn/7SkWyX92+BGM9sq6TZJr5V0laTHzOzVxe4vSLpR0klJT5jZPnd/pmY7gOjKKli+t/O62M1KDmmYNNQK/u5+TJLs4oWfbpa0193/KOmnZjYr6dpi36y7P1/83t7iuQR/ZI3SzmpIw8TXVLXPlKQTA49PFtuGbb+Ime0wsxkzmzl1avia7kAKKO1Ebkb2/M3sMUmvKtl1j7s/Er5JC9x9j6Q90sKqnk29DhACpZ3Izcjg7+43TPDvzknaMPB4fbFNK2xHZF1ajqBtlHYiN02lffZJus3MXmZmmyVtkfRDSU9I2mJmm83sUi0MCu9rqA2oYNJZl6yWuIAKFuSmbqnnu83spKS3SNpvZgckyd2PSnpACwO5/yXpDnc/5+5nJd0p6YCkY5IeKJ6LyCbJWbNa4gWUdiI33MkLkia7W9O2XQdLUx1Ta9dQ4tgA0nKoijt5YaRJFr9ikLM9XGUhNII/JE2Ws+7zaoltj3VQSorQCP6QNFnOuq+DnDF64VxlITQWdsN5VWdd9nWafow7Q1FKitAI/qilj9P0Y/TCWSUUoZH2ASqKMdZBKSlCo+ePqHIsX4zVC+/jVRaaQ/BHNLmuhNnXsQ50C8Ef0cQYOA0ldC980iugHK+ckAaCP6KhfHHBpFdAuV45IQ0M+CKaPk8SGzTpBC4mfqEOgj+i6eskseUmvQLiygl1kPZBNKkNnMbKn086gYuJX6iD4I+oUilfjJk/n7R0lIlfqIO0D6C4+fNJJ3Ax8Qt10PMHFD9/PukVUCpXTsgPPX9AVB6hfwj+gKg8WsQ9mfuDtA+g9CqPYmDSWL8Q/IFC3/PnOS+30UVNlx4T/AFIij/ojQvauAoj5w9AEoPeKWmj9JjgD0ASg94paeMqjLQPkJmmcsEMeqejjaU7CP5ARprOBfd90DsVbSzdQdoHyAjLOPdDG0t30PMHMkJFTn80fRVGzx/ICBU5CIXgD2SEihyEUiv4m9luM3vWzJ4ys2+Y2dqBfXeb2ayZHTezmwa2by+2zZrZzjqvD/QNyzgjFHP3yX/Z7G8kHXT3s2b2z5Lk7p80s62S7pd0raSrJD0m6dXFr/1E0o2STkp6QtLt7v7MSq8zPT3tMzMzE7cTiCnWHcIAMzvs7tNl+2oN+Lr7twceHpL03uLnmyXtdfc/Svqpmc1q4UQgSbPu/nzRsL3Fc1cM/kCuWCwNqQqZ8/+QpG8VP09JOjGw72Sxbdj2i5jZDjObMbOZU6dOBWwm0B5KM5GqkT1/M3tM0qtKdt3j7o8Uz7lH0llJ94VqmLvvkbRHWkj7hPp3gTZRmolUjQz+7n7DSvvN7IOS3iHper8wgDAnacPA09YX27TCdqBz2pimD0yibrXPdkmfkPQud//DwK59km4zs5eZ2WZJWyT9UAsDvFvMbLOZXSrptuK5QCdRmolU1Z3h+3lJL5P0qJlJ0iF3/wd3P2pmD2hhIPespDvc/Zwkmdmdkg5IWiXpXnc/WrMNQLJYLA2pqlXq2RZKPQGgupVKPZnhCwA9RPAHgB4i+ANADxH8AaCHCP4A0EPczAVJY1E0oBkEfySLRdGA5pD2QbJYFA1oDsEfyWJRNKA5BH8ki/vVAs0h+CNZLIoGNIcBXySLRdGA5hD8kbRbrpki2AMNIO0DAD1E8AeAHiLtA3QIM6IxLoI/0BHMiEYVpH2AjmBGNKog+AMdwYxoVEHwBzqCGdGoguAPdAQzolEFA75ARzAjGlUQ/IEOYUY0xkXaBwB6iOAPAD1E8AeAHiL4A0APEfwBoIfM3WO3YSQzOyXpZ7HbUbhc0q9jNyIi3n+/37/EZ5DT+/8Ld19XtiOL4J8SM5tx9+nY7YiF99/v9y/xGXTl/ZP2AYAeIvgDQA8R/KvbE7sBkfH+0ffPoBPvn5w/APQQPX8A6CGCPwD0EMG/IjPbbWbPmtlTZvYNM1sbu01tM7P3mdlRM3vJzLIveRuXmW03s+NmNmtmO2O3p21mdq+ZvWhmT8duSwxmtsHMHjezZ4rv/0djt6kOgn91j0r6S3f/K0k/kXR35PbE8LSkWyV9N3ZD2mJmqyR9QdLbJG2VdLuZbY3bqtZ9RdL22I2I6Kykj7v7VklvlnRHzt8Bgn9F7v5tdz9bPDwkaX3M9sTg7sfcvW93Bb9W0qy7P+/uf5K0V9LNkdvUKnf/rqTfxG5HLO7+grv/b/Hz7yUdk5TtzRMI/vV8SNK3YjcCrZiSdGLg8UllfOCjHjPbJOkaST+I25LJcSevEmb2mKRXley6x90fKZ5zjxYuA+9rs21tGeczAPrIzF4h6UFJH3P338Vuz6QI/iXc/YaV9pvZByW9Q9L13tGJEqM+gx6ak7Rh4PH6Yht6xMxWayHw3+fuD8VuTx2kfSoys+2SPiHpXe7+h9jtQWuekLTFzDab2aWSbpO0L3Kb0CIzM0lflnTM3T8buz11Efyr+7ykP5f0qJk9aWb/GrtBbTOzd5vZSUlvkbTfzA7EblPTikH+OyUd0MJA3wPufjRuq9plZvdL+r6kq83spJl9OHabWrZN0vslXVcc+0+a2dtjN2pSLO8AAD1Ezx8AeojgDwA9RPAHgB4i+ANADxH8AaCHCP4A0EMEfwDoof8HMMnt77wUsA8AAAAASUVORK5CYII=\n" - }, - "metadata": { - "needs_background": "light" - } - }, - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ], - "image/png": "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\n" - }, - "metadata": { - "needs_background": "light" - } - } - ] - }, - { - "cell_type": "markdown", - "source": [ - "You should be able to see the linear relations between `y` and the features in vector `X`." - ], - "metadata": { - "id": "r7vndSBAJceF" - } - }, - { - "cell_type": "markdown", - "source": [ - "### Gradient Descent Review \n", - "1. #### Cost function\n", - "Define the `cost function` to measure the difference between predictions and target outputs. Here, we are working with first degree polynomial, so derivatives are easy to calculate. ( Linear function `y = wx +b` ) \n", - "\n", - "$$Error = \\frac{1}{N}\\sum_{i=1}^N (y_i - \\overline{y}_i)^2 = \\frac{1}{N}\\sum_{i=1}^N (y_i - (x_iw+b))^2 $$ \n", - "\n", - " where `N` is the number of samples \n", - " \n", - "\n", - "\n", - "2. #### Compute the derivative\n", - "$$\\frac{\\delta Error}{\\delta w} = \\frac{2}{N}\\sum_{i=1}^N -x_i(y_i -(m x_i +b )) $$\n", - "$$\\frac{\\delta Error}{\\delta b} = \\frac{2}{N}\\sum_{i=1}^N -(y_i -(m x_i +b )) $$\n", - "3.

Update current parameters

\n", - "$$ w:= w- learning\\_rate \\cdot \\frac{\\delta Error}{\\delta w} $$ \n", - "$$ b:= b- learning\\_rate \\cdot \\frac{\\delta Error}{\\delta b} $$ \n", - "4.

Repeat until it fits good enough

\n" - ], - "metadata": { - "id": "b4I9Z3epNvBM" - } - }, - { - "cell_type": "markdown", - "source": [ - "### Model definition\n", - "\n", - "Complete the functions in the class below. Hints provided at appropriate places." - ], - "metadata": { - "id": "kBtUcOVnJu-I" - } - }, - { - "cell_type": "code", - "source": [ - "import numpy as np\n", - "\n", - "class LinearRegression:\n", - "\n", - " # The __init__ is called when we make any object of our class. Here, you are to specify the default values for \n", - " # Learning Rate, Number of Iterations, Weights and Biases. It doesn't return anything.\n", - " # Hint: Google what a `self pointer` is and figure out how it can be used here.\n", - " def __init__(self, learning_rate=0.05, n_iters=5000):\n", - " # Your code here\n", - "\n", - " # pass # Uncomment this when you're done with this function\n", - " self.learning_rate=learning_rate\n", - " self.n_iters=n_iters\n", - "\n", - "\n", - " # The following function would be the heart of the model. This is where the training would happen. \n", - " # You're supposed to iterate and keep on updating the weights and biases according to the steps of Gradient Descent.\n", - " def fit(self, X, y):\n", - " # Gradient Descent code goes here\n", - " # pass # Uncomment this when you're done with this function\n", - " a,b=X.shape\n", - " self.weights=np.zeros(b)\n", - " self.bias=8\n", - " \n", - " for i in range(self.n_iters):\n", - " y_new=np.dot(X,self.weights)+self.bias\n", - " grad_weights=(np.dot(X.T,(y_new-y)))*(1/a)\n", - " grad_bias=(np.sum(y_new-y))*(1/a)\n", - "\n", - " self.weights-=self.learning_rate*grad_weights\n", - " self.bias-=self.learning_rate*grad_bias\n", - "\n", - "\n", - " \n", - " # This function will be called after our model has been trained and we are predicting on unseen data\n", - " # What is our prediction? Just return that\n", - " def predict(self, X):\n", - " y_predicted=np.dot(X,self.weights)+self.bias\n", - " return y_predicted\n", - " # pass # Uncomment this when you're done with this function" - ], - "metadata": { - "id": "dGnFNPJx3I28" - }, - "execution_count": 5, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "### Initializing, Training & Predictions" - ], - "metadata": { - "id": "EvyInkTKPn7W" - } - }, - { - "cell_type": "code", - "source": [ - "\n", - "# Now, we make an object of our custom class.\n", - "regressor = LinearRegression() # You may pass the custom parameters or let the default values take it ahead\n", - "regressor.fit(X_train,y_train)\n", - "# Call the fit method on the object to train (pass appropriate part of dataset)\n", - "\n", - "\n", - "# Now, let's see our what our model predicts\n", - "predictions = regressor.predict(X_test) # pass appropriate part of dataset" - ], - "metadata": { - "id": "nvItUpAkHTiv" - }, - "execution_count": 6, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "### Evaluate the model \n", - "\n", - "Return [Mean Squared Error](https://en.wikipedia.org/wiki/Mean_squared_error) & [R2 Score](https://www.ncl.ac.uk/webtemplate/ask-assets/external/maths-resources/statistics/regression-and-correlation/coefficient-of-determination-r-squared.html#:~:text=%C2%AFy) from the functions below." - ], - "metadata": { - "id": "tzK6cq8eRD4Q" - } - }, - { - "cell_type": "code", - "source": [ - "def mean_squared_error(y_true, y_pred):\n", - " # return the mean squared error\n", - " # pass # Uncomment this when you're done with this function\n", - " return np.mean((y_true-y_pred)**2)\n", - "\n", - "def r2_score(y_true, y_pred):\n", - " e1=np.sum((y_true-y_pred)**2)\n", - " mean=np.mean(y_true)\n", - " e2=np.sum((y_true-mean)**2)\n", - " return 1-e1/e2\n", - "\n", - "\n", - "mse = mean_squared_error(y_test,predictions) # Pass appropriate parts of dataset\n", - "print(\"MSE:\", mse)\n", - "\n", - "accu = r2_score(y_test,predictions) # Pass appropriate parts of dataset\n", - "print(\"Accuracy:\", accu)" - ], - "metadata": { - "id": "WqkrvDzcRF5m", - "colab": { - "base_uri": "https://localhost:8080/" - }, - "outputId": "b453fcb2-4a7e-45f4-90a9-c1eacd2ad6e9" - }, - "execution_count": 12, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "MSE: 391.09601968904747\n", - "Accuracy: 0.9630262543923742\n" - ] - } - ] - }, - { - "cell_type": "code", - "source": [ - "" - ], - "metadata": { - "id": "O2ySIvmZYbmT" - }, - "execution_count": null, - "outputs": [] - } - ] -} \ No newline at end of file From 884b25d6a2b8824086fbc3dee9a125b953acda48 Mon Sep 17 00:00:00 2001 From: UsernameStillUnavailable <88334804+UsernameStillUnavailable@users.noreply.github.com> Date: Thu, 16 Jun 2022 19:58:06 +0530 Subject: [PATCH 04/11] Add files via upload --- A2_200064.ipynb | 953 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 953 insertions(+) create mode 100644 A2_200064.ipynb diff --git a/A2_200064.ipynb b/A2_200064.ipynb new file mode 100644 index 0000000..a10f552 --- /dev/null +++ b/A2_200064.ipynb @@ -0,0 +1,953 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Copy of CVusingTF_Assgn2.ipynb", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Assigment 2: Deep Learning" + ], + "metadata": { + "id": "UxcaEbrCy1g_" + } + }, + { + "cell_type": "markdown", + "source": [ + "## Generate Dataset\n", + "\n", + "This is the same code from Assignment 1" + ], + "metadata": { + "id": "h2JON-_Oy79w" + } + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "id": "hgpG3WDuypfa" + }, + "outputs": [], + "source": [ + "from sklearn import datasets\n", + "from sklearn.model_selection import train_test_split\n", + "\n", + "# Generate the data\n", + "X, y = datasets.make_regression(n_samples=100, n_features=5, noise=5, random_state=4)\n", + "\n", + "# Split the data\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1234)\n" + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Visualize Dataset\n", + "This is the same code from Assignment 1" + ], + "metadata": { + "id": "r6it-Rm7zD1Y" + } + }, + { + "cell_type": "code", + "source": [ + "\n", + "import matplotlib.pyplot as plt\n", + "for i in range(5):\n", + " plt.scatter(X[:,i],y)\n", + " plt.show()" + ], + "metadata": { + "id": "UautPVj1yzaQ", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "outputId": "a78cbdce-275c-4dd6-b064-7dadfeeb2669" + }, + "execution_count": 15, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Model Definition\n", + "\n", + "Using TensorFlow, build a model with the following definition:\n", + "> Input of shape 5 \\\\\n", + "> Dense of shape 5 \\\\\n", + "> Dense of shape 5 \\\\\n", + "> Dense of shape 1 \\\\\n", + "\n", + "Use Mean Square Error Loss and Stochaistic Gradient Descent (SGD) Optimizer\n", + "\n", + "Use Gradient Decay with appropriate parameters" + ], + "metadata": { + "id": "XMXb9lTyzGHE" + } + }, + { + "cell_type": "code", + "source": [ + "import tensorflow as tf\n", + "from tensorflow import keras\n", + "model = keras.Sequential([keras.Input(5),keras.layers.Dense(5, activation='relu'),keras.layers.Dense(5, activation='relu'),keras.layers.Dense(1)])\n", + "opt = tf.keras.optimizers.SGD(learning_rate=0.06)\n", + "model.compile(loss=tf.keras.losses.MeanSquaredError())\n", + "history=model.fit(X_train,y_train,validation_split=0.33,epochs=230,batch_size=2)" + ], + "metadata": { + "id": "r32N1xK2ziOs", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "1861617f-4928-49d8-a5a4-2e4123ab3427" + }, + "execution_count": 19, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Epoch 1/230\n", + "27/27 [==============================] - 1s 7ms/step - loss: 12103.8115 - val_loss: 10247.0479\n", + "Epoch 2/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 12097.8535 - val_loss: 10242.8896\n", + "Epoch 3/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 12091.8906 - val_loss: 10238.7041\n", + "Epoch 4/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 12085.9824 - val_loss: 10232.4619\n", + "Epoch 5/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 12079.9131 - val_loss: 10226.9131\n", + "Epoch 6/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 12073.4297 - val_loss: 10220.8203\n", + "Epoch 7/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 12065.7920 - val_loss: 10213.4541\n", + "Epoch 8/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 12057.8564 - val_loss: 10206.8877\n", + "Epoch 9/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 12049.6875 - val_loss: 10199.1025\n", + "Epoch 10/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 12041.5859 - val_loss: 10191.0625\n", + "Epoch 11/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 12032.2969 - val_loss: 10182.3613\n", + "Epoch 12/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 12022.4990 - val_loss: 10170.7959\n", + "Epoch 13/230\n", + "27/27 [==============================] - 0s 4ms/step - loss: 12011.5059 - val_loss: 10159.1104\n", + "Epoch 14/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11999.0703 - val_loss: 10148.8887\n", + "Epoch 15/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11986.7207 - val_loss: 10136.7832\n", + "Epoch 16/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11972.5098 - val_loss: 10124.4365\n", + "Epoch 17/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11958.9512 - val_loss: 10111.6875\n", + "Epoch 18/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11944.2920 - val_loss: 10096.2871\n", + "Epoch 19/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11926.1377 - val_loss: 10078.1426\n", + "Epoch 20/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11907.7822 - val_loss: 10062.5576\n", + "Epoch 21/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11890.2500 - val_loss: 10045.1289\n", + "Epoch 22/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11869.6943 - val_loss: 10027.2549\n", + "Epoch 23/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11848.6797 - val_loss: 10008.5547\n", + "Epoch 24/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11826.1523 - val_loss: 9984.8955\n", + "Epoch 25/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11801.5615 - val_loss: 9959.5625\n", + "Epoch 26/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11776.1191 - val_loss: 9932.5312\n", + "Epoch 27/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11750.2500 - val_loss: 9909.8994\n", + "Epoch 28/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11724.4980 - val_loss: 9884.1885\n", + "Epoch 29/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11696.5947 - val_loss: 9855.7959\n", + "Epoch 30/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11666.3535 - val_loss: 9823.0244\n", + "Epoch 31/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11633.8408 - val_loss: 9791.6172\n", + "Epoch 32/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11598.4385 - val_loss: 9751.3975\n", + "Epoch 33/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11560.4717 - val_loss: 9710.9121\n", + "Epoch 34/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11522.8535 - val_loss: 9667.3672\n", + "Epoch 35/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11483.9209 - val_loss: 9624.2939\n", + "Epoch 36/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11441.3760 - val_loss: 9579.2900\n", + "Epoch 37/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11399.3076 - val_loss: 9536.9912\n", + "Epoch 38/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11353.9707 - val_loss: 9487.5205\n", + "Epoch 39/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11305.3447 - val_loss: 9440.2031\n", + "Epoch 40/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11254.4922 - val_loss: 9388.3291\n", + "Epoch 41/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11204.7783 - val_loss: 9337.3271\n", + "Epoch 42/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11153.3877 - val_loss: 9286.1865\n", + "Epoch 43/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11096.4307 - val_loss: 9225.2256\n", + "Epoch 44/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11037.5020 - val_loss: 9165.0273\n", + "Epoch 45/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 10974.1270 - val_loss: 9100.3037\n", + "Epoch 46/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 10907.4863 - val_loss: 9035.9707\n", + "Epoch 47/230\n", + "27/27 [==============================] - 0s 4ms/step - loss: 10842.7881 - val_loss: 8970.3340\n", + "Epoch 48/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 10779.9277 - val_loss: 8911.4756\n", + "Epoch 49/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 10709.1582 - val_loss: 8844.0977\n", + "Epoch 50/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 10640.1543 - val_loss: 8779.2520\n", + "Epoch 51/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 10569.2578 - val_loss: 8714.2061\n", + "Epoch 52/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 10489.6025 - val_loss: 8631.1279\n", + "Epoch 53/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 10415.3633 - val_loss: 8558.1143\n", + "Epoch 54/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 10332.7100 - val_loss: 8468.8799\n", + "Epoch 55/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 10254.8125 - val_loss: 8401.1934\n", + "Epoch 56/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 10175.6240 - val_loss: 8316.4170\n", + "Epoch 57/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 10084.0391 - val_loss: 8228.1357\n", + "Epoch 58/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 9992.3311 - val_loss: 8129.7876\n", + "Epoch 59/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 9905.4053 - val_loss: 8049.1753\n", + "Epoch 60/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 9812.2803 - val_loss: 7945.5034\n", + "Epoch 61/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 9714.7422 - val_loss: 7843.7041\n", + "Epoch 62/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 9616.9336 - val_loss: 7750.0752\n", + "Epoch 63/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 9521.8418 - val_loss: 7647.5156\n", + "Epoch 64/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 9422.1240 - val_loss: 7540.8838\n", + "Epoch 65/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 9322.2021 - val_loss: 7429.0513\n", + "Epoch 66/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 9212.8252 - val_loss: 7319.2876\n", + "Epoch 67/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 9112.4902 - val_loss: 7203.9868\n", + "Epoch 68/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 9000.6992 - val_loss: 7069.3931\n", + "Epoch 69/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 8893.8633 - val_loss: 6964.7910\n", + "Epoch 70/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 8788.3311 - val_loss: 6845.3848\n", + "Epoch 71/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 8677.3789 - val_loss: 6724.9717\n", + "Epoch 72/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 8568.1738 - val_loss: 6613.6626\n", + "Epoch 73/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 8456.5391 - val_loss: 6484.6528\n", + "Epoch 74/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 8348.6631 - val_loss: 6375.3760\n", + "Epoch 75/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 8233.2715 - val_loss: 6239.6729\n", + "Epoch 76/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 8117.5020 - val_loss: 6105.7505\n", + "Epoch 77/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 7995.1782 - val_loss: 5965.9219\n", + "Epoch 78/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 7871.2524 - val_loss: 5835.1777\n", + "Epoch 79/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 7749.0845 - val_loss: 5695.1338\n", + "Epoch 80/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 7627.6133 - val_loss: 5567.3472\n", + "Epoch 81/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 7509.9033 - val_loss: 5434.1528\n", + "Epoch 82/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 7392.1392 - val_loss: 5306.0415\n", + "Epoch 83/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 7272.6484 - val_loss: 5182.9590\n", + "Epoch 84/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 7153.9922 - val_loss: 5039.8638\n", + "Epoch 85/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 7030.5449 - val_loss: 4925.7793\n", + "Epoch 86/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 6920.6982 - val_loss: 4795.2935\n", + "Epoch 87/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 6797.4966 - val_loss: 4652.2476\n", + "Epoch 88/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 6676.5020 - val_loss: 4528.8423\n", + "Epoch 89/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 6557.6738 - val_loss: 4403.6050\n", + "Epoch 90/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 6439.2964 - val_loss: 4274.5117\n", + "Epoch 91/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 6319.6982 - val_loss: 4147.8398\n", + "Epoch 92/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 6201.4868 - val_loss: 4014.9348\n", + "Epoch 93/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 6078.1499 - val_loss: 3884.9456\n", + "Epoch 94/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 5953.7559 - val_loss: 3743.2332\n", + "Epoch 95/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 5832.7695 - val_loss: 3625.2051\n", + "Epoch 96/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 5712.9097 - val_loss: 3500.3970\n", + "Epoch 97/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 5593.7607 - val_loss: 3367.4067\n", + "Epoch 98/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 5473.3599 - val_loss: 3249.7891\n", + "Epoch 99/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 5360.8032 - val_loss: 3130.7329\n", + "Epoch 100/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 5255.9961 - val_loss: 3021.1904\n", + "Epoch 101/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 5141.2266 - val_loss: 2905.5413\n", + "Epoch 102/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 5030.2178 - val_loss: 2805.1426\n", + "Epoch 103/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 4931.2417 - val_loss: 2702.3801\n", + "Epoch 104/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 4816.6172 - val_loss: 2584.0815\n", + "Epoch 105/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 4705.7778 - val_loss: 2466.2097\n", + "Epoch 106/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 4597.6187 - val_loss: 2386.0603\n", + "Epoch 107/230\n", + "27/27 [==============================] - 0s 5ms/step - loss: 4494.7734 - val_loss: 2284.9753\n", + "Epoch 108/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 4392.0679 - val_loss: 2175.9844\n", + "Epoch 109/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 4287.3970 - val_loss: 2085.4385\n", + "Epoch 110/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 4181.3682 - val_loss: 1978.1014\n", + "Epoch 111/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 4065.7773 - val_loss: 1888.7139\n", + "Epoch 112/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 3966.3765 - val_loss: 1817.0557\n", + "Epoch 113/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 3868.9700 - val_loss: 1733.0188\n", + "Epoch 114/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 3767.9058 - val_loss: 1657.8013\n", + "Epoch 115/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 3667.7090 - val_loss: 1577.6398\n", + "Epoch 116/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 3576.7300 - val_loss: 1492.2061\n", + "Epoch 117/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 3483.4834 - val_loss: 1422.7661\n", + "Epoch 118/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 3371.6440 - val_loss: 1345.2626\n", + "Epoch 119/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 3276.7490 - val_loss: 1269.0166\n", + "Epoch 120/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 3186.4307 - val_loss: 1195.5717\n", + "Epoch 121/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 3103.7952 - val_loss: 1136.5585\n", + "Epoch 122/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 3019.9116 - val_loss: 1080.0763\n", + "Epoch 123/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 2936.9600 - val_loss: 1024.5452\n", + "Epoch 124/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 2848.6543 - val_loss: 967.8972\n", + "Epoch 125/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 2759.4729 - val_loss: 908.9399\n", + "Epoch 126/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 2682.3201 - val_loss: 855.4163\n", + "Epoch 127/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 2602.8093 - val_loss: 806.7042\n", + "Epoch 128/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 2522.2300 - val_loss: 758.4872\n", + "Epoch 129/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 2446.2961 - val_loss: 715.9938\n", + "Epoch 130/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 2377.7810 - val_loss: 678.4742\n", + "Epoch 131/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 2306.4805 - val_loss: 634.7168\n", + "Epoch 132/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 2232.3655 - val_loss: 595.1262\n", + "Epoch 133/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 2162.7793 - val_loss: 561.4512\n", + "Epoch 134/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 2087.2634 - val_loss: 525.2331\n", + "Epoch 135/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 2027.5275 - val_loss: 495.4591\n", + "Epoch 136/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1965.9813 - val_loss: 468.4331\n", + "Epoch 137/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1903.6448 - val_loss: 442.2308\n", + "Epoch 138/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1840.4558 - val_loss: 419.4660\n", + "Epoch 139/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1780.3182 - val_loss: 395.3222\n", + "Epoch 140/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1726.3489 - val_loss: 373.6279\n", + "Epoch 141/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1667.2789 - val_loss: 353.0072\n", + "Epoch 142/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1608.7032 - val_loss: 335.4416\n", + "Epoch 143/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1553.3606 - val_loss: 317.1785\n", + "Epoch 144/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1502.1145 - val_loss: 301.1630\n", + "Epoch 145/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1452.7948 - val_loss: 287.4691\n", + "Epoch 146/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1399.9838 - val_loss: 274.4448\n", + "Epoch 147/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1350.2396 - val_loss: 262.4208\n", + "Epoch 148/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1302.4214 - val_loss: 251.3363\n", + "Epoch 149/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1255.2947 - val_loss: 240.0806\n", + "Epoch 150/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1208.4150 - val_loss: 232.4185\n", + "Epoch 151/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1164.2562 - val_loss: 225.5964\n", + "Epoch 152/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1121.3905 - val_loss: 218.5930\n", + "Epoch 153/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1084.7579 - val_loss: 212.4528\n", + "Epoch 154/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1044.8298 - val_loss: 208.1859\n", + "Epoch 155/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1010.6803 - val_loss: 203.8069\n", + "Epoch 156/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 977.3309 - val_loss: 198.4168\n", + "Epoch 157/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 940.1173 - val_loss: 194.7413\n", + "Epoch 158/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 904.9243 - val_loss: 193.1038\n", + "Epoch 159/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 874.6812 - val_loss: 190.5175\n", + "Epoch 160/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 848.2643 - val_loss: 190.3199\n", + "Epoch 161/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 821.2538 - val_loss: 187.8828\n", + "Epoch 162/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 794.3558 - val_loss: 186.2382\n", + "Epoch 163/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 767.7045 - val_loss: 187.4863\n", + "Epoch 164/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 740.7269 - val_loss: 187.2383\n", + "Epoch 165/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 714.8248 - val_loss: 188.9285\n", + "Epoch 166/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 691.7661 - val_loss: 189.5347\n", + "Epoch 167/230\n", + "27/27 [==============================] - 0s 4ms/step - loss: 666.0239 - val_loss: 189.1279\n", + "Epoch 168/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 643.5890 - val_loss: 190.6196\n", + "Epoch 169/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 623.2014 - val_loss: 193.6658\n", + "Epoch 170/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 602.5149 - val_loss: 192.7368\n", + "Epoch 171/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 584.4434 - val_loss: 192.1510\n", + "Epoch 172/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 566.3003 - val_loss: 194.2075\n", + "Epoch 173/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 548.4911 - val_loss: 196.4097\n", + "Epoch 174/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 529.6823 - val_loss: 197.6588\n", + "Epoch 175/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 511.5667 - val_loss: 199.9702\n", + "Epoch 176/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 495.8926 - val_loss: 199.7701\n", + "Epoch 177/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 479.0361 - val_loss: 203.8461\n", + "Epoch 178/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 464.5481 - val_loss: 206.1897\n", + "Epoch 179/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 452.3015 - val_loss: 207.7291\n", + "Epoch 180/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 438.9663 - val_loss: 212.0649\n", + "Epoch 181/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 424.1348 - val_loss: 214.5356\n", + "Epoch 182/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 411.8778 - val_loss: 216.3279\n", + "Epoch 183/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 399.4817 - val_loss: 216.3186\n", + "Epoch 184/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 388.3781 - val_loss: 218.0007\n", + "Epoch 185/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 376.0885 - val_loss: 217.8670\n", + "Epoch 186/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 364.4879 - val_loss: 220.0281\n", + "Epoch 187/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 352.7753 - val_loss: 224.3534\n", + "Epoch 188/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 344.5522 - val_loss: 224.2535\n", + "Epoch 189/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 333.8235 - val_loss: 224.6835\n", + "Epoch 190/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 323.7860 - val_loss: 227.3225\n", + "Epoch 191/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 314.8434 - val_loss: 224.6176\n", + "Epoch 192/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 306.3253 - val_loss: 228.2700\n", + "Epoch 193/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 297.3029 - val_loss: 233.6447\n", + "Epoch 194/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 289.8553 - val_loss: 230.6904\n", + "Epoch 195/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 282.6923 - val_loss: 232.1273\n", + "Epoch 196/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 275.2116 - val_loss: 231.4316\n", + "Epoch 197/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 269.4836 - val_loss: 231.0308\n", + "Epoch 198/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 261.0052 - val_loss: 226.4398\n", + "Epoch 199/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 254.0861 - val_loss: 225.9057\n", + "Epoch 200/230\n", + "27/27 [==============================] - 0s 4ms/step - loss: 248.2079 - val_loss: 226.9341\n", + "Epoch 201/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 240.9648 - val_loss: 229.3855\n", + "Epoch 202/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 237.2469 - val_loss: 225.1341\n", + "Epoch 203/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 231.4045 - val_loss: 225.1857\n", + "Epoch 204/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 225.7138 - val_loss: 222.8763\n", + "Epoch 205/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 220.3503 - val_loss: 221.2651\n", + "Epoch 206/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 215.7320 - val_loss: 220.2312\n", + "Epoch 207/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 210.6108 - val_loss: 223.8336\n", + "Epoch 208/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 206.3768 - val_loss: 221.6653\n", + "Epoch 209/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 203.6414 - val_loss: 219.9349\n", + "Epoch 210/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 197.6982 - val_loss: 227.7490\n", + "Epoch 211/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 195.5823 - val_loss: 226.9884\n", + "Epoch 212/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 191.4630 - val_loss: 223.3450\n", + "Epoch 213/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 188.2119 - val_loss: 223.8042\n", + "Epoch 214/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 185.2220 - val_loss: 223.6329\n", + "Epoch 215/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 180.9632 - val_loss: 221.7261\n", + "Epoch 216/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 178.5197 - val_loss: 221.3366\n", + "Epoch 217/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 176.3694 - val_loss: 226.5233\n", + "Epoch 218/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 173.1855 - val_loss: 222.3168\n", + "Epoch 219/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 170.0605 - val_loss: 221.8981\n", + "Epoch 220/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 168.7097 - val_loss: 222.1761\n", + "Epoch 221/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 166.9946 - val_loss: 220.2658\n", + "Epoch 222/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 166.0260 - val_loss: 217.8652\n", + "Epoch 223/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 163.1823 - val_loss: 222.5577\n", + "Epoch 224/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 162.6364 - val_loss: 222.4031\n", + "Epoch 225/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 161.1220 - val_loss: 223.4985\n", + "Epoch 226/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 159.3622 - val_loss: 221.5541\n", + "Epoch 227/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 157.5099 - val_loss: 219.1863\n", + "Epoch 228/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 156.6078 - val_loss: 224.4047\n", + "Epoch 229/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 154.9963 - val_loss: 226.5534\n", + "Epoch 230/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 153.4673 - val_loss: 227.1058\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "\n", + "## Plot Loss\n", + "\n", + "Using matplotlib visualise how the loss (both validation and training) is changing, use this information to retrain the model with appropriate parameters.
We ideally want the loss to be constant over the last few iterations." + ], + "metadata": { + "id": "jmeP6vt3z0oA" + } + }, + { + "cell_type": "code", + "source": [ + "plt.plot(history.history['loss'])\n", + "plt.plot(history.history['val_loss'])\n", + "plt.ylabel('loss')\n", + "plt.xlabel('epoch')\n", + "plt.legend(['test','train'])\n", + "plt.show()" + ], + "metadata": { + "id": "RQTNqPHm0mOi", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 279 + }, + "outputId": "428fca06-a17f-4d27-842a-dbb55de86b0a" + }, + "execution_count": 20, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Evaluation Metrics\n", + "Use the R2 Score function implemented in the first assignment to evaluate the performance of the model." + ], + "metadata": { + "id": "IVrR_vXA7kOt" + } + }, + { + "cell_type": "code", + "source": [ + "import numpy as np\n", + "from sklearn.metrics import r2_score\n", + "predictions=model.predict(X_test)\n", + "print(predictions)\n", + "accu = r2_score(y_test,predictions)\n", + "print(\"Accuracy:\", accu)\n", + "print(y_test)" + ], + "metadata": { + "id": "-lOHpD8-7ggm", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "7e370409-f8c1-4c2a-d712-487391e2f92d" + }, + "execution_count": 21, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[[ 162.55573 ]\n", + " [-136.7924 ]\n", + " [ 63.621853]\n", + " [-133.9853 ]\n", + " [ -5.162861]\n", + " [ -82.54508 ]\n", + " [ 55.08005 ]\n", + " [ 26.509747]\n", + " [-145.45982 ]\n", + " [ 143.55104 ]\n", + " [ 88.4598 ]\n", + " [ 144.31512 ]\n", + " [ 39.32738 ]\n", + " [ 118.73373 ]\n", + " [ 74.694374]\n", + " [ 95.09522 ]\n", + " [ 187.8099 ]\n", + " [ 81.306854]\n", + " [ 119.22342 ]\n", + " [ -68.46275 ]]\n", + "Accuracy: 0.9580973911703754\n", + "[ 215.47124758 -131.1390209 79.87403933 -140.76311462 -7.91882959\n", + " -59.29081497 34.92501227 24.22069865 -139.33799971 153.57904985\n", + " 68.95790292 130.17425384 29.65951354 80.53740813 57.63151087\n", + " 80.93091525 198.17702362 59.77779093 86.26391892 -66.93162171]\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Your own custom model\n", + "Build a custom model of your own choice.
\n", + "Describe it in detail in Markdown/Latex in the cell below.
\n", + "Visualise the loss, as before." + ], + "metadata": { + "id": "CHqzF1OU0pBg" + } + }, + { + "cell_type": "markdown", + "source": [ + "## Generate dateset" + ], + "metadata": { + "id": "jF8oTUqq0y0g" + } + }, + { + "cell_type": "code", + "source": [ + "X, y = datasets.make_regression(n_samples=10000, n_features=5, noise=5, random_state=4)\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1234)" + ], + "metadata": { + "id": "1XOk5hJu0oSQ" + }, + "execution_count": 25, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "## Creating model\n", + "\n", + "1. Model has 6 hidden layers of dense 50 each\n", + "2. Adam optimizer is used and mse is used as a loss function\n", + "\n" + ], + "metadata": { + "id": "wZ9p7a_mzHrg" + } + }, + { + "cell_type": "code", + "source": [ + "import tensorflow as tf\n", + "from tensorflow import keras\n", + "model = keras.Sequential([keras.Input(5),\n", + " keras.layers.Dense(50, activation='relu'),keras.layers.Dense(50, activation='relu'),\n", + " keras.layers.Dense(50, activation='relu'),keras.layers.Dense(50, activation='relu'),\n", + " keras.layers.Dense(50, activation='relu'),keras.layers.Dense(50, activation='relu'),\n", + " keras.layers.Dense(1)])\n", + "opt = keras.optimizers.Adam(learning_rate=0.05)\n", + "model.compile(loss='mse')\n", + "history=model.fit(X_train,y_train,validation_split=0.1,epochs=5,batch_size=2)" + ], + "metadata": { + "id": "aS0ROZa402Lo", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "23d92f0a-f38d-4dc2-b9eb-86ce31bf3dfc" + }, + "execution_count": 26, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Epoch 1/5\n", + "3600/3600 [==============================] - 7s 2ms/step - loss: 542.7628 - val_loss: 105.0305\n", + "Epoch 2/5\n", + "3600/3600 [==============================] - 6s 2ms/step - loss: 61.0482 - val_loss: 198.6302\n", + "Epoch 3/5\n", + "3600/3600 [==============================] - 6s 2ms/step - loss: 56.2035 - val_loss: 91.9054\n", + "Epoch 4/5\n", + "3600/3600 [==============================] - 6s 2ms/step - loss: 54.8107 - val_loss: 34.0061\n", + "Epoch 5/5\n", + "3600/3600 [==============================] - 6s 2ms/step - loss: 53.1269 - val_loss: 29.8570\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Visulazing the data" + ], + "metadata": { + "id": "hiHTd1KqzqJ1" + } + }, + { + "cell_type": "code", + "source": [ + "plt.plot(history.history['val_loss'])\n", + "plt.plot(history.history['loss'])\n", + "plt.ylabel('loss')\n", + "plt.xlabel('epoch')\n", + "plt.legend(['test','train'])\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 279 + }, + "id": "ZQPp4bDivsoj", + "outputId": "03277a23-016f-4c61-d7ad-6f9d1d192b39" + }, + "execution_count": 27, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## r2_score" + ], + "metadata": { + "id": "3mQ_wSfKz2mN" + } + }, + { + "cell_type": "code", + "source": [ + "import numpy as np\n", + "from sklearn.metrics import r2_score\n", + "predictions=model.predict(X_test)\n", + "print(predictions)\n", + "accu = r2_score(y_test,predictions)\n", + "print(\"Accuracy:\", accu)\n", + "print(y_test)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "2orj6qHdwf91", + "outputId": "4db00207-96a2-40c9-e0cf-9874cebbc328" + }, + "execution_count": 28, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "WARNING:tensorflow:5 out of the last 67 calls to .predict_function at 0x7f0a565bf050> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has experimental_relax_shapes=True option that relaxes argument shapes that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", + "[[-99.74131 ]\n", + " [ 62.160343]\n", + " [ 72.060646]\n", + " ...\n", + " [ 14.229921]\n", + " [-52.456608]\n", + " [-85.36296 ]]\n", + "Accuracy: 0.9978419666368175\n", + "[-91.72292135 52.55742745 72.44587524 ... 7.18010497 -59.23469434\n", + " -82.08750428]\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "" + ], + "metadata": { + "id": "HjZZ1XZow4cc" + }, + "execution_count": null, + "outputs": [] + } + ] +} \ No newline at end of file From 9fce5b402b760a0a556735b67f98f1e9b08c7fa8 Mon Sep 17 00:00:00 2001 From: UsernameStillUnavailable <88334804+UsernameStillUnavailable@users.noreply.github.com> Date: Mon, 20 Jun 2022 23:31:52 +0530 Subject: [PATCH 05/11] Add files via upload --- Assignment 2/A2_200064.ipynb | 953 +++++++++++++++++++++++++++++++++++ 1 file changed, 953 insertions(+) create mode 100644 Assignment 2/A2_200064.ipynb diff --git a/Assignment 2/A2_200064.ipynb b/Assignment 2/A2_200064.ipynb new file mode 100644 index 0000000..a10f552 --- /dev/null +++ b/Assignment 2/A2_200064.ipynb @@ -0,0 +1,953 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Copy of CVusingTF_Assgn2.ipynb", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Assigment 2: Deep Learning" + ], + "metadata": { + "id": "UxcaEbrCy1g_" + } + }, + { + "cell_type": "markdown", + "source": [ + "## Generate Dataset\n", + "\n", + "This is the same code from Assignment 1" + ], + "metadata": { + "id": "h2JON-_Oy79w" + } + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "id": "hgpG3WDuypfa" + }, + "outputs": [], + "source": [ + "from sklearn import datasets\n", + "from sklearn.model_selection import train_test_split\n", + "\n", + "# Generate the data\n", + "X, y = datasets.make_regression(n_samples=100, n_features=5, noise=5, random_state=4)\n", + "\n", + "# Split the data\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1234)\n" + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Visualize Dataset\n", + "This is the same code from Assignment 1" + ], + "metadata": { + "id": "r6it-Rm7zD1Y" + } + }, + { + "cell_type": "code", + "source": [ + "\n", + "import matplotlib.pyplot as plt\n", + "for i in range(5):\n", + " plt.scatter(X[:,i],y)\n", + " plt.show()" + ], + "metadata": { + "id": "UautPVj1yzaQ", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "outputId": "a78cbdce-275c-4dd6-b064-7dadfeeb2669" + }, + "execution_count": 15, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Model Definition\n", + "\n", + "Using TensorFlow, build a model with the following definition:\n", + "> Input of shape 5 \\\\\n", + "> Dense of shape 5 \\\\\n", + "> Dense of shape 5 \\\\\n", + "> Dense of shape 1 \\\\\n", + "\n", + "Use Mean Square Error Loss and Stochaistic Gradient Descent (SGD) Optimizer\n", + "\n", + "Use Gradient Decay with appropriate parameters" + ], + "metadata": { + "id": "XMXb9lTyzGHE" + } + }, + { + "cell_type": "code", + "source": [ + "import tensorflow as tf\n", + "from tensorflow import keras\n", + "model = keras.Sequential([keras.Input(5),keras.layers.Dense(5, activation='relu'),keras.layers.Dense(5, activation='relu'),keras.layers.Dense(1)])\n", + "opt = tf.keras.optimizers.SGD(learning_rate=0.06)\n", + "model.compile(loss=tf.keras.losses.MeanSquaredError())\n", + "history=model.fit(X_train,y_train,validation_split=0.33,epochs=230,batch_size=2)" + ], + "metadata": { + "id": "r32N1xK2ziOs", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "1861617f-4928-49d8-a5a4-2e4123ab3427" + }, + "execution_count": 19, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Epoch 1/230\n", + "27/27 [==============================] - 1s 7ms/step - loss: 12103.8115 - val_loss: 10247.0479\n", + "Epoch 2/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 12097.8535 - val_loss: 10242.8896\n", + "Epoch 3/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 12091.8906 - val_loss: 10238.7041\n", + "Epoch 4/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 12085.9824 - val_loss: 10232.4619\n", + "Epoch 5/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 12079.9131 - val_loss: 10226.9131\n", + "Epoch 6/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 12073.4297 - val_loss: 10220.8203\n", + "Epoch 7/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 12065.7920 - val_loss: 10213.4541\n", + "Epoch 8/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 12057.8564 - val_loss: 10206.8877\n", + "Epoch 9/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 12049.6875 - val_loss: 10199.1025\n", + "Epoch 10/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 12041.5859 - val_loss: 10191.0625\n", + "Epoch 11/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 12032.2969 - val_loss: 10182.3613\n", + "Epoch 12/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 12022.4990 - val_loss: 10170.7959\n", + "Epoch 13/230\n", + "27/27 [==============================] - 0s 4ms/step - loss: 12011.5059 - val_loss: 10159.1104\n", + "Epoch 14/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11999.0703 - val_loss: 10148.8887\n", + "Epoch 15/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11986.7207 - val_loss: 10136.7832\n", + "Epoch 16/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11972.5098 - val_loss: 10124.4365\n", + "Epoch 17/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11958.9512 - val_loss: 10111.6875\n", + "Epoch 18/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11944.2920 - val_loss: 10096.2871\n", + "Epoch 19/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11926.1377 - val_loss: 10078.1426\n", + "Epoch 20/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11907.7822 - val_loss: 10062.5576\n", + "Epoch 21/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11890.2500 - val_loss: 10045.1289\n", + "Epoch 22/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11869.6943 - val_loss: 10027.2549\n", + "Epoch 23/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11848.6797 - val_loss: 10008.5547\n", + "Epoch 24/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11826.1523 - val_loss: 9984.8955\n", + "Epoch 25/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11801.5615 - val_loss: 9959.5625\n", + "Epoch 26/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11776.1191 - val_loss: 9932.5312\n", + "Epoch 27/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11750.2500 - val_loss: 9909.8994\n", + "Epoch 28/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11724.4980 - val_loss: 9884.1885\n", + "Epoch 29/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11696.5947 - val_loss: 9855.7959\n", + "Epoch 30/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11666.3535 - val_loss: 9823.0244\n", + "Epoch 31/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11633.8408 - val_loss: 9791.6172\n", + "Epoch 32/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11598.4385 - val_loss: 9751.3975\n", + "Epoch 33/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11560.4717 - val_loss: 9710.9121\n", + "Epoch 34/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11522.8535 - val_loss: 9667.3672\n", + "Epoch 35/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11483.9209 - val_loss: 9624.2939\n", + "Epoch 36/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11441.3760 - val_loss: 9579.2900\n", + "Epoch 37/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11399.3076 - val_loss: 9536.9912\n", + "Epoch 38/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11353.9707 - val_loss: 9487.5205\n", + "Epoch 39/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11305.3447 - val_loss: 9440.2031\n", + "Epoch 40/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11254.4922 - val_loss: 9388.3291\n", + "Epoch 41/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11204.7783 - val_loss: 9337.3271\n", + "Epoch 42/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11153.3877 - val_loss: 9286.1865\n", + "Epoch 43/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11096.4307 - val_loss: 9225.2256\n", + "Epoch 44/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 11037.5020 - val_loss: 9165.0273\n", + "Epoch 45/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 10974.1270 - val_loss: 9100.3037\n", + "Epoch 46/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 10907.4863 - val_loss: 9035.9707\n", + "Epoch 47/230\n", + "27/27 [==============================] - 0s 4ms/step - loss: 10842.7881 - val_loss: 8970.3340\n", + "Epoch 48/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 10779.9277 - val_loss: 8911.4756\n", + "Epoch 49/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 10709.1582 - val_loss: 8844.0977\n", + "Epoch 50/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 10640.1543 - val_loss: 8779.2520\n", + "Epoch 51/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 10569.2578 - val_loss: 8714.2061\n", + "Epoch 52/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 10489.6025 - val_loss: 8631.1279\n", + "Epoch 53/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 10415.3633 - val_loss: 8558.1143\n", + "Epoch 54/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 10332.7100 - val_loss: 8468.8799\n", + "Epoch 55/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 10254.8125 - val_loss: 8401.1934\n", + "Epoch 56/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 10175.6240 - val_loss: 8316.4170\n", + "Epoch 57/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 10084.0391 - val_loss: 8228.1357\n", + "Epoch 58/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 9992.3311 - val_loss: 8129.7876\n", + "Epoch 59/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 9905.4053 - val_loss: 8049.1753\n", + "Epoch 60/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 9812.2803 - val_loss: 7945.5034\n", + "Epoch 61/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 9714.7422 - val_loss: 7843.7041\n", + "Epoch 62/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 9616.9336 - val_loss: 7750.0752\n", + "Epoch 63/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 9521.8418 - val_loss: 7647.5156\n", + "Epoch 64/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 9422.1240 - val_loss: 7540.8838\n", + "Epoch 65/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 9322.2021 - val_loss: 7429.0513\n", + "Epoch 66/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 9212.8252 - val_loss: 7319.2876\n", + "Epoch 67/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 9112.4902 - val_loss: 7203.9868\n", + "Epoch 68/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 9000.6992 - val_loss: 7069.3931\n", + "Epoch 69/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 8893.8633 - val_loss: 6964.7910\n", + "Epoch 70/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 8788.3311 - val_loss: 6845.3848\n", + "Epoch 71/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 8677.3789 - val_loss: 6724.9717\n", + "Epoch 72/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 8568.1738 - val_loss: 6613.6626\n", + "Epoch 73/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 8456.5391 - val_loss: 6484.6528\n", + "Epoch 74/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 8348.6631 - val_loss: 6375.3760\n", + "Epoch 75/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 8233.2715 - val_loss: 6239.6729\n", + "Epoch 76/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 8117.5020 - val_loss: 6105.7505\n", + "Epoch 77/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 7995.1782 - val_loss: 5965.9219\n", + "Epoch 78/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 7871.2524 - val_loss: 5835.1777\n", + "Epoch 79/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 7749.0845 - val_loss: 5695.1338\n", + "Epoch 80/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 7627.6133 - val_loss: 5567.3472\n", + "Epoch 81/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 7509.9033 - val_loss: 5434.1528\n", + "Epoch 82/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 7392.1392 - val_loss: 5306.0415\n", + "Epoch 83/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 7272.6484 - val_loss: 5182.9590\n", + "Epoch 84/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 7153.9922 - val_loss: 5039.8638\n", + "Epoch 85/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 7030.5449 - val_loss: 4925.7793\n", + "Epoch 86/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 6920.6982 - val_loss: 4795.2935\n", + "Epoch 87/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 6797.4966 - val_loss: 4652.2476\n", + "Epoch 88/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 6676.5020 - val_loss: 4528.8423\n", + "Epoch 89/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 6557.6738 - val_loss: 4403.6050\n", + "Epoch 90/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 6439.2964 - val_loss: 4274.5117\n", + "Epoch 91/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 6319.6982 - val_loss: 4147.8398\n", + "Epoch 92/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 6201.4868 - val_loss: 4014.9348\n", + "Epoch 93/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 6078.1499 - val_loss: 3884.9456\n", + "Epoch 94/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 5953.7559 - val_loss: 3743.2332\n", + "Epoch 95/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 5832.7695 - val_loss: 3625.2051\n", + "Epoch 96/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 5712.9097 - val_loss: 3500.3970\n", + "Epoch 97/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 5593.7607 - val_loss: 3367.4067\n", + "Epoch 98/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 5473.3599 - val_loss: 3249.7891\n", + "Epoch 99/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 5360.8032 - val_loss: 3130.7329\n", + "Epoch 100/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 5255.9961 - val_loss: 3021.1904\n", + "Epoch 101/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 5141.2266 - val_loss: 2905.5413\n", + "Epoch 102/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 5030.2178 - val_loss: 2805.1426\n", + "Epoch 103/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 4931.2417 - val_loss: 2702.3801\n", + "Epoch 104/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 4816.6172 - val_loss: 2584.0815\n", + "Epoch 105/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 4705.7778 - val_loss: 2466.2097\n", + "Epoch 106/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 4597.6187 - val_loss: 2386.0603\n", + "Epoch 107/230\n", + "27/27 [==============================] - 0s 5ms/step - loss: 4494.7734 - val_loss: 2284.9753\n", + "Epoch 108/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 4392.0679 - val_loss: 2175.9844\n", + "Epoch 109/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 4287.3970 - val_loss: 2085.4385\n", + "Epoch 110/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 4181.3682 - val_loss: 1978.1014\n", + "Epoch 111/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 4065.7773 - val_loss: 1888.7139\n", + "Epoch 112/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 3966.3765 - val_loss: 1817.0557\n", + "Epoch 113/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 3868.9700 - val_loss: 1733.0188\n", + "Epoch 114/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 3767.9058 - val_loss: 1657.8013\n", + "Epoch 115/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 3667.7090 - val_loss: 1577.6398\n", + "Epoch 116/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 3576.7300 - val_loss: 1492.2061\n", + "Epoch 117/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 3483.4834 - val_loss: 1422.7661\n", + "Epoch 118/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 3371.6440 - val_loss: 1345.2626\n", + "Epoch 119/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 3276.7490 - val_loss: 1269.0166\n", + "Epoch 120/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 3186.4307 - val_loss: 1195.5717\n", + "Epoch 121/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 3103.7952 - val_loss: 1136.5585\n", + "Epoch 122/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 3019.9116 - val_loss: 1080.0763\n", + "Epoch 123/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 2936.9600 - val_loss: 1024.5452\n", + "Epoch 124/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 2848.6543 - val_loss: 967.8972\n", + "Epoch 125/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 2759.4729 - val_loss: 908.9399\n", + "Epoch 126/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 2682.3201 - val_loss: 855.4163\n", + "Epoch 127/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 2602.8093 - val_loss: 806.7042\n", + "Epoch 128/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 2522.2300 - val_loss: 758.4872\n", + "Epoch 129/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 2446.2961 - val_loss: 715.9938\n", + "Epoch 130/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 2377.7810 - val_loss: 678.4742\n", + "Epoch 131/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 2306.4805 - val_loss: 634.7168\n", + "Epoch 132/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 2232.3655 - val_loss: 595.1262\n", + "Epoch 133/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 2162.7793 - val_loss: 561.4512\n", + "Epoch 134/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 2087.2634 - val_loss: 525.2331\n", + "Epoch 135/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 2027.5275 - val_loss: 495.4591\n", + "Epoch 136/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1965.9813 - val_loss: 468.4331\n", + "Epoch 137/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1903.6448 - val_loss: 442.2308\n", + "Epoch 138/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1840.4558 - val_loss: 419.4660\n", + "Epoch 139/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1780.3182 - val_loss: 395.3222\n", + "Epoch 140/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1726.3489 - val_loss: 373.6279\n", + "Epoch 141/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1667.2789 - val_loss: 353.0072\n", + "Epoch 142/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1608.7032 - val_loss: 335.4416\n", + "Epoch 143/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1553.3606 - val_loss: 317.1785\n", + "Epoch 144/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1502.1145 - val_loss: 301.1630\n", + "Epoch 145/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1452.7948 - val_loss: 287.4691\n", + "Epoch 146/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1399.9838 - val_loss: 274.4448\n", + "Epoch 147/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1350.2396 - val_loss: 262.4208\n", + "Epoch 148/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1302.4214 - val_loss: 251.3363\n", + "Epoch 149/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1255.2947 - val_loss: 240.0806\n", + "Epoch 150/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1208.4150 - val_loss: 232.4185\n", + "Epoch 151/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1164.2562 - val_loss: 225.5964\n", + "Epoch 152/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1121.3905 - val_loss: 218.5930\n", + "Epoch 153/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1084.7579 - val_loss: 212.4528\n", + "Epoch 154/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1044.8298 - val_loss: 208.1859\n", + "Epoch 155/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 1010.6803 - val_loss: 203.8069\n", + "Epoch 156/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 977.3309 - val_loss: 198.4168\n", + "Epoch 157/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 940.1173 - val_loss: 194.7413\n", + "Epoch 158/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 904.9243 - val_loss: 193.1038\n", + "Epoch 159/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 874.6812 - val_loss: 190.5175\n", + "Epoch 160/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 848.2643 - val_loss: 190.3199\n", + "Epoch 161/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 821.2538 - val_loss: 187.8828\n", + "Epoch 162/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 794.3558 - val_loss: 186.2382\n", + "Epoch 163/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 767.7045 - val_loss: 187.4863\n", + "Epoch 164/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 740.7269 - val_loss: 187.2383\n", + "Epoch 165/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 714.8248 - val_loss: 188.9285\n", + "Epoch 166/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 691.7661 - val_loss: 189.5347\n", + "Epoch 167/230\n", + "27/27 [==============================] - 0s 4ms/step - loss: 666.0239 - val_loss: 189.1279\n", + "Epoch 168/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 643.5890 - val_loss: 190.6196\n", + "Epoch 169/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 623.2014 - val_loss: 193.6658\n", + "Epoch 170/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 602.5149 - val_loss: 192.7368\n", + "Epoch 171/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 584.4434 - val_loss: 192.1510\n", + "Epoch 172/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 566.3003 - val_loss: 194.2075\n", + "Epoch 173/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 548.4911 - val_loss: 196.4097\n", + "Epoch 174/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 529.6823 - val_loss: 197.6588\n", + "Epoch 175/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 511.5667 - val_loss: 199.9702\n", + "Epoch 176/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 495.8926 - val_loss: 199.7701\n", + "Epoch 177/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 479.0361 - val_loss: 203.8461\n", + "Epoch 178/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 464.5481 - val_loss: 206.1897\n", + "Epoch 179/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 452.3015 - val_loss: 207.7291\n", + "Epoch 180/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 438.9663 - val_loss: 212.0649\n", + "Epoch 181/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 424.1348 - val_loss: 214.5356\n", + "Epoch 182/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 411.8778 - val_loss: 216.3279\n", + "Epoch 183/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 399.4817 - val_loss: 216.3186\n", + "Epoch 184/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 388.3781 - val_loss: 218.0007\n", + "Epoch 185/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 376.0885 - val_loss: 217.8670\n", + "Epoch 186/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 364.4879 - val_loss: 220.0281\n", + "Epoch 187/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 352.7753 - val_loss: 224.3534\n", + "Epoch 188/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 344.5522 - val_loss: 224.2535\n", + "Epoch 189/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 333.8235 - val_loss: 224.6835\n", + "Epoch 190/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 323.7860 - val_loss: 227.3225\n", + "Epoch 191/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 314.8434 - val_loss: 224.6176\n", + "Epoch 192/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 306.3253 - val_loss: 228.2700\n", + "Epoch 193/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 297.3029 - val_loss: 233.6447\n", + "Epoch 194/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 289.8553 - val_loss: 230.6904\n", + "Epoch 195/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 282.6923 - val_loss: 232.1273\n", + "Epoch 196/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 275.2116 - val_loss: 231.4316\n", + "Epoch 197/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 269.4836 - val_loss: 231.0308\n", + "Epoch 198/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 261.0052 - val_loss: 226.4398\n", + "Epoch 199/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 254.0861 - val_loss: 225.9057\n", + "Epoch 200/230\n", + "27/27 [==============================] - 0s 4ms/step - loss: 248.2079 - val_loss: 226.9341\n", + "Epoch 201/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 240.9648 - val_loss: 229.3855\n", + "Epoch 202/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 237.2469 - val_loss: 225.1341\n", + "Epoch 203/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 231.4045 - val_loss: 225.1857\n", + "Epoch 204/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 225.7138 - val_loss: 222.8763\n", + "Epoch 205/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 220.3503 - val_loss: 221.2651\n", + "Epoch 206/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 215.7320 - val_loss: 220.2312\n", + "Epoch 207/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 210.6108 - val_loss: 223.8336\n", + "Epoch 208/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 206.3768 - val_loss: 221.6653\n", + "Epoch 209/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 203.6414 - val_loss: 219.9349\n", + "Epoch 210/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 197.6982 - val_loss: 227.7490\n", + "Epoch 211/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 195.5823 - val_loss: 226.9884\n", + "Epoch 212/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 191.4630 - val_loss: 223.3450\n", + "Epoch 213/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 188.2119 - val_loss: 223.8042\n", + "Epoch 214/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 185.2220 - val_loss: 223.6329\n", + "Epoch 215/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 180.9632 - val_loss: 221.7261\n", + "Epoch 216/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 178.5197 - val_loss: 221.3366\n", + "Epoch 217/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 176.3694 - val_loss: 226.5233\n", + "Epoch 218/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 173.1855 - val_loss: 222.3168\n", + "Epoch 219/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 170.0605 - val_loss: 221.8981\n", + "Epoch 220/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 168.7097 - val_loss: 222.1761\n", + "Epoch 221/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 166.9946 - val_loss: 220.2658\n", + "Epoch 222/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 166.0260 - val_loss: 217.8652\n", + "Epoch 223/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 163.1823 - val_loss: 222.5577\n", + "Epoch 224/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 162.6364 - val_loss: 222.4031\n", + "Epoch 225/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 161.1220 - val_loss: 223.4985\n", + "Epoch 226/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 159.3622 - val_loss: 221.5541\n", + "Epoch 227/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 157.5099 - val_loss: 219.1863\n", + "Epoch 228/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 156.6078 - val_loss: 224.4047\n", + "Epoch 229/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 154.9963 - val_loss: 226.5534\n", + "Epoch 230/230\n", + "27/27 [==============================] - 0s 3ms/step - loss: 153.4673 - val_loss: 227.1058\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "\n", + "## Plot Loss\n", + "\n", + "Using matplotlib visualise how the loss (both validation and training) is changing, use this information to retrain the model with appropriate parameters.
We ideally want the loss to be constant over the last few iterations." + ], + "metadata": { + "id": "jmeP6vt3z0oA" + } + }, + { + "cell_type": "code", + "source": [ + "plt.plot(history.history['loss'])\n", + "plt.plot(history.history['val_loss'])\n", + "plt.ylabel('loss')\n", + "plt.xlabel('epoch')\n", + "plt.legend(['test','train'])\n", + "plt.show()" + ], + "metadata": { + "id": "RQTNqPHm0mOi", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 279 + }, + "outputId": "428fca06-a17f-4d27-842a-dbb55de86b0a" + }, + "execution_count": 20, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Evaluation Metrics\n", + "Use the R2 Score function implemented in the first assignment to evaluate the performance of the model." + ], + "metadata": { + "id": "IVrR_vXA7kOt" + } + }, + { + "cell_type": "code", + "source": [ + "import numpy as np\n", + "from sklearn.metrics import r2_score\n", + "predictions=model.predict(X_test)\n", + "print(predictions)\n", + "accu = r2_score(y_test,predictions)\n", + "print(\"Accuracy:\", accu)\n", + "print(y_test)" + ], + "metadata": { + "id": "-lOHpD8-7ggm", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "7e370409-f8c1-4c2a-d712-487391e2f92d" + }, + "execution_count": 21, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[[ 162.55573 ]\n", + " [-136.7924 ]\n", + " [ 63.621853]\n", + " [-133.9853 ]\n", + " [ -5.162861]\n", + " [ -82.54508 ]\n", + " [ 55.08005 ]\n", + " [ 26.509747]\n", + " [-145.45982 ]\n", + " [ 143.55104 ]\n", + " [ 88.4598 ]\n", + " [ 144.31512 ]\n", + " [ 39.32738 ]\n", + " [ 118.73373 ]\n", + " [ 74.694374]\n", + " [ 95.09522 ]\n", + " [ 187.8099 ]\n", + " [ 81.306854]\n", + " [ 119.22342 ]\n", + " [ -68.46275 ]]\n", + "Accuracy: 0.9580973911703754\n", + "[ 215.47124758 -131.1390209 79.87403933 -140.76311462 -7.91882959\n", + " -59.29081497 34.92501227 24.22069865 -139.33799971 153.57904985\n", + " 68.95790292 130.17425384 29.65951354 80.53740813 57.63151087\n", + " 80.93091525 198.17702362 59.77779093 86.26391892 -66.93162171]\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Your own custom model\n", + "Build a custom model of your own choice.
\n", + "Describe it in detail in Markdown/Latex in the cell below.
\n", + "Visualise the loss, as before." + ], + "metadata": { + "id": "CHqzF1OU0pBg" + } + }, + { + "cell_type": "markdown", + "source": [ + "## Generate dateset" + ], + "metadata": { + "id": "jF8oTUqq0y0g" + } + }, + { + "cell_type": "code", + "source": [ + "X, y = datasets.make_regression(n_samples=10000, n_features=5, noise=5, random_state=4)\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1234)" + ], + "metadata": { + "id": "1XOk5hJu0oSQ" + }, + "execution_count": 25, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "## Creating model\n", + "\n", + "1. Model has 6 hidden layers of dense 50 each\n", + "2. Adam optimizer is used and mse is used as a loss function\n", + "\n" + ], + "metadata": { + "id": "wZ9p7a_mzHrg" + } + }, + { + "cell_type": "code", + "source": [ + "import tensorflow as tf\n", + "from tensorflow import keras\n", + "model = keras.Sequential([keras.Input(5),\n", + " keras.layers.Dense(50, activation='relu'),keras.layers.Dense(50, activation='relu'),\n", + " keras.layers.Dense(50, activation='relu'),keras.layers.Dense(50, activation='relu'),\n", + " keras.layers.Dense(50, activation='relu'),keras.layers.Dense(50, activation='relu'),\n", + " keras.layers.Dense(1)])\n", + "opt = keras.optimizers.Adam(learning_rate=0.05)\n", + "model.compile(loss='mse')\n", + "history=model.fit(X_train,y_train,validation_split=0.1,epochs=5,batch_size=2)" + ], + "metadata": { + "id": "aS0ROZa402Lo", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "23d92f0a-f38d-4dc2-b9eb-86ce31bf3dfc" + }, + "execution_count": 26, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Epoch 1/5\n", + "3600/3600 [==============================] - 7s 2ms/step - loss: 542.7628 - val_loss: 105.0305\n", + "Epoch 2/5\n", + "3600/3600 [==============================] - 6s 2ms/step - loss: 61.0482 - val_loss: 198.6302\n", + "Epoch 3/5\n", + "3600/3600 [==============================] - 6s 2ms/step - loss: 56.2035 - val_loss: 91.9054\n", + "Epoch 4/5\n", + "3600/3600 [==============================] - 6s 2ms/step - loss: 54.8107 - val_loss: 34.0061\n", + "Epoch 5/5\n", + "3600/3600 [==============================] - 6s 2ms/step - loss: 53.1269 - val_loss: 29.8570\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Visulazing the data" + ], + "metadata": { + "id": "hiHTd1KqzqJ1" + } + }, + { + "cell_type": "code", + "source": [ + "plt.plot(history.history['val_loss'])\n", + "plt.plot(history.history['loss'])\n", + "plt.ylabel('loss')\n", + "plt.xlabel('epoch')\n", + "plt.legend(['test','train'])\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 279 + }, + "id": "ZQPp4bDivsoj", + "outputId": "03277a23-016f-4c61-d7ad-6f9d1d192b39" + }, + "execution_count": 27, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## r2_score" + ], + "metadata": { + "id": "3mQ_wSfKz2mN" + } + }, + { + "cell_type": "code", + "source": [ + "import numpy as np\n", + "from sklearn.metrics import r2_score\n", + "predictions=model.predict(X_test)\n", + "print(predictions)\n", + "accu = r2_score(y_test,predictions)\n", + "print(\"Accuracy:\", accu)\n", + "print(y_test)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "2orj6qHdwf91", + "outputId": "4db00207-96a2-40c9-e0cf-9874cebbc328" + }, + "execution_count": 28, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "WARNING:tensorflow:5 out of the last 67 calls to .predict_function at 0x7f0a565bf050> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has experimental_relax_shapes=True option that relaxes argument shapes that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", + "[[-99.74131 ]\n", + " [ 62.160343]\n", + " [ 72.060646]\n", + " ...\n", + " [ 14.229921]\n", + " [-52.456608]\n", + " [-85.36296 ]]\n", + "Accuracy: 0.9978419666368175\n", + "[-91.72292135 52.55742745 72.44587524 ... 7.18010497 -59.23469434\n", + " -82.08750428]\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "" + ], + "metadata": { + "id": "HjZZ1XZow4cc" + }, + "execution_count": null, + "outputs": [] + } + ] +} \ No newline at end of file From 8716dc18cdca459245d399236da34211db45eb09 Mon Sep 17 00:00:00 2001 From: UsernameStillUnavailable <88334804+UsernameStillUnavailable@users.noreply.github.com> Date: Mon, 20 Jun 2022 23:35:26 +0530 Subject: [PATCH 06/11] Delete A2_200064.ipynb --- A2_200064.ipynb | 953 ------------------------------------------------ 1 file changed, 953 deletions(-) delete mode 100644 A2_200064.ipynb diff --git a/A2_200064.ipynb b/A2_200064.ipynb deleted file mode 100644 index a10f552..0000000 --- a/A2_200064.ipynb +++ /dev/null @@ -1,953 +0,0 @@ -{ - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "name": "Copy of CVusingTF_Assgn2.ipynb", - "provenance": [], - "collapsed_sections": [] - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3" - }, - "language_info": { - "name": "python" - } - }, - "cells": [ - { - "cell_type": "markdown", - "source": [ - "# Assigment 2: Deep Learning" - ], - "metadata": { - "id": "UxcaEbrCy1g_" - } - }, - { - "cell_type": "markdown", - "source": [ - "## Generate Dataset\n", - "\n", - "This is the same code from Assignment 1" - ], - "metadata": { - "id": "h2JON-_Oy79w" - } - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": { - "id": "hgpG3WDuypfa" - }, - "outputs": [], - "source": [ - "from sklearn import datasets\n", - "from sklearn.model_selection import train_test_split\n", - "\n", - "# Generate the data\n", - "X, y = datasets.make_regression(n_samples=100, n_features=5, noise=5, random_state=4)\n", - "\n", - "# Split the data\n", - "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1234)\n" - ] - }, - { - "cell_type": "markdown", - "source": [ - "## Visualize Dataset\n", - "This is the same code from Assignment 1" - ], - "metadata": { - "id": "r6it-Rm7zD1Y" - } - }, - { - "cell_type": "code", - "source": [ - "\n", - "import matplotlib.pyplot as plt\n", - "for i in range(5):\n", - " plt.scatter(X[:,i],y)\n", - " plt.show()" - ], - "metadata": { - "id": "UautPVj1yzaQ", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 1000 - }, - "outputId": "a78cbdce-275c-4dd6-b064-7dadfeeb2669" - }, - "execution_count": 15, - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ], - "image/png": "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\n" - }, - "metadata": { - "needs_background": "light" - } - }, - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ], - "image/png": "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\n" - }, - "metadata": { - "needs_background": "light" - } - }, - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ], - "image/png": "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\n" - }, - "metadata": { - "needs_background": "light" - } - }, - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ], - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAD4CAYAAAAEhuazAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAY1klEQVR4nO3db4wdV3nH8d+TxUGOQF1QLErWTm1VJqohCMMqofKbKoTGIRSbtJSkEoWSKqqaqCChwKZILX1RxVIkSikpbVoiQIqIUhGMi0Emf6gQEYFscAhxQsBKasVLSoyKATUWsZ2nL3bWvt7M/TN3zsw5Z+b7kVbenXt975m5u8+cec5zzpi7CwDQL2fFbgAAoH0EfwDoIYI/APQQwR8AeojgDwA99JLYDZjEueee6xs3bozdDADIykMPPfQzd19X9lgWwX/jxo1aXFyM3QwAyIqZHRr2GGkfAOghgj8A9BDBHwB6iOAPAD1E8AeAHsqi2gcA6tq9f0k373tCPzl6TOfNrtUNl12gnVvnYjcrGoI/kAACU7N271/SjXf9QMeOn5QkLR09phvv+oEk9fY4k/YBIlsJTEtHj8l1OjDt3r8Uu2mdcfO+J04F/hXHjp/UzfueiNSi+Aj+QGQEpub95OixStv7gOAPREZgat55s2srbe8Dgj8QGYGpeTdcdoHWrpk5Y9vaNTO64bILIrUoPoI/EBmBqXk7t87ppisv1NzsWpmkudm1uunKC3s72CtR7YNMdLkaZmU/urp/qdi5dY5jOoDgj+T1oUyPwIS2kfZB8qiGAcIj+CN5VMMA4RH8kTyqYYDwCP5IHtUwQHi1g7+ZbTCzb5jZY2Z2wMw+UGx/pZndbWY/Lv59RbHdzOyTZnbQzB4xszfWbQO6jTI9ILwQ1T4nJH3I3b9nZi+X9JCZ3S3pfZLudfddZrYgaUHSRyRdLmlz8XWxpE8X/wJDUQ3T7XJXtK92z9/dn3H37xXf/0rS45LmJO2Q9LniaZ+TtLP4foekz/uyByTNmtmr67YD6DIWf0NoQXP+ZrZR0lZJ35H0Knd/pnjofyS9qvh+TtLTA//tcLFt9Wtda2aLZrZ45MiRkM0EskO5K0ILNsnLzF4m6YuSPujuvzSzU4+5u5uZV3k9d79V0q2SND8/X+n/AjmZJJ1DuStCC9LzN7M1Wg78t7v7XcXmn66kc4p/ny22L0naMPDf1xfbgN6ZNJ1DuStCC1HtY5I+I+lxd//4wEN7JL23+P69kr48sP1Pi6qfN0v6xUB6COiVSdM5XS533b1/Sdt23adNC3u1bdd9jGO0JETaZ5uk90j6gZk9XGz7a0m7JN1pZtdIOiTpj4vHvirpbZIOSnpO0p8FaAMQVFuVNZOmc7q6+Fsf1m1KVe3g7+7fkmRDHn5LyfNd0nV13xdoSpsB6bzZtVoqOQGUpXO6WO466sqna/uaGmb4Aqu0WVnT5XTOJBjIjofgD6zSZkDq++xlBrLjYT1/YJUqqZgQupjOmdQNl11wRopN6teVT0z0/IFV+p6KaVPfr3xioucPrNLVyppU9fnKJyaCP1CCgISuI+0DAD1Ezx8AGpbictwEfwBoUKqzmAn+QAtS7PmhHanOYib4AzWNC+yp9vzQjlRnMTPgC9QwyZLM3Iil31KdxUzwRzJyXNp3ksCeas8P7Uh10iBpHyQh19TIJIG97eUikJZUJw0S/JGEVAfFVlud3/+NtWt09NjxFz1vMLCzfg1SnDRI8EcSckiNlF2drJkxrTnLdPyF07eZXh3YU+35od8I/khCDqmRsquT4yddrzhnjc45+yUjA3uKPT/0G8EfScghNTLsKuToc8e1/29+v+XWAPUQ/JGEHFIjTV2dMAEMMRD8kYzUUyNNXJ00WeXESQWjUOcPTKiJG480NQFsksln6Dd6/kAFk1ydVOlxN1Xl1ETpLFcS3ULwBwKqmsZpahwh9Ekl10l4GI60DxBQ1TROU1P/Q68nw/pE3UPwBwKq2uNu6gbmoU8qOUzCQzWkfYCApknjNFHlFLp0NodJeLHkOhZC8AcCSmmyWsiTSkr7lZKcx0II/khSzN5UnffOYbLaNLq6X3XlsiBhGYI/khOzNxXivVOfrDatru5XHTmPhTDgi+SEqiyZ5uYwVLWgilTv0jUJgj+SE6I3Ne0M15x7cmhfqnfpmkSQ4G9mt5nZs2b26MC2V5rZ3Wb24+LfVxTbzcw+aWYHzewRM3tjiDagO0L0pqbtwefck0P7mirVbUOonv9nJW1ftW1B0r3uvlnSvcXPknS5pM3F17WSPh2oDeiIEL2pYT31paPHRvb+c+7JIY6dW+d0/8IlemrXFbp/4ZIsAr8UaMDX3b9pZhtXbd4h6feK7z8n6b8kfaTY/nl3d0kPmNmsmb3a3Z8J0RbkL0RlybC6dEkjB3CpaumOXOvv22LLMTjACy0H/6+4++uKn4+6+2zxvUn6ubvPmtlXJO1y928Vj90r6SPuvrjq9a7V8pWBzj///DcdOnQoSDvRD6urdlabm12r+xcuablVaEvZ5792zUw2KZlQzOwhd58ve6yVAd+il1/pLOPut7r7vLvPr1u3rqGWoatWcrHDMIDbbVRtjddknf9PV9I5ZvZqSc8W25ckbRh43vpiGxDUzq1zunnfE5WWJehSqqBL+1IVVVvjNRn890h6r6Rdxb9fHth+vZndIeliSb8g35+u3ANIlWUJcp6qv2Ll81o6ekym05fbOexLyN811iIaL1Sp5xckfVvSBWZ22Myu0XLQf6uZ/VjSpcXPkvRVSU9KOijp3yT9ZYg2ILxpauWHTayaZsJVCFVK8YalCj6250Arba1r8POSXpxnTTntEfrOY1RtjRdswLdJ8/Pzvri4OP6JicutF71t132lvadhg6XDBtn+8E1z+uJDS5UH39o+XpsW9g4dmPrEu9+Q9GclDf+8Bpmkp3Zd0U6DKqj6uzaJ2H9vsd9fGj3gy9o+LckxpTBJ3nTwF/wsM51c1Zk4dvykvvCdp0u3j1r8KsbxGlUemsNCXZPks1NNezSRo4+5FlEOf+8s79CSHKsPxs12XX2pvjrArxi2fdQfdozjNSolkMNA4bjAnnLao2szq3P4eyf4tyTH6oNxedOyX/AyM2al20f9Ycc4Xju3zukV56wpfSyHIFT2ea0c+dSXHehajj6Hv3eCf0ty7NmMGyyd5Bd57ZoZXX3xhsp/2LGO19/+wWtLA+jS0WNTDVS3OdBd9nn9w7vfoP/OYNmBnNfIKZPD3zsDvi3p4ozDYYN0M2Z6wf2MQa6qg18xj9ewcsmqbejiZ47JpPLZjxrwJfi3KIXR/5Ca/gWPfbzqVqA0UcGCfMT+/ZWo9klGjndCGvUL3PQiaLGPV928bVN53xSCCsaL/fs7DsEfQ01SrlbnFzz1IFZ3lmgTs0xzKCFEHhjwxVBNlquFntHZhLoVKE1UsORQQlhVrNnffUfwx1BNlqvlEMTqVqA0UcGSQwlhFTl0ArqKtA+GanJxrFyCWN28bei8b9cWLBvVCSCN1Sx6/hkKfZk87PXqpi1GtXNYsDrLjMv/EZgMhVDo+Wcm9IDfJK83zaDsuNctW2pZOr0UBAOZ5bp2m8muXcnkhDr/zISuHW+qFn2S1x23KFyIdqQg9aqmmFKZDNVV1Pl3SOjL5KYuuyd53cF8+KaFvY20IzZKM0fr2pVMTgj+mQl9mdzUZXfV1+3q5T8DmuOlPhmqqxjwzUzoAb+mBhCrvm7XBjJXdHlAk/r8vNHzz0zoy+SmLrurvu6kz58kf55Sjj3WFU3Tx4B0Vv4Y8EU2JhkcTG0AMUZ72nhPFq3Lw6gBX9I+gXEp3JxJZgWnNnM4xjr1bRyDLqez+oK0T0BcCjdrkoCTYlBqe0CzjWPQ1QH6PqHnH1Bqvc6umeTuSFXuoNTVq7Q27iLV1QH6PiH4B5Rir7NLJgk4kwalKguK5XaSaCMwd+22i31E2icgLoWbNUlF0KRVQ5PW3+eYymtr4hT1+Xmj2ieg1CpNMNymhb0q+803SU/tuuLUz7GrWlIqW0V+WN6hJUxVz8ekV2kxU3k5XnUgHwT/wLgUzkPZqqJlefGYqTyWhkCTCP4Yqksph7J9uenKC8fu36QniRDtWf3eFBCgSQR/lOpSymHYvtx05YVj8/bTpPLGBfZJju3u/UtDl7mmgAAhEPxRqksph7r7UiWVN+nNcUa1Z+U1ygI/tfQIhTp/lOpSyqHNfZlkot+49pS9hiTNmFE5hmCiBX8z225mT5jZQTNbaOI9cpuck5I2Zom2pc19meREM649w17jBXcCP4KJEvzNbEbSLZIul7RF0tVmtiXke1SZwYkX69L0/Tb3ZZITzbj2dOnEi3TF6vlfJOmguz/p7s9LukPSjpBvwDo79XRp+n6b+1IW2CXp/3594lTHY1x7unTi7ZPcMg1RZvia2R9J2u7uf178/B5JF7v79QPPuVbStZJ0/vnnv+nQoUOV3mPSGZxAaLv3L+nv/vOAfv7c8TO2V5ntXVYxJHV/AmHM8uI6753q7P4s1/N391vdfd7d59etW1f5/3PpjFh2bp3TOWe/uJCuypXnzq1zun/hEj2164pT5ahdT2PGTNXWfe8cMw2xgv+SpA0DP68vtgXDpTNimrbCaFjqIMfgUlXMfaz73jlWx8Wq839Q0mYz26TloH+VpD8J+Qass4OYplkWYtQcgRyDS1Ux97Hue+e4om+U4O/uJ8zsekn7JM1Ius3dD4R+n76ss9OlZRi6osqyECufX1nwWOl95hhcqoq5j3Xfu6llQJoULefv7l9199e4+2+7+9/HakfuKGlN06QVRoOf3zA/OXqsF2nMmPtY971zrI5jeYfMdWkZBqlbVzGTXHkOm8076LzZtb1IY8bcxxDvnVumgeCfuS7lgnNYTC70yWnc5zTY+8wtuEwj5j724fgOSrbUE5PpUklr6hUtTaTYRn1OOaQOkC+Cf+a6lAtO/SqmiZPTsM/vE+9+g+5fuITAj8aQ9slcl3LBqVe0NHFyyvXz69LYTF8R/DugK7nK1Mvlmjo5tfX5hQrYOYzNYDzSPkhG6uVyOafYQo5XpD42g8kQ/JGM1FMJqZ+cRgkZsFMfm8FkSPsgCeNSCamcGHJNsYUM2KmPzWAyBH8kYVzPlBxzPdMG7LKTbupjM5gMaR8kYVTPtGrKIrebarRhmvGKYeMEkrJNf+E0ev5IwqieaZWUBZUo5aYpKR110mUOQv4I/kjCqFTCsBUvy1IWXVvrKKSq4xUM7HYbwR9TCT0AO65nOmmOmYAVDgO73UbwR2VNpVaG9UyrpCxSCFipVCaVqdI2Bna7jeCPymKkViZNWcQOWCmPOVRtWxNLT8Q6MaZ8Qo6F4I/KUk6txF4rJ+Uxh2naFnJeQ6wTY8on5JgI/qgshdTKKDEnYqV8YozdtlgnxpRPyDFR54/KQq9x06W6/JTvr1CnbSE+o1gnn9gnvVQR/FFZyDVuunYP4pQXf5u2baE+o1gnxpRPyDGR9sFUQqVW6l6SpzaQF3vMYZRp2xYqbRJrMD52EUCqCP6Iqs4leaoDeSkv/jZN20KlTWKdGFM+IcdE8EdUdQaPUxvIS+0qJJSQA/yxTowpn5BjIeePqOrkyFMayOva2MWglMcxMD2CP6KqM3ic0kDesKuQD935/eyrmHK+iQ2GI+2D6Ka9JE9pIG/Y1cZJd0npjEdMi7RJ99DzR7ZS6pFOcrXBfW6REnr+yFoqPdKyq5AyfZ9YhHQQ/IEAVpcTnmV2KuUzqO8Ti5AOgj8QyOBVyOo5CBIVMkgLwR9oABOLkLpawd/M3iXpY5J+R9JF7r448NiNkq6RdFLSX7n7vmL7dkn/KGlG0r+7+646bUBcXZ3YFEIq4xFAmbo9/0clXSnpXwc3mtkWSVdJeq2k8yTdY2avKR6+RdJbJR2W9KCZ7XH3x2q2AxGkurwCgPFqlXq6++PuXla7tkPSHe7+a3d/StJBSRcVXwfd/Ul3f17SHcVzkaFRyysASFtTdf5zkp4e+PlwsW3Y9hcxs2vNbNHMFo8cOdJQM1FHSssrAKhmbPA3s3vM7NGSr0Z77O5+q7vPu/v8unXrmnwrTCml5RUAVDM25+/ul07xukuSNgz8vL7YphHbkZmUllcAUE1TaZ89kq4ys5ea2SZJmyV9V9KDkjab2SYzO1vLg8J7GmoDGpbS8goAqqlb6vlOSf8kaZ2kvWb2sLtf5u4HzOxOSY9JOiHpOnc/Wfyf6yXt03Kp523ufqDWHiAqyhkxDUqE4zMvmYKemvn5eV9cXBz/RADJGzb7mavG8MzsIXefL3uMVT0BtIoS4TQQ/AG0ihLhNBD8AbSKEuE0EPwBtIp7AqeBVT2BKVCtMj1WPE0DwR+oiAXt6qNEOD7SPkBFVKugC+j545QYqYwc0yexqlXKjpVE+gTTIfhDUpxURq7pk/Nm12qpJNA3Wa1Sdqxu+I/vSyYdP+mntuVw/JAG0j6QFCeVkWv6JEa1StmxOv6Cnwr8K3I4fkgDPX9IipPKyHWyT4xqlSrHJPXjhzQQ/CEpTiojxnuGErpaZdzYx7BjVSaH44f4SPtAUpxUBpN9lq3k85eOHpPrdO5+9/7Tt7ooO1ZrzjKtmbEzttU9frv3L2nbrvu0aWGvtu2674w2oF1Nfxb0/CEpTiqDyT7LRo19rByLYceqbNu0xy/XAfguauOzYElnILJNC3tV9ldokp7adUVr7di2677S1NLc7Frdv3BJa+1AuM+CJZ2BhKWy0FmuA/Bd1MZnQfAHIktl7COVkxDa+SwI/kAh1mBnKvdCTuUkhHY+CwZ8AcUf7ExhoTMG4NPRxmfBgC8gBjvRTQz4AmMw2Im+IfgDYrAT/UPwB8RgJ/qHAV9ADHaifwj+QCGFihugLaR9AKCHCP4A0EMEfwDoIYI/APQQwR8AeojgDwA9VCv4m9nNZvZDM3vEzL5kZrMDj91oZgfN7Akzu2xg+/Zi20EzW6jz/kAOuDUiUlS353+3pNe5++sl/UjSjZJkZlskXSXptZK2S/pnM5sxsxlJt0i6XNIWSVcXzwU6aZL7807zmpxMUFet4O/uX3f3E8WPD0haX3y/Q9Id7v5rd39K0kFJFxVfB939SXd/XtIdxXOBThp1f95pNHEyQT+FzPm/X9LXiu/nJD098NjhYtuw7S9iZtea2aKZLR45ciRgM4H2hF4tNPTJBP01Nvib2T1m9mjJ146B53xU0glJt4dqmLvf6u7z7j6/bt26UC8LtCr0aqEsPY1Qxq7t4+6XjnrczN4n6e2S3uKn7wyzJGnDwNPWF9s0YjvQOTdcdsEZdwiT6q0Wet7s2tKbzrD0NKqqW+2zXdKHJb3D3Z8beGiPpKvM7KVmtknSZknflfSgpM1mtsnMztbyoPCeOm0AUhb6/rwsPY1Q6q7q+SlJL5V0t5lJ0gPu/hfufsDM7pT0mJbTQde5+0lJMrPrJe2TNCPpNnc/ULMNQNJCrhbK0tMIhXv4AkBHcQ9fAMAZCP4A0EMEfwDoIYI/APQQwR8AeojgDwA9RPAHgB4i+ANADxH8AaCHCP4A0EMEfwDoIYI/APRQ3VU9gUbt3r/ECpZAAwj+SNbK/WpXboSycr9aSZwAgJpI+yBZ3K8WaA7BH8nifrVAc0j7IFncr7Y6xkgwKXr+SBb3q61mZYxk6egxuU6PkezevxS7aUgQwR/JCn3z865jjARVkPZB0kLe/LzrGCNBFfT8gY4YNhbCGAnKEPyBjmCMBFWQ9gE6YiU9RrUPJkHwBzqEMRJMirQPAPQQwR8AeojgDwA9RPAHgB4i+ANAD5m7x27DWGZ2RNKh2O0onCvpZ7EbERH73+/9lzgGOe3/b7n7urIHsgj+KTGzRXefj92OWNj/fu+/xDHoyv6T9gGAHiL4A0APEfyruzV2AyJj/9H3Y9CJ/SfnDwA9RM8fAHqI4A8APUTwr8jMbjazH5rZI2b2JTObjd2mtpnZu8zsgJm9YGbZl7xNysy2m9kTZnbQzBZit6dtZnabmT1rZo/GbksMZrbBzL5hZo8Vv/8fiN2mOgj+1d0t6XXu/npJP5J0Y+T2xPCopCslfTN2Q9piZjOSbpF0uaQtkq42sy1xW9W6z0raHrsREZ2Q9CF33yLpzZKuy/l3gOBfkbt/3d1PFD8+IGl9zPbE4O6Pu3vf7gp+kaSD7v6kuz8v6Q5JOyK3qVXu/k1J/xu7HbG4+zPu/r3i+19JelxStjdPIPjX835JX4vdCLRiTtLTAz8fVsZ/+KjHzDZK2irpO3FbMj3u5FXCzO6R9JslD33U3b9cPOejWr4MvL3NtrVlkmMA9JGZvUzSFyV90N1/Gbs90yL4l3D3S0c9bmbvk/R2SW/xjk6UGHcMemhJ0oaBn9cX29AjZrZGy4H/dne/K3Z76iDtU5GZbZf0YUnvcPfnYrcHrXlQ0mYz22RmZ0u6StKeyG1Ci8zMJH1G0uPu/vHY7amL4F/dpyS9XNLdZvawmf1L7Aa1zczeaWaHJf2upL1mti92m5pWDPJfL2mflgf67nT3A3Fb1S4z+4Kkb0u6wMwOm9k1sdvUsm2S3iPpkuJv/2Eze1vsRk2L5R0AoIfo+QNADxH8AaCHCP4A0EMEfwDoIYI/APQQwR8AeojgDwA99P+zvKdUEutrugAAAABJRU5ErkJggg==\n" - }, - "metadata": { - "needs_background": "light" - } - }, - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ], - "image/png": "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\n" - }, - "metadata": { - "needs_background": "light" - } - } - ] - }, - { - "cell_type": "markdown", - "source": [ - "## Model Definition\n", - "\n", - "Using TensorFlow, build a model with the following definition:\n", - "> Input of shape 5 \\\\\n", - "> Dense of shape 5 \\\\\n", - "> Dense of shape 5 \\\\\n", - "> Dense of shape 1 \\\\\n", - "\n", - "Use Mean Square Error Loss and Stochaistic Gradient Descent (SGD) Optimizer\n", - "\n", - "Use Gradient Decay with appropriate parameters" - ], - "metadata": { - "id": "XMXb9lTyzGHE" - } - }, - { - "cell_type": "code", - "source": [ - "import tensorflow as tf\n", - "from tensorflow import keras\n", - "model = keras.Sequential([keras.Input(5),keras.layers.Dense(5, activation='relu'),keras.layers.Dense(5, activation='relu'),keras.layers.Dense(1)])\n", - "opt = tf.keras.optimizers.SGD(learning_rate=0.06)\n", - "model.compile(loss=tf.keras.losses.MeanSquaredError())\n", - "history=model.fit(X_train,y_train,validation_split=0.33,epochs=230,batch_size=2)" - ], - "metadata": { - "id": "r32N1xK2ziOs", - "colab": { - "base_uri": "https://localhost:8080/" - }, - "outputId": "1861617f-4928-49d8-a5a4-2e4123ab3427" - }, - "execution_count": 19, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Epoch 1/230\n", - "27/27 [==============================] - 1s 7ms/step - loss: 12103.8115 - val_loss: 10247.0479\n", - "Epoch 2/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 12097.8535 - val_loss: 10242.8896\n", - "Epoch 3/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 12091.8906 - val_loss: 10238.7041\n", - "Epoch 4/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 12085.9824 - val_loss: 10232.4619\n", - "Epoch 5/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 12079.9131 - val_loss: 10226.9131\n", - "Epoch 6/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 12073.4297 - val_loss: 10220.8203\n", - "Epoch 7/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 12065.7920 - val_loss: 10213.4541\n", - "Epoch 8/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 12057.8564 - val_loss: 10206.8877\n", - "Epoch 9/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 12049.6875 - val_loss: 10199.1025\n", - "Epoch 10/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 12041.5859 - val_loss: 10191.0625\n", - "Epoch 11/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 12032.2969 - val_loss: 10182.3613\n", - "Epoch 12/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 12022.4990 - val_loss: 10170.7959\n", - "Epoch 13/230\n", - "27/27 [==============================] - 0s 4ms/step - loss: 12011.5059 - val_loss: 10159.1104\n", - "Epoch 14/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11999.0703 - val_loss: 10148.8887\n", - "Epoch 15/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11986.7207 - val_loss: 10136.7832\n", - "Epoch 16/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11972.5098 - val_loss: 10124.4365\n", - "Epoch 17/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11958.9512 - val_loss: 10111.6875\n", - "Epoch 18/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11944.2920 - val_loss: 10096.2871\n", - "Epoch 19/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11926.1377 - val_loss: 10078.1426\n", - "Epoch 20/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11907.7822 - val_loss: 10062.5576\n", - "Epoch 21/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11890.2500 - val_loss: 10045.1289\n", - "Epoch 22/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11869.6943 - val_loss: 10027.2549\n", - "Epoch 23/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11848.6797 - val_loss: 10008.5547\n", - "Epoch 24/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11826.1523 - val_loss: 9984.8955\n", - "Epoch 25/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11801.5615 - val_loss: 9959.5625\n", - "Epoch 26/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11776.1191 - val_loss: 9932.5312\n", - "Epoch 27/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11750.2500 - val_loss: 9909.8994\n", - "Epoch 28/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11724.4980 - val_loss: 9884.1885\n", - "Epoch 29/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11696.5947 - val_loss: 9855.7959\n", - "Epoch 30/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11666.3535 - val_loss: 9823.0244\n", - "Epoch 31/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11633.8408 - val_loss: 9791.6172\n", - "Epoch 32/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11598.4385 - val_loss: 9751.3975\n", - "Epoch 33/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11560.4717 - val_loss: 9710.9121\n", - "Epoch 34/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11522.8535 - val_loss: 9667.3672\n", - "Epoch 35/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11483.9209 - val_loss: 9624.2939\n", - "Epoch 36/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11441.3760 - val_loss: 9579.2900\n", - "Epoch 37/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11399.3076 - val_loss: 9536.9912\n", - "Epoch 38/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11353.9707 - val_loss: 9487.5205\n", - "Epoch 39/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11305.3447 - val_loss: 9440.2031\n", - "Epoch 40/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11254.4922 - val_loss: 9388.3291\n", - "Epoch 41/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11204.7783 - val_loss: 9337.3271\n", - "Epoch 42/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11153.3877 - val_loss: 9286.1865\n", - "Epoch 43/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11096.4307 - val_loss: 9225.2256\n", - "Epoch 44/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 11037.5020 - val_loss: 9165.0273\n", - "Epoch 45/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 10974.1270 - val_loss: 9100.3037\n", - "Epoch 46/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 10907.4863 - val_loss: 9035.9707\n", - "Epoch 47/230\n", - "27/27 [==============================] - 0s 4ms/step - loss: 10842.7881 - val_loss: 8970.3340\n", - "Epoch 48/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 10779.9277 - val_loss: 8911.4756\n", - "Epoch 49/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 10709.1582 - val_loss: 8844.0977\n", - "Epoch 50/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 10640.1543 - val_loss: 8779.2520\n", - "Epoch 51/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 10569.2578 - val_loss: 8714.2061\n", - "Epoch 52/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 10489.6025 - val_loss: 8631.1279\n", - "Epoch 53/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 10415.3633 - val_loss: 8558.1143\n", - "Epoch 54/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 10332.7100 - val_loss: 8468.8799\n", - "Epoch 55/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 10254.8125 - val_loss: 8401.1934\n", - "Epoch 56/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 10175.6240 - val_loss: 8316.4170\n", - "Epoch 57/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 10084.0391 - val_loss: 8228.1357\n", - "Epoch 58/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 9992.3311 - val_loss: 8129.7876\n", - "Epoch 59/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 9905.4053 - val_loss: 8049.1753\n", - "Epoch 60/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 9812.2803 - val_loss: 7945.5034\n", - "Epoch 61/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 9714.7422 - val_loss: 7843.7041\n", - "Epoch 62/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 9616.9336 - val_loss: 7750.0752\n", - "Epoch 63/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 9521.8418 - val_loss: 7647.5156\n", - "Epoch 64/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 9422.1240 - val_loss: 7540.8838\n", - "Epoch 65/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 9322.2021 - val_loss: 7429.0513\n", - "Epoch 66/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 9212.8252 - val_loss: 7319.2876\n", - "Epoch 67/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 9112.4902 - val_loss: 7203.9868\n", - "Epoch 68/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 9000.6992 - val_loss: 7069.3931\n", - "Epoch 69/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 8893.8633 - val_loss: 6964.7910\n", - "Epoch 70/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 8788.3311 - val_loss: 6845.3848\n", - "Epoch 71/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 8677.3789 - val_loss: 6724.9717\n", - "Epoch 72/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 8568.1738 - val_loss: 6613.6626\n", - "Epoch 73/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 8456.5391 - val_loss: 6484.6528\n", - "Epoch 74/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 8348.6631 - val_loss: 6375.3760\n", - "Epoch 75/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 8233.2715 - val_loss: 6239.6729\n", - "Epoch 76/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 8117.5020 - val_loss: 6105.7505\n", - "Epoch 77/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 7995.1782 - val_loss: 5965.9219\n", - "Epoch 78/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 7871.2524 - val_loss: 5835.1777\n", - "Epoch 79/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 7749.0845 - val_loss: 5695.1338\n", - "Epoch 80/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 7627.6133 - val_loss: 5567.3472\n", - "Epoch 81/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 7509.9033 - val_loss: 5434.1528\n", - "Epoch 82/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 7392.1392 - val_loss: 5306.0415\n", - "Epoch 83/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 7272.6484 - val_loss: 5182.9590\n", - "Epoch 84/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 7153.9922 - val_loss: 5039.8638\n", - "Epoch 85/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 7030.5449 - val_loss: 4925.7793\n", - "Epoch 86/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 6920.6982 - val_loss: 4795.2935\n", - "Epoch 87/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 6797.4966 - val_loss: 4652.2476\n", - "Epoch 88/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 6676.5020 - val_loss: 4528.8423\n", - "Epoch 89/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 6557.6738 - val_loss: 4403.6050\n", - "Epoch 90/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 6439.2964 - val_loss: 4274.5117\n", - "Epoch 91/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 6319.6982 - val_loss: 4147.8398\n", - "Epoch 92/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 6201.4868 - val_loss: 4014.9348\n", - "Epoch 93/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 6078.1499 - val_loss: 3884.9456\n", - "Epoch 94/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 5953.7559 - val_loss: 3743.2332\n", - "Epoch 95/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 5832.7695 - val_loss: 3625.2051\n", - "Epoch 96/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 5712.9097 - val_loss: 3500.3970\n", - "Epoch 97/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 5593.7607 - val_loss: 3367.4067\n", - "Epoch 98/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 5473.3599 - val_loss: 3249.7891\n", - "Epoch 99/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 5360.8032 - val_loss: 3130.7329\n", - "Epoch 100/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 5255.9961 - val_loss: 3021.1904\n", - "Epoch 101/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 5141.2266 - val_loss: 2905.5413\n", - "Epoch 102/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 5030.2178 - val_loss: 2805.1426\n", - "Epoch 103/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 4931.2417 - val_loss: 2702.3801\n", - "Epoch 104/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 4816.6172 - val_loss: 2584.0815\n", - "Epoch 105/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 4705.7778 - val_loss: 2466.2097\n", - "Epoch 106/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 4597.6187 - val_loss: 2386.0603\n", - "Epoch 107/230\n", - "27/27 [==============================] - 0s 5ms/step - loss: 4494.7734 - val_loss: 2284.9753\n", - "Epoch 108/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 4392.0679 - val_loss: 2175.9844\n", - "Epoch 109/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 4287.3970 - val_loss: 2085.4385\n", - "Epoch 110/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 4181.3682 - val_loss: 1978.1014\n", - "Epoch 111/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 4065.7773 - val_loss: 1888.7139\n", - "Epoch 112/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 3966.3765 - val_loss: 1817.0557\n", - "Epoch 113/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 3868.9700 - val_loss: 1733.0188\n", - "Epoch 114/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 3767.9058 - val_loss: 1657.8013\n", - "Epoch 115/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 3667.7090 - val_loss: 1577.6398\n", - "Epoch 116/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 3576.7300 - val_loss: 1492.2061\n", - "Epoch 117/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 3483.4834 - val_loss: 1422.7661\n", - "Epoch 118/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 3371.6440 - val_loss: 1345.2626\n", - "Epoch 119/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 3276.7490 - val_loss: 1269.0166\n", - "Epoch 120/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 3186.4307 - val_loss: 1195.5717\n", - "Epoch 121/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 3103.7952 - val_loss: 1136.5585\n", - "Epoch 122/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 3019.9116 - val_loss: 1080.0763\n", - "Epoch 123/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 2936.9600 - val_loss: 1024.5452\n", - "Epoch 124/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 2848.6543 - val_loss: 967.8972\n", - "Epoch 125/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 2759.4729 - val_loss: 908.9399\n", - "Epoch 126/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 2682.3201 - val_loss: 855.4163\n", - "Epoch 127/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 2602.8093 - val_loss: 806.7042\n", - "Epoch 128/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 2522.2300 - val_loss: 758.4872\n", - "Epoch 129/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 2446.2961 - val_loss: 715.9938\n", - "Epoch 130/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 2377.7810 - val_loss: 678.4742\n", - "Epoch 131/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 2306.4805 - val_loss: 634.7168\n", - "Epoch 132/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 2232.3655 - val_loss: 595.1262\n", - "Epoch 133/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 2162.7793 - val_loss: 561.4512\n", - "Epoch 134/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 2087.2634 - val_loss: 525.2331\n", - "Epoch 135/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 2027.5275 - val_loss: 495.4591\n", - "Epoch 136/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 1965.9813 - val_loss: 468.4331\n", - "Epoch 137/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 1903.6448 - val_loss: 442.2308\n", - "Epoch 138/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 1840.4558 - val_loss: 419.4660\n", - "Epoch 139/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 1780.3182 - val_loss: 395.3222\n", - "Epoch 140/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 1726.3489 - val_loss: 373.6279\n", - "Epoch 141/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 1667.2789 - val_loss: 353.0072\n", - "Epoch 142/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 1608.7032 - val_loss: 335.4416\n", - "Epoch 143/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 1553.3606 - val_loss: 317.1785\n", - "Epoch 144/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 1502.1145 - val_loss: 301.1630\n", - "Epoch 145/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 1452.7948 - val_loss: 287.4691\n", - "Epoch 146/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 1399.9838 - val_loss: 274.4448\n", - "Epoch 147/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 1350.2396 - val_loss: 262.4208\n", - "Epoch 148/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 1302.4214 - val_loss: 251.3363\n", - "Epoch 149/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 1255.2947 - val_loss: 240.0806\n", - "Epoch 150/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 1208.4150 - val_loss: 232.4185\n", - "Epoch 151/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 1164.2562 - val_loss: 225.5964\n", - "Epoch 152/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 1121.3905 - val_loss: 218.5930\n", - "Epoch 153/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 1084.7579 - val_loss: 212.4528\n", - "Epoch 154/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 1044.8298 - val_loss: 208.1859\n", - "Epoch 155/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 1010.6803 - val_loss: 203.8069\n", - "Epoch 156/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 977.3309 - val_loss: 198.4168\n", - "Epoch 157/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 940.1173 - val_loss: 194.7413\n", - "Epoch 158/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 904.9243 - val_loss: 193.1038\n", - "Epoch 159/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 874.6812 - val_loss: 190.5175\n", - "Epoch 160/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 848.2643 - val_loss: 190.3199\n", - "Epoch 161/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 821.2538 - val_loss: 187.8828\n", - "Epoch 162/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 794.3558 - val_loss: 186.2382\n", - "Epoch 163/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 767.7045 - val_loss: 187.4863\n", - "Epoch 164/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 740.7269 - val_loss: 187.2383\n", - "Epoch 165/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 714.8248 - val_loss: 188.9285\n", - "Epoch 166/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 691.7661 - val_loss: 189.5347\n", - "Epoch 167/230\n", - "27/27 [==============================] - 0s 4ms/step - loss: 666.0239 - val_loss: 189.1279\n", - "Epoch 168/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 643.5890 - val_loss: 190.6196\n", - "Epoch 169/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 623.2014 - val_loss: 193.6658\n", - "Epoch 170/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 602.5149 - val_loss: 192.7368\n", - "Epoch 171/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 584.4434 - val_loss: 192.1510\n", - "Epoch 172/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 566.3003 - val_loss: 194.2075\n", - "Epoch 173/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 548.4911 - val_loss: 196.4097\n", - "Epoch 174/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 529.6823 - val_loss: 197.6588\n", - "Epoch 175/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 511.5667 - val_loss: 199.9702\n", - "Epoch 176/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 495.8926 - val_loss: 199.7701\n", - "Epoch 177/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 479.0361 - val_loss: 203.8461\n", - "Epoch 178/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 464.5481 - val_loss: 206.1897\n", - "Epoch 179/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 452.3015 - val_loss: 207.7291\n", - "Epoch 180/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 438.9663 - val_loss: 212.0649\n", - "Epoch 181/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 424.1348 - val_loss: 214.5356\n", - "Epoch 182/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 411.8778 - val_loss: 216.3279\n", - "Epoch 183/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 399.4817 - val_loss: 216.3186\n", - "Epoch 184/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 388.3781 - val_loss: 218.0007\n", - "Epoch 185/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 376.0885 - val_loss: 217.8670\n", - "Epoch 186/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 364.4879 - val_loss: 220.0281\n", - "Epoch 187/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 352.7753 - val_loss: 224.3534\n", - "Epoch 188/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 344.5522 - val_loss: 224.2535\n", - "Epoch 189/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 333.8235 - val_loss: 224.6835\n", - "Epoch 190/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 323.7860 - val_loss: 227.3225\n", - "Epoch 191/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 314.8434 - val_loss: 224.6176\n", - "Epoch 192/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 306.3253 - val_loss: 228.2700\n", - "Epoch 193/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 297.3029 - val_loss: 233.6447\n", - "Epoch 194/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 289.8553 - val_loss: 230.6904\n", - "Epoch 195/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 282.6923 - val_loss: 232.1273\n", - "Epoch 196/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 275.2116 - val_loss: 231.4316\n", - "Epoch 197/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 269.4836 - val_loss: 231.0308\n", - "Epoch 198/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 261.0052 - val_loss: 226.4398\n", - "Epoch 199/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 254.0861 - val_loss: 225.9057\n", - "Epoch 200/230\n", - "27/27 [==============================] - 0s 4ms/step - loss: 248.2079 - val_loss: 226.9341\n", - "Epoch 201/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 240.9648 - val_loss: 229.3855\n", - "Epoch 202/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 237.2469 - val_loss: 225.1341\n", - "Epoch 203/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 231.4045 - val_loss: 225.1857\n", - "Epoch 204/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 225.7138 - val_loss: 222.8763\n", - "Epoch 205/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 220.3503 - val_loss: 221.2651\n", - "Epoch 206/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 215.7320 - val_loss: 220.2312\n", - "Epoch 207/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 210.6108 - val_loss: 223.8336\n", - "Epoch 208/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 206.3768 - val_loss: 221.6653\n", - "Epoch 209/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 203.6414 - val_loss: 219.9349\n", - "Epoch 210/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 197.6982 - val_loss: 227.7490\n", - "Epoch 211/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 195.5823 - val_loss: 226.9884\n", - "Epoch 212/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 191.4630 - val_loss: 223.3450\n", - "Epoch 213/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 188.2119 - val_loss: 223.8042\n", - "Epoch 214/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 185.2220 - val_loss: 223.6329\n", - "Epoch 215/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 180.9632 - val_loss: 221.7261\n", - "Epoch 216/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 178.5197 - val_loss: 221.3366\n", - "Epoch 217/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 176.3694 - val_loss: 226.5233\n", - "Epoch 218/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 173.1855 - val_loss: 222.3168\n", - "Epoch 219/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 170.0605 - val_loss: 221.8981\n", - "Epoch 220/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 168.7097 - val_loss: 222.1761\n", - "Epoch 221/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 166.9946 - val_loss: 220.2658\n", - "Epoch 222/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 166.0260 - val_loss: 217.8652\n", - "Epoch 223/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 163.1823 - val_loss: 222.5577\n", - "Epoch 224/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 162.6364 - val_loss: 222.4031\n", - "Epoch 225/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 161.1220 - val_loss: 223.4985\n", - "Epoch 226/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 159.3622 - val_loss: 221.5541\n", - "Epoch 227/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 157.5099 - val_loss: 219.1863\n", - "Epoch 228/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 156.6078 - val_loss: 224.4047\n", - "Epoch 229/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 154.9963 - val_loss: 226.5534\n", - "Epoch 230/230\n", - "27/27 [==============================] - 0s 3ms/step - loss: 153.4673 - val_loss: 227.1058\n" - ] - } - ] - }, - { - "cell_type": "markdown", - "source": [ - "\n", - "## Plot Loss\n", - "\n", - "Using matplotlib visualise how the loss (both validation and training) is changing, use this information to retrain the model with appropriate parameters.
We ideally want the loss to be constant over the last few iterations." - ], - "metadata": { - "id": "jmeP6vt3z0oA" - } - }, - { - "cell_type": "code", - "source": [ - "plt.plot(history.history['loss'])\n", - "plt.plot(history.history['val_loss'])\n", - "plt.ylabel('loss')\n", - "plt.xlabel('epoch')\n", - "plt.legend(['test','train'])\n", - "plt.show()" - ], - "metadata": { - "id": "RQTNqPHm0mOi", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 279 - }, - "outputId": "428fca06-a17f-4d27-842a-dbb55de86b0a" - }, - "execution_count": 20, - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ], - "image/png": "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\n" - }, - "metadata": { - "needs_background": "light" - } - } - ] - }, - { - "cell_type": "markdown", - "source": [ - "## Evaluation Metrics\n", - "Use the R2 Score function implemented in the first assignment to evaluate the performance of the model." - ], - "metadata": { - "id": "IVrR_vXA7kOt" - } - }, - { - "cell_type": "code", - "source": [ - "import numpy as np\n", - "from sklearn.metrics import r2_score\n", - "predictions=model.predict(X_test)\n", - "print(predictions)\n", - "accu = r2_score(y_test,predictions)\n", - "print(\"Accuracy:\", accu)\n", - "print(y_test)" - ], - "metadata": { - "id": "-lOHpD8-7ggm", - "colab": { - "base_uri": "https://localhost:8080/" - }, - "outputId": "7e370409-f8c1-4c2a-d712-487391e2f92d" - }, - "execution_count": 21, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "[[ 162.55573 ]\n", - " [-136.7924 ]\n", - " [ 63.621853]\n", - " [-133.9853 ]\n", - " [ -5.162861]\n", - " [ -82.54508 ]\n", - " [ 55.08005 ]\n", - " [ 26.509747]\n", - " [-145.45982 ]\n", - " [ 143.55104 ]\n", - " [ 88.4598 ]\n", - " [ 144.31512 ]\n", - " [ 39.32738 ]\n", - " [ 118.73373 ]\n", - " [ 74.694374]\n", - " [ 95.09522 ]\n", - " [ 187.8099 ]\n", - " [ 81.306854]\n", - " [ 119.22342 ]\n", - " [ -68.46275 ]]\n", - "Accuracy: 0.9580973911703754\n", - "[ 215.47124758 -131.1390209 79.87403933 -140.76311462 -7.91882959\n", - " -59.29081497 34.92501227 24.22069865 -139.33799971 153.57904985\n", - " 68.95790292 130.17425384 29.65951354 80.53740813 57.63151087\n", - " 80.93091525 198.17702362 59.77779093 86.26391892 -66.93162171]\n" - ] - } - ] - }, - { - "cell_type": "markdown", - "source": [ - "## Your own custom model\n", - "Build a custom model of your own choice.
\n", - "Describe it in detail in Markdown/Latex in the cell below.
\n", - "Visualise the loss, as before." - ], - "metadata": { - "id": "CHqzF1OU0pBg" - } - }, - { - "cell_type": "markdown", - "source": [ - "## Generate dateset" - ], - "metadata": { - "id": "jF8oTUqq0y0g" - } - }, - { - "cell_type": "code", - "source": [ - "X, y = datasets.make_regression(n_samples=10000, n_features=5, noise=5, random_state=4)\n", - "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1234)" - ], - "metadata": { - "id": "1XOk5hJu0oSQ" - }, - "execution_count": 25, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Creating model\n", - "\n", - "1. Model has 6 hidden layers of dense 50 each\n", - "2. Adam optimizer is used and mse is used as a loss function\n", - "\n" - ], - "metadata": { - "id": "wZ9p7a_mzHrg" - } - }, - { - "cell_type": "code", - "source": [ - "import tensorflow as tf\n", - "from tensorflow import keras\n", - "model = keras.Sequential([keras.Input(5),\n", - " keras.layers.Dense(50, activation='relu'),keras.layers.Dense(50, activation='relu'),\n", - " keras.layers.Dense(50, activation='relu'),keras.layers.Dense(50, activation='relu'),\n", - " keras.layers.Dense(50, activation='relu'),keras.layers.Dense(50, activation='relu'),\n", - " keras.layers.Dense(1)])\n", - "opt = keras.optimizers.Adam(learning_rate=0.05)\n", - "model.compile(loss='mse')\n", - "history=model.fit(X_train,y_train,validation_split=0.1,epochs=5,batch_size=2)" - ], - "metadata": { - "id": "aS0ROZa402Lo", - "colab": { - "base_uri": "https://localhost:8080/" - }, - "outputId": "23d92f0a-f38d-4dc2-b9eb-86ce31bf3dfc" - }, - "execution_count": 26, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Epoch 1/5\n", - "3600/3600 [==============================] - 7s 2ms/step - loss: 542.7628 - val_loss: 105.0305\n", - "Epoch 2/5\n", - "3600/3600 [==============================] - 6s 2ms/step - loss: 61.0482 - val_loss: 198.6302\n", - "Epoch 3/5\n", - "3600/3600 [==============================] - 6s 2ms/step - loss: 56.2035 - val_loss: 91.9054\n", - "Epoch 4/5\n", - "3600/3600 [==============================] - 6s 2ms/step - loss: 54.8107 - val_loss: 34.0061\n", - "Epoch 5/5\n", - "3600/3600 [==============================] - 6s 2ms/step - loss: 53.1269 - val_loss: 29.8570\n" - ] - } - ] - }, - { - "cell_type": "markdown", - "source": [ - "## Visulazing the data" - ], - "metadata": { - "id": "hiHTd1KqzqJ1" - } - }, - { - "cell_type": "code", - "source": [ - "plt.plot(history.history['val_loss'])\n", - "plt.plot(history.history['loss'])\n", - "plt.ylabel('loss')\n", - "plt.xlabel('epoch')\n", - "plt.legend(['test','train'])\n", - "plt.show()" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 279 - }, - "id": "ZQPp4bDivsoj", - "outputId": "03277a23-016f-4c61-d7ad-6f9d1d192b39" - }, - "execution_count": 27, - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ], - "image/png": "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\n" - }, - "metadata": { - "needs_background": "light" - } - } - ] - }, - { - "cell_type": "markdown", - "source": [ - "## r2_score" - ], - "metadata": { - "id": "3mQ_wSfKz2mN" - } - }, - { - "cell_type": "code", - "source": [ - "import numpy as np\n", - "from sklearn.metrics import r2_score\n", - "predictions=model.predict(X_test)\n", - "print(predictions)\n", - "accu = r2_score(y_test,predictions)\n", - "print(\"Accuracy:\", accu)\n", - "print(y_test)" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "2orj6qHdwf91", - "outputId": "4db00207-96a2-40c9-e0cf-9874cebbc328" - }, - "execution_count": 28, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "WARNING:tensorflow:5 out of the last 67 calls to .predict_function at 0x7f0a565bf050> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has experimental_relax_shapes=True option that relaxes argument shapes that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", - "[[-99.74131 ]\n", - " [ 62.160343]\n", - " [ 72.060646]\n", - " ...\n", - " [ 14.229921]\n", - " [-52.456608]\n", - " [-85.36296 ]]\n", - "Accuracy: 0.9978419666368175\n", - "[-91.72292135 52.55742745 72.44587524 ... 7.18010497 -59.23469434\n", - " -82.08750428]\n" - ] - } - ] - }, - { - "cell_type": "code", - "source": [ - "" - ], - "metadata": { - "id": "HjZZ1XZow4cc" - }, - "execution_count": null, - "outputs": [] - } - ] -} \ No newline at end of file From 592df1ed4db9f7de2995d4bab200a752c650e3ca Mon Sep 17 00:00:00 2001 From: UsernameStillUnavailable <88334804+UsernameStillUnavailable@users.noreply.github.com> Date: Fri, 24 Jun 2022 09:57:20 +0530 Subject: [PATCH 07/11] 200064 --- Assignment 3/A3_200064.ipynb | 420 +++++++++++++++++++++++++++++++++++ 1 file changed, 420 insertions(+) create mode 100644 Assignment 3/A3_200064.ipynb diff --git a/Assignment 3/A3_200064.ipynb b/Assignment 3/A3_200064.ipynb new file mode 100644 index 0000000..d7224f3 --- /dev/null +++ b/Assignment 3/A3_200064.ipynb @@ -0,0 +1,420 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Copy of CV_with_TF-Assignment-3.ipynb", + "provenance": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + }, + "accelerator": "GPU", + "gpuClass": "standard" + }, + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Assignment 3\n", + "\n", + " In this Assignment, we will use CNN to classify digits. \n", + "The `MNIST` database is a large database of handwritten digits that is commonly used for training various image processing systems.\n", + "\n" + ], + "metadata": { + "id": "VGHh_5UYzKpV" + } + }, + { + "cell_type": "markdown", + "source": [ + "## Importing TensorFlow" + ], + "metadata": { + "id": "JnsMbCPNzPAr" + } + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "id": "HRLTw3cMwvi7" + }, + "outputs": [], + "source": [ + "import tensorflow as tf" + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Get the dataset" + ], + "metadata": { + "id": "6Ji7HGpgzSPi" + } + }, + { + "cell_type": "code", + "source": [ + "# Import the dataset\n", + "\n", + "(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()" + ], + "metadata": { + "id": "oEW3KDEvzIHL", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "36d1d02c-02d5-47f7-acfd-3cd33df7914b" + }, + "execution_count": 4, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\n", + "11493376/11490434 [==============================] - 0s 0us/step\n", + "11501568/11490434 [==============================] - 0s 0us/step\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Split the dataset\n", + "\n", + "from sklearn.model_selection import train_test_split\n", + "X_train,X_test,Y_train,Y_test=train_test_split(x_test,y_test,test_size=0.2)" + ], + "metadata": { + "id": "F_sRU9dx_mYQ" + }, + "execution_count": 5, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Pre processing \n", + "print(X_train.shape)\n", + "print(Y_train.shape)\n", + "print(X_test.shape)\n", + "print(Y_test.shape)" + ], + "metadata": { + "id": "rbt0WbW6sDVs", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "bdb9ceaa-3ae2-4d49-9d24-59fa44c7e229" + }, + "execution_count": 6, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "(8000, 28, 28)\n", + "(8000,)\n", + "(2000, 28, 28)\n", + "(2000,)\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Visualize the dataset\n", + "Print some images with labels." + ], + "metadata": { + "id": "EVpQheoVqoEG" + } + }, + { + "cell_type": "code", + "source": [ + "import matplotlib.pyplot as plt\n", + "num_classes =5\n", + "f, ax = plt.subplots(1, num_classes, figsize=(20,20))\n", + "\n", + "for i in range(0, num_classes):\n", + " ax[i].imshow(X_train[i])\n", + " ax[i].set_title(Y_train[i], fontsize=16)\n" + ], + "metadata": { + "id": "yF1Nj63Bz9m7", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 258 + }, + "outputId": "c5789e5d-ea72-4f5a-c31e-bda8480caed1" + }, + "execution_count": 20, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "Plot statistics of the training and testing dataset \n", + "(`x axis`: digits, `y axis`: number of samples corresponding to the digits)" + ], + "metadata": { + "id": "Rx8muKSIrKhe" + } + }, + { + "cell_type": "code", + "source": [ + "import numpy as np\n", + "unique1, counts1 = np.unique(Y_train, return_counts=True)\n", + "unique2, counts2 = np.unique(Y_test, return_counts=True)\n", + "plt.bar(unique1,counts1,color='r',label='train')\n", + "plt.bar(unique2,counts2,color='g',label='test')\n", + "plt.legend()\n", + "plt.show()\n", + "# Your code" + ], + "metadata": { + "id": "37kehTG_6Pi4", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 265 + }, + "outputId": "7f2df0f1-0123-4000-da2e-debf90efc88c" + }, + "execution_count": 53, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD4CAYAAAAXUaZHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAQrElEQVR4nO3de4xfZZ3H8feXtjAdIG2d1sZ2cGeiBCEYaZ1g2RqDVmOLBjBRwrq4xLAZE6vWS5BivCzJ/lGj4dJkxTS0BhcQ2YIpkcYtQolulLptaZTSSkdEOi2XsUsrF6tUv/vHHGCAlrn9LjPP7/1KJnPOc57zO9/TmX76zDPn9zQyE0lSWY5rdgGSpNoz3CWpQIa7JBXIcJekAhnuklSgqc0uAGD27NnZ1dXV7DIkaVLZtm3bHzNzztGOTYhw7+rqYuvWrc0uQ5ImlYj4w7GOOS0jSQUy3CWpQIa7JBVoQsy5S9JYvPDCC/T393P48OFml1JXbW1tdHZ2Mm3atBGfY7hLmrT6+/s5+eST6erqIiKaXU5dZCYHDhygv7+f7u7uEZ/ntIykSevw4cN0dHQUG+wAEUFHR8eofzox3CVNaiUH+4vGco+GuyQVyHCXVI6I2n4M4+DBg3znO98ZdZnnnXceBw8eHMsdjpjhPh61/kYawzeXpOY5VrgfOXLkdc/buHEjM2fOrFdZgE/LSNKYrVy5kt/97necddZZTJs2jba2NmbNmsXu3bt5+OGHufDCC9m7dy+HDx9mxYoV9Pb2Ai8vufLss8+ybNky3v3ud/OLX/yC+fPns2HDBqZPnz7u2hy5S9IYrVq1ire85S3s2LGDb33rW2zfvp3rrruOhx9+GIB169axbds2tm7dyurVqzlw4MBrXmPPnj0sX76cnTt3MnPmTG6//faa1ObIXZJq5Oyzz37Fs+irV6/mRz/6EQB79+5lz549dHR0vOKc7u5uzjrrLADe+c538uijj9akFsNdkmrkxBNPfGn7vvvu46c//Sm//OUvaW9v59xzzz3qs+onnHDCS9tTpkzhz3/+c01qcVpGksbo5JNP5plnnjnqsUOHDjFr1iza29vZvXs3999/f0Nrc+QuqRyZDb1cR0cHixcv5swzz2T69OnMnTv3pWNLly7lu9/9LqeffjqnnXYaixYtamhtkQ3+wzianp6enJT/WUcjHlWcAF8faaLatWsXp59+erPLaIij3WtEbMvMnqP1d1pGkgpkuEtSgQx3SSqQ4S5JBTLcJalAhrskFcjn3CUVI66q7ePJ+Y3XfxT54MGD3HLLLXz6058e9Wtfe+219Pb20t7ePtbyXpcjd0kao7Gu5w6D4f7888/XuKKXOXKXpDEauuTvBz7wAd74xjdy22238Ze//IWPfOQjXHXVVTz33HNcdNFF9Pf387e//Y2vfe1rPPnkk+zfv5/3vve9zJ49m82bN9e8NsNdksZo1apVPPjgg+zYsYNNmzaxfv16fvWrX5GZnH/++fzsZz9jYGCAefPmcddddwGDa87MmDGDq6++ms2bNzN79uy61Oa0jCTVwKZNm9i0aRMLFixg4cKF7N69mz179vD2t7+du+++myuuuIKf//znzJgxoyH1OHKfrFzXRppQMpMrr7yST33qU685tn37djZu3MhXv/pVlixZwte//vW61+PIXZLGaOiSvx/84AdZt24dzz77LAD79u3jqaeeYv/+/bS3t3PJJZdw+eWXs3379tecWw+O3CUVY7hHF2tt6JK/y5Yt4+Mf/zjnnHMOACeddBI33XQTfX19XH755Rx33HFMmzaN66+/HoDe3l6WLl3KvHnz6vILVZf8HY9mTo04LSO55O94l/yNiC9ExM6IeDAifhARbRHRHRFbIqIvIn4YEcdXfU+o9vuq413jvCdJ0igNG+4RMR/4HNCTmWcCU4CLgW8C12TmW4GngcuqUy4Dnq7ar6n6SZIaaKS/UJ0KTI+IqUA78DjwPmB9dfxG4MJq+4Jqn+r4kohGzCGoYSLq/6GJZQJ/zSfC1HK9jeUehw33zNwHfBt4jMFQPwRsAw5m5pGqWz8wv9qeD+ytzj1S9e949etGRG9EbI2IrQMDA6MuXJLa2to4cOBA0QGfmRw4cIC2trZRnTfs0zIRMYvB0Xg3cBD4L2DpWIocKjPXAGtg8Beq4309Sa2ns7OT/v5+Sh8gtrW10dnZOapzRvIo5PuB32fmAEBE3AEsBmZGxNRqdN4J7Kv67wNOAfqraZwZwIFRVSVJIzBt2jS6u7ubXcaENJI598eARRHRXs2dLwEeAjYDH636XApsqLbvrPapjt+b9fyZaQLPBUqa5CZxvgw7cs/MLRGxHtgOHAEeYHA65S7g1oj496ptbXXKWuA/I6IP+D8Gn6yRaqfe/+AWPH+r1jGid6hm5jeAb7yq+RHg7KP0PQx8bPylSRK+YW+MXFtGkgrk2jLSZOF0lEbBkbskFchwl6QCGe6SVCDDXZIKZLhLUoEMd0kqkOEuSQUy3CWpQIa7JBXId6hKo+G7RDVJOHKXpAIZ7pJUIMNdkgpkuEtSgQx3SSqQ4S5JBTLcJalAhrskFchwl6QCGe6SVCDDXZIKZLhLUoEMd0kqkOEuSQUy3CWpQIa7JBXIcJekAhnuklQgw12SCmS4S1KBDHdJKpDhLkkFMtwlqUCGuyQVaEThHhEzI2J9ROyOiF0RcU5EvCEi7o6IPdXnWVXfiIjVEdEXEb+OiIX1vQVJ0quNdOR+HfCTzHwb8A5gF7ASuCczTwXuqfYBlgGnVh+9wPU1rViSNKxhwz0iZgDvAdYCZOZfM/MgcAFwY9XtRuDCavsC4Ps56H5gZkS8qeaVS5KOaSQj925gAPheRDwQETdExInA3Mx8vOrzBDC32p4P7B1yfn/V9goR0RsRWyNi68DAwNjvQJL0GiMJ96nAQuD6zFwAPMfLUzAAZGYCOZoLZ+aazOzJzJ45c+aM5lRJ0jBGEu79QH9mbqn21zMY9k++ON1SfX6qOr4POGXI+Z1VmySpQYYN98x8AtgbEadVTUuAh4A7gUurtkuBDdX2ncC/VE/NLAIODZm+kSQ1wNQR9vsscHNEHA88AnySwX8YbouIy4A/ABdVfTcC5wF9wPNVX0lSA40o3DNzB9BzlENLjtI3geXjrEuSNA6+Q1WSCmS4S1KBDHdJKpDhLkkFMtwlqUCGuyQVyHCXpAIZ7pJUIMNdkgpkuEtSgQx3SSqQ4S5JBTLcJalAhrskFchwl6QCGe6SVCDDXZIKZLhLUoEMd0kqkOEuSQUy3CWpQIa7JBXIcJekAhnuklQgw12SCmS4S1KBDHdJKpDhLkkFMtwlqUCGuyQVyHCXpAIZ7pJUIMNdkgpkuEtSgQx3SSqQ4S5JBRpxuEfElIh4ICJ+XO13R8SWiOiLiB9GxPFV+wnVfl91vKs+pUuSjmU0I/cVwK4h+98ErsnMtwJPA5dV7ZcBT1ft11T9JEkNNKJwj4hO4EPADdV+AO8D1lddbgQurLYvqPapji+p+kuSGmSkI/drgS8Df6/2O4CDmXmk2u8H5lfb84G9ANXxQ1V/SVKDDBvuEfFh4KnM3FbLC0dEb0RsjYitAwMDtXxpSWp5Ixm5LwbOj4hHgVsZnI65DpgZEVOrPp3Avmp7H3AKQHV8BnDg1S+amWsysycze+bMmTOum5AkvdKw4Z6ZV2ZmZ2Z2ARcD92bmPwObgY9W3S4FNlTbd1b7VMfvzcysadWSpNc1nufcrwC+GBF9DM6pr63a1wIdVfsXgZXjK1GSNFpTh+/yssy8D7iv2n4EOPsofQ4DH6tBbZKkMfIdqpJUIMNdkgpkuEtSgQx3SSqQ4S5JBTLcJalAhrskFchwl6QCGe6SVCDDXZIKZLhLUoEMd0kqkOEuSQUy3CWpQIa7JBXIcJekAhnuklQgw12SCmS4S1KBDHdJKpDhLkkFMtwlqUCGuyQVyHCXpAIZ7pJUIMNdkgpkuEtSgQx3SSqQ4S5JBTLcJalAhrskFchwl6QCGe6SVCDDXZIKZLhLUoGmNrsASRNf/Fv9r5H1v8SoTeb7NtzHYTJ/4SWVbdhpmYg4JSI2R8RDEbEzIlZU7W+IiLsjYk/1eVbVHhGxOiL6IuLXEbGw3jchSXqlkcy5HwG+lJlnAIuA5RFxBrASuCczTwXuqfYBlgGnVh+9wPU1r1qS9LqGnZbJzMeBx6vtZyJiFzAfuAA4t+p2I3AfcEXV/v3MTOD+iJgZEW+qXkcFcDpKmvhGNeceEV3AAmALMHdIYD8BzK225wN7h5zWX7W9ItwjopfBkT1vfvObR1m2Wjlg633vE/W+pdEYcbhHxEnA7cDnM/NPEfHSsczMiBjV34nMXAOsAejp6fHvk6SjauWBzHiMKNwjYhqDwX5zZt5RNT/54nRLRLwJeKpq3wecMuT0zqqtLvzCS9JrDRvuMThEXwvsysyrhxy6E7gUWFV93jCk/TMRcSvwLuCQ8+3S+DkdpdEYych9MfAJ4DcRsaNq+wqDoX5bRFwG/AG4qDq2ETgP6AOeBz5Z04olScMaydMy/wPEMQ4vOUr/BJaPsy5J0ji4towkFcjlB6RRcN5bk4Ujd0kqkOEuSQUy3CWpQIa7JBXIcJekAhnuklQgw12SCmS4S1KBDHdJKpDhLkkFMtwlqUCGuyQVyHCXpAIZ7pJUIMNdkgpkuEtSgQx3SSqQ4S5JBTLcJalAhrskFchwl6QCGe6SVCDDXZIKZLhLUoEMd0kqkOEuSQUy3CWpQIa7JBXIcJekAhnuklQgw12SCmS4S1KBDHdJKpDhLkkFqku4R8TSiPhtRPRFxMp6XEOSdGw1D/eImAL8B7AMOAP4p4g4o9bXkSQdWz1G7mcDfZn5SGb+FbgVuKAO15EkHUNkZm1fMOKjwNLM/Ndq/xPAuzLzM6/q1wv0VrunAb+taSGvbzbwxwZeb6LwvluL912+f8jMOUc7MLXRlbwoM9cAa5px7YjYmpk9zbh2M3nfrcX7bm31mJbZB5wyZL+zapMkNUg9wv1/gVMjojsijgcuBu6sw3UkScdQ82mZzDwSEZ8B/huYAqzLzJ21vs44NWU6aALwvluL993Cav4LVUlS8/kOVUkqkOEuSQVqqXBvxWURIuKUiNgcEQ9FxM6IWNHsmhopIqZExAMR8eNm19JIETEzItZHxO6I2BUR5zS7pkaIiC9U3+cPRsQPIqKt2TU1S8uEewsvi3AE+FJmngEsApa3yH2/aAWwq9lFNMF1wE8y823AO2iBP4OImA98DujJzDMZfKDj4uZW1TwtE+606LIImfl4Zm6vtp9h8C/5/OZW1RgR0Ql8CLih2bU0UkTMAN4DrAXIzL9m5sHmVtUwU4HpETEVaAf2N7mepmmlcJ8P7B2y30+LhNyLIqILWABsaW4lDXMt8GXg780upMG6gQHge9WU1A0RcWKzi6q3zNwHfBt4DHgcOJSZm5pbVfO0Uri3tIg4Cbgd+Hxm/qnZ9dRbRHwYeCoztzW7liaYCiwErs/MBcBzQPG/Y4qIWQz+NN4NzANOjIhLmltV87RSuLfssggRMY3BYL85M+9odj0Nshg4PyIeZXAK7n0RcVNzS2qYfqA/M1/8CW09g2FfuvcDv8/Mgcx8AbgD+Mcm19Q0rRTuLbksQkQEg3OvuzLz6mbX0yiZeWVmdmZmF4Nf63szsyVGcZn5BLA3Ik6rmpYADzWxpEZ5DFgUEe3V9/0SWuAXycfStFUhG22SLItQD4uBTwC/iYgdVdtXMnNjE2tS/X0WuLkayDwCfLLJ9dRdZm6JiPXAdgafEnuAFl6KwOUHJKlArTQtI0ktw3CXpAIZ7pJUIMNdkgpkuEtSgQx3SSqQ4S5JBfp/tZppdqJ08K4AAAAASUVORK5CYII=\n" + }, + "metadata": { + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Model" + ], + "metadata": { + "id": "kWlpCWdAr8d3" + } + }, + { + "cell_type": "code", + "source": [ + "# model building\n", + "import keras\n", + "from keras.models import Sequential\n", + "from keras import layers\n", + "model = keras.models.Sequential()\n", + "model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))\n", + "model.add(layers.Conv2D(64, (3, 3), activation='relu', input_shape=(28, 28, 1)))\n", + "model.add(layers.MaxPooling2D((2, 2)))\n", + "model.add(layers.Conv2D(128, (3, 3), activation='relu'))\n", + "model.add(layers.MaxPooling2D((2, 2)))\n", + "model.add(layers.Conv2D(256, (3, 3), activation='relu'))\n", + "model.add(layers.Flatten())\n", + "model.add(layers.Dense(256, activation='relu'))\n", + "model.add(layers.Dense(10,activation='softmax'))\n", + "model.summary()\n", + "# You are supposed to look at some CNN architectures and add convolutional layers along with MaxPooling, specifying the kernel size, pooling size, activation \n" + ], + "metadata": { + "id": "1L07EyQ0Yion", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "9c32f095-4b7c-4e39-a686-3bd387467e31" + }, + "execution_count": 9, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Model: \"sequential_1\"\n", + "_________________________________________________________________\n", + " Layer (type) Output Shape Param # \n", + "=================================================================\n", + " conv2d_4 (Conv2D) (None, 26, 26, 32) 320 \n", + " \n", + " conv2d_5 (Conv2D) (None, 24, 24, 64) 18496 \n", + " \n", + " max_pooling2d_2 (MaxPooling (None, 12, 12, 64) 0 \n", + " 2D) \n", + " \n", + " conv2d_6 (Conv2D) (None, 10, 10, 128) 73856 \n", + " \n", + " max_pooling2d_3 (MaxPooling (None, 5, 5, 128) 0 \n", + " 2D) \n", + " \n", + " conv2d_7 (Conv2D) (None, 3, 3, 256) 295168 \n", + " \n", + " flatten_1 (Flatten) (None, 2304) 0 \n", + " \n", + " dense_2 (Dense) (None, 256) 590080 \n", + " \n", + " dense_3 (Dense) (None, 10) 2570 \n", + " \n", + "=================================================================\n", + "Total params: 980,490\n", + "Trainable params: 980,490\n", + "Non-trainable params: 0\n", + "_________________________________________________________________\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Compile the model (add optimizers and metrics)\n", + "model.compile(optimizer='adam',\n", + " loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),\n", + " metrics=['accuracy'])\n", + "\n", + "history = model.fit(X_train, Y_train, epochs=10, \n", + " validation_split=0.33)\n", + "\n", + "# Fit the model on the training data (specify validation_split, read about validation if new to you)\n" + ], + "metadata": { + "id": "nKEZ8cbO9JVV", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "8d30e235-add0-4cb6-c6e6-7f4e953f645a" + }, + "execution_count": 11, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Epoch 1/10\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "/usr/local/lib/python3.7/dist-packages/tensorflow/python/util/dispatch.py:1082: UserWarning: \"`sparse_categorical_crossentropy` received `from_logits=True`, but the `output` argument was produced by a sigmoid or softmax activation and thus does not represent logits. Was this intended?\"\n", + " return dispatch_target(*args, **kwargs)\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "168/168 [==============================] - 13s 8ms/step - loss: 1.8936 - accuracy: 0.8343 - val_loss: 0.1195 - val_accuracy: 0.9655\n", + "Epoch 2/10\n", + "168/168 [==============================] - 1s 6ms/step - loss: 0.0951 - accuracy: 0.9687 - val_loss: 0.1059 - val_accuracy: 0.9693\n", + "Epoch 3/10\n", + "168/168 [==============================] - 1s 6ms/step - loss: 0.0463 - accuracy: 0.9845 - val_loss: 0.1076 - val_accuracy: 0.9705\n", + "Epoch 4/10\n", + "168/168 [==============================] - 1s 6ms/step - loss: 0.0457 - accuracy: 0.9847 - val_loss: 0.0838 - val_accuracy: 0.9784\n", + "Epoch 5/10\n", + "168/168 [==============================] - 1s 6ms/step - loss: 0.0321 - accuracy: 0.9901 - val_loss: 0.1116 - val_accuracy: 0.9739\n", + "Epoch 6/10\n", + "168/168 [==============================] - 1s 5ms/step - loss: 0.0377 - accuracy: 0.9875 - val_loss: 0.1025 - val_accuracy: 0.9761\n", + "Epoch 7/10\n", + "168/168 [==============================] - 1s 6ms/step - loss: 0.0371 - accuracy: 0.9894 - val_loss: 0.1159 - val_accuracy: 0.9678\n", + "Epoch 8/10\n", + "168/168 [==============================] - 1s 6ms/step - loss: 0.0322 - accuracy: 0.9916 - val_loss: 0.0932 - val_accuracy: 0.9814\n", + "Epoch 9/10\n", + "168/168 [==============================] - 1s 6ms/step - loss: 0.0074 - accuracy: 0.9976 - val_loss: 0.0764 - val_accuracy: 0.9864\n", + "Epoch 10/10\n", + "168/168 [==============================] - 1s 6ms/step - loss: 0.0176 - accuracy: 0.9948 - val_loss: 0.1082 - val_accuracy: 0.9746\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Predict some images\n", + "Print the image along with its label (true value) and predicted value." + ], + "metadata": { + "id": "ml1Kna_DuJrL" + } + }, + { + "cell_type": "code", + "source": [ + "plt.figure(figsize=(28,28))\n", + "predictions=np.argmax(model.predict(X_test),axis=1)\n", + "for i in range(25):\n", + " plt.subplot(5,5,i+1)\n", + " plt.imshow(X_test[i])\n", + " plt.xlabel(\"Prediction: {}, True: {}\".format(predictions[i],Y_test[i]),fontsize=10)\n", + "plt.show()" + ], + "metadata": { + "id": "qioZul7_uiYq", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "outputId": "9b6f4663-0bcc-4971-cce6-a3647accd4f9" + }, + "execution_count": 47, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "source": [ + "" + ], + "metadata": { + "id": "7E8Ph_lRwGVg" + }, + "execution_count": null, + "outputs": [] + } + ] +} \ No newline at end of file From e2f95f88724030ae7312b63170d31e022df3aa29 Mon Sep 17 00:00:00 2001 From: UsernameStillUnavailable <88334804+UsernameStillUnavailable@users.noreply.github.com> Date: Fri, 24 Jun 2022 10:02:58 +0530 Subject: [PATCH 08/11] Add files via upload 200064 From 890f150c66db22764aee6d13836987e421558fa0 Mon Sep 17 00:00:00 2001 From: UsernameStillUnavailable <88334804+UsernameStillUnavailable@users.noreply.github.com> Date: Sat, 16 Jul 2022 15:24:36 +0530 Subject: [PATCH 09/11] 200064 --- A4_200064.ipynb | 1574 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1574 insertions(+) create mode 100644 A4_200064.ipynb diff --git a/A4_200064.ipynb b/A4_200064.ipynb new file mode 100644 index 0000000..70a0522 --- /dev/null +++ b/A4_200064.ipynb @@ -0,0 +1,1574 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Copy_of_ICG_CVwTF_Final_Task (2).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" + ], + "metadata": { + "id": "c2CiXcHQTbX8" + }, + "execution_count": 1, + "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": { + "id": "hNEMe7XsIjrK", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "88e1b860-a82a-4e61-858d-691a64d6b43a" + }, + "execution_count": 2, + "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": 9, + "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": "e1f3fbc8-0f3c-45ae-8913-2faf16f630a7" + }, + "execution_count": 10, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "0\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": "45594403-4d40-456d-8850-99d8c3db7ded" + }, + "execution_count": 11, + "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": "60c5281a-4e96-4fe4-f306-94bf692121f5" + }, + "execution_count": 12, + "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", + "img1=cv2.imread(str(list(data_dir.glob('without_mask/*'))[0]))\n", + "cv2_imshow(img1)\n", + "img2=cv2.imread(str(list(data_dir.glob('mask_weared_incorrect/*'))[2]))\n", + "cv2_imshow(img2)\n", + "img3=cv2.imread(str(list(data_dir.glob('with_mask/*'))[5]))\n", + "cv2_imshow(img3)\n", + "cv2.waitKey(0)\n", + "cv2.destroyAllWindows()\n", + "# Your code" + ], + "metadata": { + "id": "HDSJ2Zk5a14s", + "outputId": "7d175f5c-f555-4800-9ebf-9efc3cc85c5f", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 401 + } + }, + "execution_count": 13, + "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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\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", + "print(img1.shape)\n", + "print(img2.shape)\n", + "print(img3.shape)" + ], + "metadata": { + "id": "jWBEMC1FUfXS", + "outputId": "bb6cd935-c321-40fc-9d3f-976afd9ea736", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": 14, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "(128, 128, 3)\n", + "(128, 128, 3)\n", + "(128, 128, 3)\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Check if all the images have same shape, else you need to resize them to some common size\n", + "x=img1.shape\n", + "cases=(\n", + " list(data_dir.glob('without_mask/*')),\n", + " list(data_dir.glob('mask_weared_incorrect/*')),\n", + " list(data_dir.glob('with_mask/*'))\n", + ")\n", + "for i in cases:\n", + " for j in range(2994):\n", + " img=cv2.imread(str(i[j]))\n", + " y=img.shape\n", + " if(x!=y):\n", + " print(\"different\")\n", + " break\n", + "print(\"same\")\n", + "\n", + "# The code provided as it is above in the template will help \n" + ], + "metadata": { + "id": "52BhBWRab5yc", + "outputId": "8449abcf-c973-4c4b-e64a-63adb255635d", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": 16, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "same\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# If the shape is variable, reshape to a common size \n", + "\n", + "# If it is same, prove it" + ], + "metadata": { + "id": "G-Atau4Rfc-x" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Anything else you want to plot/experiment" + ], + "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": 50, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Choose and define base model\n", + "base_model=tf.keras.applications.MobileNetV2(\n", + " include_top=False,\n", + " weights='imagenet',\n", + " input_tensor=None,\n", + " input_shape=(128,128,3),\n", + ")" + ], + "metadata": { + "id": "9xWLUibHRNGj" + }, + "execution_count": 51, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Print base model summary and have a look at the layers\n", + "base_model.summary()" + ], + "metadata": { + "id": "J3TwB_GLd7BU", + "outputId": "1fd7d007-b7a9-4431-b080-79134e6586e9", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": 52, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Model: \"mobilenetv2_1.00_128\"\n", + "__________________________________________________________________________________________________\n", + " Layer (type) Output Shape Param # Connected to \n", + "==================================================================================================\n", + " input_4 (InputLayer) [(None, 128, 128, 3 0 [] \n", + " )] \n", + " \n", + " Conv1 (Conv2D) (None, 64, 64, 32) 864 ['input_4[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", + "base_model.trainable=False\n", + "base_model.summary()" + ], + "metadata": { + "id": "F_Heq3C1eKd-", + "outputId": "cf91636a-dc90-4d73-ed36-fadb1bca4ed2", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": 53, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Model: \"mobilenetv2_1.00_128\"\n", + "__________________________________________________________________________________________________\n", + " Layer (type) Output Shape Param # Connected to \n", + "==================================================================================================\n", + " input_4 (InputLayer) [(None, 128, 128, 3 0 [] \n", + " )] \n", + " \n", + " Conv1 (Conv2D) (None, 64, 64, 32) 864 ['input_4[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: 0\n", + "Non-trainable params: 2,257,984\n", + "__________________________________________________________________________________________________\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Append Fully connected/custom Conv2D/Dropout/MaxPooling layers to the base model\n", + "from tensorflow import keras\n", + "from keras import layers\n", + "model=keras.Sequential([base_model,layers.Flatten(),\n", + " layers.Dense(128,activation='relu'),\n", + " layers.Dropout(0.5),\n", + " layers.Dense(64,activation='relu'),\n", + " ])" + ], + "metadata": { + "id": "MKx1EtUJea6D" + }, + "execution_count": 54, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Add the final output layer\n", + "model.add(layers.Dense(3,activation='softmax'))\n" + ], + "metadata": { + "id": "q6I3oTTNgP8L" + }, + "execution_count": 55, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Print your model's summary\n", + "model.summary()" + ], + "metadata": { + "id": "6aVQocJwgN5r", + "outputId": "1114c5f3-5ed6-4f51-c0ad-2bec1d87cf2a", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": 56, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Model: \"sequential_3\"\n", + "_________________________________________________________________\n", + " Layer (type) Output Shape Param # \n", + "=================================================================\n", + " mobilenetv2_1.00_128 (Funct (None, 4, 4, 1280) 2257984 \n", + " ional) \n", + " \n", + " flatten_3 (Flatten) (None, 20480) 0 \n", + " \n", + " dense_9 (Dense) (None, 128) 2621568 \n", + " \n", + " dropout_3 (Dropout) (None, 128) 0 \n", + " \n", + " dense_10 (Dense) (None, 64) 8256 \n", + " \n", + " dense_11 (Dense) (None, 3) 195 \n", + " \n", + "=================================================================\n", + "Total params: 4,888,003\n", + "Trainable params: 2,630,019\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": 57, + "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.vgg16 import preprocess_input # Change according to your base model\n", + "from tensorflow.keras.preprocessing.image import ImageDataGenerator\n", + "datagen = ImageDataGenerator(\n", + " rescale=1./255,\n", + " rotation_range=20,\n", + " width_shift_range=0.2,\n", + " height_shift_range=0.2,\n", + " horizontal_flip=True,\n", + " validation_split=0.2)\n", + "# Your code " + ], + "metadata": { + "id": "DBscSsvkgn39" + }, + "execution_count": 58, + "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", + "train=datagen.flow_from_directory(path,\n", + " target_size=(128,128),\n", + " color_mode='rgb',\n", + " batch_size=64,\n", + " class_mode='categorical')\n", + "\n", + "validate=datagen.flow_from_directory(path,\n", + " target_size=(128,128),\n", + " color_mode='rgb',\n", + " batch_size=64,\n", + " class_mode='categorical',\n", + " subset='validation')" + ], + "metadata": { + "id": "sB7hb3ybkJRq", + "outputId": "bba90145-1365-46e3-f648-cb02a394972b", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": 59, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Found 8982 images belonging to 3 classes.\n", + "Found 1794 images belonging to 3 classes.\n" + ] + } + ] + }, + { + "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", + "history= model.fit(train,validation_data=validate,epochs=10)\n", + "# ModelCheckpoint is helpful to save the model giving best results (brownie points)" + ], + "metadata": { + "id": "Gs2X14MBmu7W", + "outputId": "a46cf5b1-5ebc-407a-9e17-01f23b317290", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": 60, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Epoch 1/10\n", + "141/141 [==============================] - 124s 438ms/step - loss: 0.5609 - accuracy: 0.8346 - val_loss: 0.1984 - val_accuracy: 0.9359\n", + "Epoch 2/10\n", + "141/141 [==============================] - 59s 420ms/step - loss: 0.2512 - accuracy: 0.9110 - val_loss: 0.1714 - val_accuracy: 0.9348\n", + "Epoch 3/10\n", + "141/141 [==============================] - 60s 428ms/step - loss: 0.2354 - accuracy: 0.9163 - val_loss: 0.1710 - val_accuracy: 0.9387\n", + "Epoch 4/10\n", + "141/141 [==============================] - 60s 426ms/step - loss: 0.2045 - accuracy: 0.9247 - val_loss: 0.1627 - val_accuracy: 0.9504\n", + "Epoch 5/10\n", + "141/141 [==============================] - 59s 421ms/step - loss: 0.2040 - accuracy: 0.9272 - val_loss: 0.1511 - val_accuracy: 0.9493\n", + "Epoch 6/10\n", + "141/141 [==============================] - 60s 425ms/step - loss: 0.1970 - accuracy: 0.9306 - val_loss: 0.1412 - val_accuracy: 0.9465\n", + "Epoch 7/10\n", + "141/141 [==============================] - 60s 426ms/step - loss: 0.1806 - accuracy: 0.9329 - val_loss: 0.1322 - val_accuracy: 0.9565\n", + "Epoch 8/10\n", + "141/141 [==============================] - 60s 427ms/step - loss: 0.1621 - accuracy: 0.9437 - val_loss: 0.1246 - val_accuracy: 0.9610\n", + "Epoch 9/10\n", + "141/141 [==============================] - 59s 416ms/step - loss: 0.1618 - accuracy: 0.9410 - val_loss: 0.1117 - val_accuracy: 0.9638\n", + "Epoch 10/10\n", + "141/141 [==============================] - 60s 427ms/step - loss: 0.1669 - accuracy: 0.9408 - val_loss: 0.1091 - val_accuracy: 0.9660\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "### Evaluate the performance" + ], + "metadata": { + "id": "FTvRa1FXri4R" + } + }, + { + "cell_type": "code", + "source": [ + "# Plot training & validation loss/accuracy values\n", + "acc = history.history['accuracy']\n", + "val_acc = history.history['val_accuracy']\n", + "\n", + "loss = history.history['loss']\n", + "val_loss = history.history['val_loss']\n", + "\n", + "plt.figure(figsize=(8, 8))\n", + "plt.subplot(2, 1, 1)\n", + "plt.plot(acc, label='Training Accuracy')\n", + "plt.plot(val_acc, label='Validation Accuracy')\n", + "plt.legend(loc='lower right')\n", + "plt.ylabel('Accuracy')\n", + "plt.ylim([min(plt.ylim()),1])\n", + "plt.title('Training and Validation Accuracy')\n", + "\n", + "plt.subplot(2, 1, 2)\n", + "plt.plot(loss, label='Training Loss')\n", + "plt.plot(val_loss, label='Validation Loss')\n", + "plt.legend(loc='upper right')\n", + "plt.ylabel('Cross Entropy')\n", + "plt.ylim([0,1.0])\n", + "plt.title('Training and Validation Loss')\n", + "plt.xlabel('epoch')\n", + "plt.show()" + ], + "metadata": { + "id": "cTH6flzcrck0", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 513 + }, + "outputId": "21ce5db8-89b4-4181-a63f-4ee55aefb996" + }, + "execution_count": 61, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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xIYNGwBYsWIFZ599NuBcHFx11VVMnTqVgQMH8sQTT9TvLyEhob781KlTufDCCxk2bBiXXnopdZXOt956i2HDhjFu3Dhuvvnm+v02tmLFCkaOHMn111/Pyy+/XL987969nH/++WRnZ5Odnc3q1asBmD9/PscddxzZ2dlcdtll9d/vtdde8xnfpEmTOPfccxkxYgQA5513HuPGjWPkyJE8++yz9du88847jB07luzsbKZPn47H42Hw4MHk5+cDzoXIoEGD6ufbQ8e5DOvE/mflVsqra7n11MHBDsUYE0L+/c31fLPnYJvuc0TfJO49Z2Srt8vLy2P16tWEh4dz8OBBVq1aRUREBEuXLuXuu+/mb3/72xHbfPfddyxfvpySkhKGDh3K9ddff8RjXmvXrmX9+vX07duXiRMn8uGHH5KTk8O1117LypUrycrKYvbs2U3G9fLLLzN79mxmzpzJ3XffTXV1NZGRkdx8881MmTKF119/ndraWkpLS1m/fj3/8R//werVq0lNTaWwsLDF7/3555/z9ddf1/def/755+nevTvl5eUcf/zxXHDBBXg8Hq6++ur6eAsLCwkLC2POnDksWLCAW265haVLl5KdnU17dgi3GvyPtK+kgvkfbee80f0Y1DMx2OEYY0xAXHTRRYSHhwNQXFzMRRddxLHHHsutt97K+vXrfW5z1llnER0dTWpqKj179mTv3r1HlBk/fjzp6emEhYUxevRotm/fznfffcfAgQPrk2pTCb6qqoq33nqL8847j6SkJCZMmMDixYsBeO+997j++usBCA8PJzk5mffee4+LLrqI1FTnDaPdu7f8tNP48eMbPJr2xBNPkJ2dzQknnMCuXbvYtGkTH3/8MZMnT64vV7ffq666ivnz5wPOhcGVV17Z4vHaktXgf6Snl2+hula5ebrV3o0xbetoatqBEh8fXz/9b//2b5xyyim8/vrrbN++nalTp/rcJjo6un46PDycmpqaoyrTlMWLF1NUVMSoUaMAKCsrIzY2tsnm/KZERETUd9DzeDwNOhN6f+8VK1awdOlSPvroI+Li4pg6dWqzj65lZGTQq1cv3nvvPT799FMWLFjQqrh+LKvB/wh7isr53092cuHYdAakxre8gTHGhIDi4mL69esHwIsvvtjm+x86dChbt25l+/btALzyyis+y7388ss899xzbN++ne3b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eMyMGTPIzs4mOzubI444gu3btzN06NAGZaZMmVK3beLEiWzatImCggKOOeaYukfOZs+ezbx589oU55IlS5g2bRqDBgXzu1x++eW89NJL3HnnnWzcuJEbb7yRGTNmcM455wBw8sknc/nll/OpT32KT33qU+3+XZKhJnoREUm5/Pz8uuU777yT6dOn88Ybb/DUU081+3hYdnZ23XI0GiUWi3WoTGfo168fq1atYtq0afzsZz/jc5/7HABPP/00119/PcuXL+fUU089bJ+fiK7gRUR6qY5caXeF0tJShgwZAsBvfvObTj//mDFj2LhxI5s2bWLkyJE88sgjbT52ypQp3HTTTezcuZN+/foxf/58brzxRnbu3ElWVhYXX3wxY8aM4YorrqCmpobNmzczffp0zjzzTBYsWMCBAwfo27dvp3+nRJTgRUSkW7ntttu48sor+fa3v82MGTM6/fy5ubn85Cc/4dxzzyU/P59TTz212bKLFy9u0Oz/2GOPcd999zF9+nTcnRkzZjBz5kxWrVrFVVddRU1NDQDf+c53qK6u5oorrqC0tBR356abbuqy5A5gtT0KezrNBy8i0ro333yTE044IdVhpNyBAwcoKCjA3bn++usZPXo0X/rSl1IdVosS/duZ2TJ3T/jsoO7Bi4hIr/OLX/yCiRMncuKJJ1JaWsq1116b6pA6nZroRUSk1/nSl77U7a/Yk6UreBERkTSkBC8iIpKGlOBFRETSkBK8iIhIGlKCFxGRLjN9+nSeffbZBtt++MMfct111zV7zLRp06h9DPq8885LOKb73Xffzf3339/iZz/55JOsW7eubv0b3/gGzz33XHvCT6i7TiurBC8iIl1m9uzZLFiwoMG2BQsWtHnCl0WLFnV4sJjGCf6ee+7hox/9aIfO1RMowYuISJe55JJLePrpp6msrARg06ZNbN26lQ9/+MNcd911FBcXc+KJJ3LXXXclPH7kyJHs3LkTgHvvvZfjjz+eM888s25KWQiecT/11FOZMGECF198MeXl5bz66qssXLiQW2+9lYkTJ/LPf/6TOXPm8PjjjwPBiHWTJk1i/PjxXH311Rw6dKju8+666y5OOeUUxo8fz1tvvdXm75rqaWWV4EVEpMv079+fKVOm8MwzzwDB1ftll12GmXHvvfeydOlSVq9ezYsvvsjq1aubPc+yZctYsGABK1eu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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "source": [ + "from sklearn.metrics import classification_report, confusion_matrix\n", + "import numpy as np\n", + "validation_classes = []\n", + "validation_images = []\n", + "for i in range( -(-validate.samples // validate.batch_size)):\n", + " batch = validate.next()\n", + " expected = np.argmax(batch[1], axis=1)\n", + " validation_classes.extend(expected)\n", + " validation_images.extend(batch[0])\n", + "validation_classes = np.array(validation_classes)\n", + "validation_images = np.array(validation_images)\n", + "y_pred = np.argmax(model.predict(validation_images), axis=1)\n", + "print(classification_report(validation_classes, y_pred,target_names = ['without_mask', 'mask_weared_incorrect', 'with_mask']))\n", + "# print classification report" + ], + "metadata": { + "id": "fJ-ZtU84r66Z", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "1f7e9a68-abdd-45a6-83ad-461f43f3d402" + }, + "execution_count": 62, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + " precision recall f1-score support\n", + "\n", + " without_mask 0.97 0.98 0.98 598\n", + "mask_weared_incorrect 0.95 0.98 0.96 598\n", + " with_mask 0.99 0.95 0.97 598\n", + "\n", + " accuracy 0.97 1794\n", + " macro avg 0.97 0.97 0.97 1794\n", + " weighted avg 0.97 0.97 0.97 1794\n", + "\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "" + ], + "metadata": { + "id": "I9WN1LWZV1Rz" + }, + "execution_count": null, + "outputs": [] + } + ] +} \ No newline at end of file From b090e30cda2c39a3ca5afc27808125e5e8041fd3 Mon Sep 17 00:00:00 2001 From: UsernameStillUnavailable <88334804+UsernameStillUnavailable@users.noreply.github.com> Date: Sat, 16 Jul 2022 15:37:29 +0530 Subject: [PATCH 10/11] 200064 --- Final Task/A4_200064.ipynb | 1574 ++++++++++++++++++++++++++++++++++++ 1 file changed, 1574 insertions(+) create mode 100644 Final Task/A4_200064.ipynb diff --git a/Final Task/A4_200064.ipynb b/Final Task/A4_200064.ipynb new file mode 100644 index 0000000..70a0522 --- /dev/null +++ b/Final Task/A4_200064.ipynb @@ -0,0 +1,1574 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Copy_of_ICG_CVwTF_Final_Task (2).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" + ], + "metadata": { + "id": "c2CiXcHQTbX8" + }, + "execution_count": 1, + "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": { + "id": "hNEMe7XsIjrK", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "88e1b860-a82a-4e61-858d-691a64d6b43a" + }, + "execution_count": 2, + "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": 9, + "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": "e1f3fbc8-0f3c-45ae-8913-2faf16f630a7" + }, + "execution_count": 10, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "0\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": "45594403-4d40-456d-8850-99d8c3db7ded" + }, + "execution_count": 11, + "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": "60c5281a-4e96-4fe4-f306-94bf692121f5" + }, + "execution_count": 12, + "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", + "img1=cv2.imread(str(list(data_dir.glob('without_mask/*'))[0]))\n", + "cv2_imshow(img1)\n", + "img2=cv2.imread(str(list(data_dir.glob('mask_weared_incorrect/*'))[2]))\n", + "cv2_imshow(img2)\n", + "img3=cv2.imread(str(list(data_dir.glob('with_mask/*'))[5]))\n", + "cv2_imshow(img3)\n", + "cv2.waitKey(0)\n", + "cv2.destroyAllWindows()\n", + "# Your code" + ], + "metadata": { + "id": "HDSJ2Zk5a14s", + "outputId": "7d175f5c-f555-4800-9ebf-9efc3cc85c5f", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 401 + } + }, + "execution_count": 13, + "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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\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", + "print(img1.shape)\n", + "print(img2.shape)\n", + "print(img3.shape)" + ], + "metadata": { + "id": "jWBEMC1FUfXS", + "outputId": "bb6cd935-c321-40fc-9d3f-976afd9ea736", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": 14, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "(128, 128, 3)\n", + "(128, 128, 3)\n", + "(128, 128, 3)\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Check if all the images have same shape, else you need to resize them to some common size\n", + "x=img1.shape\n", + "cases=(\n", + " list(data_dir.glob('without_mask/*')),\n", + " list(data_dir.glob('mask_weared_incorrect/*')),\n", + " list(data_dir.glob('with_mask/*'))\n", + ")\n", + "for i in cases:\n", + " for j in range(2994):\n", + " img=cv2.imread(str(i[j]))\n", + " y=img.shape\n", + " if(x!=y):\n", + " print(\"different\")\n", + " break\n", + "print(\"same\")\n", + "\n", + "# The code provided as it is above in the template will help \n" + ], + "metadata": { + "id": "52BhBWRab5yc", + "outputId": "8449abcf-c973-4c4b-e64a-63adb255635d", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": 16, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "same\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# If the shape is variable, reshape to a common size \n", + "\n", + "# If it is same, prove it" + ], + "metadata": { + "id": "G-Atau4Rfc-x" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Anything else you want to plot/experiment" + ], + "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": 50, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Choose and define base model\n", + "base_model=tf.keras.applications.MobileNetV2(\n", + " include_top=False,\n", + " weights='imagenet',\n", + " input_tensor=None,\n", + " input_shape=(128,128,3),\n", + ")" + ], + "metadata": { + "id": "9xWLUibHRNGj" + }, + "execution_count": 51, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Print base model summary and have a look at the layers\n", + "base_model.summary()" + ], + "metadata": { + "id": "J3TwB_GLd7BU", + "outputId": "1fd7d007-b7a9-4431-b080-79134e6586e9", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": 52, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Model: \"mobilenetv2_1.00_128\"\n", + "__________________________________________________________________________________________________\n", + " Layer (type) Output Shape Param # Connected to \n", + "==================================================================================================\n", + " input_4 (InputLayer) [(None, 128, 128, 3 0 [] \n", + " )] \n", + " \n", + " Conv1 (Conv2D) (None, 64, 64, 32) 864 ['input_4[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", + "base_model.trainable=False\n", + "base_model.summary()" + ], + "metadata": { + "id": "F_Heq3C1eKd-", + "outputId": "cf91636a-dc90-4d73-ed36-fadb1bca4ed2", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": 53, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Model: \"mobilenetv2_1.00_128\"\n", + "__________________________________________________________________________________________________\n", + " Layer (type) Output Shape Param # Connected to \n", + "==================================================================================================\n", + " input_4 (InputLayer) [(None, 128, 128, 3 0 [] \n", + " )] \n", + " \n", + " Conv1 (Conv2D) (None, 64, 64, 32) 864 ['input_4[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: 0\n", + "Non-trainable params: 2,257,984\n", + "__________________________________________________________________________________________________\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Append Fully connected/custom Conv2D/Dropout/MaxPooling layers to the base model\n", + "from tensorflow import keras\n", + "from keras import layers\n", + "model=keras.Sequential([base_model,layers.Flatten(),\n", + " layers.Dense(128,activation='relu'),\n", + " layers.Dropout(0.5),\n", + " layers.Dense(64,activation='relu'),\n", + " ])" + ], + "metadata": { + "id": "MKx1EtUJea6D" + }, + "execution_count": 54, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Add the final output layer\n", + "model.add(layers.Dense(3,activation='softmax'))\n" + ], + "metadata": { + "id": "q6I3oTTNgP8L" + }, + "execution_count": 55, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Print your model's summary\n", + "model.summary()" + ], + "metadata": { + "id": "6aVQocJwgN5r", + "outputId": "1114c5f3-5ed6-4f51-c0ad-2bec1d87cf2a", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": 56, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Model: \"sequential_3\"\n", + "_________________________________________________________________\n", + " Layer (type) Output Shape Param # \n", + "=================================================================\n", + " mobilenetv2_1.00_128 (Funct (None, 4, 4, 1280) 2257984 \n", + " ional) \n", + " \n", + " flatten_3 (Flatten) (None, 20480) 0 \n", + " \n", + " dense_9 (Dense) (None, 128) 2621568 \n", + " \n", + " dropout_3 (Dropout) (None, 128) 0 \n", + " \n", + " dense_10 (Dense) (None, 64) 8256 \n", + " \n", + " dense_11 (Dense) (None, 3) 195 \n", + " \n", + "=================================================================\n", + "Total params: 4,888,003\n", + "Trainable params: 2,630,019\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": 57, + "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.vgg16 import preprocess_input # Change according to your base model\n", + "from tensorflow.keras.preprocessing.image import ImageDataGenerator\n", + "datagen = ImageDataGenerator(\n", + " rescale=1./255,\n", + " rotation_range=20,\n", + " width_shift_range=0.2,\n", + " height_shift_range=0.2,\n", + " horizontal_flip=True,\n", + " validation_split=0.2)\n", + "# Your code " + ], + "metadata": { + "id": "DBscSsvkgn39" + }, + "execution_count": 58, + "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", + "train=datagen.flow_from_directory(path,\n", + " target_size=(128,128),\n", + " color_mode='rgb',\n", + " batch_size=64,\n", + " class_mode='categorical')\n", + "\n", + "validate=datagen.flow_from_directory(path,\n", + " target_size=(128,128),\n", + " color_mode='rgb',\n", + " batch_size=64,\n", + " class_mode='categorical',\n", + " subset='validation')" + ], + "metadata": { + "id": "sB7hb3ybkJRq", + "outputId": "bba90145-1365-46e3-f648-cb02a394972b", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": 59, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Found 8982 images belonging to 3 classes.\n", + "Found 1794 images belonging to 3 classes.\n" + ] + } + ] + }, + { + "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", + "history= model.fit(train,validation_data=validate,epochs=10)\n", + "# ModelCheckpoint is helpful to save the model giving best results (brownie points)" + ], + "metadata": { + "id": "Gs2X14MBmu7W", + "outputId": "a46cf5b1-5ebc-407a-9e17-01f23b317290", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": 60, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Epoch 1/10\n", + "141/141 [==============================] - 124s 438ms/step - loss: 0.5609 - accuracy: 0.8346 - val_loss: 0.1984 - val_accuracy: 0.9359\n", + "Epoch 2/10\n", + "141/141 [==============================] - 59s 420ms/step - loss: 0.2512 - accuracy: 0.9110 - val_loss: 0.1714 - val_accuracy: 0.9348\n", + "Epoch 3/10\n", + "141/141 [==============================] - 60s 428ms/step - loss: 0.2354 - accuracy: 0.9163 - val_loss: 0.1710 - val_accuracy: 0.9387\n", + "Epoch 4/10\n", + "141/141 [==============================] - 60s 426ms/step - loss: 0.2045 - accuracy: 0.9247 - val_loss: 0.1627 - val_accuracy: 0.9504\n", + "Epoch 5/10\n", + "141/141 [==============================] - 59s 421ms/step - loss: 0.2040 - accuracy: 0.9272 - val_loss: 0.1511 - val_accuracy: 0.9493\n", + "Epoch 6/10\n", + "141/141 [==============================] - 60s 425ms/step - loss: 0.1970 - accuracy: 0.9306 - val_loss: 0.1412 - val_accuracy: 0.9465\n", + "Epoch 7/10\n", + "141/141 [==============================] - 60s 426ms/step - loss: 0.1806 - accuracy: 0.9329 - val_loss: 0.1322 - val_accuracy: 0.9565\n", + "Epoch 8/10\n", + "141/141 [==============================] - 60s 427ms/step - loss: 0.1621 - accuracy: 0.9437 - val_loss: 0.1246 - val_accuracy: 0.9610\n", + "Epoch 9/10\n", + "141/141 [==============================] - 59s 416ms/step - loss: 0.1618 - accuracy: 0.9410 - val_loss: 0.1117 - val_accuracy: 0.9638\n", + "Epoch 10/10\n", + "141/141 [==============================] - 60s 427ms/step - loss: 0.1669 - accuracy: 0.9408 - val_loss: 0.1091 - val_accuracy: 0.9660\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "### Evaluate the performance" + ], + "metadata": { + "id": "FTvRa1FXri4R" + } + }, + { + "cell_type": "code", + "source": [ + "# Plot training & validation loss/accuracy values\n", + "acc = history.history['accuracy']\n", + "val_acc = history.history['val_accuracy']\n", + "\n", + "loss = history.history['loss']\n", + "val_loss = history.history['val_loss']\n", + "\n", + "plt.figure(figsize=(8, 8))\n", + "plt.subplot(2, 1, 1)\n", + "plt.plot(acc, label='Training Accuracy')\n", + "plt.plot(val_acc, label='Validation Accuracy')\n", + "plt.legend(loc='lower right')\n", + "plt.ylabel('Accuracy')\n", + "plt.ylim([min(plt.ylim()),1])\n", + "plt.title('Training and Validation Accuracy')\n", + "\n", + "plt.subplot(2, 1, 2)\n", + "plt.plot(loss, label='Training Loss')\n", + "plt.plot(val_loss, label='Validation Loss')\n", + "plt.legend(loc='upper right')\n", + "plt.ylabel('Cross Entropy')\n", + "plt.ylim([0,1.0])\n", + "plt.title('Training and Validation Loss')\n", + "plt.xlabel('epoch')\n", + "plt.show()" + ], + "metadata": { + "id": "cTH6flzcrck0", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 513 + }, + "outputId": "21ce5db8-89b4-4181-a63f-4ee55aefb996" + }, + "execution_count": 61, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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xIYNGwBYsWIFZ599NuBcHFx11VVMnTqVgQMH8sQTT9TvLyEhob781KlTufDCCxk2bBiXXnopdZXOt956i2HDhjFu3Dhuvvnm+v02tmLFCkaOHMn111/Pyy+/XL987969nH/++WRnZ5Odnc3q1asBmD9/PscddxzZ2dlcdtll9d/vtdde8xnfpEmTOPfccxkxYgQA5513HuPGjWPkyJE8++yz9du88847jB07luzsbKZPn47H42Hw4MHk5+cDzoXIoEGD6ufbQ8e5DOvE/mflVsqra7n11MHBDsUYE0L+/c31fLPnYJvuc0TfJO49Z2Srt8vLy2P16tWEh4dz8OBBVq1aRUREBEuXLuXuu+/mb3/72xHbfPfddyxfvpySkhKGDh3K9ddff8RjXmvXrmX9+vX07duXiRMn8uGHH5KTk8O1117LypUrycrKYvbs2U3G9fLLLzN79mxmzpzJ3XffTXV1NZGRkdx8881MmTKF119/ndraWkpLS1m/fj3/8R//werVq0lNTaWwsLDF7/3555/z9ddf1/def/755+nevTvl5eUcf/zxXHDBBXg8Hq6++ur6eAsLCwkLC2POnDksWLCAW265haVLl5KdnU17dgi3GvyPtK+kgvkfbee80f0Y1DMx2OEYY0xAXHTRRYSHhwNQXFzMRRddxLHHHsutt97K+vXrfW5z1llnER0dTWpqKj179mTv3r1HlBk/fjzp6emEhYUxevRotm/fznfffcfAgQPrk2pTCb6qqoq33nqL8847j6SkJCZMmMDixYsBeO+997j++usBCA8PJzk5mffee4+LLrqI1FTnDaPdu7f8tNP48eMbPJr2xBNPkJ2dzQknnMCuXbvYtGkTH3/8MZMnT64vV7ffq666ivnz5wPOhcGVV17Z4vHaktXgf6Snl2+hula5ebrV3o0xbetoatqBEh8fXz/9b//2b5xyyim8/vrrbN++nalTp/rcJjo6un46PDycmpqaoyrTlMWLF1NUVMSoUaMAKCsrIzY2tsnm/KZERETUd9DzeDwNOhN6f+8VK1awdOlSPvroI+Li4pg6dWqzj65lZGTQq1cv3nvvPT799FMWLFjQqrh+LKvB/wh7isr53092cuHYdAakxre8gTHGhIDi4mL69esHwIsvvtjm+x86dChbt25l+/btALzyyis+y7388ss899xzbN++ne3b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eMyMGTPIzs4mOzubI444gu3btzN06NAGZaZMmVK3beLEiWzatImCggKOOeaYukfOZs+ezbx589oU55IlS5g2bRqDBgXzu1x++eW89NJL3HnnnWzcuJEbb7yRGTNmcM455wBw8sknc/nll/OpT32KT33qU+3+XZKhJnoREUm5/Pz8uuU777yT6dOn88Ybb/DUU081+3hYdnZ23XI0GiUWi3WoTGfo168fq1atYtq0afzsZz/jc5/7HABPP/00119/PcuXL+fUU089bJ+fiK7gRUR6qY5caXeF0tJShgwZAsBvfvObTj//mDFj2LhxI5s2bWLkyJE88sgjbT52ypQp3HTTTezcuZN+/foxf/58brzxRnbu3ElWVhYXX3wxY8aM4YorrqCmpobNmzczffp0zjzzTBYsWMCBAwfo27dvp3+nRJTgRUSkW7ntttu48sor+fa3v82MGTM6/fy5ubn85Cc/4dxzzyU/P59TTz212bKLFy9u0Oz/2GOPcd999zF9+nTcnRkzZjBz5kxWrVrFVVddRU1NDQDf+c53qK6u5oorrqC0tBR356abbuqy5A5gtT0KezrNBy8i0ro333yTE044IdVhpNyBAwcoKCjA3bn++usZPXo0X/rSl1IdVosS/duZ2TJ3T/jsoO7Bi4hIr/OLX/yCiRMncuKJJ1JaWsq1116b6pA6nZroRUSk1/nSl77U7a/Yk6UreBERkTSkBC8iIpKGlOBFRETSkBK8iIhIGlKCFxGRLjN9+nSeffbZBtt++MMfct111zV7zLRp06h9DPq8885LOKb73Xffzf3339/iZz/55JOsW7eubv0b3/gGzz33XHvCT6i7TiurBC8iIl1m9uzZLFiwoMG2BQsWtHnCl0WLFnV4sJjGCf6ee+7hox/9aIfO1RMowYuISJe55JJLePrpp6msrARg06ZNbN26lQ9/+MNcd911FBcXc+KJJ3LXXXclPH7kyJHs3LkTgHvvvZfjjz+eM888s25KWQiecT/11FOZMGECF198MeXl5bz66qssXLiQW2+9lYkTJ/LPf/6TOXPm8PjjjwPBiHWTJk1i/PjxXH311Rw6dKju8+666y5OOeUUxo8fz1tvvdXm75rqaWWV4EVEpMv079+fKVOm8MwzzwDB1ftll12GmXHvvfeydOlSVq9ezYsvvsjq1aubPc+yZctYsGABK1eu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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "source": [ + "from sklearn.metrics import classification_report, confusion_matrix\n", + "import numpy as np\n", + "validation_classes = []\n", + "validation_images = []\n", + "for i in range( -(-validate.samples // validate.batch_size)):\n", + " batch = validate.next()\n", + " expected = np.argmax(batch[1], axis=1)\n", + " validation_classes.extend(expected)\n", + " validation_images.extend(batch[0])\n", + "validation_classes = np.array(validation_classes)\n", + "validation_images = np.array(validation_images)\n", + "y_pred = np.argmax(model.predict(validation_images), axis=1)\n", + "print(classification_report(validation_classes, y_pred,target_names = ['without_mask', 'mask_weared_incorrect', 'with_mask']))\n", + "# print classification report" + ], + "metadata": { + "id": "fJ-ZtU84r66Z", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "1f7e9a68-abdd-45a6-83ad-461f43f3d402" + }, + "execution_count": 62, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + " precision recall f1-score support\n", + "\n", + " without_mask 0.97 0.98 0.98 598\n", + "mask_weared_incorrect 0.95 0.98 0.96 598\n", + " with_mask 0.99 0.95 0.97 598\n", + "\n", + " accuracy 0.97 1794\n", + " macro avg 0.97 0.97 0.97 1794\n", + " weighted avg 0.97 0.97 0.97 1794\n", + "\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "" + ], + "metadata": { + "id": "I9WN1LWZV1Rz" + }, + "execution_count": null, + "outputs": [] + } + ] +} \ No newline at end of file From 3043f66a7e1b64957576d9fb9ee96b56876d4a47 Mon Sep 17 00:00:00 2001 From: UsernameStillUnavailable <88334804+UsernameStillUnavailable@users.noreply.github.com> Date: Sat, 16 Jul 2022 15:38:09 +0530 Subject: [PATCH 11/11] Delete A4_200064.ipynb --- A4_200064.ipynb | 1574 ----------------------------------------------- 1 file changed, 1574 deletions(-) delete mode 100644 A4_200064.ipynb diff --git a/A4_200064.ipynb b/A4_200064.ipynb deleted file mode 100644 index 70a0522..0000000 --- a/A4_200064.ipynb +++ /dev/null @@ -1,1574 +0,0 @@ -{ - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "name": "Copy_of_ICG_CVwTF_Final_Task (2).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" - ], - "metadata": { - "id": "c2CiXcHQTbX8" - }, - "execution_count": 1, - "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": { - "id": "hNEMe7XsIjrK", - "colab": { - "base_uri": "https://localhost:8080/" - }, - "outputId": "88e1b860-a82a-4e61-858d-691a64d6b43a" - }, - "execution_count": 2, - "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": 9, - "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": "e1f3fbc8-0f3c-45ae-8913-2faf16f630a7" - }, - "execution_count": 10, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "0\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": "45594403-4d40-456d-8850-99d8c3db7ded" - }, - "execution_count": 11, - "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": "60c5281a-4e96-4fe4-f306-94bf692121f5" - }, - "execution_count": 12, - "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", - "img1=cv2.imread(str(list(data_dir.glob('without_mask/*'))[0]))\n", - "cv2_imshow(img1)\n", - "img2=cv2.imread(str(list(data_dir.glob('mask_weared_incorrect/*'))[2]))\n", - "cv2_imshow(img2)\n", - "img3=cv2.imread(str(list(data_dir.glob('with_mask/*'))[5]))\n", - "cv2_imshow(img3)\n", - "cv2.waitKey(0)\n", - "cv2.destroyAllWindows()\n", - "# Your code" - ], - "metadata": { - "id": "HDSJ2Zk5a14s", - "outputId": "7d175f5c-f555-4800-9ebf-9efc3cc85c5f", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 401 - } - }, - "execution_count": 13, - "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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\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", - "print(img1.shape)\n", - "print(img2.shape)\n", - "print(img3.shape)" - ], - "metadata": { - "id": "jWBEMC1FUfXS", - "outputId": "bb6cd935-c321-40fc-9d3f-976afd9ea736", - "colab": { - "base_uri": "https://localhost:8080/" - } - }, - "execution_count": 14, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "(128, 128, 3)\n", - "(128, 128, 3)\n", - "(128, 128, 3)\n" - ] - } - ] - }, - { - "cell_type": "code", - "source": [ - "# Check if all the images have same shape, else you need to resize them to some common size\n", - "x=img1.shape\n", - "cases=(\n", - " list(data_dir.glob('without_mask/*')),\n", - " list(data_dir.glob('mask_weared_incorrect/*')),\n", - " list(data_dir.glob('with_mask/*'))\n", - ")\n", - "for i in cases:\n", - " for j in range(2994):\n", - " img=cv2.imread(str(i[j]))\n", - " y=img.shape\n", - " if(x!=y):\n", - " print(\"different\")\n", - " break\n", - "print(\"same\")\n", - "\n", - "# The code provided as it is above in the template will help \n" - ], - "metadata": { - "id": "52BhBWRab5yc", - "outputId": "8449abcf-c973-4c4b-e64a-63adb255635d", - "colab": { - "base_uri": "https://localhost:8080/" - } - }, - "execution_count": 16, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "same\n" - ] - } - ] - }, - { - "cell_type": "code", - "source": [ - "# If the shape is variable, reshape to a common size \n", - "\n", - "# If it is same, prove it" - ], - "metadata": { - "id": "G-Atau4Rfc-x" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "# Anything else you want to plot/experiment" - ], - "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": 50, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "# Choose and define base model\n", - "base_model=tf.keras.applications.MobileNetV2(\n", - " include_top=False,\n", - " weights='imagenet',\n", - " input_tensor=None,\n", - " input_shape=(128,128,3),\n", - ")" - ], - "metadata": { - "id": "9xWLUibHRNGj" - }, - "execution_count": 51, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "# Print base model summary and have a look at the layers\n", - "base_model.summary()" - ], - "metadata": { - "id": "J3TwB_GLd7BU", - "outputId": "1fd7d007-b7a9-4431-b080-79134e6586e9", - "colab": { - "base_uri": "https://localhost:8080/" - } - }, - "execution_count": 52, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Model: \"mobilenetv2_1.00_128\"\n", - "__________________________________________________________________________________________________\n", - " Layer (type) Output Shape Param # Connected to \n", - "==================================================================================================\n", - " input_4 (InputLayer) [(None, 128, 128, 3 0 [] \n", - " )] \n", - " \n", - " Conv1 (Conv2D) (None, 64, 64, 32) 864 ['input_4[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", - "base_model.trainable=False\n", - "base_model.summary()" - ], - "metadata": { - "id": "F_Heq3C1eKd-", - "outputId": "cf91636a-dc90-4d73-ed36-fadb1bca4ed2", - "colab": { - "base_uri": "https://localhost:8080/" - } - }, - "execution_count": 53, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Model: \"mobilenetv2_1.00_128\"\n", - "__________________________________________________________________________________________________\n", - " Layer (type) Output Shape Param # Connected to \n", - "==================================================================================================\n", - " input_4 (InputLayer) [(None, 128, 128, 3 0 [] \n", - " )] \n", - " \n", - " Conv1 (Conv2D) (None, 64, 64, 32) 864 ['input_4[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: 0\n", - "Non-trainable params: 2,257,984\n", - "__________________________________________________________________________________________________\n" - ] - } - ] - }, - { - "cell_type": "code", - "source": [ - "# Append Fully connected/custom Conv2D/Dropout/MaxPooling layers to the base model\n", - "from tensorflow import keras\n", - "from keras import layers\n", - "model=keras.Sequential([base_model,layers.Flatten(),\n", - " layers.Dense(128,activation='relu'),\n", - " layers.Dropout(0.5),\n", - " layers.Dense(64,activation='relu'),\n", - " ])" - ], - "metadata": { - "id": "MKx1EtUJea6D" - }, - "execution_count": 54, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "# Add the final output layer\n", - "model.add(layers.Dense(3,activation='softmax'))\n" - ], - "metadata": { - "id": "q6I3oTTNgP8L" - }, - "execution_count": 55, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "# Print your model's summary\n", - "model.summary()" - ], - "metadata": { - "id": "6aVQocJwgN5r", - "outputId": "1114c5f3-5ed6-4f51-c0ad-2bec1d87cf2a", - "colab": { - "base_uri": "https://localhost:8080/" - } - }, - "execution_count": 56, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Model: \"sequential_3\"\n", - "_________________________________________________________________\n", - " Layer (type) Output Shape Param # \n", - "=================================================================\n", - " mobilenetv2_1.00_128 (Funct (None, 4, 4, 1280) 2257984 \n", - " ional) \n", - " \n", - " flatten_3 (Flatten) (None, 20480) 0 \n", - " \n", - " dense_9 (Dense) (None, 128) 2621568 \n", - " \n", - " dropout_3 (Dropout) (None, 128) 0 \n", - " \n", - " dense_10 (Dense) (None, 64) 8256 \n", - " \n", - " dense_11 (Dense) (None, 3) 195 \n", - " \n", - "=================================================================\n", - "Total params: 4,888,003\n", - "Trainable params: 2,630,019\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": 57, - "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.vgg16 import preprocess_input # Change according to your base model\n", - "from tensorflow.keras.preprocessing.image import ImageDataGenerator\n", - "datagen = ImageDataGenerator(\n", - " rescale=1./255,\n", - " rotation_range=20,\n", - " width_shift_range=0.2,\n", - " height_shift_range=0.2,\n", - " horizontal_flip=True,\n", - " validation_split=0.2)\n", - "# Your code " - ], - "metadata": { - "id": "DBscSsvkgn39" - }, - "execution_count": 58, - "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", - "train=datagen.flow_from_directory(path,\n", - " target_size=(128,128),\n", - " color_mode='rgb',\n", - " batch_size=64,\n", - " class_mode='categorical')\n", - "\n", - "validate=datagen.flow_from_directory(path,\n", - " target_size=(128,128),\n", - " color_mode='rgb',\n", - " batch_size=64,\n", - " class_mode='categorical',\n", - " subset='validation')" - ], - "metadata": { - "id": "sB7hb3ybkJRq", - "outputId": "bba90145-1365-46e3-f648-cb02a394972b", - "colab": { - "base_uri": "https://localhost:8080/" - } - }, - "execution_count": 59, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Found 8982 images belonging to 3 classes.\n", - "Found 1794 images belonging to 3 classes.\n" - ] - } - ] - }, - { - "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", - "history= model.fit(train,validation_data=validate,epochs=10)\n", - "# ModelCheckpoint is helpful to save the model giving best results (brownie points)" - ], - "metadata": { - "id": "Gs2X14MBmu7W", - "outputId": "a46cf5b1-5ebc-407a-9e17-01f23b317290", - "colab": { - "base_uri": "https://localhost:8080/" - } - }, - "execution_count": 60, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Epoch 1/10\n", - "141/141 [==============================] - 124s 438ms/step - loss: 0.5609 - accuracy: 0.8346 - val_loss: 0.1984 - val_accuracy: 0.9359\n", - "Epoch 2/10\n", - "141/141 [==============================] - 59s 420ms/step - loss: 0.2512 - accuracy: 0.9110 - val_loss: 0.1714 - val_accuracy: 0.9348\n", - "Epoch 3/10\n", - "141/141 [==============================] - 60s 428ms/step - loss: 0.2354 - accuracy: 0.9163 - val_loss: 0.1710 - val_accuracy: 0.9387\n", - "Epoch 4/10\n", - "141/141 [==============================] - 60s 426ms/step - loss: 0.2045 - accuracy: 0.9247 - val_loss: 0.1627 - val_accuracy: 0.9504\n", - "Epoch 5/10\n", - "141/141 [==============================] - 59s 421ms/step - loss: 0.2040 - accuracy: 0.9272 - val_loss: 0.1511 - val_accuracy: 0.9493\n", - "Epoch 6/10\n", - "141/141 [==============================] - 60s 425ms/step - loss: 0.1970 - accuracy: 0.9306 - val_loss: 0.1412 - val_accuracy: 0.9465\n", - "Epoch 7/10\n", - "141/141 [==============================] - 60s 426ms/step - loss: 0.1806 - accuracy: 0.9329 - val_loss: 0.1322 - val_accuracy: 0.9565\n", - "Epoch 8/10\n", - "141/141 [==============================] - 60s 427ms/step - loss: 0.1621 - accuracy: 0.9437 - val_loss: 0.1246 - val_accuracy: 0.9610\n", - "Epoch 9/10\n", - "141/141 [==============================] - 59s 416ms/step - loss: 0.1618 - accuracy: 0.9410 - val_loss: 0.1117 - val_accuracy: 0.9638\n", - "Epoch 10/10\n", - "141/141 [==============================] - 60s 427ms/step - loss: 0.1669 - accuracy: 0.9408 - val_loss: 0.1091 - val_accuracy: 0.9660\n" - ] - } - ] - }, - { - "cell_type": "markdown", - "source": [ - "### Evaluate the performance" - ], - "metadata": { - "id": "FTvRa1FXri4R" - } - }, - { - "cell_type": "code", - "source": [ - "# Plot training & validation loss/accuracy values\n", - "acc = history.history['accuracy']\n", - "val_acc = history.history['val_accuracy']\n", - "\n", - "loss = history.history['loss']\n", - "val_loss = history.history['val_loss']\n", - "\n", - "plt.figure(figsize=(8, 8))\n", - "plt.subplot(2, 1, 1)\n", - "plt.plot(acc, label='Training Accuracy')\n", - "plt.plot(val_acc, label='Validation Accuracy')\n", - "plt.legend(loc='lower right')\n", - "plt.ylabel('Accuracy')\n", - "plt.ylim([min(plt.ylim()),1])\n", - "plt.title('Training and Validation Accuracy')\n", - "\n", - "plt.subplot(2, 1, 2)\n", - "plt.plot(loss, label='Training Loss')\n", - "plt.plot(val_loss, label='Validation Loss')\n", - "plt.legend(loc='upper right')\n", - "plt.ylabel('Cross Entropy')\n", - "plt.ylim([0,1.0])\n", - "plt.title('Training and Validation Loss')\n", - "plt.xlabel('epoch')\n", - "plt.show()" - ], - "metadata": { - "id": "cTH6flzcrck0", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 513 - }, - "outputId": "21ce5db8-89b4-4181-a63f-4ee55aefb996" - }, - "execution_count": 61, - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ], - "image/png": "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xIYNGwBYsWIFZ599NuBcHFx11VVMnTqVgQMH8sQTT9TvLyEhob781KlTufDCCxk2bBiXXnopdZXOt956i2HDhjFu3Dhuvvnm+v02tmLFCkaOHMn111/Pyy+/XL987969nH/++WRnZ5Odnc3q1asBmD9/PscddxzZ2dlcdtll9d/vtdde8xnfpEmTOPfccxkxYgQA5513HuPGjWPkyJE8++yz9du88847jB07luzsbKZPn47H42Hw4MHk5+cDzoXIoEGD6ufbQ8e5DOvE/mflVsqra7n11MHBDsUYE0L+/c31fLPnYJvuc0TfJO49Z2Srt8vLy2P16tWEh4dz8OBBVq1aRUREBEuXLuXuu+/mb3/72xHbfPfddyxfvpySkhKGDh3K9ddff8RjXmvXrmX9+vX07duXiRMn8uGHH5KTk8O1117LypUrycrKYvbs2U3G9fLLLzN79mxmzpzJ3XffTXV1NZGRkdx8881MmTKF119/ndraWkpLS1m/fj3/8R//werVq0lNTaWwsLDF7/3555/z9ddf1/def/755+nevTvl5eUcf/zxXHDBBXg8Hq6++ur6eAsLCwkLC2POnDksWLCAW265haVLl5KdnU17dgi3GvyPtK+kgvkfbee80f0Y1DMx2OEYY0xAXHTRRYSHhwNQXFzMRRddxLHHHsutt97K+vXrfW5z1llnER0dTWpqKj179mTv3r1HlBk/fjzp6emEhYUxevRotm/fznfffcfAgQPrk2pTCb6qqoq33nqL8847j6SkJCZMmMDixYsBeO+997j++usBCA8PJzk5mffee4+LLrqI1FTnDaPdu7f8tNP48eMbPJr2xBNPkJ2dzQknnMCuXbvYtGkTH3/8MZMnT64vV7ffq666ivnz5wPOhcGVV17Z4vHaktXgf6Snl2+hula5ebrV3o0xbetoatqBEh8fXz/9b//2b5xyyim8/vrrbN++nalTp/rcJjo6un46PDycmpqaoyrTlMWLF1NUVMSoUaMAKCsrIzY2tsnm/KZERETUd9DzeDwNOhN6f+8VK1awdOlSPvroI+Li4pg6dWqzj65lZGTQq1cv3nvvPT799FMWLFjQqrh+LKvB/wh7isr53092cuHYdAakxre8gTHGhIDi4mL69esHwIsvvtjm+x86dChbt25l+/btALzyyis+y7388ss899xzbN++ne3b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eMyMGTPIzs4mOzubI444gu3btzN06NAGZaZMmVK3beLEiWzatImCggKOOeaYukfOZs+ezbx589oU55IlS5g2bRqDBgXzu1x++eW89NJL3HnnnWzcuJEbb7yRGTNmcM455wBw8sknc/nll/OpT32KT33qU+3+XZKhJnoREUm5/Pz8uuU777yT6dOn88Ybb/DUU081+3hYdnZ23XI0GiUWi3WoTGfo168fq1atYtq0afzsZz/jc5/7HABPP/00119/PcuXL+fUU089bJ+fiK7gRUR6qY5caXeF0tJShgwZAsBvfvObTj//mDFj2LhxI5s2bWLkyJE88sgjbT52ypQp3HTTTezcuZN+/foxf/58brzxRnbu3ElWVhYXX3wxY8aM4YorrqCmpobNmzczffp0zjzzTBYsWMCBAwfo27dvp3+nRJTgRUSkW7ntttu48sor+fa3v82MGTM6/fy5ubn85Cc/4dxzzyU/P59TTz212bKLFy9u0Oz/2GOPcd999zF9+nTcnRkzZjBz5kxWrVrFVVddRU1NDQDf+c53qK6u5oorrqC0tBR356abbuqy5A5gtT0KezrNBy8i0ro333yTE044IdVhpNyBAwcoKCjA3bn++usZPXo0X/rSl1IdVosS/duZ2TJ3T/jsoO7Bi4hIr/OLX/yCiRMncuKJJ1JaWsq1116b6pA6nZroRUSk1/nSl77U7a/Yk6UreBERkTSkBC8iIpKGlOBFRETSkBK8iIhIGlKCFxGRLjN9+nSeffbZBtt++MMfct111zV7zLRp06h9DPq8885LOKb73Xffzf3339/iZz/55JOsW7eubv0b3/gGzz33XHvCT6i7TiurBC8iIl1m9uzZLFiwoMG2BQsWtHnCl0WLFnV4sJjGCf6ee+7hox/9aIfO1RMowYuISJe55JJLePrpp6msrARg06ZNbN26lQ9/+MNcd911FBcXc+KJJ3LXXXclPH7kyJHs3LkTgHvvvZfjjz+eM888s25KWQiecT/11FOZMGECF198MeXl5bz66qssXLiQW2+9lYkTJ/LPf/6TOXPm8PjjjwPBiHWTJk1i/PjxXH311Rw6dKju8+666y5OOeUUxo8fz1tvvdXm75rqaWWV4EVEpMv079+fKVOm8MwzzwDB1ftll12GmXHvvfeydOlSVq9ezYsvvsjq1aubPc+yZctYsGABK1eu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\n" - }, - "metadata": { - "needs_background": "light" - } - } - ] - }, - { - "cell_type": "code", - "source": [ - "from sklearn.metrics import classification_report, confusion_matrix\n", - "import numpy as np\n", - "validation_classes = []\n", - "validation_images = []\n", - "for i in range( -(-validate.samples // validate.batch_size)):\n", - " batch = validate.next()\n", - " expected = np.argmax(batch[1], axis=1)\n", - " validation_classes.extend(expected)\n", - " validation_images.extend(batch[0])\n", - "validation_classes = np.array(validation_classes)\n", - "validation_images = np.array(validation_images)\n", - "y_pred = np.argmax(model.predict(validation_images), axis=1)\n", - "print(classification_report(validation_classes, y_pred,target_names = ['without_mask', 'mask_weared_incorrect', 'with_mask']))\n", - "# print classification report" - ], - "metadata": { - "id": "fJ-ZtU84r66Z", - "colab": { - "base_uri": "https://localhost:8080/" - }, - "outputId": "1f7e9a68-abdd-45a6-83ad-461f43f3d402" - }, - "execution_count": 62, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - " precision recall f1-score support\n", - "\n", - " without_mask 0.97 0.98 0.98 598\n", - "mask_weared_incorrect 0.95 0.98 0.96 598\n", - " with_mask 0.99 0.95 0.97 598\n", - "\n", - " accuracy 0.97 1794\n", - " macro avg 0.97 0.97 0.97 1794\n", - " weighted avg 0.97 0.97 0.97 1794\n", - "\n" - ] - } - ] - }, - { - "cell_type": "code", - "source": [ - "" - ], - "metadata": { - "id": "I9WN1LWZV1Rz" - }, - "execution_count": null, - "outputs": [] - } - ] -} \ No newline at end of file