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\" > </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": {