{ "cells": [ { "cell_type": "markdown", "id": "a22c88dcad652b76", "metadata": {}, "source": [ "Chargement des librairies" ] }, { "cell_type": "code", "id": "initial_id", "metadata": { "collapsed": true, "ExecuteTime": { "end_time": "2025-02-14T21:37:55.850005Z", "start_time": "2025-02-14T21:37:50.894076Z" } }, "source": [ "import torch\n", "import torch.nn as nn\n", "import torch.optim as optim\n", "import torchvision\n", "import torchvision.transforms as transforms\n", "from torch.utils.data import DataLoader, Dataset" ], "outputs": [], "execution_count": 1 }, { "cell_type": "markdown", "id": "cfa8a01e3ecd9426", "metadata": {}, "source": [ "Vérifions la GPU" ] }, { "cell_type": "code", "id": "c104846c458f414b", "metadata": { "ExecuteTime": { "end_time": "2025-02-14T21:37:55.915627Z", "start_time": "2025-02-14T21:37:55.877120Z" } }, "source": [ "# Vérification de l'utilisation du GPU\n", "device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n", "print(f'Utilisation de : {device}')" ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Utilisation de : cuda\n" ] } ], "execution_count": 2 }, { "cell_type": "markdown", "id": "aee62504", "metadata": {}, "source": [ "Préparons les données" ] }, { "cell_type": "code", "id": "626087865d136625", "metadata": { "ExecuteTime": { "end_time": "2025-02-14T21:37:56.166722Z", "start_time": "2025-02-14T21:37:56.157626Z" } }, "source": [ "transform_train = transforms.Compose([\n", " transforms.Resize((128, 128)),\n", " transforms.ToTensor(),\n", " transforms.RandomVerticalFlip(),\n", " transforms.RandomHorizontalFlip(),\n", " transforms.RandomRotation(20),\n", " transforms.GaussianBlur(5),\n", " transforms.Grayscale(num_output_channels=3),\n", " transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])\n", "])\n", "\n", "transform_test = transforms.Compose([\n", " transforms.Resize((128, 128)),\n", " transforms.ToTensor(),\n", " transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])\n", "])" ], "outputs": [], "execution_count": 3 }, { "cell_type": "code", "id": "bca8a178", "metadata": { "ExecuteTime": { "end_time": "2025-02-14T21:37:56.274842Z", "start_time": "2025-02-14T21:37:56.214471Z" } }, "source": [ "train_data = torchvision.datasets.ImageFolder(root='../dataset/Training/', transform=transform_train)\n", "test_data = torchvision.datasets.ImageFolder(root='../dataset/Testing/', transform=transform_test)" ], "outputs": [], "execution_count": 4 }, { "cell_type": "code", "id": "d586c0a5", "metadata": { "ExecuteTime": { "end_time": "2025-02-14T21:37:57.032441Z", "start_time": "2025-02-14T21:37:57.026046Z" } }, "source": [ "train_loader = DataLoader(train_data, batch_size=16, shuffle=True)\n", "test_loader = DataLoader(test_data, batch_size=16, shuffle=True)" ], "outputs": [], "execution_count": 5 }, { "metadata": {}, "cell_type": "markdown", "source": "# Visualisation des données", "id": "65be7bae305ef28e" }, { "metadata": { "ExecuteTime": { "end_time": "2025-02-14T21:38:54.124559Z", "start_time": "2025-02-14T21:38:51.947698Z" } }, "cell_type": "code", "source": [ "# show classes repartition in the dataset\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "classes = train_data.classes\n", "class_counts = np.bincount(train_data.targets)\n", "plt.bar(classes, class_counts)\n", "plt.xlabel('Classes')\n", "plt.ylabel('Counts')\n", "plt.title('Classes Repartition')\n", "plt.show()" ], "id": "1c263531bf42fea4", "outputs": [ { "data": { "text/plain": [ "
" ], "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkQAAAHHCAYAAABeLEexAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAABKFklEQVR4nO3deVgV9f///8dBFhUERAXECJfM1EjLLXJXknBJzTKL1MylBTSl1PzkFi2Wlmua2SK+e2v1btHMcsElNSVFjdzRzMJSoCRENAFhfn/0Y76ewFJiOTL323Wd63Jer9e85jlnEB/Oco7NMAxDAAAAFuZU3gUAAACUNwIRAACwPAIRAACwPAIRAACwPAIRAACwPAIRAACwPAIRAACwPAIRAACwPAIRAACwPAIRYGF169bVww8/XN5loBi++uor2Ww2ffXVV/849scff5TNZlNsbGyp1wVcqwhEQAV07NgxPfroo6pfv74qV64sT09PtW3bVnPmzNEff/xR3uWVmdjYWNlsNvPl7OysOnXq6OGHH9Yvv/xS3uVdkQULFlxxkFm2bJlmz55dqvUAFZVzeRcAoGR98cUXuu++++Tm5qZBgwbp5ptvVk5Ojr7++muNHTtWBw4c0KJFi8q7zDIVExOjevXq6cKFC/rmm28UGxurr7/+Wvv371flypXLu7y/tWDBAtWsWbPQmbwOHTrojz/+kKurq9m2bNky7d+/X6NHj7YbGxQUpD/++EMuLi5lUDFwbSIQARXI8ePHNWDAAAUFBWnjxo2qXbu22RcZGanvv/9eX3zxRTlWWD7Cw8PVsmVLSdKwYcNUs2ZNvfLKK1q5cqX69+9fztUV7fz586patepl+52cnK44zNlsNocPfkB545IZUIFMnz5dWVlZeuedd+zCUIEbbrhBTz755GXXT09P19NPP63g4GB5eHjI09NT4eHh+u677wqNnTdvnpo2baqqVauqevXqatmypZYtW2b2nz17VqNHj1bdunXl5uYmX19f3XnnndqzZ4/dPDt27NBdd90lLy8vVa1aVR07dtS2bdvsxlzpXFeqffv2kv68tHipw4cP695775WPj48qV66sli1bauXKlXZjCi7DbdmyRY8++qhq1KghT09PDRo0SL///rvd2M8++0w9evRQQECA3Nzc1KBBAz3//PPKy8uzG9epUyfdfPPN2r17tzp06KCqVavq//7v/1S3bl0dOHBAmzdvNi/7derUSVLhe4g6deqkL774Qj/99JM5tm7dupIufw/Rxo0b1b59e7m7u8vb21u9e/fWoUOH7MZMnTpVNptN33//vR5++GF5e3vLy8tLQ4YM0fnz56/2rQccFmeIgArk888/V/369XXHHXcUa/0ffvhBK1as0H333ad69eopNTVVb775pjp27KiDBw8qICBAkvTWW29p1KhRuvfee/Xkk0/qwoUL2rt3r3bs2KEHH3xQkvTYY4/p448/VlRUlJo0aaLTp0/r66+/1qFDh3TbbbdJ+vMf5PDwcLVo0UJTpkyRk5OTFi9erC5dumjr1q1q3br1Fc91NX788UdJUvXq1c22AwcOqG3btqpTp46eeeYZubu763//+5/69OmjTz75RH379rWbIyoqSt7e3po6daqSkpL0xhtv6KeffjKDivRnePLw8FB0dLQ8PDy0ceNGTZ48WZmZmZoxY4bdfKdPn1Z4eLgGDBighx56SH5+furUqZNGjhwpDw8PPfvss5IkPz+/Ivfp2Wef1ZkzZ/Tzzz9r1qxZkiQPD4/Lvgfr169XeHi46tevr6lTp+qPP/7QvHnz1LZtW+3Zs8cMUwX69++vevXqadq0adqzZ4/efvtt+fr66pVXXvnnNxy4FhgAKoQzZ84YkozevXtf8TpBQUHG4MGDzeULFy4YeXl5dmOOHz9uuLm5GTExMWZb7969jaZNm/7t3F5eXkZkZORl+/Pz842GDRsaYWFhRn5+vtl+/vx5o169esadd955xXNdzuLFiw1Jxvr1641ff/3VOHHihPHxxx8btWrVMtzc3IwTJ06YY7t27WoEBwcbFy5csKvxjjvuMBo2bFhozhYtWhg5OTlm+/Tp0w1JxmeffWa3L3/16KOPGlWrVrXbTseOHQ1JxsKFCwuNb9q0qdGxY8dC7Zs2bTIkGZs2bTLbevToYQQFBRUae/z4cUOSsXjxYrOtefPmhq+vr3H69Gmz7bvvvjOcnJyMQYMGmW1TpkwxJBmPPPKI3Zx9+/Y1atSoUWhbwLWKS2ZABZGZmSlJqlatWrHncHNzk5PTn78W8vLydPr0aXl4eKhRo0Z2l6e8vb31888/KyEh4bJzeXt7a8eOHTp58mSR/YmJiTp69KgefPBBnT59Wr/99pt+++03nTt3Tl27dtWWLVuUn59/RXP9k9DQUNWqVUuBgYG699575e7urpUrV+q6666T9Oelwo0bN6p///46e/asWcvp06cVFhamo0ePFnoqbcSIEXY3KT/++ONydnbWl19+abZVqVLF/HPBvO3bt9f58+d1+PBhu/nc3Nw0ZMiQYu3f1Tp16pQSExP18MMPy8fHx2y/5ZZbdOedd9rtQ4HHHnvMbrl9+/Y6ffq0+XMHXOsIREAF4enpKenPf3iLKz8/X7NmzVLDhg3l5uammjVrqlatWtq7d6/OnDljjhs/frw8PDzUunVrNWzYUJGRkYXu+5k+fbr279+vwMBAtW7dWlOnTtUPP/xg9h89elSSNHjwYNWqVcvu9fbbbys7O9vc5j/N9U/mz5+vuLg4ffzxx+revbt+++03ubm5mf3ff/+9DMPQpEmTCtUyZcoUSVJaWprdnA0bNrRb9vDwUO3atc3LcdKfl+H69u0rLy8veXp6qlatWnrooYckye79lKQ6derYPTFWmn766SdJUqNGjQr1NW7c2Ayml7r++uvtlgsuN/71vingWsU9REAF4enpqYCAAO3fv7/Yc7z00kuaNGmSHnnkET3//PPy8fGRk5OTRo8ebZ6tkf78RzMpKUmrVq3SmjVr9Mknn2jBggWaPHmynnvuOUl/3nPSvn17LV++XOvWrdOMGTP0yiuv6NNPP1V4eLg534wZM9S8efMi6ym4B+af5vonrVu3Np8y69Onj9q1a6cHH3xQSUlJ8vDwMGt5+umnFRYWVuQcN9xww5W9if+/jIwMdezYUZ6enoqJiVGDBg1UuXJl7dmzR+PHj7d7PyX7s0mOqFKlSkW2G4ZRxpUApYNABFQgPXv21KJFixQfH6+QkJCrXv/jjz9W586d9c4779i1Z2RkqGbNmnZt7u7uuv/++3X//fcrJydH99xzj1588UVNmDDBfMS7du3aeuKJJ/TEE08oLS1Nt912m1588UWFh4erQYMGkv4McqGhof9Y29/NdTUqVaqkadOmqXPnznr99df1zDPPqH79+pIkFxeXK6pF+vMMV+fOnc3lrKwsnTp1St27d5f051Ngp0+f1qeffqoOHTqY444fP35V9RbcoF2SY4OCgiRJSUlJhfoOHz6smjVryt3d/Yq3C1QEXDIDKpBx48bJ3d1dw4YNU2pqaqH+Y8eOac6cOZddv1KlSoX+x//RRx8Vun/m9OnTdsuurq5q0qSJDMNQbm6u8vLyCl0S8vX1VUBAgLKzsyVJLVq0UIMGDfTqq68qKyurUC2//vqrJF3RXFerU6dOat26tWbPnq0LFy7I19dXnTp10ptvvqlTp05dtpZLLVq0SLm5uebyG2+8oYsXL5oBreCMyqXvZ05OjhYsWHBVtbq7uysjI+OKx/71vSpK7dq11bx5cy1ZssRu7v3792vdunVmqAOshDNEQAXSoEEDLVu2TPfff78aN25s90nV27dv10cfffS3313Ws2dPxcTEaMiQIbrjjju0b98+LV261DyDUqBbt27y9/dX27Zt5efnp0OHDun1119Xjx49VK1aNWVkZOi6667Tvffeq2bNmsnDw0Pr169XQkKCXnvtNUl/frDg22+/rfDwcDVt2lRDhgxRnTp19Msvv2jTpk3y9PTU559/rrNnz/7jXMUxduxY3XfffYqNjdVjjz2m+fPnq127dgoODtbw4cNVv359paamKj4+Xj///HOhz2LKyclR165d1b9/fyUlJWnBggVq166d7r77bknSHXfcoerVq2vw4MEaNWqUbDab3nvvvau+xNSiRQu98cYbeuGFF3TDDTfI19dXXbp0uezYDz/8UNHR0WrVqpU8PDzUq1evIsfOmDFD4eHhCgkJ0dChQ83H7r28vDR16tSrqhGoEMrzETcApePIkSPG8OHDjbp16xqurq5GtWrVjLZt2xrz5s2ze9y7qMfun3rqKaN27dpGlSpVjLZt2xrx8fFGx44d7R79fvPNN40OHToYNWrUMNzc3IwGDRoYY8eONc6cOWMYhmFkZ2cbY8eONZo1a2ZUq1bNcHd3N5o1a2YsWLCgUK3ffvutcc8995hzBQUFGf379zc2bNhw1XP9VcEj8gkJCYX68vLyjAYNGhgNGjQwLl68aBiGYRw7dswYNGiQ4e/vb7i4uBh16tQxevbsaXz88ceF5ty8ebMxYsQIo3r16oaHh4cRERFh9wi7YRjGtm3bjNtvv92oUqWKERAQYIwbN85Yu3ZtocflO3bseNmPMUhJSTF69OhhVKtWzZBkHoeiHrvPysoyHnzwQcPb29uQZD6CX9Rj94ZhGOvXrzfatm1rVKlSxfD09DR69eplHDx40G5MwWP3v/76a5Hv7fHjx4usG7jW2AyDO+IA4ErFxsZqyJAhSkhIMG/UBnDt4x4iAABgeQQiAABgeQQiAABgedxDBAAALI8zRAAAwPIIRAAAwPL4YMYrlJ+fr5MnT6patWpX9VH6AACg/BiGobNnzyogIEBOTpc/D0QgukInT55UYGBgeZcBAACK4cSJE7ruuusu208gukLVqlWT9Ocb6unpWc7VAACAK5GZmanAwEDz3/HLIRBdoYLLZJ6engQiAACuMf90uws3VQMAAMsjEAEAAMsjEAEAAMsjEAEAAMsjEAEAAMsjEAEAAMsjEAEAAMsjEAEAAMsjEAEAAMsr10C0ZcsW9erVSwEBAbLZbFqxYkWhMYcOHdLdd98tLy8vubu7q1WrVkpOTjb7L1y4oMjISNWoUUMeHh7q16+fUlNT7eZITk5Wjx49VLVqVfn6+mrs2LG6ePFiae8eAAC4RpRrIDp37pyaNWum+fPnF9l/7NgxtWvXTjfddJO++uor7d27V5MmTVLlypXNMWPGjNHnn3+ujz76SJs3b9bJkyd1zz33mP15eXnq0aOHcnJytH37di1ZskSxsbGaPHlyqe8fAAC4NtgMwzDKuwjpz+8YWb58ufr06WO2DRgwQC4uLnrvvfeKXOfMmTOqVauWli1bpnvvvVeSdPjwYTVu3Fjx8fG6/fbbtXr1avXs2VMnT56Un5+fJGnhwoUaP368fv31V7m6ul5RfZmZmfLy8tKZM2f4LjMAAK4RV/rvt8PeQ5Sfn68vvvhCN954o8LCwuTr66s2bdrYXVbbvXu3cnNzFRoaarbddNNNuv766xUfHy9Jio+PV3BwsBmGJCksLEyZmZk6cOBAme0PAABwXA4biNLS0pSVlaWXX35Zd911l9atW6e+ffvqnnvu0ebNmyVJKSkpcnV1lbe3t926fn5+SklJMcdcGoYK+gv6Lic7O1uZmZl2LwAAUDE5l3cBl5Ofny9J6t27t8aMGSNJat68ubZv366FCxeqY8eOpbr9adOm6bnnnivVbQAAAMfgsIGoZs2acnZ2VpMmTezaGzdurK+//lqS5O/vr5ycHGVkZNidJUpNTZW/v785ZufOnXZzFDyFVjCmKBMmTFB0dLS5nJmZqcDAwH+1TwAqhrrPfFHeJVjWjy/3KO8SUEE57CUzV1dXtWrVSklJSXbtR44cUVBQkCSpRYsWcnFx0YYNG8z+pKQkJScnKyQkRJIUEhKiffv2KS0tzRwTFxcnT0/PQmHrUm5ubvL09LR7AQCAiqlczxBlZWXp+++/N5ePHz+uxMRE+fj46Prrr9fYsWN1//33q0OHDurcubPWrFmjzz//XF999ZUkycvLS0OHDlV0dLR8fHzk6empkSNHKiQkRLfffrskqVu3bmrSpIkGDhyo6dOnKyUlRRMnTlRkZKTc3NzKY7cBAICDKddAtGvXLnXu3NlcLrhENXjwYMXGxqpv375auHChpk2bplGjRqlRo0b65JNP1K5dO3OdWbNmycnJSf369VN2drbCwsK0YMECs79SpUpatWqVHn/8cYWEhMjd3V2DBw9WTExM2e0oAABwaA7zOUSOjs8hAlCAe4jKD/cQ4Wpd859DBAAAUFYIRAAAwPIIRAAAwPIIRAAAwPIIRAAAwPIIRAAAwPIIRAAAwPIIRAAAwPIIRAAAwPIIRAAAwPIIRAAAwPIIRAAAwPIIRAAAwPIIRAAAwPIIRAAAwPIIRAAAwPIIRAAAwPIIRAAAwPIIRAAAwPIIRAAAwPIIRAAAwPIIRAAAwPIIRAAAwPIIRAAAwPIIRAAAwPKcy7sAAAAcRd1nvijvEizrx5d7lOv2OUMEAAAsj0AEAAAsj0AEAAAsj0AEAAAsj0AEAAAsj0AEAAAsj0AEAAAsr1wD0ZYtW9SrVy8FBATIZrNpxYoVlx372GOPyWazafbs2Xbt6enpioiIkKenp7y9vTV06FBlZWXZjdm7d6/at2+vypUrKzAwUNOnTy+FvQEAANeqcg1E586dU7NmzTR//vy/Hbd8+XJ98803CggIKNQXERGhAwcOKC4uTqtWrdKWLVs0YsQIsz8zM1PdunVTUFCQdu/erRkzZmjq1KlatGhRie8PAAC4NpXrJ1WHh4crPDz8b8f88ssvGjlypNauXasePew/xfLQoUNas2aNEhIS1LJlS0nSvHnz1L17d7366qsKCAjQ0qVLlZOTo3fffVeurq5q2rSpEhMTNXPmTLvgBAAArMuh7yHKz8/XwIEDNXbsWDVt2rRQf3x8vLy9vc0wJEmhoaFycnLSjh07zDEdOnSQq6urOSYsLExJSUn6/fffS38nAACAw3Po7zJ75ZVX5OzsrFGjRhXZn5KSIl9fX7s2Z2dn+fj4KCUlxRxTr149uzF+fn5mX/Xq1YucOzs7W9nZ2eZyZmZmsfcDAAA4Noc9Q7R7927NmTNHsbGxstlsZb79adOmycvLy3wFBgaWeQ0AAKBsOGwg2rp1q9LS0nT99dfL2dlZzs7O+umnn/TUU0+pbt26kiR/f3+lpaXZrXfx4kWlp6fL39/fHJOammo3pmC5YExRJkyYoDNnzpivEydOlODeAQAAR+Kwl8wGDhyo0NBQu7awsDANHDhQQ4YMkSSFhIQoIyNDu3fvVosWLSRJGzduVH5+vtq0aWOOefbZZ5WbmysXFxdJUlxcnBo1anTZy2WS5ObmJjc3t9LYNQAA4GDKNRBlZWXp+++/N5ePHz+uxMRE+fj46Prrr1eNGjXsxru4uMjf31+NGjWSJDVu3Fh33XWXhg8froULFyo3N1dRUVEaMGCA+Yj+gw8+qOeee05Dhw7V+PHjtX//fs2ZM0ezZs0qux0FAAAOrVwD0a5du9S5c2dzOTo6WpI0ePBgxcbGXtEcS5cuVVRUlLp27SonJyf169dPc+fONfu9vLy0bt06RUZGqkWLFqpZs6YmT57MI/cAAMBUroGoU6dOMgzjisf/+OOPhdp8fHy0bNmyv13vlltu0datW6+2PAAAYBEOe1M1AABAWSEQAQAAyyMQAQAAyyMQAQAAyyMQAQAAyyMQAQAAyyMQAQAAy3PYr+4AKoK6z3xR3iVY1o8v9yjvEgBcQzhDBAAALI9ABAAALI9ABAAALI97iBwA95mUH+4zAQBInCECAAAgEAEAABCIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5ZVrINqyZYt69eqlgIAA2Ww2rVixwuzLzc3V+PHjFRwcLHd3dwUEBGjQoEE6efKk3Rzp6emKiIiQp6envL29NXToUGVlZdmN2bt3r9q3b6/KlSsrMDBQ06dPL4vdAwAA14hyDUTnzp1Ts2bNNH/+/EJ958+f1549ezRp0iTt2bNHn376qZKSknT33XfbjYuIiNCBAwcUFxenVatWacuWLRoxYoTZn5mZqW7duikoKEi7d+/WjBkzNHXqVC1atKjU9w8AAFwbnMtz4+Hh4QoPDy+yz8vLS3FxcXZtr7/+ulq3bq3k5GRdf/31OnTokNasWaOEhAS1bNlSkjRv3jx1795dr776qgICArR06VLl5OTo3Xfflaurq5o2barExETNnDnTLjgBAADruqbuITpz5oxsNpu8vb0lSfHx8fL29jbDkCSFhobKyclJO3bsMMd06NBBrq6u5piwsDAlJSXp999/v+y2srOzlZmZafcCAAAV0zUTiC5cuKDx48frgQcekKenpyQpJSVFvr6+duOcnZ3l4+OjlJQUc4yfn5/dmILlgjFFmTZtmry8vMxXYGBgSe4OAABwINdEIMrNzVX//v1lGIbeeOONMtnmhAkTdObMGfN14sSJMtkuAAAoe+V6D9GVKAhDP/30kzZu3GieHZIkf39/paWl2Y2/ePGi0tPT5e/vb45JTU21G1OwXDCmKG5ubnJzcyup3QAAAA7Moc8QFYSho0ePav369apRo4Zdf0hIiDIyMrR7926zbePGjcrPz1ebNm3MMVu2bFFubq45Ji4uTo0aNVL16tXLZkcAAIBDK9dAlJWVpcTERCUmJkqSjh8/rsTERCUnJys3N1f33nuvdu3apaVLlyovL08pKSlKSUlRTk6OJKlx48a66667NHz4cO3cuVPbtm1TVFSUBgwYoICAAEnSgw8+KFdXVw0dOlQHDhzQhx9+qDlz5ig6Orq8dhsAADiYcr1ktmvXLnXu3NlcLggpgwcP1tSpU7Vy5UpJUvPmze3W27Rpkzp16iRJWrp0qaKiotS1a1c5OTmpX79+mjt3rjnWy8tL69atU2RkpFq0aKGaNWtq8uTJPHIPAABM5RqIOnXqJMMwLtv/d30FfHx8tGzZsr8dc8stt2jr1q1XXR8AALAGh76HCAAAoCwQiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOWVayDasmWLevXqpYCAANlsNq1YscKu3zAMTZ48WbVr11aVKlUUGhqqo0eP2o1JT09XRESEPD095e3traFDhyorK8tuzN69e9W+fXtVrlxZgYGBmj59emnvGgAAuIaU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aWLX1rhxYyUnJ0uS/P39JUmpqal2Y1JTU80+f39/paWl2fVfvHhR6enp5piiuLm5ydPT0+4FAAAqJocORG3btlVSUpJd25EjRxQUFCTpzxus/f39tWHDBrM/MzNTO3bsUEhIiCQpJCREGRkZ2r17tzlm48aNys/PV5s2bcpgLwAAgKNz6KfMxowZozvuuEMvvfSS+vfvr507d2rRokVatGiRJMlms2n06NF64YUX1LBhQ9WrV0+TJk1SQECA+vTpI+nPM0p33XWXeaktNzdXUVFRGjBgAE+YAQAASQ4eiFq1aqXly5drwoQJiomJUb169TR79mxFRESYY8aNG6dz585pxIgRysjIULt27bRmzRpVrlzZHLN06VJFRUWpa9eucnJyUr9+/TR37tzy2CUAAOCAHDoQSVLPnj3Vs2fPy/bbbDbFxMQoJibmsmN8fHy0bNmy0igPAABUAA59DxEAAEBZIBABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLu6YC0csvvyybzabRo0ebbRcuXFBkZKRq1KghDw8P9evXT6mpqXbrJScnq0ePHqpatap8fX01duxYXbx4sYyrBwAAjuqaCUQJCQl68803dcstt9i1jxkzRp9//rk++ugjbd68WSdPntQ999xj9ufl5alHjx7KycnR9u3btWTJEsXGxmry5MllvQsAAMBBXROBKCsrSxEREXrrrbdUvXp1s/3MmTN65513NHPmTHXp0kUtWrTQ4sWLtX37dn3zzTeSpHXr1ungwYP673//q+bNmys8PFzPP/+85s+fr5ycnPLaJQAA4ECuiUAUGRmpHj16KDQ01K599+7dys3NtWu/6aabdP311ys+Pl6SFB8fr+DgYPn5+ZljwsLClJmZqQMHDlx2m9nZ2crMzLR7AQCAism5vAv4Jx988IH27NmjhISEQn0pKSlydXWVt7e3Xbufn59SUlLMMZeGoYL+gr7LmTZt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Wx4eHvL09FT//v3N72WMjY3Vc889p++++042m002m02xsbHm+3zpWaOMjAzZbDZ99dVXkqSvvvpKNptNa9eu1a233qoqVaqoS5cuSktL0+rVq9W4cWN5enrqwQcf1Pnz/+8b4LOzszVq1Cj5+vqqcuXKateunRISEsz+gnlXr16tFi1ayM3NTV9//XWpvoeOqlOnTubn33l5ealmzZqaNGmS+a3rl14yq1u3riSpb9++stls5nLB79VLjR49Wp06dbLbTsHv8U6dOumnn37SmDFjzJ8JSTp9+rQeeOAB1alTR1WrVlVwcLDef//9IusdPXq0atasqbCwMD3yyCPq2bOn3bjc3Fz5+vrqnXfe+fdvkgMhEFlIdHS0tm3bppUrVyouLk5bt2694n9Uzp07p7CwMFWvXl0JCQn66KOPtH79+kIfdLlx40adPHlSW7Zs0cyZMzVlyhT17NlT1atX144dO/TYY4/p0Ucf1c8//2yuU61aNcXGxurgwYOaM2eO3nrrLc2aNatE993RLFmyRDVr1tTOnTs1cuRIPf7447rvvvt0xx13aM+ePerWrZsGDhyo8+fPKyMjQ126dNGtt96qXbt2ac2aNUpNTVX//v0Lzenu7q4dO3Zo+vTpiomJUVxc3N/W8eyzz+rpp59WYmKibrzxRj3wwAO6ePGiJGnbtm167LHH9OSTTyoxMVF33nmnXnzxxb+db86cOXrttdf06quvau/evQoLC9Pdd9+to0eP2o2bMmWKJk6cqD179sjZ2VkPPvigxo0bpzlz5mjr1q36/vvvNXnyZHP82bNnNXjwYH399df65ptv1LBhQ3Xv3l1nz569mrfdYV3u2OXn56t3795KT0/X5s2bFRcXpx9++EH333+/pD8/gf+pp55S06ZNderUKZ06dcrsu1JTp07V66+/ru3bt+vEiRPq37+/Zs+erWXLlumLL77QunXrNG/ePHP8uHHj9Mknn2jJkiXas2ePbrjhBoWFhSk9Pd1u3meeeUYvv/yyDh06pFtuueXfv0nXqCVLlsjZ2Vk7d+7UnDlzNHPmTL399tuFxhWEysWLF+vUqVN2IfNqfPrpp7ruuusUExNj/kxI0oULF9SiRQt98cUX2r9/v0aMGKGBAwdq586dhep1dXXVtm3btHDhQg0bNkxr1qwx55GkVatW6fz581f9s+bwDFhCZmam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7lwpvTsASgJniAA4tPT0dK1Zs0Yvvvii3N3dC/V7e3sXuV61atUUGxurgIAA7du3T8OHD1e1atU0btw4SVJERIRuvfVWvfHGG6pUqZISExPl4uIiSYqMjFROTo62bNkid3d3HTx4UB4eHpKkjIwMdenSRcOGDdOsWbP0xx9/aPz48erfv782btyoU6dO6YEHHtD06dPVt29fnT17Vlu3bhWfgQs4NgIRAIf2/fffyzAM3XTTTVe13sSJE80/161bV08//bQ++OADMxAlJydr7Nix5rwNGzY0xycnJ6tfv34KDg6WJNWvX9/se/3113XrrbfqpZdeMtveffddBQYG6siRI8rKytLFixd1zz33KCgoSJLMeQA4LgIRAIdW3DMrH374oebOnatjx46ZIcXT09Psj46O1rBhw/Tee+8pNDRU9913nxo0aCBJGjVqlB5//HGtW7dOoaGh6tevn2655RZJf15q27Rpk3nG6FLHjh1Tt27d1LVrVwUHByssLEzdunXTvffeq+rVqxdrPwCUDe4hAuDQGjZsKJvNdlU3TsfHxysiIkLdu3fXqlWr9O233+rZZ59VTk6OOWbq1Kk6cOCAevTooY0bN6pJkyZavny5JGnYsGH64YcfNHDgQO3bt08tW7bUvHnzJElZWVnq1auXEhMT7V5Hjx5Vhw4dVKlSJcXFxWn16tVq0qSJ5s2bp0aNGun48eMl+8YAKFF8uSsAhxceHq59+/YpKSmp0H1EGRkZ8vb2ls1m0/Lly9WnTx+99tprWrBggY4dO2aOGzZsmD7++GNlZGQUuY0HHnhA586d08qVKwv1TZgwQV988YX27t2rZ599Vp988on2799/Rd/8nZeXp6CgIEVHRys6OvrqdhxAmeEMEQCHN3/+fOXl5al169b65JNPdPToUR06dEhz585VSEhIofENGzZUcnKyPvjgAx07dkxz5841z/5I0h9//KGoqCh99dVX+umnn7Rt2zYlJCSocePGkqTRo0dr7dq1On78uPbs2aNNmzaZfZGRkUpPT9cDDzyghIQEHTt2TGvXrtWQIUOUl5enHTt26KWXXtKuXbuUnJysTz/9VL/++qu5PgAHZQDANeDkyZNGZGSkERQUZLi6uhp16tQx7r77bmPTpk2GYRiGJGP58uXm+LFjxxo1atQwPDw8jPvvv9+YNWuW4eXlZRiGYWRnZxsDBgwwAgMDDVdXVyMgIMCIiooy/vjjD8MwDCMqKspo0KCB4ebmZtSqVcsYOHCg8dtvv5lzHzlyxOjbt6/h7e1tVKlSxbjpppuM0aNHG/n5+cbBgweNsLAwo1atWoabm5tx4403GvPmzSurtwlAMXHJDAAAWB6XzAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOX9f794RWcQz2VBAAAAAElFTkSuQmCC" }, "metadata": {}, "output_type": "display_data" } ], "execution_count": 6 }, { "cell_type": "markdown", "id": "37669926", "metadata": {}, "source": [ "Définissons le CNN" ] }, { "cell_type": "code", "execution_count": 6, "id": "00ab1d80", "metadata": {}, "outputs": [], "source": [ "class DeepCNN(nn.Module):\n", " def __init__(self, num_classes=4):\n", " super(DeepCNN, self).__init__()\n", " self.layer1 = nn.Sequential(\n", " nn.Conv2d(3, 32, kernel_size=3, padding=1),\n", " nn.BatchNorm2d(32),\n", " nn.ReLU(),\n", " nn.MaxPool2d(kernel_size=2)\n", " )\n", " self.layer2 = nn.Sequential(\n", " nn.Conv2d(32, 64, kernel_size=3, padding=1),\n", " nn.BatchNorm2d(64),\n", " nn.ReLU(),\n", " nn.MaxPool2d(2)\n", " )\n", " self.layer3 = nn.Sequential(\n", " nn.Conv2d(64, 128, kernel_size=3),\n", " nn.BatchNorm2d(128),\n", " nn.ReLU(),\n", " nn.MaxPool2d(2)\n", " )\n", " self.lqyer4 = nn.Sequential(\n", " nn.Conv2d(128, 256, kernel_size=3),\n", " nn.BatchNorm2d(256),\n", " nn.ReLU(),\n", " nn.MaxPool2d(2)\n", " )\n", " self.fc_layers = nn.Sequential(\n", " nn.Linear(28800, 1024),\n", " nn.ReLU(),\n", " nn.Linear(1024, num_classes)\n", " )\n", "\n", " def forward(self, x):\n", " out = self.layer1(x)\n", " out = self.layer2(out)\n", " out = self.layer3(out)\n", " out = out.view(out.size(0), -1)\n", " out = self.fc_layers(out)\n", " return out" ] }, { "cell_type": "code", "execution_count": 7, "id": "e9e20d27", "metadata": {}, "outputs": [], "source": [ "model = DeepCNN().to(device)" ] }, { "cell_type": "code", "execution_count": 8, "id": "76947305", "metadata": {}, "outputs": [], "source": [ "criterion = nn.CrossEntropyLoss()\n", "optimizer = optim.NAdam(model.parameters(), lr=0.001)" ] }, { "cell_type": "markdown", "id": "c3fbd86b", "metadata": {}, "source": [ "Entrainements" ] }, { "cell_type": "code", "execution_count": 9, "id": "d75e00de", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch [1/30], Loss: 1.3968, Accuracy: 68.08%\n", "Validation Loss: 0.6673, Validation Accuracy: 72.39%\n", "Epoch [2/30], Loss: 0.5532, Accuracy: 78.34%\n", "Validation Loss: 0.5537, Validation Accuracy: 78.26%\n", "Epoch [3/30], Loss: 0.4891, Accuracy: 80.55%\n", "Validation Loss: 0.4215, Validation Accuracy: 83.22%\n", "Epoch [4/30], Loss: 0.4539, Accuracy: 82.49%\n", "Validation Loss: 0.4219, Validation Accuracy: 84.52%\n", "Epoch [5/30], Loss: 0.4096, Accuracy: 84.52%\n", "Validation Loss: 0.4652, Validation Accuracy: 82.99%\n", "Epoch [6/30], Loss: 0.3715, Accuracy: 85.05%\n", "Validation Loss: 0.4290, Validation Accuracy: 82.68%\n", "Epoch [7/30], Loss: 0.3454, Accuracy: 87.13%\n", "Validation Loss: 0.4297, Validation Accuracy: 84.29%\n", "Epoch [8/30], Loss: 0.3163, Accuracy: 87.90%\n", "Validation Loss: 0.3548, Validation Accuracy: 86.50%\n", "Epoch [9/30], Loss: 0.2861, Accuracy: 89.51%\n", "Validation Loss: 0.3296, Validation Accuracy: 88.48%\n", "Epoch [10/30], Loss: 0.2782, Accuracy: 89.81%\n", "Validation Loss: 0.3292, Validation Accuracy: 88.41%\n", "Epoch [11/30], Loss: 0.2665, Accuracy: 90.23%\n", "Validation Loss: 0.4174, Validation Accuracy: 86.42%\n", "Epoch [12/30], Loss: 0.2370, Accuracy: 90.91%\n", "Validation Loss: 0.3219, Validation Accuracy: 87.72%\n", "Epoch [13/30], Loss: 0.2289, Accuracy: 91.35%\n", "Validation Loss: 0.3228, Validation Accuracy: 87.49%\n", "Epoch [14/30], Loss: 0.2191, Accuracy: 92.10%\n", "Validation Loss: 0.2021, Validation Accuracy: 92.98%\n", "Epoch [15/30], Loss: 0.2186, Accuracy: 92.33%\n", "Validation Loss: 0.2115, Validation Accuracy: 91.84%\n", "Epoch [16/30], Loss: 0.1894, Accuracy: 92.87%\n", "Validation Loss: 0.2578, Validation Accuracy: 91.23%\n", "Epoch [17/30], Loss: 0.1874, Accuracy: 93.00%\n", "Validation Loss: 0.2064, Validation Accuracy: 93.06%\n", "Epoch [18/30], Loss: 0.1794, Accuracy: 93.68%\n", "Validation Loss: 0.1513, Validation Accuracy: 94.58%\n", "Epoch [19/30], Loss: 0.1623, Accuracy: 93.98%\n", "Validation Loss: 0.2002, Validation Accuracy: 93.14%\n", "Epoch [20/30], Loss: 0.1665, Accuracy: 94.08%\n", "Validation Loss: 0.1600, Validation Accuracy: 94.81%\n", "Epoch [21/30], Loss: 0.1607, Accuracy: 94.26%\n", "Validation Loss: 0.1777, Validation Accuracy: 93.97%\n", "Epoch [22/30], Loss: 0.1467, Accuracy: 94.43%\n", "Validation Loss: 0.2068, Validation Accuracy: 93.90%\n", "Epoch [23/30], Loss: 0.1353, Accuracy: 95.01%\n", "Validation Loss: 0.1618, Validation Accuracy: 95.27%\n", "Epoch [24/30], Loss: 0.1310, Accuracy: 95.45%\n", "Validation Loss: 0.1375, Validation Accuracy: 95.88%\n", "Epoch [25/30], Loss: 0.1273, Accuracy: 95.24%\n", "Validation Loss: 0.1528, Validation Accuracy: 95.58%\n", "Epoch [26/30], Loss: 0.1185, Accuracy: 95.90%\n", "Validation Loss: 0.1455, Validation Accuracy: 95.19%\n", "Epoch [27/30], Loss: 0.1292, Accuracy: 95.08%\n", "Validation Loss: 0.1824, Validation Accuracy: 94.28%\n", "Epoch [28/30], Loss: 0.1077, Accuracy: 96.08%\n", "Validation Loss: 0.1589, Validation Accuracy: 94.28%\n", "Epoch [29/30], Loss: 0.1109, Accuracy: 96.10%\n", "Validation Loss: 0.1090, Validation Accuracy: 97.10%\n", "Epoch [30/30], Loss: 0.1177, Accuracy: 95.97%\n", "Validation Loss: 0.1919, Validation Accuracy: 94.58%\n" ] } ], "source": [ "num_epochs = 30\n", "train_losses = []\n", "train_accuracies = []\n", "val_losses = []\n", "val_accuracies = []\n", "\n", "for epoch in range(num_epochs):\n", " model.train()\n", " running_loss = 0.0\n", " correct = 0\n", " total = 0\n", " \n", " for images, labels in train_loader:\n", " images, labels = images.to(device), labels.to(device)\n", " optimizer.zero_grad()\n", " outputs = model(images)\n", " loss = criterion(outputs, labels)\n", " loss.backward()\n", " optimizer.step()\n", " \n", " running_loss += loss.item()\n", " \n", " _, predicted = torch.max(outputs.data, 1)\n", " total += labels.size(0)\n", " correct += (predicted == labels).sum().item()\n", " \n", " epoch_loss = running_loss / len(train_loader)\n", " epoch_accuracy = 100 * correct / total\n", " \n", " train_losses.append(epoch_loss)\n", " train_accuracies.append(epoch_accuracy)\n", " \n", " print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {epoch_loss:.4f}, Accuracy: {epoch_accuracy:.2f}%')\n", " \n", " #Validation\n", " model.eval()\n", " val_running_loss = 0.0\n", " correct = 0\n", " total = 0\n", "\n", " with torch.no_grad():\n", " for images, labels in test_loader:\n", " images, labels = images.to(device), labels.to(device)\n", " outputs = model(images)\n", " loss = criterion(outputs, labels)\n", " val_running_loss += loss.item()\n", " \n", " _, predicted = torch.max(outputs.data, 1)\n", " total += labels.size(0)\n", " correct += (predicted == labels).sum().item()\n", " \n", " val_epoch_loss = val_running_loss / len(test_loader)\n", " val_epoch_accuracy = 100 * correct / total\n", " \n", " val_losses.append(val_epoch_loss)\n", " val_accuracies.append(val_epoch_accuracy)\n", " print(f'Validation Loss: {val_epoch_loss:.4f}, Validation Accuracy: {val_epoch_accuracy:.2f}%')" ] }, { "cell_type": "markdown", "id": "d2fd845f", "metadata": {}, "source": [ "Affichage de courbes " ] }, { "cell_type": "code", "execution_count": null, "id": "7ba5611e", "metadata": {}, "outputs": [ { "data": { "image/png": "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2Fjj0KFDxvbt241p06YZFovF+P777w3DqBvXQm2hut5UV+t71fUm1fUm1fUm1fUVqqu+V8J+GV5//XWjUaNGhru7u9G9e3dj/fr1zg6pWo0aNcqIiIgw3N3djQYNGhijRo0y9u/f7+ywqsXKlSsN4IxlzJgxhmGY0708+eSTRlhYmOHh4WEMGjTIiIuLc27QDnC+csjLyzOGDBli1K9f33BzczMaN25sjB8/vlb+oXu2MgCMBQsWlO+Tn59vPPzww0ZQUJDh7e1t3HLLLUZiYqLzgnaAC5VDfHy80bdvXyM4ONjw8PAwmjdvbvz5z382MjMznRu4nd13331G48aNDXd3d6N+/frGoEGDyitvw6gb10JtUtfresOou/W96nqT6nqT6nqT6voK1VXfWwzDMC7tmbyIiIiIiIiIOJr6sIuIiIiIiIjUQErYRURERERERGogJewiIiIiIiIiNZASdhEREREREZEaSAm7iIiIiIiISA2khF1ERERERESkBlLCLiIiIiIiIlIDKWEXERERERERqYGUsItItbNYLCxdutTZYYiIiIiDqK4XsQ8l7CJ1zNixY7FYLGcs1113nbNDExERETtQXS9Se7g6OwARqX7XXXcdCxYsqLTNw8PDSdGIiIiIvamuF6kd9IRdpA7y8PAgPDy80hIUFASYTdjmzJnDsGHD8PLyomnTpnz22WeVPr9jxw4GDhyIl5cX9erVY8KECeTk5FTa55133qFdu3Z4eHgQERHBI488Uun91NRUbrnlFry9vWnRogXLli1z7JcWERGpQ1TXi9QOSthF5AxPPvkkI0eOZNu2bYwePZo77riDPXv2AJCbm8vQoUMJCgri119/5dNPP2X58uWVKuk5c+YwadIkJkyYwI4dO1i2bBnNmzevdI5nn32W22+/ne3bt3P99dczevRo0tPTq/V7ioiI1FWq60WuEIaI1CljxowxXFxcDB8fn0rLc889ZxiGYQDGQw89VOkzPXr0MCZOnGgYhmG89dZbRlBQkJGTk1P+/ldffWVYrVYjKSnJMAzDiIyMNP72t7+dMwbA+Pvf/17+OicnxwCMb775xm7fU0REpK5SXS9Se6gPu0gdNGDAAObMmVNpW3BwcPl6TExMpfdiYmLYunUrAHv27KFTp074+PiUv9+rVy9sNhtxcXFYLBaOHz/OoEGDzhtDx44dy9d9fHzw9/fnxIkTVf1KIiIichrV9SK1gxJ2kTrIx8fnjGZr9uLl5XVR+7m5uVV6bbFYsNlsjghJRESkzlFdL1I7qA+7iJxh/fr1Z7xu06YNAG3atGHbtm3k5uaWv7927VqsViutWrXCz8+PJk2asGLFimqNWURERC6e6nqRK4OesIvUQYWFhSQlJVXa5urqSkhICACffvopXbt2pXfv3nz44Yf88ssvzJ8/H4DRo0fz9NNPM2bMGJ555hlSUlKYPHky99xzD2FhYQA888wzPPTQQ4SGhjJs2DCys7NZu3YtkydPrt4vKiIiUkeprhepHZSwi9RB3377LREREZW2tWrVir179wLmqK6LFi3i4YcfJiIigoULF9K2bVsAvL29+e6773j00Ufp1q0b3t7ejBw5klmzZpUfa8yYMRQUFPDKK6/w+OOPExISwm233VZ9X1BERKSOU10vUjtYDMMwnB2EiNQcFouFJUuWMGLECGeHIiIiIg6gul7kyqE+7CIiIiIiIiI1kBJ2ERERERERkRpITeJFREREREREaiA9YRcRERERERGpgZSwi4iIiIiIiNRASthFREREREREaiAl7CIiIiIiIiI1kBJ2ERERERERkRpICbuIiIiIiIhIDaSEXURERERERKQGUsIuIiIiIiIiUgP9PwAbb5BtfnxsAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "%matplotlib inline\n", "\n", "plt.figure(figsize=(12, 4))\n", "\n", "plt.subplot(1, 2, 1)\n", "plt.plot(train_losses, label='Train Loss')\n", "plt.plot(val_losses, label='Test Loss')\n", "plt.xlabel('Epoch')\n", "plt.ylabel('Loss')\n", "plt.legend()\n", "plt.title('Train Loss')\n", "\n", "plt.subplot(1, 2, 2)\n", "plt.plot(train_accuracies, label='Train Accuracy')\n", "plt.plot(val_accuracies, label='Test Accuracy')\n", "plt.xlabel('Epoch')\n", "plt.ylabel('Accuracy (%)')\n", "plt.legend()\n", "plt.title('Train Accuracy')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "200b28b6", "metadata": {}, "source": [ "Métriques" ] }, { "cell_type": "code", "execution_count": 11, "id": "e6dfa46c", "metadata": {}, "outputs": [], "source": [ "from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay" ] }, { "cell_type": "code", "execution_count": 16, "id": "100b7df5", "metadata": {}, "outputs": [], "source": [ "all_preds = []\n", "all_labels = []\n", "all_scores = []\n", "\n", "model.eval()\n", "with torch.no_grad():\n", " for images, labels in test_loader:\n", " images, labels = images.to(device), labels.to(device)\n", " outputs = model(images)\n", " scores = nn.functional.softmax(outputs, dim=1)\n", " _, predicted = torch.max(outputs.data, 1)\n", " all_preds.extend(predicted.cpu().numpy())\n", " all_labels.extend(labels.cpu().numpy())\n", " all_scores.extend(scores.cpu().numpy())\n" ] }, { "cell_type": "code", "execution_count": 17, "id": "a573c609", "metadata": {}, "outputs": [ { "data": { "image/png": "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Y0dxOMvJyQl37txBZGQkateuDXNzcxgbG6Nt27b48ssvUbduXSQnJ2PmzJmljsfU1BTjxo1DUFAQrKysUKdOHSxevBjZ2dkYOXJkqduvjAZ298TD1Ews/O4wkh9lwL1hLexe5c+u8TLwICUD4+ZtQdLDdMjNjNC4gT12rxqPTm0aaTq0KuvT5XugEARs/mqU0sMkC/Xr3Bw1rczxbq/WeLdXa7E87v4jNOs/RxMhV3r8TCmZyvDE7X/++QePHj2Cnd2zOZNeXl5ITU3FpUuX4OnpCQA4ceIEFAoF2rRpo1LbTJLwrCvwl19+QUBAADp06AAdHR306NEDq1evFusMGjQIe/fuRadOnZCamoqNGzdixIgR+PHHHzFy5Eh4enrCxcUFixcvRvfu3Usd05dffgmFQoFhw4YhIyMDLVu2xLFjx4q9g00bjBncEWMGd9R0GFXe6lm+mg6hyus7dqXSek5uPoIW70LQ4l2S9b9a/yu+Wv9reYSmVfiZUjFlZmYiJiZGXC/soLCysoKVlRXmzZuHQYMGwdbWFrGxsZg2bRoaNGgAHx8fAM9Gh3r06IHRo0dj3bp1yMvLw4QJE/Dee++pdGcbAMiE5yfUkFZIT09/9giDR2ll0vVJRfF/s/Jn1TpA0yFolccR32g6BK2Snp4Om+oWSEsrm8/xwu+J70/dhImZ+at3eInszAyM8XYrcaynTp1Cp06dipT7+flh7dq1GDBgAK5cuYLU1FTY29uje/fuWLBgAWxsbMS6KSkpmDBhAg4ePAgdHR0MGjQIq1atgpmZmUqxsyeJiIiIJGniOUne3t4v/cPy2LFX39lpZWWF7du3q3ZgCVr1CAAiIiKikmJPEhEREUlS5yMAKiMmSURERCRJnU/crowqc+xEREREZYY9SURERCSJw21EREREEtT5xO3KiMNtRERERBLYk0RERESSONxGREREJEHb725jkkRERESStL0nqTIneERERERlhj1JREREJEnb725jkkRERESSNPGC24qEw21EREREEtiTRERERJJ0IINOKQfMSru/JjFJIiIiIkkcbiMiIiKiItiTRERERJJk//+vtG1UVkySiIiISBKH24iIiIioCPYkERERkSSZGu5u43AbERERVTnaPtzGJImIiIgkaXuSxDlJRERERBLYk0RERESS+AgAIiIiIgk6smdLaduorDjc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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cm = confusion_matrix(all_labels, all_preds)\n", "\n", "disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=test_data.classes)\n", "disp.plot(cmap=plt.cm.Blues)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 19, "id": "cb346b93", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accuracy: 0.9458428680396643\n", "Precision: 0.9471908061702348\n", "Recall: 0.9419389978213507\n", "F1-Score: 0.9437870415958348\n", "ROC-AUC: 0.9926658967116757\n" ] } ], "source": [ "from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, confusion_matrix, roc_auc_score\n", "\n", "y_true = all_labels\n", "y_pred = all_preds\n", "\n", "accuracy = accuracy_score(y_true, y_pred)\n", "precision = precision_score(y_true, y_pred, average='macro')\n", "recall = recall_score(y_true, y_pred, average='macro')\n", "f1 = f1_score(y_true, y_pred, average='macro')\n", "roc_auc = roc_auc_score(y_true, all_scores, multi_class='ovr')\n", "\n", "print(f\"Accuracy: {accuracy}\")\n", "print(f\"Precision: {precision}\")\n", "print(f\"Recall: {recall}\")\n", "print(f\"F1-Score: {f1}\")\n", "print(f\"ROC-AUC: {roc_auc}\")" ] }, { "cell_type": "markdown", "id": "7f2e9f50", "metadata": {}, "source": [ "Sauvegarde du modèle" ] }, { "cell_type": "code", "execution_count": 14, "id": "0d241a1a", "metadata": {}, "outputs": [], "source": [ "torch.save(model.state_dict(), 'cnn_model1.pth')" ] }, { "cell_type": "code", "execution_count": null, "id": "c2417668", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "nlpsn", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.12" } }, "nbformat": 4, "nbformat_minor": 5 }