{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": [],
      "gpuType": "T4"
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    },
    "accelerator": "GPU",
    "widgets": {
      "application/vnd.jupyter.widget-state+json": {
        "eb7c2190e2464a129bfc98db843018ad": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_801105ccff254c9c8ad8ea6992b203eb",
              "IPY_MODEL_e0c1ea2f987a4bcc81e762346355072b",
              "IPY_MODEL_41ec74a4c1fc4e2c800c50b67c6ca426"
            ],
            "layout": "IPY_MODEL_2f38b75a6dbb4b5cbf6478215116b4cb"
          }
        },
        "801105ccff254c9c8ad8ea6992b203eb": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_bb32cc0444fe41379e3bd0c082d863bf",
            "placeholder": "​",
            "style": "IPY_MODEL_ecf54b6cbfdc4345b5be62d146795f36",
            "value": "model.safetensors: 100%"
          }
        },
        "e0c1ea2f987a4bcc81e762346355072b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_02c0b0cf20414b2fac96b885927c330e",
            "max": 346284714,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_0a7fd8ce894041e5a4c18cf3cfac910c",
            "value": 346284714
          }
        },
        "41ec74a4c1fc4e2c800c50b67c6ca426": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_4b769d8d804c46789eacde189e168ce4",
            "placeholder": "​",
            "style": "IPY_MODEL_acdb9fdc899c49ef9a58b77c6d21f830",
            "value": " 346M/346M [00:06&lt;00:00, 62.6MB/s]"
          }
        },
        "2f38b75a6dbb4b5cbf6478215116b4cb": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "bb32cc0444fe41379e3bd0c082d863bf": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "ecf54b6cbfdc4345b5be62d146795f36": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "02c0b0cf20414b2fac96b885927c330e": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "0a7fd8ce894041e5a4c18cf3cfac910c": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "4b769d8d804c46789eacde189e168ce4": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "acdb9fdc899c49ef9a58b77c6d21f830": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "7f04c41f8a4a4388bf587e3be236ccfe": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_cf090c660a0d4a4ba9befbf0097947bc",
              "IPY_MODEL_39957823f8354109b086d8ac9b195ed2",
              "IPY_MODEL_b4a6af05036a4f6f9a091cf4cfdac0cd"
            ],
            "layout": "IPY_MODEL_1924d37e8d734437ba6d303d9ed287da"
          }
        },
        "cf090c660a0d4a4ba9befbf0097947bc": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_544ef323aaa3450888b7e82fcc2c090d",
            "placeholder": "​",
            "style": "IPY_MODEL_0cc3196d1bdd460680aa5b917476e133",
            "value": "model.safetensors: 100%"
          }
        },
        "39957823f8354109b086d8ac9b195ed2": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_50061cd947da4b368f6ab260c3c6fef8",
            "max": 352685652,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_050cd971784e425fb99ebebb87aa6cdd",
            "value": 352685652
          }
        },
        "b4a6af05036a4f6f9a091cf4cfdac0cd": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_1c8f4d9fc74e4d8096a78ae51cbaf626",
            "placeholder": "​",
            "style": "IPY_MODEL_0f8598ecff68447a863a182e108dc301",
            "value": " 353M/353M [00:02&lt;00:00, 280MB/s]"
          }
        },
        "1924d37e8d734437ba6d303d9ed287da": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "544ef323aaa3450888b7e82fcc2c090d": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "0cc3196d1bdd460680aa5b917476e133": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "50061cd947da4b368f6ab260c3c6fef8": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "050cd971784e425fb99ebebb87aa6cdd": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "1c8f4d9fc74e4d8096a78ae51cbaf626": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "0f8598ecff68447a863a182e108dc301": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        }
      }
    }
  },
  "cells": [
    {
      "cell_type": "code",
      "execution_count": 3,
      "metadata": {
        "id": "runUXnt0M94s"
      },
      "outputs": [],
      "source": [
        "%%capture\n",
        "!pip install timm\n",
        "!pip install rapidfuzz\n",
        "!pip install codecarbon\n",
        "!pip install seaborn\n",
        "\n",
        "print(\"Installation complete!\")"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "import os\n",
        "import random\n",
        "import torch\n",
        "import torch.nn as nn\n",
        "import torch.optim as optim\n",
        "from torch.utils.data import Dataset, DataLoader\n",
        "from torchvision import transforms\n",
        "from PIL import Image\n",
        "import timm\n",
        "from codecarbon import EmissionsTracker\n",
        "from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, confusion_matrix\n",
        "from sklearn.model_selection import train_test_split\n",
        "import matplotlib.pyplot as plt\n",
        "import seaborn as sns\n",
        "import pandas as pd\n",
        "import numpy as np\n",
        "\n",
        "random.seed(42)\n",
        "torch.manual_seed(42)\n",
        "\n",
        "print(\" All libraries imported successfully\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "sCQ-h9P5OnBF",
        "outputId": "cfa3b2fb-7dea-476c-d6a0-476433252803"
      },
      "execution_count": 4,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            " All libraries imported successfully\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n",
        "\n",
        "print(\"Device:\", device)\n",
        "\n",
        "if torch.cuda.is_available():\n",
        "    print(\"GPU:\", torch.cuda.get_device_name(0))\n",
        "    print(\"GPU Available: YES\")\n",
        "else:\n",
        "    print(\"GPU Available: NO\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "4EByERpiO-f4",
        "outputId": "b9f64927-3f7b-4b2c-e685-561fef068d2e"
      },
      "execution_count": 5,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Device: cuda\n",
            "GPU: Tesla T4\n",
            "GPU Available: YES\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "from google.colab import files\n",
        "import zipfile\n",
        "\n",
        "print(\"Upload your dataset ZIP file\")\n",
        "uploaded = files.upload()\n",
        "\n",
        "filename = list(uploaded.keys())[0]\n",
        "with zipfile.ZipFile(filename, 'r') as zip_ref:\n",
        "    zip_ref.extractall('/content/dataset')\n",
        "\n",
        "print(\" Dataset extracted successfully\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 108
        },
        "id": "W5SSmGrzPiAe",
        "outputId": "e257588d-fa6b-4583-f39e-7509f908dda7"
      },
      "execution_count": 6,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Upload your dataset ZIP file\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ],
            "text/html": [
              "\n",
              "     <input type=\"file\" id=\"files-76237317-59d3-4970-ba3c-4724e6735923\" name=\"files[]\" multiple disabled\n",
              "        style=\"border:none\" />\n",
              "     <output id=\"result-76237317-59d3-4970-ba3c-4724e6735923\">\n",
              "      Upload widget is only available when the cell has been executed in the\n",
              "      current browser session. Please rerun this cell to enable.\n",
              "      </output>\n",
              "      <script>// Copyright 2017 Google LLC\n",
              "//\n",
              "// Licensed under the Apache License, Version 2.0 (the \"License\");\n",
              "// you may not use this file except in compliance with the License.\n",
              "// You may obtain a copy of the License at\n",
              "//\n",
              "//      http://www.apache.org/licenses/LICENSE-2.0\n",
              "//\n",
              "// Unless required by applicable law or agreed to in writing, software\n",
              "// distributed under the License is distributed on an \"AS IS\" BASIS,\n",
              "// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
              "// See the License for the specific language governing permissions and\n",
              "// limitations under the License.\n",
              "\n",
              "/**\n",
              " * @fileoverview Helpers for google.colab Python module.\n",
              " */\n",
              "(function(scope) {\n",
              "function span(text, styleAttributes = {}) {\n",
              "  const element = document.createElement('span');\n",
              "  element.textContent = text;\n",
              "  for (const key of Object.keys(styleAttributes)) {\n",
              "    element.style[key] = styleAttributes[key];\n",
              "  }\n",
              "  return element;\n",
              "}\n",
              "\n",
              "// Max number of bytes which will be uploaded at a time.\n",
              "const MAX_PAYLOAD_SIZE = 100 * 1024;\n",
              "\n",
              "function _uploadFiles(inputId, outputId) {\n",
              "  const steps = uploadFilesStep(inputId, outputId);\n",
              "  const outputElement = document.getElementById(outputId);\n",
              "  // Cache steps on the outputElement to make it available for the next call\n",
              "  // to uploadFilesContinue from Python.\n",
              "  outputElement.steps = steps;\n",
              "\n",
              "  return _uploadFilesContinue(outputId);\n",
              "}\n",
              "\n",
              "// This is roughly an async generator (not supported in the browser yet),\n",
              "// where there are multiple asynchronous steps and the Python side is going\n",
              "// to poll for completion of each step.\n",
              "// This uses a Promise to block the python side on completion of each step,\n",
              "// then passes the result of the previous step as the input to the next step.\n",
              "function _uploadFilesContinue(outputId) {\n",
              "  const outputElement = document.getElementById(outputId);\n",
              "  const steps = outputElement.steps;\n",
              "\n",
              "  const next = steps.next(outputElement.lastPromiseValue);\n",
              "  return Promise.resolve(next.value.promise).then((value) => {\n",
              "    // Cache the last promise value to make it available to the next\n",
              "    // step of the generator.\n",
              "    outputElement.lastPromiseValue = value;\n",
              "    return next.value.response;\n",
              "  });\n",
              "}\n",
              "\n",
              "/**\n",
              " * Generator function which is called between each async step of the upload\n",
              " * process.\n",
              " * @param {string} inputId Element ID of the input file picker element.\n",
              " * @param {string} outputId Element ID of the output display.\n",
              " * @return {!Iterable<!Object>} Iterable of next steps.\n",
              " */\n",
              "function* uploadFilesStep(inputId, outputId) {\n",
              "  const inputElement = document.getElementById(inputId);\n",
              "  inputElement.disabled = false;\n",
              "\n",
              "  const outputElement = document.getElementById(outputId);\n",
              "  outputElement.innerHTML = '';\n",
              "\n",
              "  const pickedPromise = new Promise((resolve) => {\n",
              "    inputElement.addEventListener('change', (e) => {\n",
              "      resolve(e.target.files);\n",
              "    });\n",
              "  });\n",
              "\n",
              "  const cancel = document.createElement('button');\n",
              "  inputElement.parentElement.appendChild(cancel);\n",
              "  cancel.textContent = 'Cancel upload';\n",
              "  const cancelPromise = new Promise((resolve) => {\n",
              "    cancel.onclick = () => {\n",
              "      resolve(null);\n",
              "    };\n",
              "  });\n",
              "\n",
              "  // Wait for the user to pick the files.\n",
              "  const files = yield {\n",
              "    promise: Promise.race([pickedPromise, cancelPromise]),\n",
              "    response: {\n",
              "      action: 'starting',\n",
              "    }\n",
              "  };\n",
              "\n",
              "  cancel.remove();\n",
              "\n",
              "  // Disable the input element since further picks are not allowed.\n",
              "  inputElement.disabled = true;\n",
              "\n",
              "  if (!files) {\n",
              "    return {\n",
              "      response: {\n",
              "        action: 'complete',\n",
              "      }\n",
              "    };\n",
              "  }\n",
              "\n",
              "  for (const file of files) {\n",
              "    const li = document.createElement('li');\n",
              "    li.append(span(file.name, {fontWeight: 'bold'}));\n",
              "    li.append(span(\n",
              "        `(${file.type || 'n/a'}) - ${file.size} bytes, ` +\n",
              "        `last modified: ${\n",
              "            file.lastModifiedDate ? file.lastModifiedDate.toLocaleDateString() :\n",
              "                                    'n/a'} - `));\n",
              "    const percent = span('0% done');\n",
              "    li.appendChild(percent);\n",
              "\n",
              "    outputElement.appendChild(li);\n",
              "\n",
              "    const fileDataPromise = new Promise((resolve) => {\n",
              "      const reader = new FileReader();\n",
              "      reader.onload = (e) => {\n",
              "        resolve(e.target.result);\n",
              "      };\n",
              "      reader.readAsArrayBuffer(file);\n",
              "    });\n",
              "    // Wait for the data to be ready.\n",
              "    let fileData = yield {\n",
              "      promise: fileDataPromise,\n",
              "      response: {\n",
              "        action: 'continue',\n",
              "      }\n",
              "    };\n",
              "\n",
              "    // Use a chunked sending to avoid message size limits. See b/62115660.\n",
              "    let position = 0;\n",
              "    do {\n",
              "      const length = Math.min(fileData.byteLength - position, MAX_PAYLOAD_SIZE);\n",
              "      const chunk = new Uint8Array(fileData, position, length);\n",
              "      position += length;\n",
              "\n",
              "      const base64 = btoa(String.fromCharCode.apply(null, chunk));\n",
              "      yield {\n",
              "        response: {\n",
              "          action: 'append',\n",
              "          file: file.name,\n",
              "          data: base64,\n",
              "        },\n",
              "      };\n",
              "\n",
              "      let percentDone = fileData.byteLength === 0 ?\n",
              "          100 :\n",
              "          Math.round((position / fileData.byteLength) * 100);\n",
              "      percent.textContent = `${percentDone}% done`;\n",
              "\n",
              "    } while (position < fileData.byteLength);\n",
              "  }\n",
              "\n",
              "  // All done.\n",
              "  yield {\n",
              "    response: {\n",
              "      action: 'complete',\n",
              "    }\n",
              "  };\n",
              "}\n",
              "\n",
              "scope.google = scope.google || {};\n",
              "scope.google.colab = scope.google.colab || {};\n",
              "scope.google.colab._files = {\n",
              "  _uploadFiles,\n",
              "  _uploadFilesContinue,\n",
              "};\n",
              "})(self);\n",
              "</script> "
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Saving images data set.zip to images data set.zip\n",
            " Dataset extracted successfully\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "import os\n",
        "\n",
        "print(\"Showing ALL folders in /content/dataset:\")\n",
        "\n",
        "\n",
        "for root, dirs, files in os.walk('/content/dataset'):\n",
        "    print(f\"\\nFolder: {root}\")\n",
        "    if dirs:\n",
        "        print(f\"  Subfolders: {dirs}\")\n",
        "    print(f\"  Files: {len(files)} files\")\n",
        "    if files:\n",
        "        print(f\"  First file: {files[0]}\")\n",
        "\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "JEDbbIrhWuSG",
        "outputId": "45f6f1a9-3aa0-4659-efe1-6f143345f183"
      },
      "execution_count": 8,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Showing ALL folders in /content/dataset:\n",
            "\n",
            "Folder: /content/dataset\n",
            "  Subfolders: ['real_and_fake_face']\n",
            "  Files: 0 files\n",
            "\n",
            "Folder: /content/dataset/real_and_fake_face\n",
            "  Subfolders: ['training_real', 'training_fake']\n",
            "  Files: 0 files\n",
            "\n",
            "Folder: /content/dataset/real_and_fake_face/training_real\n",
            "  Files: 1081 files\n",
            "  First file: real_00530.jpg\n",
            "\n",
            "Folder: /content/dataset/real_and_fake_face/training_fake\n",
            "  Files: 877 files\n",
            "  First file: mid_150_1111.jpg\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# Your dataset structure\n",
        "dataset_root = '/content/dataset/real_and_fake_face'\n",
        "\n",
        "real_folder = os.path.join(dataset_root, 'training_real')\n",
        "fake_folder = os.path.join(dataset_root, 'training_fake')\n",
        "\n",
        "print(\" Dataset found at:\", dataset_root)\n",
        "\n",
        "# Create file list\n",
        "all_files = []\n",
        "\n",
        "real_images = os.listdir(real_folder)\n",
        "fake_images = os.listdir(fake_folder)\n",
        "\n",
        "# Add real images (label 0)\n",
        "for img in real_images:\n",
        "    if img.endswith('.jpg'):\n",
        "        all_files.append((os.path.join(real_folder, img), 0))\n",
        "\n",
        "# Add fake images (label 1)\n",
        "for img in fake_images:\n",
        "    if img.endswith('.jpg'):\n",
        "        all_files.append((os.path.join(fake_folder, img), 1))\n",
        "\n",
        "random.shuffle(all_files)\n",
        "\n",
        "print(\" Real images:\", len([f for f, l in all_files if l == 0]))\n",
        "print(\" Fake images:\", len([f for f, l in all_files if l == 1]))\n",
        "print(\" Total files:\", len(all_files))"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "4Hr6yIQEahiq",
        "outputId": "6ef2da8f-a440-4e20-f0cd-68efb6926ca4"
      },
      "execution_count": 9,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            " Dataset found at: /content/dataset/real_and_fake_face\n",
            " Real images: 1081\n",
            " Fake images: 877\n",
            " Total files: 1958\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "labels = [label for _, label in all_files]\n",
        "\n",
        "# 70% train, 30% temp\n",
        "train_files, temp_files = train_test_split(\n",
        "    all_files, test_size=0.3, random_state=42, stratify=labels\n",
        ")\n",
        "\n",
        "# Split temp: 15% val, 15% test\n",
        "temp_labels = [label for _, label in temp_files]\n",
        "val_files, test_files = train_test_split(\n",
        "    temp_files, test_size=0.5, random_state=42, stratify=temp_labels\n",
        ")\n",
        "\n",
        "print(\" Training images:\", len(train_files))\n",
        "print(\" Validation images:\", len(val_files))\n",
        "print(\" Test images:\", len(test_files))"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "EZz6VXJka0q6",
        "outputId": "9346fd22-3533-4638-f73c-6f9e898ab357"
      },
      "execution_count": 10,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            " Training images: 1370\n",
            " Validation images: 294\n",
            " Test images: 294\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "train_transform = transforms.Compose([\n",
        "    transforms.Resize((224, 224)),\n",
        "    transforms.ToTensor(),\n",
        "    transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])\n",
        "])\n",
        "\n",
        "val_test_transform = transforms.Compose([\n",
        "    transforms.Resize((224, 224)),\n",
        "    transforms.ToTensor(),\n",
        "    transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])\n",
        "])\n",
        "\n",
        "print(\" Image transforms defined\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "--FkWNZva8rO",
        "outputId": "ae563ce3-a69a-4aac-b6cb-dbeb2b3942f9"
      },
      "execution_count": 11,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            " Image transforms defined\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "class DeepfakeDataset(Dataset):\n",
        "    def __init__(self, file_list, transform):\n",
        "        self.file_list = file_list\n",
        "        self.transform = transform\n",
        "\n",
        "    def __len__(self):\n",
        "        return len(self.file_list)\n",
        "\n",
        "    def __getitem__(self, idx):\n",
        "        img_path, label = self.file_list[idx]\n",
        "        image = Image.open(img_path).convert('RGB')\n",
        "        image = self.transform(image)\n",
        "        return image, label\n",
        "\n",
        "print(\" Dataset class created\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "3SZnXBwRbepl",
        "outputId": "31647e06-272d-4a9e-fd05-d83c4e8fce09"
      },
      "execution_count": 12,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            " Dataset class created\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "batch_size = 16\n",
        "\n",
        "train_dataset = DeepfakeDataset(train_files, train_transform)\n",
        "val_dataset = DeepfakeDataset(val_files, val_test_transform)\n",
        "test_dataset = DeepfakeDataset(test_files, val_test_transform)\n",
        "\n",
        "train_loader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True)\n",
        "val_loader = DataLoader(val_dataset, batch_size=batch_size, shuffle=False)\n",
        "test_loader = DataLoader(test_dataset, batch_size=batch_size, shuffle=False)\n",
        "\n",
        "print(\" DataLoaders created\")\n",
        "print(\"Training batches:\", len(train_loader))\n",
        "print(\"Validation batches:\", len(val_loader))"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "I8g-BkRvb54E",
        "outputId": "830901bd-7585-4709-cb62-6c4054f2666a"
      },
      "execution_count": 13,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            " DataLoaders created\n",
            "Training batches: 86\n",
            "Validation batches: 19\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "print(\"Loading models...\")\n",
        "\n",
        "vit_model = timm.create_model('vit_base_patch16_224', pretrained=True, num_classes=2)\n",
        "vit_model = vit_model.to(device)\n",
        "\n",
        "swin_model = timm.create_model('swin_base_patch4_window7_224', pretrained=True, num_classes=2)\n",
        "swin_model = swin_model.to(device)\n",
        "\n",
        "print(\" Vision Transformer loaded\")\n",
        "print(\" Swin Transformer loaded\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 257,
          "referenced_widgets": [
            "eb7c2190e2464a129bfc98db843018ad",
            "801105ccff254c9c8ad8ea6992b203eb",
            "e0c1ea2f987a4bcc81e762346355072b",
            "41ec74a4c1fc4e2c800c50b67c6ca426",
            "2f38b75a6dbb4b5cbf6478215116b4cb",
            "bb32cc0444fe41379e3bd0c082d863bf",
            "ecf54b6cbfdc4345b5be62d146795f36",
            "02c0b0cf20414b2fac96b885927c330e",
            "0a7fd8ce894041e5a4c18cf3cfac910c",
            "4b769d8d804c46789eacde189e168ce4",
            "acdb9fdc899c49ef9a58b77c6d21f830",
            "7f04c41f8a4a4388bf587e3be236ccfe",
            "cf090c660a0d4a4ba9befbf0097947bc",
            "39957823f8354109b086d8ac9b195ed2",
            "b4a6af05036a4f6f9a091cf4cfdac0cd",
            "1924d37e8d734437ba6d303d9ed287da",
            "544ef323aaa3450888b7e82fcc2c090d",
            "0cc3196d1bdd460680aa5b917476e133",
            "50061cd947da4b368f6ab260c3c6fef8",
            "050cd971784e425fb99ebebb87aa6cdd",
            "1c8f4d9fc74e4d8096a78ae51cbaf626",
            "0f8598ecff68447a863a182e108dc301"
          ]
        },
        "id": "OEmuOzNncQgc",
        "outputId": "a8df3851-7502-448c-f604-5aba8cec3e9b"
      },
      "execution_count": 14,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Loading models...\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "/usr/local/lib/python3.12/dist-packages/huggingface_hub/utils/_auth.py:94: UserWarning: \n",
            "The secret `HF_TOKEN` does not exist in your Colab secrets.\n",
            "To authenticate with the Hugging Face Hub, create a token in your settings tab (https://huggingface.co/settings/tokens), set it as secret in your Google Colab and restart your session.\n",
            "You will be able to reuse this secret in all of your notebooks.\n",
            "Please note that authentication is recommended but still optional to access public models or datasets.\n",
            "  warnings.warn(\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "model.safetensors:   0%|          | 0.00/346M [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "eb7c2190e2464a129bfc98db843018ad"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "model.safetensors:   0%|          | 0.00/353M [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "7f04c41f8a4a4388bf587e3be236ccfe"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            " Vision Transformer loaded\n",
            " Swin Transformer loaded\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "num_epochs = 10\n",
        "learning_rate = 0.0001\n",
        "\n",
        "criterion = nn.CrossEntropyLoss()\n",
        "\n",
        "vit_optimizer = optim.AdamW(vit_model.parameters(), lr=learning_rate)\n",
        "swin_optimizer = optim.AdamW(swin_model.parameters(), lr=learning_rate)\n",
        "\n",
        "print(\" Training configuration:\")\n",
        "print(\"  Epochs:\", num_epochs)\n",
        "print(\"  Learning rate:\", learning_rate)\n",
        "print(\"  Optimizer: AdamW\")\n",
        "print(\"  Loss function: CrossEntropyLoss\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "GEaJG9I8dsIC",
        "outputId": "6132308b-edb0-4626-93da-01cc5e42764a"
      },
      "execution_count": 15,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            " Training configuration:\n",
            "  Epochs: 10\n",
            "  Learning rate: 0.0001\n",
            "  Optimizer: AdamW\n",
            "  Loss function: CrossEntropyLoss\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "def train_one_epoch(model, loader, criterion, optimizer, device):\n",
        "    model.train()\n",
        "    total_loss = 0\n",
        "    correct = 0\n",
        "    total = 0\n",
        "\n",
        "    for images, labels in loader:\n",
        "        images, labels = images.to(device), labels.to(device)\n",
        "\n",
        "        optimizer.zero_grad()\n",
        "        outputs = model(images)\n",
        "        loss = criterion(outputs, labels)\n",
        "        loss.backward()\n",
        "        optimizer.step()\n",
        "\n",
        "        total_loss += loss.item()\n",
        "        _, predicted = torch.max(outputs, 1)\n",
        "        total += labels.size(0)\n",
        "        correct += (predicted == labels).sum().item()\n",
        "\n",
        "    return total_loss / len(loader), 100 * correct / total\n",
        "\n",
        "print(\" Training function ready\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "SIhu4Ihud4f0",
        "outputId": "4a5fe8bf-546e-4908-c8be-9b9ce72418fc"
      },
      "execution_count": 16,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            " Training function ready\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "def evaluate(model, loader, criterion, device):\n",
        "    model.eval()\n",
        "    total_loss = 0\n",
        "    all_preds = []\n",
        "    all_labels = []\n",
        "\n",
        "    with torch.no_grad():\n",
        "        for images, labels in loader:\n",
        "            images, labels = images.to(device), labels.to(device)\n",
        "            outputs = model(images)\n",
        "            loss = criterion(outputs, labels)\n",
        "\n",
        "            total_loss += loss.item()\n",
        "            _, predicted = torch.max(outputs, 1)\n",
        "\n",
        "            all_preds.extend(predicted.cpu().numpy())\n",
        "            all_labels.extend(labels.cpu().numpy())\n",
        "\n",
        "    accuracy = accuracy_score(all_labels, all_preds) * 100\n",
        "    return total_loss / len(loader), accuracy, all_preds, all_labels\n",
        "\n",
        "print(\" Evaluation function ready\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "J3fu4YsEeeNs",
        "outputId": "ba34c20c-a393-4abb-8fc8-da95b9ce428f"
      },
      "execution_count": 17,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            " Evaluation function ready\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "\n",
        "print(\"TRAINING VISION TRANSFORMER\")\n",
        "\n",
        "\n",
        "vit_tracker = EmissionsTracker(output_dir=\"/content\", output_file=\"vit_energy.csv\")\n",
        "vit_tracker.start()\n",
        "\n",
        "vit_history = {'train_loss': [], 'train_acc': [], 'val_loss': [], 'val_acc': []}\n",
        "best_vit_acc = 0\n",
        "\n",
        "for epoch in range(num_epochs):\n",
        "    print(f\"\\nEpoch {epoch+1}/{num_epochs}\")\n",
        "\n",
        "    train_loss, train_acc = train_one_epoch(vit_model, train_loader, criterion, vit_optimizer, device)\n",
        "    val_loss, val_acc, _, _ = evaluate(vit_model, val_loader, criterion, device)\n",
        "\n",
        "    vit_history['train_loss'].append(train_loss)\n",
        "    vit_history['train_acc'].append(train_acc)\n",
        "    vit_history['val_loss'].append(val_loss)\n",
        "    vit_history['val_acc'].append(val_acc)\n",
        "\n",
        "    print(f\"Train Loss: {train_loss:.4f}, Train Acc: {train_acc:.2f}%\")\n",
        "    print(f\"Val Loss: {val_loss:.4f}, Val Acc: {val_acc:.2f}%\")\n",
        "\n",
        "    if val_acc > best_vit_acc:\n",
        "        best_vit_acc = val_acc\n",
        "        torch.save(vit_model.state_dict(), '/content/best_vit.pth')\n",
        "        print(\"*** model saved ***\")\n",
        "\n",
        "vit_energy = vit_tracker.stop()\n",
        "print(f\"\\n ViT Training Complete!\")\n",
        "print(f\" Best Accuracy: {best_vit_acc:.2f}%\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Twifc-uVeheN",
        "outputId": "4b669546-4dab-4b8e-dcd4-2c07ef02a3f9"
      },
      "execution_count": 18,
      "outputs": [
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "[codecarbon WARNING @ 04:09:18] Multiple instances of codecarbon are allowed to run at the same time.\n",
            "[codecarbon INFO @ 04:09:18] [setup] RAM Tracking...\n",
            "[codecarbon INFO @ 04:09:18] [setup] CPU Tracking...\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "TRAINING VISION TRANSFORMER\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "[codecarbon WARNING @ 04:09:19] We saw that you have a Intel(R) Xeon(R) CPU @ 2.00GHz but we don't know it. Please contact us.\n",
            "[codecarbon WARNING @ 04:09:19] No CPU tracking mode found. Falling back on estimation based on TDP for CPU. \n",
            " Linux OS detected: Please ensure RAPL files exist, and are readable, at /sys/class/powercap/intel-rapl/subsystem to measure CPU\n",
            "\n",
            "[codecarbon INFO @ 04:09:19] CPU Model on constant consumption mode: Intel(R) Xeon(R) CPU @ 2.00GHz\n",
            "[codecarbon WARNING @ 04:09:19] No CPU tracking mode found. Falling back on CPU constant mode.\n",
            "[codecarbon INFO @ 04:09:19] [setup] GPU Tracking...\n",
            "[codecarbon INFO @ 04:09:19] Tracking Nvidia GPU via pynvml\n",
            "[codecarbon INFO @ 04:09:19] The below tracking methods have been set up:\n",
            "                RAM Tracking Method: RAM power estimation model\n",
            "                CPU Tracking Method: global constant\n",
            "                GPU Tracking Method: pynvml\n",
            "            \n",
            "[codecarbon INFO @ 04:09:19] >>> Tracker's metadata:\n",
            "[codecarbon INFO @ 04:09:19]   Platform system: Linux-6.6.105+-x86_64-with-glibc2.35\n",
            "[codecarbon INFO @ 04:09:19]   Python version: 3.12.12\n",
            "[codecarbon INFO @ 04:09:19]   CodeCarbon version: 3.1.1\n",
            "[codecarbon INFO @ 04:09:19]   Available RAM : 12.671 GB\n",
            "[codecarbon INFO @ 04:09:19]   CPU count: 2 thread(s) in 1 physical CPU(s)\n",
            "[codecarbon INFO @ 04:09:19]   CPU model: Intel(R) Xeon(R) CPU @ 2.00GHz\n",
            "[codecarbon INFO @ 04:09:19]   GPU count: 1\n",
            "[codecarbon INFO @ 04:09:19]   GPU model: 1 x Tesla T4\n",
            "[codecarbon INFO @ 04:09:19] Emissions data (if any) will be saved to file /content/vit_energy.csv\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Epoch 1/10\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "[codecarbon INFO @ 04:09:34] Energy consumed for RAM : 0.000042 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:09:34] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:09:34] Energy consumed for All CPU : 0.000177 kWh\n",
            "[codecarbon INFO @ 04:09:34] Energy consumed for all GPUs : 0.000237 kWh. Total GPU Power : 56.760753948341524 W\n",
            "[codecarbon INFO @ 04:09:34] 0.000455 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:09:49] Energy consumed for RAM : 0.000083 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:09:49] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:09:49] Energy consumed for All CPU : 0.000354 kWh\n",
            "[codecarbon INFO @ 04:09:49] Energy consumed for all GPUs : 0.000496 kWh. Total GPU Power : 62.20425076110348 W\n",
            "[codecarbon INFO @ 04:09:49] 0.000933 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:10:04] Energy consumed for RAM : 0.000125 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:10:04] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:10:04] Energy consumed for All CPU : 0.000531 kWh\n",
            "[codecarbon INFO @ 04:10:04] Energy consumed for all GPUs : 0.000756 kWh. Total GPU Power : 62.59744282295738 W\n",
            "[codecarbon INFO @ 04:10:04] 0.001412 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:10:19] Energy consumed for RAM : 0.000167 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:10:19] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:10:19] Energy consumed for All CPU : 0.000708 kWh\n",
            "[codecarbon INFO @ 04:10:19] Energy consumed for all GPUs : 0.001018 kWh. Total GPU Power : 62.82704451748344 W\n",
            "[codecarbon INFO @ 04:10:19] 0.001893 kWh of electricity and 0.000000 L of water were used since the beginning.\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Train Loss: 0.7621, Train Acc: 51.09%\n",
            "Val Loss: 0.7078, Val Acc: 44.90%\n",
            "*** model saved ***\n",
            "\n",
            "Epoch 2/10\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "[codecarbon INFO @ 04:10:34] Energy consumed for RAM : 0.000208 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:10:34] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:10:34] Energy consumed for All CPU : 0.000885 kWh\n",
            "[codecarbon INFO @ 04:10:34] Energy consumed for all GPUs : 0.001263 kWh. Total GPU Power : 58.76694543245732 W\n",
            "[codecarbon INFO @ 04:10:34] 0.002356 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:10:49] Energy consumed for RAM : 0.000250 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:10:49] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:10:49] Energy consumed for All CPU : 0.001062 kWh\n",
            "[codecarbon INFO @ 04:10:49] Energy consumed for all GPUs : 0.001515 kWh. Total GPU Power : 60.649696211074414 W\n",
            "[codecarbon INFO @ 04:10:49] 0.002827 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:11:04] Energy consumed for RAM : 0.000291 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:11:04] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:11:04] Energy consumed for All CPU : 0.001239 kWh\n",
            "[codecarbon INFO @ 04:11:04] Energy consumed for all GPUs : 0.001780 kWh. Total GPU Power : 63.611302871735305 W\n",
            "[codecarbon INFO @ 04:11:04] 0.003311 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:11:19] Energy consumed for RAM : 0.000333 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:11:19] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:11:19] Energy consumed for All CPU : 0.001416 kWh\n",
            "[codecarbon INFO @ 04:11:19] Energy consumed for all GPUs : 0.002043 kWh. Total GPU Power : 63.071806837173405 W\n",
            "[codecarbon INFO @ 04:11:19] 0.003792 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:11:19] 0.008455 g.CO2eq/s mean an estimation of 266.64707143031444 kg.CO2eq/year\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Train Loss: 0.7056, Train Acc: 52.92%\n",
            "Val Loss: 0.6881, Val Acc: 55.10%\n",
            "*** model saved ***\n",
            "\n",
            "Epoch 3/10\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "[codecarbon INFO @ 04:11:34] Energy consumed for RAM : 0.000375 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:11:34] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:11:34] Energy consumed for All CPU : 0.001593 kWh\n",
            "[codecarbon INFO @ 04:11:34] Energy consumed for all GPUs : 0.002278 kWh. Total GPU Power : 56.34711256167778 W\n",
            "[codecarbon INFO @ 04:11:34] 0.004245 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:11:49] Energy consumed for RAM : 0.000416 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:11:49] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:11:49] Energy consumed for All CPU : 0.001770 kWh\n",
            "[codecarbon INFO @ 04:11:49] Energy consumed for all GPUs : 0.002543 kWh. Total GPU Power : 63.753786940139726 W\n",
            "[codecarbon INFO @ 04:11:49] 0.004729 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:12:04] Energy consumed for RAM : 0.000458 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:12:04] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:12:04] Energy consumed for All CPU : 0.001947 kWh\n",
            "[codecarbon INFO @ 04:12:04] Energy consumed for all GPUs : 0.002808 kWh. Total GPU Power : 63.5815832820978 W\n",
            "[codecarbon INFO @ 04:12:04] 0.005213 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:12:19] Energy consumed for RAM : 0.000500 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:12:19] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:12:19] Energy consumed for All CPU : 0.002124 kWh\n",
            "[codecarbon INFO @ 04:12:19] Energy consumed for all GPUs : 0.003074 kWh. Total GPU Power : 63.83319897058115 W\n",
            "[codecarbon INFO @ 04:12:19] 0.005697 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:12:34] Energy consumed for RAM : 0.000541 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:12:34] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:12:34] Energy consumed for All CPU : 0.002301 kWh\n",
            "[codecarbon INFO @ 04:12:34] Energy consumed for all GPUs : 0.003332 kWh. Total GPU Power : 62.10312754735057 W\n",
            "[codecarbon INFO @ 04:12:34] 0.006174 kWh of electricity and 0.000000 L of water were used since the beginning.\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Train Loss: 0.7130, Train Acc: 52.41%\n",
            "Val Loss: 0.6890, Val Acc: 55.10%\n",
            "\n",
            "Epoch 4/10\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "[codecarbon INFO @ 04:12:49] Energy consumed for RAM : 0.000583 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:12:49] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:12:49] Energy consumed for All CPU : 0.002478 kWh\n",
            "[codecarbon INFO @ 04:12:49] Energy consumed for all GPUs : 0.003593 kWh. Total GPU Power : 62.64805316411665 W\n",
            "[codecarbon INFO @ 04:12:49] 0.006654 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:13:04] Energy consumed for RAM : 0.000625 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:13:04] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:13:04] Energy consumed for All CPU : 0.002655 kWh\n",
            "[codecarbon INFO @ 04:13:04] Energy consumed for all GPUs : 0.003866 kWh. Total GPU Power : 65.36033988835737 W\n",
            "[codecarbon INFO @ 04:13:04] 0.007145 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:13:19] Energy consumed for RAM : 0.000666 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:13:19] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:13:19] Energy consumed for All CPU : 0.002832 kWh\n",
            "[codecarbon INFO @ 04:13:19] Energy consumed for all GPUs : 0.004140 kWh. Total GPU Power : 65.89060210348042 W\n",
            "[codecarbon INFO @ 04:13:19] 0.007638 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:13:19] 0.008577 g.CO2eq/s mean an estimation of 270.48490739666977 kg.CO2eq/year\n",
            "[codecarbon INFO @ 04:13:34] Energy consumed for RAM : 0.000708 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:13:34] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:13:34] Energy consumed for All CPU : 0.003009 kWh\n",
            "[codecarbon INFO @ 04:13:34] Energy consumed for all GPUs : 0.004410 kWh. Total GPU Power : 64.90304443643478 W\n",
            "[codecarbon INFO @ 04:13:34] 0.008127 kWh of electricity and 0.000000 L of water were used since the beginning.\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Train Loss: 0.7024, Train Acc: 54.31%\n",
            "Val Loss: 0.6952, Val Acc: 45.92%\n",
            "\n",
            "Epoch 5/10\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "[codecarbon INFO @ 04:13:49] Energy consumed for RAM : 0.000749 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:13:49] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:13:49] Energy consumed for All CPU : 0.003186 kWh\n",
            "[codecarbon INFO @ 04:13:49] Energy consumed for all GPUs : 0.004670 kWh. Total GPU Power : 62.41185034798056 W\n",
            "[codecarbon INFO @ 04:13:49] 0.008605 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:14:04] Energy consumed for RAM : 0.000791 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:14:04] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:14:04] Energy consumed for All CPU : 0.003363 kWh\n",
            "[codecarbon INFO @ 04:14:04] Energy consumed for all GPUs : 0.004942 kWh. Total GPU Power : 65.14778923114454 W\n",
            "[codecarbon INFO @ 04:14:04] 0.009095 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:14:19] Energy consumed for RAM : 0.000833 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:14:19] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:14:19] Energy consumed for All CPU : 0.003540 kWh\n",
            "[codecarbon INFO @ 04:14:19] Energy consumed for all GPUs : 0.005210 kWh. Total GPU Power : 64.55886538906849 W\n",
            "[codecarbon INFO @ 04:14:19] 0.009583 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:14:34] Energy consumed for RAM : 0.000874 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:14:34] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:14:34] Energy consumed for All CPU : 0.003717 kWh\n",
            "[codecarbon INFO @ 04:14:34] Energy consumed for all GPUs : 0.005481 kWh. Total GPU Power : 64.8553893911788 W\n",
            "[codecarbon INFO @ 04:14:34] 0.010071 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:14:49] Energy consumed for RAM : 0.000916 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:14:49] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:14:49] Energy consumed for All CPU : 0.003894 kWh\n",
            "[codecarbon INFO @ 04:14:49] Energy consumed for all GPUs : 0.005748 kWh. Total GPU Power : 64.17381830391052 W\n",
            "[codecarbon INFO @ 04:14:49] 0.010557 kWh of electricity and 0.000000 L of water were used since the beginning.\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Train Loss: 0.7006, Train Acc: 54.60%\n",
            "Val Loss: 0.7012, Val Acc: 55.10%\n",
            "\n",
            "Epoch 6/10\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "[codecarbon INFO @ 04:15:04] Energy consumed for RAM : 0.000958 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:15:04] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:15:04] Energy consumed for All CPU : 0.004070 kWh\n",
            "[codecarbon INFO @ 04:15:04] Energy consumed for all GPUs : 0.006014 kWh. Total GPU Power : 64.00008603155383 W\n",
            "[codecarbon INFO @ 04:15:04] 0.011043 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:15:19] Energy consumed for RAM : 0.000999 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:15:19] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:15:19] Energy consumed for All CPU : 0.004247 kWh\n",
            "[codecarbon INFO @ 04:15:19] Energy consumed for all GPUs : 0.006283 kWh. Total GPU Power : 64.58985096519851 W\n",
            "[codecarbon INFO @ 04:15:19] 0.011530 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:15:19] 0.008680 g.CO2eq/s mean an estimation of 273.7302466880458 kg.CO2eq/year\n",
            "[codecarbon INFO @ 04:15:34] Energy consumed for RAM : 0.001041 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:15:34] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:15:34] Energy consumed for All CPU : 0.004424 kWh\n",
            "[codecarbon INFO @ 04:15:34] Energy consumed for all GPUs : 0.006551 kWh. Total GPU Power : 64.17441618577607 W\n",
            "[codecarbon INFO @ 04:15:34] 0.012016 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:15:49] Energy consumed for RAM : 0.001083 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:15:49] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:15:49] Energy consumed for All CPU : 0.004601 kWh\n",
            "[codecarbon INFO @ 04:15:49] Energy consumed for all GPUs : 0.006819 kWh. Total GPU Power : 64.50622752366554 W\n",
            "[codecarbon INFO @ 04:15:49] 0.012503 kWh of electricity and 0.000000 L of water were used since the beginning.\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Train Loss: 0.6636, Train Acc: 58.98%\n",
            "Val Loss: 0.7444, Val Acc: 46.60%\n",
            "\n",
            "Epoch 7/10\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "[codecarbon INFO @ 04:16:04] Energy consumed for RAM : 0.001124 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:16:04] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:16:04] Energy consumed for All CPU : 0.004778 kWh\n",
            "[codecarbon INFO @ 04:16:04] Energy consumed for all GPUs : 0.007078 kWh. Total GPU Power : 62.087452381760876 W\n",
            "[codecarbon INFO @ 04:16:04] 0.012980 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:16:19] Energy consumed for RAM : 0.001166 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:16:19] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:16:19] Energy consumed for All CPU : 0.004955 kWh\n",
            "[codecarbon INFO @ 04:16:19] Energy consumed for all GPUs : 0.007349 kWh. Total GPU Power : 65.06078006494349 W\n",
            "[codecarbon INFO @ 04:16:19] 0.013470 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:16:34] Energy consumed for RAM : 0.001207 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:16:34] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:16:34] Energy consumed for All CPU : 0.005132 kWh\n",
            "[codecarbon INFO @ 04:16:34] Energy consumed for all GPUs : 0.007619 kWh. Total GPU Power : 64.96897990921379 W\n",
            "[codecarbon INFO @ 04:16:34] 0.013959 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:16:49] Energy consumed for RAM : 0.001249 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:16:49] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:16:49] Energy consumed for All CPU : 0.005309 kWh\n",
            "[codecarbon INFO @ 04:16:49] Energy consumed for all GPUs : 0.007892 kWh. Total GPU Power : 65.39049614196044 W\n",
            "[codecarbon INFO @ 04:16:49] 0.014450 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:17:04] Energy consumed for RAM : 0.001291 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:17:04] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:17:04] Energy consumed for All CPU : 0.005486 kWh\n",
            "[codecarbon INFO @ 04:17:04] Energy consumed for all GPUs : 0.008157 kWh. Total GPU Power : 63.826700769139514 W\n",
            "[codecarbon INFO @ 04:17:04] 0.014934 kWh of electricity and 0.000000 L of water were used since the beginning.\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Train Loss: 0.6435, Train Acc: 63.50%\n",
            "Val Loss: 0.6838, Val Acc: 59.52%\n",
            "*** model saved ***\n",
            "\n",
            "Epoch 8/10\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "[codecarbon INFO @ 04:17:19] Energy consumed for RAM : 0.001332 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:17:19] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:17:19] Energy consumed for All CPU : 0.005663 kWh\n",
            "[codecarbon INFO @ 04:17:19] Energy consumed for all GPUs : 0.008370 kWh. Total GPU Power : 51.11239537325016 W\n",
            "[codecarbon INFO @ 04:17:19] 0.015366 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:17:19] 0.008554 g.CO2eq/s mean an estimation of 269.77273655947084 kg.CO2eq/year\n",
            "[codecarbon INFO @ 04:17:34] Energy consumed for RAM : 0.001374 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:17:34] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:17:34] Energy consumed for All CPU : 0.005840 kWh\n",
            "[codecarbon INFO @ 04:17:34] Energy consumed for all GPUs : 0.008641 kWh. Total GPU Power : 65.04915174442151 W\n",
            "[codecarbon INFO @ 04:17:34] 0.015855 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:17:49] Energy consumed for RAM : 0.001416 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:17:49] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:17:49] Energy consumed for All CPU : 0.006017 kWh\n",
            "[codecarbon INFO @ 04:17:49] Energy consumed for all GPUs : 0.008915 kWh. Total GPU Power : 65.82194551110162 W\n",
            "[codecarbon INFO @ 04:17:49] 0.016348 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:18:04] Energy consumed for RAM : 0.001457 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:18:04] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:18:04] Energy consumed for All CPU : 0.006194 kWh\n",
            "[codecarbon INFO @ 04:18:04] Energy consumed for all GPUs : 0.009188 kWh. Total GPU Power : 65.46473818353843 W\n",
            "[codecarbon INFO @ 04:18:04] 0.016839 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:18:19] Energy consumed for RAM : 0.001499 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:18:19] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:18:19] Energy consumed for All CPU : 0.006371 kWh\n",
            "[codecarbon INFO @ 04:18:19] Energy consumed for all GPUs : 0.009451 kWh. Total GPU Power : 63.127806549184356 W\n",
            "[codecarbon INFO @ 04:18:19] 0.017321 kWh of electricity and 0.000000 L of water were used since the beginning.\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Train Loss: 0.5789, Train Acc: 70.00%\n",
            "Val Loss: 0.6545, Val Acc: 61.22%\n",
            "*** model saved ***\n",
            "\n",
            "Epoch 9/10\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "[codecarbon INFO @ 04:18:34] Energy consumed for RAM : 0.001540 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:18:34] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:18:34] Energy consumed for All CPU : 0.006548 kWh\n",
            "[codecarbon INFO @ 04:18:34] Energy consumed for all GPUs : 0.009665 kWh. Total GPU Power : 51.39636795732213 W\n",
            "[codecarbon INFO @ 04:18:34] 0.017753 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:18:49] Energy consumed for RAM : 0.001582 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:18:49] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:18:49] Energy consumed for All CPU : 0.006725 kWh\n",
            "[codecarbon INFO @ 04:18:49] Energy consumed for all GPUs : 0.009934 kWh. Total GPU Power : 64.71730570630503 W\n",
            "[codecarbon INFO @ 04:18:49] 0.018241 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:19:04] Energy consumed for RAM : 0.001624 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:19:04] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:19:04] Energy consumed for All CPU : 0.006902 kWh\n",
            "[codecarbon INFO @ 04:19:04] Energy consumed for all GPUs : 0.010204 kWh. Total GPU Power : 64.74091720091154 W\n",
            "[codecarbon INFO @ 04:19:04] 0.018730 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:19:19] Energy consumed for RAM : 0.001665 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:19:19] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:19:19] Energy consumed for All CPU : 0.007079 kWh\n",
            "[codecarbon INFO @ 04:19:19] Energy consumed for all GPUs : 0.010471 kWh. Total GPU Power : 64.23636148521847 W\n",
            "[codecarbon INFO @ 04:19:19] 0.019216 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:19:19] 0.008585 g.CO2eq/s mean an estimation of 270.7421044796 kg.CO2eq/year\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Train Loss: 0.4680, Train Acc: 78.03%\n",
            "Val Loss: 0.6501, Val Acc: 62.59%\n",
            "*** model saved ***\n",
            "\n",
            "Epoch 10/10\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "[codecarbon INFO @ 04:19:34] Energy consumed for RAM : 0.001707 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:19:34] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:19:34] Energy consumed for All CPU : 0.007256 kWh\n",
            "[codecarbon INFO @ 04:19:34] Energy consumed for all GPUs : 0.010724 kWh. Total GPU Power : 60.685304847608705 W\n",
            "[codecarbon INFO @ 04:19:34] 0.019687 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:19:49] Energy consumed for RAM : 0.001749 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:19:49] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:19:49] Energy consumed for All CPU : 0.007433 kWh\n",
            "[codecarbon INFO @ 04:19:49] Energy consumed for all GPUs : 0.010994 kWh. Total GPU Power : 64.74615235317236 W\n",
            "[codecarbon INFO @ 04:19:49] 0.020175 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:20:04] Energy consumed for RAM : 0.001790 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:20:04] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:20:04] Energy consumed for All CPU : 0.007610 kWh\n",
            "[codecarbon INFO @ 04:20:04] Energy consumed for all GPUs : 0.011266 kWh. Total GPU Power : 65.3836466174104 W\n",
            "[codecarbon INFO @ 04:20:04] 0.020666 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:20:19] Energy consumed for RAM : 0.001832 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:20:19] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:20:19] Energy consumed for All CPU : 0.007786 kWh\n",
            "[codecarbon INFO @ 04:20:19] Energy consumed for all GPUs : 0.011539 kWh. Total GPU Power : 65.63267485657214 W\n",
            "[codecarbon INFO @ 04:20:19] 0.021158 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:20:34] Energy consumed for RAM : 0.001874 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:20:34] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:20:34] Energy consumed for All CPU : 0.007963 kWh\n",
            "[codecarbon INFO @ 04:20:34] Energy consumed for all GPUs : 0.011815 kWh. Total GPU Power : 66.24157134674184 W\n",
            "[codecarbon INFO @ 04:20:34] 0.021652 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:20:40] Energy consumed for RAM : 0.001890 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:20:40] Delta energy consumed for CPU with constant : 0.000068 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:20:40] Energy consumed for All CPU : 0.008032 kWh\n",
            "[codecarbon INFO @ 04:20:40] Energy consumed for all GPUs : 0.011910 kWh. Total GPU Power : 59.16601658961181 W\n",
            "[codecarbon INFO @ 04:20:40] 0.021832 kWh of electricity and 0.000000 L of water were used since the beginning.\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Train Loss: 0.3753, Train Acc: 84.16%\n",
            "Val Loss: 0.7775, Val Acc: 60.20%\n",
            "\n",
            " ViT Training Complete!\n",
            " Best Accuracy: 62.59%\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "\n",
        "print(\"TRAINING SWIN TRANSFORMER\")\n",
        "\n",
        "\n",
        "swin_tracker = EmissionsTracker(output_dir=\"/content\", output_file=\"swin_energy.csv\")\n",
        "swin_tracker.start()\n",
        "\n",
        "swin_history = {'train_loss': [], 'train_acc': [], 'val_loss': [], 'val_acc': []}\n",
        "best_swin_acc = 0\n",
        "\n",
        "for epoch in range(num_epochs):\n",
        "    print(f\"\\nEpoch {epoch+1}/{num_epochs}\")\n",
        "\n",
        "    train_loss, train_acc = train_one_epoch(swin_model, train_loader, criterion, swin_optimizer, device)\n",
        "    val_loss, val_acc, _, _ = evaluate(swin_model, val_loader, criterion, device)\n",
        "\n",
        "    swin_history['train_loss'].append(train_loss)\n",
        "    swin_history['train_acc'].append(train_acc)\n",
        "    swin_history['val_loss'].append(val_loss)\n",
        "    swin_history['val_acc'].append(val_acc)\n",
        "\n",
        "    print(f\"Train Loss: {train_loss:.4f}, Train Acc: {train_acc:.2f}%\")\n",
        "    print(f\"Val Loss: {val_loss:.4f}, Val Acc: {val_acc:.2f}%\")\n",
        "\n",
        "    if val_acc > best_swin_acc:\n",
        "        best_swin_acc = val_acc\n",
        "        torch.save(swin_model.state_dict(), '/content/best_swin.pth')\n",
        "        print(\"*** Best model saved ***\")\n",
        "\n",
        "swin_energy = swin_tracker.stop()\n",
        "print(f\"\\n Swin Training Complete!\")\n",
        "print(f\" Best Accuracy: {best_swin_acc:.2f}%\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "QLCVU-Q6iXeA",
        "outputId": "aa0ab2d0-acb3-48d6-f137-ae95c42f0e8c"
      },
      "execution_count": 19,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "[codecarbon WARNING @ 04:21:14] Multiple instances of codecarbon are allowed to run at the same time.\n",
            "[codecarbon INFO @ 04:21:14] [setup] RAM Tracking...\n",
            "[codecarbon INFO @ 04:21:14] [setup] CPU Tracking...\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "TRAINING SWIN TRANSFORMER\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "[codecarbon WARNING @ 04:21:15] We saw that you have a Intel(R) Xeon(R) CPU @ 2.00GHz but we don't know it. Please contact us.\n",
            "[codecarbon WARNING @ 04:21:15] No CPU tracking mode found. Falling back on estimation based on TDP for CPU. \n",
            " Linux OS detected: Please ensure RAPL files exist, and are readable, at /sys/class/powercap/intel-rapl/subsystem to measure CPU\n",
            "\n",
            "[codecarbon INFO @ 04:21:15] CPU Model on constant consumption mode: Intel(R) Xeon(R) CPU @ 2.00GHz\n",
            "[codecarbon WARNING @ 04:21:15] No CPU tracking mode found. Falling back on CPU constant mode.\n",
            "[codecarbon INFO @ 04:21:15] [setup] GPU Tracking...\n",
            "[codecarbon INFO @ 04:21:15] Tracking Nvidia GPU via pynvml\n",
            "[codecarbon INFO @ 04:21:15] The below tracking methods have been set up:\n",
            "                RAM Tracking Method: RAM power estimation model\n",
            "                CPU Tracking Method: global constant\n",
            "                GPU Tracking Method: pynvml\n",
            "            \n",
            "[codecarbon INFO @ 04:21:15] >>> Tracker's metadata:\n",
            "[codecarbon INFO @ 04:21:15]   Platform system: Linux-6.6.105+-x86_64-with-glibc2.35\n",
            "[codecarbon INFO @ 04:21:15]   Python version: 3.12.12\n",
            "[codecarbon INFO @ 04:21:15]   CodeCarbon version: 3.1.1\n",
            "[codecarbon INFO @ 04:21:15]   Available RAM : 12.671 GB\n",
            "[codecarbon INFO @ 04:21:15]   CPU count: 2 thread(s) in 1 physical CPU(s)\n",
            "[codecarbon INFO @ 04:21:15]   CPU model: Intel(R) Xeon(R) CPU @ 2.00GHz\n",
            "[codecarbon INFO @ 04:21:15]   GPU count: 1\n",
            "[codecarbon INFO @ 04:21:15]   GPU model: 1 x Tesla T4\n",
            "[codecarbon INFO @ 04:21:16] Emissions data (if any) will be saved to file /content/swin_energy.csv\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "Epoch 1/10\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "[codecarbon INFO @ 04:21:31] Energy consumed for RAM : 0.000042 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:21:31] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:21:31] Energy consumed for All CPU : 0.000177 kWh\n",
            "[codecarbon INFO @ 04:21:31] Energy consumed for all GPUs : 0.000266 kWh. Total GPU Power : 63.902430875188685 W\n",
            "[codecarbon INFO @ 04:21:31] 0.000485 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:21:46] Energy consumed for RAM : 0.000083 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:21:46] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:21:46] Energy consumed for All CPU : 0.000354 kWh\n",
            "[codecarbon INFO @ 04:21:46] Energy consumed for all GPUs : 0.000538 kWh. Total GPU Power : 65.18105904208836 W\n",
            "[codecarbon INFO @ 04:21:46] 0.000975 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:22:01] Energy consumed for RAM : 0.000125 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:22:01] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:22:01] Energy consumed for All CPU : 0.000531 kWh\n",
            "[codecarbon INFO @ 04:22:01] Energy consumed for all GPUs : 0.000808 kWh. Total GPU Power : 64.9550821275136 W\n",
            "[codecarbon INFO @ 04:22:01] 0.001464 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:22:16] Energy consumed for RAM : 0.000167 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:22:16] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:22:16] Energy consumed for All CPU : 0.000708 kWh\n",
            "[codecarbon INFO @ 04:22:16] Energy consumed for all GPUs : 0.001077 kWh. Total GPU Power : 64.54503826262861 W\n",
            "[codecarbon INFO @ 04:22:16] 0.001951 kWh of electricity and 0.000000 L of water were used since the beginning.\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Train Loss: 0.6991, Train Acc: 54.82%\n",
            "Val Loss: 0.6450, Val Acc: 58.84%\n",
            "*** Best model saved ***\n",
            "\n",
            "Epoch 2/10\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "[codecarbon INFO @ 04:22:31] Energy consumed for RAM : 0.000208 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:22:31] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:22:31] Energy consumed for All CPU : 0.000885 kWh\n",
            "[codecarbon INFO @ 04:22:31] Energy consumed for all GPUs : 0.001279 kWh. Total GPU Power : 48.45416919478667 W\n",
            "[codecarbon INFO @ 04:22:31] 0.002372 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:22:46] Energy consumed for RAM : 0.000250 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:22:46] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:22:46] Energy consumed for All CPU : 0.001062 kWh\n",
            "[codecarbon INFO @ 04:22:46] Energy consumed for all GPUs : 0.001542 kWh. Total GPU Power : 63.314468074241226 W\n",
            "[codecarbon INFO @ 04:22:46] 0.002854 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:23:01] Energy consumed for RAM : 0.000291 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:23:01] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:23:01] Energy consumed for All CPU : 0.001239 kWh\n",
            "[codecarbon INFO @ 04:23:01] Energy consumed for all GPUs : 0.001811 kWh. Total GPU Power : 64.56029662905601 W\n",
            "[codecarbon INFO @ 04:23:01] 0.003341 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:23:16] Energy consumed for RAM : 0.000333 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:23:16] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:23:16] Energy consumed for All CPU : 0.001416 kWh\n",
            "[codecarbon INFO @ 04:23:16] Energy consumed for all GPUs : 0.002083 kWh. Total GPU Power : 65.18876283787293 W\n",
            "[codecarbon INFO @ 04:23:16] 0.003832 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:23:16] 0.008543 g.CO2eq/s mean an estimation of 269.40353988415666 kg.CO2eq/year\n",
            "[codecarbon INFO @ 04:23:31] Energy consumed for RAM : 0.000375 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:23:31] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:23:31] Energy consumed for All CPU : 0.001593 kWh\n",
            "[codecarbon INFO @ 04:23:31] Energy consumed for all GPUs : 0.002350 kWh. Total GPU Power : 64.25416244668983 W\n",
            "[codecarbon INFO @ 04:23:31] 0.004317 kWh of electricity and 0.000000 L of water were used since the beginning.\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Train Loss: 0.6769, Train Acc: 57.88%\n",
            "Val Loss: 0.6740, Val Acc: 55.10%\n",
            "\n",
            "Epoch 3/10\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "[codecarbon INFO @ 04:23:46] Energy consumed for RAM : 0.000416 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:23:46] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:23:46] Energy consumed for All CPU : 0.001769 kWh\n",
            "[codecarbon INFO @ 04:23:46] Energy consumed for all GPUs : 0.002613 kWh. Total GPU Power : 63.0120000423459 W\n",
            "[codecarbon INFO @ 04:23:46] 0.004798 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:24:01] Energy consumed for RAM : 0.000458 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:24:01] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:24:01] Energy consumed for All CPU : 0.001947 kWh\n",
            "[codecarbon INFO @ 04:24:01] Energy consumed for all GPUs : 0.002885 kWh. Total GPU Power : 65.48462540939711 W\n",
            "[codecarbon INFO @ 04:24:01] 0.005290 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:24:16] Energy consumed for RAM : 0.000500 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:24:16] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:24:16] Energy consumed for All CPU : 0.002123 kWh\n",
            "[codecarbon INFO @ 04:24:16] Energy consumed for all GPUs : 0.003162 kWh. Total GPU Power : 66.43324865686591 W\n",
            "[codecarbon INFO @ 04:24:16] 0.005785 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:24:31] Energy consumed for RAM : 0.000541 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:24:31] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:24:31] Energy consumed for All CPU : 0.002300 kWh\n",
            "[codecarbon INFO @ 04:24:31] Energy consumed for all GPUs : 0.003436 kWh. Total GPU Power : 65.84413499125921 W\n",
            "[codecarbon INFO @ 04:24:31] 0.006278 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:24:46] Energy consumed for RAM : 0.000583 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:24:46] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:24:46] Energy consumed for All CPU : 0.002477 kWh\n",
            "[codecarbon INFO @ 04:24:46] Energy consumed for all GPUs : 0.003703 kWh. Total GPU Power : 63.99024069967319 W\n",
            "[codecarbon INFO @ 04:24:46] 0.006763 kWh of electricity and 0.000000 L of water were used since the beginning.\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Train Loss: 0.6297, Train Acc: 65.69%\n",
            "Val Loss: 0.6126, Val Acc: 67.01%\n",
            "*** Best model saved ***\n",
            "\n",
            "Epoch 4/10\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "[codecarbon INFO @ 04:25:01] Energy consumed for RAM : 0.000624 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:25:01] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:25:01] Energy consumed for All CPU : 0.002654 kWh\n",
            "[codecarbon INFO @ 04:25:01] Energy consumed for all GPUs : 0.003912 kWh. Total GPU Power : 50.1876908419939 W\n",
            "[codecarbon INFO @ 04:25:01] 0.007191 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:25:16] Energy consumed for RAM : 0.000666 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:25:16] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:25:16] Energy consumed for All CPU : 0.002831 kWh\n",
            "[codecarbon INFO @ 04:25:16] Energy consumed for all GPUs : 0.004183 kWh. Total GPU Power : 65.06583164676435 W\n",
            "[codecarbon INFO @ 04:25:16] 0.007680 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:25:16] 0.008584 g.CO2eq/s mean an estimation of 270.6965269837481 kg.CO2eq/year\n",
            "[codecarbon INFO @ 04:25:31] Energy consumed for RAM : 0.000708 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:25:31] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:25:31] Energy consumed for All CPU : 0.003008 kWh\n",
            "[codecarbon INFO @ 04:25:31] Energy consumed for all GPUs : 0.004455 kWh. Total GPU Power : 65.34412666856541 W\n",
            "[codecarbon INFO @ 04:25:31] 0.008171 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:25:46] Energy consumed for RAM : 0.000749 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:25:46] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:25:46] Energy consumed for All CPU : 0.003185 kWh\n",
            "[codecarbon INFO @ 04:25:46] Energy consumed for all GPUs : 0.004728 kWh. Total GPU Power : 65.55404482688651 W\n",
            "[codecarbon INFO @ 04:25:46] 0.008663 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:26:01] Energy consumed for RAM : 0.000791 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:26:01] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:26:01] Energy consumed for All CPU : 0.003362 kWh\n",
            "[codecarbon INFO @ 04:26:01] Energy consumed for all GPUs : 0.004997 kWh. Total GPU Power : 64.69237145184161 W\n",
            "[codecarbon INFO @ 04:26:01] 0.009151 kWh of electricity and 0.000000 L of water were used since the beginning.\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Train Loss: 0.5780, Train Acc: 70.44%\n",
            "Val Loss: 0.5639, Val Acc: 72.79%\n",
            "*** Best model saved ***\n",
            "\n",
            "Epoch 5/10\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "[codecarbon INFO @ 04:26:16] Energy consumed for RAM : 0.000833 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:26:16] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:26:16] Energy consumed for All CPU : 0.003539 kWh\n",
            "[codecarbon INFO @ 04:26:16] Energy consumed for all GPUs : 0.005207 kWh. Total GPU Power : 50.26513438107104 W\n",
            "[codecarbon INFO @ 04:26:16] 0.009579 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:26:31] Energy consumed for RAM : 0.000874 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:26:31] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:26:31] Energy consumed for All CPU : 0.003716 kWh\n",
            "[codecarbon INFO @ 04:26:31] Energy consumed for all GPUs : 0.005475 kWh. Total GPU Power : 64.46741776751388 W\n",
            "[codecarbon INFO @ 04:26:31] 0.010066 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:26:46] Energy consumed for RAM : 0.000916 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:26:46] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:26:46] Energy consumed for All CPU : 0.003893 kWh\n",
            "[codecarbon INFO @ 04:26:46] Energy consumed for all GPUs : 0.005745 kWh. Total GPU Power : 64.74397288042935 W\n",
            "[codecarbon INFO @ 04:26:46] 0.010554 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:27:01] Energy consumed for RAM : 0.000958 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:27:01] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:27:01] Energy consumed for All CPU : 0.004070 kWh\n",
            "[codecarbon INFO @ 04:27:01] Energy consumed for all GPUs : 0.006017 kWh. Total GPU Power : 65.41217782751312 W\n",
            "[codecarbon INFO @ 04:27:01] 0.011045 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:27:16] Energy consumed for RAM : 0.000999 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:27:16] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:27:16] Energy consumed for All CPU : 0.004247 kWh\n",
            "[codecarbon INFO @ 04:27:16] Energy consumed for all GPUs : 0.006285 kWh. Total GPU Power : 64.39073938555765 W\n",
            "[codecarbon INFO @ 04:27:16] 0.011532 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:27:16] 0.008589 g.CO2eq/s mean an estimation of 270.87270528388274 kg.CO2eq/year\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Train Loss: 0.4317, Train Acc: 80.22%\n",
            "Val Loss: 0.4864, Val Acc: 78.91%\n",
            "*** Best model saved ***\n",
            "\n",
            "Epoch 6/10\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "[codecarbon INFO @ 04:27:31] Energy consumed for RAM : 0.001041 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:27:31] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:27:31] Energy consumed for All CPU : 0.004424 kWh\n",
            "[codecarbon INFO @ 04:27:31] Energy consumed for all GPUs : 0.006491 kWh. Total GPU Power : 49.47083865831635 W\n",
            "[codecarbon INFO @ 04:27:31] 0.011956 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:27:46] Energy consumed for RAM : 0.001082 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:27:46] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:27:46] Energy consumed for All CPU : 0.004601 kWh\n",
            "[codecarbon INFO @ 04:27:46] Energy consumed for all GPUs : 0.006766 kWh. Total GPU Power : 66.01606641746889 W\n",
            "[codecarbon INFO @ 04:27:46] 0.012450 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:28:01] Energy consumed for RAM : 0.001124 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:28:01] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:28:01] Energy consumed for All CPU : 0.004778 kWh\n",
            "[codecarbon INFO @ 04:28:01] Energy consumed for all GPUs : 0.007041 kWh. Total GPU Power : 65.97979550847096 W\n",
            "[codecarbon INFO @ 04:28:01] 0.012943 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:28:16] Energy consumed for RAM : 0.001166 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:28:16] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:28:16] Energy consumed for All CPU : 0.004955 kWh\n",
            "[codecarbon INFO @ 04:28:16] Energy consumed for all GPUs : 0.007315 kWh. Total GPU Power : 65.64863348214897 W\n",
            "[codecarbon INFO @ 04:28:16] 0.013435 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:28:31] Energy consumed for RAM : 0.001207 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:28:31] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:28:31] Energy consumed for All CPU : 0.005132 kWh\n",
            "[codecarbon INFO @ 04:28:31] Energy consumed for all GPUs : 0.007587 kWh. Total GPU Power : 65.4708840819727 W\n",
            "[codecarbon INFO @ 04:28:31] 0.013926 kWh of electricity and 0.000000 L of water were used since the beginning.\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Train Loss: 0.3182, Train Acc: 87.66%\n",
            "Val Loss: 0.5355, Val Acc: 69.39%\n",
            "\n",
            "Epoch 7/10\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "[codecarbon INFO @ 04:28:46] Energy consumed for RAM : 0.001249 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:28:46] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:28:46] Energy consumed for All CPU : 0.005309 kWh\n",
            "[codecarbon INFO @ 04:28:46] Energy consumed for all GPUs : 0.007847 kWh. Total GPU Power : 62.498479381874446 W\n",
            "[codecarbon INFO @ 04:28:46] 0.014405 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:29:01] Energy consumed for RAM : 0.001291 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:29:01] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:29:01] Energy consumed for All CPU : 0.005486 kWh\n",
            "[codecarbon INFO @ 04:29:01] Energy consumed for all GPUs : 0.008120 kWh. Total GPU Power : 65.40063927051776 W\n",
            "[codecarbon INFO @ 04:29:01] 0.014896 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:29:16] Energy consumed for RAM : 0.001332 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:29:16] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:29:16] Energy consumed for All CPU : 0.005663 kWh\n",
            "[codecarbon INFO @ 04:29:16] Energy consumed for all GPUs : 0.008393 kWh. Total GPU Power : 65.66676745370442 W\n",
            "[codecarbon INFO @ 04:29:16] 0.015389 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:29:16] 0.008602 g.CO2eq/s mean an estimation of 271.26759250422947 kg.CO2eq/year\n",
            "[codecarbon INFO @ 04:29:31] Energy consumed for RAM : 0.001374 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:29:31] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:29:31] Energy consumed for All CPU : 0.005840 kWh\n",
            "[codecarbon INFO @ 04:29:31] Energy consumed for all GPUs : 0.008666 kWh. Total GPU Power : 65.42725589565526 W\n",
            "[codecarbon INFO @ 04:29:31] 0.015880 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:29:46] Energy consumed for RAM : 0.001416 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:29:46] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:29:46] Energy consumed for All CPU : 0.006017 kWh\n",
            "[codecarbon INFO @ 04:29:46] Energy consumed for all GPUs : 0.008928 kWh. Total GPU Power : 62.93351476485319 W\n",
            "[codecarbon INFO @ 04:29:46] 0.016361 kWh of electricity and 0.000000 L of water were used since the beginning.\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Train Loss: 0.1753, Train Acc: 93.94%\n",
            "Val Loss: 0.7225, Val Acc: 76.53%\n",
            "\n",
            "Epoch 8/10\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "[codecarbon INFO @ 04:30:01] Energy consumed for RAM : 0.001457 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:30:01] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:30:01] Energy consumed for All CPU : 0.006194 kWh\n",
            "[codecarbon INFO @ 04:30:01] Energy consumed for all GPUs : 0.009196 kWh. Total GPU Power : 64.29938819959199 W\n",
            "[codecarbon INFO @ 04:30:01] 0.016847 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:30:16] Energy consumed for RAM : 0.001499 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:30:16] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:30:16] Energy consumed for All CPU : 0.006371 kWh\n",
            "[codecarbon INFO @ 04:30:16] Energy consumed for all GPUs : 0.009468 kWh. Total GPU Power : 65.29290843484225 W\n",
            "[codecarbon INFO @ 04:30:16] 0.017337 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:30:31] Energy consumed for RAM : 0.001540 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:30:31] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:30:31] Energy consumed for All CPU : 0.006548 kWh\n",
            "[codecarbon INFO @ 04:30:31] Energy consumed for all GPUs : 0.009736 kWh. Total GPU Power : 64.43173233847516 W\n",
            "[codecarbon INFO @ 04:30:31] 0.017825 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:30:46] Energy consumed for RAM : 0.001582 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:30:46] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:30:46] Energy consumed for All CPU : 0.006725 kWh\n",
            "[codecarbon INFO @ 04:30:46] Energy consumed for all GPUs : 0.010008 kWh. Total GPU Power : 65.3344740765506 W\n",
            "[codecarbon INFO @ 04:30:46] 0.018315 kWh of electricity and 0.000000 L of water were used since the beginning.\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Train Loss: 0.0924, Train Acc: 96.64%\n",
            "Val Loss: 0.5213, Val Acc: 82.99%\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "[codecarbon INFO @ 04:31:01] Energy consumed for RAM : 0.001624 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:31:01] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:31:01] Energy consumed for All CPU : 0.006902 kWh\n",
            "[codecarbon INFO @ 04:31:01] Energy consumed for all GPUs : 0.010238 kWh. Total GPU Power : 55.33420778471273 W\n",
            "[codecarbon INFO @ 04:31:01] 0.018764 kWh of electricity and 0.000000 L of water were used since the beginning.\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "*** Best model saved ***\n",
            "\n",
            "Epoch 9/10\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "[codecarbon INFO @ 04:31:16] Energy consumed for RAM : 0.001665 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:31:16] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:31:16] Energy consumed for All CPU : 0.007079 kWh\n",
            "[codecarbon INFO @ 04:31:16] Energy consumed for all GPUs : 0.010493 kWh. Total GPU Power : 61.0333657553713 W\n",
            "[codecarbon INFO @ 04:31:16] 0.019237 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:31:16] 0.008581 g.CO2eq/s mean an estimation of 270.62145102185946 kg.CO2eq/year\n",
            "[codecarbon INFO @ 04:31:31] Energy consumed for RAM : 0.001707 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:31:31] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:31:31] Energy consumed for All CPU : 0.007256 kWh\n",
            "[codecarbon INFO @ 04:31:31] Energy consumed for all GPUs : 0.010768 kWh. Total GPU Power : 65.98655617329298 W\n",
            "[codecarbon INFO @ 04:31:31] 0.019730 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:31:46] Energy consumed for RAM : 0.001749 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:31:46] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:31:46] Energy consumed for All CPU : 0.007432 kWh\n",
            "[codecarbon INFO @ 04:31:46] Energy consumed for all GPUs : 0.011041 kWh. Total GPU Power : 65.60111328760797 W\n",
            "[codecarbon INFO @ 04:31:46] 0.020222 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:32:01] Energy consumed for RAM : 0.001790 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:32:01] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:32:01] Energy consumed for All CPU : 0.007609 kWh\n",
            "[codecarbon INFO @ 04:32:01] Energy consumed for all GPUs : 0.011315 kWh. Total GPU Power : 65.97484317430599 W\n",
            "[codecarbon INFO @ 04:32:01] 0.020715 kWh of electricity and 0.000000 L of water were used since the beginning.\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Train Loss: 0.0525, Train Acc: 98.25%\n",
            "Val Loss: 0.6680, Val Acc: 81.97%\n",
            "\n",
            "Epoch 10/10\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "[codecarbon INFO @ 04:32:16] Energy consumed for RAM : 0.001832 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:32:16] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:32:16] Energy consumed for All CPU : 0.007786 kWh\n",
            "[codecarbon INFO @ 04:32:16] Energy consumed for all GPUs : 0.011575 kWh. Total GPU Power : 62.22985023391727 W\n",
            "[codecarbon INFO @ 04:32:16] 0.021193 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:32:31] Energy consumed for RAM : 0.001874 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:32:31] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:32:31] Energy consumed for All CPU : 0.007963 kWh\n",
            "[codecarbon INFO @ 04:32:31] Energy consumed for all GPUs : 0.011847 kWh. Total GPU Power : 65.3381785387209 W\n",
            "[codecarbon INFO @ 04:32:31] 0.021684 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:32:46] Energy consumed for RAM : 0.001915 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:32:46] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:32:46] Energy consumed for All CPU : 0.008140 kWh\n",
            "[codecarbon INFO @ 04:32:46] Energy consumed for all GPUs : 0.012119 kWh. Total GPU Power : 65.51331481386967 W\n",
            "[codecarbon INFO @ 04:32:46] 0.022175 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:33:01] Energy consumed for RAM : 0.001957 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:33:01] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:33:01] Energy consumed for All CPU : 0.008317 kWh\n",
            "[codecarbon INFO @ 04:33:01] Energy consumed for all GPUs : 0.012394 kWh. Total GPU Power : 65.84168797575433 W\n",
            "[codecarbon INFO @ 04:33:01] 0.022668 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:33:16] Energy consumed for RAM : 0.001998 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:33:16] Delta energy consumed for CPU with constant : 0.000177 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:33:16] Energy consumed for All CPU : 0.008494 kWh\n",
            "[codecarbon INFO @ 04:33:16] Energy consumed for all GPUs : 0.012667 kWh. Total GPU Power : 65.67292038343486 W\n",
            "[codecarbon INFO @ 04:33:16] 0.023160 kWh of electricity and 0.000000 L of water were used since the beginning.\n",
            "[codecarbon INFO @ 04:33:16] 0.008749 g.CO2eq/s mean an estimation of 275.91102308176426 kg.CO2eq/year\n",
            "[codecarbon INFO @ 04:33:23] Energy consumed for RAM : 0.002018 kWh. RAM Power : 10.0 W\n",
            "[codecarbon INFO @ 04:33:23] Delta energy consumed for CPU with constant : 0.000082 kWh, power : 42.5 W\n",
            "[codecarbon INFO @ 04:33:23] Energy consumed for All CPU : 0.008576 kWh\n",
            "[codecarbon INFO @ 04:33:23] Energy consumed for all GPUs : 0.012781 kWh. Total GPU Power : 58.97079359266828 W\n",
            "[codecarbon INFO @ 04:33:23] 0.023376 kWh of electricity and 0.000000 L of water were used since the beginning.\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Train Loss: 0.0534, Train Acc: 97.66%\n",
            "Val Loss: 0.8801, Val Acc: 74.49%\n",
            "\n",
            " Swin Training Complete!\n",
            " Best Accuracy: 82.99%\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "print(\"Loading best saved models...\")\n",
        "\n",
        "vit_model.load_state_dict(torch.load('/content/best_vit.pth'))\n",
        "swin_model.load_state_dict(torch.load('/content/best_swin.pth'))\n",
        "\n",
        "print(\" Best models loaded successfully\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "zno5BlW-lTre",
        "outputId": "1c4218b5-9db3-40df-d08a-a718c8a79efe"
      },
      "execution_count": 20,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Loading best saved models...\n",
            " Best models loaded successfully\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "\n",
        "print(\"CALCULATING PERFORMANCE METRICS\")\n",
        "\n",
        "\n",
        "# Evaluate ViT\n",
        "print(\"\\nEvaluating Vision Transformer...\")\n",
        "_, vit_acc, vit_preds, vit_labels = evaluate(vit_model, val_loader, criterion, device)\n",
        "vit_precision = precision_score(vit_labels, vit_preds, average='weighted') * 100\n",
        "vit_recall = recall_score(vit_labels, vit_preds, average='weighted') * 100\n",
        "vit_f1 = f1_score(vit_labels, vit_preds, average='weighted') * 100\n",
        "\n",
        "print(f\"ViT Accuracy: {vit_acc:.2f}%\")\n",
        "print(f\"ViT Precision: {vit_precision:.2f}%\")\n",
        "print(f\"ViT Recall: {vit_recall:.2f}%\")\n",
        "print(f\"ViT F1-Score: {vit_f1:.2f}%\")\n",
        "\n",
        "# Evaluate Swin\n",
        "print(\"\\nEvaluating Swin Transformer...\")\n",
        "_, swin_acc, swin_preds, swin_labels = evaluate(swin_model, val_loader, criterion, device)\n",
        "swin_precision = precision_score(swin_labels, swin_preds, average='weighted') * 100\n",
        "swin_recall = recall_score(swin_labels, swin_preds, average='weighted') * 100\n",
        "swin_f1 = f1_score(swin_labels, swin_preds, average='weighted') * 100\n",
        "\n",
        "print(f\"Swin Accuracy: {swin_acc:.2f}%\")\n",
        "print(f\"Swin Precision: {swin_precision:.2f}%\")\n",
        "print(f\"Swin Recall: {swin_recall:.2f}%\")\n",
        "print(f\"Swin F1-Score: {swin_f1:.2f}%\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "piyFFq4Jlwo8",
        "outputId": "a164f993-161d-4fe6-c4d2-cbc1204459b4"
      },
      "execution_count": 21,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "CALCULATING PERFORMANCE METRICS\n",
            "\n",
            "Evaluating Vision Transformer...\n",
            "ViT Accuracy: 62.59%\n",
            "ViT Precision: 62.63%\n",
            "ViT Recall: 62.59%\n",
            "ViT F1-Score: 60.96%\n",
            "\n",
            "Evaluating Swin Transformer...\n",
            "Swin Accuracy: 82.99%\n",
            "Swin Precision: 83.19%\n",
            "Swin Recall: 82.99%\n",
            "Swin F1-Score: 83.03%\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "\n",
        "print(\"READING ENERGY CONSUMPTION DATA\")\n",
        "\n",
        "\n",
        "vit_energy_df = pd.read_csv('/content/vit_energy.csv')\n",
        "swin_energy_df = pd.read_csv('/content/swin_energy.csv')\n",
        "\n",
        "vit_total_energy = vit_energy_df['energy_consumed'].sum()\n",
        "swin_total_energy = swin_energy_df['energy_consumed'].sum()\n",
        "\n",
        "vit_co2 = vit_energy_df['emissions'].sum()\n",
        "swin_co2 = swin_energy_df['emissions'].sum()\n",
        "\n",
        "vit_time = vit_energy_df['duration'].sum()\n",
        "swin_time = swin_energy_df['duration'].sum()\n",
        "\n",
        "print(\"\\nVision Transformer:\")\n",
        "print(f\"  Energy: {vit_total_energy*1000:.2f} Wh\")\n",
        "print(f\"  CO2: {vit_co2*1000:.2f} grams\")\n",
        "print(f\"  Time: {vit_time/60:.2f} minutes\")\n",
        "\n",
        "print(\"\\nSwin Transformer:\")\n",
        "print(f\"  Energy: {swin_total_energy*1000:.2f} Wh\")\n",
        "print(f\"  CO2: {swin_co2*1000:.2f} grams\")\n",
        "print(f\"  Time: {swin_time/60:.2f} minutes\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "nwcEYCxbmQ1b",
        "outputId": "326cc498-7d9c-4da9-ba31-370439e22e9a"
      },
      "execution_count": 22,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "READING ENERGY CONSUMPTION DATA\n",
            "\n",
            "Vision Transformer:\n",
            "  Energy: 21.83 Wh\n",
            "  CO2: 5.84 grams\n",
            "  Time: 11.35 minutes\n",
            "\n",
            "Swin Transformer:\n",
            "  Energy: 23.38 Wh\n",
            "  CO2: 6.26 grams\n",
            "  Time: 12.12 minutes\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(15, 5))\n",
        "\n",
        "models = ['ViT', 'Swin']\n",
        "\n",
        "# Energy\n",
        "energy_vals = [vit_total_energy*1000, swin_total_energy*1000]\n",
        "ax1.bar(models, energy_vals, color=['blue', 'orange'])\n",
        "ax1.set_ylabel('Energy (Wh)')\n",
        "ax1.set_title('Energy Consumption')\n",
        "for i, v in enumerate(energy_vals):\n",
        "    ax1.text(i, v, f'{v:.2f}', ha='center', va='bottom', fontweight='bold')\n",
        "\n",
        "# CO2\n",
        "co2_vals = [vit_co2*1000, swin_co2*1000]\n",
        "ax2.bar(models, co2_vals, color=['green', 'red'])\n",
        "ax2.set_ylabel('CO2 (grams)')\n",
        "ax2.set_title('CO2 Emissions')\n",
        "for i, v in enumerate(co2_vals):\n",
        "    ax2.text(i, v, f'{v:.2f}', ha='center', va='bottom', fontweight='bold')\n",
        "\n",
        "# Time\n",
        "time_vals = [vit_time/60, swin_time/60]\n",
        "ax3.bar(models, time_vals, color=['purple', 'brown'])\n",
        "ax3.set_ylabel('Time (minutes)')\n",
        "ax3.set_title('Training Time')\n",
        "for i, v in enumerate(time_vals):\n",
        "    ax3.text(i, v, f'{v:.2f}', ha='center', va='bottom', fontweight='bold')\n",
        "\n",
        "plt.tight_layout()\n",
        "plt.savefig('/content/energy_comparison.png', dpi=300)\n",
        "plt.show()\n",
        "print(\" Energy comparison chart saved\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 476
        },
        "id": "QZqhh54Lmzgh",
        "outputId": "c785720f-b940-4c6a-8492-a33d63676bad"
      },
      "execution_count": 23,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1500x500 with 3 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAABdEAAAHqCAYAAADrpwd3AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAdU5JREFUeJzs3XlcVGX///H3KDIoCILighvuuOK+m7hjLrllmiaouZRLZqaRuZtbWe7YdouWZllpWbkr7pa7qamouOSCOygqKMzvD3/M1wlGwYAB5/V8PM7j5lznOmc+h268Zt5zznUMJpPJJAAAAAAAAAAAkEgWWxcAAAAAAAAAAEBGRYgOAAAAAAAAAIAVhOgAAAAAAAAAAFhBiA4AAAAAAAAAgBWE6AAAAAAAAAAAWEGIDgAAAAAAAACAFYToAAAAAAAAAABYQYgOAAAAAAAAAIAVhOgAAAAAAAAAAFhBiA4AzygkJEQGg0FnzpyxdSkAAKSKtBrbQkNDZTAYFBoamqrHBQAgvQUGBsrb2/uZ9h07dqwMBkPqFpTKvL29FRgYaOsygAyHEB12JeGDobVl165dti4xzd2/f1+ffvqpatWqJTc3Nzk5Oal06dIaOHCgTpw4YevyMqRJkyZpxYoVti4DAJDGTp06pX79+ql48eJycnKSq6ur6tWrp5kzZ+revXsWfR88eKBZs2apRo0aypkzp1xcXFSjRg3NmjVLDx48sOh79+5dzZ07V82bN1eBAgWUM2dOValSRcHBwYqLi0tWbU96/9K/f/9U+x0AAJBZPWmsfHyxty90E77ITs4CwDqDyWQy2boIIL2EhISoZ8+eGj9+vIoVK5Zou7+/v/LkyWODytLHtWvX5O/vr71796p169Zq2rSpXFxcdPz4cS1dulSXL19WbGysrcvMcFxcXNSpUyeFhIRYtMfFxenBgwcyGo284QCATO63337Tyy+/LKPRqB49eqhChQqKjY3Vtm3b9OOPPyowMFCff/65JCk6OlqtWrXS5s2b1bp1a/n7+ytLlixavXq1fvnlFzVs2FC//fabnJ2dJUmHDx9WpUqV1KRJEzVv3lyurq5as2aNli9frh49emjhwoVPrc9gMKhZs2bq0aNHom2lS5dWzZo1U+X3kFZjW3x8vGJjY+Xo6KgsWbiOBwCQ+r755huL9UWLFmndunX6+uuvLdqbNWumfPnyPfPrPHjwQPHx8TIajSne9+HDh3r48KGcnJye+fVTKiIiQuvWrbNoCwoKkouLi0aOHGnR3r17d8XExChLlizKli1butUIZAaE6LArCSH67t27Vb16dVuXo+joaPMH7PTQunVrrVq1St9//706duxosS0mJkYjR47Uxx9/nG71ZBbWQnQAwPMhPDxclSpVUqFChbRx40YVKFDAYvvJkyf122+/6a233pIk9evXT59//rlmz56tgQMHWvSdO3euBg4cqP79+ys4OFjSoy+xIyIiVL58eYu+vXr10oIFCxQWFqaSJUs+sUaDwaABAwZozpw5//V0AQCwCwMHDtTcuXP1tNjr7t27ypEjRzpVlTFUqFBBefLksbur8oH/gstAgCScOXNGBoNBH3/8sT7//HOVKFFCRqNRNWrU0O7duxP1P3bsmDp16iQPDw85OTmpevXq+uWXXyz6JEwls3nzZr355pvKmzevChUqZN4+d+5cFS9eXNmzZ1fNmjW1detW+fn5yc/PT5J0584dOTs7mz/AP+6ff/5R1qxZNXnyZKvn9Mcff+i3335T7969EwXokmQ0GhMF6Bs3blSDBg3k7OysXLly6aWXXtLff/9t0SdhTreTJ08qMDBQuXLlkpubm3r27Km7d+9a9F23bp3q16+vXLlyycXFRWXKlNH777+f6Hf073lYk5pH1c/PTxUqVNChQ4fUsGFD5ciRQyVLltQPP/wgSdq8ebNq1aql7Nmzq0yZMlq/fn2SdR87dkydO3eWq6urcufOrbfeekv379839zMYDIqOjtbChQvNt7glzA9nrd558+apfPnyMhqN8vLy0oABA3Tr1i2LPgn1Hz16VI0aNVKOHDlUsGBBTZs2LdF/GwBA2po2bZru3Lmjr776KlGALkklS5Y0j7///POPvvrqKzVu3DhRgC5JAwYMUKNGjfTll1/qn3/+kSTlyZMnUYAuSe3bt5ekRGPrf/Ffx8ekxrY9e/aoRYsWypMnj7Jnz65ixYqpV69eFvstXbpU1apVU86cOeXq6qqKFStq5syZ5u3W5kRftmyZqlWrpuzZsytPnjzq3r27Lly4YNEnMDBQLi4uunDhgtq1aycXFxd5enpq2LBhiabDeVodAAD7ljBO7t27Vy+88IJy5Mhh/kz6888/q1WrVvLy8pLRaFSJEiU0YcKERGPNv+dET0l+kNSc6AaDQQMHDtSKFStUoUIFGY1GlS9fXqtXr05Uf2hoqKpXry4nJyeVKFFCn332WarPs/7vOdET3hts27ZNgwcPlqenp3LlyqV+/fopNjZWt27dUo8ePeTu7i53d3cNHz480RcX8fHxmjFjhsqXLy8nJyfly5dP/fr1082bN1OtbiCtEaLDLkVGRuratWsWy/Xr1xP1W7JkiT766CP169dPEydO1JkzZ9ShQweLuU6PHDmi2rVr6++//9Z7772n6dOny9nZWe3atdPy5csTHfPNN9/U0aNHNXr0aL333nuSpODgYA0cOFCFChXStGnT1KBBA7Vr18784Vt6dDV0+/bt9d133yUaxL/99luZTCZ169bN6jknhPqvvfZasn5H69evV4sWLXTlyhWNHTtWQ4cO1Y4dO1SvXr0kHzbWuXNn3b59W5MnT1bnzp0VEhKicePGWfyeWrdurZiYGI0fP17Tp09X27ZttX379mTVk5SbN2+qdevWqlWrlqZNmyaj0aguXbrou+++U5cuXfTiiy9qypQpio6OVqdOnXT79u0k675//74mT56sF198UbNmzVLfvn3N27/++msZjUY1aNBAX3/9tb7++mv169fPak1jx47VgAED5OXlpenTp6tjx4767LPP1Lx580Rz5N68eVP+/v7y9fXV9OnT5ePjoxEjRmjVqlXP/DsBAKTcypUrVbx4cdWtW/epfVetWqW4uLgkp1VJ0KNHDz18+DDJD7+Pu3z5siQleyq5+/fvJ3r/cu3atURTsaXG+JjgypUrat68uc6cOaP33ntPs2fPVrdu3SyeI7Nu3Tp17dpV7u7umjp1qqZMmSI/P7+njvEhISHq3Lmz+UKAPn366KefflL9+vUTffkcFxenFi1aKHfu3Pr444/VsGFDTZ8+3TzFzn+pAwBgX65fv66WLVuqcuXKmjFjhho1aiTp0bjk4uKioUOHaubMmapWrZrF5/anSU5+YM22bdv05ptvqkuXLpo2bZru37+vjh07WuQU+/fvl7+/v65fv65x48apd+/eGj9+fLo9v2vQoEEKCwvTuHHj1LZtW33++ecaNWqU2rRpo7i4OE2aNEn169fXRx99lGgKnX79+undd981P2umZ8+eWrx4sVq0aJGs3w+QIZgAO7JgwQKTpCQXo9Fo7hceHm6SZMqdO7fpxo0b5vaff/7ZJMm0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3eXh4WHrMgAAwP+XJTmdcufOrU8++USXLl3SnDlzVKpUKV27dk1hYWGSpG7dumnv3r3auXMnAToAAJlQmTJldPz4cUmSr6+vPvvsM124cEHz589XgQIFbFwdAAD2ZcKECRo9erTu3r1r61IAAIBS8GBRScqePbs6deqkTp06pVU9AADABt566y1dunRJkjRmzBj5+/tr8eLFcnR0VEhIiG2LAwDAzkyfPl2nTp1Svnz55O3trWzZslls5y4xAADSV4pCdAAA8Hzq3r27+edq1arp7NmzOnbsmIoUKaI8efLYsDIAAOxPu3btbF0CAAB4DCE6AAB27sGDB/Lx8dGvv/6qsmXLSpJy5MihqlWr2rgyAADs05gxY2xdAgAAeEyy5kQHAADPr2zZsun+/fu2LgMAAAAAgAyJEB0AAGjAgAGaOnWqHj58aOtSAACwSx4eHrp27Zokyd3dXR4eHlYXAACQvlI8nUt0dLScnZ3TohYAAGAju3fv1oYNG7R27VpVrFgx0Vj/008/2agyAADsw6effqqcOXNKkmbMmGHbYgAAgIUUh+j58uVT586d1atXL9WvXz8tagIAAOksV65c6tixo63LAADAbgUEBCT5MwAAsL0Uh+jffPONQkJC1LhxY3l7e6tXr17q0aOHvLy80qI+AACQDhYsWGDrEgAAwL9cuXJFV65cUXx8vEV7pUqVbFQRAAD2KcVzordr104rVqzQhQsX1L9/fy1ZskRFixZV69at9dNPPzGXKgAAAAAA/8HevXtVoUIFFShQQJUqVVLlypXNS5UqVWxdHgAAdifFV6In8PT01NChQzV06FDNnj1b7777rn7//XflyZNH/fv313vvvaccOXKkZq0AACCNVKlSRQaDIVG7wWCQk5OTSpYsqcDAQDVq1MgG1QEAYF969eql0qVL66uvvlK+fPmSHKMBAED6eeYQPSIiQgsXLlRISIjOnj2rTp06qXfv3vrnn380depU7dq1S2vXrk3NWgEAQBrx9/dXcHCwKlasqJo1a0p69LDRQ4cOKTAwUEePHlXTpk31008/6aWXXrJxtQAAPN9Onz6tH3/8USVLlrR1KQAAQM8Qov/0009asGCB1qxZo3LlyunNN99U9+7dlStXLnOfunXrqmzZsqlZJwAASEPXrl3TO++8o1GjRlm0T5w4UWfPntXatWs1ZswYTZgw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\n"
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            " Energy comparison chart saved\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "vit_cm = confusion_matrix(vit_labels, vit_preds)\n",
        "swin_cm = confusion_matrix(swin_labels, swin_preds)\n",
        "\n",
        "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 5))\n",
        "\n",
        "# ViT\n",
        "sns.heatmap(vit_cm, annot=True, fmt='d', cmap='Blues', ax=ax1)\n",
        "ax1.set_title('ViT Confusion Matrix')\n",
        "ax1.set_xlabel('Predicted')\n",
        "ax1.set_ylabel('Actual')\n",
        "ax1.set_xticklabels(['Real', 'Fake'])\n",
        "ax1.set_yticklabels(['Real', 'Fake'])\n",
        "\n",
        "# Swin\n",
        "sns.heatmap(swin_cm, annot=True, fmt='d', cmap='Oranges', ax=ax2)\n",
        "ax2.set_title('Swin Confusion Matrix')\n",
        "ax2.set_xlabel('Predicted')\n",
        "ax2.set_ylabel('Actual')\n",
        "ax2.set_xticklabels(['Real', 'Fake'])\n",
        "ax2.set_yticklabels(['Real', 'Fake'])\n",
        "\n",
        "plt.tight_layout()\n",
        "plt.savefig('/content/confusion_matrices.png', dpi=300)\n",
        "plt.show()\n",
        "print(\" Confusion matrices\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 524
        },
        "id": "dkv9DmuznYU5",
        "outputId": "62aecf9c-0eb7-4d45-ba30-823d1655279f"
      },
      "execution_count": 24,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1200x500 with 4 Axes>"
            ],
            "image/png": "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7GL6d150+/Zt9evXT8WKFZPFYlGBAgX0zDPP6MiRI9ZjklrTKCoqSm+//bYKFy4si8WiUqVKadKkSfr3JJF70/DXrVun8uXLy2KxqFy5ctq8eXOK3+89tWvXVmBgoJYvX24zvmzZMjVt2lS+vr52P/PFF1+oRYsWCggIkMVi0eOPP653331X8fHx1mMaNmyojRs36rfffrNb2uHevysrVqzQsGHDVKhQIeXMmVMRERF2/x799NNP8vDwsHsIvHv3brm5uWnIkCEPfK8AUo+iEbK04OBg3b17VytXrrQZv379urZs2aK2bdvKw8MjTa69fv16eXh4qEOHDg90/KhRo9SrVy8FBARo8uTJat++vebOnatnn31Wd+7csTn2xo0batq0qSpVqqTJkyerdOnSGjJkiDVpa9CggZYuXSpJeuaZZ7R06VLr5wd15coVPfvsszp//ryGDh2q6dOnKzg42C7x+rcffvhB9evX1/HjxzV48GANHz5c586dU8OGDbV//36749966y0dP35cI0eOVI8ePfTll1+mag2iBg0a6LHHHrNJdD777DN5eXmpRYsWdsdHREToo48+UsOGDTVhwgSNGjVKV69eVZMmTXTs2DFJUv78+TV79mxJUtu2ba3fX7t27aznuXv3rpo0aaICBQpo0qRJat++fZLxDRs2TJUrV1a3bt2s62tt2bJF8+fP14gRI2ye6AEAkJaKFi2qw4cP6+TJk8ked+/v8YiICEmSYRj6/vvvZTabtWvXLutxu3btktlsVt26dZM9X0p5y/189dVXunv3rl5++eUHuj9H5yBLly5V/fr1ZbFYrLlAgwYNHiiWe958803Nnj1b7du316xZszRw4EB5eHjop59+uu/PGIahVq1aacqUKWratKk++OADlSpVSoMGDdKAAQPsjt+9e7d69uypjh07auLEiYqJiVH79u3t1uxMzksvvaQVK1ZYi1LXrl3T1q1bk3wAJyUW3ry8vDRgwAB9+OGHqlatmkaMGKGhQ4daj/nPf/6jypUrK1++fNbv79/rG7377rvauHGjBg4cqPHjxyfZ0VWmTBm9++67Wrp0qbVoGRUVpS5duqh06dIaM2bMA98ngIdgAFnY3bt3jYIFCxq1a9e2GZ8zZ44hydiyZYt1bOHChYYk49y5c0mey9PT0wgJCXnga+fJk8eoVKnSAx175coV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zlVsbKwmTpzosPtISt++fVM85rnnntPatWvVtm1btWjRQufOndOcOXNUtmxZm2l3Hh4eKlu2rD777DM98cQT8vX1Vfny5VW+fPlUxfTTTz9p+PDh6tKli1q2bCkp8TW1lStXVs+ePbVy5crU3SQAAA/prbfeUnR0tNq2bavSpUsrLi5Oe/bs0WeffaZixYqpa9eu1mNz5sypatWqad++fWrZsqW1Y6RBgwaKiopSVFRUmheNJGny5Mn69ddf1adPH61du1bPPfec8uTJowsXLmjVqlX6+eef1bFjR0npm4O89tpreu+99/Taa6+pevXq2rlzp91Dwtu3b+uxxx5Thw4dVKlSJXl5eenrr7/WwYMHNXny5Pueu2XLlmrUqJH+85//6Pz586pUqZK2bt2qL774Qv369bNZ9NrRnnrqKT311FPJHlOnTh3lyZNHISEh6tOnj0wmk5YuXZpkQbJatWr67LPPNGDAANWoUUNeXl7WfOhBGYahV199VR4eHpo9e7Yk6Y033tCaNWvUt29fBQUFKSAgIFXnBPDgKBrBZQQHB2vPnj2qWbOmSpQokS7XrFWrlk6ePKn3339fGzdu1NKlS2U2m1WmTBkNHTpUvXv3th47atQo5c+fXzNmzFD//v3l6+ur7t27a/z48cqePbvDYsqePbs+//xz9ezZU8OHD5e/v7/69eunPHny2CSLTz31lA4cOKAVK1bo8uXL8vHxUc2aNbVs2bJkFy0sV66cdu3apdDQUIWFhSkhIUG1atXSJ598olq1ajnsPh5Wly5dFB4errlz52rLli0qW7asPvnkE61atUo7duywOfajjz7SW2+9pf79+ysuLk4jR45MVdEoPj5eISEhypcvn6ZOnWodL1mypMLCwtS3b1+tXLlSL7zwgoPuDgCA+5s0aZJWrVqlTZs2ad68eYqLi1ORIkXUs2dPDRs2zPrm1HvudRXVq1fPOubv768SJUrozJkz6VI0ypkzp7766istWrRIixcv1rvvvqvo6GgFBATo6aef1rJly1SoUCFJ6ZuDjBgxQlevXtXq1au1cuVKNWvWTF999ZUKFChgE3vPnj21detWrV27VgkJCSpRooRmzZqV7BtYzWaz1q9frxEjRuizzz7TwoULVaxYMb3//vt6++23HXofDyNv3rzasGGD3n77bQ0bNkx58uRR586d1bhxYzVp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zgQ4HvkS4Hh0GiHNnDx5Unv27FHRokUlSWFhYfrkk080Z84clSxZUjt37lTnzp2VP39+PfXUU0pISNBjjz2mVatWKW/evNqzZ4+6d++uggUL6oUXXnDy3QAZj9ls1rRp0xQYGKizZ8+qZ8+eGjx4sGbNmmV37O+//65nnnlGTz75pBYsWCA3NzeNGzcu2d9JAED6IGcC0g75EvCIDMBBQkJCDDc3N8PT09OwWCyGJMNsNhurV682YmJijJw5cxp79uyx+Zlu3boZL7300n3P2atXL6N9+/Y212jdunVa3QKQIf3zd+ve1qFDB7vjVq1aZeTNm9f6eeHChYaPj4/x888/G4ULFzb69OljJCQkGIZhPPTvJADg0ZEzAY5HvgSkDTqN4FCNGjXS7NmzFRUVpSlTpihbtmxq3769fvjhB0VHR+uZZ56xOT4uLk5VqlSxfp45c6Y+/vhjXbhwQX///bfi4uJUuXLldL4LIOO597t1j6enp77++muFhYXp559/VkREhO7evauYmBhFR0crZ86ckqS///5b9evXV6dOnTR16lTrz585c+aBficBAGmDnAlwPPIlwPEoGsGhPD09VaJECUnSxx9/rEqVKmnBggUqX768JGnjxo0qVKiQzc9YLBZJ0ooVKzRw4EBNnjxZtWvXVq5cufT+++9r//796XsTQAb0z98tSTp//ryee+459ejRQ+PGjZOvr692796tbt26KS4uzpoEWSwWBQUFacOGDRo0aJD19+/eXP7kficBAGmHnAlwPPIlwPEoGiHNmM1mvfPOOxowYIBOnz4ti8WiCxcu3Hfu7/fff686deqoZ8+e1rFff/01vcIFMpXDhw8rISFBkydPltmc+E6DlStX2h1nNpu1dOlSderUSY0aNdKOHTsUEBCgsmXLpvg7CQBIH+RMQNogXwIeHUUjpKnnn39egwYN0ty5czVw4ED1799fCQkJqlevnm7duqXvv/9e3t7eCgkJUcmSJbVkyRJt2bJFgYGBWrp0qQ4ePKjAwEBn3waQ4ZQoUUJ37tzR9OnT1bJlS33//feaM2dOkse6ublp2bJleumll/T0009rx44d8vf3T/F3EgCQfsiZAMcjXwIeHUUjpKls2bKpd+/emjhxos6dO6f8+fMrLCxMZ8+eVe7cuVW1alW98847kqQ33nhDR48e1YsvviiTyaSXXnpJ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\n"
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            " Confusion matrices\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, figsize=(14, 10))\n",
        "\n",
        "epochs = range(1, num_epochs + 1)\n",
        "\n",
        "# ViT Loss\n",
        "ax1.plot(epochs, vit_history['train_loss'], 'b-o', label='Train', linewidth=2)\n",
        "ax1.plot(epochs, vit_history['val_loss'], 'r-s', label='Validation', linewidth=2)\n",
        "ax1.set_title('ViT - Loss', fontsize=14, fontweight='bold')\n",
        "ax1.set_xlabel('Epoch')\n",
        "ax1.set_ylabel('Loss')\n",
        "ax1.legend()\n",
        "ax1.grid(True, alpha=0.3)\n",
        "\n",
        "# ViT Accuracy\n",
        "ax2.plot(epochs, vit_history['train_acc'], 'b-o', label='Train', linewidth=2)\n",
        "ax2.plot(epochs, vit_history['val_acc'], 'r-s', label='Validation', linewidth=2)\n",
        "ax2.set_title('ViT - Accuracy', fontsize=14, fontweight='bold')\n",
        "ax2.set_xlabel('Epoch')\n",
        "ax2.set_ylabel('Accuracy (%)')\n",
        "ax2.legend()\n",
        "ax2.grid(True, alpha=0.3)\n",
        "\n",
        "# Swin Loss\n",
        "ax3.plot(epochs, swin_history['train_loss'], 'b-o', label='Train', linewidth=2)\n",
        "ax3.plot(epochs, swin_history['val_loss'], 'r-s', label='Validation', linewidth=2)\n",
        "ax3.set_title('Swin - Loss', fontsize=14, fontweight='bold')\n",
        "ax3.set_xlabel('Epoch')\n",
        "ax3.set_ylabel('Loss')\n",
        "ax3.legend()\n",
        "ax3.grid(True, alpha=0.3)\n",
        "\n",
        "# Swin Accuracy\n",
        "ax4.plot(epochs, swin_history['train_acc'], 'b-o', label='Train', linewidth=2)\n",
        "ax4.plot(epochs, swin_history['val_acc'], 'r-s', label='Validation', linewidth=2)\n",
        "ax4.set_title('Swin - Accuracy', fontsize=14, fontweight='bold')\n",
        "ax4.set_xlabel('Epoch')\n",
        "ax4.set_ylabel('Accuracy (%)')\n",
        "ax4.legend()\n",
        "ax4.grid(True, alpha=0.3)\n",
        "\n",
        "plt.tight_layout()\n",
        "plt.savefig('/content/training_curves.png', dpi=300)\n",
        "plt.show()\n",
        "print(\" Training curves\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 990
        },
        "id": "0DQPwkBsn_ds",
        "outputId": "6101d209-6754-4116-9d88-0212f6941fd6"
      },
      "execution_count": 25,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1400x1000 with 4 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAABW0AAAPeCAYAAAB3GThSAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd4FNXbxvHvptNrQuhNqQIiIiIiKGAo0kGaUuS10ARRkd6kKCgCgvoDaRYEUUAFpSoIUhV7Aek1hAAh1ASy8/5xzG5CAgRIdpLs/bmuuZgzOzv77J4kzD5z5jkOy7IsRERERERERERERCRd8LE7ABERERERERERERFxU9JWREREREREREREJB1R0lZEREREREREREQkHVHSVkRERERERERERCQdUdJWREREREREREREJB1R0lZEREREREREREQkHVHSVkRERERERERERCQdUdJWREREREREREREJB1R0lZEREREREREREQkHVHSVkQkDXTt2hWHw4HD4aBu3bp2hyMiIiIimYDOMUVEvIeStiIiyWjYsKHrhDhPnjzExMQku59lWZQuXdq1b9WqVa95zJEjR7r2S+nStWvXNHqHhidfS0RERMTbecs5ZkK9e/dO8vp//PGHx15fRCSj8rM7ABGR9Khr166sXLkSgKioKJYtW0br1q2T7PfDDz+wd+/eRM8DaN++PXfddRcARYsWTfuARURERCTd87ZzzJiYGD755JMk2+fOncsbb7xhQ0QiIhmHw7Isy+4gRETSm0uXLlGwYEGioqIAaNasGV988UWS/Z555hlmzpwJgL+/P0ePHiV//vzJHnPTpk1s2rQp0bZ3333XdUKeJ08eBg8enOjxu+66i4YNG97u27kmh8PhWu/SpQtz585Ns9cSERER8Xbeco4Zb9GiRTz++ONJtoeGhnLo0CH8/DL+OLLz58+TJUsWfHx0I7OIpDJLRESS9dxzz1mABVj+/v5WZGRkoscvXbpk5c6d27VPy5YtXY916dLFtb1OnTrXfI06deq49itevHgavZNri39twOrSpUuKnnPhwgVr0qRJ1gMPPGDlzp3b8vf3t0JCQqxGjRpZCxcuTPY5X3zxhRUWFmaFhIRYfn5+Vo4cOaxSpUpZzZs3t8aNG2fFxcW59j1x4oT14osvWhUqVLCyZs1q+fv7WwUKFLCqV69u9erVy9q8eXNqvHURERERW3jDOWa8xo0bu+IoU6ZMonPPr7766prPi4yMtEaPHm3VqFHDyp07txUQEGAVKlTIevTRR60FCxYk2X/btm1W165drdKlS1tZsmSxsmXLZt15551W165drd27d7v2K168uOv1R4wYkegYI0aMuOZndvXzNmzYYNWrV8/KmTOnBVinT5+2Ll++bA0dOtRq1KiRVapUKStXrlyWn5+flTdvXuvBBx+0pk6dasXGxib7fg8dOmQNGDDAuvvuu60cOXJYgYGBVtGiRa3mzZtbq1atsizLsjp37uyKoWbNmkmOsWzZMtfjvr6+1pEjR675+YpIxqCkrYjINWzZsiXRieW0adMSPb5o0aJEj3/xxReuxzLKCfXNJm2PHTtmVaxYMdHzrl5at25tXb582fWcOXPmXHd/wLp48aJlWZZ18eJFq2zZstfd95VXXkmrj0NEREQkzXnDOaZlWdbRo0ctX19fVxwzZsywqlat6mq3atUq2edt27bNCg0Nvea5YPPmzRPtP2rUKMvhcFxz/yVLlrj2TY2kbc2aNRO9r/ik7dmzZ294zlu/fn3rypUriY69fPlyK0eOHNd8Tt++fS3Lsqzt27cn2v7nn38mOk7CpG7jxo1T3E8ikn5l/HsRRETSSI0aNShfvjx///03AB988AG9evVyPf7BBx+41kNCQmjcuLHHY/S0Tp068eeff7rabdq0oUKFCqxevZrNmzcD8PnnnzNu3DiGDx8OmNvz4lWvXp3HHnuMK1eucOjQIbZu3er6fAG+++47du7cCUBQUBDdu3encOHChIeHs3v3btavX++JtykiIiKSZrzlHPPDDz8kLi4OMCUeWrduzenTp/n5558BWLZsGSdPniRfvnyu55w9e5ZmzZoRHh7u2vbII49Qq1YtoqOj2bhxY6LXWLRoESNGjHC1s2bNSvv27SlevDj79u3jq6++SvX3tXnzZrJmzcoTTzxB4cKF+fnnn/H19cXhcFCqVCnuv/9+ChcuTJ48ebh8+TL//PMPixYt4sqVK6xZs4bPP//cVTLiwIEDtG3blgsXLgCmdFmzZs24++67OXHiBN9++63rde+9917uv/9+tmzZAsD777/PpEmTAIiNjU1UZqNbt26p/r5FxPOUtBURuY6uXbvyyiuvALBt2zZ27dpFmTJliIyMZMWKFa79OnXqlClqcl3PL7/8kujEccCAAbz++usADB8+nNq1a7sSt1OmTGHo0KH4+Phw6dIl13OmTp3K/fffn+i4+/fvJyAgACDRvnXq1GHatGmJ9o2JiSEyMjJ135iIiIiIh3nDOea8efNc648++ih58+alffv2DBw4EMuyiI2NZf78+fTp08e139y5cxMlbMeOHZukHm/CCdpee+0113q2bNnYsWMHZcqUcW07f/4858+fT9X35evry4YNG7jnnnuSPLZnzx4iIiLYsmULR44c4cKFC9xzzz38/vvv/PHHHwCsXLnSlbSdOnWqK2EL8NFHH9GxY0dX2+l0cvDgQVe7T58+rqTthx9+yGuvvUZAQACrVq3izJkzAOTLl49mzZql6nsWEXtkzL/+IiIe8uSTTzJ48GDXKIEPP/yQV199lQULFnD58mXXfnZdzU5u4gmABx54gAceeCBVXys+IRuvS5curnVfX1+eeOIJ1z6nTp1i586dlC9fntq1a/Pbb78B0KBBA2rWrMmdd95JhQoVeOihh6hUqZLrONWrVycwMJCYmBhWrlxJxYoVqVy5MmXKlKFq1arUq1ePwoULp+r7EhEREfG0zH6OuW3bNv766y9Xu3379gAUK1aMmjVruo49Z86cREnbhCNpc+TI4UpsJ1SqVCkALly44Bq1C9C5c+dECVswidxs2bLdMN6b0ahRo2QTthcvXqRnz5588MEHOJ3Oaz7/8OHDrvWE77d8+fKJErYAPj4+lChRwtVu27YtL774IuHh4URGRrJkyRLatWvHokWLXPt06tTJNSBCRDI2JW1FRK6jYMGCPProo3zzzTeAufo9evToRLet3XPPPYkSj560atUqRo0alWT7iBEjUj1pe+rUqUTtAgUKXLd9+vRpAMaNG8fevXv55ptvOHfuHKtXr2b16tWu/erUqcPy5cvJli0bRYoUYe7cufTp04fIyEj++uuvRCf82bNnZ+bMma4TfxEREZGMKLOfY86ZM8e1niVLFpo3b+5qd+jQwZW0/fnnn/n9999d7zPh+WbRokXx9fW95mucPn0ay7Jc7ZIlS94wroQSPhfMHV0pUa5cuWS3Dxo0iLlz597w+QlfJ+H7TUn8/v7+PPfcc4wcORIwJRJatmyZqDTCU089dcPjiEjG4GN3ACIi6V3Xrl1d6/v372fmzJls37492cczs7x58yZqHz9+/LrtPHnyAJAzZ06+/vprDh06xKJFixg7diydOnUia9asAKxfv54JEya4nte+fXuOHj3Kxo0beffdd+nfvz9Vq1YF4Ny5c3Tv3p1z586l+vsTERER8aTMeo4ZExPDggULXO2LFy+SM2dOHA4HDocj0chaSJzgTXi+eejQIddI5OTkyZMHh8Phau/bt++Gsfn4uFMgFy9eTPTYv//+e8PnA9ccubtw4ULXeqVKlfjjjz+4fPkylmXRtm3bZJ+T8P2mJH6AZ599Fn9/fwDWrl3L//73P1dphKpVq1KlSpUUHUdE0j8lbUVEbqB58+auBCTACy+84FoPCAhIchuTJ40cORLLspIs8VffU9PVoyoS1imLi4vjo48+crXz5s1L2bJlAVwnrEWKFKFNmzYMHjyYjz76iP/7v/9z7b9jxw7AjDY4cOAA/v7+1KpVi+eee44333yTtWvXuva9cOGCa7IyERERkYwqs55jLl26lKioqBS/1scff8yVK1cAePDBB13bz549y8SJE5Psf+DAAcBMOhZ/YR9MiYndu3cn2vfixYtERES42rlz53atb9u2zTXa9vfff7/tSctOnjzpWn/44YepWLEifn5+nDhxgnXr1iX7nITv9++//06U7AYzGjhhTVuA0NBQVxLYsiwGDBjgekyjbEUyF5VHEBG5gcDAQDp06MA777wDkGiygKZNmyaa8TYjW7ZsGffee2+yj3311VdUqVKFevXquRKoEyZMYO/evVSsWJFVq1Ylqnnbt29f10iGl156iW3btlGvXj2KFi1KcHAwR48eTTSqIv4EeteuXdSsWZPq1atTpUoVChUqhJ+fX6IJORLuLyIiIpJRZdZzzITneNmyZeOxxx5Lss/x48ddicyIiAiWL19O8+bN6dq1K2PHjnXdwTVo0CDWrl1LzZo1uXDhAlu2bCF//vwsXboUgIEDB7om9Tp37hx333037du3p3jx4hw6dIhly5bxzjvv0KJFC8DMnxBfB3f9+vXcf//9FCpUiDVr1hAbG3tb77ts2bKuycZmzpyJj48PWbNm5cMPP+TEiRPJPuf555/n3XffdY367dixIwsXLuTuu+/m9OnTrFu3jrp16zJ58uREz+vTpw/z588H3BP5BgYG2proF5E0YImIyA1t27bNApIsX331VbL7d+nSxbVPnTp1rnncOnXquPYrXrx42gR/Hcm9p+SW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Oc8+CxcvmmWFC5t/k8q7JkmanzLl+uN1ZSs7d8J775npAgWgXz9LwxERNyVtRUREJMf63/+genUzvW0bvPaatfGIiIiI9a7sXbtmjXv500+bSgGffgpFi3o+p1gxWLDA1MnPUUaPNoOQATz3HISGWhuPiLhoIDIRERHJsfz8YPp0qFULnE4YORIefTT5DzERERHxDTt3wuOPeyZrb70VZs82vW7BJGZbtoSVKx3s3BlH6dKhNGhgz1k9bAF+/x0++shMh4VBnz7WxiMiHtTTVkRERHK0mjVNj1uAs2dNqTYRERHxLYmJ8PLLUKWKO2Frs0HfvrBlizthm8TPDxo2hAcfvEjDhjmsJEKSUaPMVW0wo7bmyWNpOCLiSUlbERERyfFeeMF0IAH45BP49ltr4xEREZGss2MH1KsHAwa4a9fedhusXGlq1IaEWBqeNbZsgfnzzXThwvDUU9bGIyLJKGkrIiIiOV7BgjBpknu+d2+Ij7cuHhEREcl8iYnw0kumd+1PP5llNpsZa2vzZqhf38roLDZqlHt68GAfzVyLeDclbUVERMQndOpketkA/PmnZxJXREREcpak3rXPPee+UHvbbbBqFbzyio/nKDduhM8+M9NRUe46UiLiVZS0FREREZ9gt8Mbb7hr0r3wAuzZY21MIiIikrESE82F2dR61yZdwPVpI0e6p4cOheBg62IRkVQpaSsiIiI+o2JFM+AImJp2ffq4x98QERGR7C2pd+3Age7etbffrt61Hn7+Gb74wkwXKwZPPGFtPCKSKiVtRURExKeMGmXuBAT48ktYvNjScEREROQmpda7tn9/2LRJvWs9XNnLdtgwCAy0LhYRuSavSNq+/vrrlCxZkqCgIGrVqsXPP/+c6rZz587FZrN5PIKCgjy2cTqdjBgxgiJFihAcHEzTpk35888/M/tliIiISDaQN6/pbZOkb184d866eEREROTGbd8Odesm7127ejW8/LJ613pYswaWLDHTJUtC166WhiMi12Z50vbjjz+mf//+jBw5ko0bN1K5cmWaNWvG0aNHU31OaGgohw8fdj327dvnsX7ixIlMnTqVN998k3Xr1pE7d26aNWvGxYsXM/vliIiISDbw8MNwzz1met8+U99WREREso+EBJg4EapWhXXrzLIre9fWrWtpeN5pxAj39PDhEBBgXSwicl2WJ20nT55M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M9tlotq1a+N0Oj2WFSxYMFmv16utWLHCY37v3r0e83fccQerV6/2WHb1cSZOnMjEiRM91vfu3ds1HxgYyIIFC5Id++r9VKxYkeXLl6ca69y5c5MtmzJlSqrbi4iISPr4+cGrr8JDD5kE7ZX/VSclcqdM0SBk6REQEMDSpUuZMmUK586dIzo6mjZt2iS7yC0iIiIiOZ+StlmtePFMT8qKiIiIZIXWrWHBAujbFw4edC8vVswkbFu3tiy0bOPKi+LR0dGsXLnSumDSKunusWsNdJYFd4+JiIiI5GRK2oqIiIjIDWvdGlq2hJUrHezcGUfp0qE0aGBXD9uczEvuHhMRERHJyZS0FREREZGb4ucHDRtCuXIXiYgIzeljTwno7jERERGRTKZTahEREREREREREREvoqStiIiIiIiIiIiIiBdR0vYGORwOq0OQDKY2FRERERERERERb6CatukUEBCA3W7n0KFDhIeHExAQgM1mszqsbMvpdJKQkIC/v79l76PT6eTSpUscO3YMu91OQECAJXGIiIiIiIiIiIiAkrbpZrfbKVWqFIcPH+bQoUNWh5PtOZ1OHA4Hdrvd8uR3SEgIxYsXx67RU0RERERERERExEJK2t6AgIAAihcvTkJCAomJiVaHk605HA7++ecfChUqZGmy1M/Pz9LeviIiIiIiIiIiIkmUtL1BNpuNXLlykStXLqtDydYcDge5cuUiKChIPVxFRERERERERETQQGQiIiIiIiIiIiIiXkVJWxEREREREREREREvoqStiIiIiIiIiIiIiBdRTdsUOJ1OAOLi4iyOJOdzOBycOXNGNW19iNrc96jNfY/a3DdldbsnnaclnbeJofPYrKPvOt+jNvc9anPfpHb3Pd56HqukbQrOnDkDQHR0tMWRiIiIiMi1nDlzhnz58lkdhtfQeayIiIhI9nC981ibU90TknE4HBw6dIi8efNis9msDidHi4uLIzo6mgMHDhAaGmp1OJIF1Oa+R23ue9Tmvimr293pdHLmzBmioqLUC+YKOo/NOvqu8z1qc9+jNvdNanff463nseppmwK73U6xYsWsDsOnhIaG6svQx6jNfY/a3PeozX1TVra7etgmp/PYrKfvOt+jNvc9anPfpHb3Pd52HqtuCSIiIiIiIiIiIiJeRElbERERERERERERES+ipK1YKjAwkJEjRxIYGGh1KJJF1Oa+R23ue9TmvkntLr5Gn3nfozb3PWpz36R29z3e2uYaiExERERERERERETEi6inrYiIiIiIiIiIiIgXUdJWRERERERERERExIsoaSsiIiIiIiIiIiLiRZS0FREREREREREREfEiStpKlhs/fjw1a9Ykb968RERE0KpVK3bu3Gl1WJKFJkyYgM1mo1+/flaHIpns77//pkOHDhQqVIjg4GAqVqzIL7/8YnVYkkkSExMZPnw4pUqVIjg4mFtvvZUxY8agMU9zjlWrVtGiRQuioqKw2WwsWrTIY73T6WTEiBEUKVKE4OBgmjZtyp9//mlNsCKZROeyonNZ36DzWN+i81jfkN3OZZW0lSy3cuVKevXqxU8//cR3333H5cuX+c9//sO5c+esDk2ywPr163nrrbeoVKmS1aFIJjt58iR169YlV65cfP311/z++++8/PLLFChQwOrQJJO8+OKLTJ8+nWnTprF9+3ZefPFFJk6cyGuvvWZ1aJJBzp07R+XKlXn99ddTXD9x4kSmTp3Km2++ybp168idOzfNmjXj4sWLWRypSObRuaxv07msb9B5rO/ReaxvyG7nsjanLhuIxY4dO0ZERAQrV67k7rvvtjocyURnz56lWrVqvPHGG4wdO5YqVaowZcoUq8OSTDJ48GB+/PFHVq9ebXUokkUeeOABChcuzKxZs1zL2rRpQ3BwMO+//76FkUlmsNlsfPbZZ7Rq1QowPROioqJ49tlnGTBgAACnT5+mcOHCzJ07l7Zt21oYrUjm0bms79C5rO/Qeazv0Xms78kO57LqaSuWO336NAAFCxa0OBLJbL169eL++++nadOmVociWWDx4sXUqFGDhx9+mIiICKpWrcrMmTOtDksyUZ06dVi2bBl//PEHAJs3b+aHH37g3nvvtTgyyQp79uwhNjbW4zs+X7581KpVi7Vr11oYmUjm0rms79C5rO/Qeazv0XmseOO5rL8lRxX5l8PhoF+/ftStW5cKFSpYHY5konnz5rFx40bWr19vdSiSRf766y+mT59O//79GTp0KOvXr+fpp58mICCAzp07Wx2eZILBgwcTFxdHmTJl8PPzIzExkRdeeIH27dtbHZpkgdjYWAAKFy7ssbxw4cKudSI5jc5lfYfOZX2LzmN9j85jxRvPZZW0FUv16tWLbdu28cMPP1gdimSiAwcO0LdvX7777juCgoKsDkeyiMPhoEaNGowbNw6AqlWrsm3bNt58802d7OZQn3zyCR988AEffvgh5cuXZ9OmTfTr14+oqCi1uYjkSDqX9Q06l/U9Oo/1PTqPFW+k8ghimd69e/PFF1/w/fffU6xYMavDkUy0YcMGjh49SrVq1fD398ff35+VK1cydepU/P39SUxMtDpEyQRFihShXLlyHsvKli3L/v37LYpIMttzzz3H4MGDadu2LRUrVqRjx44888wzjB8/3urQJAtERkYCcOTIEY/lR44cca0TyUl0Lus7dC7re3Qe63t0HiveeC6rpK1kOafTSe/evfnss89Yvnw5pUqVsjokyWRNmjRh69atbNq0yfWoUaMG7du3Z9OmTfj5+VkdomSCunXrsnPnTo9lf/zxByVKlLAoIsls58+fx273PLXw8/PD4XBYFJFkpVKlShEZGcmyZctcy+Li4li3bh21a9e2MDKRjKVzWd+jc1nfo/NY36PzWPHGc1mVR5As16tXLz788EP+7//+j7x587pqg+TLl4/g4GCLo5PMkDdv3mR13nLnzk2hQoVU/y0He+aZZ6hTpw7jxo3jkUce4eeff2bGjBnMmDHD6tAkk7Ro0YIXXniB4sWLU758eX799VcmT57M448/bnVokkHOnj3Lrl27XPN79uxh06ZNFCxYkOLFi9OvXz/Gjh3L7bffTqlSpRg+fDhRUVGuUXlFcgKdy/oencv6Hp3H+h6dx/qG7HYua3M6nU5Ljiw+y2azpbh8zpw5dOnSJWuDEcs0bNiQKlWqMGXKFKtDkUz0xRdfMGTIEP78809KlSpF//796d69u9VhSSY5c+YMw4cP57PPPuPo0aNERUXRrl07RowYQUBAgNXhSQZYsWIFjRo1Sra8c+fOzJ07F6fTyciRI5kxYwanTp2iXr16vPHGG9xxxx0WRCuSOXQuK6BzWV+g81jfovNY35DdzmWVtBURERERERERERHxIqppKyIiIiIiIiIiIuJFlLQVERERERERERER8SJK2oqIiIiIiIiIiIh4ESVtRURERERERERERLyIkrYiIiIiIiIiIiIiXkRJWxEREREREREREREvoqStiIiIiIiIiIiIiBdR0lZERERERERERETEiyhpKyIiqbLZbCxatMjqMERERERE0kXnsSKS3SlpKyLipbp06YLNZkv2aN68udWhiYiIiIikSuexIiI3z9/qAEREJHXNmzdnzpw5HssCAwMtikZEREREJG10HisicnPU01ZExIsFBgYSGRnp8ShQoABgbvmaPn069957L8HBwdxyyy0sWLDA4/lbt26lcePGBAcHU6hQIXr06MHZs2c9tpk9ezbly5cnMDCQIkWK0Lt3b4/1x48f58EHHyQkJITbb7+dxYsXZ+6LFhEREZFsT+exIiI3R0lbEZFsbPjw4bRp04bNmzfTvn172rZty/bt2wE4d+4czZo1o0CBAqxfv5758+ezdOlSj5PZ6dOn06tXL3r06MHWrVtZvHgxt912m8cxYmJieOSRR9iyZQv33Xcf7du358SJE1n6OkVEREQkZ9F5rIjItdmcTqfT6iBERCS5Ll268P777xMUFOSxfOjQoQwdOhSbzcaTTz7J9OnTXevuuusuqlWrxhtvvMHMmTMZNGgQBw4cIHfu3AB89dVXtGjRgkOHDlG4cGGKFi1K165dGTt2bIox2Gw2hg0bxpgxYwBzAp0nTx6+/vpr1SQTERERkRTpPFZE5Oappq2IiBdr1KiRx8ksQMGCBV3TtWvX9lhXu3ZtNm3aBMD27dupXLmy60QXoG7dujgcDnbu3InNZuPQoUM0adLkmjFUqlTJNZ07d25CQ0M5evTojb4kEREREfEBOo8VEbk5StqKiHix3LlzJ7vNK6MEBwenabtcuXJ5zNtsNhwOR2aEJCIiIiI5hM5jRURujmraiohkYz/99FOy+bJlywJQtmxZNm/ezLlz51zrf/zxR+x2O6VLlyZv3ryULFmSZcuWZWnMIiIiIiI6jxURuTb1tBUR8WLx8fHExsZ6LPP39ycsLAyA+fPnU6NGDerVq8cHH3zAzz//zKxZswBo3749I0eOpHPnzowaNYpjx47Rp08fOnbsSOHChQEYNWoUTz75JBEREdx7772cOXOGH3/8kT59+mTtCxURERGRHEXnsSIiN0dJWxERL7ZkyRKKFCnisax06dLs2LEDMCPizps3j6eeeooiRYrw0UcfUa5cOQBCQkL45ptv6Nu3LzVr1iQkJIQ2bdowefJk1746d+7MxYsXeeWVVxgwYABhYWE89NBDWfcCRURERCRH0nmsiMjNsTmdTqfVQYiISPrZbDY+++wzWrVqZXUoIl487Q8AAOfwSURBVCIiIiJppvNYEZHrU01bERERERERERERES+ipK2IiIiIiIiIiIiIF1F5BBEREREREREREREvop62IiIiIiIiIiIiIl5ESVsRERERERERERERL6KkrYiIiIiIiIiIiIgXUdJWRERERERERERExIsoaSsiIiIiIiIiIiLiRZS0FREREREREREREfEiStqKiIiIiIiIiIiIeBElbUVERERERERERES8iJK2IiIiIiIiIiIiIl5ESVsRERERERERERERL6KkrYiIiIiIiIiIiIgXUdJWRERERERERERExIsoaSsiIiIiIiIiIiLiRZS0FREREREREREREfEiStqKiFhg7ty52Gw210NERERE5GbpHFNEJOdQ0lZEfNq8efNo1qwZhQsXJleuXOTLl49SpUrRsGFD+vbtyzfffGN1iJZasWKFx4n/3LlzrQ5JRERExOvpHDN9KlSo4HHOWaRIERISEqwOS0TEUv5WByAiYpVOnTrx3nvveSyLi4sjLi6OvXv3snLlSvbt20ezZs0y/Ng1a9Zk0qRJGb5fEREREbGWzjHTZ/369fz2228ey2JjY1myZAkPPPCARVGJiFhPSVsR8UlLlizxOJmuXr06zZo1I0+ePBw7doyNGzeydu3aTDt++fLlKV++fKbtX0RERESyns4x0y+1O7nmzp2bY5K2cXFxhIaGWh2GiGQzKo8gIj7p22+/dU3fdtttrFu3jhdeeIEhQ4YwefJkVqxYwbFjx3juuedc223evNnjtq39+/e71g0dOtS1vH///q7lR44c8XjOunXrgGvXG2vYsKFreZcuXfjzzz9p164dYWFhBAUFUa1aNf7v//4vs96aDPH333/z3HPPUbFiRfLkyUNQUBAlS5akQ4cO/Pzzz8m2T0hIYMqUKdSuXZv8+fPj7+9PoUKFKF++PJ06dWLevHke22/dupUOHTpQsmRJAgMDCQ4Opnjx4jRu3JghQ4bw999/Z9VLFREREXHROWb6xMfH89FHH7nm77jjDtf0559/zj///JPqc3fs2EGvXr0oV64cefLkISQkhFtuuYW2bdvyyy+/eGzrdDpZsGAB//3vfylatCiBgYEULFiQqlWr0r9/fy5dugTA3r17Pd6/FStWeOzn6vcwSUrPmzVrFtWqVSM4OJi7774bgD179tCvXz/q169PdHQ0uXPnJjAwkKJFi9KiRQs+//zzVF/v+vXr6dq1K7fddhshISHk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IiI5g84x03aOeWVphDp16riekzdvXu6//34+/fRTAD744AMmTpyIv79JX1x5vnnlhf2UXLltWra/2tXvRXx8fJqeV6ZMmRSXt2rVis2bN1/3+UnHOXnypEcMaYm/YsWKNGzYkBUrVpCYmMicOXNo2rSpqzRCeHg4DzzwQFpehohYzG51ACIiVrPZbJQvX57HH3+cuXPnsmXLFux299fjn3/+6bF9w4YNXdMrV650XSmvX7++60r/zz//zNKlS13bNWjQwGOfaZUrV65ksXqzggULuqZT6lly5bICBQq4pitVqsRvv/3Gli1bmDt3Ls8//7yrl67D4eCVV15x1fkCc1vckSNH+Oqrr5g8eTJPPvkkUVFRAOzbt4+nnnoqw1+biIiISHroHDN169atY/v27a75H3/8EZvN5nokJWwBjh49yldffeWav/J8c8+ePdc8zpXbpmX7q9/LCxcuuKYdDge7d+++5vOTpFRuYefOnR4J28cee4yDBw/icDhwOp2uXtdXKlCggEfbXC/+JFfWAZ49ezYff/yxa75Dhw7J2l9EvJOStiLik9555x3eeust4uLikq3LnTu3xwnb1bc2XVk37J133uH06dPY7Xbq1KnDXXfdRa5cubh48SKzZs1K8TlZbcWKFTidzmSPK38YZJQ6deq4po8dO+aqRwbmhPvK+Su33bRpE2B6BnTu3JmxY8fy1VdfUalSJdc2SbXg9uzZw6lTp8iXLx/33nsvzzzzDNOnT2fatGnJthURERHJSjrHTNs55pW9bNPiyu3r1avnmv7222/58ccfPbZNSEjg77//BuCuu+5y9dAFePHFF10D2iY5dOgQly9fBpK3yZUD3M6cOZNjx46lK+4rXTnuA5i7x4oWLYrNZmPFihUp7jskJMSjjMV7773Hrl27PLa5cOGCq4ZvkpYtW1K8eHEA/vrrL6ZPn+5a9/jjj9/waxCRrKXyCCLik/bs2UNMTAz9+vWjXr16VKlShYIFC/LPP/+wYMECj9pXzZs393julXXDjh8/Dpieovny5QPMyLfr1q3j9OnTKT4nO4uJifFIjiaJiopi8eLFdO7cmTFjxrhOStu0acPjjz/uGmDs7NmzgOnN0a9fP9fz77rrLqKioqhfvz5RUVGEhoayefNmj3ptSSfRH3/8MSNHjqRhw4bcfvvtFClShHPnzvHRRx8l21ZEREQkK+kc8/ouXrzIvHnzXPOlSpXizjvvTLbd1q1b+f333wH44osvOH78OGFhYTz33HMsWrQIh8NBYmIijRo14pFHHqF06dLExsbyzTff0Lt3b/r160eBAgXo0aMHb7zxBmAu7JcrV45WrVqRP39+/vjjDz777DMOHz5M/vz5CQ0N5Y477uCPP/4A4IUXXuDXX3/lwoULLF++/KZe92233YbdbneVtujbty+bNm3in3/+Yc6cOak+b/DgwTzyyCMAnD17lipVqtC2bVtKlCjBgQMH+OKLL3jjjTdo1aqV6zl+fn707NmTIUOGAO6BfGvUqEGFChVu6nWISNZR0lZEfNrFixdZunSpx21mV+revTsNGjTwWHbbbbcRHR3tMfDClQMg1K9fn3Xr1rnmCxcunGPqq+7du5e9e/cmW570wyJ//vwsXLiQli1bcurUKS5cuMDrr7/usa3dbmfixInJ3tc9e/akestXqVKleOihh1zzly5d4ttvv/UYcfhKAwcOTM/LEhEREclQOsdM3aJFizh16pRrfsyYMbRv3z7ZdsuXL6dJkyYAXL58mQ8++IC+ffty1113MWPGDJ566ikuXbrkWpeal19+mb1797pKLOzbt49XX3011e0HDhzIE088AZiSCF988QUAt9xyCwEBAezYsSPdrxnMoLw9evTgzTffBODAgQOMHj0agCZNmrBjxw5XD+ErPfzww4waNYqYmBicTifnzp3z6G2dmu7duxMTE+NK2IIGIBPJblQeQUR8Ur9+/ViwYAFPPfUUd955J8WLFyc4OJiAgACKFi3Kf//7Xz799FNmzJiR4vOv7tVw5W1aV49gmxllCLzZ3XffzbZt23j22WcpX748ISEhBAQEULx4cddouc8++6zHc6ZPn07Xrl2pVKkS4eHh+Pv7kydPHipVqsTAgQNZt26dq5dJq1atGDFiBE2bNqVkyZKEhITg7+9PkSJFuP/++1m8eLFHHS8RERGRrKJzzOu7stRBvnz5aN26dYrbNWrUyGPAtCuf161bNzZt2kTPnj0pU6YMISEhBAYGEh0dzUMPPeTxvgUFBfHFF1/wySef8MADDxAZGUmuXLkIDQ2lYsWK9O3bl5CQEI99z5w5k7JlyxIQEEBkZCQ9e/bk559/TnGg3fR47bXXGD16NCVKlCBXrlwUL16c5557js8//9yjjMPVRo4cyU8//UTnzp255ZZbCAoKIiQkhFtuuYWOHTum2Hu2UKFCPPbYYx7vw5XzIuL9bM60Dg0pIiIiIiIiIiLZwoQJE1wlEtq2betRTkxEvJ/KI4iIiIiIiIiI5ACxsbFs376dffv28dJLL7mW9+7d28KoRORGKGkrIiIiIiIiIpIDLFmyJFnt2ocffpi6detaFJGI3CjVtBURERERERERyUHsdjvFixdn0KBBvPPOO1aHIyI3QDVtRURERERERERERLyIetqKiIiIiIiIiIiIeBElbUVERERERERERES8iAYiS4HD4eDQoUPkzZsXm81mdTgiIiIichWn08mZM2eIiorCbveOfgirVq1i0qRJbNiwgcOHD/PZZ5/RqlUr13qn08nIkSOZOXMmp06dom7dukyfPp3bb7/dtc2JEyfo06cPn3/+OXa7nTZt2vDqq6+SJ0+eNMWg81gRERER75bW81glbVNw6NAhoqOjrQ5DRERERK7jwIEDFCtWzOowADh37hyVK1fm8ccfp3Xr1snWT5w4kalTp/LOO+9QqlQphg8fTrNmzfj9998JCgoCoH379hw+fJjvvvuOy5cv07VrV3r06MGHH36Yphh0HisiIiKSPVzvPFYDkaXg9OnT5M+fnwMHDhAaGmp1ODmaw+Hg2LFjhIeHe00vGclcanPfozb3PWpz35TV7R4XF0d0dDSnTp0iX758mX689LLZbB49bZ1OJ1FRUTz77LMMGDAAMOechQsXZu7cubRt25bt27dTrlw51q9fT40aNQBYsmQJ9913HwcPHiQqKuq6x9V5bNbRd53vUZv7HrW5b1K7+x5vPY9VT9sUJN1KFhoaqpPdTOZwOLh48SKhoaH6MvQRanPfozb3PWpz32RVu2eXEgB79uwhNjaWpk2bupbly5ePWrVqsXbtWtq2bcvatWvJnz+/K2EL0LRpU+x2O+vWrePBBx9Mtt/4+Hji4+Nd82fOnAEgT548aS6pIDfG4XBw4cIF8uTJo+86H6E29z1qc9+kdvc9Wd3mDocDuP55rJK2IiIiIiKZLDY2FoDChQt7LC9cuLBrXWxsLBERER7r/f39KViwoGubq40fP56YmJhky48dO8bFixczInRJhcPh4PTp0zidTv2o9xFqc9+jNvdNanffk9VtnnSR/XqUtBURERERyaaGDBlC//79XfNJt9uFh4frjrFM5nA4sNlsun3Wh6jNfY/a3Dep3X1PVrd50lgG16OkrYiIiIhIJouMjATgyJEjFClSxLX8yJEjVKlSxbXN0aNHPZ6XkJDAiRMnXM+/WmBgIIGBgcmW2+12/dDMAjabTe+1j1Gb+x61uW9Su/uerGzztB5DSdubkJiYyOXLl60OI1tzOBxcvnyZixcvWvplmCtXLvz8/Cw7voiIiORspUqVIjIykmXLlrmStHFxcaxbt46ePXsCULt2bU6dOsWGDRuoXr06AMuXL8fhcFCrVq0MjUfnsTdP57EiIiKSmZS0vQFOp5PY2FhOnTpldSjZntPpxOFwcObMGcsHEsmfPz+RkZGWxyEiIiLZ09mzZ9m1a5drfs+ePWzatImCBQtSvHhx+vXrx9ixY7n99tsp9f/s3XucTPUfx/HX7C7W/dK6rLtck+QulVB0IRFyzT26UKQbCSEplSR+SSWUa5KUIhRRiohuIpUWYW0u687uzO+PT7Nj28Vids7szvv5eMzD+Z45M/PZPWvmO5/z/X6+ZcowZMgQihYtSsuWLQG44ooruPXWW+nVqxeTJk3i9OnT9O3bl/bt21O0aFG/xKh+rP+oHysiIiLpSUnbi+Dt6BYqVIgcOXKoc3QJPB4PCQkJREREOPZ79Hg8HDt2LGk64plTFkVERETS6rvvvqNRo0ZJbW+t2a5duzJ16lQef/xxjh49Su/evTl48CDXX389ixcvTlbXbMaMGfTt25ebbrqJsLAwWrduzfjx4/0Wo/qx/qN+rIiIiKQnJW0vUGJiYlJH97LLLnM6nAwvGDq7ANmzZwcgNjaWQoUKaYqZiIiIXLCGDRvi8XjOer/L5WLEiBGMGDHirMcUKFCAmTNnpkd46sf6mfqxIiIikp5UUfkCeWt/5ciRw+FIxN+851T13URERCQzUj8281I/VkREJPNR0vYiaSpZ5qNzKiIiIqFAfZ7MR+dUREQk81HSVi5a6dKlGTdunNNhiIiIiIhcMPVlRUREJJippq1DEhNh1SrYvRuio6F+fUiv8lPnu/I+bNgwnn766Qt+3nXr1pEzZ86LjEpEREREMir1ZUVERETSl5K2Dpg/H/r1g507ffuKF4dXXoFWrfz/ert3707anjNnDkOHDmXLli1J+3LlypW07fF4SExMJCLi/H8aBQsW9G+gIiIikrHExEBcnG273UTs3w8FCkDYv5O5oqKgZEnn4pN0ob6siIhI5hLIi7GSdiqPEGDz50ObNsk7uQC7dtn++fP9/5pFihRJuuXNmxeXy5XU/vXXX8mdOzeffvopNWvWJFu2bKxevZrff/+dFi1aULhwYXLlykXt2rVZtmxZsuf975Qyl8vFm2++yZ133kmOHDkoX748Cxcu9P8PJCIiIs6LiYGKFaFmTahZk7DatYm65RbCatdO2kfFinacZBrqy4qIiGQu8+dD6dLQqBF07Gj/li6dPp/pcmGUtA2gxEQbleDxpLzPu69/fzsu0AYOHMhzzz3H5s2bqVq1KkeOHKFp06YsX76c77//nltvvZXmzZsTc54vXsOHD6dt27b88MMPNG3alE6dOrF///4A/RQiIiISMHFxcOLEuY85ccI3ElcyPPVlRUREMhcnLsZK2qk8gp/UqgV79pz7mJMnz/29xeOBHTugSBHIlu38r1mkCHz33YXFeTYjRoygSZMmSe0CBQpw9dVXJ7VHjhzJBx98wMKFC+nbt+9Zn6dbt2506NABgGeffZbx48ezdu1abr31Vv8EKiIiIiJ+lZZ+LKgvKyIikpkkJkLfvue+GNutG2zZAoULW9WrggV9/+bNC+cpOy+XSElbP9mzx65E+IMTA1Jq1aqVrH3kyBGefvppFi1axO7du0lISOD48ePnHZ1QtWrVpO2cOXOSJ08eYmNj0yVmEREREbl0/uzHgvqyIiIiwejUKdi0CdasgW++gc8/h717z/2Yw4fhySdTvy8iwhK4/03mnrl95r9RUZA1q/9/rsxMSVs/KVLk/Mecb3SCV1RU2kcn+Mt/V8599NFHWbp0KS+++CLlypUje/bstGnThlOnTp3zebJkyZKs7XK5cLvd/gtURERERPwqrX1K9WVFREQyjl27fAnab76B9evPX9nqQiQk2IXftMzW8cqTJ/Wk7tkSvXnypP9o3sREWLkStmyJpGJFaNAgeBZhU9LWT9IytSsx0Yo579qV+vBzl8tW3v3zT+f/QL766iu6devGnXfeCdhohe3btzsblIiIiIj4XVpLFKgvKyIiEpxOnIDvv/cladesSVmn9r+yZrXRt+fz9NN2oXXfPrt4u29fyu2TJ9MWZ3y83X7/PW3HZ8mSejL3bAnfyy6zx6TV/PlWr3/nzjAgH2B9mVdegVat0v486UVJ2wAKD7cT36aNdWrP7Ox6rxyMG+d8JxegfPnyzJ8/n+bNm+NyuRgyZIhGGYiIiIjPjh1ORyABpr6siIiI8zweiInxJWe/+cYStudLwJYtC9dcA/Xq2b9XXgnly5//YuxTT537s93jgaNHfUnc//6b2r4DB9L2s54+Dbt32y2t8uVLW6J3/Xro0yflz+5dhG3ePOcTt0raBlirVnbiLZPv21+8uHVynf6D8Bo7diw9evTg2muvJSoqiieeeIL4+HinwxIREZFg4HbDyJFORyEOUF9WREQksI4ft1kxZyZpz5fEzJkT6tTxJWivucYSlf/lj4uxLhfkymW30qXT9jMlJMA//6Qtwev9Ny2jggEOHrTbtm1pO/6/PB77mfr3hxYtnL0Y7fJ4Usunh7b4+Hjy5s3LoUOHyJMnT7L7Tpw4wZ9//kmZMmWIjIy86NdITIRVq+w/WnQ01K8fHKMSAs3j8ZCQkEBERAQuh5cd9Ne5lXNzu93ExsZSqFAhwsLCnA5HAkDnPPTonIeASZPg/vvPf1xkpC05XLKk30M4V38tlAWiHwvqy4L6saFIn2+hR+c8NDl53j0eKzN0ZpmDTZssyXkuFSumHEUbkcZhmr4SAb59JUoE18VYjweOHEl7gjcuzhK3l+qLL6Bhw0t/nv9Kaz9WI20dEh6ePideREREJF3FxMDjj/vaEyfCNdfgdrvZv38/BQoU8H3BiYpKl4StOE99WRERkUt35IiNoj1zwbDY2HM/Jk8eqFvXl6StU8dquV6sVq1sRGkwX4x1uSB3brtdfnnaHnP6tI3mTS3R+9VXsHTp+Z/jQsoypAclbUVEREQkbTweuPdeOHzY2j16wAMP2LbbTUJsLBQqBBqNJCIiIpKMxwO//Za8zMEPP1jVqXOpXNk3grZePahUyf8J1cx4MTZLFltArUiRlPetWJG2pG10tN/DuiBK2oqIiIhI2rzzDixebNvR0fDSS87GIyIiIhKk4uNh7drkSdr9+8/9mHz5kpc5qFPH9ol/1a9v9fjPtwhb/fqBj+1MStqKiIiIyPnt2WMrMnhNmqRvESIiIpKpJCbCypWwZUskFStCgwZpG9XqdlsZ/zNr0f78c+oJQa+wMKhSJXmStkIFTVgKhPBw/yzClt6UtBURERGR8+vTBw4csO327eGOO5yNR0RERMSPfAtyhQH5ABtt+corKRfkOnDARtF6k7Tffnv+ha8uuyx5mYPata1GqzijVSuYNy/lImzFiwfPImxK2oqIiIjIuc2bZ99kwBYXGz/e2XhERERE/Gj+fBt1+d+Rsbt22f6XXoJcuXxJ2s2bz/184eFw9dWWoPUmacuW9Y3ilODgXYRt5Uo3W7bEU7FiHho0CHN8hK2XkrYiIiIicnb//GOjbL1efRUKFnQuHhERERE/Sky00ZaplTLw7hsw4NzPUbhw8lG0NWtCzpz+j1X8z7sIW+XKJyhUKE9QladQ0lZEREREzq5/f4iNte077oB27RwNR0RERMSfVq1KPj3+fCIioHr15EnaUqU0ilb8T0lbEREREUndJ5/Au+/adt688Npr+kYiIiIimYLbbYuODRuWtuM7dYL774caNSB79vSNTQQgiAb9SrBr2LAh/c9YNbp06dKMGzfunI9xuVwsWLDgkl/bX88jIiIiaXToENx7r689diwULepcPCKXQP1YERHx2rYNhgyByy+HG2+0kbZpcc89cN11SthK4GikbaDFxEBc3Nnvj4qCkiX9/rLNmzfn9OnTLF68OMV9q1at4oYbbmDTpk1UrVo1zc+5bt06cvq5SMvTTz/NggUL2LhxY7L9u3fvJn/+/H59LRERETmHxx/3zRVs0gS6d3c2HgkODvRl1Y8VEZFLdfAgzJ0L06bB11+nvN/lSr2mrfe+4sWhfv10DVEkBSVtAykmBipWhBMnzn5MZCRs2eL3zm7Pnj1p3bo1O3fupHjx4snue/vtt6lVq9YFdXQBCgZwEZIiRYoE7LVERERC3hdfwOTJtp0zp22rLII41JdVP1ZERC5GQgIsXWqJ2gUL4OTJ5PeHhcHNN0PXrpaw7dTJ9p+ZvPV2f8aNswWrRAJJ5RECKS7u3J1csPvPNXrhIt1+++0ULFiQqVOnJtt/5MgR3nvvPVq2bEmHDh0oVqwYOXLk4KqrrmLWrFnnfM7/Tiv77bffuOGGG4iMjKRy5cosXbo0xWOeeOIJKlSoQI4cObj88ssZMmQIp0+fBmDq1KkMHz6cTZs24XK5cLlcSfH+d1rZjz/+yI033kj27Nm57LLL6N27N0eOHEm6v1u3brRs2ZIXX3yR6OhoLrvsMvr06ZP0WiIiInIWR4/a/D+v556D0qUdC0eCiEN9WfVj1Y8VEbkQP/0Ejz0GJUpA06YwZ07yhG2VKvDCC7BjB3z6KbRvDx06wLx5UKxY8ucqXtz2t2oV2J9BBDTSNmRERETQpUsXpk6dyuDBg3H9e7novffeIzExkbvvvpv33nuPJ554gjx58rBo0SI6d+5M2bJlqVOnznmf3+1206pVKwoXLsy3337LoUOHktUN88qdOzdTp06laNGi/Pjjj/Tq1YucOXMycOBA2rVrx08//cTixYtZtmwZAHnz5k3xHEePHuWWW26hXr16rFu3jtjYWO655x769u2brDP/xRdfEB0dzRdffMG2bdto164d1apVo1evXhf3SxQREQkFTz0Ff/xh29dfDw884Gw8EvLUj1U/VkTkfOLiYOZMG1W7YUPK+6OioGNHG1VbvXrqE4hatYIWLWDlSjdbtsRTsWIeGjQI0whbcYyStv5Sqxbs2XPuY06dSttz3XorZM16/uOKFIHvvkvbcwI9evTghRdeYOXKlTRs2BCwKWWtW7emVKlSPProo0nHPvjggyxZsoS5c+emqbO7bNkyfv31V5YsWULRfxcpefbZZ7ntttuSHffUU08lbZcuXZpHHnmE2bNnM3DgQLJnz06uXLmIiIg45zSymTNncuLECaZPn55Ui2zChAk0b96c559/nsKFCwOQP39+JkyYQHh4OJUqVaJZs2YsX75cnV0REZGzWbMGXnnFtiMj4a23bO6gZG5p6ceCo31Z9WPVjxUR+a9Tp2DRIkvULlpk5RDOlCULNGsG3brBbbel7aMpPBwaNoTKlU9QqFAedYPEUUra+suePbBrl3+ea98+/zzPf1SqVIlrr72WKVOm0LBhQ7Zt28aqVasYMWIEiYmJPPvss8ydO5ddu3Zx6tQpTp48SY4cOdL03Js3b6ZEiRJJHV2AevXqpThuzpw5jB8/nt9//50jR46QkJBAnjx5Lujn2Lx5M1dffXWyxSOuu+463G43W7ZsSersXnnllYSfcUksOjqaH3/88YJeS0REJGScOAE9e/oKuQ0fDhUqOBuTBIY/+7GQLn1Z9WPVjxURAeumrF9vidpZs+Cff1IeU7Omjajt0MFG2IpkVEra+ktaFhg4dSptndiCBdM+OuEC9ezZkwcffJCJEyfy9ttvU7ZsWRo0aMDzzz/PK6+8wrhx47jqqqvImTMn/fv351RaR1SkwZo1a+jUqRPDhw/nlltuIW/evMyaNYuxY8f67TXOlCVLlmRtl8uF2+1Ol9cSERHJ8EaOhM2bbbtWLRgwwNl4JHDS2qd0uC+rfqz6sSISuv7+G95915K1v/yS8v7oaLj7bkvWXnll4OMTSQ9K2vpLWqZ2bdhgl3zOZ/FiqFHj0mNKRdu2benXrx8zZ85k+vTp3H///bhcLr766itatGjB3XffDVhtr61bt1K5cuU0Pe8VV1zBjh072L17N9HR0QB88803yY75+uuvKVWqFIMHD07a99dffyU7JmvWrCQmJp73taZOncrRo0eTRil89dVXhIWFUbFixTTFKyIiImf4/nt4/nnbzpIFpkyBCHUTQ0Zay2053JdVP1ZEJLQcPw4LFliidulS+O+1q8hIaNnSErWNG6vrIpmPqnOEmFy5ctGuXTsGDRrE7t276datGwDly5dn6dKlfP3112zevJl7772XvXv3pvl5GzduTIUKFejatSubNm1i1apVyTq13teIiYlh9uzZ/P7774wfPz7ZSrpg9cH+/PNPNm7cSFxcHCfPXOLxX506dSIyMpKuXbvy008/8cUXX/Dggw/SuXPnpCllIiIikkanT0OPHuBNNj35JFx1lbMxiaRC/VgRkczP44HVq6FXL5uQ0bEjLFmSPGF73XUwebJV95k1y0qpK2ErmZGStoEUFWWXgs4lMjLdi6707NmTAwcOcMsttyTV7nrqqaeoUaMGt9xyCw0bNqRIkSK0bNkyzc8ZFhbGBx98wPHjx6lTpw733HMPo0aNSnbMHXfcwcMPP0zfvn2pVq0aX3/9dbIFHQBat27NrbfeSqNGjShYsCCzZs1K8Vo5cuRgyZIl7N+/n9q1a9OmTRtuuukmJkyYcOG/DBERkVA3Zgxs3GjbVapY0lYkNUHQl1U/VkQkc9q+HUaMgPLloX59ePNNiI/33V+qFAwZAr/95kvq5s3rWLgiAeHyeLyrTYhXfHw8efPm5dChQykWFzhx4gR//vknZcqUIfJ8ndbUxMRAXNzZ74+KgpIlL/x5MyiPx0NCQgIRERG4XC5HY7nkcytp4na7iY2NpVChQoRpKc6QoHMeenTOM5BffoHq1a1WaVgYfPMN1K59UU8V6PN+rv5aKEvXfiyoL3sG9WNDjz7fQo/Oefo6fBjmzbPyBytXprw/Vy5o08bKH9xwg3VVAkHnPfQEaz9WA8gDrWTJkOnIioiISBBLTISePS1hC/DIIxedsJUQor6siIhcgsRE+OILS9TOnw/HjiW/3+WCG2+0RG2rVvBv+W+RkKSkrYiIiEgoGj/eRtaCzUUcPtzZeERERCTT2rLFErXvvAM7d6a8v0IFS9R27gwlSgQ+PpFgpKStiIiISKj5/Xc4c6Glt96C7Nmdi0dEREQynQMHYPZsS9Z++23K+/Plg/btLVlbt66NshURHyVtRUREREKJ222rdxw/bu0+fWzFDxEREZFLdPo0LFliidqFC31VmLzCw+HWWy1R27z5+de3FAllStqKiIiIhJI33rBicmBLMY8e7Ww8IiIikuFt2mSJ2hkzIDY25f1Vq1qitmNHKFIk8PGJZEQZYhm8iRMnUrp0aSIjI6lbty5r16495/Hjxo2jYsWKZM+enRIlSvDwww9z4sQJv8bk8Xj8+nziPJ1TERHJ9HbsgMce87UnT4bcuZ2LRxyhPk/mo3MqIk7YuxdefhmqVbPbyy8nT9gWLAj9+8P331tSd8AAJWxFLkTQj7SdM2cOAwYMYNKkSdStW5dx48Zxyy23sGXLFgoVKpTi+JkzZzJw4ECmTJnCtddey9atW+nWrRsul4uxY8decjxZsmQB4NixY2RX7bdM5di/y1Z6z7GIiEim4vHAfffB4cPW7t4dbr7Z2ZgkoNSPzbzUjxURf0pMhFWrYPduiI62Kkrh4XbfyZPw0Uc2qvbTT+3YM2XNamUPuna1Mgh6WxK5eEGftB07diy9evWie/fuAEyaNIlFixYxZcoUBg4cmOL4r7/+muuuu46OHTsCULp0aTp06MC3qVW9vgjh4eHky5eP2H8vH+XIkQOXqmVfNI/HQ0JCAhEREY79Hj0eD8eOHSM2NpZ8+fIR7v00EhERyUzefRc++cS2o6PhpZecjUcCTv1Y/1I/VkQyo/nzoV8/2LnTt694cSuBHxNjC4sdOJDycXXqWKK2fXsoUCBw8YpkZkGdtD116hTr169n0KBBSfvCwsJo3Lgxa9asSfUx1157Le+++y5r166lTp06/PHHH3zyySd07tzZb3EV+Xc8f2xqhVrkgng8HtxuN2FhYY5/aciXL1/SuRUREclU9u61+Yler70G+fM7Fo44R/1Y/1E/VkQym/nzoU0bm5xzpp074Yy0TJJixaBzZ+jSBa64IjAxioSSoE7axsXFkZiYSOHChZPtL1y4ML/++muqj+nYsSNxcXFcf/31SVe/77vvPp588smzvs7Jkyc5efJkUjs+Ph4At9uN2+1O9TGFCxcmKiqK06dPX+iPJWdwu93s37+fAgUKEBbmXInlLFmyEB4ejsfjUU2wdOZ2u5O+5Eho0DkPPTrnwcfVpw+u/fsB8LRrh6d5c/Dz+Qn0edff18VxuVxER0dTqFAh9WMvkdvt5p9//uGyyy4Lin6siMilSEy0Ebbn+zocGQmtW9uo2htv9JVNEBH/C+qk7cVYsWIFzz77LP/73/+oW7cu27Zto1+/fowcOZIhQ4ak+pjRo0czfPjwFPv37dvn9wXMJDm3283Ro0eJiIhwtLMrgeN2uzl06BAej0fnPETonIcenfPgku3jj8n//vsAuAsUYN9TT+FJh1GWgT7vh721eeWihIeHK9F3idxuN1myZCEyMlLvdSKS4a1albwkwtnMmwfNmqV/PCIS5EnbqKgowsPD2bt3b7L9e/fuPev0nyFDhtC5c2fuueceAK666iqOHj1K7969GTx4cKodqkGDBjFgwICkdnx8PCVKlKBgwYLkyZPHjz+R/Jfb7cblclGwYEF1dkOEznno0TkPPTrnQWT/flxPPeVrjx9PwcqV0+WlAn3eIyMj0/01REREQsXu3Wk77t+JySISAEGdtM2aNSs1a9Zk+fLltGzZErAvBMuXL6dv376pPubYsWMpvih4RxGcbdp7tmzZyJYtW4r9YWFh+rIZAC6XS7/rEKNzHnp0zkOPznmQeOQRq2cLcMcdhHXsCOlYezOQ511/WyIiIv7z009pOy46On3jEBGfoE7aAgwYMICuXbtSq1Yt6tSpw7hx4zh69Cjdu3cHoEuXLhQrVozRo0cD0Lx5c8aOHUv16tWTyiMMGTKE5s2bawqYiIiIhI5PPoHp0207b15bfMzhxZJEREQkuHg8MGIEPPvsuY9zuaB4cahfPzBxiUgGSNq2a9eOffv2MXToUPbs2UO1atVYvHhx0uJkMTExyUZaPPXUU7hcLp566il27dpFwYIFad68OaNGjXLqRxAREREJrPh4uPdeX/ull6BoUefiERERkaBz6hT06uW7xuvlciVfkMx7zXfcOC08JhJIQZ+0Bejbt+9ZyyGsWLEiWTsiIoJhw4YxbNiwAEQmIiIiEoSeeMK3mkjjxtCjh7PxiIiISFA5cABatYIzUyovvABlykD//skXJSte3BK2rVoFOEiREJchkrYiIiIikkYrVsCkSbadMye88YbKIoiIiEiSP/6Apk1hyxZrR0bCu+9C69bWbtkSVq2yxcmio60kgkbYigSekrYiIiIimcWxY3DPPb726NFQurRj4YiIiEhw+eYbuOMO2LfP2gULwsKFcM01vmPCw6FhQ0fCE5EzaNldERERkcxiyBD4/Xfbvu466NPH2XhEREQkaMybB40a+RK2lSrBt98mT9iKSPBQ0lZEREQkM/jmG3j5ZdvOlg3eegvC1NUTEREJdR6P1au96y44ccL2NWwIX39tNWxFJDipJy8iIiKS0Z08aYuNeZd6HjECKlZ0NiYRERFxXEIC3H8/PP64b1+XLrBkCeTP71xcInJ+StqKiIiIZHTPPAObN9t2zZowYICz8YiIiIjj4uPh9tvh9dd9+4YPh6lTIWtWx8ISkTTSQmQiIiIiGdnGjbbgGEBEBEyZYv+KiIhIyNqxwxK2P/xg7axZrXLS3Xc7G5eIpJ169CIiIiIZ1enTVhYhMdHagwdD1arOxiQiIiKO+v57S9j+/be18+eHBQvghhscDUtELpDKI4iIiIhkVC++aN/MAKpUgSefdDYeERERcdTHH0P9+r6E7eWXw5o1StiKZERK2oqIiIhkRJs3w9NP23ZYmJVFUIE6ERGRkDVxIrRoAUePWrtePfjmG61NKpJRKWkrIiIiktEkJkLPnnDqlLUfeQRq13Y2JhEREXFEYqKtQdq3L7jdtu+uu2D5cihY0NnYROTiKWkrIiIiktG8+qrNdQQoX96WghYREZGQc/QotGkDL7/s2zdwIMyeDdmzOxeXiFw6LUQmIiIikpH88YctOOb15pv6ViYiIhKC9uyB5s3hu++sHR4Or70GvXo5G5eI+IeStiIiIiIZhccD99wDx45Zu08frSwiIiISgn7+GZo1g7/+snbu3DBvHtx8s7NxiYj/KGkrIiIiklG88QZ88YVtlywJo0c7G4+IiIgE3PLl0Lo1HDpk7RIlYNEiuOoqZ+MSEf9STVsRERGRjGDnTnj0UV/7jTdsWI2IiIiEjClT4NZbfQnbGjXgm2+UsBXJjJS0FREREQl2Hg/cey8cPmzt7t01/1FERCSEuN1W0r5nT0hIsH3Nm8OXX0LRos7GJiLpQ+URRERERILdjBnwySe2XaQIvPSSs/GIiIhIwJw4YddrZ8/27XvoIRg71hYfE5HMSUlbERERkWC2dy/06+drT5oE+fM7F4+IiIgETFwctGwJX31lbZcLxo2zpK2IZG5K2oqIiIgEswcfhP37bbtdO2jRwtl4REREJCB++w2aNoVt26ydIwfMmgV33OFsXCISGEraioiIiASr+fPhvfds+7LL4NVXnY1HREREAmL1artO671uW6QIfPwx1KzpbFwiEjhaiExEREQkGO3fDw884Gu/+ioULOhcPCIiIhIQs2bBTTf5ErZVqsC33yphKxJqlLQVERERCUYDBlg9W7Dlodu3dzYeERERSVceD4waBR07wqlTtq9JExt1W7Kks7GJSOCpPIKIiIhIsPn0U5g2zbbz5IHXXrOVR0RERCRTOn0a7rsPpkzx7bvnHvjf/yBLFufiEhHnaKStiIiIP8XEwIYNZ7/FxDgdoQS7+Hi4915fe+xYKFbMuXjErw4fPkz//v0pVaoU2bNn59prr2XdunVJ93s8HoYOHUp0dDTZs2encePG/Pbbbw5GLCIi6e3gQbjttuQJ29GjYfJkJWxFQplG2oqIiPhLTAxUrAgnTpz9mMhI2LJFc9zk7AYOhB07bLtxY+jRw9l4xK/uuecefvrpJ9555x2KFi3Ku+++S+PGjfnll18oVqwYY8aMYfz48UybNo0yZcowZMgQbrnlFn755RciIyOdDl9ERPxs+3Zo1gx++cXa2bLB9OnQtq2jYYlIENBIWxEREX+Jizt3whbs/ri4wMQjGc+KFVYKASBHDhtio7IImcbx48d5//33GTNmDDfccAPlypXj6aefply5crz22mt4PB7GjRvHU089RYsWLahatSrTp0/n77//ZsGCBU6HLyIifrZuHVxzjS9hGxUFn3+uhK2IGI20FREREQkGx45Z8Tqv556DMmWci0f8LiEhgcTExBQjZrNnz87q1av5888/2bNnD40bN066L2/evNStW5c1a9bQPpXF6E6ePMnJkyeT2vHx8QC43W7cbnc6/SQC9jv2eDz6PYcQnfPQk57nfMECuPtuF8eP28XZChU8fPyxh7JlQX9iztL/9dAT6HOe1tdR0lZEREQkGAwdCr//btvXXQd9+jgbj/hd7ty5qVevHiNHjuSKK66gcOHCzJo1izVr1lCuXDn27NkDQOHChZM9rnDhwkn3/dfo0aMZPnx4iv379u3jxPlG/sslcbvdHDp0CI/HQ1iYJjCGAp3z0JMe59zjgcmT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+OILKFToksMVkdClpK2IiAC2RseZfcs//rA1Oj780Nm4RERERM5pxw644QaYMsW37+GHYenSS0qaJSbabKSz5fJcLnuZxMSLfglxSs6c8P77vroW77wDb755cc+1aZMlbPfts3aNGjYCIirKL6GKSOhS0lZERJJcdx2sW2flvsBmjLVsCaNGXdrgAxERgdKlS+NyuVLc+vTpA8CJEyfo06cPl112Gbly5aJ169bs3bvX4ahFgtzKlVa/dt06a2fPDjNmwNixNp3oEqxadfYRtmB9ox077DjJgCpWTJ6offBB2LDhwp5jwwZb8M5bV6x2bVi2TEOwRcQvlLQVEZFkSpa00m/t2vn2PfUUdOgAx445F5eISEa3bt06du/enXRbunQpAHfddRcADz/8MB999BHvvfceK1eu5O+//6ZVq1ZOhiwSvDweKyh7002+EY5lytgiZB07+uUlduxI23He8rmSAbVrB3372vb/27vv8Kiq9IHj30koAVZ6CwLCsorgqqyggoiCIIqCAqKi6GLFAipiBUVFFKyIhWLXtbGKgA1FQcGOWLAhqD9RsNCkhLK0zPz+OIYhUgyQZCaZ7+d55mHOuXfuvMNNJmfeOfc969bBiSfC8uV5e+yMGeHnb+nS0G7ePMzurlSpQEKVlHpM2kqStlC2LDzzTJhhm+O//4VDD837BxhJUm7VqlWjZs2am24vv/wyDRo04PDDD2fFihU8/PDDDBs2jCOOOIKmTZvy6KOP8v777/Phhx8mOnQpuaxZExaSuuSSeG2C9u1D/dr998+Xp5gxA66/Pm/7Zmbmy1MqUe64IyzmAKE+2Jln/vUlZh9+CO3axRO8LVvCpElQoUKBhiopteza9SKSpGIrEoEBA8LCtz16hFIJn30W1vIYNy6MTSVJO2f9+vU8+eST9OvXj0gkwieffMKGDRto167dpn323ntv6tatywcffEDz5s23epx169axbt26Te2srCwAotEo0Wi0YF9EiotGo8RiMf+fC9uPPxI54QQiM2du6opddRWxwYMhPR128Xz8739www0Rhg2DaDSS8wxAZIt9I5EYtWtDy5axXX1aJVLJkjBmDJGmTYksWwYTJhC9807o12/rv+fvvUfk2GOJrFwJQOzww4m9+GKoj+sPQrHg+3vqKexzntfnMWkrSdqu444LkwmOOy5MPli0CNq0gVGj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\n"
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            " Training curves\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "\n",
        "print(\"FINAL COMPARISON TABLE\")\n",
        "\n",
        "print()\n",
        "print(f\"{'Metric':<20} {'ViT':<15} {'Swin':<15}\")\n",
        "\n",
        "print(f\"{'Accuracy (%)':<20} {vit_acc:<15.2f} {swin_acc:<15.2f}\")\n",
        "print(f\"{'Precision (%)':<20} {vit_precision:<15.2f} {swin_precision:<15.2f}\")\n",
        "print(f\"{'Recall (%)':<20} {vit_recall:<15.2f} {swin_recall:<15.2f}\")\n",
        "print(f\"{'F1-Score (%)':<20} {vit_f1:<15.2f} {swin_f1:<15.2f}\")\n",
        "\n",
        "print(f\"{'Energy (Wh)':<20} {vit_total_energy*1000:<15.2f} {swin_total_energy*1000:<15.2f}\")\n",
        "print(f\"{'CO2 (grams)':<20} {vit_co2*1000:<15.2f} {swin_co2*1000:<15.2f}\")\n",
        "print(f\"{'Time (minutes)':<20} {vit_time/60:<15.2f} {swin_time/60:<15.2f}\")\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "8ZFLS1fTqTXg",
        "outputId": "0c95fb79-181c-4fd6-be8b-45bf6e47e7ca"
      },
      "execution_count": 26,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "FINAL COMPARISON TABLE\n",
            "\n",
            "Metric               ViT             Swin           \n",
            "Accuracy (%)         62.59           82.99          \n",
            "Precision (%)        62.63           83.19          \n",
            "Recall (%)           62.59           82.99          \n",
            "F1-Score (%)         60.96           83.03          \n",
            "Energy (Wh)          21.83           23.38          \n",
            "CO2 (grams)          5.84            6.26           \n",
            "Time (minutes)       11.35           12.12          \n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "\n",
        "print(\"PROJECT SUMMARY\")\n",
        "\n",
        "\n",
        "print(\"\\n1. DATASET:\")\n",
        "print(f\"   Total Images: {len(all_files)}\")\n",
        "print(f\"   Training: {len(train_files)}\")\n",
        "print(f\"   Validation: {len(val_files)}\")\n",
        "print(f\"   Test: {len(test_files)}\")\n",
        "\n",
        "print(\"\\n2. TRAINING:\")\n",
        "print(f\"   Epochs: {num_epochs}\")\n",
        "print(f\"   Batch Size: {batch_size}\")\n",
        "print(f\"   Learning Rate: {learning_rate}\")\n",
        "\n",
        "print(\"\\n3. PERFORMANCE:\")\n",
        "print(f\"   ViT Accuracy: {vit_acc:.2f}%\")\n",
        "print(f\"   Swin Accuracy: {swin_acc:.2f}%\")\n",
        "\n",
        "print(\"\\n4. ENERGY EFFICIENCY:\")\n",
        "print(f\"   ViT Energy: {vit_total_energy*1000:.2f} Wh\")\n",
        "print(f\"   Swin Energy: {swin_total_energy*1000:.2f} Wh\")\n",
        "\n",
        "print(\"\\n5. BEST MODEL:\")\n",
        "if swin_acc > vit_acc:\n",
        "    print(f\"   Accuracy Winner: Swin ({swin_acc:.2f}%)\")\n",
        "else:\n",
        "    print(f\"   Accuracy Winner: ViT ({vit_acc:.2f}%)\")\n",
        "\n",
        "if swin_total_energy < vit_total_energy:\n",
        "    print(f\"   Energy Winner: Swin ({swin_total_energy*1000:.2f} Wh)\")\n",
        "else:\n",
        "    print(f\"   Energy Winner: ViT ({vit_total_energy*1000:.2f} Wh)\")\n",
        "\n",
        "\n",
        "\n",
        "\n",
        "print(\"PROJECT COMPLETE!\")\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "sPaMGAWiq9WS",
        "outputId": "2df0d457-95d4-43f6-d61c-2516050c6374"
      },
      "execution_count": 27,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "PROJECT SUMMARY\n",
            "\n",
            "1. DATASET:\n",
            "   Total Images: 1958\n",
            "   Training: 1370\n",
            "   Validation: 294\n",
            "   Test: 294\n",
            "\n",
            "2. TRAINING:\n",
            "   Epochs: 10\n",
            "   Batch Size: 16\n",
            "   Learning Rate: 0.0001\n",
            "\n",
            "3. PERFORMANCE:\n",
            "   ViT Accuracy: 62.59%\n",
            "   Swin Accuracy: 82.99%\n",
            "\n",
            "4. ENERGY EFFICIENCY:\n",
            "   ViT Energy: 21.83 Wh\n",
            "   Swin Energy: 23.38 Wh\n",
            "\n",
            "5. BEST MODEL:\n",
            "   Accuracy Winner: Swin (82.99%)\n",
            "   Energy Winner: ViT (21.83 Wh)\n",
            "PROJECT COMPLETE!\n"
          ]
        }
      ]
    }
  ]
}