{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "Image Classification with and without convlolution.ipynb",
"provenance": [],
"collapsed_sections": [],
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"accelerator": "TPU"
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"
"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Ww3F3BuDkH_V",
"colab_type": "text"
},
"source": [
"#Image Classification with and without convlolution"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "HidJIZ8kkg1Q",
"colab_type": "text"
},
"source": [
"###First, we load the necessary libraries"
]
},
{
"cell_type": "code",
"metadata": {
"id": "QRhENDcTjx1S",
"colab_type": "code",
"colab": {}
},
"source": [
"import numpy as np\n",
"import tensorflow as tf\n",
"from tensorflow import keras\n",
"import matplotlib.pyplot as plt"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "x1dVuDBolRg7",
"colab_type": "text"
},
"source": [
"###Then, we load Fashion MINST dataset"
]
},
{
"cell_type": "code",
"metadata": {
"id": "akPbPBwplY8v",
"colab_type": "code",
"outputId": "836eafb9-a6e8-4f21-ef89-cbb4ebcd98dc",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 164
}
},
"source": [
"fashion_mnist = keras.datasets.fashion_mnist\n",
"(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-labels-idx1-ubyte.gz\n",
"32768/29515 [=================================] - 0s 0us/step\n",
"Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-images-idx3-ubyte.gz\n",
"26427392/26421880 [==============================] - 1s 0us/step\n",
"Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-labels-idx1-ubyte.gz\n",
"8192/5148 [===============================================] - 0s 0us/step\n",
"Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-images-idx3-ubyte.gz\n",
"4423680/4422102 [==============================] - 0s 0us/step\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Xz_mDVy1ovUL",
"colab_type": "text"
},
"source": [
"###Label number correspond to:\n",
"| Label| Class|\n",
"|---------|----------|\n",
"| 0 | T-shirt/top|\n",
"| 1 | Trouser|\n",
"| 2 | Pullover|\n",
"| 3 | Dress|\n",
"| 4 | Coat|\n",
"| 5 | Sandal|\n",
"| 6 | Shirt|\n",
"| 7 | Sneaker|\n",
"| 8 | bag|\n",
"| 9 | Ankle boot|\n",
"\n",
"###We store correspondence in class_names variable"
]
},
{
"cell_type": "code",
"metadata": {
"id": "3jTUU9zPo_pY",
"colab_type": "code",
"colab": {}
},
"source": [
"class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',\n",
" 'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "Y_7uABuIpBEV",
"colab_type": "text"
},
"source": [
"###We can see an example"
]
},
{
"cell_type": "code",
"metadata": {
"id": "9ctTGeODlvt6",
"colab_type": "code",
"outputId": "49b94b1b-a1d9-4886-f132-f5abcf71a0a3",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 238
}
},
"source": [
"f, ax = plt.subplots(1,2)\n",
"ax[0].imshow(train_images[40])\n",
"ax[1].imshow(train_images[50])\n",
"print(train_labels[40],train_labels[50])\n",
"print(class_names[6],class_names[6])"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"6 3\n",
"Shirt Shirt\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nYII=\n",
"text/plain": [
""
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "84j2r_8qle4g",
"colab_type": "text"
},
"source": [
"###Next, we normalise data"
]
},
{
"cell_type": "code",
"metadata": {
"id": "ABSLwCLslpkI",
"colab_type": "code",
"colab": {}
},
"source": [
"train_images = train_images / 255.0\n",
"test_images = test_images / 255.0\n"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "1P3gPj5TnWvI",
"colab_type": "text"
},
"source": [
"#Simple neural net"
]
},
{
"cell_type": "code",
"metadata": {
"id": "EnO6W_uendrN",
"colab_type": "code",
"colab": {}
},
"source": [
"model = keras.Sequential([\n",
" keras.layers.Flatten(),\n",
" keras.layers.Dense(128, activation=tf.nn.relu),\n",
" keras.layers.Dense(10, activation=tf.nn.softmax)\n",
"])"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "f4ZajpTGnkLd",
"colab_type": "text"
},
"source": [
"###Next, compile the model"
]
},
{
"cell_type": "code",
"metadata": {
"id": "cs-CinJAnjxy",
"colab_type": "code",
"colab": {}
},
"source": [
"model.compile(optimizer='adam', \n",
" loss='sparse_categorical_crossentropy', metrics=['accuracy'])"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "F-Cd-ptRns1w",
"colab_type": "text"
},
"source": [
"###Train model"
]
},
{
"cell_type": "code",
"metadata": {
"id": "8bfZQh8vnujg",
"colab_type": "code",
"outputId": "cea87abe-2111-4981-ee8d-69baf82ca6be",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 421
}
},
"source": [
"model.fit(train_images, train_labels, epochs=10)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Train on 60000 samples\n",
"Epoch 1/10\n",
"60000/60000 [==============================] - 4s 68us/sample - loss: 0.1739 - acc: 0.9341\n",
"Epoch 2/10\n",
"60000/60000 [==============================] - 4s 67us/sample - loss: 0.1711 - acc: 0.9362\n",
"Epoch 3/10\n",
"60000/60000 [==============================] - 4s 68us/sample - loss: 0.1671 - acc: 0.9366\n",
"Epoch 4/10\n",
"60000/60000 [==============================] - 4s 69us/sample - loss: 0.1649 - acc: 0.9383\n",
"Epoch 5/10\n",
"60000/60000 [==============================] - 4s 68us/sample - loss: 0.1578 - acc: 0.9410\n",
"Epoch 6/10\n",
"60000/60000 [==============================] - 4s 68us/sample - loss: 0.1566 - acc: 0.9410\n",
"Epoch 7/10\n",
"60000/60000 [==============================] - 4s 68us/sample - loss: 0.1504 - acc: 0.9447\n",
"Epoch 8/10\n",
"60000/60000 [==============================] - 4s 68us/sample - loss: 0.1476 - acc: 0.9449\n",
"Epoch 9/10\n",
"60000/60000 [==============================] - 4s 68us/sample - loss: 0.1454 - acc: 0.9447\n",
"Epoch 10/10\n",
"60000/60000 [==============================] - 4s 67us/sample - loss: 0.1442 - acc: 0.9456\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
""
]
},
"metadata": {
"tags": []
},
"execution_count": 32
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Lb0BXV-6n7aJ",
"colab_type": "text"
},
"source": [
"###Predict class of second image in test dataset"
]
},
{
"cell_type": "code",
"metadata": {
"id": "s8jsni0bn_f1",
"colab_type": "code",
"outputId": "12838771-6576-4398-d046-5305204fd42e",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 90
}
},
"source": [
"prediction=model.predict(test_images[1].reshape(1, 28, 28))\n",
"print(\"Probabilities of image in each class are\",prediction)\n",
"print(\"Highest probability in place:\", prediction.argmax())\n",
"print(\"Image is classified as a: \",class_names[prediction.argmax()])"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Probabilities of image in each class are [[1.4792593e-05 7.4572272e-15 9.9984133e-01 1.0109936e-13 9.9008597e-05\n",
" 8.3782468e-15 4.4799071e-05 7.3859103e-23 1.0118387e-09 6.3930431e-16]]\n",
"Highest probability in place: 2\n",
"Image is classified as a: Pullover\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "zslaJQ7VoZDu",
"colab_type": "code",
"outputId": "d103fa5e-cecf-430c-f94d-42962e2a8c61",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 320
}
},
"source": [
"print(\"Actual label number is:\",test_labels[1])\n",
"print(\"Image is a: \",class_names[test_labels[1]])\n",
"plt.imshow(test_images[1])\n"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Actual label number is: 2\n",
"Image is a: Pullover\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
""
]
},
"metadata": {
"tags": []
},
"execution_count": 10
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "NnRT1sg7rQHi",
"colab_type": "text"
},
"source": [
"Second image is a pullover and it is classified correctly."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "KaJlvr76sOtB",
"colab_type": "text"
},
"source": [
"###Evaluate models accuracy"
]
},
{
"cell_type": "code",
"metadata": {
"id": "iyCJ4rDzsRx8",
"colab_type": "code",
"outputId": "210ea44e-d8f0-44a1-d3dc-2875c7f923fa",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 54
}
},
"source": [
"test_acc = model.evaluate(test_images, test_labels)\n",
"print('Test loss, accuracy:', test_acc)\n"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"10000/10000 [==============================] - 0s 32us/sample - loss: 0.4091 - acc: 0.8865\n",
"Test accuracy: [0.4091187917113304, 0.8865]\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Xnki0uOpxoKz",
"colab_type": "text"
},
"source": [
"The overal model's accuracy is very low. This in part because of the low number of training epochs. Next, we will create a convolution neural network and compare the performance of the two models."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Z_Eli9ZX0Yio",
"colab_type": "text"
},
"source": [
"## Convolution Neural Network"
]
},
{
"cell_type": "code",
"metadata": {
"id": "15ZvqCtO1R39",
"colab_type": "code",
"colab": {}
},
"source": [
"cnn_train_images=train_images.reshape(60000, 28, 28, 1)\n",
"cnn_test_images = test_images.reshape(10000, 28, 28, 1)"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "tNfabnuzxTmz",
"colab_type": "code",
"colab": {}
},
"source": [
"cnn_model = tf.keras.models.Sequential([\n",
" tf.keras.layers.Conv2D(32, (3,3), activation='relu', input_shape=(28, 28,1)),\n",
" tf.keras.layers.MaxPooling2D(2, 2),\n",
" tf.keras.layers.Flatten(),\n",
" keras.layers.Dense(128, activation=tf.nn.relu),\n",
" keras.layers.Dense(10, activation=tf.nn.softmax)\n",
"])"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "3SfRYTO40tzN",
"colab_type": "code",
"colab": {}
},
"source": [
"cnn_model.compile(optimizer='adam', \n",
" loss='sparse_categorical_crossentropy', metrics=['accuracy'])"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "l7ASxW-70zIN",
"colab_type": "code",
"outputId": "c37abb7d-5419-40db-a6d0-82fdd4e0ab17",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 421
}
},
"source": [
"cnn_model.fit(cnn_train_images, train_labels, epochs=10)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Train on 60000 samples\n",
"Epoch 1/10\n",
"60000/60000 [==============================] - 36s 604us/sample - loss: 0.3938 - acc: 0.8609\n",
"Epoch 2/10\n",
"60000/60000 [==============================] - 36s 596us/sample - loss: 0.2643 - acc: 0.9043\n",
"Epoch 3/10\n",
"60000/60000 [==============================] - 36s 595us/sample - loss: 0.2214 - acc: 0.9185\n",
"Epoch 4/10\n",
"60000/60000 [==============================] - 36s 596us/sample - loss: 0.1910 - acc: 0.9294\n",
"Epoch 5/10\n",
"60000/60000 [==============================] - 36s 592us/sample - loss: 0.1613 - acc: 0.9407\n",
"Epoch 6/10\n",
"60000/60000 [==============================] - 35s 591us/sample - loss: 0.1386 - acc: 0.9488\n",
"Epoch 7/10\n",
"60000/60000 [==============================] - 35s 590us/sample - loss: 0.1174 - acc: 0.9567\n",
"Epoch 8/10\n",
"60000/60000 [==============================] - 36s 594us/sample - loss: 0.1005 - acc: 0.9628\n",
"Epoch 9/10\n",
"60000/60000 [==============================] - 36s 597us/sample - loss: 0.0848 - acc: 0.9688\n",
"Epoch 10/10\n",
"60000/60000 [==============================] - 36s 607us/sample - loss: 0.0727 - acc: 0.9743\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
""
]
},
"metadata": {
"tags": []
},
"execution_count": 36
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "88D3VU7O672K",
"colab_type": "code",
"outputId": "db316b9c-dcfd-4285-d8b5-e824b0bc8c06",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 54
}
},
"source": [
"test_cnn_acc = cnn_model.evaluate(cnn_test_images, test_labels)\n",
"print('Test loss, accuracy:', test_cnn_acc)\n"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"10000/10000 [==============================] - 2s 200us/sample - loss: 0.3218 - acc: 0.9175\n",
"Test loss, accuracy: [0.32177444730997085, 0.9175]\n"
],
"name": "stdout"
}
]
}
]
}