{
"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": [
"