{
  "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",
      "source": [
        "# **Baseline Convolutional Neural Network**"
      ],
      "metadata": {
        "id": "QP7lxT74xbIl"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "# 1. Google Drive and Dataset Setup"
      ],
      "metadata": {
        "id": "i9Rvph_WxrxN"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "from google.colab import drive\n",
        "drive.mount(\"/content/drive\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Sw0Vl5JgvbyO",
        "outputId": "6b185176-de81-4f92-aa04-97c2c50a7501"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Mounted at /content/drive\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "import os\n",
        "import zipfile\n",
        "\n",
        "zip_path = \"/content/drive/MyDrive/PlantPathology_Split.zip\"\n",
        "extract_path = \"/content\"\n",
        "\n",
        "with zipfile.ZipFile(zip_path, \"r\") as zip_ref:\n",
        "    zip_ref.extractall(\"/content\")\n",
        "\n",
        "print(\"Unzip completed.\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "aU0-O3E6If7i",
        "outputId": "b5281c15-14a9-4672-d0f2-e7450c36e707"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Unzip completed.\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# 2. Five-Class Dataset Preparation"
      ],
      "metadata": {
        "id": "OcUfmLv3x_D3"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import os\n",
        "import shutil\n",
        "\n",
        "source_dir = \"/content/PlantPathology_Split\"\n",
        "target_dir = \"/content/PlantPathology_5Classes\"\n",
        "\n",
        "selected_classes = [\n",
        "    \"healthy\",\n",
        "    \"scab\",\n",
        "    \"frog_eye_leaf_spot\",\n",
        "    \"rust\",\n",
        "    \"powdery_mildew\"\n",
        "]\n",
        "\n",
        "splits = [\"train\", \"valid\", \"test\"]\n",
        "\n",
        "# Remove old version if it already exists\n",
        "if os.path.exists(target_dir):\n",
        "    shutil.rmtree(target_dir)\n",
        "\n",
        "# Copy only the five required classes\n",
        "for split in splits:\n",
        "    for class_name in selected_classes:\n",
        "\n",
        "        source_class_dir = os.path.join(\n",
        "            source_dir,\n",
        "            split,\n",
        "            class_name\n",
        "        )\n",
        "\n",
        "        target_class_dir = os.path.join(\n",
        "            target_dir,\n",
        "            split,\n",
        "            class_name\n",
        "        )\n",
        "\n",
        "        if not os.path.exists(source_class_dir):\n",
        "            print(f\"Missing folder: {source_class_dir}\")\n",
        "            continue\n",
        "\n",
        "        shutil.copytree(\n",
        "            source_class_dir,\n",
        "            target_class_dir\n",
        "        )\n",
        "\n",
        "print(\"Five-class dataset created.\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "7ItFYHBXIw2Q",
        "outputId": "8ec61725-0ea3-499a-855d-49c53d8dee12"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Five-class dataset created.\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# 3. Dataset Distribution"
      ],
      "metadata": {
        "id": "LkmIMCcWyc95"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import os\n",
        "import pandas as pd\n",
        "\n",
        "target_dir = \"/content/PlantPathology_5Classes\"\n",
        "\n",
        "splits = [\"train\", \"valid\", \"test\"]\n",
        "classes = [\n",
        "    \"frog_eye_leaf_spot\",\n",
        "    \"healthy\",\n",
        "    \"powdery_mildew\",\n",
        "    \"rust\",\n",
        "    \"scab\"\n",
        "]\n",
        "\n",
        "rows = []\n",
        "\n",
        "for class_name in classes:\n",
        "    row = {\"Class\": class_name}\n",
        "\n",
        "    for split in splits:\n",
        "        class_dir = os.path.join(target_dir, split, class_name)\n",
        "\n",
        "        if os.path.exists(class_dir):\n",
        "            count = len([\n",
        "                file for file in os.listdir(class_dir)\n",
        "                if file.lower().endswith((\".jpg\", \".jpeg\", \".png\"))\n",
        "            ])\n",
        "        else:\n",
        "            count = 0\n",
        "\n",
        "        row[split.capitalize()] = count\n",
        "\n",
        "    rows.append(row)\n",
        "\n",
        "distribution_df = pd.DataFrame(rows)\n",
        "\n",
        "# Add total row\n",
        "total_row = {\n",
        "    \"Class\": \"Total\",\n",
        "    \"Train\": distribution_df[\"Train\"].sum(),\n",
        "    \"Valid\": distribution_df[\"Valid\"].sum(),\n",
        "    \"Test\": distribution_df[\"Test\"].sum()\n",
        "}\n",
        "\n",
        "distribution_df = pd.concat(\n",
        "    [distribution_df, pd.DataFrame([total_row])],\n",
        "    ignore_index=True\n",
        ")\n",
        "\n",
        "display(distribution_df)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 237
        },
        "id": "-8Np_pQgFR5_",
        "outputId": "c93f3e17-cf10-48d4-c03d-a2541eed4f3f"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "                Class  Train  Valid  Test\n",
              "0  frog_eye_leaf_spot   1448    310   310\n",
              "1             healthy   2074    444   445\n",
              "2      powdery_mildew    587    125   126\n",
              "3                rust    864    185   186\n",
              "4                scab   2334    500   500\n",
              "5               Total   7307   1564  1567"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-320df1ce-211a-48fb-b8d7-c20a81d5e9b5\" 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>Class</th>\n",
              "      <th>Train</th>\n",
              "      <th>Valid</th>\n",
              "      <th>Test</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>frog_eye_leaf_spot</td>\n",
              "      <td>1448</td>\n",
              "      <td>310</td>\n",
              "      <td>310</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>healthy</td>\n",
              "      <td>2074</td>\n",
              "      <td>444</td>\n",
              "      <td>445</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>powdery_mildew</td>\n",
              "      <td>587</td>\n",
              "      <td>125</td>\n",
              "      <td>126</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>rust</td>\n",
              "      <td>864</td>\n",
              "      <td>185</td>\n",
              "      <td>186</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>scab</td>\n",
              "      <td>2334</td>\n",
              "      <td>500</td>\n",
              "      <td>500</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>Total</td>\n",
              "      <td>7307</td>\n",
              "      <td>1564</td>\n",
              "      <td>1567</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-320df1ce-211a-48fb-b8d7-c20a81d5e9b5')\"\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-320df1ce-211a-48fb-b8d7-c20a81d5e9b5 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-320df1ce-211a-48fb-b8d7-c20a81d5e9b5');\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 id=\"id_00af136e-9d85-414b-90f6-0c8d27ca0183\">\n",
              "    <style>\n",
              "      .colab-df-generate {\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-generate: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",
              "      [theme=dark] .colab-df-generate {\n",
              "        background-color: #3B4455;\n",
              "        fill: #D2E3FC;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate: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",
              "    <button class=\"colab-df-generate\" onclick=\"generateWithVariable('distribution_df')\"\n",
              "            title=\"Generate code using this dataframe.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "    <script>\n",
              "      (() => {\n",
              "      const buttonEl =\n",
              "        document.querySelector('#id_00af136e-9d85-414b-90f6-0c8d27ca0183 button.colab-df-generate');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      buttonEl.onclick = () => {\n",
              "        google.colab.notebook.generateWithVariable('distribution_df');\n",
              "      }\n",
              "      })();\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "distribution_df",
              "summary": "{\n  \"name\": \"distribution_df\",\n  \"rows\": 6,\n  \"fields\": [\n    {\n      \"column\": \"Class\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 6,\n        \"samples\": [\n          \"frog_eye_leaf_spot\",\n          \"healthy\",\n          \"Total\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Train\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 2479,\n        \"min\": 587,\n        \"max\": 7307,\n        \"num_unique_values\": 6,\n        \"samples\": [\n          1448,\n          2074,\n          7307\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Valid\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 530,\n        \"min\": 125,\n        \"max\": 1564,\n        \"num_unique_values\": 6,\n        \"samples\": [\n          310,\n          444,\n          1564\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Test\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 531,\n        \"min\": 126,\n        \"max\": 1567,\n        \"num_unique_values\": 6,\n        \"samples\": [\n          310,\n          445,\n          1567\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# 4. TensorFlow Data Pipeline"
      ],
      "metadata": {
        "id": "2EdQAXs5yozh"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import tensorflow as tf\n",
        "\n",
        "IMG_SIZE = (512, 512)\n",
        "BATCH_SIZE = 32\n",
        "\n",
        "train_dir = \"/content/PlantPathology_5Classes/train\"\n",
        "valid_dir = \"/content/PlantPathology_5Classes/valid\"\n",
        "test_dir = \"/content/PlantPathology_5Classes/test\"\n",
        "\n",
        "train_ds = tf.keras.utils.image_dataset_from_directory(\n",
        "    train_dir,\n",
        "    image_size=IMG_SIZE,\n",
        "    batch_size=BATCH_SIZE,\n",
        "    label_mode=\"int\",\n",
        "    shuffle=True,\n",
        "    seed=42\n",
        ")\n",
        "\n",
        "valid_ds = tf.keras.utils.image_dataset_from_directory(\n",
        "    valid_dir,\n",
        "    image_size=IMG_SIZE,\n",
        "    batch_size=BATCH_SIZE,\n",
        "    label_mode=\"int\",\n",
        "    shuffle=False\n",
        ")\n",
        "\n",
        "test_ds = tf.keras.utils.image_dataset_from_directory(\n",
        "    test_dir,\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(\"\\nClasses:\")\n",
        "print(class_names)\n",
        "\n",
        "print(\"\\nNumber of classes:\", len(class_names))"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "JVa-slm2JAtn",
        "outputId": "f5288817-78f3-48e1-d8a7-b914fb08d6d1"
      },
      "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",
            "\n",
            "Classes:\n",
            "['frog_eye_leaf_spot', 'healthy', 'powdery_mildew', 'rust', 'scab']\n",
            "\n",
            "Number of classes: 5\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Dataset Performance Optimisation"
      ],
      "metadata": {
        "id": "OMYnmLaKyzaY"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "AUTOTUNE = tf.data.AUTOTUNE\n",
        "\n",
        "train_ds = train_ds.prefetch(\n",
        "    buffer_size=AUTOTUNE\n",
        ")\n",
        "\n",
        "valid_ds = valid_ds.prefetch(\n",
        "    buffer_size=AUTOTUNE\n",
        ")\n",
        "\n",
        "test_ds = test_ds.prefetch(\n",
        "    buffer_size=AUTOTUNE\n",
        ")"
      ],
      "metadata": {
        "id": "DAiQ_LIXJgZG"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "# 5. Baseline CNN Architecture"
      ],
      "metadata": {
        "id": "bU-NHOyTzKcI"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "from tensorflow.keras import layers, models\n",
        "\n",
        "num_classes = len(class_names)\n",
        "\n",
        "baseline_model = models.Sequential([\n",
        "\n",
        "    layers.Input(shape=(512, 512, 3)),\n",
        "\n",
        "    layers.Rescaling(1./255),\n",
        "\n",
        "    layers.Conv2D(\n",
        "        32,\n",
        "        3,\n",
        "        activation=\"relu\"\n",
        "    ),\n",
        "\n",
        "    layers.MaxPooling2D(),\n",
        "\n",
        "    layers.Conv2D(\n",
        "        64,\n",
        "        3,\n",
        "        activation=\"relu\"\n",
        "    ),\n",
        "\n",
        "    layers.MaxPooling2D(),\n",
        "\n",
        "    layers.Flatten(),\n",
        "\n",
        "    layers.Dense(\n",
        "        128,\n",
        "        activation=\"relu\"\n",
        "    ),\n",
        "\n",
        "    layers.Dropout(0.5),\n",
        "\n",
        "    layers.Dense(\n",
        "        num_classes,\n",
        "        activation=\"softmax\"\n",
        "    )\n",
        "])\n",
        "\n",
        "baseline_model.summary()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 417
        },
        "id": "MenFr-SlJjmK",
        "outputId": "9470151e-ac5e-4f18-8b1d-cb57da9685a8"
      },
      "execution_count": null,
      "outputs": [
        {
          "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",
      "source": [
        "# 6. Model Compilation"
      ],
      "metadata": {
        "id": "pWhD7kcrzW2H"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "baseline_model.compile(\n",
        "    optimizer=\"adam\",\n",
        "    loss=\"sparse_categorical_crossentropy\",\n",
        "    metrics=[\"accuracy\"]\n",
        ")"
      ],
      "metadata": {
        "id": "Kf-Ap8GJJza4"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "# 7. Baseline Model Training"
      ],
      "metadata": {
        "id": "HL5njHrezgoj"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "history_baseline = baseline_model.fit(\n",
        "    train_ds,\n",
        "    validation_data=valid_ds,\n",
        "    epochs=5\n",
        ")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "wvjIUPcpJ9Hr",
        "outputId": "981e6e46-0cd7-4671-c9e6-a8521a0d9637"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Epoch 1/5\n",
            "\u001b[1m229/229\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m84s\u001b[0m 298ms/step - accuracy: 0.3431 - loss: 2.3588 - val_accuracy: 0.4054 - val_loss: 1.3194\n",
            "Epoch 2/5\n",
            "\u001b[1m229/229\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m52s\u001b[0m 225ms/step - accuracy: 0.4182 - loss: 1.3323 - val_accuracy: 0.4386 - val_loss: 1.2519\n",
            "Epoch 3/5\n",
            "\u001b[1m229/229\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m52s\u001b[0m 228ms/step - accuracy: 0.4735 - loss: 1.2690 - val_accuracy: 0.4840 - val_loss: 1.1998\n",
            "Epoch 4/5\n",
            "\u001b[1m229/229\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m52s\u001b[0m 226ms/step - accuracy: 0.5233 - loss: 1.1642 - val_accuracy: 0.4738 - val_loss: 1.2242\n",
            "Epoch 5/5\n",
            "\u001b[1m229/229\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m52s\u001b[0m 225ms/step - accuracy: 0.5898 - loss: 1.0213 - val_accuracy: 0.5339 - val_loss: 1.1763\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# 8. Training and Validation Curves"
      ],
      "metadata": {
        "id": "tMJLp65Xz2VQ"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import matplotlib.pyplot as plt\n",
        "\n",
        "plt.figure(figsize=(12, 5))\n",
        "\n",
        "plt.subplot(1, 2, 1)\n",
        "\n",
        "plt.plot(\n",
        "    history_baseline.history[\"accuracy\"],\n",
        "    label=\"Training Accuracy\"\n",
        ")\n",
        "\n",
        "plt.plot(\n",
        "    history_baseline.history[\"val_accuracy\"],\n",
        "    label=\"Validation Accuracy\"\n",
        ")\n",
        "\n",
        "plt.title(\"Baseline Model Accuracy\")\n",
        "plt.xlabel(\"Epoch\")\n",
        "plt.ylabel(\"Accuracy\")\n",
        "plt.legend()\n",
        "\n",
        "\n",
        "plt.subplot(1, 2, 2)\n",
        "\n",
        "plt.plot(\n",
        "    history_baseline.history[\"loss\"],\n",
        "    label=\"Training Loss\"\n",
        ")\n",
        "\n",
        "plt.plot(\n",
        "    history_baseline.history[\"val_loss\"],\n",
        "    label=\"Validation Loss\"\n",
        ")\n",
        "\n",
        "plt.title(\"Baseline Model Loss\")\n",
        "plt.xlabel(\"Epoch\")\n",
        "plt.ylabel(\"Loss\")\n",
        "plt.legend()\n",
        "\n",
        "plt.tight_layout()\n",
        "plt.show()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 507
        },
        "id": "2HE0RrEMLWXw",
        "outputId": "b7086c2c-879c-43ec-be14-b13331b85f07"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1200x500 with 2 Axes>"
            ],
            "image/png": "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WVhYGGPHjuXnn3/mt99+o1ChQjRv3vyeM4mIiNwPnXvdXW4697qbvzPe7n0ULFgQNzc32zJ/f3+eeeYZnnnmGc6fP0/16tV57733bEUpgJCQEEJCQnjjjTfYtGkT9evXZ+LEibz77ruZ/4ZEsgH1lBLJIRITE1m2bBmOjo62Yc729vZYLJZUo1hOnDhxy1NTLl++fMv+/v5G6e9h5126dOH06dN88803t6x748YN4uLiMuidpJbRx33wwQd55513GD9+fKqn0/1bq1at2Lp1K+Hh4bZlcXFxfP311wQHB1OhQgXbemfOnEn1qOfr16/z9ddfp9pfjRo1KFmyJGPGjLGduP7ThQsX0vU+IiMjWbduHV26dKFTp063TH379uXIkSNs2bIFOzs72rVrx88//8zvv/9+y77+/na0Y8eO7N69mwULFtx2nb9P8NatW2d7LTk5+Zb3eyd/f0v7z29lExISmDBhQqr1qlevTvHixRk3btwtRbB/bgvWXg2VK1fm22+/5ccff6Rbt263PKJbREQkI+nc697klnOve+Hv70/VqlWZNm1aqnOXvXv3smzZMlq1agVYz53+blfwN19fX4oUKWL794+NjbUVPf8WEhKCnZ1dqttCRXI7ndGLZFO//fab7Zuj8+fPM2vWLA4fPsyrr76Kp6cnAI888ggff/wxLVq0oEePHpw/f54vvviCUqVKpeodMHLkSNatW8cjjzxCUFAQ58+fZ8KECRQtWtTWbLJXr1788MMPPPXUU6xevZr69euTnJzMwYMH+eGHH1i6dGmaTbT/q4w+rp2dHW+88cZd13v11Vf5/vvvadmyJYMHDyZ//vxMmzaN48eP8+OPP9r6PTzxxBOMHz+esLAwtm/fjr+/PzNmzMDV1fWW43777be0bNmSihUr0rdvXwICAjh9+jSrV6/G09OTn3/++Z7fx6xZszAMgzZt2qT5eqtWrciXLx8zZ86kTp06vP/++yxbtoxGjRrZHu989uxZ5s6dy4YNG/D29uall15i3rx5dO7cmccff5waNWpw+fJlFi1axMSJE6lSpQoVK1akbt26DBs2jMuXL5M/f35mz559y0nTndSrVw8fHx969+7N4MGDsVgszJgx45ZCk52dHV9++SWtW7ematWq9O3bF39/fw4ePMi+fftYunRpqvXDwsJ48cUXAXTrnoiIZDide+Xtc69/+vjjj9M83muvvcbo0aNp2bIloaGh9OvXjxs3bvD555/j5eVlu33x6tWrFC1alE6dOlGlShXc3d1ZsWIF27Zts7VkWLVqFYMGDaJz586UKVOGpKQkZsyYgb29vR7kInmLWY/9E5G0pfVYYmdnZ6Nq1arGl19+meqRt4ZhGJMmTTJKly5tODk5GeXKlTOmTJlie5zt31auXGm0bdvWKFKkiOHo6GgUKVLE6N69u/Hnn3+m2ldCQoLx4YcfGhUrVjScnJwMHx8fo0aNGsaIESOMmJgY23r3+ljiihUr3vL+evfubQQFBd3XcdPyz8cS305ajyU2DMM4evSo0alTJ8Pb29twdnY2ateubfzyyy+3bB8REWG0adPGcHV1NQoWLGg899xzxpIlS255z4Zhfbxvhw4djAIFChhOTk5GUFCQ0aVLF2PlypW2de7lscQhISFGsWLF7vi+GjdubPj6+hqJiYm2nGFhYUahQoUMJycno0SJEsbAgQON+Ph42zaXLl0yBg0aZAQEBBiOjo5G0aJFjd69exsXL15M9bk0bdrUcHJyMgoXLmy89tprxvLly+/539gwDGPjxo1G3bp1DRcXF6NIkSLGyy+/bCxdujTNz2zDhg1Gs2bNDA8PD8PNzc2oXLmy8fnnn9+yz7Nnzxr29vZGmTJl7vi5iIiIpIfOvXTu9be//x3Tmuzt7W3rrVixwqhfv77h4uJieHp6Gq1btzb2799vez0+Pt546aWXjCpVqtjOb6pUqWJMmDDBts6xY8eMxx9/3ChZsqTh7Oxs5M+f33jwwQeNFStW3DGjSG5jMYx/fXUtIiKSDV28eBF/f3+GDx/Om2++aXYcERERERH5j9RTSkREcoSpU6eSnJxMr169zI4iIiIiIiIZQD2lREQkW1u1ahX79+/nvffeo127dgQHB5sdSUREREREMoBu3xMRkWytcePGtkckf/fddwQEBJgdSUREREREMoCKUiIiIiIiIiIikuXUU0pERERERERERLKcilIiIiIiIiIiIpLlTG90/sUXXzB69GiioqKoUqUKn3/+ObVr177t+tHR0bz++uvMnz+fy5cvExQUxLhx42jVqtV97/PfUlJSOHPmDB4eHlgslv/0/kRERCR3MQyDq1evUqRIEezs8u73ezpfEhERkdu51/MlU4tSc+bMYejQoUycOJE6deowbtw4mjdvzqFDh/D19b1l/YSEBJo1a4avry/z5s0jICCAiIgIvL2973ufaTlz5gyBgYEZ9TZFREQkF4qMjKRo0aJmxzCNzpdERETkbu52vmRqo/M6depQq1Ytxo8fD1i/cQsMDOTZZ5/l1VdfvWX9iRMnMnr0aA4ePIiDg0OG7DMtMTExeHt7ExkZiaen532+OxEREcmNYmNjCQwMJDo6Gi8vL7PjmEbnSyIiInI793q+ZNpIqYSEBLZv386wYcNsy+zs7GjatCnh4eFpbrNo0SJCQ0MZOHAgP/30E4UKFaJHjx688sor2Nvb39c+0/L3EHRPT0+dZImIiEia8votazpfEhERkbu52/mSaY0QLl68SHJyMoULF061vHDhwkRFRaW5zbFjx5g3bx7JycksXryYN998k7Fjx/Luu+/e9z4B4uPjiY2NTTWJiIiI5BSjRo2iVq1aeHh44OvrS7t27Th06NA9bz979mwsFgvt2rXLvJAiIiIi/5KjunOmpKTg6+vL119/TY0aNejatSuvv/46EydO/E/7HTVqFF5eXrZJ/RFEREQkJ1m7di0DBw5k8+bNLF++nMTERB5++GHi4uLuuu2JEyd48cUXadCgQRYkFREREfk/027fK1iwIPb29pw7dy7V8nPnzuHn55fmNv7+/jg4OGBvb29bVr58eaKiokhISLivfQIMGzaMoUOH2ub/vvdRREREJCdYsmRJqvmpU6fi6+vL9u3badiw4W23S05O5rHHHmPEiBGsX7+e6OjoTE4qIiIi8n+mFaUcHR2pUaMGK1eutA0VT0lJYeXKlQwaNCjNberXr8+sWbNISUmxPVLwzz//xN/fH0dHR4B07xPAyckJJyendL+H5ORkEhMT072dSHb37+KviIjkLDExMQDkz5//juuNHDkSX19f+vXrx/r16++4bnx8PPHx8bZ5tTsQEckZUlJSSEhIMDuG5DIZdc1oWlEKYOjQofTu3ZuaNWtSu3Ztxo0bR1xcHH379gUgLCyMgIAARo0aBcDTTz/N+PHjee6553j22Wc5fPgw77//PoMHD77nfWYEwzCIiorSt4mSq3l7e+Pn55fnG/mKiOQ0KSkpDBkyhPr161OpUqXbrrdhwwYmTZrErl277mm/o0aNYsSIERmUUkREskJCQgLHjx8nJSXF7CiSC2XENaOpRamuXbty4cIFhg8fTlRUFFWrVmXJkiW2RuUnT560jYgCCAwMZOnSpTz//PNUrlyZgIAAnnvuOV555ZV73mdG+Lsg5evri6urqy7aJVcxDIPr169z/vx5wHrbrIiI5BwDBw5k7969bNiw4bbrXL16lV69evHNN99QsGDBe9qv2h2IiOQshmFw9uxZ7O3tCQwMTHVtLfJfZOQ1o8UwDCOjguUWsbGxeHl5ERMTc8sjjpOTk/nzzz/x9fWlQIECJiUUyXyXLl3i/PnzlClTRrfyiYj8w53OE8w2aNAgfvrpJ9atW0fx4sVvu96uXbuoVq1aqt/vf3+Lbmdnx6FDhyhZsuQdj5WdPwcREYHExESOHDlCkSJF8PLyMjuO5EJ3uma81/MEU0dK5UR/95BydXU1OYlI5vr7ZzwxMVFFKRGRbM4wDJ599lkWLFjAmjVr7liQAihXrhx79uxJteyNN97g6tWrfPrppxoBJSKSCyQnJwPY+i+LZLSMuGZUUeo+6ZY9ye30My4iknMMHDiQWbNm8dNPP+Hh4UFUVBQAXl5euLi4AKl7dTo7O9/Sb8rb2xvgjn2oREQk59F5vWSWjPjZUlFKREREJIf78ssvAWjcuHGq5VOmTKFPnz7Arb06RURERMymMxO5b8HBwYwbN+6e11+zZg0Wi0VPLRQREclghmGkOf1dkALr3+GpU6fedh9Tp05l4cKFmZ5VREQkq+naNftSUSoPsFgsd5zefvvt+9rvtm3bGDBgwD2vX69ePc6ePZulTfbKlSuHk5OT7TYGERERERERyZ7y2rWril+6fS9POHv2rO2/58yZw/Dhwzl06JBtmbu7u+2/DcMgOTmZfPnu/qNRqFChdOVwdHTEz88vXdv8Fxs2bODGjRt06tSJadOm8corr2TZsdOSmJiIg4ODqRlERERERESyq7x67ZqXaaRUHuDn52ebvLy8sFgstvmDBw/i4eHBb7/9Ro0aNXBycmLDhg0cPXqUtm3bUrhwYdzd3alVqxYrVqxItd9/D4G0WCx8++23tG/fHldXV0qXLs2iRYtsr/+7Cjx16lS8vb1ZunQp5cuXx93dnRYtWqT6RZSUlMTgwYPx9vamQIECvPLKK/Tu3Zt27drd9X1PmjSJHj160KtXLyZPnnzL66dOnaJ79+7kz58fNzc3atasyZYtW2yv//zzz9SqVQtnZ2cKFixI+/btU73Xf9/i4O3tbbst4sSJE1gsFubMmUOjRo1wdnZm5syZXLp0ie7duxMQEICrqyshISF8//33qfaTkpLCRx99RKlSpXBycqJYsWK89957ADz00EMMGjQo1foXLlzA0dGRlStX3vUzERERERERya7y6rXr7Vy5coWwsDB8fHxwdXWlZcuWHD582PZ6REQErVu3xsfHBzc3NypWrMjixYtt2z722GMUKlQIFxcXSpcuzZQpU+47S2ZRUSoDGIbB9YSkLJ8Mw8iw9/Dqq6/ywQcfcODAASpXrsy1a9do1aoVK1euZOfOnbRo0YLWrVtz8uTJO+5nxIgRdOnShT/++INWrVrx2GOPcfny5duuf/36dcaMGcOMGTNYt24dJ0+e5MUXX7S9/uGHHzJz5kymTJnCxo0biY2Nvad+F1evXmXu3Ln07NmTZs2aERMTw/r1622vX7t2jUaNGnH69GkWLVrE7t27efnll0lJSQHg119/pX379rRq1YqdO3eycuVKateufdfj/turr77Kc889x4EDB2jevDk3b96kRo0a/Prrr+zdu5cBAwbQq1cvtm7dattm2LBhfPDBB7z55pvs37+fWbNmUbhwYQD69+/PrFmziI+Pt63/3XffERAQwEMPPZTufCIiudHe0zHM2Xbnv1eSvRmGwdbjl1m487TZUUREcg2zrlt17Xr/+vTpw++//86iRYsIDw/HMAxatWpFYmIiYH36bnx8POvWrWPPnj18+OGHttFkf19P/vbbbxw4cIAvv/ySggUL/qc8mUG372WAG4nJVBi+NMuPu39kc1wdM+afcOTIkTRr1sw2nz9/fqpUqWKbf+edd1iwYAGLFi26ZaTOP/Xp04fu3bsD8P777/PZZ5+xdetWWrRokeb6iYmJTJw4kZIlSwIwaNAgRo4caXv9888/Z9iwYbZRSuPHj7dVfu9k9uzZlC5dmooVKwLQrVs3Jk2aRIMGDQCYNWsWFy5cYNu2beTPnx+AUqVK2bZ/77336NatGyNGjLAt++fnca+GDBlChw4dUi375y+uZ599lqVLl/LDDz9Qu3Ztrl69yqeffsr48ePp3bs3ACVLluSBBx4AoEOHDgwaNIiffvqJLl26ANaqfZ8+ffSoVxERYMneszw/ZzfxSckU9XGlfqnsd/Ildxd+7BI9vtmCp3M+mlf0w8XR3uxIIiI5nlnXraBr1/tx+PBhFi1axMaNG6lXrx4AM2fOJDAwkIULF9K5c2dOnjxJx44dCQkJAaBEiRK27U+ePEm1atWoWbMmYB0tlh1ppJQA2H5Q/3bt2jVefPFFypcvj7e3N+7u7hw4cOCu1ebKlSvb/tvNzQ1PT0/Onz9/2/VdXV1t/6cG8Pf3t60fExPDuXPnUo1Qsre3p0aNGnd9P5MnT6Znz562+Z49ezJ37lyuXr0KwK5du6hWrZqtIPVvu3btokmTJnc9zt38+3NNTk7mnXfeISQkhPz58+Pu7s7SpUttn+uBAweIj4+/7bGdnZ1T3Y64Y8cO9u7dm+rpSiIieZFhGIxfdZinvtvBjcRkHihdiEoBWfdgDclYdYsXoFh+V2JvJvHTLo2WEhGR/8tt1663c+DAAfLly0edOnVsywoUKEDZsmU5cOAAAIMHD+bdd9+lfv36vPXWW/zxxx+2dZ9++mlmz55N1apVefnll9m0adN9Z8lMGimVAVwc7Nk/srkpx80obm5uqeZffPFFli9fzpgxYyhVqhQuLi506tSJhISEO+7n3428LRaL7Za4e13/vw7t3L9/P5s3b2br1q2pmpsnJycze/ZsnnjiCVxcXO64j7u9nlbOv4dQ/tO/P9fRo0fz6aefMm7cOEJCQnBzc2PIkCG2z/VuxwXrLXxVq1bl1KlTTJkyhYceeoigoKC7biciklvdTEzm1R//YOGuMwD0qRfMG4+UJ5+9vnvLqezsLPSqG8R7iw8wPTyCrrUCNSJYROQ/Muu69e9jZ5TcdO36X/Xv35/mzZvz66+/smzZMkaNGsXYsWN59tlnadmyJRERESxevJjly5fTpEkTBg4cyJgxY0zN/G86W8sAFosFV8d8WT5l5snZxo0b6dOnD+3btyckJAQ/Pz9OnDiRacdLi5eXF4ULF2bbtm22ZcnJyezYseOO202aNImGDRuye/dudu3aZZuGDh3KpEmTAGtVfNeuXbe9Z7hy5cp3bBxeqFChVE3tDh8+zPXr1+/6njZu3Ejbtm3p2bMnVapUoUSJEvz555+210uXLo2Li8sdjx0SEkLNmjX55ptvmDVrFo8//vhdjysikludv3qTbl9vZuGuM9jbWXi3XSXeblNRBalcoHPNojg72LH/bCzbI66YHUdEJMcz67pV1673p3z58iQlJaV6GNelS5c4dOgQFSpUsC0LDAzkqaeeYv78+bzwwgt88803ttcKFSpE7969+e677xg3bhxff/31fefJLBopJWkqXbo08+fPp3Xr1lgsFt588807Vo0zy7PPPsuoUaMoVaoU5cqV4/PPP+fKlSu3/aWWmJjIjBkzGDlyJJUqVUr1Wv/+/fn444/Zt28f3bt35/3336ddu3aMGjUKf39/du7cSZEiRQgNDeWtt96iSZMmlCxZkm7dupGUlMTixYttI68eeughxo8fT2hoKMnJybzyyiu3VM7TUrp0aebNm8emTZvw8fHh448/5ty5c7ZfKs7Ozrzyyiu8/PLLODo6Ur9+fS5cuMC+ffvo169fqvcyaNAg3NzcUj0VUEQkL9l/Jpb+07ZxJuYmXi4OTHisunpI5SLero60qxrA7G2RTAuPoGZw2rfci4hI3pZTr13/ac+ePXh4eNjmLRYLVapUoW3btjzxxBN89dVXeHh48OqrrxIQEEDbtm0Baw/jli1bUqZMGa5cucLq1aspX748AMOHD6dGjRpUrFiR+Ph4fvnlF9tr2Ym+RpQ0ffzxx/j4+FCvXj1at25N8+bNqV69epbneOWVV+jevTthYWGEhobi7u5O8+bNcXZ2TnP9RYsWcenSpTQLNeXLl6d8+fJMmjQJR0dHli1bhq+vL61atSIkJIQPPvgAe3vrsNLGjRszd+5cFi1aRNWqVXnooYdSPSFv7NixBAYG0qBBA3r06MGLL76Iq6vrXd/PG2+8QfXq1WnevDmNGzfGz8/vlkeEvvnmm7zwwgsMHz6c8uXL07Vr11vube7evTv58uWje/fut/0sRERys6X7oug0cRNnYm5SoqAbC56pp4JULtQr1Hp7+m97znI+9qbJaUREJDvKqdeu/9SwYUOqVatmm/7uRTVlyhRq1KjBo48+SmhoKIZhsHjxYtuAiOTkZAYOHEj58uVp0aIFZcqUYcKECQA4OjoybNgwKleuTMOGDbG3t2f27NmZ9wHcJ4th9k2Q2VBsbCxeXl7ExMTg6emZ6rWbN29y/PhxihcvrmKACVJSUihfvjxdunThnXfeMTuOaU6cOEHJkiXZtm1bpv3C1c+6iGRHhmEwce0xPlp6EMOA+qUKMKFHDbxc7z5aNaPc6TwhL8mqz6HTl5v4PeIKzzctw3NNS2facUREchudz5srL1y73uln7F7PE3T7nmRrERERLFu2jEaNGhEfH8/48eM5fvw4PXr0MDuaKRITE7l06RJvvPEGdevWNeUbABERs8QnJTNs/h7m77A+ja1X3SCGt66Ag/pH5Wq9QoP4PeIKs7ZG8MyDJfXvLSIi2ZKuXe+P/qpLtmZnZ8fUqVOpVasW9evXZ8+ePaxYsSJb3gubFTZu3Ii/vz/btm1j4sSJZscREckyF6/F89g3W5i/4zT2dhZGtq3IO+0qqUCRB7Ss5E9BdyfOxcazbN85s+OIiIikSdeu90cjpSRbCwwMZOPGjWbHyDYaN25s+mNHRUSy2sGoWPpN/Z3T0TfwcM7HFz2q07BMIbNjSRZxzGdHjzrF+GzlYaaFn+CRyv5mRxIREbmFrl3vj75eFBERkWxr5YFzdJywidPRNwgu4MqCZ+qrIJUH9ahdDHs7C1uPX+ZgVKzZcURERCSDqCglIiIi2Y5hGHy97ij9p/9OXEIyoSUKsHBgfUr5upsdTUzg5+VMi4p+AEwPjzA5jYiIiGQUFaVEREQkW0lISuHleX/w/mLrE/a61w5ker/aeLs6mh1NTNQrNAiABTtOE3Mj0eQ0IiIikhFUlBIREZFs43JcAj2/3cLc7aews8DwRyvwfvsQNTQX6hTPT9nCHtxITObH7afMjiMiIiIZQGd4IiIiki38ee4qbb/YwNYTl/FwysfkPrV4/IHiWCwWs6NJNmCxWAirZx0tNWNzBCkpevCHiIhITqeilIiIiJhu9aHzdJiwicjLNyiW35X5z9SjcVlfs2NJNtOuagAeTvk4fjGODUcumh1HRERE/iMVpeSeNW7cmCFDhtjmg4ODGTdu3B23sVgsLFy48D8fO6P2IyIi2YthGEzacJx+U7dxLT6J2sXzs3BgfUoX9jA7mmRDbk756FSzKADTw0+YG0ZERLItXbvmHCpK5QGtW7emRYsWab62fv16LBYLf/zxR7r3u23bNgYMGPBf46Xy9ttvU7Vq1VuWnz17lpYtW2bosW7nxo0b5M+fn4IFCxIfH58lxxQRyYsSklJ4bcEe3vllPykGdKlZlO/61SG/mxqay+31qmu9hW/lwfNEXr5uchoREclIuna9N1OnTsXb2ztTj5FVVJTKA/r168fy5cs5derWpqBTpkyhZs2aVK5cOd37LVSoEK6urhkR8a78/PxwcnLKkmP9+OOPVKxYkXLlyple4TYMg6SkJFMziIhkhitxCYRN3sL3WyOxWOCNR8rzYcfKOObTqYncWYlC7jQoXRDDgO+2RJgdR0REMpCuXfMenfnlAY8++iiFChVi6tSpqZZfu3aNuXPn0q9fPy5dukT37t0JCAjA1dWVkJAQvv/++zvu999DIA8fPkzDhg1xdnamQoUKLF++/JZtXnnlFcqUKYOrqyslSpTgzTffJDHR+ljnqVOnMmLECHbv3o3FYsFisdgy/3sI5J49e3jooYdwcXGhQIECDBgwgGvXrtle79OnD+3atWPMmDH4+/tToEABBg4caDvWnUyaNImePXvSs2dPJk2adMvr+/bt49FHH8XT0xMPDw8aNGjA0aNHba9PnjyZihUr4uTkhL+/P4MGDQLgxIkTWCwWdu3aZVs3Ojoai8XCmjVrAFizZg0Wi4XffvuNGjVq4OTkxIYNGzh69Cht27alcOHCuLu7U6tWLVasWJEqV3x8PK+88gqBgYE4OTlRqlQpJk2ahGEYlCpVijFjxqRaf9euXVgsFo4cOXLXz0REJCMdOX+NdhM2svnYZdwc7ZnUuyb9G5RQQ3O5Z71DgwGYsy2Sm4nJ5oYREZEMo2vX9F273s7Jkydp27Yt7u7ueHp60qVLF86dO2d7fffu3Tz44IN4eHjg6elJjRo1+P333wGIiIigdevW+Pj44ObmRsWKFVm8ePF9Z7mbfJm257zEMCDRhOHjDq5wDyfw+fLlIywsjKlTp/L666/bTvrnzp1LcnIy3bt359q1a9SoUYNXXnkFT09Pfv31V3r16kXJkiWpXbv2XY+RkpJChw4dKFy4MFu2bCEmJibVPbx/8/DwYOrUqRQpUoQ9e/bwxBNP4OHhwcsvv0zXrl3Zu3cvS5YssRVcvLy8btlHXFwczZs3JzQ0lG3btnH+/Hn69+/PoEGDUv3yWr16Nf7+/qxevZojR47QtWtXqlatyhNPPHHb93H06FHCw8OZP38+hmHw/PPPExERQVCQ9VaB06dP07BhQxo3bsyqVavw9PRk48aNttFMX375JUOHDuWDDz6gZcuWxMTEsHHjxrt+fv/26quvMmbMGEqUKIGPjw+RkZG0atWK9957DycnJ6ZPn07r1q05dOgQxYoVAyAsLIzw8HA+++wzqlSpwvHjx7l48SIWi4XHH3+cKVOm8OKLL9qOMWXKFBo2bEipUqXSnU9E5H6t+/MCA2ft4OrNJIr6uDCpdy3K+ql/lKTPg+V8CfB24XT0DX7efYbONQPNjiQikv2Zdd0KunbNhGvXO72/vwtSa9euJSkpiYEDB9K1a1fbYIjHHnuMatWq8eWXX2Jvb8+uXbtwcHAAYODAgSQkJLBu3Trc3NzYv38/7u7u6c5xr1SUygiJ1+H9Ill/3NfOgKPbPa36+OOPM3r0aNauXUvjxo0Ba1GiY8eOeHl54eXllapg8eyzz7J06VJ++OGHe/o/9ooVKzh48CBLly6lSBHrZ/H+++/fci/tG2+8Yfvv4OBgXnzxRWbPns3LL7+Mi4sL7u7u5MuXDz8/v9sea9asWdy8eZPp06fj5mZ9/+PHj6d169Z8+OGHFC5cGAAfHx/Gjx+Pvb095cqV45FHHmHlypV3/D/25MmTadmyJT4+PgA0b96cKVOm8PbbbwPwxRdf4OXlxezZs23/py1Tpoxt+3fffZcXXniB5557zrasVq1ad/38/m3kyJE0a9bMNp8/f36qVKlim3/nnXdYsGABixYtYtCgQfz555/88MMPLF++nKZNmwJQokQJ2/p9+vRh+PDhbN26ldq1a5OYmMisWbNuGT0lIpJZDMNg2qYTjPyrf1TNIB8m9qpBQXcNb5f0s7ez0Cs0iA9+O8j08Ag61SiqkXYiIndj1nUr6No1E65db2flypXs2bOH48ePExho/dJm+vTpVKxYkW3btlGrVi1OnjzJSy+9RLly5QAoXbq0bfuTJ0/SsWNHQkJCgNTXlZlBt+/lEeXKlaNevXpMnjwZgCNHjrB+/Xr69esHQHJyMu+88w4hISHkz58fd3d3li5dysmTJ+9p/wcOHCAwMND2f2qA0NDQW9abM2cO9evXx8/PD3d3d9544417PsY/j1WlShXb/6kB6tevT0pKCocOHbItq1ixIvb29rZ5f39/zp8/f9v9JicnM23aNHr27Glb1rNnT6ZOnUpKSgpgveWtQYMGtoLUP50/f54zZ87QpEmTdL2ftNSsWTPV/LVr13jxxRcpX7483t7euLu7c+DAAdtnt2vXLuzt7WnUqFGa+ytSpAiPPPKI7d//559/Jj4+ns6dO//nrCIid5OYnMIbC/fy9s/WglTH6kWZ+UQdFaTkP+lSMxDHfHbsOR3Drshos+OIiEgG0bXr3a9d73bMwMBAW0EKoEKFCnh7e3PgwAEAhg4dSv/+/WnatCkffPBBqnY0gwcP5t1336V+/fq89dZb99VYPj00UiojOLhaK79mHDcd+vXrx7PPPssXX3zBlClTKFmypK2IMXr0aD799FPGjRtHSEgIbm5uDBkyhISEhAyLGx4ezmOPPcaIESNo3ry5bcTR2LFjM+wY//TvwpHFYrEVl9KydOlSTp8+TdeuXVMtT05OZuXKlTRr1gwXF5fbbn+n1wDs7Kw1YMMwbMtud5/wP39pAbz44ossX76cMWPGUKpUKVxcXOjUqZPt3+duxwbo378/vXr14pNPPmHKlCl07do1y5r9iUjeFX09gWdm7mDT0UtYLPBKi3I82VD9o+S/y+/mSJsqRZi3/RTTwyOoVszH7EgiItmbWdetfx87HXTteudr1//q7bffpkePHvz666/89ttvvPXWW8yePZv27dvTv39/mjdvzq+//sqyZcsYNWoUY8eO5dlnn82ULBoplREsFutQxKye0nlC36VLF+zs7Jg1axbTp0/n8ccft10UbNy4kbZt29KzZ0+qVKlCiRIl+PPPP+953+XLlycyMpKzZ8/alm3evDnVOps2bSIoKIjXX3+dmjVrUrp0aSIiUj81x9HRkeTkOzcsLV++PLt37yYuLs62bOPGjdjZ2VG2bNl7zvxvkyZNolu3buzatSvV1K1bN1vD88qVK7N+/fo0i0keHh4EBwezcuXKNPdfqFAhgFSf0T+bnt/Jxo0b6dOnD+3btyckJAQ/Pz9OnDhhez0kJISUlBTWrl172320atUKNzc3vvzyS5YsWcLjjz9+T8cWEblfxy5co/2ETWw6eglXR3u+7lWTpxqVVEFKMkxYqLXn469/nOXitXiT04iIZHNmXbfq2jXDr13vdszIyEgiIyNty/bv3090dDQVKlSwLStTpgzPP/88y5Yto0OHDkyZMsX2WmBgIE899RTz58/nhRde4JtvvsmUrKCiVJ7i7u5O165dGTZsGGfPnqVPnz6210qXLs3y5cvZtGkTBw4c4Mknn0zVnf9umjZtSpkyZejduze7d+9m/fr1vP7666nWKV26NCdPnmT27NkcPXqUzz77jAULFqRaJzg4mOPHj7Nr1y4uXrxIfPytJ5iPPfYYzs7O9O7dm71797J69WqeffZZevXqZbsnN70uXLjAzz//TO/evalUqVKqKSwsjIULF3L58mUGDRpEbGws3bp14/fff+fw4cPMmDHDNvTy7bff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8qVzBd86X51ry2hMv+S7v94TERERERERERHTKJQSEREREREREZE2p1DKBIGBgTz22GMEBgaaXUqr07l6L186X52r9/Kl89W5iqfxpffRl84VfOt8da7eyZfOFXzrfHWubU8LnYuIiIiIiIiISJvTSCkREREREREREWlzCqVERERERERERKTNKZQSEREREREREZE2p1CqlTzzzDMkJycTFBRERkYGa9asOe/+b7/9Nr179yYoKIjU1FQWL17cRpU2X1POdd68eVgsljqPoKCgNqz24q1YsYJx48aRkJCAxWJh0aJFFzxm+fLlDB48mMDAQLp37868efNavc6W0NRzXb58+Tnvq8ViITc3t20KbobZs2czbNgwwsLC6NixI+PHj2fHjh0XPM4TP7MXc66e/Jl97rnnGDBgAOHh4YSHhzN8+HA++eST8x7jie8rNP1cPfl9Pduf/vQnLBYLDzzwwHn389T31tupX6qfJ39G1S81TP2SZ3xm1S+pXzrFk9/Xs7lzv6RQqhUsXLiQGTNm8Nhjj7FhwwbS0tIYNWoUR48erXf/b7/9lp/+9KdMnz6djRs3Mn78eMaPH8+WLVvauPKma+q5AoSHh5OTk1P72L9/fxtWfPHKyspIS0vjmWeeadT+2dnZjB07lquuuorMzEweeOABbr/9dj799NNWrrT5mnqup+zYsaPOe9uxY8dWqrDlfPnll9xzzz2sWrWKpUuXUlVVxbXXXktZWVmDx3jqZ/ZizhU89zPbqVMn/vSnP7F+/XrWrVvH1VdfzfXXX893331X7/6e+r5C088VPPd9PdPatWt54YUXGDBgwHn38+T31pupX1K/BOqX1C+5H/VL6pfO5Knv65ncvl8ypMWlp6cb99xzT+3zmpoaIyEhwZg9e3a9+0+YMMEYO3ZsnW0ZGRnGz372s1atsyU09Vznzp1rREREtFF1rQcw3n///fPu89BDDxn9+vWrs23ixInGqFGjWrGylteYc/3f//5nAMbx48fbpKbWdPToUQMwvvzyywb38eTP7Jkac67e8pk9pX379sZLL71U7/e85X095Xzn6g3va0lJidGjRw9j6dKlxhVXXGHcf//9De7rbe+tt1C/pH7JMNQveSr1S3V5y2f2FPVLLt7wvnpCv6SRUi2ssrKS9evXM3LkyNptVquVkSNHsnLlynqPWblyZZ39AUaNGtXg/u7iYs4VoLS0lC5dupCUlHTBZNqTeer72hwDBw4kPj6ea665hm+++cbsci5KcXExAFFRUQ3u4y3vbWPOFbzjM1tTU8Obb75JWVkZw4cPr3cfb3lfG3Ou4Pnv6z333MPYsWPPec/q4y3vrTdRv6R+6RRPfV+bQ/2SZ7236pfq8pb3Vf3Sucx6bxVKtbD8/HxqamqIjY2tsz02NrbB+eK5ublN2t9dXMy59urVi5dffpkPPviAV199FafTyaWXXsqhQ4faouQ21dD7arfbKS8vN6mq1hEfH8/zzz/Pu+++y7vvvktSUhJXXnklGzZsMLu0JnE6nTzwwANcdtll9O/fv8H9PPUze6bGnqunf2azsrJo164dgYGB3HXXXbz//vv07du33n09/X1tyrl6+vv65ptvsmHDBmbPnt2o/T39vfVG6pfUL52ifkn9kjtTv3QuT39f1S81zKz31q9VX13kLMOHD6+TRF966aX06dOHF154gccff9zEyqQ5evXqRa9evWqfX3rppezZs4ennnqKBQsWmFhZ09xzzz1s2bKFr7/+2uxSWl1jz9XTP7O9evUiMzOT4uJi3nnnHaZMmcKXX37ZYPPhyZpyrp78vh48eJD777+fpUuXeuxioyIX4smfUWmY+iXPo35J/ZKnvq+e1C8plGphMTEx2Gw28vLy6mzPy8sjLi6u3mPi4uKatL+7uJhzPZu/vz+DBg1i9+7drVGiqRp6X8PDwwkODjapqraTnp7uUc3Kvffey0cffcSKFSvo1KnTeff11M/sKU0517N52mc2ICCA7t27AzBkyBDWrl3LP/7xD1544YVz9vX097Up53o2T3pf169fz9GjRxk8eHDttpqaGlasWMG///1vHA4HNputzjGe/t56I/VL6pdOUb+kfsldqV9Sv3Q2T3pfPalf0vS9FhYQEMCQIUNYtmxZ7Tan08myZcsanKs6fPjwOvsDLF269LxzW93BxZzr2WpqasjKyiI+Pr61yjSNp76vLSUzM9Mj3lfDMLj33nt5//33+eKLL0hJSbngMZ763l7MuZ7N0z+zTqcTh8NR7/c89X1tyPnO9Wye9L6OGDGCrKwsMjMzax9Dhw7llltuITMz85wGC7zvvfUG6pfUL53iqe9rS1G/5H7UL6lfaognva8e1S+16jLqPurNN980AgMDjXnz5hlbt2417rzzTiMyMtLIzc01DMMwJk2aZDz88MO1+3/zzTeGn5+f8be//c3Ytm2b8dhjjxn+/v5GVlaWWafQaE0911mzZhmffvqpsWfPHmP9+vXGTTfdZAQFBRnfffedWafQaCUlJcbGjRuNjRs3GoDx5JNPGhs3bjT2799vGIZhPPzww8akSZNq99+7d68REhJiPPjgg8a2bduMZ555xrDZbMaSJUvMOoVGa+q5PvXUU8aiRYuMXbt2GVlZWcb9999vWK1W4/PPPzfrFBrt7rvvNiIiIozly5cbOTk5tY8TJ07U7uMtn9mLOVdP/sw+/PDDxpdffmlkZ2cbmzdvNh5++GHDYrEYn332mWEY3vO+GkbTz9WT39f6nH03GW96b72Z+iX1S4ahfkn9kvtRv6R+6RRPfl/r4679kkKpVvKvf/3L6Ny5sxEQEGCkp6cbq1atqv3eFVdcYUyZMqXO/m+99ZbRs2dPIyAgwOjXr5/x8ccft3HFF68p5/rAAw/U7hsbG2tcd911xoYNG0youulO3cb37Mep85syZYpxxRVXnHPMwIEDjYCAAKNr167G3Llz27zui9HUc/3zn/9sdOvWzQgKCjKioqKMK6+80vjiiy/MKb6J6jtPoM575S2f2Ys5V0/+zE6bNs3o0qWLERAQYHTo0MEYMWJEbdNhGN7zvhpG08/Vk9/X+pzdZHnTe+vt1C+5eNNnVP2S+qUzeeJnVv2S+qVTPPl9rY+79ksWwzCMlh9/JSIiIiIiIiIi0jCtKSUiIiIiIiIiIm1OoZSIiIiIiIiIiLQ5hVIiIiIiIiIiItLmFEqJiIiIiIiIiEibUyglIiIiIiIiIiJtTqGUiIiIiIiIiIi0OYVSIiIiIiIiIiLS5hRKiYiIiIiIiIhIm1MoJSLSSiwWC4sWLTK7DBERERG3pX5JxLcplBIRr3TbbbdhsVjOeYwePdrs0kRERETcgvolETGbn9kFiIi0ltGjRzN37tw62wIDA02qRkRERMT9qF8SETNppJSIeK3AwEDi4uLqPNq3bw+4hoo/99xzjBkzhuDgYLp27co777xT5/isrCyuvvpqgoODiY6O5s4776S0tLTOPi+//DL9+vUjMDCQ+Ph47r333jrfz8/P50c/+hEhISH06NGDDz/8sHVPWkRERKQJ1C+JiJkUSomIz/rtb3/Lj3/8YzZt2sQtt9zCTTfdxLZt2wAoKytj1KhRtG/fnrVr1/L222/z+eef12minnvuOe655x7uvPNOsrKy+PDDD+nevXudv2PWrFlMmDCBzZs3c91113HLLbdQWFjYpucpIiIicrHUL4lIqzJERLzQlClTDJvNZoSGhtZ5/OEPfzAMwzAA46677qpzTEZGhnH33XcbhmEY//nPf4z27dsbpaWltd//+OOPDavVauTm5hqGYRgJCQnGb37zmwZrAIxHHnmk9nlpaakBGJ988kmLnaeIiIjIxVK/JCJm05pSIuK1rrrqKp577rk626Kiomr/PHz48DrfGz58OJmZmQBs27aNtLQ0QkNDa79/2WWX4XQ62bFjBxaLhSNHjjBixIjz1jBgwIDaP4eGhhIeHs7Ro0cv9pREREREWpT6JRExk0IpEfFaoaGh5wwPbynBwcGN2s/f37/Oc4vFgtPpbI2SRERERJpM/ZKImElrSomIz1q1atU5z/v06QNAnz592LRpE2VlZbXf/+abb7BarfTq1YuwsDCSk5NZtmxZm9YsIiIi0pbUL4lIa9JIKRHxWg6Hg9zc3Drb/Pz8iImJAeDtt99m6NChXH755bz22musWbOGOXPmAHDLLbfw2GOPMWXKFH73u99x7Ngx7rvvPiZNmkRsbCwAv/vd77jrrrvo2LEjY8aMoaSkhG+++Yb77ruvbU9URERE5CKpXxIRMymUEhGvtWTJEuLj4+ts69WrF9u3bwdcd3p58803+fnPf058fDxvvPEGffv2BSAkJIRPP/2U+++/n2HDhhESEsKPf/xjnnzyydrXmjJlChUVFTz11FP86le/IiYmhhtvvLHtTlBERESkmdQviYiZLIZhGGYXISLS1iwWC++//z7jx483uxQRERERt6R+SURam9aUEhERERERERGRNqdQSkRERERERERE2pym74mIiIiIiIiISJvTSCkREREREREREWlzCqVERERERERERKTNKZQSEREREREREZE2p1BKRERERERERETanEIpERERERERERFpcwqlRERERERERESkzSmUEhERERERERGRNqdQSkRERERERERE2pxCKRERERERERERaXP/HxJStgwBRFeNAAAAAElFTkSuQmCC\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# 9. Baseline Training Results"
      ],
      "metadata": {
        "id": "XXDFhd3O0CVO"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import pandas as pd\n",
        "from IPython.display import display\n",
        "\n",
        "# Collect baseline results\n",
        "results_table = pd.DataFrame({\n",
        "    \"Metric\": [\n",
        "        \"Training Accuracy\",\n",
        "        \"Validation Accuracy\",\n",
        "        \"Training Loss\",\n",
        "        \"Validation Loss\"\n",
        "    ],\n",
        "    \"Best Result\": [\n",
        "        f\"{max(history_baseline.history['accuracy']) * 100:.2f}%\",\n",
        "        f\"{max(history_baseline.history['val_accuracy']) * 100:.2f}%\",\n",
        "        f\"{min(history_baseline.history['loss']):.4f}\",\n",
        "        f\"{min(history_baseline.history['val_loss']):.4f}\"\n",
        "    ]\n",
        "})\n",
        "\n",
        "# Display as a clean table\n",
        "display(\n",
        "    results_table.style\n",
        "    .set_caption(\"Baseline Model Results\")\n",
        "    .hide(axis=\"index\")\n",
        "    .set_properties(**{\n",
        "        \"text-align\": \"center\",\n",
        "        \"font-size\": \"14px\"\n",
        "    })\n",
        "    .set_table_styles([\n",
        "        {\n",
        "            \"selector\": \"caption\",\n",
        "            \"props\": [\n",
        "                (\"font-size\", \"18px\"),\n",
        "                (\"font-weight\", \"bold\"),\n",
        "                (\"text-align\", \"left\"),\n",
        "                (\"padding-bottom\", \"10px\")\n",
        "            ]\n",
        "        },\n",
        "        {\n",
        "            \"selector\": \"th\",\n",
        "            \"props\": [\n",
        "                (\"font-weight\", \"bold\"),\n",
        "                (\"text-align\", \"center\"),\n",
        "                (\"border\", \"1px solid black\"),\n",
        "                (\"padding\", \"8px\")\n",
        "            ]\n",
        "        },\n",
        "        {\n",
        "            \"selector\": \"td\",\n",
        "            \"props\": [\n",
        "                (\"border\", \"1px solid black\"),\n",
        "                (\"padding\", \"8px\")\n",
        "            ]\n",
        "        }\n",
        "    ])\n",
        ")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 221
        },
        "id": "2e5-HFpeL-Y6",
        "outputId": "d0cbfba5-59b9-4d26-e889-39c91d376cba"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<pandas.io.formats.style.Styler at 0x7e5ba0266a20>"
            ],
            "text/html": [
              "<style type=\"text/css\">\n",
              "#T_f89d7 caption {\n",
              "  font-size: 18px;\n",
              "  font-weight: bold;\n",
              "  text-align: left;\n",
              "  padding-bottom: 10px;\n",
              "}\n",
              "#T_f89d7 th {\n",
              "  font-weight: bold;\n",
              "  text-align: center;\n",
              "  border: 1px solid black;\n",
              "  padding: 8px;\n",
              "}\n",
              "#T_f89d7 td {\n",
              "  border: 1px solid black;\n",
              "  padding: 8px;\n",
              "}\n",
              "#T_f89d7_row0_col0, #T_f89d7_row0_col1, #T_f89d7_row1_col0, #T_f89d7_row1_col1, #T_f89d7_row2_col0, #T_f89d7_row2_col1, #T_f89d7_row3_col0, #T_f89d7_row3_col1 {\n",
              "  text-align: center;\n",
              "  font-size: 14px;\n",
              "}\n",
              "</style>\n",
              "<table id=\"T_f89d7\" class=\"dataframe\">\n",
              "  <caption>Baseline Model Results</caption>\n",
              "  <thead>\n",
              "    <tr>\n",
              "      <th id=\"T_f89d7_level0_col0\" class=\"col_heading level0 col0\" >Metric</th>\n",
              "      <th id=\"T_f89d7_level0_col1\" class=\"col_heading level0 col1\" >Best Result</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <td id=\"T_f89d7_row0_col0\" class=\"data row0 col0\" >Training Accuracy</td>\n",
              "      <td id=\"T_f89d7_row0_col1\" class=\"data row0 col1\" >58.98%</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <td id=\"T_f89d7_row1_col0\" class=\"data row1 col0\" >Validation Accuracy</td>\n",
              "      <td id=\"T_f89d7_row1_col1\" class=\"data row1 col1\" >53.39%</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <td id=\"T_f89d7_row2_col0\" class=\"data row2 col0\" >Training Loss</td>\n",
              "      <td id=\"T_f89d7_row2_col1\" class=\"data row2 col1\" >1.0213</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <td id=\"T_f89d7_row3_col0\" class=\"data row3 col0\" >Validation Loss</td>\n",
              "      <td id=\"T_f89d7_row3_col1\" class=\"data row3 col1\" >1.1763</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n"
            ]
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# 10. Saving the Baseline Model and Training History"
      ],
      "metadata": {
        "id": "ww8Qp15W0oL4"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "baseline_model.save(\n",
        "    \"/content/drive/MyDrive/baseline_5classes_512.keras\"\n",
        ")"
      ],
      "metadata": {
        "id": "B35vs8BGLp84"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "import json\n",
        "\n",
        "with open(\n",
        "    \"/content/drive/MyDrive/baseline_history.json\",\n",
        "    \"w\"\n",
        ") as file:\n",
        "    json.dump(\n",
        "        history_baseline.history,\n",
        "        file\n",
        "    )\n",
        "\n",
        "print(\"Baseline model and history saved.\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "G6kFszRWL0BO",
        "outputId": "ca159cae-1b6e-458d-c86f-a965258cc041"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Baseline model and history saved.\n"
          ]
        }
      ]
    }
  ]
}