diff --git a/Wine.Lightning/01-DNN-Wine-Regression-lightning.ipynb b/Wine.Lightning/01-DNN-Wine-Regression-lightning.ipynb
index dff8beebf271a9ce678f27f1d811e37b333ea3b9..54b697214a50c64ef4ad76b36b04b144496e9f25 100644
--- a/Wine.Lightning/01-DNN-Wine-Regression-lightning.ipynb
+++ b/Wine.Lightning/01-DNN-Wine-Regression-lightning.ipynb
@@ -4,9 +4,9 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "<img width=\"800px\" src=\"../fidle/img/header.svg\"></img>\n",
+    "<img width=\"800px\" src=\"../fidle/img/00-Fidle-header-01.svg\"></img>\n",
     "\n",
-    "# <!-- TITLE --> [LWINE1] - Wine quality prediction with a Dense Network (DNN) using Lightning\n",
+    "# <!-- TITLE --> [WINE1] - Wine quality prediction with a Dense Network (DNN) using Lightning\n",
     "  <!-- DESC -->  Another example of regression, with a wine quality prediction!\n",
     "  <!-- AUTHOR : Achille Mbogol Touye (EFFILIA-MIAI/SIMaP) -->\n",
     "\n",
@@ -57,9 +57,105 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 1,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<style>\n",
+       "\n",
+       "div.warn {    \n",
+       "    background-color: #fcf2f2;\n",
+       "    border-color: #dFb5b4;\n",
+       "    border-left: 5px solid #dfb5b4;\n",
+       "    padding: 0.5em;\n",
+       "    font-weight: bold;\n",
+       "    font-size: 1.1em;;\n",
+       "    }\n",
+       "\n",
+       "\n",
+       "\n",
+       "div.nota {    \n",
+       "    background-color: #DAFFDE;\n",
+       "    border-left: 5px solid #92CC99;\n",
+       "    padding: 0.5em;\n",
+       "    }\n",
+       "\n",
+       "div.todo:before { content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1My44OTEyIiBoZWlnaHQ9IjE0My4zOTAyIiB2aWV3Qm94PSIwIDAgNTMuODkxMiAxNDMuMzkwMiI+PHRpdGxlPjAwLUJvYi10b2RvPC90aXRsZT48cGF0aCBkPSJNMjMuNDU2OCwxMTQuMzAxNmExLjgwNjMsMS44MDYzLDAsMSwxLDEuODE1NywxLjgyNEExLjgyMDksMS44MjA5LDAsMCwxLDIzLjQ1NjgsMTE0LjMwMTZabS0xMC42NjEyLDEuODIyQTEuODI3MiwxLjgyNzIsMCwxLDAsMTAuOTgsMTE0LjMsMS44MiwxLjgyLDAsMCwwLDEyLjc5NTYsMTE2LjEyMzZabS03LjcwNyw0LjU4NzR2LTVzLjQ4NjMtOS4xMjIzLDguMDIxNS0xMS45Njc1YTE5LjIwODIsMTkuMjA4MiwwLDAsMSw2LjA0ODYtMS4yNDU0LDE5LjE3NzgsMTkuMTc3OCwwLDAsMSw2LjA0ODcsMS4yNDc1YzcuNTM1MSwyLjgzNDcsOC4wMTc0LDExLjk2NzQsOC4wMTc0LDExLjk2NzR2NS4wMjM0bC4wMDQyLDcuNjgydjIuNGMuMDE2Ny4xOTkyLjAzMzYuMzkyMS4wMzM2LjU4NzEsMCwuMjEzOC0uMDE2OC40MTA5LS4wMzM2LjYzMzJ2LjA1ODdoLS4wMDg0YTguMzcxOSw4LjM3MTksMCwwLDEtNy4zNzM4LDcuNjU0N3MtLjk5NTMsMy42MzgtNi42OTMzLDMuNjM4LTYuNjkzNC0zLjYzOC02LjY5MzQtMy42MzhhOC4zNyw4LjM3LDAsMCwxLTcuMzcxNi03LjY1NDdINS4wODQzdi0uMDU4N2MtLjAxODktLjIyLS4wMjk0LS40MTk0LS4wMjk0LS42MzMyLDAtLjE5MjkuMDE2Ny0uMzgzNy4wMjk0LS41ODcxdi0yLjRtMTguMDkzNy00LjA0YTEuMTU2NSwxLjE1NjUsMCwxLDAtMi4zMTI2LDAsMS4xNTY0LDEuMTU2NCwwLDEsMCwyLjMxMjYsMFptNC4wODM0LDBhMS4xNTk1LDEuMTU5NSwwLDEsMC0xLjE2MzYsMS4xN0ExLjE3NSwxLjE3NSwwLDAsMCwyNy4yNjE0LDEyNC4zNzc5Wk05LjM3MzksMTE0LjYzNWMwLDMuMTA5MywyLjQxMzIsMy4zMSwyLjQxMzIsMy4zMWExMzMuOTI0MywxMzMuOTI0MywwLDAsMCwxNC43MzQ4LDBzMi40MTExLS4xOTI5LDIuNDExMS0zLjMxYTguMDc3Myw4LjA3NzMsMCwwLDAtMi40MTExLTUuNTUxOWMtNC41LTMuNTAzMy05LjkxMjYtMy41MDMzLTE0Ljc0MTEsMEE4LjA4NTEsOC4wODUxLDAsMCwwLDkuMzczOSwxMTQuNjM1WiIgc3R5bGU9ImZpbGw6IzAxMDEwMSIvPjxjaXJjbGUgY3g9IjMzLjE0MzYiIGN5PSIxMjQuNTM0IiByPSIzLjgzNjMiIHN0eWxlPSJmaWxsOiMwMTAxMDEiLz48cmVjdCB4PSIzNS42NjU5IiB5PSIxMTIuOTYyNSIgd2lkdGg9IjIuMDc3IiBoZWlnaHQ9IjEwLjU0NTgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIxLjYgMjQxLjExMjEpIHJvdGF0ZSgtMTU1Ljc0NikiIHN0eWxlPSJmaWxsOiMwMTAxMDEiLz48Y2lyY2xlIGN4PSIzOC44NzA0IiBjeT0iMTEzLjQyNzkiIHI9IjIuNDA4NSIgc3R5bGU9ImZpbGw6IzAxMDEwMSIvPjxjaXJjbGUgY3g9IjUuMjI0OCIgY3k9IjEyNC41MzQiIHI9IjMuODM2MyIgc3R5bGU9ImZpbGw6IzAxMDEwMSIvPjxyZWN0IHg9IjEuNDE2NCIgeT0iMTI0LjYzMDEiIHdpZHRoPSIyLjA3NyIgaGVpZ2h0PSIxMC41NDU4IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0LjkwOTcgMjU5LjgwNikgcm90YXRlKC0xODApIiBzdHlsZT0iZmlsbDojMDEwMTAxIi8+PGNpcmNsZSBjeD0iMi40MDkxIiBjeT0iMTM3LjA5OTYiIHI9IjIuNDA4NSIgc3R5bGU9ImZpbGw6IzAxMDEwMSIvPjxwYXRoIGQ9Ik0xOC4wNTExLDEwMC4xMDY2aC0uMDE0NlYxMDIuNjFoMi4zdi0yLjQyNzlhMi40MjI5LDIuNDIyOSwwLDEsMC0yLjI4NTQtLjA3NTVaIiBzdHlsZT0iZmlsbDojMDEwMTAxIi8+PHBhdGggZD0iTTM5LjQyMTQsMjcuMjU4djEuMDVBMTEuOTQ1MiwxMS45NDUyLDAsMCwwLDQ0LjU5NTQsNS43OWEuMjQ0OS4yNDQ5LDAsMCwxLS4wMjM1LS40MjI3TDQ2Ljc1LDMuOTUxNWEuMzg5Mi4zODkyLDAsMCwxLC40MjYyLDAsMTQuODQ0MiwxNC44NDQyLDAsMCwxLTcuNzU0MywyNy4yNTkxdjEuMDY3YS40NS40NSwwLDAsMS0uNzA0Ny4zNzU4bC0zLjg0MTktMi41MWEuNDUuNDUsMCwwLDEsMC0uNzUxNmwzLjg0MTktMi41MWEuNDUuNDUsMCwwLDEsLjY5NDYuMzc1OFpNNDMuMjMsMi41ODkyLDM5LjM4NzguMDc5NGEuNDUuNDUsMCwwLDAtLjcwNDYuMzc1OHYxLjA2N2ExNC44NDQyLDE0Ljg0NDIsMCwwLDAtNy43NTQzLDI3LjI1OTEuMzg5LjM4OSwwLDAsMCwuNDI2MSwwbDIuMTc3Ny0xLjQxOTNhLjI0NS4yNDUsMCwwLDAtLjAyMzUtLjQyMjgsMTEuOTQ1MSwxMS45NDUxLDAsMCwxLDUuMTc0LTIyLjUxNDZ2MS4wNWEuNDUuNDUsMCwwLDAsLjcwNDYuMzc1OGwzLjg1NTMtMi41MWEuNDUuNDUsMCwwLDAsMC0uNzUxNlpNMzkuMDUyMywxNC4yNDU4YTIuMTIwNiwyLjEyMDYsMCwxLDAsMi4xMjA2LDIuMTIwNmgwQTIuMTI0LDIuMTI0LDAsMCwwLDM5LjA1MjMsMTQuMjQ1OFptNi4wNzMyLTQuNzc4MS44MjU0LjgyNTVhMS4wNTY4LDEuMDU2OCwwLDAsMSwuMTE3NSwxLjM0MjFsLS44MDIsMS4xNDQyYTcuMTAxOCw3LjEwMTgsMCwwLDEsLjcxMTQsMS43MTEybDEuMzc1Ny4yNDE2YTEuMDU2OSwxLjA1NjksMCwwLDEsLjg3NTcsMS4wNHYxLjE2NDNhMS4wNTY5LDEuMDU2OSwwLDAsMS0uODc1NywxLjA0bC0xLjM3MjQuMjQxNkE3LjExLDcuMTEsMCwwLDEsNDUuMjcsMTkuOTNsLjgwMTksMS4xNDQyYTEuMDU3LDEuMDU3LDAsMCwxLS4xMTc0LDEuMzQyMmwtLjgyODguODQ4OWExLjA1NywxLjA1NywwLDAsMS0xLjM0MjEuMTE3NGwtMS4xNDQyLS44MDE5YTcuMTMzOCw3LjEzMzgsMCwwLDEtMS43MTEzLjcxMTNsLS4yNDE2LDEuMzcyNGExLjA1NjgsMS4wNTY4LDAsMCwxLTEuMDQuODc1N0gzOC40Njg0YTEuMDU2OCwxLjA1NjgsMCwwLDEtMS4wNC0uODc1N2wtLjI0MTYtMS4zNzI0YTcuMTM1NSw3LjEzNTUsMCwwLDEtMS43MTEzLS43MTEzbC0xLjE0NDEuODAxOWExLjA1NzEsMS4wNTcxLDAsMCwxLTEuMzQyMi0uMTE3NGwtLjgzNTUtLjgyNTVhMS4wNTcsMS4wNTcsMCwwLDEtLjExNzQtMS4zNDIxbC44MDE5LTEuMTQ0MmE3LjEyMSw3LjEyMSwwLDAsMS0uNzExMy0xLjcxMTJsLTEuMzcyNC0uMjQxNmExLjA1NjksMS4wNTY5LDAsMCwxLS44NzU3LTEuMDRWMTUuNzgyNmExLjA1NjksMS4wNTY5LDAsMCwxLC44NzU3LTEuMDRsMS4zNzU3LS4yNDE2YTcuMTEsNy4xMSwwLDAsMSwuNzExNC0xLjcxMTJsLS44MDItMS4xNDQyYTEuMDU3LDEuMDU3LDAsMCwxLC4xMTc1LTEuMzQyMmwuODI1NC0uODI1NEExLjA1NjgsMS4wNTY4LDAsMCwxLDM0LjMyNDUsOS4zNmwxLjE0NDIuODAxOUE3LjEzNTUsNy4xMzU1LDAsMCwxLDM3LjE4LDkuNDUxbC4yNDE2LTEuMzcyNGExLjA1NjgsMS4wNTY4LDAsMCwxLDEuMDQtLjg3NTdoMS4xNjc3YTEuMDU2OSwxLjA1NjksMCwwLDEsMS4wNC44NzU3bC4yNDE2LDEuMzcyNGE3LjEyNSw3LjEyNSwwLDAsMSwxLjcxMTIuNzExM0w0My43NjY2LDkuMzZBMS4wNTY5LDEuMDU2OSwwLDAsMSw0NS4xMjU1LDkuNDY3N1ptLTIuMDMsNi44OTg3QTQuMDQzMyw0LjA0MzMsMCwxLDAsMzkuMDUyMywyMC40MWgwQTQuMDQ2NSw0LjA0NjUsMCwwLDAsNDMuMDk1NSwxNi4zNjY0WiIgc3R5bGU9ImZpbGw6I2UxMjIyOSIvPjxwb2x5Z29uIHBvaW50cz0iMzkuNDEzIDM0Ljc1NyAzOS41MzcgMzQuNzU3IDM5LjY3NSAzNC43NTcgMzkuNjc1IDEwOS41MSAzOS41MzcgMTA5LjUxIDM5LjQxMyAxMDkuNTEgMzkuNDEzIDM0Ljc1NyAzOS40MTMgMzQuNzU3IiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojOTk5O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjMwODg1NDQ1MDU2MDE2MThweDtmaWxsLXJ1bGU6ZXZlbm9kZCIvPjwvc3ZnPg==);\n",
+       "    float:left;\n",
+       "    margin-right:20px;\n",
+       "    margin-top:-20px;\n",
+       "    margin-bottom:20px;\n",
+       "}\n",
+       "div.todo{\n",
+       "    font-weight: bold;\n",
+       "    font-size: 1.1em;\n",
+       "    margin-top:40px;\n",
+       "}\n",
+       "div.todo ul{\n",
+       "    margin: 0.2em;\n",
+       "}\n",
+       "div.todo li{\n",
+       "    margin-left:60px;\n",
+       "    margin-top:0;\n",
+       "    margin-bottom:0;\n",
+       "}\n",
+       "\n",
+       "div .comment{\n",
+       "    font-size:0.8em;\n",
+       "    color:#696969;\n",
+       "}\n",
+       "\n",
+       "\n",
+       "\n",
+       "</style>\n",
+       "\n"
+      ],
+      "text/plain": [
+       "<IPython.core.display.HTML object>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/markdown": [
+       "<br>**FIDLE - Environment initialization**"
+      ],
+      "text/plain": [
+       "<IPython.core.display.Markdown object>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Version              : 2.2b7\n",
+      "Run id               : WINE1-Lightning\n",
+      "Run dir              : ./run/WINE1-Lightning\n",
+      "Datasets dir         : /home/achille-touye/fidle-tp/datasets-fidle\n",
+      "Start time           : 01/11/23 13:44:36\n",
+      "Hostname             : achilletouye-Precision-3571 (Linux)\n",
+      "Tensorflow log level : Info + Warning + Error  (=0)\n",
+      "Update keras cache   : False\n",
+      "Update torch cache   : False\n",
+      "Save figs            : ./run/WINE1-Lightning/figs (False)\n",
+      "numpy                : 1.24.4\n",
+      "sklearn              : 1.3.2\n",
+      "yaml                 : 6.0.1\n",
+      "matplotlib           : 3.7.3\n",
+      "pandas               : 2.0.3\n",
+      "torch                : 2.1.0+cu121\n",
+      "torchvision          : 0.16.0+cu121\n",
+      "lightning            : 2.1.0\n"
+     ]
+    }
+   ],
    "source": [
     "# Import some packages\n",
     "import os\n",
@@ -76,7 +172,7 @@
     "from IPython.display import Markdown\n",
     "from importlib import reload\n",
     "from torch.utils.data import Dataset, DataLoader, random_split\n",
-    "from modules.data_load import WineQualityDataset, Normalize, ToTensor\n",
+    "from data_load import WineQualityDataset, Normalize, ToTensor\n",
     "from lightning.pytorch.loggers.tensorboard import TensorBoardLogger\n",
     "from torchmetrics.functional.regression import mean_absolute_error, mean_squared_error\n",
     "\n",
@@ -98,7 +194,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 2,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -115,7 +211,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 3,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -131,9 +227,126 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 4,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<style type=\"text/css\">\n",
+       "</style>\n",
+       "<table id=\"T_bdac6\">\n",
+       "  <thead>\n",
+       "    <tr>\n",
+       "      <th class=\"blank level0\" >&nbsp;</th>\n",
+       "      <th id=\"T_bdac6_level0_col0\" class=\"col_heading level0 col0\" >fixed acidity</th>\n",
+       "      <th id=\"T_bdac6_level0_col1\" class=\"col_heading level0 col1\" >volatile acidity</th>\n",
+       "      <th id=\"T_bdac6_level0_col2\" class=\"col_heading level0 col2\" >citric acid</th>\n",
+       "      <th id=\"T_bdac6_level0_col3\" class=\"col_heading level0 col3\" >residual sugar</th>\n",
+       "      <th id=\"T_bdac6_level0_col4\" class=\"col_heading level0 col4\" >chlorides</th>\n",
+       "      <th id=\"T_bdac6_level0_col5\" class=\"col_heading level0 col5\" >free sulfur dioxide</th>\n",
+       "      <th id=\"T_bdac6_level0_col6\" class=\"col_heading level0 col6\" >total sulfur dioxide</th>\n",
+       "      <th id=\"T_bdac6_level0_col7\" class=\"col_heading level0 col7\" >density</th>\n",
+       "      <th id=\"T_bdac6_level0_col8\" class=\"col_heading level0 col8\" >pH</th>\n",
+       "      <th id=\"T_bdac6_level0_col9\" class=\"col_heading level0 col9\" >sulphates</th>\n",
+       "      <th id=\"T_bdac6_level0_col10\" class=\"col_heading level0 col10\" >alcohol</th>\n",
+       "      <th id=\"T_bdac6_level0_col11\" class=\"col_heading level0 col11\" >quality</th>\n",
+       "    </tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr>\n",
+       "      <th id=\"T_bdac6_level0_row0\" class=\"row_heading level0 row0\" >0</th>\n",
+       "      <td id=\"T_bdac6_row0_col0\" class=\"data row0 col0\" >7.40</td>\n",
+       "      <td id=\"T_bdac6_row0_col1\" class=\"data row0 col1\" >0.70</td>\n",
+       "      <td id=\"T_bdac6_row0_col2\" class=\"data row0 col2\" >0.00</td>\n",
+       "      <td id=\"T_bdac6_row0_col3\" class=\"data row0 col3\" >1.90</td>\n",
+       "      <td id=\"T_bdac6_row0_col4\" class=\"data row0 col4\" >0.08</td>\n",
+       "      <td id=\"T_bdac6_row0_col5\" class=\"data row0 col5\" >11.00</td>\n",
+       "      <td id=\"T_bdac6_row0_col6\" class=\"data row0 col6\" >34.00</td>\n",
+       "      <td id=\"T_bdac6_row0_col7\" class=\"data row0 col7\" >1.00</td>\n",
+       "      <td id=\"T_bdac6_row0_col8\" class=\"data row0 col8\" >3.51</td>\n",
+       "      <td id=\"T_bdac6_row0_col9\" class=\"data row0 col9\" >0.56</td>\n",
+       "      <td id=\"T_bdac6_row0_col10\" class=\"data row0 col10\" >9.40</td>\n",
+       "      <td id=\"T_bdac6_row0_col11\" class=\"data row0 col11\" >5.00</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th id=\"T_bdac6_level0_row1\" class=\"row_heading level0 row1\" >1</th>\n",
+       "      <td id=\"T_bdac6_row1_col0\" class=\"data row1 col0\" >7.80</td>\n",
+       "      <td id=\"T_bdac6_row1_col1\" class=\"data row1 col1\" >0.88</td>\n",
+       "      <td id=\"T_bdac6_row1_col2\" class=\"data row1 col2\" >0.00</td>\n",
+       "      <td id=\"T_bdac6_row1_col3\" class=\"data row1 col3\" >2.60</td>\n",
+       "      <td id=\"T_bdac6_row1_col4\" class=\"data row1 col4\" >0.10</td>\n",
+       "      <td id=\"T_bdac6_row1_col5\" class=\"data row1 col5\" >25.00</td>\n",
+       "      <td id=\"T_bdac6_row1_col6\" class=\"data row1 col6\" >67.00</td>\n",
+       "      <td id=\"T_bdac6_row1_col7\" class=\"data row1 col7\" >1.00</td>\n",
+       "      <td id=\"T_bdac6_row1_col8\" class=\"data row1 col8\" >3.20</td>\n",
+       "      <td id=\"T_bdac6_row1_col9\" class=\"data row1 col9\" >0.68</td>\n",
+       "      <td id=\"T_bdac6_row1_col10\" class=\"data row1 col10\" >9.80</td>\n",
+       "      <td id=\"T_bdac6_row1_col11\" class=\"data row1 col11\" >5.00</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th id=\"T_bdac6_level0_row2\" class=\"row_heading level0 row2\" >2</th>\n",
+       "      <td id=\"T_bdac6_row2_col0\" class=\"data row2 col0\" >7.80</td>\n",
+       "      <td id=\"T_bdac6_row2_col1\" class=\"data row2 col1\" >0.76</td>\n",
+       "      <td id=\"T_bdac6_row2_col2\" class=\"data row2 col2\" >0.04</td>\n",
+       "      <td id=\"T_bdac6_row2_col3\" class=\"data row2 col3\" >2.30</td>\n",
+       "      <td id=\"T_bdac6_row2_col4\" class=\"data row2 col4\" >0.09</td>\n",
+       "      <td id=\"T_bdac6_row2_col5\" class=\"data row2 col5\" >15.00</td>\n",
+       "      <td id=\"T_bdac6_row2_col6\" class=\"data row2 col6\" >54.00</td>\n",
+       "      <td id=\"T_bdac6_row2_col7\" class=\"data row2 col7\" >1.00</td>\n",
+       "      <td id=\"T_bdac6_row2_col8\" class=\"data row2 col8\" >3.26</td>\n",
+       "      <td id=\"T_bdac6_row2_col9\" class=\"data row2 col9\" >0.65</td>\n",
+       "      <td id=\"T_bdac6_row2_col10\" class=\"data row2 col10\" >9.80</td>\n",
+       "      <td id=\"T_bdac6_row2_col11\" class=\"data row2 col11\" >5.00</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th id=\"T_bdac6_level0_row3\" class=\"row_heading level0 row3\" >3</th>\n",
+       "      <td id=\"T_bdac6_row3_col0\" class=\"data row3 col0\" >11.20</td>\n",
+       "      <td id=\"T_bdac6_row3_col1\" class=\"data row3 col1\" >0.28</td>\n",
+       "      <td id=\"T_bdac6_row3_col2\" class=\"data row3 col2\" >0.56</td>\n",
+       "      <td id=\"T_bdac6_row3_col3\" class=\"data row3 col3\" >1.90</td>\n",
+       "      <td id=\"T_bdac6_row3_col4\" class=\"data row3 col4\" >0.07</td>\n",
+       "      <td id=\"T_bdac6_row3_col5\" class=\"data row3 col5\" >17.00</td>\n",
+       "      <td id=\"T_bdac6_row3_col6\" class=\"data row3 col6\" >60.00</td>\n",
+       "      <td id=\"T_bdac6_row3_col7\" class=\"data row3 col7\" >1.00</td>\n",
+       "      <td id=\"T_bdac6_row3_col8\" class=\"data row3 col8\" >3.16</td>\n",
+       "      <td id=\"T_bdac6_row3_col9\" class=\"data row3 col9\" >0.58</td>\n",
+       "      <td id=\"T_bdac6_row3_col10\" class=\"data row3 col10\" >9.80</td>\n",
+       "      <td id=\"T_bdac6_row3_col11\" class=\"data row3 col11\" >6.00</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th id=\"T_bdac6_level0_row4\" class=\"row_heading level0 row4\" >4</th>\n",
+       "      <td id=\"T_bdac6_row4_col0\" class=\"data row4 col0\" >7.40</td>\n",
+       "      <td id=\"T_bdac6_row4_col1\" class=\"data row4 col1\" >0.70</td>\n",
+       "      <td id=\"T_bdac6_row4_col2\" class=\"data row4 col2\" >0.00</td>\n",
+       "      <td id=\"T_bdac6_row4_col3\" class=\"data row4 col3\" >1.90</td>\n",
+       "      <td id=\"T_bdac6_row4_col4\" class=\"data row4 col4\" >0.08</td>\n",
+       "      <td id=\"T_bdac6_row4_col5\" class=\"data row4 col5\" >11.00</td>\n",
+       "      <td id=\"T_bdac6_row4_col6\" class=\"data row4 col6\" >34.00</td>\n",
+       "      <td id=\"T_bdac6_row4_col7\" class=\"data row4 col7\" >1.00</td>\n",
+       "      <td id=\"T_bdac6_row4_col8\" class=\"data row4 col8\" >3.51</td>\n",
+       "      <td id=\"T_bdac6_row4_col9\" class=\"data row4 col9\" >0.56</td>\n",
+       "      <td id=\"T_bdac6_row4_col10\" class=\"data row4 col10\" >9.40</td>\n",
+       "      <td id=\"T_bdac6_row4_col11\" class=\"data row4 col11\" >5.00</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n"
+      ],
+      "text/plain": [
+       "<pandas.io.formats.style.Styler at 0x7f6d346eeaf0>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Missing Data :  0   Shape is :  (1599, 12)\n"
+     ]
+    }
+   ],
    "source": [
     "csv_file_path=f'{datasets_dir}/WineQuality/origine/{dataset_name}'\n",
     "datasets=WineQualityDataset(csv_file_path)\n",
@@ -162,7 +375,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 5,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -173,9 +386,72 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 6,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "data": {
+      "text/markdown": [
+       "before normalization :"
+      ],
+      "text/plain": [
+       "<IPython.core.display.Markdown object>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/plain": [
+       "array([[ 7.4  ,  0.7  ,  0.   , ...,  3.51 ,  0.56 ,  9.4  ],\n",
+       "       [ 7.8  ,  0.88 ,  0.   , ...,  3.2  ,  0.68 ,  9.8  ],\n",
+       "       [ 7.8  ,  0.76 ,  0.04 , ...,  3.26 ,  0.65 ,  9.8  ],\n",
+       "       ...,\n",
+       "       [ 6.3  ,  0.51 ,  0.13 , ...,  3.42 ,  0.75 , 11.   ],\n",
+       "       [ 5.9  ,  0.645,  0.12 , ...,  3.57 ,  0.71 , 10.2  ],\n",
+       "       [ 6.   ,  0.31 ,  0.47 , ...,  3.39 ,  0.66 , 11.   ]],\n",
+       "      dtype=float32)"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "\n"
+     ]
+    },
+    {
+     "data": {
+      "text/markdown": [
+       "After normalization :"
+      ],
+      "text/plain": [
+       "<IPython.core.display.Markdown object>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/plain": [
+       "tensor([[-0.5282,  0.9616, -1.3910,  ...,  1.2882, -0.5790, -0.9599],\n",
+       "        [-0.2985,  1.9668, -1.3910,  ..., -0.7197,  0.1289, -0.5846],\n",
+       "        [-0.2985,  1.2967, -1.1857,  ..., -0.3311, -0.0481, -0.5846],\n",
+       "        ...,\n",
+       "        [-1.1600, -0.0995, -0.7237,  ...,  0.7053,  0.5419,  0.5415],\n",
+       "        [-1.3897,  0.6544, -0.7750,  ...,  1.6769,  0.3059, -0.2092],\n",
+       "        [-1.3323, -1.2165,  1.0217,  ...,  0.5110,  0.0109,  0.5415]])"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
    "source": [
     "display(Markdown(\"before normalization :\"))\n",
     "display(datasets[:][\"features\"])\n",
@@ -197,9 +473,19 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 7,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Original data shape was :  (1599, 12)\n",
+      "x_train :  torch.Size([1279, 11]) y_train :  torch.Size([1279, 1])\n",
+      "x_test  :  torch.Size([320, 11]) y_test  :  torch.Size([320, 1])\n"
+     ]
+    }
+   ],
    "source": [
     "# ---- Split => train, test\n",
     "#\n",
@@ -233,7 +519,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 8,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -242,7 +528,7 @@
     "  dataset=data_train_subset, \n",
     "  shuffle=True, \n",
     "  batch_size=20,\n",
-    "  num_workers=4  \n",
+    "  num_workers=2  \n",
     ")\n",
     "\n",
     "\n",
@@ -251,7 +537,7 @@
     "  dataset=data_test_subset, \n",
     "  shuffle=False, \n",
     "  batch_size=20,\n",
-    "  num_workers=4\n",
+    "  num_workers=2\n",
     ")"
    ]
   },
@@ -269,7 +555,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 9,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -288,52 +574,77 @@
     "        x = self.model(x)\n",
     "        return x        \n",
     "        \n",
-    "             \n",
-    "    # defines the train loop.\n",
-    "    def training_step(self, batch, batch_idx):               \n",
+    "     # optimizer\n",
+    "    def configure_optimizers(self):                              \n",
+    "        optimizer = torch.optim.RMSprop(self.parameters(),lr=1e-4)\n",
+    "        return optimizer \n",
+    "        \n",
+    "    \n",
+    "    def training_step(self, batch, batch_idx):\n",
+    "        # defines the train loop.\n",
     "        x_features, y_target = batch[\"features\"],batch[\"quality\"]\n",
-    "        y_pred = self.model(x_features)                                 # forward pass\n",
-    "        loss = F.mse_loss(y_pred, y_target)                             # loss function MSE\n",
-    "        mae=mean_absolute_error(y_pred,y_target)                        # metrics mae\n",
-    "        mse=mean_squared_error(y_pred,y_target)                         # metrics mse\n",
-    "        metrics = {\"train_loss\": loss, \n",
+    "        \n",
+    "        # forward pass\n",
+    "        y_pred = self.model(x_features)\n",
+    "\n",
+    "        # loss function MSE\n",
+    "        loss   = F.mse_loss(y_pred, y_target)                           \n",
+    "\n",
+    "        # metrics mae\n",
+    "        mae    = mean_absolute_error(y_pred,y_target) \n",
+    "\n",
+    "        # metrics mse\n",
+    "        mse    = mean_squared_error(y_pred,y_target)                    \n",
+    "        \n",
+    "        metrics= {\"train_loss\": loss, \n",
     "                   \"train_mae\" : mae, \n",
     "                   \"train_mse\" : mse\n",
     "                  }\n",
+    "        \n",
     "        # logs metrics for each training_step\n",
     "        self.log_dict(metrics, \n",
-    "                      on_step=False,                     \n",
-    "                      on_epoch=True, \n",
-    "                      logger=True,\n",
-    "                      prog_bar =True,     \n",
+    "                      on_step  = False,                     \n",
+    "                      on_epoch = True, \n",
+    "                      logger   = True,\n",
+    "                      prog_bar = True,     \n",
     "                     )\n",
     "        return loss      \n",
-    "       \n",
-    "    # defines the val loop.\n",
-    "    def validation_step(self, batch, batch_idx):           \n",
+    "\n",
+    "        \n",
+    "    def validation_step(self, batch, batch_idx):\n",
+    "        \n",
+    "        # defines the val loop.\n",
     "        x_features, y_target = batch[\"features\"],batch[\"quality\"]\n",
-    "        y_pred = self.model(x_features)                                  # forward pass\n",
-    "        loss = F.mse_loss(y_pred, y_target)                              # loss function MSE\n",
-    "        mae=mean_absolute_error(y_pred,y_target)                         # metrics\n",
-    "        mse=mean_squared_error(y_pred,y_target)                          # metrics\n",
-    "        metrics = {\"val_loss\": loss, \n",
+    "\n",
+    "        # forward pass\n",
+    "        y_pred = self.model(x_features)\n",
+    "\n",
+    "        # loss function MSE\n",
+    "        loss   = F.mse_loss(y_pred, y_target)                             \n",
+    "\n",
+    "        # metrics\n",
+    "        mae    = mean_absolute_error(y_pred,y_target)\n",
+    "\n",
+    "        # metrics\n",
+    "        mse    = mean_squared_error(y_pred,y_target)                          \n",
+    "\n",
+    "        \n",
+    "        metrics= {\"val_loss\": loss, \n",
     "                   \"val_mae\" : mae, \n",
     "                   \"val_mse\" : mse\n",
     "                  }\n",
+    "       \n",
     "        # logs metrics for each validation_step \n",
     "        self.log_dict(metrics,                               \n",
-    "                      on_step=False,                     \n",
-    "                      on_epoch=True, \n",
-    "                      logger=True,\n",
-    "                      prog_bar =True,     \n",
+    "                      on_step  = False,                     \n",
+    "                      on_epoch = True, \n",
+    "                      logger   = True,\n",
+    "                      prog_bar = True,     \n",
     "                     )\n",
     "\n",
     "        return metrics\n",
     "            \n",
-    "    # optimizer\n",
-    "    def configure_optimizers(self):                              \n",
-    "        optimizer = torch.optim.RMSprop(self.parameters(),lr=1e-4)\n",
-    "        return optimizer "
+    "   "
    ]
   },
   {
@@ -346,12 +657,28 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 10,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "LitRegression(\n",
+      "  (model): Sequential(\n",
+      "    (0): Linear(in_features=11, out_features=128, bias=True)\n",
+      "    (1): ReLU()\n",
+      "    (2): Linear(in_features=128, out_features=128, bias=True)\n",
+      "    (3): ReLU()\n",
+      "    (4): Linear(in_features=128, out_features=1, bias=True)\n",
+      "  )\n",
+      ")\n"
+     ]
+    }
+   ],
    "source": [
-    "model=LitRegression(in_features=11)\n",
-    "print(model) "
+    "reg=LitRegression(in_features=11)\n",
+    "print(reg) "
    ]
   },
   {
@@ -363,14 +690,20 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 11,
    "metadata": {},
    "outputs": [],
    "source": [
     "os.makedirs('./run/models', exist_ok=True)\n",
     "save_dir = \"./run/models/\"\n",
+    "filename ='best-model-{epoch}-{val_loss:.2f}'\n",
     "\n",
-    "savemodel_callback = pl.callbacks.ModelCheckpoint(dirpath=save_dir, filename='best_model',save_top_k=1, verbose=False, monitor=\"val_loss\")"
+    "savemodel_callback = pl.callbacks.ModelCheckpoint(dirpath=save_dir, \n",
+    "                                                  filename=filename,\n",
+    "                                                  save_top_k=1, \n",
+    "                                                  verbose=False, \n",
+    "                                                  monitor=\"val_loss\"\n",
+    "                                                 )"
    ]
   },
   {
@@ -382,16 +715,1489 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 12,
    "metadata": {},
    "outputs": [],
    "source": [
     "# loggers data\n",
-    "logger = TensorBoardLogger(save_dir='Wine_logs',name=\"history_logs\")\n",
-    "\n",
+    "logger  = TensorBoardLogger(save_dir='Wine_logs',name=\"reg_logs\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "GPU available: True (cuda), used: True\n",
+      "TPU available: False, using: 0 TPU cores\n",
+      "IPU available: False, using: 0 IPUs\n",
+      "HPU available: False, using: 0 HPUs\n",
+      "2023-11-01 13:44:37.819090: I tensorflow/core/util/port.cc:110] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n",
+      "2023-11-01 13:44:37.820282: I tensorflow/tsl/cuda/cudart_stub.cc:28] Could not find cuda drivers on your machine, GPU will not be used.\n",
+      "2023-11-01 13:44:37.844348: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n",
+      "To enable the following instructions: AVX2 AVX_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n",
+      "2023-11-01 13:44:38.255107: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n",
+      "/home/achille-touye/.local/lib/python3.8/site-packages/lightning/pytorch/callbacks/model_checkpoint.py:630: Checkpoint directory ./run/models/ exists and is not empty.\n",
+      "LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]\n",
+      "\n",
+      "  | Name  | Type       | Params\n",
+      "-------------------------------------\n",
+      "0 | model | Sequential | 18.2 K\n",
+      "-------------------------------------\n",
+      "18.2 K    Trainable params\n",
+      "0         Non-trainable params\n",
+      "18.2 K    Total params\n",
+      "0.073     Total estimated model params size (MB)\n"
+     ]
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Sanity Checking: |                                                                                         | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "fe14fc5fbd2645b1a8393a976d762de0",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Training: |                                                                                                | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "`Trainer.fit` stopped: `max_epochs=100` reached.\n"
+     ]
+    }
+   ],
+   "source": [
     "# train model\n",
-    "trainer=pl.Trainer(accelerator='auto',max_epochs=100,logger=logger,callbacks=[savemodel_callback])\n",
-    "trainer.fit(model=model, train_dataloaders=train_loader, val_dataloaders=test_loader)"
+    "trainer = pl.Trainer(accelerator='auto',\n",
+    "                     max_epochs=100,\n",
+    "                     logger=logger,\n",
+    "                     callbacks=[savemodel_callback])\n",
+    "\n",
+    "trainer.fit(model=reg, train_dataloaders=train_loader, val_dataloaders=test_loader)"
    ]
   },
   {
@@ -406,11 +2212,42 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 14,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]\n"
+     ]
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "7b73adbf29284541bbf8c1adbe91b1ae",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "x_test / loss      : 0.4608\n",
+      "x_test / mae       : 0.5277\n",
+      "x_test / mse       : 0.4608\n"
+     ]
+    }
+   ],
    "source": [
-    "score=trainer.validate(model=model, dataloaders=test_loader, verbose=False)\n",
+    "score=trainer.validate(model=reg, dataloaders=test_loader, verbose=False)\n",
     "\n",
     "print('x_test / loss      : {:5.4f}'.format(score[0]['val_loss']))\n",
     "print('x_test / mae       : {:5.4f}'.format(score[0]['val_mae']))\n",
@@ -426,13 +2263,40 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 15,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "\n",
+       "      <iframe id=\"tensorboard-frame-e3a514f888c1c91a\" width=\"100%\" height=\"800\" frameborder=\"0\">\n",
+       "      </iframe>\n",
+       "      <script>\n",
+       "        (function() {\n",
+       "          const frame = document.getElementById(\"tensorboard-frame-e3a514f888c1c91a\");\n",
+       "          const url = new URL(\"/\", window.location);\n",
+       "          const port = 6006;\n",
+       "          if (port) {\n",
+       "            url.port = port;\n",
+       "          }\n",
+       "          frame.src = url;\n",
+       "        })();\n",
+       "      </script>\n",
+       "    "
+      ],
+      "text/plain": [
+       "<IPython.core.display.HTML object>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
    "source": [
     "# launch Tensorboard \n",
     "%reload_ext tensorboard\n",
-    "%tensorboard --logdir=Wine_logs/history_logs/"
+    "%tensorboard --logdir=Wine_logs/reg_logs/"
    ]
   },
   {
@@ -451,13 +2315,31 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 16,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Loaded:\n",
+      "LitRegression(\n",
+      "  (model): Sequential(\n",
+      "    (0): Linear(in_features=11, out_features=128, bias=True)\n",
+      "    (1): ReLU()\n",
+      "    (2): Linear(in_features=128, out_features=128, bias=True)\n",
+      "    (3): ReLU()\n",
+      "    (4): Linear(in_features=128, out_features=1, bias=True)\n",
+      "  )\n",
+      ")\n"
+     ]
+    }
+   ],
    "source": [
-    "loaded_model = model.load_from_checkpoint('./run/models/best_model.ckpt')\n",
+    "# Load the model from a checkpoint\n",
+    "loaded_model = LitRegression.load_from_checkpoint(savemodel_callback.best_model_path)\n",
     "print(\"Loaded:\")\n",
-    "print(loaded_model)\n"
+    "print(loaded_model)"
    ]
   },
   {
@@ -469,9 +2351,40 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 17,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]\n"
+     ]
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "84ebfa2b48fc4d598f7fddcf45b1da88",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Validation: |                                                                                              | 0…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "x_test / loss      : 0.4533\n",
+      "x_test / mae       : 0.5209\n",
+      "x_test / mse       : 0.4533\n"
+     ]
+    }
+   ],
    "source": [
     "score=trainer.validate(model=loaded_model, dataloaders=test_loader, verbose=False)\n",
     "\n",
@@ -489,7 +2402,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 18,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -502,21 +2415,232 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 19,
    "metadata": {},
    "outputs": [],
    "source": [
-    "# ---- Make a predictions\n",
-    "loaded_model.eval()          # Sets the model in evaluation mode.\n",
-    "with torch.no_grad():\n",
-    "    y_pred = loaded_model( x_sample )"
+    "# ---- Make a predictions :\n",
+    "\n",
+    "# Sets the model in evaluation mode.\n",
+    "loaded_model.eval() \n",
+    "\n",
+    "# Perform inference using the loaded model\n",
+    "y_pred = loaded_model( x_sample )"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 20,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Wine    Prediction   Real   Delta\n",
+      "000        5.81       6.0      +0.19 \n",
+      "001        4.93       5.0      +0.07 \n",
+      "002        6.22       7.0      +0.78 \n",
+      "003        5.21       3.0      -2.21 \n",
+      "004        6.46       7.0      +0.54 \n",
+      "005        5.03       5.0      -0.03 \n",
+      "006        6.59       7.0      +0.41 \n",
+      "007        5.86       5.0      -0.86 \n",
+      "008        6.55       7.0      +0.45 \n",
+      "009        6.71       7.0      +0.29 \n",
+      "010        5.65       5.0      -0.65 \n",
+      "011        5.25       5.0      -0.25 \n",
+      "012        6.31       6.0      -0.31 \n",
+      "013        6.94       8.0      +1.06 \n",
+      "014        5.55       5.0      -0.55 \n",
+      "015        5.47       7.0      +1.53 \n",
+      "016        5.49       5.0      -0.49 \n",
+      "017        6.81       8.0      +1.19 \n",
+      "018        5.40       5.0      -0.40 \n",
+      "019        5.86       6.0      +0.14 \n",
+      "020        5.15       6.0      +0.85 \n",
+      "021        4.76       5.0      +0.24 \n",
+      "022        5.34       6.0      +0.66 \n",
+      "023        5.55       7.0      +1.45 \n",
+      "024        6.02       7.0      +0.98 \n",
+      "025        5.92       6.0      +0.08 \n",
+      "026        5.16       5.0      -0.16 \n",
+      "027        4.92       5.0      +0.08 \n",
+      "028        5.68       6.0      +0.32 \n",
+      "029        5.63       5.0      -0.63 \n",
+      "030        5.27       5.0      -0.27 \n",
+      "031        5.93       7.0      +1.07 \n",
+      "032        6.55       7.0      +0.45 \n",
+      "033        5.15       6.0      +0.85 \n",
+      "034        6.94       6.0      -0.94 \n",
+      "035        5.29       5.0      -0.29 \n",
+      "036        5.19       5.0      -0.19 \n",
+      "037        6.97       7.0      +0.03 \n",
+      "038        4.95       5.0      +0.05 \n",
+      "039        5.85       7.0      +1.15 \n",
+      "040        5.84       5.0      -0.84 \n",
+      "041        6.59       7.0      +0.41 \n",
+      "042        5.47       5.0      -0.47 \n",
+      "043        6.31       7.0      +0.69 \n",
+      "044        6.71       7.0      +0.29 \n",
+      "045        5.47       5.0      -0.47 \n",
+      "046        5.14       6.0      +0.86 \n",
+      "047        6.59       7.0      +0.41 \n",
+      "048        4.76       5.0      +0.24 \n",
+      "049        5.28       5.0      -0.28 \n",
+      "050        5.54       6.0      +0.46 \n",
+      "051        5.36       6.0      +0.64 \n",
+      "052        6.44       6.0      -0.44 \n",
+      "053        6.46       4.0      -2.46 \n",
+      "054        6.46       4.0      -2.46 \n",
+      "055        5.14       6.0      +0.86 \n",
+      "056        5.08       5.0      -0.08 \n",
+      "057        5.56       5.0      -0.56 \n",
+      "058        5.57       4.0      -1.57 \n",
+      "059        5.86       6.0      +0.14 \n",
+      "060        5.23       6.0      +0.77 \n",
+      "061        5.18       5.0      -0.18 \n",
+      "062        4.92       5.0      +0.08 \n",
+      "063        5.63       5.0      -0.63 \n",
+      "064        6.49       7.0      +0.51 \n",
+      "065        5.55       5.0      -0.55 \n",
+      "066        6.55       7.0      +0.45 \n",
+      "067        6.94       6.0      -0.94 \n",
+      "068        6.07       6.0      -0.07 \n",
+      "069        6.46       7.0      +0.54 \n",
+      "070        6.02       6.0      -0.02 \n",
+      "071        5.36       6.0      +0.64 \n",
+      "072        6.09       7.0      +0.91 \n",
+      "073        5.81       6.0      +0.19 \n",
+      "074        6.27       6.0      -0.27 \n",
+      "075        4.89       5.0      +0.11 \n",
+      "076        5.48       5.0      -0.48 \n",
+      "077        5.21       5.0      -0.21 \n",
+      "078        6.71       6.0      -0.71 \n",
+      "079        5.68       6.0      +0.32 \n",
+      "080        5.33       5.0      -0.33 \n",
+      "081        5.43       5.0      -0.43 \n",
+      "082        5.23       6.0      +0.77 \n",
+      "083        4.84       5.0      +0.16 \n",
+      "084        6.28       8.0      +1.72 \n",
+      "085        6.32       7.0      +0.68 \n",
+      "086        6.30       7.0      +0.70 \n",
+      "087        6.07       6.0      -0.07 \n",
+      "088        5.91       6.0      +0.09 \n",
+      "089        5.43       5.0      -0.43 \n",
+      "090        5.79       5.0      -0.79 \n",
+      "091        5.27       6.0      +0.73 \n",
+      "092        5.95       6.0      +0.05 \n",
+      "093        6.41       6.0      -0.41 \n",
+      "094        5.04       5.0      -0.04 \n",
+      "095        5.44       6.0      +0.56 \n",
+      "096        5.15       6.0      +0.85 \n",
+      "097        6.39       6.0      -0.39 \n",
+      "098        4.96       5.0      +0.04 \n",
+      "099        5.12       5.0      -0.12 \n",
+      "100        5.89       7.0      +1.11 \n",
+      "101        5.86       6.0      +0.14 \n",
+      "102        5.65       5.0      -0.65 \n",
+      "103        5.32       6.0      +0.68 \n",
+      "104        5.96       5.0      -0.96 \n",
+      "105        4.91       5.0      +0.09 \n",
+      "106        5.22       4.0      -1.22 \n",
+      "107        5.96       7.0      +1.04 \n",
+      "108        6.22       7.0      +0.78 \n",
+      "109        5.96       5.0      -0.96 \n",
+      "110        5.08       5.0      -0.08 \n",
+      "111        5.92       6.0      +0.08 \n",
+      "112        6.06       7.0      +0.94 \n",
+      "113        5.43       5.0      -0.43 \n",
+      "114        5.22       5.0      -0.22 \n",
+      "115        6.08       6.0      -0.08 \n",
+      "116        6.07       7.0      +0.93 \n",
+      "117        5.21       5.0      -0.21 \n",
+      "118        4.75       5.0      +0.25 \n",
+      "119        5.31       6.0      +0.69 \n",
+      "120        6.07       6.0      -0.07 \n",
+      "121        5.58       6.0      +0.42 \n",
+      "122        5.05       5.0      -0.05 \n",
+      "123        5.49       5.0      -0.49 \n",
+      "124        5.36       5.0      -0.36 \n",
+      "125        5.75       7.0      +1.25 \n",
+      "126        5.78       6.0      +0.22 \n",
+      "127        5.94       7.0      +1.06 \n",
+      "128        6.44       6.0      -0.44 \n",
+      "129        5.12       5.0      -0.12 \n",
+      "130        5.46       5.0      -0.46 \n",
+      "131        4.81       6.0      +1.19 \n",
+      "132        5.05       5.0      -0.05 \n",
+      "133        5.01       5.0      -0.01 \n",
+      "134        4.53       6.0      +1.47 \n",
+      "135        5.94       4.0      -1.94 \n",
+      "136        6.04       5.0      -1.04 \n",
+      "137        5.61       5.0      -0.61 \n",
+      "138        5.85       6.0      +0.15 \n",
+      "139        5.01       5.0      -0.01 \n",
+      "140        5.36       6.0      +0.64 \n",
+      "141        5.15       5.0      -0.15 \n",
+      "142        6.26       6.0      -0.26 \n",
+      "143        5.49       5.0      -0.49 \n",
+      "144        4.89       4.0      -0.89 \n",
+      "145        5.58       5.0      -0.58 \n",
+      "146        5.94       4.0      -1.94 \n",
+      "147        6.45       7.0      +0.55 \n",
+      "148        4.60       5.0      +0.40 \n",
+      "149        5.10       5.0      -0.10 \n",
+      "150        5.77       7.0      +1.23 \n",
+      "151        4.86       5.0      +0.14 \n",
+      "152        5.03       5.0      -0.03 \n",
+      "153        6.08       6.0      -0.08 \n",
+      "154        6.35       7.0      +0.65 \n",
+      "155        5.63       5.0      -0.63 \n",
+      "156        5.16       5.0      -0.16 \n",
+      "157        5.40       5.0      -0.40 \n",
+      "158        5.70       6.0      +0.30 \n",
+      "159        5.91       6.0      +0.09 \n",
+      "160        6.31       7.0      +0.69 \n",
+      "161        6.06       6.0      -0.06 \n",
+      "162        5.52       6.0      +0.48 \n",
+      "163        6.73       7.0      +0.27 \n",
+      "164        5.18       5.0      -0.18 \n",
+      "165        5.68       5.0      -0.68 \n",
+      "166        5.56       5.0      -0.56 \n",
+      "167        5.39       5.0      -0.39 \n",
+      "168        5.36       5.0      -0.36 \n",
+      "169        5.36       5.0      -0.36 \n",
+      "170        4.93       5.0      +0.07 \n",
+      "171        6.30       7.0      +0.70 \n",
+      "172        5.49       5.0      -0.49 \n",
+      "173        6.59       7.0      +0.41 \n",
+      "174        5.69       6.0      +0.31 \n",
+      "175        5.29       5.0      -0.29 \n",
+      "176        6.42       6.0      -0.42 \n",
+      "177        6.97       7.0      +0.03 \n",
+      "178        5.56       5.0      -0.56 \n",
+      "179        5.41       5.0      -0.41 \n",
+      "180        6.30       5.0      -1.30 \n",
+      "181        5.57       6.0      +0.43 \n",
+      "182        5.94       7.0      +1.06 \n",
+      "183        5.13       5.0      -0.13 \n",
+      "184        5.19       5.0      -0.19 \n",
+      "185        5.05       5.0      -0.05 \n",
+      "186        5.48       6.0      +0.52 \n",
+      "187        5.23       5.0      -0.23 \n",
+      "188        6.07       7.0      +0.93 \n",
+      "189        5.16       5.0      -0.16 \n",
+      "190        6.31       6.0      -0.31 \n",
+      "191        5.24       5.0      -0.24 \n",
+      "192        6.02       6.0      -0.02 \n",
+      "193        5.03       5.0      -0.03 \n",
+      "194        5.63       5.0      -0.63 \n",
+      "195        5.33       6.0      +0.67 \n",
+      "196        5.43       5.0      -0.43 \n",
+      "197        4.75       5.0      +0.25 \n",
+      "198        5.33       6.0      +0.67 \n",
+      "199        5.42       5.0      -0.42 \n"
+     ]
+    }
+   ],
    "source": [
     "# ---- Show it\n",
     "print('Wine    Prediction   Real   Delta')\n",
@@ -529,9 +2653,25 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 21,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "data": {
+      "text/markdown": [
+       "**End time :** 01/11/23 13:46:01  \n",
+       "**Duration :** 00:01:25 977ms  \n",
+       "This notebook ends here :-)  \n",
+       "[https://fidle.cnrs.fr](https://fidle.cnrs.fr)"
+      ],
+      "text/plain": [
+       "<IPython.core.display.Markdown object>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
    "source": [
     "fidle.end()"
    ]
@@ -541,7 +2681,7 @@
    "metadata": {},
    "source": [
     "---\n",
-    "<img width=\"80px\" src=\"../fidle/img/logo-paysage.svg\"></img>"
+    "<img width=\"80px\" src=\"../fidle/img/00-Fidle-logo-01.svg\"></img>"
    ]
   }
  ],
@@ -561,7 +2701,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.9.2"
+   "version": "3.8.10"
   },
   "vscode": {
    "interpreter": {