Skip to content

Instantly share code, notes, and snippets.

@tvganesh

tvganesh/cats_vs_dogs_3.ipynb Secret

Created Apr 4, 2020
Embed
What would you like to do?
Cats_vs_Dogs_3.ipynb
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "Cats_vs_Dogs_3.ipynb",
"provenance": [],
"collapsed_sections": [],
"toc_visible": true,
"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": [
"<a href=\"https://colab.research.google.com/gist/tvganesh/fc1f8b8f337490e3ff426ef667a5552a/cats_vs_dogs_3.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "code",
"metadata": {
"id": "tEWzqW5xZjSH",
"colab_type": "code",
"colab": {}
},
"source": [
"import csv\n",
"import numpy as np\n",
"import tensorflow as tf\n",
"from tensorflow.keras.preprocessing.image import ImageDataGenerator\n",
"from google.colab import files\n"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "jUJ0UvW9ZmNy",
"colab_type": "text"
},
"source": [
"# 1. Download the data from Kaggle \n",
"Download the training and test data"
]
},
{
"cell_type": "code",
"metadata": {
"id": "M4VWwKWaZq7r",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 445
},
"outputId": "b17b023c-faf2-4c94-86b0-82cf31eeb0c3"
},
"source": [
"!wget --no-check-certificate \\\n",
" https://www.dropbox.com/s/9zpwgb8kjndlw3y/train.zip?dl=0 \\\n",
" -O /usr/train.zip"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"--2020-04-04 10:04:36-- https://www.dropbox.com/s/9zpwgb8kjndlw3y/train.zip?dl=0\n",
"Resolving www.dropbox.com (www.dropbox.com)... 162.125.65.1, 2620:100:6021:1::a27d:4101\n",
"Connecting to www.dropbox.com (www.dropbox.com)|162.125.65.1|:443... connected.\n",
"HTTP request sent, awaiting response... 301 Moved Permanently\n",
"Location: /s/raw/9zpwgb8kjndlw3y/train.zip [following]\n",
"--2020-04-04 10:04:36-- https://www.dropbox.com/s/raw/9zpwgb8kjndlw3y/train.zip\n",
"Reusing existing connection to www.dropbox.com:443.\n",
"HTTP request sent, awaiting response... 302 Found\n",
"Location: https://uce2fa318866377823be40858c10.dl.dropboxusercontent.com/cd/0/inline/A1NmUHGe9RaHc74RtQurITFPfYR1dLupctjzcjegV1gze5rVwmie8xbda0gPnmiM0heRfVma5Q3eyCrv-uchGMKZlWtbahcxiyTTOai-md7gv7JhAiAnVklEM3-oCWjR8Ak/file# [following]\n",
"--2020-04-04 10:04:37-- https://uce2fa318866377823be40858c10.dl.dropboxusercontent.com/cd/0/inline/A1NmUHGe9RaHc74RtQurITFPfYR1dLupctjzcjegV1gze5rVwmie8xbda0gPnmiM0heRfVma5Q3eyCrv-uchGMKZlWtbahcxiyTTOai-md7gv7JhAiAnVklEM3-oCWjR8Ak/file\n",
"Resolving uce2fa318866377823be40858c10.dl.dropboxusercontent.com (uce2fa318866377823be40858c10.dl.dropboxusercontent.com)... 162.125.65.6, 2620:100:6021:6::a27d:4106\n",
"Connecting to uce2fa318866377823be40858c10.dl.dropboxusercontent.com (uce2fa318866377823be40858c10.dl.dropboxusercontent.com)|162.125.65.6|:443... connected.\n",
"HTTP request sent, awaiting response... 302 FOUND\n",
"Location: /cd/0/inline2/A1NCAMKlF4XX5AHlAsxPsZG-nt5gkBPY67BkuvhaseqI-Dj_3DYpMzufNY13aUVxSfnVgFls38DhU1LBe9puun1EiIwiW1NROt2PQmgIsExtBBZSEOiZcRYS1aX-FIEh_Wf6Unq44ZFxj5Omdego-ccvRuCvWAQspuvBN67U89EhjCocGj6b2xMM5WFSbOtUosWJ_GcKldEbcyNXOCjb74Asr97RD87TZ7i-qZFT6G_RRFV_x38h4IrYAVb11F8vvg5ocFHfhLMA8bY-r5-5LeHG9n83lyQCHf6_tLxBoF1a93QBaTAv5hTq5jmaazb64zwXtr7ZT855J1eg1PcGkxYj9WCxaPRuky51iz7YCYQ5bQ/file [following]\n",
"--2020-04-04 10:04:37-- https://uce2fa318866377823be40858c10.dl.dropboxusercontent.com/cd/0/inline2/A1NCAMKlF4XX5AHlAsxPsZG-nt5gkBPY67BkuvhaseqI-Dj_3DYpMzufNY13aUVxSfnVgFls38DhU1LBe9puun1EiIwiW1NROt2PQmgIsExtBBZSEOiZcRYS1aX-FIEh_Wf6Unq44ZFxj5Omdego-ccvRuCvWAQspuvBN67U89EhjCocGj6b2xMM5WFSbOtUosWJ_GcKldEbcyNXOCjb74Asr97RD87TZ7i-qZFT6G_RRFV_x38h4IrYAVb11F8vvg5ocFHfhLMA8bY-r5-5LeHG9n83lyQCHf6_tLxBoF1a93QBaTAv5hTq5jmaazb64zwXtr7ZT855J1eg1PcGkxYj9WCxaPRuky51iz7YCYQ5bQ/file\n",
"Reusing existing connection to uce2fa318866377823be40858c10.dl.dropboxusercontent.com:443.\n",
"HTTP request sent, awaiting response... 200 OK\n",
"Length: 569546721 (543M) [application/zip]\n",
"Saving to: ‘/usr/train.zip’\n",
"\n",
"/usr/train.zip 100%[===================>] 543.16M 55.1MB/s in 27s \n",
"\n",
"2020-04-04 10:05:04 (20.5 MB/s) - ‘/usr/train.zip’ saved [569546721/569546721]\n",
"\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "ng58Bn6s-D7A",
"colab_type": "code",
"outputId": "c4efb9f8-c010-409c-ade0-cd88ebd94c31",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 445
}
},
"source": [
"!wget --no-check-certificate \\\n",
" https://www.dropbox.com/s/lj8gg12qemqzybl/test1.zip?dl=0 \\\n",
" -O /usr/test1.zip"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"--2020-04-04 10:05:06-- https://www.dropbox.com/s/lj8gg12qemqzybl/test1.zip?dl=0\n",
"Resolving www.dropbox.com (www.dropbox.com)... 162.125.65.1, 2620:100:6021:1::a27d:4101\n",
"Connecting to www.dropbox.com (www.dropbox.com)|162.125.65.1|:443... connected.\n",
"HTTP request sent, awaiting response... 301 Moved Permanently\n",
"Location: /s/raw/lj8gg12qemqzybl/test1.zip [following]\n",
"--2020-04-04 10:05:06-- https://www.dropbox.com/s/raw/lj8gg12qemqzybl/test1.zip\n",
"Reusing existing connection to www.dropbox.com:443.\n",
"HTTP request sent, awaiting response... 302 Found\n",
"Location: https://uc6fbb887ae4d01803b00f27f4ea.dl.dropboxusercontent.com/cd/0/inline/A1MFNoEI7ksLphm1yeiWttR_tmNxx3syFeMDas5sT0jFSxJ5z2TWt-3w6OfCIk_vRB7h7Mi7VfQvW5kkFCnvRv5AFKv8M6L0TjYxGKnIUV6KpwODgK5O2c6ETcgGmPTIuYY/file# [following]\n",
"--2020-04-04 10:05:07-- https://uc6fbb887ae4d01803b00f27f4ea.dl.dropboxusercontent.com/cd/0/inline/A1MFNoEI7ksLphm1yeiWttR_tmNxx3syFeMDas5sT0jFSxJ5z2TWt-3w6OfCIk_vRB7h7Mi7VfQvW5kkFCnvRv5AFKv8M6L0TjYxGKnIUV6KpwODgK5O2c6ETcgGmPTIuYY/file\n",
"Resolving uc6fbb887ae4d01803b00f27f4ea.dl.dropboxusercontent.com (uc6fbb887ae4d01803b00f27f4ea.dl.dropboxusercontent.com)... 162.125.65.6, 2620:100:6021:6::a27d:4106\n",
"Connecting to uc6fbb887ae4d01803b00f27f4ea.dl.dropboxusercontent.com (uc6fbb887ae4d01803b00f27f4ea.dl.dropboxusercontent.com)|162.125.65.6|:443... connected.\n",
"HTTP request sent, awaiting response... 302 FOUND\n",
"Location: /cd/0/inline2/A1PaHBC3va1gTOvOwEXjZunArqQNJBOcakR8W9g-FyKuQkFM01Y_pktwEGpDwlE_GhgTJzSBCHCDgU-jwzVEfv07gjXbB9ssGfyYafh-Rk8ishx-eEzUPV_8mQyJXhWmygVws02OelUtHNrKQlcvpkmzYZLRPCZJYbVwSQ2HjpqhO9iNTIXpFqY-YEXJHXKJ8UEZYARUoCr0haN_luM0qaoUUV5gFCMYVJdz_H6BE03otpuqOxgt6l8uZ5EqOw30viv__k6ezl9tEYOhp3uLElm8-jqXTaK3XQeMu32Q_Tp2VOr9GbR4Rccd8-Mwn9Y9rhsUr5qtyzOfsNaKPrpKeQweX0D1UuOxPMwrI8d2sJIleg/file [following]\n",
"--2020-04-04 10:05:07-- https://uc6fbb887ae4d01803b00f27f4ea.dl.dropboxusercontent.com/cd/0/inline2/A1PaHBC3va1gTOvOwEXjZunArqQNJBOcakR8W9g-FyKuQkFM01Y_pktwEGpDwlE_GhgTJzSBCHCDgU-jwzVEfv07gjXbB9ssGfyYafh-Rk8ishx-eEzUPV_8mQyJXhWmygVws02OelUtHNrKQlcvpkmzYZLRPCZJYbVwSQ2HjpqhO9iNTIXpFqY-YEXJHXKJ8UEZYARUoCr0haN_luM0qaoUUV5gFCMYVJdz_H6BE03otpuqOxgt6l8uZ5EqOw30viv__k6ezl9tEYOhp3uLElm8-jqXTaK3XQeMu32Q_Tp2VOr9GbR4Rccd8-Mwn9Y9rhsUr5qtyzOfsNaKPrpKeQweX0D1UuOxPMwrI8d2sJIleg/file\n",
"Reusing existing connection to uc6fbb887ae4d01803b00f27f4ea.dl.dropboxusercontent.com:443.\n",
"HTTP request sent, awaiting response... 200 OK\n",
"Length: 284321224 (271M) [application/zip]\n",
"Saving to: ‘/usr/test1.zip’\n",
"\n",
"/usr/test1.zip 100%[===================>] 271.15M 55.8MB/s in 5.0s \n",
"\n",
"2020-04-04 10:05:13 (53.9 MB/s) - ‘/usr/test1.zip’ saved [284321224/284321224]\n",
"\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "RejRobhbaAbR",
"colab_type": "text"
},
"source": [
"#2. Unzip files\n",
"Extract the training and test files into their respective folders"
]
},
{
"cell_type": "code",
"metadata": {
"id": "g1QmWuBNcwaI",
"colab_type": "code",
"colab": {}
},
"source": [
"import os\n",
"import zipfile\n",
"\n",
"#local_zip = '/Users/tvganesh/Downloads/dogs-vs-cats.zip'\n",
"#zip_ref = zipfile.ZipFile(local_zip, 'r')\n",
"#zip_ref.extractall('/Users/tvganesh/Downloads')\n",
"\n",
"train_zip ='/usr/train.zip'\n",
"train = zipfile.ZipFile(train_zip, 'r')\n",
"train.extractall('/usr/dogs_vs_cats')\n",
"train.close()\n",
"test_zip = '/usr/test1.zip'\n",
"test = zipfile.ZipFile(test_zip, 'r')\n",
"\n",
"test.extractall('/usr/dogs_vs_cats')\n",
"test.close()"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "tJ2AopYr0-N-",
"colab_type": "code",
"colab": {}
},
"source": [
"import os\n",
"import shutil\n",
"#os.listdir('/Users/tvganesh/Downloads/dogs_vs_cats/train')\n",
"baseDir=\"/usr/dogs_vs_cats/training/\" \n",
"\n",
"\n",
"if not os.path.isdir(os.path.join(baseDir)): \n",
" os.makedirs(os.path.join(baseDir))\n",
"if not os.path.isdir(os.path.join(baseDir,\"dogs\")): \n",
" os.makedirs(os.path.join(baseDir,\"dogs\"))\n",
"if not os.path.isdir(os.path.join(baseDir,\"cats\")): \n",
" os.makedirs(os.path.join(baseDir,\"cats\"))\n",
"\n",
"dogDir=\"/usr/dogs_vs_cats/training/dogs\"\n",
"catDir=\"/usr/dogs_vs_cats/training/cats\"\n",
"for f in os.listdir(\"/usr/dogs_vs_cats/train\"):\n",
" if(\"dog\" in f):\n",
" shutil.move(os.path.join('/usr/dogs_vs_cats/train',f), os.path.join(dogDir,f))\n",
" else:\n",
" shutil.move(os.path.join('/usr/dogs_vs_cats/train', f), os.path.join(catDir,f))"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "75OkEPLQ9zkW",
"colab_type": "code",
"outputId": "a60205b1-a611-4b22-b997-a73d9fb50ec6",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 51
}
},
"source": [
"print(len(os.listdir(\"/usr/dogs_vs_cats/training/dogs\")))\n",
"print(len(os.listdir(\"/usr/dogs_vs_cats/training/cats\")))"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"12500\n",
"12500\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "81poZzwUaOvh",
"colab_type": "text"
},
"source": [
"# Create validation test set\n",
"Randomly sample 20% of the training data and use as validation test set"
]
},
{
"cell_type": "code",
"metadata": {
"id": "6s1r8Dvw1ocH",
"colab_type": "code",
"colab": {}
},
"source": [
"import random\n",
"import os\n",
"import shutil\n",
"baseDir=\"/usr/dogs_vs_cats/training/\" \n",
"validationDir=\"/usr/dogs_vs_cats/validation/\" \n",
"dogDir=\"/usr/dogs_vs_cats/validation/dogs\"\n",
"catDir=\"/usr/dogs_vs_cats/validation/cats\"\n",
"\n",
"\n",
"if not os.path.isdir(os.path.join(validationDir)): \n",
" os.makedirs(validationDir)\n",
"if not os.path.isdir(os.path.join(validationDir,\"dogs\")): \n",
" os.makedirs(os.path.join(validationDir,\"dogs\"))\n",
"if not os.path.isdir(os.path.join(validationDir,\"cats\")): \n",
" os.makedirs(os.path.join(validationDir,\"cats\"))\n",
"\n",
"dir1=\"/usr/dogs_vs_cats/training/dogs\"\n",
"a= os.listdir(dir1)\n",
"l = random.sample(a, int(0.2 *len(a)))\n",
"for f in l:\n",
" shutil.move(os.path.join(dir1,f), os.path.join(validationDir,os.path.join(dogDir,f)))\n",
" \n",
"dir1=\"/usr/dogs_vs_cats/training/cats\"\n",
"a= os.listdir(dir1)\n",
"l = random.sample(a, int(0.2 *len(a)))\n",
"for f in l:\n",
" shutil.move(os.path.join(dir1,f), os.path.join(catDir,f))"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "61fFLZbK81So",
"colab_type": "code",
"outputId": "4643efe9-4604-49f1-e876-7a966a028b6c",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 51
}
},
"source": [
"print(len(os.listdir(\"/usr/dogs_vs_cats/validation/dogs\")))\n",
"print(len(os.listdir(\"/usr/dogs_vs_cats/validation/cats\")))"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"2500\n",
"2500\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "bkgUFGSNjLEZ",
"colab_type": "text"
},
"source": [
"# Set up training and validation folders\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"metadata": {
"id": "rGaTECXk9Car",
"colab_type": "code",
"colab": {}
},
"source": [
"baseDir=\"/usr/dogs_vs_cats\" \n",
"\n",
"train_dir = os.path.join(baseDir, 'training')\n",
"validation_dir = os.path.join(baseDir, 'validation')\n",
"\n",
"# Directory with our training cat/dog pictures\n",
"train_cats_dir = os.path.join(train_dir, 'cats')\n",
"train_dogs_dir = os.path.join(train_dir, 'dogs')\n",
"\n",
"# Directory with our validation cat/dog pictures\n",
"validation_cats_dir = os.path.join(validation_dir, 'cats')\n",
"validation_dogs_dir = os.path.join(validation_dir, 'dogs')"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "WTBZuBQqwODY",
"colab_type": "text"
},
"source": [
"# Use Inception V3"
]
},
{
"cell_type": "code",
"metadata": {
"id": "Jg5AZeaplcbk",
"colab_type": "code",
"outputId": "2f74d238-953f-4b27-f335-3b2cc26a1e40",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 68
}
},
"source": [
"import os\n",
"\n",
"from tensorflow.keras import layers\n",
"from tensorflow.keras import Model\n",
"\n",
" \n",
"from tensorflow.keras.applications.inception_v3 import InceptionV3\n",
"pre_trained_model = InceptionV3(input_shape = (150, 150, 3), \n",
" include_top = False, \n",
" weights = 'imagenet')\n",
"\n",
"\n",
"for layer in pre_trained_model.layers:\n",
" layer.trainable = False\n",
" \n",
"# pre_trained_model.summary()\n",
"\n",
"last_layer = pre_trained_model.get_layer('mixed7')\n",
"print('last layer output shape: ', last_layer.output_shape)\n",
"last_output = last_layer.output"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/inception_v3/inception_v3_weights_tf_dim_ordering_tf_kernels_notop.h5\n",
"87916544/87910968 [==============================] - 1s 0us/step\n",
"last layer output shape: (None, 7, 7, 768)\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "JXNIrneKwfJ_",
"colab_type": "text"
},
"source": [
"# Use Layer 7 of Inception Network\n",
"- Use Image Augumentation\n",
"- Use Adam Optimizer"
]
},
{
"cell_type": "code",
"metadata": {
"id": "cg0k9fXEmSis",
"colab_type": "code",
"outputId": "f13f515b-59fc-4854-ede0-29234e8afa1b",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 51
}
},
"source": [
"import tensorflow as tf\n",
"from tensorflow import keras\n",
"from tensorflow.keras.optimizers import RMSprop\n",
"from tensorflow.keras.preprocessing.image import ImageDataGenerator\n",
"# Flatten the output layer to 1 dimension\n",
"x = layers.Flatten()(last_output)\n",
"# Add a fully connected layer with 1,024 hidden units and ReLU activation\n",
"x = layers.Dense(1024, activation='relu')(x)\n",
"# Add a dropout rate of 0.2\n",
"x = layers.Dropout(0.2)(x) \n",
"# Add a final sigmoid layer for classification\n",
"x = layers.Dense (1, activation='sigmoid')(x) \n",
"\n",
"model = Model( pre_trained_model.input, x) \n",
"#train_datagen = ImageDataGenerator( rescale = 1.0/255. )\n",
"#validation_datagen = ImageDataGenerator( rescale = 1.0/255. )\n",
"\n",
"train_datagen = ImageDataGenerator(\n",
" rescale=1./255,\n",
" #rotation_range=90,\n",
" width_shift_range=0.2,\n",
" height_shift_range=0.2,\n",
" shear_range=0.2,\n",
" zoom_range=0.2)\n",
" #horizontal_flip=True,\n",
" #fill_mode='nearest')\n",
"\n",
"validation_datagen = ImageDataGenerator(rescale=1./255)\n",
"#\n",
"train_generator = train_datagen.flow_from_directory(train_dir,\n",
" batch_size=32,\n",
" class_mode='binary',\n",
" target_size=(150, 150)) \n",
"# --------------------\n",
"# Flow validation images in batches of 20 using test_datagen generator\n",
"# --------------------\n",
"validation_generator = validation_datagen.flow_from_directory(validation_dir,\n",
" batch_size=32,\n",
" class_mode = 'binary',\n",
" target_size = (150, 150))\n",
"\n",
"\n",
"model.compile(optimizer='adam',\n",
" loss='binary_crossentropy',\n",
" metrics=['accuracy'])\n"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Found 20000 images belonging to 2 classes.\n",
"Found 5000 images belonging to 2 classes.\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "sJYbC1CymjNs",
"colab_type": "code",
"outputId": "751876b1-0544-4575-b940-75c4318aa992",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 527
}
},
"source": [
"history=model.fit(train_generator,\n",
" validation_data=validation_generator,\n",
" steps_per_epoch=100,\n",
" epochs=15,\n",
" validation_steps=50,\n",
" verbose=2)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Epoch 1/15\n",
"100/100 - 31s - loss: 0.5961 - accuracy: 0.8909 - val_loss: 0.1919 - val_accuracy: 0.9456\n",
"Epoch 2/15\n",
"100/100 - 30s - loss: 0.2002 - accuracy: 0.9259 - val_loss: 0.1025 - val_accuracy: 0.9550\n",
"Epoch 3/15\n",
"100/100 - 30s - loss: 0.1618 - accuracy: 0.9366 - val_loss: 0.0920 - val_accuracy: 0.9581\n",
"Epoch 4/15\n",
"100/100 - 29s - loss: 0.1442 - accuracy: 0.9381 - val_loss: 0.0960 - val_accuracy: 0.9600\n",
"Epoch 5/15\n",
"100/100 - 30s - loss: 0.1402 - accuracy: 0.9381 - val_loss: 0.0703 - val_accuracy: 0.9794\n",
"Epoch 6/15\n",
"100/100 - 30s - loss: 0.1437 - accuracy: 0.9413 - val_loss: 0.1090 - val_accuracy: 0.9531\n",
"Epoch 7/15\n",
"100/100 - 30s - loss: 0.1325 - accuracy: 0.9428 - val_loss: 0.0756 - val_accuracy: 0.9670\n",
"Epoch 8/15\n",
"100/100 - 29s - loss: 0.1341 - accuracy: 0.9491 - val_loss: 0.0625 - val_accuracy: 0.9737\n",
"Epoch 9/15\n",
"100/100 - 29s - loss: 0.1186 - accuracy: 0.9513 - val_loss: 0.0934 - val_accuracy: 0.9581\n",
"Epoch 10/15\n",
"100/100 - 29s - loss: 0.1171 - accuracy: 0.9513 - val_loss: 0.0642 - val_accuracy: 0.9727\n",
"Epoch 11/15\n",
"100/100 - 29s - loss: 0.1018 - accuracy: 0.9591 - val_loss: 0.0930 - val_accuracy: 0.9606\n",
"Epoch 12/15\n",
"100/100 - 29s - loss: 0.1190 - accuracy: 0.9541 - val_loss: 0.0737 - val_accuracy: 0.9719\n",
"Epoch 13/15\n",
"100/100 - 29s - loss: 0.1223 - accuracy: 0.9494 - val_loss: 0.0740 - val_accuracy: 0.9695\n",
"Epoch 14/15\n",
"100/100 - 29s - loss: 0.1158 - accuracy: 0.9516 - val_loss: 0.0659 - val_accuracy: 0.9744\n",
"Epoch 15/15\n",
"100/100 - 29s - loss: 0.1168 - accuracy: 0.9591 - val_loss: 0.0788 - val_accuracy: 0.9669\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "uVj1GwaYw0BK",
"colab_type": "text"
},
"source": [
"#Plot results\n",
"- Plot training and validation accuracy\n",
"- Plot training and validation loss"
]
},
{
"cell_type": "code",
"metadata": {
"id": "CApxMDDXxD2h",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 562
},
"outputId": "628c1bb6-bdec-48c3-f7c9-76a57ca71ddf"
},
"source": [
"import matplotlib.pyplot as plt\n",
"#-----------------------------------------------------------\n",
"# Retrieve a list of list results on training and test data\n",
"# sets for each training epoch\n",
"#-----------------------------------------------------------\n",
"acc = history.history[ 'accuracy' ]\n",
"val_acc = history.history[ 'val_accuracy' ]\n",
"loss = history.history[ 'loss' ]\n",
"val_loss = history.history['val_loss' ]\n",
"\n",
"epochs = range(len(acc)) # Get number of epochs\n",
"\n",
"#------------------------------------------------\n",
"# Plot training and validation accuracy per epoch\n",
"#------------------------------------------------\n",
"plt.plot ( epochs, acc,label=\"training accuracy\" )\n",
"plt.plot ( epochs, val_acc, label='validation acuracy' )\n",
"plt.title ('Training and validation accuracy')\n",
"plt.legend()\n",
"\n",
"plt.figure()\n",
"\n",
"#------------------------------------------------\n",
"# Plot training and validation loss per epoch\n",
"#------------------------------------------------\n",
"plt.plot ( epochs, loss , label=\"training loss\")\n",
"plt.plot ( epochs, val_loss,label=\"validation loss\" )\n",
"plt.title ('Training and validation loss' )\n",
"plt.legend()"
],
"execution_count": 14,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f96c78be0b8>"
]
},
"metadata": {
"tags": []
},
"execution_count": 14
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nxl99mQsiU6r02L59O23atPF0GB519uxZfH198fPzY9WqVUyYMCHn4nBZMmXKFBITE3nppZec3ia/\n919E1hpjwvNb32uLur/nNKvU+nmlvNGBAwe4/fbbycrKwt/fnw8++MDTIV20W265hd27d/Pbb7+5\n9Them+iXRelsUkp5sxYtWrB+/XpPh1Es2a2G3M0rxwTIzDIs36WzSSmlFHhpot+os0kppVQOr0z0\nEVGxOpuUUko5eG2i79AgWGeTUkopvDDRZ88mdU0LLc0rVZoEBQUBcPjwYW677bZ81+nduzdFNa9+\n6623cjoegXPDHpd3Xpfos2eT0vp5pUqnevXqMX/+/EvePm+id2bYY08pLUMXe13zymU7dTYpVc78\nNAmObnbtPutcDgNfK3DxpEmTaNiwIQ8++CAAkydPJigoiPvvv58hQ4YQHx9Peno6L7/8MkOGDDlv\n23379jFo0CC2bNlCSkoKd999Nxs3bqR169bnjXWT3/DC06ZN4/Dhw/Tp04fQ0FCWLFly3hDCU6dO\nZcYMOwLLuHHjePTRR9m3b1+BwyHn9v333/Pyyy+TlpZGjRo1+Oyzz6hduzbJyck89NBDREZGIiI8\n//zz3HrrrQQFBZGcnAzA/Pnz+eGHH/j4448ZO3YsAQEBrF+/np49ezJixAgeeeQRUlNTqVSpEjNn\nzqRVq1ZkZmZeMCRyu3btmDZtGt98Y0d6X7RoEe+++26xm2F6VaI3xhARrbNJKeVuw4cP59FHH81J\n9PPmzePnn38mICCABQsWULVqVeLi4rjiiisYPHhwgc2c33vvPQIDA9m+fTubNm2ic+fOOcvyG174\n4YcfZurUqSxZsuSCcefXrl3LzJkz+eOPPzDG0L17d6655hpCQkKcGg75qquuYvXq1YgIH374If/6\n17944403eOmll6hWrRqbN9sf0/zG1MkrJiaGlStX4uvrS1JSEr///jt+fn4sXryYZ555hq+++irf\nIZFDQkJ44IEHiI2NpWbNmsycOZO//OUvF/Xe5MerEv2u48kcSUzloWu12kaVI4WUvN2lU6dOHD9+\nnMOHDxMbG0tISAgNGzYkPT2dZ555hoiICHx8fDh06BDHjh2jTp06+e4nIiKChx9+GIAOHTrQoUOH\nnGX5DS+ce3ley5cv55ZbbskZX2bo0KH8/vvvDB482KnhkGNiYhg+fDhHjhwhLS0tZ8jlxYsXM2fO\n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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment