{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "c8999a7d-3d48-4329-85cf-a216e55938af",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/anaconda3/envs/yt38/lib/python3.8/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
      "  from .autonotebook import tqdm as notebook_tqdm\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "import os\n",
    "import torch\n",
    "from torchvision import transforms, datasets\n",
    "from torch.utils.data import Dataset, DataLoader\n",
    "from PIL import Image\n",
    "import random\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "import torch\n",
    "import torch.optim as optim\n",
    "from torch.utils.data import random_split, DataLoader\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "54b3b908-05a3-45e7-a924-733a5d6f23b5",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Number of pairs for class abnormal weld: 100\n",
      "Number of pairs for class corrosion: 100\n",
      "Number of pairs for class normal pipe: 100\n",
      "Number of pairs for class normal weld: 100\n",
      "Number of pairs for class scale: 100\n",
      "Number of pairs for class slight crack: 100\n"
     ]
    }
   ],
   "source": [
    "class CustomConcatDataset(Dataset):\n",
    "    def __init__(self, audio_dataset_path, image_dataset_path, transform=None):\n",
    "        self.audio_dataset_path = audio_dataset_path\n",
    "        self.image_dataset_path = image_dataset_path\n",
    "        self.transform = transform\n",
    "        \n",
    "        self.classes = [c for c in sorted(os.listdir(audio_dataset_path)) if c != '.ipynb_checkpoints']\n",
    "        self.class_to_audio_files = {}\n",
    "        self.class_to_image_files = {}\n",
    "        self.data_pairs = []\n",
    "        \n",
    "        for c in self.classes:\n",
    "            self.class_to_audio_files[c] = [f for f in sorted(os.listdir(os.path.join(audio_dataset_path, c))) if os.path.isfile(os.path.join(audio_dataset_path, c, f))]\n",
    "            self.class_to_image_files[c] = [f for f in sorted(os.listdir(os.path.join(image_dataset_path, c))) if os.path.isfile(os.path.join(image_dataset_path, c, f))]\n",
    "\n",
    "            \n",
    "            # Create all possible pairs for the class\n",
    "            all_pairs = [(c, audio_file, image_file) for audio_file in self.class_to_audio_files[c] for image_file in self.class_to_image_files[c]]\n",
    "            \n",
    "            # Shuffle and take up to 1000 pairs\n",
    "            random.shuffle(all_pairs)\n",
    "            selected_pairs = all_pairs[:100]\n",
    "            self.data_pairs.extend(selected_pairs)\n",
    "\n",
    "            # Print the number of selected pairs for the class\n",
    "            print(f\"Number of pairs for class {c}: {len(selected_pairs)}\")\n",
    "\n",
    "    def __len__(self):\n",
    "        return len(self.data_pairs)\n",
    "\n",
    "    def __getitem__(self, idx):\n",
    "        c, audio_file, image_file = self.data_pairs[idx]\n",
    "        audio_image_path = os.path.join(self.audio_dataset_path, c, audio_file)\n",
    "        image_path = os.path.join(self.image_dataset_path, c, image_file)\n",
    "        \n",
    "        audio_image = Image.open(audio_image_path)\n",
    "        img = Image.open(image_path)\n",
    "        \n",
    "        if self.transform:\n",
    "            audio_image = self.transform(audio_image)\n",
    "            img = self.transform(img)\n",
    "\n",
    "        # print(audio_image.shape) # [4,256,256]\n",
    "        # print(img.shape) # [4,256,256]\n",
    "        \n",
    "        concat_image = torch.cat((audio_image, img), dim=0)\n",
    "        label = self.classes.index(c)\n",
    "        return concat_image, label\n",
    "\n",
    "    def plot_data_distribution(self):\n",
    "        \"\"\"\n",
    "        Plot the distribution of audio and image files used in pairs for each class.\n",
    "        \"\"\"\n",
    "        # Extract the number of audio and image files for each class\n",
    "        audio_counts = {c: len(self.class_to_audio_files[c]) for c in self.classes}\n",
    "        image_counts = {c: len(self.class_to_image_files[c]) for c in self.classes}\n",
    "    \n",
    "        # Bar graph for data counts\n",
    "        plt.figure(figsize=(15, 7))\n",
    "        plt.bar(audio_counts.keys(), audio_counts.values(), color='b', alpha=0.7, label='Audio')\n",
    "        plt.bar(image_counts.keys(), image_counts.values(), color='r', alpha=0.5, label='Image', bottom=list(audio_counts.values()))\n",
    "    \n",
    "        plt.title('Number of Audio and Image Files Used in Pairs for Each Class', fontsize=18)\n",
    "        plt.xlabel('Class', fontsize=16)\n",
    "        plt.ylabel('Count', fontsize=16)\n",
    "        plt.legend(fontsize=14)\n",
    "        plt.xticks(rotation=45, fontsize=14)\n",
    "        plt.yticks(fontsize=14)\n",
    "        plt.tight_layout()\n",
    "        plt.show()\n",
    "\n",
    "transform = transforms.Compose([\n",
    "    transforms.Resize((256,256)),\n",
    "    transforms.ToTensor()\n",
    "])\n",
    "\n",
    "dataset = CustomConcatDataset('./audio_dataset', './image_dataset', transform)\n",
    "dataloader = DataLoader(dataset, batch_size=32, shuffle=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "da61fb39-72f9-4f51-8dfa-ebc419536acb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABdEAAAKyCAYAAAA6kpdwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAADXL0lEQVR4nOzdd3gU5f7+8XvTNrAhSwCpQoKQSFHAA6JSBSkKHuRQREApAoqNI6hgBElAmhxEFD3ioSPSDjYsCCqEKgJSRISvgPSOkoQkJCRkfn/w2zksyYSUTTaB9+u69rqSmWdmPjM7s5vc++wzNsMwDAEAAAAAAAAAgAx8vF0AAAAAAAAAAACFFSE6AAAAAAAAAAAWCNEBAAAAAAAAALBAiA4AAAAAAAAAgAVCdAAAAAAAAAAALBCiAwAAAAAAAABggRAdAAAAAAAAAAALhOgAAAAAAAAAAFggRAcAAAAAAAAAwAIhOgAAWbj//vtls9kUHR3t7VK86vLly5o8ebLuuusuORwO2Ww22Ww2ff75594uzaOyer7DwsJks9k0Z86cAq+rMIuOjpbNZtP999/v7VKQB1k9jzzHhYvr9TcmJiZHyx06dMhc9tChQ/lSW2GT22NVUGbPnq377rtPwcHBZq1TpkzxdllFWkxMjHksCzP+pgCAoocQHQCQY65AxWazyeFw6MSJE5Ztr/6nvbD+E4vre/HFF/XSSy9px44dSktLU7ly5VSuXDkFBgbman179uxxO4fi4+M9XDGKgqtfS+BZruN6vceN9gHh1e852Qmn+vTpI5vNprCwsHyv7WZ29fNy9cPX11elSpXSfffdp9GjR+vcuXPeLrXAvPXWW3ryySe1adMmXbx4UWXLllW5cuXkcDi8XZobV9ibnUefPn28XW6B++WXXzRs2DA1bNhQ5cqVU0BAgJxOp2rVqqXevXvriy++UGpqqrfLBAB4gJ+3CwAAFG1JSUkaNWqUPvzwQ2+Xgnxy4cIF8/mdOHGiXn755TyHnjNnzjR/TkpK0sKFC/X000/naZ35rVq1agoMDJTT6fR2KUC2ORwOBQUFWc53zStTpoxuv/12ValSpaBKQwHz9/fX7bffbv7sLcHBwSpWrJgk6dKlSzp//rw2bdqkTZs26f3339fXX3+tBg0aeGRbrv0tXry4R9bnSZMmTZIkDRo0SJMmTfLqc5Id2Xn/u5neHy9cuKCBAwdq4cKFMgxD0pUPL51Opy5evKg9e/Zoz549mjdvnqpVq6aPP/5Y99xzj5erBgDkBSE6ACDPZs2apZdeekkRERHeLgX5YO/evWYvqmeeeSbPAXpqaqo++ugjSdILL7ygqVOnaubMmYU+RP/hhx+8XQKQYy+//HK2eps///zzev755/O/IHhNpUqVtHfvXm+XoXfeecetx/L58+f173//W6NGjdKZM2fUqVMn/f7777n+ptPVCsP+Zubs2bM6deqUJGnAgAGFPkCXpG7dujH0yP93/vx5NW3aVLt375bNZtNjjz2mZ555Rvfee68CAgIkSSdOnNDy5cv17rvv6pdfftGPP/5IiA4ARRzDuQAAcq1y5cqqU6eO0tLS9Nprr3m7HOSTpKQk8+eserRm15dffqkzZ86oRo0aGj9+vIKCgrRlyxb9+uuveV43AKBoCQkJ0fDhwzVs2DBJ0tGjR/XFF194uar85en3VRSsnj17avfu3fLz89PixYu1cOFCNWvWzAzQJalixYrq16+fduzYoX//+98e+VAIAOBdhOgAgFzz8fHR+PHjJUmffPKJNm/enKPls3uTM6ubL127/OHDhzVgwABVqVJFgYGBqlatmkaMGKHExERzmV9//VWPP/64KleurMDAQIWHh2vMmDHZGq/y0qVLmjBhgurUqSOHw6GQkBC1bt1ay5cvv+6yBw4c0AsvvKCaNWsqKChIxYsXV82aNfXiiy/qyJEjmS4zZ84ct7F6V69erY4dO6pChQry9fXN8dijly9f1qxZs9SyZUuVKVNGdrtdlSpVUteuXTMdr961/atvJnj12Ke5vcmgayiX3r17y+FwqHPnzm7TrWTnJlyu8Y2tjs3ly5f13nvv6W9/+5scDodKlSql+++/X0uXLr1u3dfbfk6Pb3bFxcVp0aJF6tmzp+68806VKlVKgYGBCg0NVY8ePbRp0ybLZa+9IeQPP/yg9u3b65ZbblFgYKBq1qypUaNGKTk5Ocsali9frtatW6tkyZIKCgpS3bp1NXHixHwd5/Xam8P98ssv6t69uypWrKhixYqpZs2amjRpktLS0sxlNmzYYF4jgYGBuuOOO/T++++bX7W/1pkzZzRr1ix16tRJNWvWlNPpVLFixVS9enX1799fu3fvvm6dX3zxhR544IFMj012bsh56tQpvfrqq6pbt66cTqcCAwN12223qX///vrtt99ydtDyIK83D42Li9PYsWN1zz33KCQkRHa7XZUrV1b37t2zPEfPnz+vkSNH6m9/+5uCg4MVEBCg8uXLq06dOho4cKDXvwGyZMkSPfTQQypXrpz8/f1VsmRJhYeHq0OHDnr//fctr53cHg/pyjF55ZVXzCGkKlSooK5du+rnn3/O075k9Z577fW2f/9+Pfnkk6pcubLsdrtuvfVWDRgwQMePH89TDVl54oknzJ+3bNkiSUpPT9eGDRv06quv6t5779Wtt96qgIAAlS5dWs2bN9e0adOyfB2yuifLtcfiwIEDeuqpp1S1alXZ7fYMY+Tn9jy4lus4X73+qlWrmrVkNjZ/TEyMunbtqkqVKslut6tMmTJ64IEHNHv2bF2+fDnT7Vx7PX/yySdq06aNypYtKx8fnwK9F8K2bds0evRoNWvWTKGhoQoMDFTJkiV177336s0331RCQsJ11/HTTz+pb9++ql69uhwOh4KDg1WrVi09+eSTWrlyZZbLevpcXr58ufl338iRI9W1a9cs29tsNj3zzDN66qmnsr2NI0eO6P3331f79u0VERFhDstVq1atLP9udMnN+bpixQp16tTJvMaCg4N12223qU2bNpo0aZL++uuvbNcPADcsAwCAHIqKijIkGaGhoYZhGEbz5s0NSUaLFi0ytD148KAhyZBkrF692nLewYMHLbcXGhpqSDJmz55tufwnn3xilCxZ0pBkBAcHG76+vua8pk2bGpcuXTK++uoro3jx4oYkw+l0GjabzWzTrVu3TLft2rfIyEijadOmhiTDz8/P3JbrERUVZVn/f/7zH8Pf399sa7fbjWLFipm/BwcHGytXrsyw3OzZs83j/M4775j1Op1Ow9/f3+jdu7flNq8VGxtr3H///eY2fX19jZIlS7odg5dfftltmUWLFhnlypUzQkJCzDblypUzH//4xz+yvX2XY8eOGb6+voaPj49x9OhRwzAMY9WqVYYko0yZMkZKSorlslbnwdV69+5tSMr02CQnJxtt27Y198XHx8ftGAwbNsx8vjN7PrPafm6Ob3a5rjfXIygoyLDb7ebvNpvNeOedd7Jctnnz5sbEiRMNm81m2Gy2DLW1aNHCSEtLy9b2S5Ysafj5+RmSjGbNmhmRkZHmNvKyb9davXq1Oe+bb74xAgMDM712H3vsMcMwDGP69OmGr6+vYbPZDKfT6VbzsGHDMt2+63y5+lp07ZvrWl26dKll/S+99FKWx+a1117L8th8+eWXRlBQkLm8v7+/4XA4zN8DAgKMuXPn5vi4GoaRrdemq119ruRknmEYxqZNm4xy5cq5nf8lSpRwO0fHjRuXYbmjR48aVapUcbsmQ0JC3F6/c3peXf2+kNVrhYvrHHC9n13tySefzHDtud5Dsnrvyu3xcNXveq1xnQPBwcHmz1988YXle2pOjs21dV99va1atco8L0uUKOF2TVSsWNE4duxYjrZ77batnpfExESzzYABAzIs53r/dR2Pq9/jk5KSMl1ndv7++Pjjj839LV68uOFwONzOh9yeB5nZsGGDUa5cOaNMmTLmsmXKlDHfVxs0aODWfvDgwW7nTcmSJd2uj5YtWxrx8fEZtnP1NTtkyBBzedf1ld3XBcP433tfTv7muNrVx8n1vnv1tFq1ahmnT5/OdNm0tDRj0KBBbu0dDofb8Xc6nW7L5Pe53K5dO3O7CQkJuTkkhmFk/TeF62+Rq/fRx8fH7fd169Zlut7cnK+jRo1ym1+8eHG396bcvN4AwI2IEB0AkGPXhuibNm0y/8hevny5W9uCCtFLlixpPPDAA8bu3bsNwzCMpKQk49133zX/2RwxYoThdDqNbt26GYcOHTIMwzAuXLhgDB8+3FzHd999l2Hbrn9knE6nYbfbjWnTphkXL140DMMwjhw5YnTp0sVc/osvvsiw/GeffWaGY6+++qpx6NAhIz093UhPTzf27t1rdO3a1ZCuhHeHDx92W9YVogcGBhq+vr5Gnz59jCNHjhiGceUfy/3791ses2t17tzZDGHeffddIzEx0TAMwzh58qTbP1wffPBBhmWv/oc0r8aMGWNIMh544AFzWnp6uvkc//e//7VcNq8huiuMsNlsxpgxY4y4uDjDMAzj9OnTxjPPPGM+z1LOQ/S8HN/r+eCDD4zBgwcbmzZtMs6fP28YxpVj9scffxj//Oc/DZvNZvj6+hrbtm3LsKzrWi1ZsqTh4+NjREZGGmfPnjUMwzDi4uKMkSNHmrXNnDkzw/JXB3Zdu3Y1z7+kpCTj/fffNwICAsxAJD9D9JIlSxrdunUzr5H4+HgzvJdkjB8/3vD39zdeeOEFM4z566+/jD59+pjBzf/93/9l2EZ0dLQxYsQIY/v27WYYcvnyZePXX381evbsaQY2x48fz7DswoULze336NHDDGMuXrxo/Oc//zECAwPND6AyOzY//fSTERAQYEgynn76aWPPnj3mBxmHDx82nn32WTM03LJlS46Prau2/A7RDx48aJ4DXbp0MX7++WcjNTXVMIwr19brr79uBlefffaZ27L9+vUzJBlhYWHG999/b+5/WlqacejQIeODDz6w/ADEiqdC9HXr1pnnzptvvmn8+eef5rxz584ZK1asMHr37p3h3MjL8UhLSzMaNGhgSDJCQkKMJUuWmMvu3r3baNq0qVsAmV8hekhIiNGhQwdjz549hmEYRkpKirF48WLzg4AnnngiR9u9dttWz8vu3bvNNq7n/ejRo8YjjzxiLF682Dh+/Lhx+fJlwzCuvH/Pnj3bqFixoiHJGDx4cKbrzM7fH0FBQcY999zjdp25Xi9yex7k5HhY/f0zdepUs81TTz1lnDx50jAMw0hISDDefvtt8zzKrBOA65p1BaFDhw41zpw5YxjGlQ+UXX8HZUdeQ/RWrVoZs2bNMg4fPmyez0lJScann35q3H777YYkyw/lhw4dah6DJ5980u11/PTp08bnn3+eYf/z81xOTU01j2mXLl1ytOy1svqb4rnnnjMmTJhg/Pbbb+YHRKmpqcZPP/1kPPjgg+aHANd+eJSb8/XQoUNmQD9kyBC3ebGxsca6deuMZ5991ti6dWue9hcAbgSE6ACAHLs2RDcMw/jHP/5hSDLq1atnpKenm9MLKkSvXbu2kZycnGHZJ554wmzTunVrt9pcXD3M+/Xrl2He1b2BMgsZL1++bDRr1syQrvSmulpKSopRqVIly2VdOnToYEgy/vnPf7pNd4XokoxOnTpZLn89P/30k7meDz/8MNM2rhC4TJky5ocELp4K0dPT041q1aoZkox58+a5zXN9mPHggw9aLp+XEP348eNm4PD6669numz37t2zDB6ttp/X45tXzz33nOX5e3VIbRWmdurUyZBktGrVKsO8WrVqmeGpK7y62rRp08z152eIfr1rV5LRv3//DPPT0tKMsLAwQ5Lxxhtv5Li+9u3bZ7psenq6ER4enmVtV1+/mR2bu+++O8vz0TAMswfmI488kuPaXdt2OBxu3yC5+tGnTx+zfW5DdNcHiVmFUZMnTzYkGXXr1nWbXrNmTUOSsWDBghzvnxVPhehvvvmmIclo06ZNjrafl+OxePFis/bvv/8+w3KJiYnma2h+hugtWrTI9Hp/9913DUlGsWLFzDA0N9u2el5cr2WZfcBgZcuWLeZ5ntlra3b+/ggNDTUuXLiQ6fpzex5cz/X+/klKSjJKlSplSDK6d++e6Tpcz4ekDB+0Xf3aOmTIkDzV6nrvCwwMtHwtcT02bNiQo3UfO3bMsNvths1my9CR4P/+7//McHfo0KHZXmd+nsv79+831z127NhsL5eZ7PxNk5m0tDSjTp06hiTjo48+cpuXm/PV9boTERGRozoA4GbEmOgAAI8YN26cfH19tWPHDi1cuLDAtz948GDZ7fYM09u2bWv+/Oqrr5rjvWbW5pdffrFcf+XKldW3b98M0318fDRixAhJ0m+//aZdu3aZ85YvX67jx4+rXLlymS7r0qtXL0lXxqO0EhkZaTnvehYtWiRJuvXWW9W/f/9M27zxxhuSpHPnzum7777L9bayEhMTowMHDsjhcKhTp05u83r37i1JWrlypY4dO+bxbS9dulRpaWkqVqyYXn755Uzb5HaMWG8f3/bt20uS1q9fb9nGbrdb7vcjjzwiKeP5/8svv5hjco8YMUI+Phn/bBwwYIAqVaqUq7pzYtiwYVleu1Lm14ivr69atWolKevr24rVsd2xY4f27dsnSXrttdcyra13796qUqVKpuvduXOntmzZIn9/f7300kuW23e9Nnz//feWYx9fT2Jiok6fPp3p4/z587lap8tff/2lTz/9VNKV11crrv3YuXOnTp8+bU4vWbKkJOnkyZN5qiM/uGo7e/Zsto99Xo+H67WkcePGeuCBBzIsV7x4cQ0dOjRbteTFa6+9lun17nqtuHjxonn+59WlS5e0Z88eDRo0SB988IEkKTw8XA8//HC2lm/QoIHKli2rxMRE7dixI1c1PP/885Y398zNeeAJ3333nTkGtdV707PPPqsKFSpIkuXfXT4+PuYNW/MqOTnZ8rXE9bh06VKO1lmpUiXVrVtXhmFo48aNbvPmzp2r9PR0lS5dWqNGjcpVzZ4+l//880/z51KlSuWqprzy9fXVgw8+KCnje1NuzlfXMhcuXHC7hxAAICNCdACAR9SoUcMMil9//fV8veFgZho2bJjp9HLlypk/33333Vm2ySpQuv/++zMNyiSpWbNm8vPzkyRt3brVnO765+b8+fOqUKGCypcvn+ljwIABkqTDhw9nuv5ixYrpb3/7m2Vt1+OqqUWLFpn+MylJNWvWNMPQq/fBk1w3Du3cubMcDofbvPDwcN13331KT0/P8sahueXapwYNGig4ODjTNhEREbkKhAvi+P7xxx96+eWXVb9+fZUsWVK+vr7mjejatWsnSVl++FC7dm3LkKhixYqSlOGmYa46/fz81LRp00yX9fHxyfWNKHPietd3qVKldNttt2XZxur63rlzp5599lnVqVNHwcHB8vHxMY/ts88+Kynjsd22bZskyd/fX40aNcp0vTabTc2bN890nuu1IT09Xbfffrvla4MrKElMTHQLb3IiKipKxpVvn2Z4fP7557lap8uPP/6o9PR0SVLLli0t96N27drmMle/zrmC0ldffVVPPfWUvv32W8XHx+epJk9p1aqVAgMDtX37djVt2lQzZ87UwYMHs1wmr8fDdc21bNnSchtZzfOUe+65J9PprtcKKePrRU707dvXvMbsdrtq1aqlqVOnKj09XVWrVtWyZcvM91TpStA+bdo0tWnTRhUrVlRgYKDbTa7PnDkjKevXwKw0btzYcl5uzgNPcJ0LlStXVkRERKZtfH19zfPB6n2levXqKlu2rEdq6t27t+VrieuR2ftBenq6FixYoA4dOqhKlSoqVqyY2/Pnuin9tc+fK1Rv3bq1AgMDc1Wzp89l46qbVFv9Tegp69atU58+fVSjRg0FBQW5HbOJEydKynjMcnO+NmzYUGXKlNHJkyd1zz336L333tPevXstb8gNADczv+s3AQAge6Kjo/Xxxx/rjz/+0LRp0/TCCy8U2LZLlCiR6fSr/xG/Xpusgv+swlW73a7SpUvr9OnT5j/zknTixAlJVwKAq3sbWrl48WKm00uXLm0ZzmaHq6brBcS33nqrjh8/7rYPnhIXF2f20HT1wrxW79699eOPP2rWrFkaPny4R/9BzekxyM915/T4fvbZZ+revbtSUlLMacHBwWaQdOnSJZ0/fz7LHmRW5770v/M/LS3NbbqrzjJlymT6LQ+XW2+9NVv7kRfXu3azs3+ZXd/vvfee/vnPf5rBp81mk9PpNPf34sWLio+Pz3Bsz549K+nKtRkQEGC5batzwvXacPny5Wy9NkhSUlJSttoVJNd+SMrVfrzyyivauXOnlixZounTp2v69Omy2WyqXbu2HnzwQQ0YMMAy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VKtWLS1atEiSlJqaqpEjR6pq1aoKDAxUnTp1tGLFigzr+vnnn/X888/rjjvukNPpVLFixXTnnXdqwoQJSk1NzXT7a9asUbNmzeRwOFS6dGl169ZNR48e1f333y+bzZahvWEYmjVrlho3bqzg4GAVL15cDRo00KxZszx7YLKJMdEBAAAAAAAA4CYwZMgQ/fTTT/r73/8uX19fLVq0SD169FBISIjef/99/frrr2rXrp2Sk5O1YMECdejQQXv37lXVqlXNdUyfPl1ffvmlmjVrpnbt2ikpKUkxMTGKjIzUli1b9Mknn7htc+XKlWrfvr38/PzUrVs3VahQQTExMWrSpIlCQkIy1GgYhh5//HEtWLBAERER6tGjhwICAvTdd9+pX79++u233zRp0qR8P1ZXI0QHAAAAAAAAgJvAb7/9pl9++UW33HKLpCs91O+991499thjuuOOO7Rr1y45HA5JUtu2bdWtWzdNmTJF77zzjrmOyMhIvf/++/L19TWnGYah/v37a9asWdqwYYMaN24sSbp8+bKeeuoppaenKyYmRvfcc4+5TN++fTVnzpwMNc6YMUMLFixQv379NG3aNPn5XYmwL126pC5duuitt95S9+7dVb9+fY8fHysM5wIAAAAAAAAAN4Hhw4ebAbok3XPPPbrtttsUGxursWPHmgG6JHXu3Fn+/v7auXOn2zpCQ0PdAnRJstlseu655yRJ33//vTl9/fr1Onz4sB555BG3AF2S3njjjQzrkaT33ntPDodD7733nhmgS1JAQIDGjh0rSVq4cGFOdz1P6IkOAAAAAAAAADeBu+66K8O0ChUq6I8//lC9evXcpvv6+qps2bI6fvy42/RLly7pvffe06JFi7R3714lJCTIMAxz/okTJ8yfXQF8o0aNMmz31ltvVZUqVXTw4EFzWlJSknbt2qWKFStqwoQJGZZxjbm+d+/ebOyt5xCiAwAAAAAAAMBNIDg4OMM0V29vq3nX3iy0S5cu+vLLLxUREaFu3bqpbNmy8vf3V2xsrN555x2lpKSYbePj4yXJrff71cqVK+cWop8/f16GYej48eMaNWqU5X4kJiZmsZeeR4gOAAAAAAAAALiuLVu26Msvv1Tbtm319ddfuw3HsmnTJrex06X/BfNnz57NdH2nT5/OtH39+vW1detWT5aeJ4yJDgAAAAAAAAC4rgMHDkiS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jhQzZszQokWLtGnTJpUtW1a1a9fW5MmTFR4e7uUqAbhs27ZNn332mTZu3CiHw6EePXooMDDQHA/94sWLcjgc3i4TXkD3NwAe4frDcNy4cRo0aJACAgI0YMAATZs2Tb1799aRI0cUHR2tefPmeblSoOC5eh5NnDhRL7/8soKCgtS2bVuVLFlSw4cPV1RUlLZv3+7lKoGbg81m06lTpzRw4EBVqFBB7777rqZOnapXXnlFr7zyiqpWraoff/xR/v7+3i4VKBKshqiQpK+//lqjRo1Shw4d9N5772nUqFGKjo7WggULNGjQIC1fvlyjRo1ijHTcsK7uSDF69GgNHDhQp06d0uOPP65atWrp+++/V8uWLbVo0SJdunTJy9UCkKS6devqq6++kq+vr0aOHKmPP/5YKSkp8vX1VWJioi5cuKBSpUp5u0x4AT3RAXjM+vXrNW7cOLVp00ZvvvmmqlevLknq3LmzHnjgAT399NOKioqSYRj0SMdN4eqeR3FxcVq2bJn69OmjyMhIhYeH67ffftOHH36oqVOnKjU1VcOHD9ddd93l5aqBG9+ePXv022+/6dVXX9XDDz8sSdq1a5feeust/d///Z8++OADPfTQQ5KkS5cuKSAgwJvlAoVabGysQkJCzK+7X31fgb1798pms6lPnz6qVq2a+b5Yr149c0zZ//znPypevLiGDBmiu+++24t7Anie63pYsGCBxo8fr969e2vw4MG64447lJaWpldeeUXvvPOOJk2apEceecTL1QKQrtw8tEWLFvrwww81YMAARUVFSZJ69uwph8OhpKQk81v4aWlpstls8vX1lWEYSktLMztiXPueiKKPnugAcuTUqVOW844dO6akpCT16NFD1atX1+XLlyXp/7V33/E5nY0fxz93lsRI1B5BjQixV83aRdHSBrVKbaVK7T0Te68iKEJttakZUdSqvYJSKzUSiU2S+/z+8LtPk6JPB7mJ7/v1el6PnnH/rqs/13Od8z3XIHny5DRu3JgJEyYQGhrKyJEjmT17dnwVWcRubAH6pk2b2L59O7/88gv169c3p+z6+PjQr18/OnfuzIoVK/D399eIdJF4sHfvXh48eECNGjUAOHLkCEOHDmXRokVMnTqVNm3aAHDv3j127Nih0YEiL/DLL7+QM2dOc6ahLUi3jUo/ceIE0dHRuLq6AnE3086cOTPN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V1VERERERERERETEThSiS4IUO0CfO3cuP/zwA3v27MHHx4fy5cszYMAA81pbkN6vXz/OnDmDm5sb6dOnxzAMPDw8mDdvHnnz5rVXVURERERERERERMSOFKJLgmMYhrmm+aBBg/Dz8yNt2rQUKlSIixcvcuLECerXr8+0adNwd3cHngbpa9euZcSIERw7dowvv/ySpk2bkjVrVpInT27H2oiIiIiIiIiIiIg9KUSXBGvq1Kl07tyZxo0b07p1a9577z1CQkIoXbo0YWFh1K5dm++++w4PDw8AHjx4wIYNG2jRogU5cuQgODiYxIkT27kWIiIiIiIiIiIiYk8K0SVB+uWXX2jWrBnZs2dn0KBB5MuXj6ioKN5//31CQkLInTs3e/bswdfXl4CAAHO0+YMHD9iyZQu5c+fGy8vLvpUQERERERERERERu3OydwFEXoXjx49z7NgxRo0aRb58+bBarbz//vucOXOGSZMmUaBAAZo3b87y5ctxdHRk+vTpeHh4kDhxYj7++GN7F19EREREREREREReEwrRJUGqU6cODg4OVKlSBcMwaNq0KSdPnmTIkCF88sknJEmShE6dOvH555+zZMkSQkNDWbNmjblGuoiIiIiIiIiIiAiAg70LIPKyGYZB4sSJadiwIfB0VPqPP/5I9erVadmyJUmSJAEgZcqUpEqViqpVq/LLL78QGRlpz2KLiIiIiIiIiIjIa0gj0SXBsVgsADg4PP1GFBISwq1bt6hfvz5JkiTBMAwsFgs7duwgZ86cfPvtt7i6upIuXTp7FltEREREREREREReQxqJLgle2rRpAVi8eDHwNGRfvXo1K1euJGPGjGTKlEkBuoiIiIiIiIiIiDyXxTAMw96FEHmVbty4ga+vL7t27aJs2bK4u7uzd+9eczS6t7e3vYsoIiIiIiIiIiIirymF6PJWuHDhAj169GDnzp1ERUWRP39+pkyZQu7cue1dNBEREREREREREXmNKUSXt8b9+/eJiIggOjqaFClSkCxZMnsXSURERERERERERF5zCtFFRERERERERERERF5AG4uKiIiIiIiIiIiIiLyAQnQRERERERERERERkRdQiC4iIiIiIiIiIiIi8gIK0UVEREREREREREREXkAhuoiIiIiIiIiIiIjICyhEFxERERERERERERF5AYXoIiIiIiIiIiIiIiIvoBBdREREREREREREROQFFKKLiIiIiLyF5syZg8Vi4YsvvrB3UUREREREXmsK0UVEREREEohdu3bRunVrcuXKhYeHB4kSJSJjxozUrFmTmTNncv/+fXsXUURERETkjaMQXURERETkDffgwQM+++wzypQpQ0BAAL/99huZMmUif/78GIbBunXraNWqFV5eXhw7dszexRUREREReaMoRBcREREReYNFRUVRpUoVlixZQrp06Zg7dy7h4eEcP36c/fv3c+3aNU6cOEGbNm24efMm58+ft3eRRURERETeKE72LoCIiIiIiPx7gwYNYteuXaRNm5Y9e/bw7rvvPnONj48P06ZNo3Hjxjg4aByNiIiIiMg/oSdoEREREZE3VGRkJBMnTgRg/Pjxzw3QYytTpgylSpX6n7+7efNmvvrqKwoUKECKFClwdXUle/bsfPnll1y6dOm590RHRzNhwgTee+89kiVLRqJEiciQIQOlSpViwIABRERExLn+t99+o02bNmTLlo1EiRKRLFkysmXLxieffMKiRYv+Vv1FREREROKDxTAMw96FEBERERGRf+7777+nUaNGpE6dmmvXruHk9Pcnms6ZM4dmzZrRtGlT5syZE+eck5MTVquV1KlTkyFDBqKjo7lw4QL3798nZcqUBAcH4+PjE+eeOnXqsHz5cgCyZ89OihQp+P3337l27RoxMTEcOnSIggULAnDx4kWKFSvGrVu3SJw4MdmzZ8fR0ZFLly4RHh5OgQIFOHz48H/5VyMiIiIi8tJoORcRERERkTfU7t27AShduvQ/CtD/l6lTp1KzZk0yZMhgHnv48CHjxo2jT58+tG/fnu3bt5vnDh48yPLly8mUKRM//vgjuXPnNs/duXOHJUuWkDJlSvPYmDFjuHXrFk2bNmXy5MkkTZrUPHf69GmCg4NfWl1ERERERP4rhegiIiIiIm+oq1evApA1a9aX+rutW7d+5pibmxu9e/dmw4YNBAUFcfXqVTJmzAjA2bNngaej0WMH6ADu7u60bNkyzjHb9Z07d44ToAPkypWLXLlyvbS6iIiIiIj8VwrRRURERETeUHfv3gUgSZIkL/23Dxw4wLJlyzh58iSRkZHExMQAfwTgR48eNUP0TJkyAbB161bCw8NJkSLFX/627fply5aRL18+LBbLSy+/iIiIiMjLohBdREREROQNlSxZMgDu37//0n7TMAy++uorpk6d+pfXhYeHm38uWbIkxYsXZ+/evWTKlIkPPviAsmXLUq5cOQoXLvxMSN6+fXvmzp3LkCFDmDdvHtWqVeP999+nQoUKcZaQERERERF5HTjYuwAiIiIiIvLv2EaCX7hw4aX9ZmBgIFOnTiVJkiRMnTqVs2fP8uDBAwzDwDAMGjVqBEBUVJR5j4ODAxs2bKBjx464ubmxatUqunTpQtGiRcmaNeszG5cWLFiQ4OBgqlSpwtWrV5k+fTqNGzfG09OTqlWrcurUqZdWHxERERGR/0ohuoiIiIjIG6pUqVLA0w1Go6OjX8pvLliwAHi6+eeXX35Jjhw5cHNzM89fvnz5ufe98847jB8/nps3b3Lo0CEmTJhAhQoV+O2332jWrBnLli2Lc32JEiX48ccfuX37Nhs3bqRHjx54enqyadMmPvjgAyIiIl5KfURERERE/iuF6CIiIiIib6jq1auTNGlSbty48UxI/W9dvHgR+COgjy0qKup/jhK3WCwULFiQr7/+mm3bttGzZ08AAgICnnt90qRJqVq1KsOHD+f06dNkz56dq1evsmHDhv9WERERERGRl0QhuoiIiIjIGyp58uR06NABgE6dOpkB+Ivs2rWL3bt3/+U1tlHn169ff+bcd999x82bN/9RGUuUKAHAtWvX/ue1iRMnJl++fH/7ehERERGR+KAQXURERETkDTZw4EBKlizJ9evXKVmyJIGBgTx69CjONSEhIbRv357y5ctz48aNv/y9MmXKANC3b984gfnGjRvp1q0brq6uz9yzYMEChgwZ8kyIHxYWxsSJEwEoXLiwefzLL79k8eLFPHjwIM71wcHBbN269ZnrRURERETsycneBRARERERkX/PxcWFTZs28cUXX7B8+XKaNGlCmzZtyJ49O25ubly7do2rV68C4OnpSY4cOf7y97p3787ChQvZu3cvWbJkwdvbm4iICC5evEiFChXIkCGDuW66zc2bN+nfvz/9+/cnY8aMZMiQgYcPHxISEsKTJ0/ImDEjQ4YMMa/fs2cP06ZNw8nJCS8vL5IlS8b169f57bffAGjcuDEVKlR4yf+mRERERET+HY1EFxERERF5wyVNmpRly5YRHBxMixYtyJQpExcvXuTIkSMYhkGNGjWYNWsWISEh5M2b9y9/K3PmzOzZs4dPP/0UFxcXTp8+jaurK4MGDWLjxo04OT07DsfX15cRI0bwwQcf4OjoyLFjxwgNDSVv3rz4+flx/PhxMmfObF4/btw4OnbsSP78+bl16xaHDx8GoGrVqqxevZp58+a91H8/IiIiIiL/hcUwDMPehRAREREREREREREReR1pJLqIiIiIiIiIiIiIyAsoRBcREREREREREREReQGF6CIiIiIiIiIiIiIiL6AQXURERERERERERETkBRSii4iIiIiIiIiIiIi8gEJ0EREREREREREREZEXUIguIiIiIiIiIiIiIvICCtFFRERERERERERERF5AIbqIiIiIiIiIiIiIyAsoRBcREREREREREREReQGF6CIiIiIiIiIiIiIiL6AQXURERERERERERETkBRSii4iIiIiIiIiIiIi8gEJ0EREREREREREREZEX+D/PBWUZE5+oMAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 1500x700 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "dataset.plot_data_distribution()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "777c0395-3318-4c68-8f15-848dda527bf6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(7, 256, 256)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.array(dataset[0][0]).shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "636e31e8-74f7-41a2-aff3-b879079039e2",
   "metadata": {},
   "outputs": [],
   "source": [
    "class CustomCNN(nn.Module):\n",
    "    def __init__(self, num_classes):\n",
    "        super(CustomCNN, self).__init__()\n",
    "        \n",
    "        # Convolutional layers\n",
    "        self.conv1 = nn.Conv2d(7, 32, kernel_size=3, stride=1, padding=1)\n",
    "        self.conv2 = nn.Conv2d(32, 64, kernel_size=3, stride=1, padding=1)\n",
    "        self.conv3 = nn.Conv2d(64, 128, kernel_size=3, stride=1, padding=1)\n",
    "        self.conv4 = nn.Conv2d(128, 256, kernel_size=3, stride=1, padding=1)\n",
    "        \n",
    "        # Max pooling layer\n",
    "        self.pool = nn.MaxPool2d(kernel_size=2, stride=2, padding=0)\n",
    "        \n",
    "        # Fully connected layers\n",
    "        self.fc1 = nn.Linear(256 * 16 * 16, 512)\n",
    "        self.fc2 = nn.Linear(512, num_classes)\n",
    "        \n",
    "        # Dropout for regularization\n",
    "        self.dropout = nn.Dropout(0.5)\n",
    "        \n",
    "    def forward(self, x):\n",
    "        x = self.pool(F.relu(self.conv1(x)))\n",
    "        x = self.pool(F.relu(self.conv2(x)))\n",
    "        x = self.pool(F.relu(self.conv3(x)))\n",
    "        x = self.pool(F.relu(self.conv4(x)))\n",
    "        \n",
    "        # Flatten the tensor\n",
    "        x = x.view(-1, 256 * 16 * 16)\n",
    "        \n",
    "        x = F.relu(self.fc1(x))\n",
    "        x = self.dropout(x)\n",
    "        x = self.fc2(x)\n",
    "        return x\n",
    "\n",
    "# Number of classes for classification\n",
    "num_classes = len(dataset.classes)\n",
    "\n",
    "# Instantiate the model\n",
    "model = CustomCNN(num_classes=num_classes)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "87fcde07-fb84-436b-90e5-a8df136795e2",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Epoch 1/10\n",
      "--------------------------------------------------\n",
      "Batch 10/30 - Loss: 1.7938, Accuracy: 18.75%\n",
      "Batch 20/30 - Loss: 1.7855, Accuracy: 18.75%\n",
      "Batch 30/30 - Loss: 1.7664, Accuracy: 18.75%\n",
      "\n",
      "Epoch Results - Training Loss: 0.1109, Training Accuracy: 20.21%\n",
      "Validation Loss: 0.1153, Validation Accuracy: 34.17%\n",
      "--------------------------------------------------\n",
      "\n",
      "Epoch 2/10\n",
      "--------------------------------------------------\n",
      "Batch 10/30 - Loss: 1.6579, Accuracy: 43.75%\n",
      "Batch 20/30 - Loss: 1.4209, Accuracy: 56.25%\n",
      "Batch 30/30 - Loss: 1.1980, Accuracy: 62.50%\n",
      "\n",
      "Epoch Results - Training Loss: 0.0971, Training Accuracy: 47.71%\n",
      "Validation Loss: 0.0825, Validation Accuracy: 68.33%\n",
      "--------------------------------------------------\n",
      "\n",
      "Epoch 3/10\n",
      "--------------------------------------------------\n",
      "Batch 10/30 - Loss: 1.0781, Accuracy: 56.25%\n",
      "Batch 20/30 - Loss: 1.1216, Accuracy: 43.75%\n",
      "Batch 30/30 - Loss: 0.9480, Accuracy: 43.75%\n",
      "\n",
      "Epoch Results - Training Loss: 0.0595, Training Accuracy: 67.08%\n",
      "Validation Loss: 0.0454, Validation Accuracy: 75.83%\n",
      "--------------------------------------------------\n",
      "\n",
      "Epoch 4/10\n",
      "--------------------------------------------------\n",
      "Batch 10/30 - Loss: 0.6100, Accuracy: 87.50%\n",
      "Batch 20/30 - Loss: 0.5472, Accuracy: 87.50%\n",
      "Batch 30/30 - Loss: 0.6615, Accuracy: 68.75%\n",
      "\n",
      "Epoch Results - Training Loss: 0.0385, Training Accuracy: 78.12%\n",
      "Validation Loss: 0.0239, Validation Accuracy: 90.83%\n",
      "--------------------------------------------------\n",
      "\n",
      "Epoch 5/10\n",
      "--------------------------------------------------\n",
      "Batch 10/30 - Loss: 0.3994, Accuracy: 87.50%\n",
      "Batch 20/30 - Loss: 0.3335, Accuracy: 93.75%\n",
      "Batch 30/30 - Loss: 0.1181, Accuracy: 100.00%\n",
      "\n",
      "Epoch Results - Training Loss: 0.0220, Training Accuracy: 88.33%\n",
      "Validation Loss: 0.0139, Validation Accuracy: 94.17%\n",
      "--------------------------------------------------\n",
      "\n",
      "Epoch 6/10\n",
      "--------------------------------------------------\n",
      "Batch 10/30 - Loss: 0.1132, Accuracy: 100.00%\n",
      "Batch 20/30 - Loss: 0.2084, Accuracy: 93.75%\n",
      "Batch 30/30 - Loss: 0.3316, Accuracy: 87.50%\n",
      "\n",
      "Epoch Results - Training Loss: 0.0176, Training Accuracy: 89.79%\n",
      "Validation Loss: 0.0159, Validation Accuracy: 90.00%\n",
      "--------------------------------------------------\n",
      "\n",
      "Epoch 7/10\n",
      "--------------------------------------------------\n",
      "Batch 10/30 - Loss: 0.2917, Accuracy: 93.75%\n",
      "Batch 20/30 - Loss: 0.3889, Accuracy: 87.50%\n",
      "Batch 30/30 - Loss: 0.2062, Accuracy: 93.75%\n",
      "\n",
      "Epoch Results - Training Loss: 0.0163, Training Accuracy: 90.21%\n",
      "Validation Loss: 0.0108, Validation Accuracy: 94.17%\n",
      "--------------------------------------------------\n",
      "\n",
      "Epoch 8/10\n",
      "--------------------------------------------------\n",
      "Batch 10/30 - Loss: 0.2554, Accuracy: 93.75%\n",
      "Batch 20/30 - Loss: 0.0775, Accuracy: 100.00%\n",
      "Batch 30/30 - Loss: 0.1728, Accuracy: 93.75%\n",
      "\n",
      "Epoch Results - Training Loss: 0.0112, Training Accuracy: 94.38%\n",
      "Validation Loss: 0.0072, Validation Accuracy: 98.33%\n",
      "--------------------------------------------------\n",
      "\n",
      "Epoch 9/10\n",
      "--------------------------------------------------\n",
      "Batch 10/30 - Loss: 0.1943, Accuracy: 93.75%\n",
      "Batch 20/30 - Loss: 0.0578, Accuracy: 100.00%\n",
      "Batch 30/30 - Loss: 0.2546, Accuracy: 87.50%\n",
      "\n",
      "Epoch Results - Training Loss: 0.0109, Training Accuracy: 93.75%\n",
      "Validation Loss: 0.0102, Validation Accuracy: 91.67%\n",
      "--------------------------------------------------\n",
      "\n",
      "Epoch 10/10\n",
      "--------------------------------------------------\n",
      "Batch 10/30 - Loss: 0.2687, Accuracy: 87.50%\n",
      "Batch 20/30 - Loss: 0.1439, Accuracy: 93.75%\n",
      "Batch 30/30 - Loss: 0.6789, Accuracy: 81.25%\n",
      "\n",
      "Epoch Results - Training Loss: 0.0124, Training Accuracy: 92.71%\n",
      "Validation Loss: 0.0084, Validation Accuracy: 96.67%\n",
      "--------------------------------------------------\n"
     ]
    }
   ],
   "source": [
    "# Hyperparameters\n",
    "batch_size = 16\n",
    "learning_rate = 0.00005\n",
    "num_epochs = 10\n",
    "val_split = 0.2\n",
    "\n",
    "# Splitting the dataset into training and validation sets\n",
    "dataset_size = len(dataset)\n",
    "val_size = int(val_split * dataset_size)\n",
    "train_size = dataset_size - val_size\n",
    "train_dataset, val_dataset = random_split(dataset, [train_size, val_size])\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",
    "\n",
    "# Initialize the CNN model, loss function, and optimizer\n",
    "model = CustomCNN(num_classes=len(dataset.classes))\n",
    "criterion = nn.CrossEntropyLoss()\n",
    "optimizer = optim.Adam(model.parameters(), lr=learning_rate)\n",
    "\n",
    "# Move the model to GPU if available\n",
    "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
    "model.to(device)\n",
    "\n",
    "train_losses = []\n",
    "train_accuracies = []\n",
    "val_losses = []\n",
    "val_accuracies = []\n",
    "\n",
    "for epoch in range(num_epochs):\n",
    "    model.train()\n",
    "    train_loss = 0.0\n",
    "    correct_train = 0\n",
    "    \n",
    "    print(f\"\\nEpoch {epoch+1}/{num_epochs}\")\n",
    "    print('-' * 50)\n",
    "    \n",
    "    for batch_idx, (inputs, labels) in enumerate(train_loader):\n",
    "        inputs, labels = inputs.to(device), labels.to(device)\n",
    "        \n",
    "        optimizer.zero_grad()\n",
    "        outputs = model(inputs)\n",
    "        loss = criterion(outputs, labels)\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "        \n",
    "        train_loss += loss.item()\n",
    "        _, preds = torch.max(outputs, 1)\n",
    "        correct_train += (preds == labels).sum().item()\n",
    "        \n",
    "        # Print batch-level training log\n",
    "        if (batch_idx + 1) % 10 == 0:\n",
    "            batch_accuracy = 100 * (preds == labels).sum().item() / inputs.size(0)\n",
    "            print(f\"Batch {batch_idx+1}/{len(train_loader)} - Loss: {loss.item():.4f}, Accuracy: {batch_accuracy:.2f}%\")\n",
    "\n",
    "    train_accuracy = 100 * correct_train / train_size\n",
    "\n",
    "    # Evaluate the model on the validation set\n",
    "    model.eval()\n",
    "    val_loss = 0.0\n",
    "    correct_val = 0\n",
    "    \n",
    "    with torch.no_grad():\n",
    "        for inputs, labels in val_loader:\n",
    "            inputs, labels = inputs.to(device), labels.to(device)\n",
    "            \n",
    "            outputs = model(inputs)\n",
    "            loss = criterion(outputs, labels)\n",
    "            \n",
    "            val_loss += loss.item()\n",
    "            _, preds = torch.max(outputs, 1)\n",
    "            correct_val += (preds == labels).sum().item()\n",
    "\n",
    "    val_accuracy = 100 * correct_val / val_size\n",
    "\n",
    "    print(f\"\\nEpoch Results - Training Loss: {train_loss/train_size:.4f}, Training Accuracy: {train_accuracy:.2f}%\")\n",
    "    print(f\"Validation Loss: {val_loss/val_size:.4f}, Validation Accuracy: {val_accuracy:.2f}%\")\n",
    "    print('-' * 50)\n",
    "\n",
    "    # Append average losses and accuracies for the epoch\n",
    "    train_losses.append(train_loss/train_size)\n",
    "    train_accuracies.append(train_accuracy)\n",
    "    val_losses.append(val_loss/val_size)\n",
    "    val_accuracies.append(val_accuracy)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "8c5e76bc-b7fa-4b65-8bb2-dc6a53baf68f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Epoch 1/10\n",
      "--------------------------------------------------\n",
      "\n",
      "Training Per-Class Accuracy:\n",
      "abnormal weld: 98.75%\n",
      "corrosion: 96.10%\n",
      "normal pipe: 84.62%\n",
      "normal weld: 98.82%\n",
      "scale: 86.59%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Validation Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 100.00%\n",
      "normal pipe: 100.00%\n",
      "normal weld: 100.00%\n",
      "scale: 94.44%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Epoch 2/10\n",
      "--------------------------------------------------\n",
      "\n",
      "Training Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 93.51%\n",
      "normal pipe: 84.62%\n",
      "normal weld: 97.65%\n",
      "scale: 90.24%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Validation Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 100.00%\n",
      "normal pipe: 100.00%\n",
      "normal weld: 100.00%\n",
      "scale: 94.44%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Epoch 3/10\n",
      "--------------------------------------------------\n",
      "\n",
      "Training Per-Class Accuracy:\n",
      "abnormal weld: 98.75%\n",
      "corrosion: 93.51%\n",
      "normal pipe: 85.90%\n",
      "normal weld: 96.47%\n",
      "scale: 92.68%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Validation Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 100.00%\n",
      "normal pipe: 100.00%\n",
      "normal weld: 100.00%\n",
      "scale: 94.44%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Epoch 4/10\n",
      "--------------------------------------------------\n",
      "\n",
      "Training Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 97.40%\n",
      "normal pipe: 83.33%\n",
      "normal weld: 95.29%\n",
      "scale: 90.24%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Validation Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 100.00%\n",
      "normal pipe: 100.00%\n",
      "normal weld: 100.00%\n",
      "scale: 94.44%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Epoch 5/10\n",
      "--------------------------------------------------\n",
      "\n",
      "Training Per-Class Accuracy:\n",
      "abnormal weld: 98.75%\n",
      "corrosion: 98.70%\n",
      "normal pipe: 87.18%\n",
      "normal weld: 98.82%\n",
      "scale: 87.80%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Validation Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 100.00%\n",
      "normal pipe: 100.00%\n",
      "normal weld: 100.00%\n",
      "scale: 94.44%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Epoch 6/10\n",
      "--------------------------------------------------\n",
      "\n",
      "Training Per-Class Accuracy:\n",
      "abnormal weld: 98.75%\n",
      "corrosion: 97.40%\n",
      "normal pipe: 87.18%\n",
      "normal weld: 96.47%\n",
      "scale: 92.68%\n",
      "slight crack: 98.72%\n",
      "\n",
      "Validation Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 100.00%\n",
      "normal pipe: 100.00%\n",
      "normal weld: 100.00%\n",
      "scale: 94.44%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Epoch 7/10\n",
      "--------------------------------------------------\n",
      "\n",
      "Training Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 94.81%\n",
      "normal pipe: 85.90%\n",
      "normal weld: 97.65%\n",
      "scale: 90.24%\n",
      "slight crack: 98.72%\n",
      "\n",
      "Validation Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 100.00%\n",
      "normal pipe: 100.00%\n",
      "normal weld: 100.00%\n",
      "scale: 94.44%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Epoch 8/10\n",
      "--------------------------------------------------\n",
      "\n",
      "Training Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 97.40%\n",
      "normal pipe: 87.18%\n",
      "normal weld: 96.47%\n",
      "scale: 92.68%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Validation Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 100.00%\n",
      "normal pipe: 100.00%\n",
      "normal weld: 100.00%\n",
      "scale: 94.44%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Epoch 9/10\n",
      "--------------------------------------------------\n",
      "\n",
      "Training Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 97.40%\n",
      "normal pipe: 87.18%\n",
      "normal weld: 100.00%\n",
      "scale: 87.80%\n",
      "slight crack: 98.72%\n",
      "\n",
      "Validation Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 100.00%\n",
      "normal pipe: 100.00%\n",
      "normal weld: 100.00%\n",
      "scale: 94.44%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Epoch 10/10\n",
      "--------------------------------------------------\n",
      "\n",
      "Training Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 98.70%\n",
      "normal pipe: 85.90%\n",
      "normal weld: 100.00%\n",
      "scale: 87.80%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Validation Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 100.00%\n",
      "normal pipe: 100.00%\n",
      "normal weld: 100.00%\n",
      "scale: 94.44%\n",
      "slight crack: 100.00%\n"
     ]
    }
   ],
   "source": [
    "from collections import defaultdict\n",
    "\n",
    "# Assuming dataset.classes gives you the list of class names\n",
    "class_names = dataset.classes\n",
    "\n",
    "# Initialize counters for training and validation\n",
    "train_correct_per_class = defaultdict(int)\n",
    "train_total_per_class = defaultdict(int)\n",
    "val_correct_per_class = defaultdict(int)\n",
    "val_total_per_class = defaultdict(int)\n",
    "\n",
    "for epoch in range(num_epochs):\n",
    "    model.train()\n",
    "    train_loss = 0.0\n",
    "    correct_train = 0\n",
    "    \n",
    "    # Reset counters at the start of each epoch\n",
    "    for class_name in class_names:\n",
    "        train_correct_per_class[class_name] = 0\n",
    "        train_total_per_class[class_name] = 0\n",
    "        val_correct_per_class[class_name] = 0\n",
    "        val_total_per_class[class_name] = 0\n",
    "    \n",
    "    print(f\"\\nEpoch {epoch+1}/{num_epochs}\")\n",
    "    print('-' * 50)\n",
    "    \n",
    "    for batch_idx, (inputs, labels) in enumerate(train_loader):\n",
    "        inputs, labels = inputs.to(device), labels.to(device)\n",
    "        \n",
    "        optimizer.zero_grad()\n",
    "        outputs = model(inputs)\n",
    "        loss = criterion(outputs, labels)\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "        \n",
    "        train_loss += loss.item()\n",
    "        _, preds = torch.max(outputs, 1)\n",
    "        correct_train += (preds == labels).sum().item()\n",
    "        \n",
    "        # Update training counters\n",
    "        for label, pred in zip(labels, preds):\n",
    "            if label == pred:\n",
    "                train_correct_per_class[class_names[label.item()]] += 1\n",
    "            train_total_per_class[class_names[label.item()]] += 1\n",
    "        \n",
    "        # Optional: Batch-level logging, same as before\n",
    "        \n",
    "    # Evaluate on validation set\n",
    "    model.eval()\n",
    "    val_loss = 0.0\n",
    "    correct_val = 0\n",
    "    \n",
    "    with torch.no_grad():\n",
    "        for inputs, labels in val_loader:\n",
    "            inputs, labels = inputs.to(device), labels.to(device)\n",
    "            \n",
    "            outputs = model(inputs)\n",
    "            loss = criterion(outputs, labels)\n",
    "            \n",
    "            val_loss += loss.item()\n",
    "            _, preds = torch.max(outputs, 1)\n",
    "            correct_val += (preds == labels).sum().item()\n",
    "            \n",
    "            # Update validation counters\n",
    "            for label, pred in zip(labels, preds):\n",
    "                if label == pred:\n",
    "                    val_correct_per_class[class_names[label.item()]] += 1\n",
    "                val_total_per_class[class_names[label.item()]] += 1\n",
    "    \n",
    "    # Optional: Epoch-level logging, same as before\n",
    "    \n",
    "    # Print per-class accuracy for training\n",
    "    print(\"\\nTraining Per-Class Accuracy:\")\n",
    "    for class_name in class_names:\n",
    "        accuracy = 100.0 * train_correct_per_class[class_name] / train_total_per_class[class_name]\n",
    "        print(f\"{class_name}: {accuracy:.2f}%\")\n",
    "    \n",
    "    # Print per-class accuracy for validation\n",
    "    print(\"\\nValidation Per-Class Accuracy:\")\n",
    "    for class_name in class_names:\n",
    "        accuracy = 100.0 * val_correct_per_class[class_name] / val_total_per_class[class_name]\n",
    "        print(f\"{class_name}: {accuracy:.2f}%\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "f49b0723-e668-455c-8a1c-c2f8a0fd1133",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Epoch 1/10\n",
      "--------------------------------------------------\n",
      "\n",
      "Training Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 96.10%\n",
      "normal pipe: 85.90%\n",
      "normal weld: 97.65%\n",
      "scale: 90.24%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Total Training Accuracy: 95.00%\n",
      "\n",
      "Validation Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 100.00%\n",
      "normal pipe: 100.00%\n",
      "normal weld: 100.00%\n",
      "scale: 94.44%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Total Validation Accuracy: 99.17%\n",
      "\n",
      "Epoch 2/10\n",
      "--------------------------------------------------\n",
      "\n",
      "Training Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 93.51%\n",
      "normal pipe: 88.46%\n",
      "normal weld: 100.00%\n",
      "scale: 90.24%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Total Training Accuracy: 95.42%\n",
      "\n",
      "Validation Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 100.00%\n",
      "normal pipe: 100.00%\n",
      "normal weld: 100.00%\n",
      "scale: 94.44%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Total Validation Accuracy: 99.17%\n",
      "\n",
      "Epoch 3/10\n",
      "--------------------------------------------------\n",
      "\n",
      "Training Per-Class Accuracy:\n",
      "abnormal weld: 98.75%\n",
      "corrosion: 98.70%\n",
      "normal pipe: 85.90%\n",
      "normal weld: 97.65%\n",
      "scale: 85.37%\n",
      "slight crack: 98.72%\n",
      "\n",
      "Total Training Accuracy: 94.17%\n",
      "\n",
      "Validation Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 100.00%\n",
      "normal pipe: 100.00%\n",
      "normal weld: 100.00%\n",
      "scale: 94.44%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Total Validation Accuracy: 99.17%\n",
      "\n",
      "Epoch 4/10\n",
      "--------------------------------------------------\n",
      "\n",
      "Training Per-Class Accuracy:\n",
      "abnormal weld: 98.75%\n",
      "corrosion: 94.81%\n",
      "normal pipe: 88.46%\n",
      "normal weld: 100.00%\n",
      "scale: 90.24%\n",
      "slight crack: 98.72%\n",
      "\n",
      "Total Training Accuracy: 95.21%\n",
      "\n",
      "Validation Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 100.00%\n",
      "normal pipe: 100.00%\n",
      "normal weld: 100.00%\n",
      "scale: 94.44%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Total Validation Accuracy: 99.17%\n",
      "\n",
      "Epoch 5/10\n",
      "--------------------------------------------------\n",
      "\n",
      "Training Per-Class Accuracy:\n",
      "abnormal weld: 98.75%\n",
      "corrosion: 96.10%\n",
      "normal pipe: 88.46%\n",
      "normal weld: 95.29%\n",
      "scale: 87.80%\n",
      "slight crack: 98.72%\n",
      "\n",
      "Total Training Accuracy: 94.17%\n",
      "\n",
      "Validation Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 100.00%\n",
      "normal pipe: 100.00%\n",
      "normal weld: 100.00%\n",
      "scale: 94.44%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Total Validation Accuracy: 99.17%\n",
      "\n",
      "Epoch 6/10\n",
      "--------------------------------------------------\n",
      "\n",
      "Training Per-Class Accuracy:\n",
      "abnormal weld: 97.50%\n",
      "corrosion: 96.10%\n",
      "normal pipe: 84.62%\n",
      "normal weld: 96.47%\n",
      "scale: 90.24%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Total Training Accuracy: 94.17%\n",
      "\n",
      "Validation Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 100.00%\n",
      "normal pipe: 100.00%\n",
      "normal weld: 100.00%\n",
      "scale: 94.44%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Total Validation Accuracy: 99.17%\n",
      "\n",
      "Epoch 7/10\n",
      "--------------------------------------------------\n",
      "\n",
      "Training Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 96.10%\n",
      "normal pipe: 83.33%\n",
      "normal weld: 96.47%\n",
      "scale: 89.02%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Total Training Accuracy: 94.17%\n",
      "\n",
      "Validation Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 100.00%\n",
      "normal pipe: 100.00%\n",
      "normal weld: 100.00%\n",
      "scale: 94.44%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Total Validation Accuracy: 99.17%\n",
      "\n",
      "Epoch 8/10\n",
      "--------------------------------------------------\n",
      "\n",
      "Training Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 94.81%\n",
      "normal pipe: 87.18%\n",
      "normal weld: 95.29%\n",
      "scale: 93.90%\n",
      "slight crack: 98.72%\n",
      "\n",
      "Total Training Accuracy: 95.00%\n",
      "\n",
      "Validation Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 100.00%\n",
      "normal pipe: 100.00%\n",
      "normal weld: 100.00%\n",
      "scale: 94.44%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Total Validation Accuracy: 99.17%\n",
      "\n",
      "Epoch 9/10\n",
      "--------------------------------------------------\n",
      "\n",
      "Training Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 93.51%\n",
      "normal pipe: 87.18%\n",
      "normal weld: 97.65%\n",
      "scale: 93.90%\n",
      "slight crack: 98.72%\n",
      "\n",
      "Total Training Accuracy: 95.21%\n",
      "\n",
      "Validation Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 100.00%\n",
      "normal pipe: 100.00%\n",
      "normal weld: 100.00%\n",
      "scale: 94.44%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Total Validation Accuracy: 99.17%\n",
      "\n",
      "Epoch 10/10\n",
      "--------------------------------------------------\n",
      "\n",
      "Training Per-Class Accuracy:\n",
      "abnormal weld: 98.75%\n",
      "corrosion: 94.81%\n",
      "normal pipe: 84.62%\n",
      "normal weld: 98.82%\n",
      "scale: 90.24%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Total Training Accuracy: 94.58%\n",
      "\n",
      "Validation Per-Class Accuracy:\n",
      "abnormal weld: 100.00%\n",
      "corrosion: 100.00%\n",
      "normal pipe: 100.00%\n",
      "normal weld: 100.00%\n",
      "scale: 94.44%\n",
      "slight crack: 100.00%\n",
      "\n",
      "Total Validation Accuracy: 99.17%\n"
     ]
    }
   ],
   "source": [
    "from collections import defaultdict\n",
    "\n",
    "# Assuming dataset.classes gives you the list of class names\n",
    "class_names = dataset.classes\n",
    "\n",
    "# Initialize counters for training and validation\n",
    "train_correct_per_class = defaultdict(int)\n",
    "train_total_per_class = defaultdict(int)\n",
    "val_correct_per_class = defaultdict(int)\n",
    "val_total_per_class = defaultdict(int)\n",
    "\n",
    "for epoch in range(num_epochs):\n",
    "    model.train()\n",
    "    train_loss = 0.0\n",
    "    correct_train = 0\n",
    "    \n",
    "    # Reset counters at the start of each epoch\n",
    "    for class_name in class_names:\n",
    "        train_correct_per_class[class_name] = 0\n",
    "        train_total_per_class[class_name] = 0\n",
    "        val_correct_per_class[class_name] = 0\n",
    "        val_total_per_class[class_name] = 0\n",
    "    \n",
    "    print(f\"\\nEpoch {epoch+1}/{num_epochs}\")\n",
    "    print('-' * 50)\n",
    "    \n",
    "    for batch_idx, (inputs, labels) in enumerate(train_loader):\n",
    "        inputs, labels = inputs.to(device), labels.to(device)\n",
    "        \n",
    "        optimizer.zero_grad()\n",
    "        outputs = model(inputs)\n",
    "        loss = criterion(outputs, labels)\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "        \n",
    "        train_loss += loss.item()\n",
    "        _, preds = torch.max(outputs, 1)\n",
    "        correct_train += (preds == labels).sum().item()\n",
    "        \n",
    "        # Update training counters\n",
    "        for label, pred in zip(labels, preds):\n",
    "            if label == pred:\n",
    "                train_correct_per_class[class_names[label.item()]] += 1\n",
    "            train_total_per_class[class_names[label.item()]] += 1\n",
    "        \n",
    "        # Optional: Batch-level logging, same as before\n",
    "        \n",
    "    # Evaluate on validation set\n",
    "    model.eval()\n",
    "    val_loss = 0.0\n",
    "    correct_val = 0\n",
    "    \n",
    "    with torch.no_grad():\n",
    "        for inputs, labels in val_loader:\n",
    "            inputs, labels = inputs.to(device), labels.to(device)\n",
    "            \n",
    "            outputs = model(inputs)\n",
    "            loss = criterion(outputs, labels)\n",
    "            \n",
    "            val_loss += loss.item()\n",
    "            _, preds = torch.max(outputs, 1)\n",
    "            correct_val += (preds == labels).sum().item()\n",
    "            \n",
    "            # Update validation counters\n",
    "            for label, pred in zip(labels, preds):\n",
    "                if label == pred:\n",
    "                    val_correct_per_class[class_names[label.item()]] += 1\n",
    "                val_total_per_class[class_names[label.item()]] += 1\n",
    "    \n",
    "    # Optional: Epoch-level logging, same as before\n",
    "    \n",
    "    # Print per-class accuracy for training\n",
    "    print(\"\\nTraining Per-Class Accuracy:\")\n",
    "    total_correct_train = 0\n",
    "    total_instances_train = 0\n",
    "    for class_name in class_names:\n",
    "        accuracy = 100.0 * train_correct_per_class[class_name] / train_total_per_class[class_name]\n",
    "        print(f\"{class_name}: {accuracy:.2f}%\")\n",
    "        total_correct_train += train_correct_per_class[class_name]\n",
    "        total_instances_train += train_total_per_class[class_name]\n",
    "    \n",
    "    # Print total training accuracy\n",
    "    total_train_accuracy = 100.0 * total_correct_train / total_instances_train\n",
    "    print(f\"\\nTotal Training Accuracy: {total_train_accuracy:.2f}%\")\n",
    "    \n",
    "    # Print per-class accuracy for validation\n",
    "    print(\"\\nValidation Per-Class Accuracy:\")\n",
    "    total_correct_val = 0\n",
    "    total_instances_val = 0\n",
    "    for class_name in class_names:\n",
    "        accuracy = 100.0 * val_correct_per_class[class_name] / val_total_per_class[class_name]\n",
    "        print(f\"{class_name}: {accuracy:.2f}%\")\n",
    "        total_correct_val += val_correct_per_class[class_name]\n",
    "        total_instances_val += val_total_per_class[class_name]\n",
    "    \n",
    "    # Print total validation accuracy\n",
    "    total_val_accuracy = 100.0 * total_correct_val / total_instances_val\n",
    "    print(f\"\\nTotal Validation Accuracy: {total_val_accuracy:.2f}%\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cfbb68be-f527-4d38-a35e-1115f61c2145",
   "metadata": {},
   "source": [
    "# Plot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "d1632451-3894-449e-ba19-2f02892583a5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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5JNPWLNmDYcPHyY+Pp5atWrRsWNHXnzxRTp27FjCd0xEpOpQSBAREZvIDQlr1qyxdykiInKVNCZBRERERETyUUgQEREREZF8FBJERERERCQfJ3sXICIiVYOGuImIVB1qSRARERERkXwUEkREREREJB+FBBERERERyUchQURERERE8lFIEBERERGRfBQSREREREQkH4UEERERERHJRyFBRERERETyUUgQEREREZF8FBJERERERCQfhQQREREREclHIUFERERERPJRSBARERERkXwUEkREREREJB+FBBERERERyUchQURERERE8lFIEBERERGRfBQSREREREQkH4UEERERERHJRyFBRERERETyUUgQkQph4sSJmEwmJk6caJPzrVmzBpPJRI8ePWxyPrm84t5zk8mEyWQq9Tl79OiByWRizZo1V19gCehzIyJioZAgUo3l3riV5o9unspGUlISL730Eo0aNcLV1ZXg4GA6d+7MW2+9RXR0dKnPt3//fuvv7MCBA5c9Pisri8DAQEwmE99///2VvIRKYeLEiTYLohXFli1brL/ru+++297liEgV4WTvAkTEfrp06VJgW0JCArt37y5yf8uWLcuklsDAQJo2bUpgYKBNzufh4UHTpk2pW7euTc5XllJSUrj++uvZuXMnjo6ONG3aFCcnJzZv3szGjRupXbs29913X6nO2aRJE6699lr+/PNPZs2axaRJk4o9ftmyZcTGxuLr68ugQYOu4tUUrmnTpjY/55XIfR+KCgqV6XOT63//+5/18cKFC0lKSsLb29uOFYlIVaCQIFKNbdiwocC2NWvW0LNnzyL3l5XRo0czevRom52vY8eO7N2712bnK0uffvopO3fupFatWvz6669ERkYCltaF2bNnExoaekXnveeee/jzzz/55ptvLhsSZs2aBcCwYcNwc3O7ousVp7L8LirT5wYgOzubOXPmAODn50d8fDw//PAD9957r50rE5HKTt2NRETsLDeMPf3009aAAODt7c0jjzxCnz59rui8d955J87Ozhw6dIg//vijyOMSExNZvHgxYAkWUnn8/PPPxMTEUKdOHcaOHQvkb1kQEblSCgkiUmJ5BxefPXuW0aNHEx4ejrOzc77uMCtXrmT06NG0bt0af39/3NzcaNiwIY899hjHjx+/7Lnzmj59OiaTifvuu4+MjAwmTpxI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MmTIEFxcXNi7dy9ubm5MmjSJ5cuXF7rGQGXRu3dvNm7cyE033QRY+qfXrl2bOXPm8MgjjwClH7Tq5eXFypUrmTlzJr179yY7O5tt27YRHx/PwIED+f7779mwYQPDhg2zTiv75JNPsnDhwit6DXlbDu6++27rQNO8nJycWLFiBU8++STBwcEcPHiQ+Ph4HnjgAbZs2VKq9S0uJzQ0lE2bNvHoo48SGBjInj17MAyD119/nQULFhRaH8CUKVP48MMPadasGadPn+bYsWP07t2b9evXFzt//ZgxY5gwYQKNGjViz549rF27lrVr1xY71Wuua6+9lh07dvDII48QGBjIzp07SU5Opk+fPixdupQ33njjit+HkkhMTGTRokUA1tmqitOqVStatmyJ2WzO19I1YsQItm/fzv33309gYCC7d+/m7NmzNG/enIkTJxZ4/1q3bs3u3bsZO3YsERERHDlyhEOHDhEaGspjjz3Gs88+m+/4Zs2asW7dOvr164eDgwP79u2jfv36LF68mEcfffSq3oMr/b3XrVuXLVu28M4779CuXTtOnTrFP//8g7+/P/fee2+xv7vcMQhaG0GqG5NhlHLeNRERKWDLli1cc801tG7dOl8XHRGp3MaMGcPkyZN54YUXeO+99+xdjki5UUuCiIgNfP3114Bl4KqIVA1ZWVnW8Q/333+/nasRKV8KCSIiJbR69Wq+/fZbMjIyrNuysrL417/+xaeffoqDgwMPPfSQHSsUEVv66KOPiI6Opnv37kWuti1SVVXezsEiIuXs2LFj3H///Tg7O1O/fn18fHzYv3+/deGqd955hzZt2ti3SBG5KqdPn+bOO+8kNjaW3bt34+DgwFtvvWXvskTKncYkiIiU0KFDh/jwww9ZvXo1p06dIikpCX9/f6699lpGjx5tnYNeRCqvo0ePUr9+fZydnWnSpAmTJk0qdrpZkaqq0oSEpKQk3njjDbZv3862bds4d+4cEyZMYOLEiQWO3bp1Ky+99BJ//PEHTk5O9OrVi/fff986P3Ze//3vf/nkk084cuQIoaGh3HfffbzyyiuFzs0tIiIiIlIdVJoxCbGxsXz++edkZGRYV08szN69e+nRoweZmZnMnTuXadOmsX//frp27Vpgpde33nqLp59+miFDhrBixQoef/xx3n77bZ544okyfjUiIiIiIhVXpWlJyC3T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",
      "text/plain": [
       "<Figure size 800x800 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plotting\n",
    "fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(8, 8))\n",
    "\n",
    "# # Plotting loss\n",
    "# ax1.plot(train_losses, '-o', label='Training Loss')\n",
    "# ax1.plot(val_losses, '-o', label='Validation Loss')\n",
    "# ax1.set_title('Training & Validation Loss')\n",
    "# ax1.set_xlabel('Epochs')\n",
    "# ax1.set_ylabel('Loss')\n",
    "# ax1.legend()\n",
    "\n",
    "# # Plotting accuracy\n",
    "# ax2.plot(train_accuracies, '-o', label='Training Accuracy')\n",
    "# ax2.plot(val_accuracies, '-o', label='Validation Accuracy')\n",
    "# ax2.set_title('Training & Validation Accuracy')\n",
    "# ax2.set_xlabel('Epochs')\n",
    "# ax2.set_ylabel('Accuracy (%)')\n",
    "# ax2.legend()\n",
    "\n",
    "plt.rcParams.update({'font.size': 14})\n",
    "\n",
    "# Plotting loss\n",
    "ax1.plot(val_losses, '-o', label='Training Loss')\n",
    "ax1.plot(train_losses, '-o', label='Validation Loss')\n",
    "ax1.set_title('Training & Validation Loss', fontsize=16)  # Adjust title font size\n",
    "ax1.set_xlabel('Epochs', fontsize=14)  # Adjust x-axis label font size\n",
    "ax1.set_ylabel('Loss', fontsize=14)  # Adjust y-axis label font size\n",
    "ax1.legend(fontsize=12)  # Adjust legend font size\n",
    "ax1.tick_params(axis='both', which='major', labelsize=12)  # Adjust tick labels font size\n",
    "\n",
    "# Plotting accuracy\n",
    "ax2.plot(val_accuracies, '-o', label='Training Accuracy')\n",
    "ax2.plot(train_accuracies, '-o', label='Validation Accuracy')\n",
    "ax2.set_title('Training & Validation Accuracy', fontsize=16)\n",
    "ax2.set_xlabel('Epochs', fontsize=14)\n",
    "ax2.set_ylabel('Accuracy (%)', fontsize=14)\n",
    "ax2.legend(fontsize=12)\n",
    "ax2.tick_params(axis='both', which='major', labelsize=12)\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "f626a552-bcdb-4c10-a7ea-828d0cf62194",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.1109455943107605,\n",
       " 0.09709468086560567,\n",
       " 0.059543039898077646,\n",
       " 0.03849703868230184,\n",
       " 0.022030341268206636,\n",
       " 0.01758899868776401,\n",
       " 0.016274747105004886,\n",
       " 0.01119054430940499,\n",
       " 0.01089744184476634,\n",
       " 0.012396277918014675]"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_losses"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "fa007de3-b341-4fb0-b55c-caa8696aa096",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.1152847170829773,\n",
       " 0.08245776295661926,\n",
       " 0.04544416020313899,\n",
       " 0.02389967255294323,\n",
       " 0.0139364259938399,\n",
       " 0.015868306905031205,\n",
       " 0.010834261837104956,\n",
       " 0.010479261837104957,\n",
       " 0.010150367021560669,\n",
       " 0.008373458217829467]"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "val_losses"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "d218f44e-230e-461c-be19-a8cd2a5b5baf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[34.166666666666664,\n",
       " 68.33333333333333,\n",
       " 75.83333333333333,\n",
       " 90.83333333333333,\n",
       " 94.16666666666667,\n",
       " 90.0,\n",
       " 94.16666666666667,\n",
       " 93.333333333,\n",
       " 91.66666666666667,\n",
       " 96.66666666666667]"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "val_accuracies"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "68f9edf1-891b-4728-a5cb-90df14f5feda",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[20.208333333333332,\n",
       " 47.708333333333336,\n",
       " 67.08333333333333,\n",
       " 78.125,\n",
       " 88.33333333333333,\n",
       " 89.79166666666667,\n",
       " 90.20833333333333,\n",
       " 94.375,\n",
       " 93.75,\n",
       " 92.70833333333333]"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_accuracies"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d75f4a09-bf9b-43fa-88aa-2f5cb2362f3d",
   "metadata": {},
   "source": [
    "# Inference"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "20fde69a-d5f2-4574-ade9-1d4f637e7a00",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Load the model\n",
    "model = CustomCNN(num_classes=len(dataset.classes))\n",
    "model.load_state_dict(torch.load('model_weights.pth'))\n",
    "model.to(device)\n",
    "model.eval()  # Set the model to evaluation mode\n",
    "\n",
    "# Inferencing\n",
    "def inference(audio_image_path, image_path):\n",
    "    # Load and preprocess the audio_image and image\n",
    "    audio_image = Image.open(audio_image_path)\n",
    "    image = Image.open(image_path)\n",
    "    \n",
    "    audio_image_transformed = transform(audio_image)\n",
    "    image_transformed = transform(image)\n",
    "    \n",
    "    # Add an extra batch dimension and concatenate\n",
    "    input_data = torch.cat((audio_image_transformed.unsqueeze(0), image_transformed.unsqueeze(0)), dim=1).to(device)\n",
    "    \n",
    "    # Predict\n",
    "    with torch.no_grad():\n",
    "        outputs = model(input_data)\n",
    "        _, predicted = torch.max(outputs, 1)\n",
    "        predicted_class_name = dataset.classes[predicted.item()]\n",
    "    \n",
    "    # Plotting\n",
    "    plt.figure(figsize=(12, 5))\n",
    "    \n",
    "    plt.subplot(1, 3, 1)\n",
    "    plt.imshow(audio_image)\n",
    "    plt.title(f\"Audio Image\\nClass: {audio_image_path.split('/')[-2]}\")  # Assuming class name is the second to last part of the path\n",
    "    plt.axis('off')\n",
    "    \n",
    "    plt.subplot(1, 3, 2)\n",
    "    plt.imshow(image)\n",
    "    plt.title(f\"Image\\nClass: {image_path.split('/')[-2]}\")  # Assuming class name is the second to last part of the path\n",
    "    plt.axis('off')\n",
    "    \n",
    "    # Display predicted class in the third subplot\n",
    "    plt.subplot(1, 3, 3)\n",
    "    plt.text(0.5, 0.5, f\"Prediction Class:\\n\\n{predicted_class_name}\", color='red', fontsize=18, ha='center', va='center')\n",
    "    plt.axis('off')\n",
    "    \n",
    "    plt.tight_layout()\n",
    "    plt.show()\n",
    "    \n",
    "    return predicted_class_name\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f50df815-55f9-4b8c-bce8-0916c5671e60",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Example\n",
    "predicted_class = inference('/data/si/모핑아이/audio_dataset/abnormal weld/audio_65.png', '/data/si/모핑아이/image_dataset/abnormal weld/frame_0059_png.rf.55b79239638ee871a156351bd4b58d3d.jpg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0e8a0a6d-2d35-465c-8be7-560f65285d81",
   "metadata": {},
   "outputs": [],
   "source": [
    "import random\n",
    "import time\n",
    "from IPython.display import display, clear_output\n",
    "\n",
    "def random_inference(num_iterations=50):\n",
    "    # Get list of class names\n",
    "    class_names = [c for c in sorted(os.listdir('./audio_dataset')) if c != '.ipynb_checkpoints']\n",
    "    \n",
    "    for i in range(num_iterations):\n",
    "        # Randomly select a class\n",
    "        selected_class = random.choice(class_names)\n",
    "        print(selected_class)\n",
    "        \n",
    "        # List of audio images and images from the selected class\n",
    "        audio_images = [f for f in os.listdir(f'./audio_dataset/{selected_class}') if f.endswith('.png')]\n",
    "        images = [f for f in os.listdir(f'./image_dataset/{selected_class}') if f.endswith('.jpg') or f.endswith('.png')]\n",
    "        \n",
    "        # Randomly select an audio image and an image from the lists\n",
    "        audio_image_filename = random.choice(audio_images)\n",
    "        image_filename = random.choice(images)\n",
    "        \n",
    "        # Construct paths\n",
    "        audio_image_path = f'./audio_dataset/{selected_class}/{audio_image_filename}'\n",
    "        image_path = f'./image_dataset/{selected_class}/{image_filename}'\n",
    "        \n",
    "        # Perform inference\n",
    "        print(f\"--- Iteration {i+1} ---\")\n",
    "        inference(audio_image_path, image_path)\n",
    "\n",
    "        time.sleep(1)\n",
    "        clear_output(wait=True)\n",
    "\n",
    "# Run random inference\n",
    "random_inference()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "500b99b2-cae9-46bc-87eb-761e1dcb3ffa",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "yt38",
   "language": "python",
   "name": "yt38"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
