diff --git a/Assignment-1/Aditya_C/Aditya.txt b/Assignment-1/Aditya_C/Aditya.txt new file mode 100644 index 0000000..31ec778 --- /dev/null +++ b/Assignment-1/Aditya_C/Aditya.txt @@ -0,0 +1,3 @@ +Aditya C +EEE +Sports and many more diff --git a/Assignment-1/Akashdeep.txt b/Assignment-1/Akashdeep.txt new file mode 100644 index 0000000..b40effb --- /dev/null +++ b/Assignment-1/Akashdeep.txt @@ -0,0 +1,4 @@ +Name : Akashdeep S +Branch : Information Technology +Hobbies : playing football, + listening to music diff --git a/Assignment-1/Anshuman.txt b/Assignment-1/Anshuman.txt new file mode 100644 index 0000000..130b85e --- /dev/null +++ b/Assignment-1/Anshuman.txt @@ -0,0 +1,3 @@ +Anshuman Sinha +EEE +Sleeping. \ No newline at end of file diff --git a/Assignment-1/Bhaskar.txt b/Assignment-1/Bhaskar.txt new file mode 100644 index 0000000..579cced --- /dev/null +++ b/Assignment-1/Bhaskar.txt @@ -0,0 +1,3 @@ +Bhaskar Vyas +ECE +Movies,chess diff --git a/Assignment-1/Dhruv.txt b/Assignment-1/Dhruv.txt new file mode 100644 index 0000000..623277c --- /dev/null +++ b/Assignment-1/Dhruv.txt @@ -0,0 +1,3 @@ +Thummar Dhruv +Mechanical +Swimming, reading and many more diff --git a/Assignment-1/Gayathri/Gayathri.txt b/Assignment-1/Gayathri/Gayathri.txt new file mode 100644 index 0000000..3f1778f --- /dev/null +++ b/Assignment-1/Gayathri/Gayathri.txt @@ -0,0 +1,5 @@ +Name: Gayathri + +Branch: Information Technology + +Hobbies: Novels and Daydreaming diff --git a/Assignment-1/Karn.txt b/Assignment-1/Karn.txt new file mode 100644 index 0000000..dddfce3 --- /dev/null +++ b/Assignment-1/Karn.txt @@ -0,0 +1,3 @@ +Name - Karn Tiwari +Branch - EEE +Hobbies - Solving Puzzles,Playing Chess and Football,Coding diff --git a/Assignment-1/README.md b/Assignment-1/README.md new file mode 100644 index 0000000..b8568d8 --- /dev/null +++ b/Assignment-1/README.md @@ -0,0 +1,17 @@ +

Preliminary Assignment on GitHub

+ +Push a text file in which the following format should be there. Name the text file as yourname.txt. + +Your file path should be either + + "Assignment 1/(Your Name)/(Your Name).txt" or + + "Assignment 1/(Your Name).txt". + +Format: + + Name + + Branch + + Hobbies diff --git a/Assignment-1/Ritik.txt b/Assignment-1/Ritik.txt new file mode 100644 index 0000000..c73fbe8 --- /dev/null +++ b/Assignment-1/Ritik.txt @@ -0,0 +1,3 @@ +Name:Ritik Pansuriya +Branch:IT +Hobbies:sports diff --git a/Assignment-1/Sandeep.txt b/Assignment-1/Sandeep.txt new file mode 100644 index 0000000..2361a1f --- /dev/null +++ b/Assignment-1/Sandeep.txt @@ -0,0 +1,4 @@ + +Name : V R Sandeep +Branch : Information Technology +Hobbies : Sleeping and pretty much that's it diff --git a/Assignment-1/Shashank.txt b/Assignment-1/Shashank.txt new file mode 100644 index 0000000..4bebfe1 --- /dev/null +++ b/Assignment-1/Shashank.txt @@ -0,0 +1,3 @@ +Shashank D +CSE +quizzing,chess.. diff --git a/Assignment-1/Sujan.txt b/Assignment-1/Sujan.txt new file mode 100644 index 0000000..1d7dacd --- /dev/null +++ b/Assignment-1/Sujan.txt @@ -0,0 +1,4 @@ +Name : Sujan +Branch : Information Technology +Hobbies : playing basketball, + listening to music diff --git a/Assignment-1/shubham.txt b/Assignment-1/shubham.txt new file mode 100644 index 0000000..b564e29 --- /dev/null +++ b/Assignment-1/shubham.txt @@ -0,0 +1,3 @@ +Shubham Dubey +MCA +Learning new things \ No newline at end of file diff --git a/SE_ADAM_TEST1.ipynb b/SE_ADAM_TEST1.ipynb new file mode 100644 index 0000000..02106bb --- /dev/null +++ b/SE_ADAM_TEST1.ipynb @@ -0,0 +1,778 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "SE_ADAM_TEST1.ipynb", + "provenance": [], + "collapsed_sections": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "accelerator": "GPU" + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "OwMSfMzJLjvh", + "outputId": "475e1643-1b0d-4656-c497-1285c0c2075f", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 935 + } + }, + "source": [ + "!pip install wandb" + ], + "execution_count": 1, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Collecting wandb\n", + "\u001b[?25l Downloading https://files.pythonhosted.org/packages/80/14/9a2c792e48e01e55913b9495ce0e8a16297e2bc1cc99e86a848d205c91e7/wandb-0.10.5-py2.py3-none-any.whl (1.7MB)\n", + "\u001b[K |████████████████████████████████| 1.7MB 2.8MB/s \n", + "\u001b[?25hCollecting docker-pycreds>=0.4.0\n", + " Downloading https://files.pythonhosted.org/packages/f5/e8/f6bd1eee09314e7e6dee49cbe2c5e22314ccdb38db16c9fc72d2fa80d054/docker_pycreds-0.4.0-py2.py3-none-any.whl\n", + "Collecting watchdog>=0.8.3\n", + "\u001b[?25l Downloading https://files.pythonhosted.org/packages/0e/06/121302598a4fc01aca942d937f4a2c33430b7181137b35758913a8db10ad/watchdog-0.10.3.tar.gz (94kB)\n", + "\u001b[K |████████████████████████████████| 102kB 8.9MB/s \n", + "\u001b[?25hRequirement already satisfied: six>=1.13.0 in /usr/local/lib/python3.6/dist-packages (from wandb) (1.15.0)\n", + "Collecting subprocess32>=3.5.3\n", + "\u001b[?25l Downloading https://files.pythonhosted.org/packages/32/c8/564be4d12629b912ea431f1a50eb8b3b9d00f1a0b1ceff17f266be190007/subprocess32-3.5.4.tar.gz (97kB)\n", + "\u001b[K |████████████████████████████████| 102kB 8.9MB/s \n", + "\u001b[?25hRequirement already satisfied: psutil>=5.0.0 in /usr/local/lib/python3.6/dist-packages (from wandb) (5.4.8)\n", + "Requirement already satisfied: requests<3,>=2.0.0 in /usr/local/lib/python3.6/dist-packages (from wandb) (2.23.0)\n", + "Requirement already satisfied: Click>=7.0 in /usr/local/lib/python3.6/dist-packages (from wandb) (7.1.2)\n", + "Collecting shortuuid>=0.5.0\n", + " Downloading https://files.pythonhosted.org/packages/25/a6/2ecc1daa6a304e7f1b216f0896b26156b78e7c38e1211e9b798b4716c53d/shortuuid-1.0.1-py3-none-any.whl\n", + "Requirement already satisfied: protobuf>=3.12.0 in /usr/local/lib/python3.6/dist-packages (from wandb) (3.12.4)\n", + "Requirement already satisfied: promise<3,>=2.0 in /usr/local/lib/python3.6/dist-packages (from wandb) (2.3)\n", + "Collecting configparser>=3.8.1\n", + " Downloading https://files.pythonhosted.org/packages/08/b2/ef713e0e67f6e7ec7d59aea3ee78d05b39c15930057e724cc6d362a8c3bb/configparser-5.0.1-py3-none-any.whl\n", + "Requirement already satisfied: PyYAML in /usr/local/lib/python3.6/dist-packages (from wandb) (3.13)\n", + "Requirement already satisfied: python-dateutil>=2.6.1 in /usr/local/lib/python3.6/dist-packages (from wandb) (2.8.1)\n", + "Collecting GitPython>=1.0.0\n", + "\u001b[?25l Downloading https://files.pythonhosted.org/packages/c0/d7/b2b0672e0331567157adf9281f41ee731c412ee518ca5e6552c27fa73c91/GitPython-3.1.9-py3-none-any.whl (159kB)\n", + "\u001b[K |████████████████████████████████| 163kB 12.7MB/s \n", + "\u001b[?25hCollecting sentry-sdk>=0.4.0\n", + "\u001b[?25l Downloading https://files.pythonhosted.org/packages/cd/df/1145dc9389138eb47649806b42aaad5b0ecdfd3e93c7c51c1fffd80a8f90/sentry_sdk-0.18.0-py2.py3-none-any.whl (120kB)\n", + "\u001b[K |████████████████████████████████| 122kB 16.0MB/s \n", + "\u001b[?25hCollecting pathtools>=0.1.1\n", + " Downloading https://files.pythonhosted.org/packages/e7/7f/470d6fcdf23f9f3518f6b0b76be9df16dcc8630ad409947f8be2eb0ed13a/pathtools-0.1.2.tar.gz\n", + "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.6/dist-packages (from requests<3,>=2.0.0->wandb) (2020.6.20)\n", + "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.6/dist-packages (from requests<3,>=2.0.0->wandb) (1.24.3)\n", + "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.6/dist-packages (from requests<3,>=2.0.0->wandb) (2.10)\n", + "Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.6/dist-packages (from requests<3,>=2.0.0->wandb) (3.0.4)\n", + "Requirement already satisfied: setuptools in /usr/local/lib/python3.6/dist-packages (from protobuf>=3.12.0->wandb) (50.3.0)\n", + "Collecting gitdb<5,>=4.0.1\n", + "\u001b[?25l Downloading https://files.pythonhosted.org/packages/48/11/d1800bca0a3bae820b84b7d813ad1eff15a48a64caea9c823fc8c1b119e8/gitdb-4.0.5-py3-none-any.whl (63kB)\n", + "\u001b[K |████████████████████████████████| 71kB 7.7MB/s \n", + "\u001b[?25hCollecting smmap<4,>=3.0.1\n", + " Downloading https://files.pythonhosted.org/packages/b0/9a/4d409a6234eb940e6a78dfdfc66156e7522262f5f2fecca07dc55915952d/smmap-3.0.4-py2.py3-none-any.whl\n", + "Building wheels for collected packages: watchdog, subprocess32, pathtools\n", + " Building wheel for watchdog (setup.py) ... \u001b[?25l\u001b[?25hdone\n", + " Created wheel for watchdog: filename=watchdog-0.10.3-cp36-none-any.whl size=73873 sha256=315c287e9ec8e5cda684a12cd98e66a3d20c03ef872a28e70a7d7fd2bd8dbfd5\n", + " Stored in directory: /root/.cache/pip/wheels/a8/1d/38/2c19bb311f67cc7b4d07a2ec5ea36ab1a0a0ea50db994a5bc7\n", + " Building wheel for subprocess32 (setup.py) ... \u001b[?25l\u001b[?25hdone\n", + " Created wheel for subprocess32: filename=subprocess32-3.5.4-cp36-none-any.whl size=6489 sha256=1fee071aa5f104fe552422c16a1382d5dca2e71110ae5e1ff6b598bf534192f2\n", + " Stored in directory: /root/.cache/pip/wheels/68/39/1a/5e402bdfdf004af1786c8b853fd92f8c4a04f22aad179654d1\n", + " Building wheel for pathtools (setup.py) ... \u001b[?25l\u001b[?25hdone\n", + " Created wheel for pathtools: filename=pathtools-0.1.2-cp36-none-any.whl size=8785 sha256=9dd594290a0b05e141c1ee0e9114aa99ed04d2ae905b32a88372a389e2e5ad10\n", + " Stored in directory: /root/.cache/pip/wheels/0b/04/79/c3b0c3a0266a3cb4376da31e5bfe8bba0c489246968a68e843\n", + "Successfully built watchdog subprocess32 pathtools\n", + "Installing collected packages: docker-pycreds, pathtools, watchdog, subprocess32, shortuuid, configparser, smmap, gitdb, GitPython, sentry-sdk, wandb\n", + "Successfully installed GitPython-3.1.9 configparser-5.0.1 docker-pycreds-0.4.0 gitdb-4.0.5 pathtools-0.1.2 sentry-sdk-0.18.0 shortuuid-1.0.1 smmap-3.0.4 subprocess32-3.5.4 wandb-0.10.5 watchdog-0.10.3\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "k9xxkbkFB60U", + "outputId": "731f999a-e8b6-4fd9-ff7c-57256b17692d", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 616 + } + }, + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from keras.models import Sequential\n", + "from keras.layers import Dense\n", + "from keras.layers import Dropout\n", + "from keras.layers import Flatten\n", + "from keras.constraints import maxnorm\n", + "from keras.optimizers import SGD,Adam\n", + "from keras.layers import Activation\n", + "from keras.layers.convolutional import Conv2D, MaxPooling2D, ZeroPadding2D\n", + "from keras.layers.normalization import BatchNormalization\n", + "from keras.initializers import glorot_normal\n", + "from keras.utils import np_utils\n", + "from keras import backend as K\n", + "from keras.datasets import cifar10\n", + "from keras.callbacks import EarlyStopping, LearningRateScheduler\n", + "from keras.preprocessing.image import ImageDataGenerator\n", + "from keras.utils import to_categorical\n", + "from keras.regularizers import l2\n", + "from keras.optimizers.schedules import ExponentialDecay\n", + "\n", + "import wandb\n", + "from wandb.keras import WandbCallback\n", + "wandb.init(project=\"vgg-cifar10\")" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "display_data", + "data": { + "application/javascript": [ + "\n", + " window._wandbApiKey = new Promise((resolve, reject) => {\n", + " function loadScript(url) {\n", + " return new Promise(function(resolve, reject) {\n", + " let newScript = document.createElement(\"script\");\n", + " newScript.onerror = reject;\n", + " newScript.onload = resolve;\n", + " document.body.appendChild(newScript);\n", + " newScript.src = url;\n", + " });\n", + " }\n", + " loadScript(\"https://cdn.jsdelivr.net/npm/postmate/build/postmate.min.js\").then(() => {\n", + " const iframe = document.createElement('iframe')\n", + " iframe.style.cssText = \"width:0;height:0;border:none\"\n", + " document.body.appendChild(iframe)\n", + " const handshake = new Postmate({\n", + " container: iframe,\n", + " url: 'https://wandb.ai/authorize'\n", + " });\n", + " const timeout = setTimeout(() => reject(\"Couldn't auto authenticate\"), 5000)\n", + " handshake.then(function(child) {\n", + " child.on('authorize', data => {\n", + " clearTimeout(timeout)\n", + " resolve(data)\n", + " });\n", + " });\n", + " })\n", + " });\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\u001b[34m\u001b[1mwandb\u001b[0m: Appending key for api.wandb.ai to your netrc file: /root/.netrc\n" + ], + "name": "stderr" + }, + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + " Tracking run with wandb version 0.10.5
\n", + " Syncing run astral-frog-15 to Weights & Biases (Documentation).
\n", + " Project page: https://wandb.ai/ritiksp2411/vgg-cifar10
\n", + " Run page: https://wandb.ai/ritiksp2411/vgg-cifar10/runs/384sllpk
\n", + " Run data is saved locally in wandb/run-20201009_112321-384sllpk

\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "

Run(384sllpk)

" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 2 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "DMcbIP_jCP1x", + "outputId": "f5fe9f48-6957-4f9a-d8bc-331cf0692802", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + } + }, + "source": [ + "batch_size = 128\n", + "epochs = 50\n", + "learning_rate = 0.035\n", + "lr_decay = 1e-7\n", + "lr_drop = 20\n", + "(x_train, y_train), (x_test, y_test) = cifar10.load_data()\n", + "x_train = x_train.astype('float32')\n", + "x_test = x_test.astype('float32')\n", + "\n", + "y_train = to_categorical(y_train, 10)\n", + "y_test = to_categorical(y_test, 10)\n", + "\n", + "x_train /= 255\n", + "x_test /= 255\n", + "\n", + "class_names = ['airplane','automobile','bird','cat','deer',\n", + " 'dog','frog','horse','ship','truck']\n", + " \n", + "datagen = ImageDataGenerator(\n", + " featurewise_center=False, \n", + " samplewise_center=False, \n", + " featurewise_std_normalization=False, \n", + " samplewise_std_normalization=False, \n", + " zca_whitening=False, \n", + " rotation_range=15, \n", + " width_shift_range=0.1, \n", + " height_shift_range=0.1, \n", + " horizontal_flip=True, \n", + " vertical_flip=False) \n", + " \n", + "datagen.fit(x_train)\n" + ], + "execution_count": 3, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Downloading data from https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz\n", + "170500096/170498071 [==============================] - 11s 0us/step\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "YLWt1VYyKrTf", + "outputId": "4f9cce8a-7245-41d0-fc64-1dec5e7770d4", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + } + }, + "source": [ + "BATCH_NORM = True\n", + "num_classes=10\n", + "\n", + "def base_model():\n", + " model = Sequential()\n", + "\n", + " model.add(Conv2D(64, (3, 3), padding='same', input_shape=x_train.shape[1:], name='block1_conv1'))\n", + " model.add(BatchNormalization()) if BATCH_NORM else None\n", + " model.add(Activation('relu'))\n", + "\n", + " model.add(Conv2D(64, (3, 3), padding='same', name='block1_conv2'))\n", + " model.add(BatchNormalization()) if BATCH_NORM else None\n", + " model.add(Activation('relu'))\n", + "\n", + " model.add(MaxPooling2D((2, 2), strides=(2, 2), name='block1_pool'))\n", + " model.add(Dropout(0.2))\n", + "\n", + " model.add(Conv2D(128, (3, 3), padding='same', name='block2_conv1' ))\n", + " model.add(BatchNormalization()) if BATCH_NORM else None\n", + " model.add(Activation('relu'))\n", + "\n", + " model.add(Conv2D(128, (3, 3), padding='same', name='block2_conv2' ))\n", + " model.add(BatchNormalization()) if BATCH_NORM else None\n", + " model.add(Activation('relu'))\n", + " model.add(MaxPooling2D((2, 2), strides=(2, 2), name='block2_pool'))\n", + " model.add(Dropout(0.2))\n", + "\n", + " model.add(Conv2D(256, (3, 3), padding='same', name='block3_conv1' ))\n", + " model.add(BatchNormalization()) if BATCH_NORM else None\n", + " model.add(Activation('relu'))\n", + "\n", + " model.add(Conv2D(256, (3, 3), padding='same', name='block3_conv2' ))\n", + " model.add(BatchNormalization()) if BATCH_NORM else None\n", + " model.add(Activation('relu'))\n", + "\n", + " model.add(Conv2D(256, (3, 3), padding='same', name='block3_conv3' ))\n", + " model.add(BatchNormalization()) if BATCH_NORM else None\n", + " model.add(Activation('relu'))\n", + "\n", + " model.add(Conv2D(256, (3, 3), padding='same', name='block3_conv4' ))\n", + " model.add(BatchNormalization()) if BATCH_NORM else None\n", + " model.add(Activation('relu'))\n", + "\n", + " model.add(MaxPooling2D((2, 2), strides=(2, 2), name='block3_pool'))\n", + " model.add(Dropout(0.2))\n", + "\n", + " model.add(Conv2D(512, (3, 3), padding='same', name='block4_conv1' ))\n", + " model.add(BatchNormalization()) if BATCH_NORM else None\n", + " model.add(Activation('relu'))\n", + "\n", + " model.add(Conv2D(512, (3, 3), padding='same', name='block4_conv2' ))\n", + " model.add(BatchNormalization()) if BATCH_NORM else None\n", + " model.add(Activation('relu'))\n", + "\n", + " model.add(Conv2D(512, (3, 3), padding='same', name='block4_conv3' ))\n", + " model.add(BatchNormalization()) if BATCH_NORM else None\n", + " model.add(Activation('relu'))\n", + "\n", + " model.add(Conv2D(512, (3, 3), padding='same', name='block4_conv4' ))\n", + " model.add(BatchNormalization()) if BATCH_NORM else None\n", + " model.add(Activation('relu'))\n", + " model.add(MaxPooling2D((2, 2), strides=(2, 2), name='block4_pool'))\n", + " model.add(Dropout(0.2))\n", + "\n", + " model.add(Conv2D(512, (3, 3), padding='same', name='block5_conv1' ))\n", + " model.add(BatchNormalization()) if BATCH_NORM else None\n", + " model.add(Activation('relu'))\n", + "\n", + " model.add(Conv2D(512, (3, 3), padding='same', name='block5_conv2' ))\n", + " model.add(BatchNormalization()) if BATCH_NORM else None\n", + " model.add(Activation('relu'))\n", + "\n", + " model.add(Conv2D(512, (3, 3), padding='same', name='block5_conv3' ))\n", + " model.add(BatchNormalization()) if BATCH_NORM else None\n", + " model.add(Activation('relu'))\n", + "\n", + " model.add(Conv2D(512, (3, 3), padding='same', name='block5_conv4' ))\n", + " model.add(BatchNormalization()) if BATCH_NORM else None\n", + " model.add(Activation('relu'))\n", + "\n", + " model.add(Flatten())\n", + " model.add(Dropout(0.2))\n", + "\n", + " model.add(Dense(4096 ))\n", + " model.add(BatchNormalization()) if BATCH_NORM else None\n", + " model.add(Activation('relu'))\n", + " model.add(Dropout(0.5))\n", + "\n", + " model.add(Dense(4096, name='fc2' ))\n", + " model.add(BatchNormalization()) if BATCH_NORM else None\n", + " model.add(Activation('relu'))\n", + " model.add(Dropout(0.5))\n", + "\n", + " model.add(Dense(num_classes))\n", + " model.add(BatchNormalization()) if BATCH_NORM else None\n", + " model.add(Activation('softmax'))\n", + "\n", + " # sgd = SGD(lr=learning_rate, decay=lr_decay, momentum=0.75, nesterov=True)\n", + " lr_schedule = ExponentialDecay(\n", + " initial_learning_rate=1e-2,\n", + " decay_steps=10000,\n", + " decay_rate=0.8)\n", + " optimizer = Adam(learning_rate=lr_schedule)\n", + " \n", + " model.compile(loss='categorical_crossentropy', optimizer=optimizer,metrics=['accuracy'])\n", + " return model\n", + "\n", + "\n", + "cnn_n = base_model()\n", + "cnn_n.summary()\n", + "\n", + "cnn_n.fit_generator(datagen.flow(x_train, y_train,\n", + " batch_size=batch_size),\n", + " steps_per_epoch=x_train.shape[0] // batch_size,\n", + " epochs=epochs,\n", + " validation_data=(x_test, y_test),callbacks=[WandbCallback(data_type=\"image\", validation_data=(x_test, y_test), labels=class_names),\n", + " EarlyStopping(monitor='val_accuracy',patience=7, restore_best_weights=True)],verbose=2)\n", + "#cnn_n.save_weights('cifar10vgg.h5')\n", + "\n", + "\n" + ], + "execution_count": 4, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Model: \"sequential\"\n", + "_________________________________________________________________\n", + "Layer (type) Output Shape Param # \n", + "=================================================================\n", + "block1_conv1 (Conv2D) (None, 32, 32, 64) 1792 \n", + "_________________________________________________________________\n", + "batch_normalization (BatchNo (None, 32, 32, 64) 256 \n", + "_________________________________________________________________\n", + "activation (Activation) (None, 32, 32, 64) 0 \n", + "_________________________________________________________________\n", + "block1_conv2 (Conv2D) (None, 32, 32, 64) 36928 \n", + "_________________________________________________________________\n", + "batch_normalization_1 (Batch (None, 32, 32, 64) 256 \n", + "_________________________________________________________________\n", + "activation_1 (Activation) (None, 32, 32, 64) 0 \n", + "_________________________________________________________________\n", + "block1_pool (MaxPooling2D) (None, 16, 16, 64) 0 \n", + "_________________________________________________________________\n", + "dropout (Dropout) (None, 16, 16, 64) 0 \n", + "_________________________________________________________________\n", + "block2_conv1 (Conv2D) (None, 16, 16, 128) 73856 \n", + "_________________________________________________________________\n", + "batch_normalization_2 (Batch (None, 16, 16, 128) 512 \n", + "_________________________________________________________________\n", + "activation_2 (Activation) (None, 16, 16, 128) 0 \n", + "_________________________________________________________________\n", + "block2_conv2 (Conv2D) (None, 16, 16, 128) 147584 \n", + "_________________________________________________________________\n", + "batch_normalization_3 (Batch (None, 16, 16, 128) 512 \n", + "_________________________________________________________________\n", + "activation_3 (Activation) (None, 16, 16, 128) 0 \n", + "_________________________________________________________________\n", + "block2_pool (MaxPooling2D) (None, 8, 8, 128) 0 \n", + "_________________________________________________________________\n", + "dropout_1 (Dropout) (None, 8, 8, 128) 0 \n", + "_________________________________________________________________\n", + "block3_conv1 (Conv2D) (None, 8, 8, 256) 295168 \n", + "_________________________________________________________________\n", + "batch_normalization_4 (Batch (None, 8, 8, 256) 1024 \n", + "_________________________________________________________________\n", + "activation_4 (Activation) (None, 8, 8, 256) 0 \n", + "_________________________________________________________________\n", + "block3_conv2 (Conv2D) (None, 8, 8, 256) 590080 \n", + "_________________________________________________________________\n", + "batch_normalization_5 (Batch (None, 8, 8, 256) 1024 \n", + "_________________________________________________________________\n", + "activation_5 (Activation) (None, 8, 8, 256) 0 \n", + "_________________________________________________________________\n", + "block3_conv3 (Conv2D) (None, 8, 8, 256) 590080 \n", + "_________________________________________________________________\n", + "batch_normalization_6 (Batch (None, 8, 8, 256) 1024 \n", + "_________________________________________________________________\n", + "activation_6 (Activation) (None, 8, 8, 256) 0 \n", + "_________________________________________________________________\n", + "block3_conv4 (Conv2D) (None, 8, 8, 256) 590080 \n", + "_________________________________________________________________\n", + "batch_normalization_7 (Batch (None, 8, 8, 256) 1024 \n", + "_________________________________________________________________\n", + "activation_7 (Activation) (None, 8, 8, 256) 0 \n", + "_________________________________________________________________\n", + "block3_pool (MaxPooling2D) (None, 4, 4, 256) 0 \n", + "_________________________________________________________________\n", + "dropout_2 (Dropout) (None, 4, 4, 256) 0 \n", + "_________________________________________________________________\n", + "block4_conv1 (Conv2D) (None, 4, 4, 512) 1180160 \n", + "_________________________________________________________________\n", + "batch_normalization_8 (Batch (None, 4, 4, 512) 2048 \n", + "_________________________________________________________________\n", + "activation_8 (Activation) (None, 4, 4, 512) 0 \n", + "_________________________________________________________________\n", + "block4_conv2 (Conv2D) (None, 4, 4, 512) 2359808 \n", + "_________________________________________________________________\n", + "batch_normalization_9 (Batch (None, 4, 4, 512) 2048 \n", + "_________________________________________________________________\n", + "activation_9 (Activation) (None, 4, 4, 512) 0 \n", + "_________________________________________________________________\n", + "block4_conv3 (Conv2D) (None, 4, 4, 512) 2359808 \n", + "_________________________________________________________________\n", + "batch_normalization_10 (Batc (None, 4, 4, 512) 2048 \n", + "_________________________________________________________________\n", + "activation_10 (Activation) (None, 4, 4, 512) 0 \n", + "_________________________________________________________________\n", + "block4_conv4 (Conv2D) (None, 4, 4, 512) 2359808 \n", + "_________________________________________________________________\n", + "batch_normalization_11 (Batc (None, 4, 4, 512) 2048 \n", + "_________________________________________________________________\n", + "activation_11 (Activation) (None, 4, 4, 512) 0 \n", + "_________________________________________________________________\n", + "block4_pool (MaxPooling2D) (None, 2, 2, 512) 0 \n", + "_________________________________________________________________\n", + "dropout_3 (Dropout) (None, 2, 2, 512) 0 \n", + "_________________________________________________________________\n", + "block5_conv1 (Conv2D) (None, 2, 2, 512) 2359808 \n", + "_________________________________________________________________\n", + "batch_normalization_12 (Batc (None, 2, 2, 512) 2048 \n", + "_________________________________________________________________\n", + "activation_12 (Activation) (None, 2, 2, 512) 0 \n", + "_________________________________________________________________\n", + "block5_conv2 (Conv2D) (None, 2, 2, 512) 2359808 \n", + "_________________________________________________________________\n", + "batch_normalization_13 (Batc (None, 2, 2, 512) 2048 \n", + "_________________________________________________________________\n", + "activation_13 (Activation) (None, 2, 2, 512) 0 \n", + "_________________________________________________________________\n", + "block5_conv3 (Conv2D) (None, 2, 2, 512) 2359808 \n", + "_________________________________________________________________\n", + "batch_normalization_14 (Batc (None, 2, 2, 512) 2048 \n", + "_________________________________________________________________\n", + "activation_14 (Activation) (None, 2, 2, 512) 0 \n", + "_________________________________________________________________\n", + "block5_conv4 (Conv2D) (None, 2, 2, 512) 2359808 \n", + "_________________________________________________________________\n", + "batch_normalization_15 (Batc (None, 2, 2, 512) 2048 \n", + "_________________________________________________________________\n", + "activation_15 (Activation) (None, 2, 2, 512) 0 \n", + "_________________________________________________________________\n", + "flatten (Flatten) (None, 2048) 0 \n", + "_________________________________________________________________\n", + "dropout_4 (Dropout) (None, 2048) 0 \n", + "_________________________________________________________________\n", + "dense (Dense) (None, 4096) 8392704 \n", + "_________________________________________________________________\n", + "batch_normalization_16 (Batc (None, 4096) 16384 \n", + "_________________________________________________________________\n", + "activation_16 (Activation) (None, 4096) 0 \n", + "_________________________________________________________________\n", + "dropout_5 (Dropout) (None, 4096) 0 \n", + "_________________________________________________________________\n", + "fc2 (Dense) (None, 4096) 16781312 \n", + "_________________________________________________________________\n", + "batch_normalization_17 (Batc (None, 4096) 16384 \n", + "_________________________________________________________________\n", + "activation_17 (Activation) (None, 4096) 0 \n", + "_________________________________________________________________\n", + "dropout_6 (Dropout) (None, 4096) 0 \n", + "_________________________________________________________________\n", + "dense_1 (Dense) (None, 10) 40970 \n", + "_________________________________________________________________\n", + "batch_normalization_18 (Batc (None, 10) 40 \n", + "_________________________________________________________________\n", + "activation_18 (Activation) (None, 10) 0 \n", + "=================================================================\n", + "Total params: 45,294,194\n", + "Trainable params: 45,266,782\n", + "Non-trainable params: 27,412\n", + "_________________________________________________________________\n", + "WARNING:tensorflow:From :117: Model.fit_generator (from tensorflow.python.keras.engine.training) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Please use Model.fit, which supports generators.\n", + "Epoch 1/50\n", + "390/390 - 84s - loss: 2.0988 - accuracy: 0.1868 - val_loss: 2.6200 - val_accuracy: 0.2032\n", + "Epoch 2/50\n", + "390/390 - 77s - loss: 1.7705 - accuracy: 0.3036 - val_loss: 2.7969 - val_accuracy: 0.2395\n", + "Epoch 3/50\n", + "390/390 - 81s - loss: 1.6703 - accuracy: 0.3509 - val_loss: 1.9228 - val_accuracy: 0.3150\n", + "Epoch 4/50\n", + "390/390 - 76s - loss: 1.5795 - accuracy: 0.3932 - val_loss: 2.2645 - val_accuracy: 0.3303\n", + "Epoch 5/50\n", + "390/390 - 77s - loss: 1.3337 - accuracy: 0.5015 - val_loss: 2.1478 - val_accuracy: 0.4154\n", + "Epoch 6/50\n", + "390/390 - 76s - loss: 1.2012 - accuracy: 0.5723 - val_loss: 2.2609 - val_accuracy: 0.3899\n", + "Epoch 7/50\n", + "390/390 - 80s - loss: 1.1149 - accuracy: 0.6088 - val_loss: 1.4302 - val_accuracy: 0.5703\n", + "Epoch 8/50\n", + "390/390 - 76s - loss: 1.0800 - accuracy: 0.6262 - val_loss: 1.4938 - val_accuracy: 0.5515\n", + "Epoch 9/50\n", + "390/390 - 80s - loss: 1.0133 - accuracy: 0.6566 - val_loss: 1.2144 - val_accuracy: 0.6160\n", + "Epoch 10/50\n", + "390/390 - 76s - loss: 0.9918 - accuracy: 0.6701 - val_loss: 1.7672 - val_accuracy: 0.5218\n", + "Epoch 11/50\n", + "390/390 - 79s - loss: 0.9449 - accuracy: 0.6896 - val_loss: 1.1652 - val_accuracy: 0.6537\n", + "Epoch 12/50\n", + "390/390 - 76s - loss: 0.9196 - accuracy: 0.7022 - val_loss: 1.2153 - val_accuracy: 0.6460\n", + "Epoch 13/50\n", + "390/390 - 80s - loss: 0.8980 - accuracy: 0.7111 - val_loss: 1.1107 - val_accuracy: 0.6767\n", + "Epoch 14/50\n", + "390/390 - 81s - loss: 0.7675 - accuracy: 0.7550 - val_loss: 0.7514 - val_accuracy: 0.7702\n", + "Epoch 15/50\n", + "390/390 - 77s - loss: 0.6913 - accuracy: 0.7807 - val_loss: 0.8137 - val_accuracy: 0.7465\n", + "Epoch 16/50\n", + "390/390 - 76s - loss: 0.6591 - accuracy: 0.7898 - val_loss: 0.8093 - val_accuracy: 0.7658\n", + "Epoch 17/50\n", + "390/390 - 79s - loss: 0.6255 - accuracy: 0.8013 - val_loss: 0.7468 - val_accuracy: 0.7708\n", + "Epoch 18/50\n", + "390/390 - 76s - loss: 0.6064 - accuracy: 0.8085 - val_loss: 0.7513 - val_accuracy: 0.7731\n", + "Epoch 19/50\n", + "390/390 - 78s - loss: 0.5739 - accuracy: 0.8180 - val_loss: 0.6173 - val_accuracy: 0.8098\n", + "Epoch 20/50\n", + "390/390 - 76s - loss: 0.5491 - accuracy: 0.8264 - val_loss: 0.7265 - val_accuracy: 0.7892\n", + "Epoch 21/50\n", + "390/390 - 76s - loss: 0.5294 - accuracy: 0.8332 - val_loss: 0.8763 - val_accuracy: 0.7735\n", + "Epoch 22/50\n", + "390/390 - 79s - loss: 0.5094 - accuracy: 0.8396 - val_loss: 0.5307 - val_accuracy: 0.8356\n", + "Epoch 23/50\n", + "390/390 - 76s - loss: 0.4926 - accuracy: 0.8456 - val_loss: 0.7604 - val_accuracy: 0.7830\n", + "Epoch 24/50\n", + "390/390 - 77s - loss: 0.4781 - accuracy: 0.8484 - val_loss: 0.5817 - val_accuracy: 0.8229\n", + "Epoch 25/50\n", + "390/390 - 76s - loss: 0.4614 - accuracy: 0.8542 - val_loss: 0.6331 - val_accuracy: 0.8152\n", + "Epoch 26/50\n", + "390/390 - 79s - loss: 0.4413 - accuracy: 0.8602 - val_loss: 0.4988 - val_accuracy: 0.8505\n", + "Epoch 27/50\n", + "390/390 - 76s - loss: 0.4266 - accuracy: 0.8662 - val_loss: 0.7549 - val_accuracy: 0.7807\n", + "Epoch 28/50\n", + "390/390 - 76s - loss: 0.4084 - accuracy: 0.8714 - val_loss: 0.6778 - val_accuracy: 0.8056\n", + "Epoch 29/50\n", + "390/390 - 77s - loss: 0.3978 - accuracy: 0.8746 - val_loss: 0.5008 - val_accuracy: 0.8516\n", + "Epoch 30/50\n", + "390/390 - 76s - loss: 0.3807 - accuracy: 0.8804 - val_loss: 0.5351 - val_accuracy: 0.8463\n", + "Epoch 31/50\n", + "390/390 - 79s - loss: 0.3746 - accuracy: 0.8819 - val_loss: 0.4953 - val_accuracy: 0.8543\n", + "Epoch 32/50\n", + "390/390 - 76s - loss: 0.3583 - accuracy: 0.8886 - val_loss: 0.5232 - val_accuracy: 0.8509\n", + "Epoch 33/50\n", + "390/390 - 79s - loss: 0.3483 - accuracy: 0.8893 - val_loss: 0.4514 - val_accuracy: 0.8648\n", + "Epoch 34/50\n", + "390/390 - 76s - loss: 0.3399 - accuracy: 0.8931 - val_loss: 0.5505 - val_accuracy: 0.8475\n", + "Epoch 35/50\n", + "390/390 - 76s - loss: 0.3284 - accuracy: 0.8956 - val_loss: 0.6057 - val_accuracy: 0.8156\n", + "Epoch 36/50\n", + "390/390 - 77s - loss: 0.3145 - accuracy: 0.9005 - val_loss: 0.4615 - val_accuracy: 0.8660\n", + "Epoch 37/50\n", + "390/390 - 76s - loss: 0.3061 - accuracy: 0.9040 - val_loss: 0.5292 - val_accuracy: 0.8451\n", + "Epoch 38/50\n", + "390/390 - 76s - loss: 0.3006 - accuracy: 0.9059 - val_loss: 0.4540 - val_accuracy: 0.8607\n", + "Epoch 39/50\n", + "390/390 - 76s - loss: 0.2940 - accuracy: 0.9083 - val_loss: 0.5178 - val_accuracy: 0.8608\n", + "Epoch 40/50\n", + "390/390 - 79s - loss: 0.2821 - accuracy: 0.9103 - val_loss: 0.4476 - val_accuracy: 0.8740\n", + "Epoch 41/50\n", + "390/390 - 76s - loss: 0.2702 - accuracy: 0.9151 - val_loss: 0.4811 - val_accuracy: 0.8638\n", + "Epoch 42/50\n", + "390/390 - 76s - loss: 0.2624 - accuracy: 0.9166 - val_loss: 0.6313 - val_accuracy: 0.8344\n", + "Epoch 43/50\n", + "390/390 - 79s - loss: 0.2534 - accuracy: 0.9208 - val_loss: 0.4256 - val_accuracy: 0.8750\n", + "Epoch 44/50\n", + "390/390 - 78s - loss: 0.2441 - accuracy: 0.9224 - val_loss: 0.3786 - val_accuracy: 0.8874\n", + "Epoch 45/50\n", + "390/390 - 76s - loss: 0.2408 - accuracy: 0.9247 - val_loss: 0.4718 - val_accuracy: 0.8650\n", + "Epoch 46/50\n", + "390/390 - 77s - loss: 0.2325 - accuracy: 0.9257 - val_loss: 0.4160 - val_accuracy: 0.8818\n", + "Epoch 47/50\n", + "390/390 - 76s - loss: 0.2234 - accuracy: 0.9291 - val_loss: 0.4762 - val_accuracy: 0.8669\n", + "Epoch 48/50\n", + "390/390 - 76s - loss: 0.2143 - accuracy: 0.9320 - val_loss: 0.5542 - val_accuracy: 0.8448\n", + "Epoch 49/50\n", + "390/390 - 76s - loss: 0.2185 - accuracy: 0.9300 - val_loss: 0.3885 - val_accuracy: 0.8889\n", + "Epoch 50/50\n", + "390/390 - 79s - loss: 0.2085 - accuracy: 0.9345 - val_loss: 0.3634 - val_accuracy: 0.8939\n" + ], + "name": "stdout" + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 4 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Le_5MDJVKyHi", + "outputId": "518dc66a-2761-4d73-88eb-cadfb8ac994a", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 810 + } + }, + "source": [ + "\n", + "\n", + "from sklearn.metrics import classification_report, confusion_matrix\n", + "Y_pred = cnn_n.predict(x_test, verbose=2)\n", + "y_pred = np.argmax(Y_pred, axis=1)\n", + "\n", + "for ix in range(10):\n", + " print(ix, confusion_matrix(np.argmax(y_test,axis=1),y_pred)[ix].sum())\n", + "cm = confusion_matrix(np.argmax(y_test,axis=1),y_pred)\n", + "print(cm)\n", + "\n", + "# Visualizing of confusion matrix\n", + "import seaborn as sn\n", + "import pandas as pd\n", + "\n", + "\n", + "df_cm = pd.DataFrame(cm, range(10),\n", + " range(10))\n", + "plt.figure(figsize = (10,7))\n", + "sn.set(font_scale=1.4)#for label size\n", + "sn.heatmap(df_cm, annot=True,annot_kws={\"size\": 12})# font size\n", + "plt.show()" + ], + "execution_count": 5, + "outputs": [ + { + "output_type": "stream", + "text": [ + "WARNING:tensorflow:Callbacks method `on_predict_batch_end` is slow compared to the batch time (batch time: 0.0047s vs `on_predict_batch_end` time: 0.0255s). Check your callbacks.\n", + "313/313 - 7s\n", + "0 1000\n", + "1 1000\n", + "2 1000\n", + "3 1000\n", + "4 1000\n", + "5 1000\n", + "6 1000\n", + "7 1000\n", + "8 1000\n", + "9 1000\n", + "[[915 10 29 4 1 0 3 2 25 11]\n", + " [ 3 985 2 0 0 0 0 0 2 8]\n", + " [ 14 2 901 14 13 20 25 8 3 0]\n", + " [ 8 3 71 725 25 80 66 13 4 5]\n", + " [ 4 1 48 16 868 10 25 27 1 0]\n", + " [ 1 3 37 89 19 824 15 9 0 3]\n", + " [ 4 2 25 11 1 1 955 0 0 1]\n", + " [ 8 1 8 15 14 20 6 924 1 3]\n", + " [ 25 13 9 2 1 3 2 0 937 8]\n", + " [ 9 71 3 4 0 1 1 0 6 905]]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "-_YJFNqFT_I5" + }, + "source": [ + "" + ], + "execution_count": 5, + "outputs": [] + } + ] +} \ No newline at end of file