{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "bb6984b1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Plot saved successfully as 'training_validation_loss.png'\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA04AAAIjCAYAAAA0vUuxAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAigZJREFUeJzt3Xd8U+Xix/Fv0pG2tGlZXVBkKhsERAER8IIML4r6Uy8qw8UVQa8D1/Uqw3W96lWvA+cVF84ruBAZggNRVIYgiLJXW2R0QOk+vz9CAqFNcpqmSdp+3q9XXjQnT855kj6k55tnHIthGIYAAAAAAB5ZQ10BAAAAAAh3BCcAAAAA8IHgBAAAAAA+EJwAAAAAwAeCEwAAAAD4QHACAAAAAB8ITgAAAADgA8EJAAAAAHwgOAEAAACADwQnAPXC+PHj1bJlS7+eO23aNFkslsBWKMxs27ZNFotFs2bNCvqxLRaLpk2b5ro/a9YsWSwWbdu2zedzW7ZsqfHjxwe0PtVpK4B0rA3/+OOPoa4KgAAiOAEIKYvFYuq2dOnSUFe13rvxxhtlsVi0adMmj2XuvvtuWSwW/fzzz0GsWdXt2bNH06ZN0+rVq0NdFRdneH300UdDXZWw5wwmnm7fffddqKsIoA6KDHUFANRvr7/+utv91157TQsXLqywvUOHDtU6zosvvqjy8nK/nvuPf/xDd955Z7WOXxdcfvnleuqppzR79mzde++9lZZ566231KVLF3Xt2tXv44wZM0Z/+ctfZLPZ/N6HL3v27NH06dPVsmVLde/e3e2x6rQVBNeMGTPUqlWrCtvbtm0bgtoAqOsITgBC6oorrnC7/91332nhwoUVtp+ooKBAcXFxpo8TFRXlV/0kKTIyUpGRfFyefvrpatu2rd56661Kg9Py5cu1detW/fOf/6zWcSIiIhQREVGtfVRHddoKAufw4cNq0KCB1zLDhw9Xr169glQjAPUdQ/UAhL2BAweqc+fO+umnn3TWWWcpLi5Of//73yVJH374oc4991ylp6fLZrOpTZs2uu+++1RWVua2jxPnrRw/LOqFF15QmzZtZLPZdNppp+mHH35we25lc5wsFosmT56suXPnqnPnzrLZbOrUqZPmz59fof5Lly5Vr169FBMTozZt2uj55583PW/q66+/1sUXX6wWLVrIZrMpIyNDN998s44cOVLh9cXHx2v37t0aNWqU4uPj1bRpU02ZMqXCe5GTk6Px48crMTFRSUlJGjdunHJycnzWRXL0Ov36669auXJlhcdmz54ti8Wi0aNHq7i4WPfee6969uypxMRENWjQQP3799eSJUt8HqOyOU6GYej+++9X8+bNFRcXp0GDBumXX36p8NwDBw5oypQp6tKli+Lj42W32zV8+HCtWbPGVWbp0qU67bTTJElXXnmla3iXc35XZXOcDh8+rFtvvVUZGRmy2Ww65ZRT9Oijj8owDLdyVWkX/tq7d6+uvvpqpaSkKCYmRt26ddOrr75aodzbb7+tnj17KiEhQXa7XV26dNGTTz7perykpETTp09Xu3btFBMTo8aNG+vMM8/UwoULvR7f+fv56quv9Ne//lWNGzeW3W7X2LFjdfDgwQrlP/vsM/Xv318NGjRQQkKCzj333Aq/O2f73bx5s0aMGKGEhARdfvnlfr5Dxxz///zxxx/XSSedpNjYWA0YMEDr1q2rUP6LL75w1TUpKUnnn3++NmzYUKHc7t27dfXVV7s+d1q1aqWJEyequLjYrVxRUZFuueUWNW3aVA0aNNAFF1ygP/74o9qvC0Bo8BUqgFph//79Gj58uP7yl7/oiiuuUEpKiiTHSVx8fLxuueUWxcfH64svvtC9996rvLw8PfLIIz73O3v2bOXn5+uvf/2rLBaL/vWvf+nCCy/Uli1bfPY8fPPNN/rggw90/fXXKyEhQf/5z3900UUXaceOHWrcuLEkadWqVRo2bJjS0tI0ffp0lZWVacaMGWratKmp1/3ee++poKBAEydOVOPGjbVixQo99dRT2rVrl9577z23smVlZRo6dKhOP/10Pfroo1q0aJEee+wxtWnTRhMnTpTkCCDnn3++vvnmG1133XXq0KGD5syZo3Hjxpmqz+WXX67p06dr9uzZ6tGjh9ux3333XfXv318tWrTQvn379NJLL2n06NG69tprlZ+fr5dffllDhw7VihUrKgyP8+Xee+/V/fffrxEjRmjEiBFauXKlzjnnnAonqlu2bNHcuXN18cUXq1WrVsrOztbzzz+vAQMGaP369UpPT1eHDh00Y8YM3XvvvZowYYL69+8vSerbt2+lxzYMQ+edd56WLFmiq6++Wt27d9fnn3+u2267Tbt379bjjz/uVt5Mu/DXkSNHNHDgQG3atEmTJ09Wq1at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QLt379b48eMrvL5grUSXnJysIUOG6H//+5+eeeYZffzxx8rPz3ebzP/GG29o/PjxGjVqlG677TYlJycrIiJCDz30kDZv3lxjdXvwwQd1zz336KqrrtJ9992nRo0ayWq16qabbgraEuM13S7MSE5O1urVq/X555/rs88+02effaZXXnlFY8eOdS0kcdZZZ2nz5s368MMPtWDBAr300kt6/PHH9dxzz+maa66pdh2c7/frr7+u1NTUCo+fuFLl8b2FdUU4tAUAgUNwAlBrLV26VPv379cHH3ygs846y7V969atIazVMcnJyYqJian0grHeLiLrtHbtWv3222969dVXNXbsWNd2X6ueeXPSSSdp8eLFOnTokFuv08aNG6u0n8svv1zz58/XZ599ptmzZ8tut2vkyJGux99//321bt1aH3zwgdtQpalTp/pVZ8nRg9G6dWvX9j/++KPCN/fvv/++Bg0apJdfftlte05Ojpo0aeK6b2ZFw+OPv2jRIuXn57v1OjmHgjrrFwwnnXSSfv75Z5WXl7uFjMrqEh0drZEjR2rkyJEqLy/X9ddfr+eff1733HOPq8ezUaNGuvLKK3XllVfq0KFDOuusszRt2jRTwen333936905dOiQMjMzNWLECElyDVdMTk7W4MGDq//iq6Gy4Yi//faba8EH5/tW2f+DX3/9VU2aNFGDBg0UGxsru91e6Yp8AOq+uvXVDoB6xflt7vHf3hYXF+vZZ58NVZXcREREaPDgwZo7d6727Nnj2r5p06ZK52FU9nzJ/fUZhuG2pHRVjRgxQqWlpZo5c6ZrW1lZmZ566qkq7WfUqFGKi4vTs88+q88++0wXXnihYmJivNb9+++/1/Lly6tc58GDBysqKkpPPfWU2/6eeOKJCmUjIiIqfJv/3nvvaffu3W7bnNcHMrMM+4gRI1RWVqann37abfvjjz8ui8Vier5aIIwYMUJZWVluq7KVlpbqqaeeUnx8vGsY5/79+92eZ7VaXRclLioqqrRMfHy82rZt63rclxdeeEElJSWu+zNnzlRpaanr/Rg6dKjsdrsefPBBt3JOwVyWe+7cuW5tYMWKFfr+++9ddU1LS1P37t316quvurWJdevWacGCBa4waLVaNWrUKH388cf68ccfKxyHniSgbqPHCUCt1bdvXzVs2FDjxo3TjTfeKIvFotdffz2sTl6mTZumBQsWqF+/fpo4caLrBLxz585avXq11+e2b99ebdq00ZQpU7R7927Z7Xb973//q9b8iJEjR6pfv3668847tW3bNnXs2FEffPBBlef/xMfHa9SoUa55Tidec+fPf/6zPvjgA11wwQU699xztXXrVj333HPq2LGjDh06VKVjOa9H9dBDD+nPf/6zRowYoVWrVumzzz5z60VyHnfGjBm68sor1bdvX61du1ZvvvmmW0+V5OgNSUpK0nPPPaeEhAQ1aNBAp59+ulq1alXh+CNHjtSgQYN09913a9u2berWrZsWLFigDz/8UDfddJPbQhCBsHjxYhUWFlbYPmrUKE2YMEHPP/+8xo8fr59++kktW7bU+++/r2XLlumJJ55w9Yhdc801OnDggM4++2w1b95c27dv11NPPaXu3bu75kN17NhRAwcOVM+ePdWoUSP9+OOPev/99zV58mRT9SwuLtaf/vQnXXLJJdq4caOeffZZnXnmmTrvvPMkSXa7XTNnztSYMWPUo0cP/eUvf1HTpk21Y8cOffrpp+rXr1+FMFpVn332WaWLwPTt29ftd962bVudeeaZmjhxooqKivTEE0+ocePGuv32211lHnnkEQ0fPlx9+vTR1Vdf7VqOPDExUdOmTXOVe/DBB7VgwQINGDBAEyZMUIcOHZSZman33ntP33zzjZKSkqr1mgCEsVAs5QcAnnhajrxTp06Vll+2bJlxxhlnGLGxsUZ6erpx++23G59//rkhyViyZImrnKflyCtb+lknLI/taTnySZMmVXjuSSed5LY8tmEYxuLFi41TTz3ViI6ONtq0aWO89NJLxq233mrExMR4eBeOWb9+vTF48GAjPj7eaNKkiXHttde6lrc+fintcePGGQ0aNKjw/Mrqvn//fmPMmDGG3W43EhMTjTFjxhirVq0yvRy506effmpIMtLS0iosAV5eXm48+OCDxkknnWTYbDbj1FNPNT755JMKvwfD8L0cuWEYRllZmTF9+nQjLS3NiI2NNQYOHGisW7euwvtdWFho3Hrrra5y/fr1M5YvX24MGDDAGDBggNtxP/zwQ6Njx46upeGdr72yOubn5xs333yzkZ6ebkRFRRnt2rUzHnnkEbelpp2vxWy7OJGzTXq6vf7664ZhGEZ2drZx5ZVXGk2aNDGio6ONLl26VPi9vf/++8Y555xjJCcnG9HR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71aV99CceOxAcQYBp0OHDmnatGn69NNPlZmZqdLSUh05ckQ7duzwup+uXbu6fm7QoIHsdrv27t3rsXxcXJwrNElSWlqaq3xubq6ys7PVu3dv1+MRERHq2bOnysvLq/T6nDZs2KDIyEidfvrprm2NGzfWKaecog0bNkiSbrzxRk2cOFELFizQ4MGDddFFF7le11VXXaVx48Zp1apVOuecczRq1ChXAAs3zHEKshVbD7gNzzuRISkzt1Arth4IXqUAAADChMViUVx0pKlb/3ZNlZYYI09fNVvkmArRv11TU/vztVpeVZy4Ot6UKVM0Z84cPfjgg/r666+1evVqdenSRcXFxV73ExUV5f6aLBavIaey8mbnbtWUa665Rlu2bNGYMWO0du1a9erVS0899ZQkaciQIdq6datuvvlm7dmzR3/60580ZcqUkNbXE4JTkO3N9xya/CkHAABQX0VYLZo6sqMkVQhPzvtTR3YMi1E8y5Yt0/jx43XBBReoS5cuSk1N1bZt24Jah8TERKWkpOiHH4710pWVlWnlypV+77NDhw4qLS3V999/79q2f/9+bdy4UR07dnRty8jI0HXXXacPPvhAt956q1588UXXY02bNtW4ceP0xhtv6IknntALL7zgd31qEkP1giw5ISag5QAAAOqzYZ3TNPOKHhUW3UoNs0W32rVrpw8++EAjR46UxWLRPffc4/fwuOq44YYb9NBDD6lt27Zq3769nnrqKR08eNBUb9vatWuVkJDgum+xWNStWzedf/75uvbaa/X8888rISFBd955p5o1a6bzzz9fknTTTTdp+PDhOvnkk3Xw4EEtWbJEHTp0kOSYt9WnTx916dJFRUVF+uSTT1yPhRuCU5D1btVIaYkxysotrHSek0WO/+hmxuECAADAEZ6GdEzViq0HtDe/UMkJjnOpcOhpcvr3v/+tq666Sn379lWTJk10xx13KC8vL+j1uOOOO5SVlaWxY8cqIiJCEyZM0NChQxUR4Xt+11lnneV2PyIiQqWlpXrllVf0t7/9TX/+859VXFyss846S/PmzXMNGywrK9OkSZO0a9cu2e12DRs2TI8//rgkx7Wo7r77bm3btk2xsbHq37+/3n777cC/8ACwGKEe9BhkeXl5SkxMVG5urux2e40dp6SkRPPmzdOIESMqjDX1tKqe8782q+rVb97aDuAL7Qf+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gL/88ovOPfdcffHFF+rYsaPmzJkjSbrmmmu0ZcsWjRkzRmvXrlWvXr301FNP1VhdJIJTWHD2OP2RR3ACAACoLS655BJZrVbNnj1br732mq666irXfKdly5bp/PPP1xVXXKFu3bqpdevW+u2330zvu0OHDtq5c6cyMzNd27777ju3Mt9++61OOukk3X333erVq5fatWun7du3u5WJjo5WWVmZz2OtWbNGhw8fdm1btmyZrFarTjnlFNN1rgrn6zt+ZcL169crJydHHTt2dG07+eSTdfPNN2vBggW68MIL9corr7gey8jI0HXXXacPPvhAt956q1588cUaqasTwSkMJDuDEz1OAAAA5sU1dlynyZtIm6NcDYiPj9ell16qu+66S5mZmRo/frzrsXbt2mnhwoX69ttvtWHDBv31r391WzHOl8GDB+vkk0/WuHHjtGbNGn399de6++673cq0a9dOO3bs0Ntvv63NmzfrP//5j6tHxqlly5baunWrVq9erX379qmoqOL55uWXX66YmBiNGzdO69at05IlS3TDDTdozJgxrmF6/iorK9Pq1avdbhs2bNDgwYPVpUsXTZgwQStXrtSKFSs0duxYDRgwQL169dKRI0c0efJkLV26VNu3b9eyZcv0ww8/qEOHDpKkm266SZ9//rm2bt2qlStXasmSJa7HagpznMLAsTlOBCcAAADTkjIcF7f1dp2muMYBvfjtia6++mq9/PLLGjFihNt8pH/84x/asmWLhg4dqri4OE2YMEGjRo1Sbm6uqf1arVbNmTNHV199tXr37q2WLVvqP//5j4YNOzan67zzztPNN9+syZMnq6ioSOeee67uueceTZs2zVXmoosu0gcffKBBgwYpJydHr7zyilvAk6S4uDh9/vnn+tvf/qbTTjtNcXFxuuiii/Tvf/+7Wu+N5Fii/dRTT3Xb1qZNG23atElz5szR9ddfr4EDB8pqtWrYsGGu4XYRERHav3+/xo4dq+zsbDVp0kQXXnihpk+fLskRyCZNmqRdu3bJbrdr2LBhevzxx6tdX28shmFywfo6Ii8vT4mJicrNza3yxLmqKCkp0bx58zRixIgK40FP9GtWnoY98bUaNYjWynuG1FidUDtUpe0AJ6L9wF+0Hfirum2nsLBQW7duVatWrRQTE1MDNUS4Ki8vV15enux2u6zWmhsI562NVSUb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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import json\n", "import matplotlib.pyplot as plt\n", "\n", "try:\n", " # Load the trainer state from the JSON file\n", " with open('C:\\cartella_condivisa\\MachineLearning\\HIISlab\\\\accessibility\\\\notebook_miei\\LLM_accessibility_validator\\scripts\\modello_finetunato\\gemma-finetuned-wcag_google_gemma-3-4b-it\\checkpoint-386\\\\trainer_state.json', 'r') as f:\n", " trainer_state = json.load(f)\n", " \n", " # Access the log history\n", " log_history = trainer_state['log_history']\n", " \n", " # Extract training / validation loss\n", " train_losses = [log[\"loss\"] for log in log_history if \"loss\" in log]\n", " epoch_train = [log[\"epoch\"] for log in log_history if \"loss\" in log]\n", " eval_losses = [log[\"eval_loss\"] for log in log_history if \"eval_loss\" in log]\n", " epoch_eval = [log[\"epoch\"] for log in log_history if \"eval_loss\" in log]\n", " \n", " # Plot the training loss\n", " plt.figure(figsize=(10, 6))\n", " plt.plot(epoch_train, train_losses, label=\"Training Loss\", marker='o')\n", " plt.plot(epoch_eval, eval_losses, label=\"Validation Loss\", marker='s')\n", " plt.xlabel(\"Epoch\")\n", " plt.ylabel(\"Loss\")\n", " plt.title(\"Training and Validation Loss per Epoch\")\n", " plt.legend()\n", " plt.grid(True)\n", " plt.savefig(\"training_validation_loss.png\", dpi=300, bbox_inches='tight')\n", " print(\"Plot saved successfully as 'training_validation_loss.png'\")\n", " \n", "except FileNotFoundError:\n", " print(\"Error: trainer_state.json file not found in the current directory\")\n", "except json.JSONDecodeError:\n", " print(\"Error: Invalid JSON format in trainer_state.json\")\n", "except KeyError as e:\n", " print(f\"Error: Missing key in trainer_state.json: {e}\")\n", "except Exception as e:\n", " print(f\"Error plotting loss curves: {e}\")" ] }, { "cell_type": "code", "execution_count": 3, "id": "e1a0fcf2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[2.3849,\n", " 1.8586,\n", " 1.3981,\n", " 0.9627,\n", " 0.5417,\n", " 0.4255,\n", " 0.3821,\n", " 0.2748,\n", " 0.2816,\n", " 0.2828,\n", " 0.3021,\n", " 0.2577,\n", " 0.2615,\n", " 0.2625,\n", " 0.2563,\n", " 0.1982,\n", " 0.2049,\n", " 0.184,\n", " 0.2318,\n", " 0.179,\n", " 0.1723,\n", " 0.206,\n", " 0.1662,\n", " 0.1601,\n", " 0.1844,\n", " 0.1933,\n", " 0.1735,\n", " 0.2075,\n", " 0.1678,\n", " 0.124,\n", " 0.1692,\n", " 0.1691,\n", " 0.1348,\n", " 0.162,\n", " 0.1676,\n", " 0.1481,\n", " 0.2371,\n", " 0.1879,\n", " 0.1574,\n", " 0.1517,\n", " 0.1618,\n", " 0.1406,\n", " 0.1655,\n", " 0.144,\n", " 0.1587,\n", " 0.1951,\n", " 0.0937,\n", " 0.1655,\n", " 0.1462,\n", " 0.1481,\n", " 0.1345,\n", " 0.1589,\n", " 0.1524,\n", " 0.1382,\n", " 0.1297,\n", " 0.1381,\n", " 0.1307,\n", " 0.1307,\n", " 0.1606,\n", " 0.1956,\n", " 0.1129,\n", " 0.1245,\n", " 0.2099,\n", " 0.1413,\n", " 0.114,\n", " 0.1246,\n", " 0.1536,\n", " 0.1429,\n", " 0.1331,\n", " 0.1333,\n", " 0.1333,\n", " 0.1212,\n", " 0.1087,\n", " 0.1107,\n", " 0.1234,\n", " 0.1178,\n", " 0.1044]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "train_losses = [log[\"loss\"] for log in log_history if \"loss\" in log]\n", "train_losses" ] }, { "cell_type": "code", "execution_count": 2, "id": "dfaa416a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[2.3642,\n", " 1.8398,\n", " 1.373,\n", " 0.939,\n", " 0.5372,\n", " 0.4201,\n", " 0.3826,\n", " 0.2763,\n", " 0.2852,\n", " 0.2859,\n", " 0.3063,\n", " 0.2583,\n", " 0.2643,\n", " 0.26,\n", " 0.262,\n", " 0.2012,\n", " 0.2069,\n", " 0.1823,\n", " 0.2331,\n", " 0.1813,\n", " 0.1705,\n", " 0.2069,\n", " 0.1706,\n", " 0.1592,\n", " 0.1857,\n", " 0.1902,\n", " 0.1731,\n", " 0.2095,\n", " 0.1649,\n", " 0.1259,\n", " 0.1698,\n", " 0.1618,\n", " 0.1342,\n", " 0.1661,\n", " 0.1652,\n", " 0.152,\n", " 0.2305,\n", " 0.1884,\n", " 0.1544,\n", " 0.152,\n", " 0.1596,\n", " 0.1406,\n", " 0.1658,\n", " 0.1437,\n", " 0.1578,\n", " 0.1922,\n", " 0.093,\n", " 0.1675,\n", " 0.1467,\n", " 0.1495,\n", " 0.1357,\n", " 0.1595,\n", " 0.1492,\n", " 0.1409,\n", " 0.1276,\n", " 0.1427,\n", " 0.1291,\n", " 0.1308,\n", " 0.1599,\n", " 0.1966,\n", " 0.1123,\n", " 0.124,\n", " 0.2122,\n", " 0.142,\n", " 0.1126,\n", " 0.1276,\n", " 0.1533,\n", " 0.1418,\n", " 0.1328,\n", " 0.1362,\n", " 0.1321,\n", " 0.1236,\n", " 0.108,\n", " 0.1094,\n", " 0.1242,\n", " 0.1162,\n", " 0.1027]" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "train_losses = [log[\"loss\"] for log in log_history if \"loss\" in log]\n", "train_losses" ] } ], "metadata": { "kernelspec": { "display_name": "accessibility", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.19" } }, "nbformat": 4, "nbformat_minor": 5 }