{ "cells": [ { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "import tensorflow as tf\n", "import numpy as np\n", "import cv2\n", "from PIL import Image" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "(xtrain, ytrain), (xtest, ytest) = tf.keras.datasets.mnist.load_data()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(60000, 28, 28)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "xtrain.shape" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "win = cv2.namedWindow('default')\n", "img = cv2.imread('test_img.jpeg')\n", "img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\n", "cv2.imshow('default', xtrain[0])\n", "\n", "cv2.waitKey(0)\n", "cv2.destroyAllWindows()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(0, 255)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "xtrain.min(), xtrain.max()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(10000, 28, 28, 1)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "xtrain_norm = xtrain.reshape(-1, 28, 28, 1)/255\n", "xtest_norm = xtest.reshape(-1, 28, 28, 1)/255\n", "xtest_norm.shape" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([7, 2, 1, ..., 4, 5, 6], dtype=uint8)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ytest" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/2\n", "1875/1875 [==============================] - 61s 32ms/step - loss: 0.1177 - accuracy: 0.9642\n", "Epoch 2/2\n", "1875/1875 [==============================] - 74s 39ms/step - loss: 0.0389 - accuracy: 0.9876\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# model0 = tf.keras.Sequential([\n", "# tf.keras.layers.Conv2D(64, (3, 3), activation = 'relu', input_shape = (28, 28, 1)),\n", "# tf.keras.layers.MaxPool2D(),\n", "\n", "# tf.keras.layers.Conv2D(64, (3, 3), activation = 'relu'),\n", "# tf.keras.layers.MaxPool2D(),\n", "\n", "# tf.keras.layers.Flatten(),\n", "# tf.keras.layers.Dense(128, activation = 'relu'),\n", "# tf.keras.layers.Dense(10, activation = 'softmax')\n", "# ])\n", "# # callback = tf.keras.callbacks.TensorBoard(log_dir = f'/log/{}')\n", "\n", "# model0.compile(\n", "# loss = tf.keras.losses.SparseCategoricalCrossentropy(),\n", "# optimizer = tf.keras.optimizers.Adam(),\n", "# metrics = ['accuracy']\n", "# )\n", "# model0.fit(xtrain_norm, ytrain, epochs = 2)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "# model0.save('CNN.h5')" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "# model0.summary()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Adding Right and Left Shifted images to the Dataset" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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1KFDh6yXZKqhoUHNzc0x50coFFJBQcEFeX5UVVUpIyNDV111lZYtW6ajR49aLymhwuGwJCktLU2StGfPHnV2dsacDxMmTNCYMWMG9flw5nH40ssvv6z09HRNnDhRZWVlOn78uMXyetXvbkZ6ps8++0xdXV3KzMyMeTwzM1N/+ctfjFZlo6CgQBUVFbrqqqvU1NSk1atX64YbbtD+/fuVkpJivTwTzc3NktTj+fHlcxeKuXPn6pZbblFeXp4OHjyon/70pyopKVFNTY2GDh1qvby46+7u1ooVKzR9+nRNnDhR0unzITk5WSNHjozZdzCfDz0dB0m64447NHbsWOXk5Gjfvn165JFHVFdXpzfeeMNwtbH6fYDwDyUlJdE/T548WQUFBRo7dqxef/113X333YYrQ39w2223Rf88adIkTZ48WePHj1dVVZVmz55tuLLEKC0t1f79+y+I90G/Tm/H4Z577on+edKkScrOztbs2bN18OBBjR8//nwvs0f9/q/g0tPTNXTo0LM+xdLS0qKsrCyjVfUPI0eO1JVXXqn6+nrrpZj58hzg/DjbuHHjlJ6ePijPj+XLl+utt97Se++9F/PrW7KysnTy5Em1trbG7D9Yz4fejkNPCgoKJKlfnQ/9PkDJycmaMmWKKisro491d3ersrJShYWFhiuzd+zYMR08eFDZ2dnWSzGTl5enrKysmPMjEolo165dF/z58emnn+ro0aOD6vxwzmn58uXasmWLduzYoby8vJjnp0yZoqSkpJjzoa6uTocOHRpU58O5jkNP9u7dK0n963yw/hTEN/Hqq6+6YDDoKioq3J/+9Cd3zz33uJEjR7rm5mbrpZ1XDz74oKuqqnINDQ3u97//vSsqKnLp6enuyJEj1ktLqLa2NvfRRx+5jz76yElyzz77rPvoo4/c3/72N+ecc0899ZQbOXKk27Ztm9u3b5+bN2+ey8vLc1988YXxyuPr645DW1ube+ihh1xNTY1raGhw7777rvv+97/vrrjiCnfixAnrpcfNsmXLXCgUclVVVa6pqSm6HT9+PLrPvffe68aMGeN27Njhdu/e7QoLC11hYaHhquPvXMehvr7e/exnP3O7d+92DQ0Nbtu2bW7cuHFu5syZxiuPNSAC5Jxza9eudWPGjHHJyclu2rRprra21npJ592iRYtcdna2S05Odt/97nfdokWLXH19vfWyEu69995zks7aFi9e7Jw7/VHsxx57zGVmZrpgMOhmz57t6urqbBedAF93HI4fP+7mzJnjRo0a5ZKSktzYsWPd0qVLB93/pPX0zy/Jbdy4MbrPF1984e677z73ne98x40YMcItWLDANTU12S06Ac51HA4dOuRmzpzp0tLSXDAYdJdffrn7yU9+4sLhsO3Cz8CvYwAAmOj37wEBAAYnAgQAMEGAAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADBBgAAAJggQAMDE/wMbyQoYiK2gOwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.imshow(np.roll(xtrain[0], 5, axis = 1))" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "xtrain_shifted = np.roll(xtrain, 5, axis = 2)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(60000, 28, 28, 1)" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "xtrain_norm.shape" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "xtrain_new = np.insert(xtrain, 1, xtrain_shifted[0], axis = 0)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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1KFDh6yXZKqhoUHNzc0x50coFFJBQcEFeX5UVVUpIyNDV111lZYtW6ajR49aLymhwuGwJCktLU2StGfPHnV2dsacDxMmTNCYMWMG9flw5nH40ssvv6z09HRNnDhRZWVlOn78uMXyetXvbkZ6ps8++0xdXV3KzMyMeTwzM1N/+ctfjFZlo6CgQBUVFbrqqqvU1NSk1atX64YbbtD+/fuVkpJivTwTzc3NktTj+fHlcxeKuXPn6pZbblFeXp4OHjyon/70pyopKVFNTY2GDh1qvby46+7u1ooVKzR9+nRNnDhR0unzITk5WSNHjozZdzCfDz0dB0m64447NHbsWOXk5Gjfvn165JFHVFdXpzfeeMNwtbH6fYDwDyUlJdE/T548WQUFBRo7dqxef/113X333YYrQ39w2223Rf88adIkTZ48WePHj1dVVZVmz55tuLLEKC0t1f79+y+I90G/Tm/H4Z577on+edKkScrOztbs2bN18OBBjR8//nwvs0f9/q/g0tPTNXTo0LM+xdLS0qKsrCyjVfUPI0eO1JVXXqn6+nrrpZj58hzg/DjbuHHjlJ6ePijPj+XLl+utt97Se++9F/PrW7KysnTy5Em1trbG7D9Yz4fejkNPCgoKJKlfnQ/9PkDJycmaMmWKKisro491d3ersrJShYWFhiuzd+zYMR08eFDZ2dnWSzGTl5enrKysmPMjEolo165dF/z58emnn+ro0aOD6vxwzmn58uXasmWLduzYoby8vJjnp0yZoqSkpJjzoa6uTocOHRpU58O5jkNP9u7dK0n963yw/hTEN/Hqq6+6YDDoKioq3J/+9Cd3zz33uJEjR7rm5mbrpZ1XDz74oKuqqnINDQ3u97//vSsqKnLp6enuyJEj1ktLqLa2NvfRRx+5jz76yElyzz77rPvoo4/c3/72N+ecc0899ZQbOXKk27Ztm9u3b5+bN2+ey8vLc1988YXxyuPr645DW1ube+ihh1xNTY1raGhw7777rvv+97/vrrjiCnfixAnrpcfNsmXLXCgUclVVVa6pqSm6HT9+PLrPvffe68aMGeN27Njhdu/e7QoLC11hYaHhquPvXMehvr7e/exnP3O7d+92DQ0Nbtu2bW7cuHFu5syZxiuPNSAC5Jxza9eudWPGjHHJyclu2rRprra21npJ592iRYtcdna2S05Odt/97nfdokWLXH19vfWyEu69995zks7aFi9e7Jw7/VHsxx57zGVmZrpgMOhmz57t6urqbBedAF93HI4fP+7mzJnjRo0a5ZKSktzYsWPd0qVLB93/pPX0zy/Jbdy4MbrPF1984e677z73ne98x40YMcItWLDANTU12S06Ac51HA4dOuRmzpzp0tLSXDAYdJdffrn7yU9+4sLhsO3Cz8CvYwAAmOj37wEBAAYnAgQAMEGAAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADBBgAAAJggQAMDE/wMbyQoYiK2gOwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.imshow(xtrain_new[1])" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "xtrain_rshifted = np.roll(xtrain, 5, axis = 2)\n", "xtrain_lshifted = np.roll(xtrain, -5, axis = 2)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "# xtrain_new = xtrain.copy()\n", "# i = j = 0\n", "# while i < len(xtrain):\n", "# np.insert(xtrain_new, j + 1, xtrain_lshifted[i], axis = 0)\n", "# np.insert(xtrain_new, j + 2, xtrain_rshifted[i], axis = 0)\n", "# j += 3\n", "# i += 1" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 1, 1, 2, ..., 59999, 60000, 60000])" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# index = np.array([[x + 1, x + 2] for x in range(0, len(xtrain), 3)])\n", "# index = index.reshape(-1)\n", "index = np.array([[x, x] for x in range(1, 60001)]).reshape(-1)\n", "index" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "values = np.array([[xtrain_lshifted[i], xtrain_rshifted[i]] for i in range(len(xtrain))]).reshape(-1, 28, 28)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(120000, 28, 28)" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "values.shape" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "values = values.reshape(-1, 28, 28)" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaAAAAGdCAYAAABU0qcqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAcrUlEQVR4nO3df3BUZb7n8U8HkgY0aYwhv4aAAUVGgTiDELMqomQJmS0XkHXxx9wLrIsrBldgHK1Mqagzu5nBW46rE+XW3RH0ruCPugKr5TCrgYSrJniJsAylZgkTJSwkjNSQDkFCIM/+wdpOSwLzNB2+SXi/qk4V6T7fnMdjl28P3TkJOOecAAA4zxKsFwAAuDARIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYGKg9QK+q7OzU/v371dycrICgYD1cgAAnpxzam1tVXZ2thISur/O6XUB2r9/v3JycqyXAQA4R42NjRo+fHi3z/e6ACUnJ0uSbtCPNFCJxqsBAPg6oQ59oHcj/z3vTo8FqLy8XE8//bSampqUl5en559/XpMnTz7r3Dd/7TZQiRoYIEAA0Of8/zuMnu1tlB75EMLrr7+uZcuWafny5frkk0+Ul5enoqIiHTx4sCcOBwDog3okQM8884wWLlyoBQsW6KqrrtLKlSs1ZMgQvfTSSz1xOABAHxT3AB0/fly1tbUqLCz89iAJCSosLFR1dfVp+7e3tyscDkdtAID+L+4B+uqrr3Ty5EllZGREPZ6RkaGmpqbT9i8rK1MoFIpsfAIOAC4M5j+IWlpaqpaWlsjW2NhovSQAwHkQ90/BpaWlacCAAWpubo56vLm5WZmZmaftHwwGFQwG470MAEAvF/croKSkJE2cOFEVFRWRxzo7O1VRUaGCgoJ4Hw4A0Ef1yM8BLVu2TPPmzdO1116ryZMn69lnn1VbW5sWLFjQE4cDAPRBPRKguXPn6k9/+pMef/xxNTU16ZprrtHGjRtP+2ACAODCFXDOOetF/KVwOKxQKKSpmsmdEACgDzrhOlSpDWppaVFKSkq3+5l/Cg4AcGEiQAAAEwQIAGCCAAEATBAgAIAJAgQAMEGAAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAEwQIAGCCAAEATBAgAIAJAgQAMEGAAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADBBgAAAJgZaLwA4mxO3TPSeOXB/e0zH+t8FL3vP5FXP857JLk/ynhmw+RPvGaA34woIAGCCAAEATBAgAIAJAgQAMEGAAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADDBzUhxXnXe9APvmede+o33zOWJsb20O2OY2V6wynum7tqT3jM/vew67xmgN+MKCABgggABAEzEPUBPPPGEAoFA1DZ27Nh4HwYA0Mf1yHtAV199td5///1vDzKQt5oAANF6pAwDBw5UZmZmT3xrAEA/0SPvAe3evVvZ2dkaNWqU7r77bu3du7fbfdvb2xUOh6M2AED/F/cA5efna/Xq1dq4caNefPFFNTQ06MYbb1Rra2uX+5eVlSkUCkW2nJyceC8JANALxT1AxcXFuv322zVhwgQVFRXp3Xff1eHDh/XGG290uX9paalaWloiW2NjY7yXBADohXr80wFDhw7VmDFjVF9f3+XzwWBQwWCwp5cBAOhlevzngI4cOaI9e/YoKyurpw8FAOhD4h6ghx56SFVVVfriiy/00Ucfafbs2RowYIDuvPPOeB8KANCHxf2v4Pbt26c777xThw4d0rBhw3TDDTeopqZGw4YNi/ehAAB9WNwD9Nprr8X7W6KX6ph+rffMwy/8o/fMmMQk75nOmG4rKv2xo8N7pqXT/z3MH8Twtmd78STvmcGb/+B/IEmdx47FNAf44F5wAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAEwQIAGCCAAEATBAgAICJHv+FdDi/BqSkeM+0TRkb07GW/nqN98zNg4/EcKTz9/9Jq//8r7xnKl4o8J758InnvGfe++8rvWeu+h+LvWckadQj1THNAT64AgIAmCBAAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAEwQIAGCCAAEATBAgAIAJ7obdz+x75XveM/8yqbwHVtI3PZX+L94zGy/2v4P2gi+me8+8fNn73jMpVx3yngHOF66AAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAAT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+OCDdov6K/T6K6Djx4+rtrZWhYWFkccSEhJUWFio6upqw5XZ2L17t7KzszVq1Cjdfffd2rt3r/WSTDU0NKipqSnq9REKhZSfn39Bvj4qKyuVnp6uK6+8UosWLdKhQ4esl9SjWlpaJEmpqamSpNraWnV0dES9HsaOHasRI0b069fDd8/DN1599VWlpaVp3LhxKi0t1dGjRy2W161edzPS7/rqq6908uRJZWRkRD2ekZGhzz//3GhVNvLz87V69WpdeeWVOnDggJ588kndeOON2rVrl5KTk62XZ6KpqUmSunx9fPPchWLGjBm67bbblJubqz179uhnP/uZiouLVV1drQEDBlgvL+46Ozu1ZMkSXX/99Ro3bpykU6+HpKQkDR06NGrf/vx66Oo8SNJdd92lkSNHKjs7Wzt37tQjjzyiuro6vfXWW4arjdbrA4RvFRcXR/48YcIE5efna+TIkXrjjTd0zz33GK4MvcEdd9wR+fP48eM1YcIEjR49WpWVlZo2bZrhynpGSUmJdu3adUG8D3om3Z2He++9N/Ln8ePHKysrS9OmTdOePXs0evTo873MLvX6v4JLS0vTgAEDTvsUS3NzszIzM41W1TsMHTpUY8aMUX19vfVSzHzzGuD1cbpRo0YpLS2tX74+Fi9erHfeeUebN2+O+vUtmZmZOn78uA4fPhy1f399PXR3HrqSn58vSb3q9dDrA5SUlKSJEyeqoqIi8lhnZ6cqKipUUFBguDJ7R44c0Z49e5SVlWW9FDO5ubnKzMyMen2Ew2Ft3br1gn997Nu3T4cOHepXrw/nnBYvXqx169Zp06ZNys3NjXp+4sSJSkxMjHo91NXVae/evf3q9XC289CVHTt2SFLvej1Yfwrir/Haa6+5YDDoVq9e7T799FN37733uqFDh7qmpibrpZ1XP/nJT1xlZaVraGhwH374oSssLHRpaWnu4MGD1kvrUa2trW779u1u+/btTpJ75pln3Pbt292XX37pnHPul7/8pRs6dKjbsGGD27lzp5s5c6bLzc11X3/9tfHK4+tM56G1tdU99NBDrrq62jU0NLj333/f/fCHP3RXXHGFO3bsmPXS42bRokUuFAq5yspKd+DAgch29OjRyD733XefGzFihNu0aZPbtm2bKygocAUFBYarjr+znYf6+nr31FNPuW3btrmGhga3YcMGN2rUKDdlyhTjlUfrEwFyzrnnn3/ejRgxwiUlJbnJkye7mpoa6yWdd3PnznVZWVkuKSnJfe9733Nz58519fX11svqcZs3b3aSTtvmzZvnnDv1UezHHnvMZWRkuGAw6KZNm+bq6upsF90DznQejh496qZPn+6GDRvmEhMT3ciRI93ChQv73f+kdfXPL8mtWrUqss/XX3/t7r//fnfJJZe4IUOGuNmzZ7sDBw7YLboHnO087N27102ZMsWlpqa6YDDoLr/8cvfTn/7UtbS02C78O/h1DAAAE73+PSAAQP9EgAAAJggQAMAEAQIAmCBAAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJj4f/AC5c1cxGxsAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.imshow(values[2])" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(120000,)" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "index.shape" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "xtrain_new = xtrain.copy()\n", "xtrain_new = np.insert(xtrain_new, index, values, axis = 0)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(180000, 28, 28)" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "xtrain_new.shape" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaAAAAGdCAYAAABU0qcqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAcrUlEQVR4nO3df3BUZb7n8U8HkgY0aYwhv4aAAUVGgTiDELMqomQJmS0XkHXxx9wLrIsrBldgHK1Mqagzu5nBW46rE+XW3RH0ruCPugKr5TCrgYSrJniJsAylZgkTJSwkjNSQDkFCIM/+wdpOSwLzNB2+SXi/qk4V6T7fnMdjl28P3TkJOOecAAA4zxKsFwAAuDARIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYGKg9QK+q7OzU/v371dycrICgYD1cgAAnpxzam1tVXZ2thISur/O6XUB2r9/v3JycqyXAQA4R42NjRo+fHi3z/e6ACUnJ0uSbtCPNFCJxqsBAPg6oQ59oHcj/z3vTo8FqLy8XE8//bSampqUl5en559/XpMnTz7r3Dd/7TZQiRoYIEAA0Of8/zuMnu1tlB75EMLrr7+uZcuWafny5frkk0+Ul5enoqIiHTx4sCcOBwDog3okQM8884wWLlyoBQsW6KqrrtLKlSs1ZMgQvfTSSz1xOABAHxT3AB0/fly1tbUqLCz89iAJCSosLFR1dfVp+7e3tyscDkdtAID+L+4B+uqrr3Ty5EllZGREPZ6RkaGmpqbT9i8rK1MoFIpsfAIOAC4M5j+IWlpaqpaWlsjW2NhovSQAwHkQ90/BpaWlacCAAWpubo56vLm5WZmZmaftHwwGFQwG470MAEAvF/croKSkJE2cOFEVFRWRxzo7O1VRUaGCgoJ4Hw4A0Ef1yM8BLVu2TPPmzdO1116ryZMn69lnn1VbW5sWLFjQE4cDAPRBPRKguXPn6k9/+pMef/xxNTU16ZprrtHGjRtP+2ACAODCFXDOOetF/KVwOKxQKKSpmsmdEACgDzrhOlSpDWppaVFKSkq3+5l/Cg4AcGEiQAAAEwQIAGCCAAEATBAgAIAJAgQAMEGAAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAEwQIAGCCAAEATBAgAIAJAgQAMEGAAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADBBgAAAJgZaLwA4mxO3TPSeOXB/e0zH+t8FL3vP5FXP857JLk/ynhmw+RPvGaA34woIAGCCAAEATBAgAIAJAgQAMEGAAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADDBzUhxXnXe9APvmede+o33zOWJsb20O2OY2V6wynum7tqT3jM/vew67xmgN+MKCABgggABAEzEPUBPPPGEAoFA1DZ27Nh4HwYA0Mf1yHtAV199td5///1vDzKQt5oAANF6pAwDBw5UZmZmT3xrAEA/0SPvAe3evVvZ2dkaNWqU7r77bu3du7fbfdvb2xUOh6M2AED/F/cA5efna/Xq1dq4caNefPFFNTQ06MYbb1Rra2uX+5eVlSkUCkW2nJyceC8JANALxT1AxcXFuv322zVhwgQVFRXp3Xff1eHDh/XGG290uX9paalaWloiW2NjY7yXBADohXr80wFDhw7VmDFjVF9f3+XzwWBQwWCwp5cBAOhlevzngI4cOaI9e/YoKyurpw8FAOhD4h6ghx56SFVVVfriiy/00Ucfafbs2RowYIDuvPPOeB8KANCHxf2v4Pbt26c777xThw4d0rBhw3TDDTeopqZGw4YNi/ehAAB9WNwD9Nprr8X7W6KX6ph+rffMwy/8o/fMmMQk75nOmG4rKv2xo8N7pqXT/z3MH8Twtmd78STvmcGb/+B/IEmdx47FNAf44F5wAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAEwQIAGCCAAEATBAgAICJHv+FdDi/BqSkeM+0TRkb07GW/nqN98zNg4/EcKTz9/9Jq//8r7xnKl4o8J758InnvGfe++8rvWeu+h+LvWckadQj1THNAT64AgIAmCBAAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAEwQIAGCCAAEATBAgAIAJ7obdz+x75XveM/8yqbwHVtI3PZX+L94zGy/2v4P2gi+me8+8fNn73jMpVx3yngHOF66AAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAAT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+OCDdov6K/T6K6Djx4+rtrZWhYWFkccSEhJUWFio6upqw5XZ2L17t7KzszVq1Cjdfffd2rt3r/WSTDU0NKipqSnq9REKhZSfn39Bvj4qKyuVnp6uK6+8UosWLdKhQ4esl9SjWlpaJEmpqamSpNraWnV0dES9HsaOHasRI0b069fDd8/DN1599VWlpaVp3LhxKi0t1dGjRy2W161edzPS7/rqq6908uRJZWRkRD2ekZGhzz//3GhVNvLz87V69WpdeeWVOnDggJ588kndeOON2rVrl5KTk62XZ6KpqUmSunx9fPPchWLGjBm67bbblJubqz179uhnP/uZiouLVV1drQEDBlgvL+46Ozu1ZMkSXX/99Ro3bpykU6+HpKQkDR06NGrf/vx66Oo8SNJdd92lkSNHKjs7Wzt37tQjjzyiuro6vfXWW4arjdbrA4RvFRcXR/48YcIE5efna+TIkXrjjTd0zz33GK4MvcEdd9wR+fP48eM1YcIEjR49WpWVlZo2bZrhynpGSUmJdu3adUG8D3om3Z2He++9N/Ln8ePHKysrS9OmTdOePXs0evTo873MLvX6v4JLS0vTgAEDTvsUS3NzszIzM41W1TsMHTpUY8aMUX19vfVSzHzzGuD1cbpRo0YpLS2tX74+Fi9erHfeeUebN2+O+vUtmZmZOn78uA4fPhy1f399PXR3HrqSn58vSb3q9dDrA5SUlKSJEyeqoqIi8lhnZ6cqKipUUFBguDJ7R44c0Z49e5SVlWW9FDO5ubnKzMyMen2Ew2Ft3br1gn997Nu3T4cOHepXrw/nnBYvXqx169Zp06ZNys3NjXp+4sSJSkxMjHo91NXVae/evf3q9XC289CVHTt2SFLvej1Yfwrir/Haa6+5YDDoVq9e7T799FN37733uqFDh7qmpibrpZ1XP/nJT1xlZaVraGhwH374oSssLHRpaWnu4MGD1kvrUa2trW779u1u+/btTpJ75pln3Pbt292XX37pnHPul7/8pRs6dKjbsGGD27lzp5s5c6bLzc11X3/9tfHK4+tM56G1tdU99NBDrrq62jU0NLj333/f/fCHP3RXXHGFO3bsmPXS42bRokUuFAq5yspKd+DAgch29OjRyD733XefGzFihNu0aZPbtm2bKygocAUFBYarjr+znYf6+nr31FNPuW3btrmGhga3YcMGN2rUKDdlyhTjlUfrEwFyzrnnn3/ejRgxwiUlJbnJkye7mpoa6yWdd3PnznVZWVkuKSnJfe9733Nz58519fX11svqcZs3b3aSTtvmzZvnnDv1UezHHnvMZWRkuGAw6KZNm+bq6upsF90DznQejh496qZPn+6GDRvmEhMT3ciRI93ChQv73f+kdfXPL8mtWrUqss/XX3/t7r//fnfJJZe4IUOGuNmzZ7sDBw7YLboHnO087N27102ZMsWlpqa6YDDoLr/8cvfTn/7UtbS02C78O/h1DAAAE73+PSAAQP9EgAAAJggQAMAEAQIAmCBAAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJj4f/AC5c1cxGxsAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.imshow(xtrain_new[4])" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 1, 1, 2, ..., 59999, 60000, 60000])" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "yindex = np.array([[x, x] for x in range(1, 60001)]).reshape(-1)\n", "yindex" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([5, 5, 5, ..., 8, 8, 8], dtype=uint8)" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ytrain_new = np.array([[x, x, x] for x in ytrain]).reshape(-1)\n", "ytrain_new" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "xtrain_new_norm = xtrain_new/255" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(, 0)" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "i = 5\n", "plt.imshow(xtrain_new_norm[i]), ytrain_new[i]" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(180000, 28, 28, 1)" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "xtrain_new_norm = xtrain_new_norm.reshape(-1, 28, 28, 1)\n", "xtrain_new_norm.shape" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/2\n", "5625/5625 [==============================] - 220s 39ms/step - loss: 0.1053 - accuracy: 0.9673\n", "Epoch 2/2\n", "5625/5625 [==============================] - 215s 38ms/step - loss: 0.0378 - accuracy: 0.9882\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model1 = tf.keras.Sequential([\n", " tf.keras.layers.Conv2D(64, (3, 3), activation = 'relu', input_shape = (28, 28, 1)),\n", " tf.keras.layers.MaxPool2D(),\n", "\n", " tf.keras.layers.Conv2D(64, (3, 3), activation = 'relu'),\n", " tf.keras.layers.MaxPool2D(),\n", "\n", " tf.keras.layers.Flatten(),\n", " tf.keras.layers.Dense(128, activation = 'relu'),\n", " tf.keras.layers.Dense(10, activation = 'softmax')\n", "])\n", "# callback = tf.keras.callbacks.TensorBoard(log_dir = f'/log/{}')\n", "\n", "model1.compile(\n", " loss = tf.keras.losses.SparseCategoricalCrossentropy(),\n", " optimizer = tf.keras.optimizers.Adam(),\n", " metrics = ['accuracy']\n", ")\n", "model1.fit(xtrain_new_norm, ytrain_new, epochs = 2)" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [], "source": [ "model1.save('CNN_extended_dataset.h5')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "develop_env", "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.9.12 (main, Apr 4 2022, 05:22:27) [MSC v.1916 64 bit (AMD64)]" }, "orig_nbformat": 4, "vscode": { "interpreter": { "hash": "644259c5c34406fc08905d9a77abc2e28422ee1d6f5c9d8d8683fb64864ae287" } } }, "nbformat": 4, "nbformat_minor": 2 }