{
 "nbformat": 4,
 "nbformat_minor": 0,
 "metadata": {
  "colab": {
   "provenance": [],
   "gpuType": "T4"
  },
  "kernelspec": {
   "name": "python3",
   "display_name": "Python 3"
  },
  "language_info": {
   "name": "python"
  },
  "accelerator": "GPU"
 },
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1. Data Access and File Verification"
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "from google.colab import drive\n",
    "drive.mount('/content/drive')"
   ],
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "U7UVgM_Ou476",
    "outputId": "24a3b397-35c2-45cb-be90-bbb7760d0823"
   },
   "execution_count": null,
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount(\"/content/drive\", force_remount=True).\n"
     ]
    }
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "J3g07eDFqzmY",
    "outputId": "a7c849d4-5d3f-4050-d58a-ef05b4330753"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "True\n"
     ]
    }
   ],
   "source": [
    "import os\n",
    "\n",
    "print(os.path.exists(\"/content/drive/MyDrive/PlantPathology_Split.zip\"))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2. Dataset Extraction and Directory Check"
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "!unzip -q \"/content/drive/MyDrive/PlantPathology_Split.zip\" -d \"/content/\""
   ],
   "metadata": {
    "id": "HDCNqa4xwaq5"
   },
   "execution_count": null,
   "outputs": []
  },
  {
   "cell_type": "code",
   "source": [
    "!ls \"/content/plant_pathology/PlantPathology_Split\""
   ],
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "241jCc1XyfV6",
    "outputId": "50e2a0e1-3f63-46a4-fa8b-cd38e04ee119"
   },
   "execution_count": null,
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "test  train  valid\n"
     ]
    }
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3. Dataset Loading and Configuration"
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "import os\n",
    "import tensorflow as tf\n",
    "from tensorflow.keras import layers, models\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "IMG_SIZE = (512, 512)\n",
    "BATCH_SIZE = 32\n",
    "\n",
    "selected_classes = [\n",
    "    \"frog_eye_leaf_spot\",\n",
    "    \"healthy\",\n",
    "    \"powdery_mildew\",\n",
    "    \"rust\",\n",
    "    \"scab\"\n",
    "]\n",
    "\n",
    "train_ds = tf.keras.utils.image_dataset_from_directory(\n",
    "    \"/content/plant_pathology/PlantPathology_Split/train\",\n",
    "    class_names=selected_classes,\n",
    "    image_size=IMG_SIZE,\n",
    "    batch_size=BATCH_SIZE,\n",
    "    label_mode=\"int\"\n",
    ")\n",
    "\n",
    "valid_ds = tf.keras.utils.image_dataset_from_directory(\n",
    "    \"/content/plant_pathology/PlantPathology_Split/valid\",\n",
    "    class_names=selected_classes,\n",
    "    image_size=IMG_SIZE,\n",
    "    batch_size=BATCH_SIZE,\n",
    "    label_mode=\"int\"\n",
    ")\n",
    "\n",
    "test_ds = tf.keras.utils.image_dataset_from_directory(\n",
    "    \"/content/plant_pathology/PlantPathology_Split/test\",\n",
    "    class_names=selected_classes,\n",
    "    image_size=IMG_SIZE,\n",
    "    batch_size=BATCH_SIZE,\n",
    "    label_mode=\"int\",\n",
    "    shuffle=False\n",
    ")\n",
    "\n",
    "class_names = train_ds.class_names\n",
    "\n",
    "print(\"Classes:\")\n",
    "print(class_names)"
   ],
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "MFt4tEfiynlQ",
    "outputId": "2dbaefe5-0528-4b0b-ad44-9f1a4bc1322e"
   },
   "execution_count": null,
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Found 7307 files belonging to 5 classes.\n",
      "Found 1564 files belonging to 5 classes.\n",
      "Found 1567 files belonging to 5 classes.\n",
      "Classes:\n",
      "['frog_eye_leaf_spot', 'healthy', 'powdery_mildew', 'rust', 'scab']\n"
     ]
    }
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4. Dataset Pipeline Optimisation"
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "AUTOTUNE = tf.data.AUTOTUNE\n",
    "\n",
    "train_ds = train_ds.prefetch(AUTOTUNE)\n",
    "valid_ds = valid_ds.prefetch(AUTOTUNE)\n",
    "test_ds = test_ds.prefetch(AUTOTUNE)"
   ],
   "metadata": {
    "id": "T28L_smdztQU"
   },
   "execution_count": null,
   "outputs": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5. Baseline CNN Architecture"
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "num_classes = len(class_names)\n",
    "\n",
    "base1 = models.Sequential([\n",
    "    layers.Rescaling(1./255, input_shape=(512, 512, 3)),\n",
    "    layers.Conv2D(32, 3, activation='relu'),\n",
    "    layers.MaxPooling2D(),\n",
    "    layers.Conv2D(64, 3, activation='relu'),\n",
    "    layers.MaxPooling2D(),\n",
    "    layers.Flatten(),\n",
    "    layers.Dense(128, activation='relu'),\n",
    "    layers.Dropout(0.5),\n",
    "    layers.Dense(num_classes, activation='softmax')\n",
    "])\n",
    "\n",
    "base1.summary()"
   ],
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 472
    },
    "id": "m-SN90ngz6xW",
    "outputId": "c6d85bd7-dac4-46b9-e464-bd2ef0f3c1fc"
   },
   "execution_count": null,
   "outputs": [
    {
     "output_type": "stream",
     "name": "stderr",
     "text": [
      "/usr/local/lib/python3.12/dist-packages/keras/src/layers/preprocessing/data_layer.py:95: 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__(**kwargs)\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "\u001b[1mModel: \"sequential\"\u001b[0m\n"
      ],
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"sequential\"</span>\n",
       "</pre>\n"
      ]
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "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",
       "│ rescaling (\u001b[38;5;33mRescaling\u001b[0m)           │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m512\u001b[0m, \u001b[38;5;34m512\u001b[0m, \u001b[38;5;34m3\u001b[0m)    │             \u001b[38;5;34m0\u001b[0m │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ conv2d (\u001b[38;5;33mConv2D\u001b[0m)                 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m510\u001b[0m, \u001b[38;5;34m510\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;34m255\u001b[0m, \u001b[38;5;34m255\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;34m253\u001b[0m, \u001b[38;5;34m253\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;34m126\u001b[0m, \u001b[38;5;34m126\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;34m1016064\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;34m130,056,320\u001b[0m │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ dropout (\u001b[38;5;33mDropout\u001b[0m)               │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m)            │             \u001b[38;5;34m0\u001b[0m │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ dense_1 (\u001b[38;5;33mDense\u001b[0m)                 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m5\u001b[0m)              │           \u001b[38;5;34m645\u001b[0m │\n",
       "└─────────────────────────────────┴────────────────────────┴───────────────┘\n"
      ],
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
       "┃<span style=\"font-weight: bold\"> Layer (type)                    </span>┃<span style=\"font-weight: bold\"> Output Shape           </span>┃<span style=\"font-weight: bold\">       Param # </span>┃\n",
       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
       "│ rescaling (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Rescaling</span>)           │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">512</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">512</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">3</span>)    │             <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ conv2d (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)                 │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">510</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">510</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)   │           <span style=\"color: #00af00; text-decoration-color: #00af00\">896</span> │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ max_pooling2d (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">MaxPooling2D</span>)    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">255</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">255</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)   │             <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ conv2d_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)               │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">253</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">253</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)   │        <span style=\"color: #00af00; text-decoration-color: #00af00\">18,496</span> │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ max_pooling2d_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">MaxPooling2D</span>)  │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">126</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">126</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)   │             <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ flatten (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Flatten</span>)               │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1016064</span>)        │             <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ dense (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>)                   │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>)            │   <span style=\"color: #00af00; text-decoration-color: #00af00\">130,056,320</span> │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ dropout (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dropout</span>)               │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>)            │             <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ dense_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>)                 │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">5</span>)              │           <span style=\"color: #00af00; text-decoration-color: #00af00\">645</span> │\n",
       "└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
       "</pre>\n"
      ]
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m130,076,357\u001b[0m (496.20 MB)\n"
      ],
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">130,076,357</span> (496.20 MB)\n",
       "</pre>\n"
      ]
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m130,076,357\u001b[0m (496.20 MB)\n"
      ],
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">130,076,357</span> (496.20 MB)\n",
       "</pre>\n"
      ]
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n"
      ],
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (0.00 B)\n",
       "</pre>\n"
      ]
     },
     "metadata": {}
    }
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 6. Model Compilation"
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "base1.compile(\n",
    "    optimizer='adam',\n",
    "    loss='sparse_categorical_crossentropy',\n",
    "    metrics=['accuracy']\n",
    ")"
   ],
   "metadata": {
    "id": "syzhnwu-z8Sv"
   },
   "execution_count": null,
   "outputs": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 7. Model Training"
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "history_base1 = base1.fit(\n",
    "    train_ds,\n",
    "    validation_data=valid_ds,\n",
    "    epochs=10\n",
    ")"
   ],
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "l9YL4e4f0ZWI",
    "outputId": "d31edd7f-be11-415a-a19a-c68538f62dfa"
   },
   "execution_count": null,
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Epoch 1/10\n",
      "\u001b[1m229/229\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m86s\u001b[0m 309ms/step - accuracy: 0.3579 - loss: 2.8032 - val_accuracy: 0.3868 - val_loss: 1.3667\n",
      "Epoch 2/10\n",
      "\u001b[1m229/229\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m55s\u001b[0m 241ms/step - accuracy: 0.4229 - loss: 1.3432 - val_accuracy: 0.4731 - val_loss: 1.3285\n",
      "Epoch 3/10\n",
      "\u001b[1m229/229\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m55s\u001b[0m 241ms/step - accuracy: 0.4817 - loss: 1.2413 - val_accuracy: 0.5019 - val_loss: 1.2474\n",
      "Epoch 4/10\n",
      "\u001b[1m229/229\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m54s\u001b[0m 235ms/step - accuracy: 0.5288 - loss: 1.1637 - val_accuracy: 0.5147 - val_loss: 1.1631\n",
      "Epoch 5/10\n",
      "\u001b[1m229/229\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m53s\u001b[0m 232ms/step - accuracy: 0.6012 - loss: 0.9969 - val_accuracy: 0.5416 - val_loss: 1.1040\n",
      "Epoch 6/10\n",
      "\u001b[1m229/229\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m55s\u001b[0m 241ms/step - accuracy: 0.6008 - loss: 1.0683 - val_accuracy: 0.5205 - val_loss: 1.2162\n",
      "Epoch 7/10\n",
      "\u001b[1m229/229\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m81s\u001b[0m 235ms/step - accuracy: 0.7093 - loss: 0.7810 - val_accuracy: 0.5083 - val_loss: 1.3432\n",
      "Epoch 8/10\n",
      "\u001b[1m229/229\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m55s\u001b[0m 238ms/step - accuracy: 0.8109 - loss: 0.5316 - val_accuracy: 0.5448 - val_loss: 1.5029\n",
      "Epoch 9/10\n",
      "\u001b[1m229/229\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m55s\u001b[0m 240ms/step - accuracy: 0.8645 - loss: 0.4075 - val_accuracy: 0.5307 - val_loss: 1.4842\n",
      "Epoch 10/10\n",
      "\u001b[1m229/229\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m54s\u001b[0m 233ms/step - accuracy: 0.9090 - loss: 0.2890 - val_accuracy: 0.5358 - val_loss: 1.6771\n"
     ]
    }
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 8. Training and Validation Performance"
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "plt.figure(figsize=(12, 5))\n",
    "\n",
    "plt.subplot(1, 2, 1)\n",
    "plt.plot(\n",
    "    history_base1.history['accuracy'],\n",
    "    color='lightskyblue'\n",
    ")\n",
    "plt.plot(\n",
    "    history_base1.history['val_accuracy'],\n",
    "    color='lightgreen'\n",
    ")\n",
    "plt.title('Base1 Model Accuracy')\n",
    "plt.xlabel('Epoch')\n",
    "plt.ylabel('Accuracy')\n",
    "plt.legend(['Train', 'Validation'])\n",
    "\n",
    "plt.subplot(1, 2, 2)\n",
    "plt.plot(\n",
    "    history_base1.history['loss'],\n",
    "    color='lightskyblue'\n",
    ")\n",
    "plt.plot(\n",
    "    history_base1.history['val_loss'],\n",
    "    color='lightgreen'\n",
    ")\n",
    "plt.title('Base1 Model Loss')\n",
    "plt.xlabel('Epoch')\n",
    "plt.ylabel('Loss')\n",
    "plt.legend(['Train', 'Validation'])\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ],
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 507
    },
    "id": "zLG9Df2j3cp3",
    "outputId": "598f1f8f-4a6d-4507-80da-585116f8a86c"
   },
   "execution_count": null,
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ],
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAHqCAYAAADVi/1VAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAtkhJREFUeJzs3Xd4XNW5/v3v3tPUi2U1y2ruNu4Gm5LQwYApBhJq6CUnwQmB5CUhIRDICf5xSChJSDic0EIJBkIL3ZiOqW5gMO62ZFvFtnqbttf7x1iDhVwkW9Ko3J/r0mXNnj0zz4wszdr3rPVsyxhjEBERERERERER6UF2rAsQEREREREREZGBR6GUiIiIiIiIiIj0OIVSIiIiIiIiIiLS4xRKiYiIiIiIiIhIj1MoJSIiIiIiIiIiPU6hlIiIiIiIiIiI9DiFUiIiIiIiIiIi0uMUSomIiIiIiIiISI9TKCUiIiIiIiIiIj1OoZSIDEgXX3wxRUVF+3TbI488kiOPPLJL6xEREREZaDQeExGFUiK92EMPPYRlWW2+srKyOOqoo3jllVdiXR4Ar7/+Opdddhnjx4/H5XJ1emDR+rwuv/zyXV7/m9/8JrrPtm3buqDinhcOhxkyZAiWZfWan5uIiIh0jMZjfXs8VlRUxMknnxzrMkRkNxRKifQBt9xyC4888gj//Oc/ue6669i6dSsnnXQSL774YqxL4/HHH+fxxx8nNTWVIUOG7NN9xMXF8e9//5tAINDuun/961/ExcXtb5kx9eabb1JWVkZRURGPPfZYrMsRERGRfaDxWN8ej4lI76RQSqQPOPHEE/nBD37ABRdcwC9+8Qvee+89PB4P//rXv2JdGrfeeit1dXV88MEHTJo0aZ/u44QTTqCurq7dp40LFy5k/fr1zJo1qytKjZlHH32UqVOncs011/Dcc8/R2NgY65J2KRQK7XIgKiIiIhqP9fXxmIj0TgqlRPqgtLQ04uPjcbvdbbb/8Y9/5NBDDyUjI4P4+HimTZvG008/3e728+fP5zvf+Q5paWkkJSUxevRofv3rX7fZx+/3c9NNNzFixAh8Ph/5+flcd911+P3+NvsNGTIEj8ezX88nLy+Pww8/nMcff7zN9scee4wJEyYwfvz4Xd7uqaeeYtq0acTHxzN48GB+8IMfsHnz5nb7Pffcc4wfP564uDjGjx/Ps88+u8v7cxyHu+66iwMOOIC4uDiys7P54Q9/SHV19T4/t+bmZp599lnOOecczjrrLJqbm3n++ed3ue8rr7zCEUccQXJyMikpKRx00EHtXpOPP/6Yk046ifT0dBITE5k4cSJ333139Prd9Vf4ds+GDRs2YFkWf/zjH7nrrrsYPnw4Pp+Pr776ikAgwI033si0adNITU0lMTGR7373u7z11lvt7tdxHO6++24mTJhAXFwcmZmZnHDCCXz22WcAHHHEEbsdHI8ePZqZM2fu7SUUERHplTQei+gL47G9CYVC/P73v4+Oh4qKivj1r3/d7nX+7LPPmDlzJoMHDyY+Pp7i4mIuvfTSNvs88cQTTJs2LTqemzBhQpuxmoi05d77LiISa7W1tWzbtg1jDJWVlfzlL3+hoaGBH/zgB232u/vuuzn11FM5//zzCQQCPPHEE3z/+9/nxRdfjH669eWXX3LyySczceJEbrnlFnw+H2vWrOGDDz6I3o/jOJx66qm8//77XHnllYwdO5YvvviCO++8k1WrVvHcc891+XM877zzuPrqq2loaCApKYlQKMRTTz3FtddeS0tLS7v9H3roIS655BIOOugg5s6dS0VFBXfffTcffPABS5YsIS0tDYj0WDjzzDMZN24cc+fOZfv27VxyySUMHTq03X3+8Ic/jN7vT3/6U9avX89f//pXlixZwgcffLBPg70XXniBhoYGzjnnHHJycjjyyCN57LHHOO+889o9n0svvZQDDjiA66+/nrS0NJYsWcKrr74a3Xf+/PmcfPLJ5ObmcvXVV5OTk8OKFSt48cUXufrqqztdG8CDDz5IS0sLV155JT6fj0GDBlFXV8c//vEPzj33XK644grq6+u5//77mTlzJp988gmTJ0+O3v6yyy7joYce4sQTT+Tyyy8nFArx3nvv8dFHH3HggQdywQUXcMUVV7B8+fI2g9lPP/2UVatWccMNN+xT3SIiIj1N47G+Ox7bm8svv5yHH36Y733ve/z85z/n448/Zu7cuaxYsSIanlVWVnL88ceTmZnJr371K9LS0tiwYQPPPPNM9H7mz5/PueeeyzHHHMNtt90GwIoVK/jggw/2eawm0u8ZEem1HnzwQQO0+/L5fOahhx5qt39TU1Oby4FAwIwfP94cffTR0W133nmnAczWrVt3+7iPPPKIsW3bvPfee22233vvvQYwH3zwwS5vN2vWLFNYWNiJZ2gMYK666ipTVVVlvF6veeSRR4wxxrz00kvGsiyzYcMGc9NNN7WpORAImKysLDN+/HjT3Nwcva8XX3zRAObGG2+Mbps8ebLJzc01NTU10W2vv/66AdrU+t577xnAPPbYY23qe/XVV9ttP+KII8wRRxzRoed38sknm8MOOyx6+b777jNut9tUVlZGt9XU1Jjk5GQzY8aMNs/HGGMcxzHGGBMKhUxxcbEpLCw01dXVu9xnT7VddNFFbZ7v+vXrDWBSUlLa1NL6WH6/v8226upqk52dbS699NLotjfffNMA5qc//Wm7x2utqaamxsTFxZlf/vKXba7/6U9/ahITE01DQ0O724qIiPQmGo/17fFYYWGhmTVr1m6vX7p0qQHM5Zdf3mb7L37xCwOYN9980xhjzLPPPmsA8+mnn+72vq6++mqTkpJiQqHQXusSkQgt3xPpA+655x7mz5/P/PnzefTRRznqqKO4/PLL23wyAxAfHx/9vrq6mtraWr773e+yePHi6PbWT6yef/55HMfZ5eM99dRTjB07ljFjxrBt27bo19FHHw2wy2Vc+ys9PZ0TTjgh2pfh8ccf59BDD6WwsLDdvp999hmVlZX8+Mc/btN0c9asWYwZM4aXXnoJgLKyMpYuXcpFF11EampqdL/jjjuOcePGtXvOqampHHfccW2e87Rp00hKStqn57x9+3Zee+01zj333Oi2M888E8uyePLJJ6Pb5s+fT319Pb/61a/aNRG1LAuAJUuWsH79en72s59Ff4bf3mdfnHnmmWRmZrbZ5nK58Hq9QORT2qqqKkKhEAceeGCb/0v//ve/sSyLm266qd39ttaUmprKaaedxr/+9S+MMUDkbITz5s1j9uzZJCYm7nPtIiIiPUnjsbb6ynhsb15++WUArr322jbbf/7znwNEn0frz+zFF18kGAzu8r7S0tJobGxk/vz5XV6nSH+lUEqkD5g+fTrHHnssxx57LOeffz4vvfQS48aNY86cOW0aU7/44oscfPDBxMXFMWjQIDIzM/n73/9ObW1tdJ+zzz6bww47jMsvv5zs7GzOOeccnnzyyTYDotWrV/Pll1+SmZnZ5mvUqFFAZPpydzjvvPOYP38+JSUlPPfcc+2WuLXauHEjEOlJ9G1jxoyJXt/678iRI9vt9+3brl69mtraWrKysto974aGhn16zvPmzSMYDDJlyhTWrFnDmjVrqKqqYsaMGW3Owrd27VqA3fZq6Og++6K4uHiX2x9++GEmTpxIXFwcGRkZZGZm8tJLL7X5v7R27VqGDBnCoEGD9vgYF154ISUlJbz33nsAvPHGG1RUVHDBBRd03RMRERHpZhqPtdVXxmN7s3HjRmzbZsSIEW225+TkkJaWFq3/iCOO4Mwzz+Tmm29m8ODBnHbaaTz44INt+k79+Mc/ZtSoUZx44okMHTqUSy+9lFdffbXLaxbpT9RTSqQPsm2bo446irvvvpvVq1dzwAEH8N5773Hqqady+OGH87e//Y3c3Fw8Hg8PPvhgm4aV8fHxvPvuu7z11lu89NJLvPrqq8ybN4+jjz6a119/HZfLheM4TJgwgTvuuGOXj5+fn98tz+vUU0/F5/Nx0UUX4ff7Oeuss7rlcXbFcRyysrLahEU7+/Zsoo5ova/DDjtsl9evW7eOYcOGdfp+98SyrOiMpJ2Fw+Fd7r/zp7mtHn30US6++GJmz57N//f//X9kZWXhcrmYO3duNBzrjJkzZ5Kdnc2jjz7K4YcfzqOPPkpOTg7HHntsp+9LRESkt9B4rOt1x3iso/Y289yyLJ5++mk++ugj/vOf//Daa69x6aWX8qc//YmPPvqIpKQksrKyWLp0Ka+99hqvvPIKr7zyCg8++CAXXnghDz/8cLfVLtKXKZQS6aNCoRAADQ0NQGQpVVxcHK+99ho+ny+634MPPtjutrZtc8wxx3DMMcdwxx13cOutt/Kb3/yGt956i2OPPZbhw4ezbNkyjjnmmP1aGtZZ8fHxzJ49m0cffZQTTzyRwYMH73K/1inkK1eujE5hb7Vy5cro9a3/rl69ut19rFy5ss3l4cOH88Ybb3DYYYftMqjprPXr17Nw4ULmzJnDEUcc0eY6x3G44IILePzxx7nhhhsYPnw4AMuXL2/3Kd3O9bXus6cwJz09nXXr1rXb3vopX0c8/fTTDBs2jGeeeabNz//by/SGDx/Oa6+9RlVV1R5nS7lcLs477zweeughbrvtNp577jmuuOIKXC5Xh2sSERHpjTQe693jsY4oLCzEcRxWr17N2LFjo9srKiqoqalpt3Tx4IMP5uCDD+YPf/gDjz/+OOeffz5PPPEEl19+OQBer5dTTjmFU045Bcdx+PGPf8z//u//8tvf/na34zyRgUzL90T6oGAwyOuvv47X642+ebpcLizLajMjZsOGDe3OzFJVVdXu/lrPptY6/fiss85i8+bN/N///V+7fZubm2lsbOyiZ9LeL37xC2666SZ++9vf7nafAw88kKysLO699942U6ZfeeUVVqxYET2zTW5uLpMnT+bhhx9uM2V+/vz5fPXVV23u86yzziIcDvP73/++3eOFQiFqamo69TxaP+G77rrr+N73vtfm66yzzuKII46I7nP88ceTnJzM3Llz253ZpnXW09SpUykuLuauu+5qV8vOM6OGDx/O119/zdatW6Pbli1b1uZsPnvTGhbtfL8ff/wxH374YZv9zjzzTIwx3Hzzze3u49uztS644AKqq6v54Q9/uMszFYmIiPQ1Go/1/vFYR5x00kkA3HXXXW22t85Qa30e1dXV7cY33/6Zbd++vc31tm0zceLENvuISFuaKSXSB7zyyit8/fXXQKR/wOOPP87q1av51a9+RUpKChB5w7zjjjs44YQTOO+886isrOSee+5hxIgRfP7559H7uuWWW3j33XeZNWsWhYWFVFZW8re//Y2hQ4fyne98B4gECE8++ST/9V//xVtvvcVhhx1GOBzm66+/5sknn+S1117jwAMPBODzzz/nhRdeAGDNmjXU1tby3//93wBMmjSJU045pVPPddKkSUyaNGmP+3g8Hm677TYuueQSjjjiCM4999zoKYiLioq45pprovvOnTuXWbNm8Z3vfIdLL72Uqqoq/vKXv3DAAQdEP9WESJ+AH/7wh8ydO5elS5dy/PHH4/F4WL16NU899RR333033/ve9zr8PB577DEmT56826n1p556Kj/5yU9YvHgxU6dO5c477+Tyyy/noIMO4rzzziM9PZ1ly5bR1NTEww8/jG3b/P3vf+eUU05h8uTJXHLJJeTm5vL111/z5Zdf8tprrwFw6aWXcscddzBz5kwuu+wyKisruffeeznggAOoq6vrUO0nn3wyzzzzDKeffjqzZs1i/fr13HvvvYwbN67Na3bUUUdxwQUX8Oc//5nVq1dzwgkn4DgO7733HkcddRRz5syJ7jtlyhTGjx8fbdo6derUDr+WIiIivYHGY231hfFYqzVr1kRfj51NmTKFWbNmcdFFF3HfffdRU1PDEUccwSeffMLDDz/M7NmzOeqoo4BIv82//e1vnH766QwfPpz6+nr+7//+j5SUlGiwdfnll1NVVcXRRx/N0KFD2bhxI3/5y1+YPHlym1lYIrKT2J34T0T2ZlenII6LizOTJ082f//7343jOG32v//++83IkSONz+czY8aMMQ8++GD09L2tFixYYE477TQzZMgQ4/V6zZAhQ8y5555rVq1a1ea+AoGAue2228wBBxxgfD6fSU9PN9OmTTM333yzqa2t3WONrV8XXXTRXp8jO05BvCffPgVxq3nz5pkpU6YYn89nBg0aZM4//3yzadOmdrf/97//bcaOHWt8Pp8ZN26ceeaZZ8xFF120y9Ml33fffWbatGkmPj7eJCcnmwkTJpjrrrvObNmyJbrP3k5BvGjRIgOY3/72t7vdZ8OGDQYw11xzTXTbCy+8YA499FATHx9vUlJSzPTp082//vWvNrd7//33zXHHHWeSk5NNYmKimThxovnLX/7SZp9HH33UDBs2zHi9XjN58mTz2muvtXu+69evN4C5/fbb29XmOI659dZbTWFhofH5fGbKlCnmxRdf3OVrFgqFzO23327GjBljvF6vyczMNCeeeKJZtGhRu/v9n//5HwOYW2+9dbevi4iISG+j8VhEXxuPtSosLNzta3PZZZcZY4wJBoPm5ptvNsXFxcbj8Zj8/Hxz/fXXm5aWluj9LF682Jx77rmmoKDA+Hw+k5WVZU4++WTz2WefRfd5+umnzfHHH2+ysrKM1+s1BQUF5oc//KEpKyvba50iA5VlzC464oqIiHSxu+++m2uuuYYNGzZQUFAQ63JERERERCTGFEqJiEi3M8YwadIkMjIyeOutt2JdjoiIiIiI9ALqKSUiIt2msbGRF154gbfeeosvvviC559/PtYliYiIiIhIL6GZUiIi0m02bNhAcXExaWlp/PjHP+YPf/hDrEsSEREREZFeQqGUiIiIiIiIiIj0ODvWBYiIiIiIiIiIyMCjUEpERERERERERHrcgGt07jgOW7ZsITk5GcuyYl2OiIiI9HLGGOrr6xkyZAi2PXA/z9MYSkRERDqqo+OnARdKbdmyhfz8/FiXISIiIn1MaWkpQ4cOjXUZMaMxlIiIiHTW3sZPAy6USk5OBiIvTEpKSoyrERERkd6urq6O/Pz86BhioNIYSkRERDqqo+OnARdKtU43T0lJ0YBKREREOmygL1nTGEpEREQ6a2/jp4HbGEFERERERERERGJG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X3u8z29PK1y9ejWHH344cXFxjBs3jvnz57e7zS9/+UtGjRpFQkICw4YN47e//S3BYKTD7UMPPcTNN9/MsmXLsKxIX5HWer89rfCLL77g6KOPJj4+noyMDK688koaGhqi11988cXMnj2bP/7xj+Tm5pKRkcFVV10VfSwREek+xhi+qnb4vxUh3toSCaSy4uGcES6+P9ytQEq6hG1ZDI0u4XNiXI2IiAxEOs7umeNszZTaC2MMIUIxeWw37g714HC73Vx44YU89NBD/OY3v4ne5qmnniIcDvODH/yAp556il/+8pekpKTw0ksvccEFFzB8+HCmT5++1/t3HIczzjiD7OxsPv74Y2pra9usi22VnJzMQw89xJAhQ/jiiy+44oorSE5O5rrrruPss89m+fLlvPrqq7zxxhsApKamtruPxsZGZs6cySGHHMKnn35KZWUll19+OXPmzGnzx+Ctt94iNzeXt956izVr1nD22WczefJkrrjiir0+HxER2TebGhze3OywpSmynCrZA4fnuhg/SE3MpesVJH3T7Hx6VqyrERGRrqTjbB1nt1IotRchQvyt5m8xeewfp/0YD54O7XvppZdy++23884773DkkUcCkSmFZ555JoWFhfziF7+I7vuTn/yE1157jSeffLJDvyxvvPEGX3/9Na+99hpDhgwB4NZbb223PvWGG26Ifl9UVMQvfvELnnjiCa677jri4+NJSkrC7XbvcRrh448/TktLC//85z9JTEwE4K9//SunnHIKt912G9nZ2QCkp6fz17/+FZfLxZgxY5g1axYLFixQKCUi0g2q/Ya3t4RZWRMJozw2HJxtMz3LxqOeUdJNCpIj/7dKGyN9pWwFnyIi/YaOs3Wc3UqhVD8xZswYDj30UB544AGOPPJI1qxZw3vvvcctt9xCOBzm1ltv5cknn2Tz5s0EAgH8fj8JCR1r0LBixQry8/OjvygAhxxySLv95s2bx5///GfWrl1LQ0MDoVCIlJSUTj2PFStWMGnSpOgvCsBhhx2G4zisXLky+stywAEH4HK5ovvk5ubyxRdfdOqxRERkz1pChg/KHRZtc3AMWMDEDIvv5rpI8iggkO6VHW/htcEfVl8pERGJDR1nd/9xtkKpvXDj5sdpP47ZY3fGZZddxk9+8hPuueceHnzwQYYPH84RRxzBbbfdxt13381dd93FhAkT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\n"
     },
     "metadata": {}
    }
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 9. Epoch-by-Epoch Results"
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "import pandas as pd\n",
    "\n",
    "base1_results = pd.DataFrame({\n",
    "    'Epoch': range(1, 11),\n",
    "    'Training Accuracy': history_base1.history['accuracy'],\n",
    "    'Validation Accuracy': history_base1.history['val_accuracy'],\n",
    "    'Training Loss': history_base1.history['loss'],\n",
    "    'Validation Loss': history_base1.history['val_loss']\n",
    "})\n",
    "\n",
    "base1_results.round(4)"
   ],
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 363
    },
    "id": "bQ1eBtqE4PXd",
    "outputId": "b346476f-a4e3-47f4-ee6f-e96bdddd56c7"
   },
   "execution_count": null,
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "   Epoch  Training Accuracy  Validation Accuracy  Training Loss  \\\n",
       "0      1             0.3579               0.3868         2.8032   \n",
       "1      2             0.4229               0.4731         1.3432   \n",
       "2      3             0.4817               0.5019         1.2413   \n",
       "3      4             0.5288               0.5147         1.1637   \n",
       "4      5             0.6012               0.5416         0.9969   \n",
       "5      6             0.6008               0.5205         1.0683   \n",
       "6      7             0.7093               0.5083         0.7810   \n",
       "7      8             0.8109               0.5448         0.5316   \n",
       "8      9             0.8645               0.5307         0.4075   \n",
       "9     10             0.9090               0.5358         0.2890   \n",
       "\n",
       "   Validation Loss  \n",
       "0           1.3667  \n",
       "1           1.3285  \n",
       "2           1.2474  \n",
       "3           1.1631  \n",
       "4           1.1040  \n",
       "5           1.2162  \n",
       "6           1.3432  \n",
       "7           1.5029  \n",
       "8           1.4842  \n",
       "9           1.6771  "
      ],
      "text/html": [
       "\n",
       "  <div id=\"df-823564fa-b9a6-4dfe-87d0-cb5576ef5190\" class=\"colab-df-container\">\n",
       "    <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Epoch</th>\n",
       "      <th>Training Accuracy</th>\n",
       "      <th>Validation Accuracy</th>\n",
       "      <th>Training Loss</th>\n",
       "      <th>Validation Loss</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0.3579</td>\n",
       "      <td>0.3868</td>\n",
       "      <td>2.8032</td>\n",
       "      <td>1.3667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>0.4229</td>\n",
       "      <td>0.4731</td>\n",
       "      <td>1.3432</td>\n",
       "      <td>1.3285</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>0.4817</td>\n",
       "      <td>0.5019</td>\n",
       "      <td>1.2413</td>\n",
       "      <td>1.2474</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>0.5288</td>\n",
       "      <td>0.5147</td>\n",
       "      <td>1.1637</td>\n",
       "      <td>1.1631</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>0.6012</td>\n",
       "      <td>0.5416</td>\n",
       "      <td>0.9969</td>\n",
       "      <td>1.1040</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>6</td>\n",
       "      <td>0.6008</td>\n",
       "      <td>0.5205</td>\n",
       "      <td>1.0683</td>\n",
       "      <td>1.2162</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>7</td>\n",
       "      <td>0.7093</td>\n",
       "      <td>0.5083</td>\n",
       "      <td>0.7810</td>\n",
       "      <td>1.3432</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>8</td>\n",
       "      <td>0.8109</td>\n",
       "      <td>0.5448</td>\n",
       "      <td>0.5316</td>\n",
       "      <td>1.5029</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>9</td>\n",
       "      <td>0.8645</td>\n",
       "      <td>0.5307</td>\n",
       "      <td>0.4075</td>\n",
       "      <td>1.4842</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>10</td>\n",
       "      <td>0.9090</td>\n",
       "      <td>0.5358</td>\n",
       "      <td>0.2890</td>\n",
       "      <td>1.6771</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "    <div class=\"colab-df-buttons\">\n",
       "\n",
       "  <div class=\"colab-df-container\">\n",
       "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-823564fa-b9a6-4dfe-87d0-cb5576ef5190')\"\n",
       "            title=\"Convert this dataframe to an interactive table.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
       "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "\n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    .colab-df-buttons div {\n",
       "      margin-bottom: 4px;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "    <script>\n",
       "      const buttonEl =\n",
       "        document.querySelector('#df-823564fa-b9a6-4dfe-87d0-cb5576ef5190 button.colab-df-convert');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      async function convertToInteractive(key) {\n",
       "        const element = document.querySelector('#df-823564fa-b9a6-4dfe-87d0-cb5576ef5190');\n",
       "        const dataTable =\n",
       "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                    [key], {});\n",
       "        if (!dataTable) return;\n",
       "\n",
       "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "          + ' to learn more about interactive tables.';\n",
       "        element.innerHTML = '';\n",
       "        dataTable['output_type'] = 'display_data';\n",
       "        await google.colab.output.renderOutput(dataTable, element);\n",
       "        const docLink = document.createElement('div');\n",
       "        docLink.innerHTML = docLinkHtml;\n",
       "        element.appendChild(docLink);\n",
       "      }\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "\n",
       "    </div>\n",
       "  </div>\n"
      ],
      "application/vnd.google.colaboratory.intrinsic+json": {
       "type": "dataframe",
       "summary": "{\n  \"name\": \"base1_results\",\n  \"rows\": 10,\n  \"fields\": [\n    {\n      \"column\": \"Epoch\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 3,\n        \"min\": 1,\n        \"max\": 10,\n        \"num_unique_values\": 10,\n        \"samples\": [\n          9,\n          2,\n          6\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Training Accuracy\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.18934767551312118,\n        \"min\": 0.3579,\n        \"max\": 0.909,\n        \"num_unique_values\": 10,\n        \"samples\": [\n          0.8645,\n          0.4229,\n          0.6008\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Validation Accuracy\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.04698663639802278,\n        \"min\": 0.3868,\n        \"max\": 0.5448,\n        \"num_unique_values\": 10,\n        \"samples\": [\n          0.5307,\n          0.4731,\n          0.5205\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Training Loss\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.7105397886270847,\n        \"min\": 0.289,\n        \"max\": 2.8032,\n        \"num_unique_values\": 10,\n        \"samples\": [\n          0.4075,\n          1.3432,\n          1.0683\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Validation Loss\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.17403759523607407,\n        \"min\": 1.104,\n        \"max\": 1.6771,\n        \"num_unique_values\": 10,\n        \"samples\": [\n          1.4842,\n          1.3285,\n          1.2162\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
      }
     },
     "metadata": {},
     "execution_count": 24
    }
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 10. Best Epoch Identification"
   ]
  },
  {
   "cell_type": "code",
   "source": [
    "best_epoch = base1_results.loc[\n",
    "    base1_results['Validation Loss'].idxmin()\n",
    "]\n",
    "\n",
    "print(\"Best Base1 epoch:\")\n",
    "print(best_epoch.round(4))"
   ],
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "8vO1hQo74TTK",
    "outputId": "2412386d-ac69-41b8-ab5d-6fe9dcecd41f"
   },
   "execution_count": null,
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Best Base1 epoch:\n",
      "Epoch                  5.0000\n",
      "Training Accuracy      0.6012\n",
      "Validation Accuracy    0.5416\n",
      "Training Loss          0.9969\n",
      "Validation Loss        1.1040\n",
      "Name: 4, dtype: float64\n"
     ]
    }
   ]
  }
 ]
}