{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "127a506a",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd \n",
    "import numpy as np\n",
    "import cv2\n",
    "import matplotlib.pyplot as plt\n",
    "import os\n",
    "\n",
    "%matplotlib inline\n",
    "from tqdm import tqdm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "229926ce",
   "metadata": {},
   "outputs": [],
   "source": [
    "categories= ['Cat', 'Dog']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "71581e1b",
   "metadata": {},
   "outputs": [],
   "source": [
    "what= {0:'Cat', 1:'Dog'}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "95bea914",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "for category in categories:\n",
    "    for img in os.listdir(category):\n",
    "        img_array = cv2.imread(os.path.join(category,img), cv2.IMREAD_GRAYSCALE)\n",
    "        plt.imshow(img_array, cmap= 'gray')\n",
    "        plt.show()\n",
    "        break\n",
    "    break"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "1f5f0703",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(375, 500)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "img_array.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "3e3da961",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "IMG_SIZE = 50\n",
    "\n",
    "new_array = cv2.resize(img_array, (IMG_SIZE, IMG_SIZE))\n",
    "plt.imshow(new_array, cmap='gray')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "b82e6dc3",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|███████████████████████████████████████████████████████████████████████████| 12501/12501 [00:20<00:00, 605.89it/s]\n",
      "100%|███████████████████████████████████████████████████████████████████████████| 12501/12501 [00:21<00:00, 571.82it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "24946\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "training_data = []\n",
    "\n",
    "DATADIR=''\n",
    "def create_training_data():\n",
    "    for category in categories:  # do dogs and cats\n",
    "\n",
    "        path = os.path.join(DATADIR,category)  # create path to dogs and cats\n",
    "        class_num = categories.index(category)  # get the classification  (0 or a 1). 0=dog 1=cat\n",
    "\n",
    "        for img in tqdm(os.listdir(path)):  # iterate over each image per dogs and cats\n",
    "            try:\n",
    "                img_array = cv2.imread(os.path.join(path,img) ,cv2.IMREAD_GRAYSCALE)  # convert to array\n",
    "                new_array = cv2.resize(img_array, (IMG_SIZE, IMG_SIZE))  # resize to normalize data size\n",
    "                training_data.append([new_array, class_num])  # add this to our training_data\n",
    "            except Exception as e:  # in the interest in keeping the output clean...\n",
    "                pass\n",
    "            #except OSError as e:\n",
    "            #    print(\"OSErrroBad img most likely\", e, os.path.join(path,img))\n",
    "            #except Exception as e:\n",
    "            #    print(\"general exception\", e, os.path.join(path,img))\n",
    "\n",
    "create_training_data()\n",
    "\n",
    "print(len(training_data))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "09e15d29",
   "metadata": {},
   "outputs": [],
   "source": [
    "import random\n",
    "\n",
    "random.shuffle(training_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "a36f8d6c",
   "metadata": {},
   "outputs": [],
   "source": [
    "test=training_data[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "4844d61f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 55,  55,  54, ..., 133,  83,  77],\n",
       "       [ 58,  55,  56, ..., 111,  79,  87],\n",
       "       [ 60,  55,  63, ..., 107,  93,  93],\n",
       "       ...,\n",
       "       [ 52,  57,  56, ...,  74,  71,  73],\n",
       "       [ 52,  52,  54, ...,  72,  72,  74],\n",
       "       [ 52,  51,  54, ...,  73,  74,  72]], dtype=uint8)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "ce87942f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test[1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "bfecdb0c",
   "metadata": {},
   "outputs": [],
   "source": [
    "features = []\n",
    "label = []\n",
    "\n",
    "for x,y in training_data:\n",
    "    features.append(x)\n",
    "    label.append(y)\n",
    "\n",
    "#print(features[0].reshape(-1, IMG_SIZE, IMG_SIZE, 1))\n",
    "\n",
    "features = np.array(features).reshape(-1, IMG_SIZE, IMG_SIZE, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "23cb13e9",
   "metadata": {},
   "outputs": [],
   "source": [
    "#testing if we labele images right"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "35b2f443",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "7a155c5c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Cat\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "random_number = 12547   #less than 24946, i.e total number of images\n",
    "new_array = cv2.resize(features[random_number], (IMG_SIZE, IMG_SIZE))\n",
    "plt.imshow(new_array, cmap='gray')\n",
    "print(what[label[random_number]])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "4e2ea028",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "fe01ad6e",
   "metadata": {},
   "outputs": [],
   "source": [
    "#building training and testing data set\n",
    "\n",
    "from sklearn.model_selection import train_test_split\n",
    "x_train, x_test, y_train, y_test= train_test_split(features, label, train_size= 0.65)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "07f5ee0f",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "6a66958e",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.svm import SVC\n",
    "clfr= SVC()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "e513920d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_train[0].ndim"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "097c9e61",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "07eb0bae",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "0bd8b272",
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf\n",
    "from tensorflow.keras.datasets import cifar10\n",
    "from tensorflow.keras.preprocessing.image import ImageDataGenerator\n",
    "from tensorflow.keras.models import Sequential\n",
    "from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten\n",
    "from tensorflow.keras.layers import Conv2D, MaxPooling2D"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "64d4aed6",
   "metadata": {},
   "outputs": [],
   "source": [
    "model = Sequential()\n",
    "\n",
    "model.add(Conv2D(256, (3, 3), input_shape=features.shape[1:]))\n",
    "model.add(Activation('relu'))\n",
    "model.add(MaxPooling2D(pool_size=(2, 2)))\n",
    "\n",
    "model.add(Conv2D(256, (3, 3)))\n",
    "model.add(Activation('relu'))\n",
    "model.add(MaxPooling2D(pool_size=(2, 2)))\n",
    "\n",
    "model.add(Flatten())  # this converts our 3D feature maps to 1D feature vectors\n",
    "\n",
    "model.add(Dense(64))\n",
    "\n",
    "model.add(Dense(1))\n",
    "model.add(Activation('sigmoid'))\n",
    "\n",
    "model.compile(loss='binary_crossentropy',\n",
    "              optimizer='adam',\n",
    "              metrics=['accuracy'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "90aae9ae",
   "metadata": {},
   "outputs": [],
   "source": [
    "y_train= np.array(y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f73677fa",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/3\n",
      " 18/355 [>.............................] - ETA: 9:49 - loss: 40.9054 - accuracy: 0.5104"
     ]
    }
   ],
   "source": [
    "model.fit(x_train, y_train  , batch_size=32, epochs=3, validation_split=0.3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e7fa5229",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
