{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Computer Vision: Clasificación de Imágenes (train CNN)\n", "\n", "Referencia: https://lopezyse.medium.com/computer-vision-image-classification-using-python-913cf7156812" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'c:\\\\Users\\\\CynYDie\\\\Desktop\\\\UTN_Haedo\\\\Clases\\\\Clase14_CV'" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import os\n", "os.getcwd()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Explorar dataset" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Import libraries\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from tensorflow.keras.datasets import cifar10\n", "from tensorflow.keras.utils import to_categorical" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Downloading data from https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz\n", "\u001b[1m170498071/170498071\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m20s\u001b[0m 0us/step\n", "x_train shape: (50000, 32, 32, 3)\n", "y_train shape: (50000, 1)\n", "x_test shape: (10000, 32, 32, 3)\n", "y_test shape: (10000, 1)\n", "Number of classes: 10\n" ] } ], "source": [ "# Load CIFAR-10 data\n", "(x_train, y_train), (x_test, y_test) = cifar10.load_data()\n", "\n", "# Dataset shapes\n", "print(f\"x_train shape: {x_train.shape}\")\n", "print(f\"y_train shape: {y_train.shape}\")\n", "print(f\"x_test shape: {x_test.shape}\")\n", "print(f\"y_test shape: {y_test.shape}\")\n", "\n", "# Number of unique classes\n", "num_classes = len(np.unique(y_train))\n", "print(f\"Number of classes: {num_classes}\")" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZYAAAGrCAYAAADjHLHlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACs90lEQVR4nO39eZxlZXUujq+9zzxVnZqrq6eqHumJbmZolAYcAAcuUUCTmysYEzCAhqvxJjd+v4po9F5NojcaYsjPgEZvfjeQxMQJkQgCMtgMzdRNj1U9VHXXfKrqzMPe3z9yOWs9q+juajnVYLuez4cP7661zx7fvXe/z3reZzm+7/tkMBgMBkOD4L7eB2AwGAyGUwv2YTEYDAZDQ2EfFoPBYDA0FPZhMRgMBkNDYR8Wg8FgMDQU9mExGAwGQ0NhHxaDwWAwNBT2YTEYDAZDQ2EfFoPBYDA0FL9WH5aLL76Y1q9ff9z1BgYGyHEcuvvuu+f/oAy/lujt7aV3vetdx13voYceIsdx6KGHHqr/7frrr6fe3t75OzgD3XbbbeQ4Do2NjR1zvd7eXrr++utf074uvvhiuvjii1/TNt5o+LX6sBhObdxxxx32jwGD4Q2A4Ot9AG9ELF26lAqFAoVCodf7UAwngDvuuIPa29tf878g30i46KKLqFAoUDgcfr0PxfAq2LlzJ7mu/ftcw67Iq8BxHIpGoxQIBF7vQzH8msN1XYpGo/byeoMiEokc9x+guVzuJB3NGwenVG+dmZmhW2+9lXp7eykSiVBnZye97W1vo2eeeQbW2759O11yySUUj8dp4cKF9MUvfhHir5Zjuf766ymZTNK+ffvosssuo0QiQT09PXT77beTGUSfOPbv30833XQTrV69mmKxGLW1tdE111xDAwMDsN4rXLfG3XffTY7j1Nfv7e2ll156iX72s5+R4zjkOA7w1vv27aNrrrmGWltbKR6P0/nnn08/+MEPYJuv5DP+8R//kT7zmc/QwoULKZVK0dVXX01TU1NUKpXo1ltvpc7OTkomk/TBD36QSqUSbKNardJnP/tZWr58OUUiEert7aU/+ZM/mbXeK7j//vtp06ZNFI1Gae3atfTP//zPr3pMMsfyavA8j77yla/QunXrKBqNUldXF9144400OTl5zN8Zjo2xsTG69tprqampidra2ugP/uAPqFgs1uM6x/JKv/zZz35GN910E3V2dtKiRYvq8TvvvJOWL19OsViMzj33XHrkkUdO5umcNJxSVNiHP/xhuvfee+mWW26htWvX0vj4OD366KO0Y8cOOvPMM4mIaHJyki6//HJ6z3veQ9deey3de++99Ed/9Ee0YcMGuuKKK465/VqtRpdffjmdf/759MUvfpHuu+8++vSnP03VapVuv/32k3GKpwy2bt1Kjz32GL3//e+nRYsW0cDAAP31X/81XXzxxbR9+3aKx+MntL2vfOUr9JGPfISSySR98pOfJCKirq4uIiIaHh6mzZs3Uz6fp49+9KPU1tZG3/zmN+nKK6+ke++9l37jN34DtvWFL3yBYrEY/fEf/zHt2bOHvvrVr1IoFCLXdWlycpJuu+02euKJJ+juu++mvr4++tSnPlX/7e/+7u/SN7/5Tbr66qvp4x//OD355JP0hS98gXbs2EH/8i//AvvZvXs3ve9976MPf/jDdN1119Fdd91F11xzDd133330tre97YTO/8Ybb6S7776bPvjBD9JHP/pR6u/vp6997Wv07LPP0s9//nOjdX9JXHvttdTb20tf+MIX6IknnqC//Mu/pMnJSfrWt751zN/ddNNN1NHRQZ/61KfqI5ZvfOMbdOONN9LmzZvp1ltvpX379tGVV15Jra2ttHjx4pNxOicP/imE5uZm/+abbz5qfMuWLT4R+d/61rfqfyuVSn53d7f/3ve+t/63/v5+n4j8u+66q/636667zici/yMf+Uj9b57n+e985zv9cDjsj46ONvZkTnHk8/lZf3v88cdn3Z9Pf/rT/qt107vuussnIr+/v7/+t3Xr1vlbtmyZte6tt97qE5H/yCOP1P82MzPj9/X1+b29vX6tVvN93/cffPBBn4j89evX++Vyub7ub/7mb/qO4/hXXHEFbPeCCy7wly5dWl/etm2bT0T+7/7u78J6f/iHf+gTkf/Tn/60/relS5f6ROT/0z/9U/1vU1NT/oIFC/wzzjij/rdXjunBBx+s/+26666D/T7yyCM+Efnf+c53YL/33Xffq/7dcHy80u+uvPJK+PtNN93kE5H/3HPP+b7/H/fxuuuuq8df6ZdvetOb/Gq1Wv97uVz2Ozs7/U2bNvmlUqn+9zvvvNMnolftt7/KOKWosHQ6TU8++SQNDQ0ddZ1kMkm//du/XV8Oh8N07rnn0r59++a0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fSU3hmVtjwu35uT9+3JhF75HJNWo3X2PdY1qNaamKhWksGTBKucY9/b/rlFvhY9x/0pKpjs1xdRQJpPB41bHKvtsSdFW8hmJRpC2S8TT9XYkgrL3QkEej3a8xuepp4eveUhN8SgXBcVXxWs10D/Ax51HmvV4sBGLwWAwGBoK+7AYDAaDoaGwD4vBYDAYGgrHf72TAAaDwWA4pXDKjVhuu+02chyHxsa0lT6it7eXrr/++te0r4svvpguvvji17QNw6mNufZHg+FUwin3YTEYJB577DG67bbbZil3DIaTjaGhIbrtttto27Ztr/ehzDt+bT8sO3fupL/92799vQ/DMM947LHH6DOf+Yx9WAyvO4aGhugzn/mMfVhOZUQikVlV2TRyudwx44ZTB57ngYW4wWD45XHKfljGxsbo2muvpaamJmpra6M/+IM/gBeHzrHcfffd5DgO/exnP6ObbrqJOjs7adEi9u658847afny5RSLxejcc8+lRx555GSejuGXwG233Uaf+MQniIior6+PHMchx3FoYGCAHMehW265hb7zne/QunXrKBKJ0H333UcPPfQQOY5DDz30EGzrld/cfffd8PeXX36Zrr32Wuro6KBYLEarV6+mT37yk8c8rv3799OKFSto/fr1NDw83MhTNswTBgcH6UMf+hD19PRQJBKhvr4++v3f/30ql8s0MTFBf/iHf0gbNmygZDJJTU1NdMUVV9Bzzz1X//1DDz1E55xzDhERffCDH6z3Rd2fThWcvGnZJxnXXnst9fb20he+8AV64okn6C//8i9pcnKSvvWtbx3zdzfddBN1dHTQpz71qfqI5Rvf+AbdeOONtHnzZrr11ltp3759dOWVV1JraystXrz4ZJyO4ZfAe97zHtq1axf9wz/8A335y1+m9vb/MDbt6OggIqKf/vSn9I//+I90yy23UHt7O/X29p4QZfb888/Tm9/8ZgqFQnTDDTdQb28v7d27l773ve/Rn/7pq5v07d27ly699FJqbW2ln/zkJ/VjMrxxMTQ0ROeeey5lMhm64YYb6LTTTqPBwUG69957KZ/P0759++i73/0uXXPNNdTX10fDw8P0N3/zN7Rlyxbavn079fT00Jo1a+j222+nT33qU3TDDTfQm9/8ZiIi2rx58+t8dvME/xTDpz/9aZ+I/CuvvBL+ftNNN/lE5D/33HO+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0r333kt/9Ed/RBs2bKArrrjimNuv1Wp0+eWX0/nnn09f/OIX6b777qNPf/rTVK1W6fbbbz8Zp2h4Dbjxxhtp4cKF9PnPf54++tGP0jnnnENdXV30ne98h6rVKl122WX0pje9if7sz/6M4vE4+b5PV155JT344IP0oQ99iDZt2kQ//vGP6ROf+AQNDg7Sl7/85fq2r7/+evrHf/xH+i//5b/Q+eefTz/72c/one985+t4toZGYWhoiM4991zKZDJ0ww030GmnnUaDg4N07733Uj6fp3379tF3v/tduuaaa6ivr4+Gh4fpb/7mb2jLli20fft26unpoTVr1tDtt99On/rUp+iGG26gN7/5zUREtHnz5tf57OYJ/imE5uZm/+abbz5qfMuWLT4R+d/61rfqfyuVSn53d7f/3ve+t/63/v5+n4j8u+66q/636667zici/yMf+Uj9b57n+e985zv9cDjsj46ONvZkDPOCBx980Cci/5577qn/7ZV7+8d//Mew7ne/+12fiPzPfe5z8Perr77adxzH37Nnj+/7vv/000/7ROTfeuutsN7111/vE5H/6U9/en5OxnBS8IEPfMB3XdffunXrrJjneX6xWPRrtRr8vb+/349EIv7tt99e/9vWrVtnvVdOVZxSVFg6naYnn3yShoaGjrpOMpmk3/7t364vh8NhOvfcc2nfvn1z2sctt9xSbzuOQ7fccguVy2V64IEHfvkDN7wh8Pu///uw/MMf/pACgQB99KMfhb9//OMfJ9/36Uc/+hEREd13331ERHTTTTfBeh/5yEfm8WgNJwOe59F3v/tdeve7301nn332rLjjOBSJROrlHGq1Go2Pj1MymaTVq1fPouF/XXBKfVi++MUv0osvvkiLFy+mc889l2677bZZH4xFixbNMkBsaWmhyUmsW/1qcF2Xli1bBn9bteo/TOwGBgZe28EbXlcEg0FatGgR/G3//v3U09NDqRSag65Zs6Yef+X/rutSX18frLdiBdbXMfzqYXR0lKanp485/83zPPryl79MK1eupEgkQu3t7dTR0UHPP/88TU1NHfV3pzJOqQ/LtddeS/v27aOvfvWr1NPTQ1/60pdo3bp19X9ZEtFRlV6+JeB/rSH/1WkwnAg+//nP08c+9jG66KKL6Nvf/jb9+Mc/pp/85Ce0bt26YxZ/O5Vxyj1JCxYsoJtu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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Define class names for easy reference\n", "class_names = [\"airplane\", \"automobile\", \"bird\", \"cat\", \"deer\", \n", " \"dog\", \"frog\", \"horse\", \"ship\", \"truck\"]\n", "\n", "# Plot a 3x3 grid of random images from the dataset with their labels\n", "plt.figure(figsize=(5, 5))\n", "for i in range(9):\n", " index = np.random.randint(0, len(x_train))\n", " plt.subplot(3, 3, i + 1)\n", " plt.imshow(x_train[index])\n", " plt.title(class_names[y_train[index][0]])\n", " plt.axis(\"off\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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nj17lJKSolGjRql27dry9/eXt7e3HnzwQf30008Z+rn+nq30/2dxcXHq1q2bAgIC5O/vr+7du+vChQsOy17/Xk+//HH9+vUaMmSI/dLJdu3a6cSJEw7LpqWlacyYMSpRooS8vLzUtGlT7dmzJ1v3gaW/Tg0aNMgwL/2S6mvt3btXHTp0UOHCheXh4aE6derou+++c6j7iSeekCQ1bdrU/v9xzZo1WdYBwBqELQB56vvvv1e5cuVuetnVjRw8eFCLFy9W69atNXnyZA0dOlS7du1S48aNHe51+PDDDzVgwACFhYVp6tSpGjt2rGrWrKlNmzbZ2/Tp00ezZ89W+/btNWvWLL300kvy9PRUbGzsLW3jM888Iynry/l2796t1q1b6/Llyxo3bpwmTZqkNm3aaP369ZL+/gI9btw4SVLv3r31n//8R//5z3/UqFEjex8nT55Uq1atVLNmTU2dOlVNmzbNsq7x48dr6dKlGj58uAYMGKDo6Gg1b97c6XvkslPbtYwxatOmjaZMmaKHH35YkydPVqVKlTR06FANGTIkQ/t169bphRde0JNPPqkJEybo0qVLat++vU6ePOlUnelSU1MVERGhwMBATZw4UY0bN9akSZNueqnqunXrdOrUKT399NNycXHJ0brTJSUl6X//+5/D41rz5s3T448/Ljc3Nz311FP6448/tGXLlmz3ffr0aRUqVOiWarze9u3bdd9992W41K5u3bq6cOGC9u/ff8vr+OSTTzRjxgz17t1bkyZNUuHChZWcnKyPPvpITZo00TvvvKMxY8boxIkTioiIyPY9gh07dtTZs2f11ltvqWPHjoqKitLYsWOztWz//v3122+/afTo0Xr++ef1/fffq1+/fg5tRowYobFjx6pOnTp69913VbFiRUVEROj8+fM37T8kJESS9Omnn2b4Y8P1du/erfr16ys2NlYvv/yyJk2aJG9vbz322GNatGiRpL8v2xwwYIAk6ZVXXrH/fwwNDc3W9gLIZQYA8khSUpKRZNq2bZvtZUJCQkzXrl3tzy9dumRSU1Md2hw6dMi4u7ubcePG2ae1bdvWVKlSJcu+/f39Td++fbNdS7pPPvnESDJbtmzJsu9atWrZn48ePdpc+xE8ZcoUI8mcOHHihn1s2bLFSDKffPJJhnmNGzc2ksz777+f6bzGjRvbn//0009GkrnnnntMcnKyffpXX31lJJlp06bZp12/v2/UZ1a1de3a1YSEhNifL1682Egyb7zxhkO7Dh06GJvNZuLi4uzTJBk3NzeHab/99puRZGbMmJFhXdc6dOhQhpq6du1qJDm8N4wxplatWqZ27dpZ9jdt2jQjySxatCjLdunS9/OCBQvs09LfK5k90v36669GkomOjjbGGJOWlmZKlixpBg4cmGEdkkyPHj3MiRMnzPHjx82vv/5qHn74YSPJvPvuu9mq81re3t6Zvt7p85599tkM05cuXWokmeXLl+d4PemvlZ+fnzl+/LhD26tXr5rLly87TDt9+rQJCgrKUI8kM3r0aPvz9P9n17dr166dCQwMdJh2/Xs9/bVq3ry5SUtLs08fPHiwcXFxMWfOnDHGGJOQkGAKFixoHnvsMYf+xowZYyTdcH+mu3DhgqlUqZKRZEJCQky3bt3MnDlzTGJiYoa2zZo1M9WqVTOXLl2yT0tLSzMPPPCAqVixon3aggULjCTz008/ZbluANbjzBaAPJOcnCxJ8vX1zXEf7u7u9r+0p6am6uTJk/ZL8K69/C8gIEB//fVXlmcHAgICtGnTphyN/nUzPj4+WY5KGBAQIEn69ttvczyYhLu7u7p3757t9l26dHHY9x06dFDx4sX1ww8/5Gj92fXDDz/IxcXF/tf3dC+++KKMMVq2bJnD9ObNm6t8+fL259WrV5efn58OHjyY4xr69Onj8PzBBx+8aX+58X5NN3PmTEVHRzs80s2bN09BQUH2M5M2m02dOnXS/PnzM73Ucc6cOSpatKiKFSumOnXqaNWqVRo2bFimZwlvxcWLFzO9ryn9PqncGDW0ffv2Klq0qMM0FxcX+31baWlpOnXqlK5evao6depk+xLfzF7vkydP2l/TrPTu3dvhMssHH3xQqampOnz4sCRp1apVunr1ql544QWH5fr375+t2jw9PbVp0yYNHTpU0t+XAfbo0UPFixdX//797Zdnnjp1SqtXr7afpUs/I3ry5ElFRETojz/+0H//+99srRPAP4ewBSDPpN+LcCtDo6elpWnKlCmqWLGi3N3dVaRIERUtWlQ7d+5UUlKSvd3w4cPl4+OjunXrqmLFiurbt6/9Er10EyZM0O+//65SpUqpbt26GjNmzC19ob/WuXPnsvyS3qlTJzVo0EA9e/ZUUFCQnnzySX311VdOBa977rnHqcEErh89zmazqUKFCpYPF3348GGVKFEiw/5Iv8wp/UtsutKlS2foo1ChQjp9+nSO1u/h4ZHhC312+suN92u6unXrqnnz5g4P6e8/GMyfP19NmzbVoUOHFBcXp7i4ONWrV0+JiYlatWpVhr7atm2r6OhoLV261H6P0oULFxwu9ztx4oQSEhLsj3Pnzjlds6enZ6b3ZV26dMk+/1ZdP0Jjurlz56p69ery8PBQYGCgihYtqqVLlzr8H8/K9e+h9Esss/Meutmy6e/X60eLLFy4cLYv5fT399eECRP0559/6s8//9ScOXNUqVIlvffee3r99dclSXFxcTLG6LXXXlPRokUdHumDpxw/fjxb6wPwzyFsAcgzfn5+KlGihH7//fcc9/Hmm29qyJAhatSokT777DOtWLFC0dHRqlKlikNQCQ0N1b59+zR//nw1bNhQX3/9tRo2bOgwwlvHjh118OBBzZgxQyVKlNC7776rKlWqZDjT4qy//vpLSUlJNxy6W/r7i+rPP/+sH3/8Uc8884x27typTp06qUWLFjcduOHaPnLbjQZOyG5NueFG90eZm9zf4mx/N1O5cmVJ0q5du3K0fHasXr1ax44d0/z581WxYkX7o2PHjpKU6UAZJUuWVPPmzfXII49o9OjRmjx5st577z1988039jb333+/ihcvbn9MnDjR6dqKFy+e6dDw6dOcHZ48M5m9hz/77DN169ZN5cuX15w5c7R8+XJFR0froYceyvYfI27lPZTb77+bCQkJ0bPPPqv169crICDA/pqnb+tLL72U4axo+iOrzxgAeYOh3wHkqdatW+uDDz5QTEyMwsPDnV5+4cKFatq0qebMmeMw/cyZMypSpIjDNG9vb3Xq1EmdOnVSSkqKHn/8cY0fP14jRoywXwpVvHhxvfDCC3rhhRd0/Phx3XfffRo/frxatWqV421M/42hmw3DXaBAATVr1kzNmjXT5MmT9eabb2rkyJH66aef1Lx582yNGOeMP/74w+G5MUZxcXEOvwdWqFAhnTlzJsOyhw8fdhjO25naQkJC9OOPP+rs2bMOZ7f27t1rn387atiwoQoVKqQvvvhCr7zyyi0PkpGZefPmqVixYpo5c2aGed98840WLVqk999/P8tg/dxzz2nKlCl69dVX1a5dO9lsNs2bN8/hMr/rh2LPjpo1a+qXX35RWlqaw1mzTZs2ycvLS/fee6/TfWbHwoULVa5cOX3zzTcO77MbDYX/T0t/v8bFxTmcmTt58mSOz75Kf//fK1++vP2PUemvmaurq/1M6I3k9mcFgJzjzBaAPDVs2DB5e3urZ8+eSkxMzDD/wIEDmjZt2g2Xd3FxyfAX5gULFmS4d+H6kevc3NwUFhYmY4yuXLmi1NTUDJckFStWTCVKlLilIa1Xr16t119/XWXLllXnzp1v2O7UqVMZpqX/OHD6+r29vSUp0/CTE59++qnDJXELFy7UsWPHHIJl+fLltXHjRoff+lmyZEmGIeKdqe2RRx5Ramqq3nvvPYfpU6ZMkc1mu6VgayUvLy8NHz5csbGxGj58eKZnNj777DNt3rw5R/1fvHhR33zzjVq3bq0OHTpkePTr109nz551GOY7MwULFtSLL76o2NhYffvtt5L+Hlb82ksWcxK2OnTooMTERIczZv/73/+0YMECPfroo5b9TlV6qL12f2/atEkxMTGWrM9ZzZo1U8GCBTV79myH6de/v2/kt99+yzAapfT3HzT27NmjSpUqSfr786hJkyb697//nekZxmuHo8/tzwoAOceZLQB5qnz58vr888/VqVMnhYaGqkuXLqpatapSUlLsP6Ca1e/UtG7dWuPGjVP37t31wAMPaNeuXZo3b16GL5MtW7ZUcHCwGjRooKCgIMXGxuq9995TZGSkfH19debMGZUsWVIdOnRQjRo15OPjox9//FFbtmzRpEmTsrUty5Yt0969e3X16lUlJiZq9erVio6OVkhIiL777rssf3B13Lhx+vnnnxUZGamQkBAdP35cs2bNUsmSJdWwYUP7vgoICND7778vX19feXt7q169eje8z+VmChcurIYNG6p79+5KTEzU1KlTVaFCBfXq1cvepmfPnlq4cKEefvhhdezYUQcOHNBnn33mMGCFs7U9+uijatq0qUaOHKk///xTNWrU0MqVK/Xtt99q0KBBGfq+nQwdOlS7d+/WpEmT9NNPP6lDhw4KDg5WQkKCFi9erM2bN2vDhg056vu7777T2bNn1aZNm0zn169fX0WLFtW8efPUqVOnLPvq1q2bRo0apXfeeUePPfZYlm2///57++/SXblyRTt37tQbb7whSWrTpo39TGeHDh1Uv359de/eXXv27FGRIkU0a9YspaamZnsY9Zxo3bq1vvnmG7Vr106R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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Count occurrences of each class in the training set\n", "class_counts = np.bincount(y_train.flatten())\n", "\n", "# Plot the class distribution\n", "plt.figure(figsize=(10, 5))\n", "plt.bar(class_names, class_counts, color='skyblue')\n", "plt.title(\"Class Distribution in CIFAR-10 Training Set\")\n", "plt.xlabel(\"Class\")\n", "plt.ylabel(\"Number of Images\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Minimum pixel value: 0\n", "Maximum pixel value: 255\n" ] } ], "source": [ "# Check the minimum and maximum pixel values\n", "print(f\"Minimum pixel value: {x_train.min()}\")\n", "print(f\"Maximum pixel value: {x_train.max()}\")" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "c:\\Users\\CynYDie\\Anaconda3\\envs\\cv\\Lib\\site-packages\\keras\\src\\layers\\convolutional\\base_conv.py:107: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.\n", " super().__init__(activity_regularizer=activity_regularizer, **kwargs)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/10\n", "\u001b[1m782/782\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m29s\u001b[0m 31ms/step - accuracy: 0.3715 - loss: 1.7314 - val_accuracy: 0.5780 - val_loss: 1.2213\n", "Epoch 2/10\n", "\u001b[1m782/782\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m40s\u001b[0m 30ms/step - accuracy: 0.5793 - loss: 1.1898 - val_accuracy: 0.6089 - val_loss: 1.1312\n", "Epoch 3/10\n", "\u001b[1m782/782\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 29ms/step - accuracy: 0.6380 - loss: 1.0301 - val_accuracy: 0.6399 - val_loss: 1.0330\n", "Epoch 4/10\n", "\u001b[1m782/782\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m25s\u001b[0m 31ms/step - accuracy: 0.6837 - loss: 0.9078 - val_accuracy: 0.6855 - val_loss: 0.9075\n", "Epoch 5/10\n", "\u001b[1m782/782\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m26s\u001b[0m 33ms/step - accuracy: 0.7129 - loss: 0.8235 - val_accuracy: 0.6709 - val_loss: 0.9588\n", "Epoch 6/10\n", "\u001b[1m782/782\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m24s\u001b[0m 31ms/step - accuracy: 0.7406 - loss: 0.7517 - val_accuracy: 0.6890 - val_loss: 0.9068\n", "Epoch 7/10\n", "\u001b[1m782/782\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m25s\u001b[0m 31ms/step - accuracy: 0.7562 - loss: 0.6966 - val_accuracy: 0.6983 - val_loss: 0.8936\n", "Epoch 8/10\n", "\u001b[1m782/782\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m30s\u001b[0m 38ms/step - accuracy: 0.7800 - loss: 0.6252 - val_accuracy: 0.7028 - val_loss: 0.8958\n", "Epoch 9/10\n", "\u001b[1m782/782\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m36s\u001b[0m 31ms/step - accuracy: 0.8004 - loss: 0.5810 - val_accuracy: 0.6968 - val_loss: 0.9217\n", "Epoch 10/10\n", "\u001b[1m782/782\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m25s\u001b[0m 32ms/step - accuracy: 0.8187 - loss: 0.5179 - val_accuracy: 0.7015 - val_loss: 0.9476\n", "\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 7ms/step - accuracy: 0.7080 - loss: 0.9364\n", "Test accuracy: 0.7014999985694885\n" ] } ], "source": [ "import tensorflow as tf\n", "from tensorflow.keras.models import Sequential\n", "from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense\n", "from tensorflow.keras.datasets import cifar10\n", "from tensorflow.keras.utils import to_categorical\n", "\n", "# Load and preprocess the CIFAR-10 dataset\n", "(x_train, y_train), (x_test, y_test) = cifar10.load_data()\n", "x_train, x_test = x_train / 255.0, x_test / 255.0 # Normalize pixel values\n", "\n", "# One-hot encode the labels\n", "y_train = to_categorical(y_train, 10)\n", "y_test = to_categorical(y_test, 10)\n", "\n", "# Build a CNN model\n", "model = Sequential([\n", " Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)),\n", " MaxPooling2D(2, 2),\n", " Conv2D(64, (3, 3), activation='relu'),\n", " MaxPooling2D(2, 2),\n", " Flatten(),\n", " Dense(128, activation='relu'),\n", " Dense(10, activation='softmax') # 10 classes in CIFAR-10\n", "])\n", "\n", "# Compile the model\n", "model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])\n", "\n", "# Train the model\n", "model.fit(x_train, y_train, epochs=10, batch_size=64, validation_data=(x_test, y_test))\n", "\n", "# Evaluate the model\n", "loss, accuracy = model.evaluate(x_test, y_test)\n", "print(f'Test accuracy: {accuracy}')" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Model: \"sequential\"\n",
       "
\n" ], "text/plain": [ "\u001b[1mModel: \"sequential\"\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
       "┃ Layer (type)                     Output Shape                  Param # ┃\n",
       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
       "│ conv2d (Conv2D)                 │ (None, 30, 30, 32)     │           896 │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ max_pooling2d (MaxPooling2D)    │ (None, 15, 15, 32)     │             0 │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ conv2d_1 (Conv2D)               │ (None, 13, 13, 64)     │        18,496 │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ max_pooling2d_1 (MaxPooling2D)  │ (None, 6, 6, 64)       │             0 │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ flatten (Flatten)               │ (None, 2304)           │             0 │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ dense (Dense)                   │ (None, 128)            │       295,040 │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ dense_1 (Dense)                 │ (None, 10)             │         1,290 │\n",
       "└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
       "
\n" ], "text/plain": [ "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n", "┃\u001b[1m \u001b[0m\u001b[1mLayer (type) \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m Param #\u001b[0m\u001b[1m \u001b[0m┃\n", "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n", "│ conv2d (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m30\u001b[0m, \u001b[38;5;34m30\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m896\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", "│ max_pooling2d (\u001b[38;5;33mMaxPooling2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m15\u001b[0m, \u001b[38;5;34m15\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", "│ conv2d_1 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m13\u001b[0m, \u001b[38;5;34m13\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m18,496\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", "│ max_pooling2d_1 (\u001b[38;5;33mMaxPooling2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m6\u001b[0m, \u001b[38;5;34m6\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", "│ flatten (\u001b[38;5;33mFlatten\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m2304\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", "│ dense (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m295,040\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", "│ dense_1 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m10\u001b[0m) │ \u001b[38;5;34m1,290\u001b[0m │\n", "└─────────────────────────────────┴────────────────────────┴───────────────┘\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
 Total params: 947,168 (3.61 MB)\n",
       "
\n" ], "text/plain": [ "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m947,168\u001b[0m (3.61 MB)\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
 Trainable params: 315,722 (1.20 MB)\n",
       "
\n" ], "text/plain": [ "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m315,722\u001b[0m (1.20 MB)\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
 Non-trainable params: 0 (0.00 B)\n",
       "
\n" ], "text/plain": [ "\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
 Optimizer params: 631,446 (2.41 MB)\n",
       "
\n" ], "text/plain": [ "\u001b[1m Optimizer params: \u001b[0m\u001b[38;5;34m631,446\u001b[0m (2.41 MB)\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "model. summary()" ] } ], "metadata": { "kernelspec": { "display_name": "cv", "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.12.7" } }, "nbformat": 4, "nbformat_minor": 2 }