diff --git a/TD2 Deep Learning.ipynb b/TD2 Deep Learning.ipynb
index 2ecfce959ae6b947b633a758433f9bea0bf6992e..70f9df24067ebe53898a3dfdacebcf861e69eb4e 100644
--- a/TD2 Deep Learning.ipynb	
+++ b/TD2 Deep Learning.ipynb	
@@ -33,10 +33,35 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 1,
    "id": "330a42f5",
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Requirement already satisfied: torch in /opt/homebrew/lib/python3.11/site-packages (2.1.0)\n",
+      "Requirement already satisfied: torchvision in /opt/homebrew/lib/python3.11/site-packages (0.16.0)\n",
+      "Requirement already satisfied: filelock in /opt/homebrew/lib/python3.11/site-packages (from torch) (3.12.3)\n",
+      "Requirement already satisfied: typing-extensions in /opt/homebrew/lib/python3.11/site-packages (from torch) (4.5.0)\n",
+      "Requirement already satisfied: sympy in /opt/homebrew/lib/python3.11/site-packages (from torch) (1.12)\n",
+      "Requirement already satisfied: networkx in /opt/homebrew/lib/python3.11/site-packages (from torch) (3.1)\n",
+      "Requirement already satisfied: jinja2 in /opt/homebrew/lib/python3.11/site-packages (from torch) (3.1.2)\n",
+      "Requirement already satisfied: fsspec in /opt/homebrew/lib/python3.11/site-packages (from torch) (2023.10.0)\n",
+      "Requirement already satisfied: numpy in /opt/homebrew/lib/python3.11/site-packages (from torchvision) (1.24.3)\n",
+      "Requirement already satisfied: requests in /opt/homebrew/lib/python3.11/site-packages (from torchvision) (2.31.0)\n",
+      "Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in /opt/homebrew/lib/python3.11/site-packages (from torchvision) (9.5.0)\n",
+      "Requirement already satisfied: MarkupSafe>=2.0 in /opt/homebrew/lib/python3.11/site-packages (from jinja2->torch) (2.1.3)\n",
+      "Requirement already satisfied: charset-normalizer<4,>=2 in /opt/homebrew/lib/python3.11/site-packages (from requests->torchvision) (3.2.0)\n",
+      "Requirement already satisfied: idna<4,>=2.5 in /opt/homebrew/lib/python3.11/site-packages (from requests->torchvision) (3.4)\n",
+      "Requirement already satisfied: urllib3<3,>=1.21.1 in /opt/homebrew/lib/python3.11/site-packages (from requests->torchvision) (2.0.4)\n",
+      "Requirement already satisfied: certifi>=2017.4.17 in /opt/homebrew/lib/python3.11/site-packages (from requests->torchvision) (2023.7.22)\n",
+      "Requirement already satisfied: mpmath>=0.19 in /opt/homebrew/lib/python3.11/site-packages (from sympy->torch) (1.3.0)\n",
+      "Note: you may need to restart the kernel to use updated packages.\n"
+     ]
+    }
+   ],
    "source": [
     "%pip install torch torchvision"
    ]
@@ -52,10 +77,72 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 2,
    "id": "b1950f0a",
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "tensor([[-1.2241, -1.8377,  1.2159, -0.8743, -0.9516, -0.5683, -0.3771,  1.1270,\n",
+      "         -0.7012, -0.0246],\n",
+      "        [-0.2408, -0.0690, -0.1599, -1.0098, -0.8408,  1.5520,  0.5755, -0.1266,\n",
+      "         -1.2181, -0.4655],\n",
+      "        [-0.9396, -1.0622,  1.8614, -0.0506,  1.0313, -0.0829, -0.2441,  1.6593,\n",
+      "          0.6160, -2.0879],\n",
+      "        [-0.9940,  1.6714,  0.1367,  0.5438,  0.4818,  1.5232,  0.2645,  0.3609,\n",
+      "          0.0191, -1.3586],\n",
+      "        [ 0.4664,  0.5028, -1.1103, -0.4580,  0.6101, -1.2554,  1.3824,  0.2325,\n",
+      "          0.5220, -0.8690],\n",
+      "        [-0.6624, -0.5679, -1.2855,  0.8401, -0.8634, -0.8749, -0.2732, -2.3548,\n",
+      "         -0.9680,  0.6527],\n",
+      "        [ 2.0334,  0.8512, -0.6948,  0.5840, -0.1941, -1.3791,  0.1150,  1.0970,\n",
+      "         -0.8826,  1.4995],\n",
+      "        [ 0.8016, -0.8966,  1.6849, -0.1536,  0.9185,  0.6732, -0.4248,  1.1154,\n",
+      "          0.4246,  1.0122],\n",
+      "        [ 0.8279, -0.1341, -2.4470, -1.7038,  0.6188, -0.9800, -1.5896, -0.3066,\n",
+      "         -0.6181, -2.1709],\n",
+      "        [ 0.7102,  1.3989,  0.1829,  2.5248, -0.2925,  1.2067, -0.0278, -0.4947,\n",
+      "          2.1670, -0.1643],\n",
+      "        [-2.8269, -1.2076,  1.0646,  0.0048, -0.7725,  0.3642, -0.8998, -1.3091,\n",
+      "          0.7910, -0.7989],\n",
+      "        [ 0.7843, -0.5086,  1.5370,  1.4494, -1.4645, -1.0383, -0.9697,  0.1481,\n",
+      "          2.4546, -0.2865],\n",
+      "        [ 0.0529, -0.2805, -0.7521, -0.7105,  0.3712, -0.8525, -0.9195, -0.3099,\n",
+      "         -0.1509,  1.0934],\n",
+      "        [-1.4607,  0.7646,  0.0055,  0.9302,  0.0879,  0.0595, -1.0387,  0.7676,\n",
+      "         -0.8060, -0.2603]])\n",
+      "AlexNet(\n",
+      "  (features): Sequential(\n",
+      "    (0): Conv2d(3, 64, kernel_size=(11, 11), stride=(4, 4), padding=(2, 2))\n",
+      "    (1): ReLU(inplace=True)\n",
+      "    (2): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)\n",
+      "    (3): Conv2d(64, 192, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))\n",
+      "    (4): ReLU(inplace=True)\n",
+      "    (5): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)\n",
+      "    (6): Conv2d(192, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
+      "    (7): ReLU(inplace=True)\n",
+      "    (8): Conv2d(384, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
+      "    (9): ReLU(inplace=True)\n",
+      "    (10): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
+      "    (11): ReLU(inplace=True)\n",
+      "    (12): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)\n",
+      "  )\n",
+      "  (avgpool): AdaptiveAvgPool2d(output_size=(6, 6))\n",
+      "  (classifier): Sequential(\n",
+      "    (0): Dropout(p=0.5, inplace=False)\n",
+      "    (1): Linear(in_features=9216, out_features=4096, bias=True)\n",
+      "    (2): ReLU(inplace=True)\n",
+      "    (3): Dropout(p=0.5, inplace=False)\n",
+      "    (4): Linear(in_features=4096, out_features=4096, bias=True)\n",
+      "    (5): ReLU(inplace=True)\n",
+      "    (6): Linear(in_features=4096, out_features=1000, bias=True)\n",
+      "  )\n",
+      ")\n"
+     ]
+    }
+   ],
    "source": [
     "import torch\n",
     "\n",
@@ -95,10 +182,18 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 3,
    "id": "6e18f2fd",
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "CUDA is not available.  Training on CPU ...\n"
+     ]
+    }
+   ],
    "source": [
     "import torch\n",
     "\n",
@@ -121,10 +216,33 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 4,
    "id": "462666a2",
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Downloading https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz to data/cifar-10-python.tar.gz\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "100%|██████████| 170498071/170498071 [03:03<00:00, 930310.66it/s] \n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Extracting data/cifar-10-python.tar.gz to data\n",
+      "Files already downloaded and verified\n"
+     ]
+    }
+   ],
    "source": [
     "import numpy as np\n",
     "from torchvision import datasets, transforms\n",
@@ -193,10 +311,25 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 14,
    "id": "317bf070",
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Net(\n",
+      "  (conv1): Conv2d(3, 6, kernel_size=(5, 5), stride=(1, 1))\n",
+      "  (pool): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n",
+      "  (conv2): Conv2d(6, 16, kernel_size=(5, 5), stride=(1, 1))\n",
+      "  (fc1): Linear(in_features=400, out_features=120, bias=True)\n",
+      "  (fc2): Linear(in_features=120, out_features=84, bias=True)\n",
+      "  (fc3): Linear(in_features=84, out_features=10, bias=True)\n",
+      ")\n"
+     ]
+    }
+   ],
    "source": [
     "import torch.nn as nn\n",
     "import torch.nn.functional as F\n",
@@ -242,10 +375,31 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 23,
    "id": "4b53f229",
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Epoch: 0 \tTraining Loss: 44.510087 \tValidation Loss: 40.282480\n",
+      "Validation loss decreased (inf --> 40.282480).  Saving model ...\n",
+      "Epoch: 1 \tTraining Loss: 36.337317 \tValidation Loss: 34.023307\n",
+      "Validation loss decreased (40.282480 --> 34.023307).  Saving model ...\n",
+      "Epoch: 2 \tTraining Loss: 32.228306 \tValidation Loss: 31.080486\n",
+      "Validation loss decreased (34.023307 --> 31.080486).  Saving model ...\n",
+      "Epoch: 3 \tTraining Loss: 29.874526 \tValidation Loss: 29.216065\n",
+      "Validation loss decreased (31.080486 --> 29.216065).  Saving model ...\n",
+      "Epoch: 4 \tTraining Loss: 28.062769 \tValidation Loss: 27.739449\n",
+      "Validation loss decreased (29.216065 --> 27.739449).  Saving model ...\n",
+      "Epoch: 5 \tTraining Loss: 26.434595 \tValidation Loss: 25.944132\n",
+      "Validation loss decreased (27.739449 --> 25.944132).  Saving model ...\n",
+      "Epoch: 6 \tTraining Loss: 24.854164 \tValidation Loss: 25.084054\n",
+      "Validation loss decreased (25.944132 --> 25.084054).  Saving model ...\n"
+     ]
+    }
+   ],
    "source": [
     "import torch.optim as optim\n",
     "\n",
@@ -254,7 +408,10 @@
     "\n",
     "n_epochs = 30  # number of epochs to train the model\n",
     "train_loss_list = []  # list to store loss to visualize\n",
+    "validation_loss_list = [] # We also want to track validation loss to check for overfitting\n",
     "valid_loss_min = np.Inf  # track change in validation loss\n",
+    "patience = 3\n",
+    "\n",
     "\n",
     "for epoch in range(n_epochs):\n",
     "    # Keep track of training and validation loss\n",
@@ -297,6 +454,7 @@
     "    train_loss = train_loss / len(train_loader)\n",
     "    valid_loss = valid_loss / len(valid_loader)\n",
     "    train_loss_list.append(train_loss)\n",
+    "    validation_loss_list.append(valid_loss)\n",
     "\n",
     "    # Print training/validation statistics\n",
     "    print(\n",
@@ -313,7 +471,14 @@
     "            )\n",
     "        )\n",
     "        torch.save(model.state_dict(), \"model_cifar.pt\")\n",
-    "        valid_loss_min = valid_loss"
+    "        valid_loss_min = valid_loss\n",
+    "        patience_counter = 0\n",
+    "    else:\n",
+    "        patience_counter += 1\n",
+    "\n",
+    "    if patience_counter >= patience:\n",
+    "        print(f\"Early stopping after {epoch} epochs.\")\n",
+    "        break"
    ]
   },
   {
@@ -326,14 +491,26 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 24,
    "id": "d39df818",
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "data": {
+      "image/png": "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q6CggCZNmvDOO+8U+fo/Q5st3H333Tz00EMkJSXRu3fva5oxVhLnv/N77rnHcsP2PzVt2tQqtYhYg8KPiJ2pW7cuhmEQHh5OgwYNSnXssLAwCgoK2LNnj+UsAZhvdk1NTSUsLKxUj1eUn376iZycHObPn1/orM6VLjtdTd26ddm2bdtV99myZQtdu3Ytdvg77/z3EhcXZ7lMdl5cXFypfW8DBw7k4YcfZs2aNXz33XdXrGfJkiVkZGQUOvuza9euQvWe//Pet29fobM9cXFxhcY7PxMsPz+/2GsTiZRnuudHxM4MGjQIR0dHXn311UvObhiGwYkTJ6577D59+gDw3nvvFdp+/mxIUbOAStv5MzkXf7a0tDSmTZt23WMOHjyYLVu2XDJb7eLjDBkyhISEBD777LNL9jlz5gxZWVmXHb9169b4+/szefLkQtPiFyxYwM6dO0vte/Py8mLSpEm88sor9O3b97L79enTh/z8fD766KNC2999911MJpNlxtj5//3nbLF//vk7OjoyePBgfvzxxyJD5LFjx67n44jYLZ35EbEzdevW5fXXX2fcuHEcPHiQAQMG4O3tzYEDB4iJiWHkyJE888wz1zV2s2bNGDZsGFOmTCE1NZWbb76ZdevW8eWXXzJgwABuueWWUv40l+rRowcuLi707duXhx9+mMzMTD777DP8/f05evTodY357LPPMnv2bO644w4eeOABWrVqxcmTJ5k/fz6TJ0+mWbNm3HvvvXz//fc88sgjLFu2jBtuuIH8/Hx27drF999/b1nPqCjOzs5MnDiR+++/n5tvvpm77rrLMtW9du3aPPXUUyX5Sgq53GWni/Xt25dbbrmFf//73xw8eJBmzZrx22+/MW/ePMaMGWO5x6d58+bcddddfPLJJ6SlpdGxY0eWLl3K3r17LxlzwoQJLFu2jHbt2vHQQw/RqFEjTp48ycaNG1myZAknT5685s/y9ddfc+jQIct9XStXruT1118H4N5777XKmUaRoij8iNihf/3rXzRo0IB3332XV199FTDfk9KjRw/69etXorE///xz6tSpw/Tp04mJiSEwMJBx48Yxfvz40ij9qiIiIpg9ezYvvvgizzzzDIGBgYwaNYoaNWpcMlOsuLy8vPjjjz8YP348MTExfPnll/j7+9O1a1dq1qwJgIODA3PnzuXdd9/lq6++IiYm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",
+      "text/plain": [
+       "<Figure size 640x480 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
    "source": [
     "import matplotlib.pyplot as plt\n",
     "\n",
     "plt.plot(range(n_epochs), train_loss_list)\n",
+    "plt.plot(range(n_epochs), validation_loss_list)\n",
     "plt.xlabel(\"Epoch\")\n",
     "plt.ylabel(\"Loss\")\n",
     "plt.title(\"Performance of Model 1\")\n",
@@ -350,10 +527,31 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 25,
    "id": "e93efdfc",
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Test Loss: 24.706703\n",
+      "\n",
+      "Test Accuracy of airplane: 65% (650/1000)\n",
+      "Test Accuracy of automobile: 78% (782/1000)\n",
+      "Test Accuracy of  bird: 37% (377/1000)\n",
+      "Test Accuracy of   cat: 29% (294/1000)\n",
+      "Test Accuracy of  deer: 36% (368/1000)\n",
+      "Test Accuracy of   dog: 59% (596/1000)\n",
+      "Test Accuracy of  frog: 68% (681/1000)\n",
+      "Test Accuracy of horse: 55% (554/1000)\n",
+      "Test Accuracy of  ship: 75% (756/1000)\n",
+      "Test Accuracy of truck: 54% (543/1000)\n",
+      "\n",
+      "Test Accuracy (Overall): 56% (5601/10000)\n"
+     ]
+    }
+   ],
    "source": [
     "model.load_state_dict(torch.load(\"./model_cifar.pt\"))\n",
     "\n",
@@ -434,6 +632,61 @@
     "Compare the results obtained with this new network to those obtained previously."
    ]
   },
+  {
+   "cell_type": "code",
+   "execution_count": 22,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Net(\n",
+      "  (conv1): Conv2d(3, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
+      "  (pool): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n",
+      "  (conv2): Conv2d(16, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
+      "  (conv3): Conv2d(32, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
+      "  (fc1): Linear(in_features=1024, out_features=512, bias=True)\n",
+      "  (fc2): Linear(in_features=512, out_features=64, bias=True)\n",
+      "  (fc3): Linear(in_features=64, out_features=10, bias=True)\n",
+      ")\n"
+     ]
+    }
+   ],
+   "source": [
+    "# We create the corresponding model\n",
+    "\n",
+    "class Net(nn.Module):\n",
+    "    def __init__(self):\n",
+    "        super(Net, self).__init__()\n",
+    "        self.conv1 = nn.Conv2d(3, 16, 3, padding=1)\n",
+    "        self.pool = nn.MaxPool2d(2, 2)\n",
+    "        self.conv2 = nn.Conv2d(16, 32, 3, padding=1)\n",
+    "        self.conv3 = nn.Conv2d(32, 64, 3, padding=1)\n",
+    "\n",
+    "        self.fc1 = nn.Linear(64 * 4 * 4, 512)\n",
+    "        self.fc2 = nn.Linear(512, 64)\n",
+    "        self.fc3 = nn.Linear(64, 10)\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 = x.view(-1, 64 * 4 * 4)\n",
+    "        x = F.dropout(F.relu(self.fc1(x)), p=0.5)\n",
+    "        x = F.dropout(F.relu(self.fc2(x)), p=0.2)\n",
+    "        x = self.fc3(x)\n",
+    "        return x\n",
+    "\n",
+    "\n",
+    "# create a complete CNN\n",
+    "model = Net()\n",
+    "print(model)\n",
+    "# move tensors to GPU if CUDA is available\n",
+    "if train_on_gpu:\n",
+    "    model.cuda()"
+   ]
+  },
   {
    "cell_type": "markdown",
    "id": "bc381cf4",
@@ -940,7 +1193,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.8.5"
+   "version": "3.11.6"
   },
   "vscode": {
    "interpreter": {