{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# How to train an KAN using the Pipeline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Import classes and define paths" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "0 Warning! Import - NVTX not present!\n", "/home/david/miniconda/envs/pruebasphinx/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", " from .autonotebook import tqdm as notebook_tqdm\n", "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n", "E0000 00:00:1742310863.229104 34093 cuda_dnn.cc:8310] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n", "E0000 00:00:1742310863.234553 34093 cuda_blas.cc:1418] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n" ] } ], "source": [ "from pyLOM import NN\n", "from pathlib import Path\n", "\n", "import torch\n", "\n", "import warnings\n", "warnings.filterwarnings(\"ignore\")" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Folder already exists: /home/david/Desktop/pyLowOrder/docs/source/notebook_examples/NN/results/models\n", "Folder already exists: /home/david/Desktop/pyLowOrder/docs/source/notebook_examples/NN/results/hyperparameters\n", "Folder already exists: /home/david/Desktop/pyLowOrder/docs/source/notebook_examples/NN/results/plots\n" ] } ], "source": [ "DATA_DIR = Path.cwd().parent.parent.parent.parent / \"Testsuite/DATA\"\n", "CASE_DIR = Path.cwd() / \"results\"\n", "\n", "NN.create_results_folder(CASE_DIR / 'models')\n", "NN.create_results_folder(CASE_DIR / 'hyperparameters')\n", "NN.create_results_folder(CASE_DIR / 'plots')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Define scalers if needed\n", "\n", "Here, we create 2 minmax scalers, one for scaling the inputs, and other for the outputs. They will be passed to the dataset and the data will be automatically scaled" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "input_scaler = NN.MinMaxScaler()\n", "output_scaler = NN.MinMaxScaler()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create datasets\n", "For this example, a dataset of airfoils generated with XFoil is used. As inputs, the model will receive the x and y coordinates of a point of the airfoil, the Reynolds number and the angle of attack; and the output will be the cp on that point" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "dataset = NN.Dataset.load(\n", " DATA_DIR / 'AIRFOIL.h5',\n", " field_names=[\"cp\"],\n", " add_mesh_coordinates=True,\n", " variables_names=[\"AoA\", \"Re\"],\n", " inputs_scaler=input_scaler,\n", " outputs_scaler=output_scaler,\n", ")\n", "train_dataset, test_dataset = dataset.get_splits_by_parameters([0.8, 0.2])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "After creating the datasets, we can see the shape of the tensors" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\tTrain dataset length: 27720\n", "\tTest dataset length: 6831\n", "\tX, y train shapes: torch.Size([27720, 4]) torch.Size([27720, 1])\n" ] } ], "source": [ "x, y = train_dataset[:]\n", "print(\"\\tTrain dataset length: \", len(train_dataset))\n", "print(\"\\tTest dataset length: \", len(test_dataset))\n", "print(\"\\tX, y train shapes:\", x.shape, y.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Model creation\n", "\n", "Now, the only thing left is creating the model. For this example we are using a `KAN`" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "training_params = {\n", " \"epochs\": 20,\n", " \"lr\": 1e-5,\n", " 'lr_gamma': 0.95,\n", " 'lr_scheduler_step': 10,\n", " 'batch_size': 8,\n", " \"print_eval_rate\": 1,\n", " \"optimizer_class\": torch.optim.Adam,\n", " \"lr_kwargs\":{\n", " \"gamma\": 0.95,\n", " \"step_size\": 3 * len(train_dataset) // 8 # each 3 epochs\n", " },\n", " \"max_norm_grad\": 0.5,\n", " \"save_logs_path\":str(CASE_DIR),\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can train the model on a GPU to speed up the training. pyLOM can detect if a GPU is available with ´NN.DEVICE´, that will select the fist GPU.\n", "If many GPUs are available, the device can be define with `device = cuda:i` where `i` is the index of the GPU" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "device = NN.DEVICE" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Creating model KAN: kan_example_xfoil\n", "\tinput_size: 4\n", "\toutput_size: 1\n", "\tn_layers: 3\n", "\thidden_size: 31\n", "\tlayer_type: \n", "\tp_dropouts: 0.0\n", "\tdevice: cpu\n", "\ttotal_size (trained params):\t24304\n" ] } ], "source": [ "model = NN.KAN(\n", " input_size=x.shape[1],\n", " output_size=y.shape[1],\n", " hidden_size=31,\n", " n_layers=3,\n", " p_dropouts=0.0,\n", " layer_type=NN.ChebyshevLayer,\n", " model_name=\"kan_example_xfoil\",\n", " device=device,\n", " degree=7\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Run the pipeline" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "TRAINNING MODEL kan_example_xfoil\n", "\n", "Conditions:\n", "\tepochs: 20\n", "\tbatch size: 2**3\n", "\toptimizer class: \n", "\tscheduler: StepLR\n", "\tloss_fn: MSELoss()\n", "\tsave_path: /home/david/Desktop/pyLowOrder/docs/source/notebook_examples/NN/results\n", "\t\n", "Scheduler conditions:\n", "\tgamma: 0.95\n", "\tstep_size: 10395\n", " \n", "Epoch 1/20, Train Loss: 3.2465e-02, Test Loss: 3.6504e-03, LR: 1.00e-05\n", "Epoch 2/20, Train Loss: 2.5051e-03, Test Loss: 1.3975e-03, LR: 1.00e-05\n", "Epoch 3/20, Train Loss: 1.0072e-03, Test Loss: 1.1278e-03, LR: 9.50e-06\n", "Epoch 4/20, Train Loss: 7.0540e-04, Test Loss: 6.6096e-04, LR: 9.50e-06\n", "Epoch 5/20, Train Loss: 5.5156e-04, Test Loss: 6.9895e-04, LR: 9.50e-06\n", "Epoch 6/20, Train Loss: 4.6177e-04, Test Loss: 4.5064e-04, LR: 9.03e-06\n", "Epoch 7/20, Train Loss: 3.9933e-04, Test Loss: 3.9053e-04, LR: 9.03e-06\n", "Epoch 8/20, Train Loss: 3.5597e-04, Test Loss: 3.4745e-04, LR: 9.03e-06\n", "Epoch 9/20, Train Loss: 3.1841e-04, Test Loss: 3.2785e-04, LR: 8.57e-06\n", "Epoch 10/20, Train Loss: 2.9913e-04, Test Loss: 3.3283e-04, LR: 8.57e-06\n", "Epoch 11/20, Train Loss: 2.6019e-04, Test Loss: 2.9614e-04, LR: 8.57e-06\n", "Epoch 12/20, Train Loss: 2.4673e-04, Test Loss: 3.6127e-04, LR: 8.15e-06\n", "Epoch 13/20, Train Loss: 2.2978e-04, Test Loss: 2.6023e-04, LR: 8.15e-06\n", "Epoch 14/20, Train Loss: 2.0308e-04, Test Loss: 2.4842e-04, LR: 8.15e-06\n", "Epoch 15/20, Train Loss: 2.0037e-04, Test Loss: 2.7692e-04, LR: 7.74e-06\n", "Epoch 16/20, Train Loss: 1.8216e-04, Test Loss: 2.7529e-04, LR: 7.74e-06\n", "Epoch 17/20, Train Loss: 1.6976e-04, Test Loss: 1.6500e-04, LR: 7.74e-06\n", "Epoch 18/20, Train Loss: 1.6407e-04, Test Loss: 1.7524e-04, LR: 7.35e-06\n", "Epoch 19/20, Train Loss: 1.5729e-04, Test Loss: 2.3034e-04, LR: 7.35e-06\n", "Epoch 20/20, Train Loss: 1.4926e-04, Test Loss: 1.8573e-04, LR: 7.35e-06\n", "Printing losses on path /home/david/Desktop/pyLowOrder/docs/source/notebook_examples/NN/results\n" ] } ], "source": [ "pipeline = NN.Pipeline(\n", " train_dataset=train_dataset,\n", " test_dataset=test_dataset,\n", " model=model,\n", " training_params=training_params,\n", ")\n", "training_logs = pipeline.run()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To save the model:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "model.save(path=str(CASE_DIR / \"models\"))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Show plots" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "def true_vs_pred_plot(y_true, y_pred):\n", " \"\"\"\n", " Auxiliary function to plot the true vs predicted values\n", " \"\"\"\n", " num_plots = y_true.shape[1]\n", " plt.figure(figsize=(10, 5 * num_plots))\n", " for j in range(num_plots):\n", " plt.subplot(num_plots, 1, j + 1)\n", " plt.scatter(y_true[:, j], y_pred[:, j], s=1, c=\"b\", alpha=0.5)\n", " plt.xlabel(\"True values\")\n", " plt.ylabel(\"Predicted values\")\n", " plt.title(f\"Scatterplot for Component {j+1}\")\n", " plt.grid(True)\n", "\n", " plt.tight_layout()\n", " plt.show()\n", "\n", "def plot_train_test_loss(train_loss, test_loss):\n", " \"\"\"\n", " Auxiliary function to plot the training and test loss\n", " \"\"\"\n", " plt.figure()\n", " plt.plot(range(1, len(train_loss) + 1), train_loss, label=\"Training Loss\")\n", " total_epochs = len(test_loss) # test loss is calculated at the end of each epoch\n", " total_iters = len(train_loss) # train loss is calculated at the end of each iteration/batch\n", " iters_per_epoch = total_iters // total_epochs\n", " plt.plot(np.arange(iters_per_epoch, total_iters+1, step=iters_per_epoch), test_loss, label=\"Test Loss\")\n", " plt.xlabel(\"Iterations\")\n", " plt.ylabel(\"Loss\")\n", " plt.title(\"Training Loss vs Epoch\")\n", " plt.yscale(\"log\")\n", " plt.legend()\n", " plt.grid()\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkIAAAHHCAYAAABTMjf2AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAcARJREFUeJzt3Xd4FOXexvHvbHoPpBJIoUPoIF2KgggoUiyIDaxHjcfji3r0FAGxd4+KvWDvChY6gggi0qV3kkAIgYR00nbn/WPJYoRAEpJskr0/17VXdmdnZn/PbsLePPPMM4ZpmiYiIiIiLsji7AJEREREnEVBSERERFyWgpCIiIi4LAUhERERcVkKQiIiIuKyFIRERETEZSkIiYiIiMtSEBIRERGXpSAkIiIiLktBSMTFTJo0ibi4uCptO23aNAzDqN6CpEGJi4vj0ksvdXYZIhWmICRSRxiGUaHb0qVLnV2qU0yaNAl/f39nl+F0cXFx5f5uDB8+3NnlidQ77s4uQETsPvzwwzKPP/jgAxYuXHjK8vbt25/T67z11lvYbLYqbfvf//6XBx988JxeX85d165duffee09ZHhUV5YRqROo3BSGROuK6664r8/i3335j4cKFpyz/q/z8fHx9fSv8Oh4eHlWqD8Dd3R13d/2z4WxNmzY96++FiFSMDo2J1CODBw+mY8eOrF27loEDB+Lr68u///1vAGbPns0ll1xCVFQUXl5etGzZkkceeQSr1VpmH38dI7R//34Mw+DZZ5/lzTffpGXLlnh5edGzZ09Wr15dZtvTjREyDIO77rqLWbNm0bFjR7y8vOjQoQPz5s07pf6lS5dy3nnn4e3tTcuWLXnjjTeqfdzRl19+SY8ePfDx8SE0NJTrrruOgwcPllknNTWVG2+8kWbNmuHl5UWTJk0YPXo0+/fvd6yzZs0aLr74YkJDQ/Hx8aF58+bcdNNNZ3ztSy+9lBYtWpz2ub59+3Leeec5Hi9cuJDzzz+f4OBg/P39adu2reOzrA6lhxL37t3LxRdfjJ+fH1FRUUyfPh3TNMusm5eXx7333kt0dDReXl60bduWZ5999pT1AD766CN69eqFr68vjRo1YuDAgSxYsOCU9ZYvX06vXr3w9vamRYsWfPDBB9XWNpHqpP/aidQz6enpjBgxgquvvprrrruOiIgIAGbOnIm/vz+TJ0/G39+fn376iSlTppCdnc0zzzxz1v1+8skn5OTk8Le//Q3DMHj66acZN24ce/fuPWsv0vLly/nmm2+48847CQgI4KWXXuLyyy8nKSmJkJAQANavX8/w4cNp0qQJDz/8MFarlenTpxMWFnbub8oJM2fO5MYbb6Rnz5488cQTHD58mP/973+sWLGC9evXExwcDMDll1/Oli1b+Pvf/05cXBxpaWksXLiQpKQkx+Nhw4YRFhbGgw8+SHBwMPv37+ebb7454+uPHz+eG264gdWrV9OzZ0/H8sTERH777TfH57BlyxYuvfRSOnfuzPTp0/Hy8mL37t2sWLGiQu0sLi7m6NGjpyz38/PDx8fH8dhqtTJ8+HD69OnD008/zbx585g6dSolJSVMnz4dANM0ueyyy1iyZAk333wzXbt2Zf78+dx///0cPHiQF154wbG/hx9+mGnTptGvXz+mT5+Op6cnq1at4qeffmLYsGGO9Xbv3s0VV1zBzTffzMSJE3n33XeZNGkSPXr0oEOHDhVqo0itMUWkTkpISDD/+ic6aNAgEzBff/31U9bPz88/Zdnf/vY309fX1ywoKHAsmzhxohkbG+t4vG/fPhMwQ0JCzIyMDMfy2bNnm4D5/fffO5ZNnTr1lJoA09PT09y9e7dj2caNG03AfPnllx3LRo0aZfr6+poHDx50LNu1a5fp7u5+yj5PZ+LEiaafn1+5zxcVFZnh4eFmx44dzePHjzuW//DDDyZgTpkyxTRN0zx27JgJmM8880y5+/r2229NwFy9evVZ6/qzrKws08vLy7z33nvLLH/66adNwzDMxMRE0zRN84UXXjAB88iRI5Xav2maZmxsrAmc9vbEE0841ps4caIJmH//+98dy2w2m3nJJZeYnp6ejteeNWuWCZiPPvpomde54oorTMMwHJ/rrl27TIvFYo4dO9a0Wq1l1rXZbKfUt2zZMseytLS0074vInWBDo2J1DNeXl7ceOONpyz/c09ATk4OR48eZcCAAeTn57N9+/az7nf8+PE0atTI8XjAgAEA7N2796zbDh06lJYtWzoed+7cmcDAQMe2VquVRYsWMWbMmDIDelu1asWIESPOuv+KWLNmDWlpadx55514e3s7ll9yySW0a9eOH3/8EbC/T56enixdupRjx46ddl+lPUc//PADxcXFFa4hMDCQESNG8MUXX5Q5rPT555/T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JgKwatUqIiMjee+99xg+fDhubm5VquF///sfzz33HG+88QbdunXj3Xff5bLLLmPLli20bt36tDUkJycD8PXXX/PCCy/w2Wef0aFDB1JTU9m4ceM5vSd1jYJQHdA8xJdlaC4hEZHTKs4neIYTLgL67xTw9DunXUydOpXnnnuOcePGAdC8eXO2bt3KG2+8wcSJE0lKSqJ169acf/75GIZBbGws/fr1Izs7m7CwMACCg4OJjIyscg3PPvssDzzwAFdffTUATz31FEuWLOHFF19kxowZp62hVFJSEpGRkQwdOhQPDw9iYmLo1avXObwjdY8OjdUBJ88c0yn0IiINRV5eHnv27OHmm2/G39/fcXv00UfZs2cPAJMmTWLDhg20bduWu+++mwULFlRrDdnZ2aSkpNC/f/8yy/v378+2bdvOWsOVV17J8ePHadGiBbfeeivffvstJSUN65JQ6hGqA5qH2QfSaYyQiMhpePiSmbCNwIAALLV9aOwc5Oba/3P71ltv0bt37zLPlR7m6t69O/v27WPu3LksWrSIq666iiFDhvDOO++c02tXxulqGDp0KF999RXR0dHs2LGDRYsWsXDhQu68806eeeYZfv75Zzw8PGqtxpqkIFQHlJ5Cvz89H6vNxM1ybsekRUQaFMOwhxJPv9odI3SOIiIiiIqKYu/evVx77bXlrhcYGMj48eMZP348V1xxBcOHD+fZZ58lMDAQDw8PrFZrlWsIDAwkKiqKFStWMGjQIMfyFStWlDnEdboaMjIyaNy4MT4+PowaNYpRo0aRkJBAu3bt2LRpE927d69yXXWJglAdEBXsg6ebhaISGymZx4lufG7/CxERkbrh4Ycf5u677yYoKIjhw4dTWFjImjVrOHbsGJMnT+b555+nSZMmdOvWDYvFwpdffuk4+wwgLi6OxYsX079/f7y8vGjUqFG5r7Vv3z42bNhQZlnr1q25//77mTp1Ki1btqRr16689957bNiwgY8//hig3BqCg4OZOXMmVquV3r174+vry0cffYSPj0+ZcUT1nYJQHeBmMYgN8WVXWi77juYpCImINBC33HILvr6+PPPMM9x///34+fnRqVMn7rnnHgACAgJ4+umn2bVrF25ubvTs2ZMffvjBcQjwueeeY/Lkybz11ls0bdqU/fv3l/takydPPmXZL7/8wt13301WVhb33nsvaWlp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EhISCAkJwd/fn8svv5zDhw+fcb9V/VuvKAUhF/Dzzz+TkJDAb7/9xsKFCykuLmbYsGHk5eWdcbvAwEAOHTrkuCUmJtZSxeemQ4cOZepevnx5uev++uuvTJgwgZtvvpn169czZswYxowZw+bNm2ux4qpbvXp1mbYuXLgQgCuvvLLcberL55qXl0eXLl2YMWPGaZ9/+umneemll3j99ddZtWoVfn5+XHzxxRQUFJS7z88//5zJkyczdepU1q1bR5cuXbj44otJS0urqWZUyJnamp+fz7p163jooYdYt24d33zzDTt27OCyyy47634r87dQm8722QIMHz68TO2ffvrpGfdZHz9boEwbDx06xLvvvothGFx++eVn3G9d/Gwr8l3zf//3f3z//fd8+eWX/Pzzz6SkpDBu3Lgz7rcqf+uVYorLSUtLMwHz559/Lned9957zwwKCqq9oqrJ1KlTzS5dulR4/auuusq85JJLyizr3bu3+be//a2aK6sd//jHP8yWLVuaNpvttM/X188VML/99lvHY5vNZkZGRprPPPOMY1lmZqbp5eVlfvrpp+Xup1evXmZCQoLjsdVqNaOioswnnniiRuquir+29XR+//13EzATExPLXaeyfwvOcrr2Tpw40Rw9enSl9tNQPtvRo0ebF1544RnXqS+f7V+/azIzM00PDw/zyy+/dKyzbds2EzBXrlx52n1U9W+9MtQj5IKysrIAaNy48RnXy83NJTY2lujoaEaPHs2WLVtqo7xztmvXLqKiomjRogXXXnstSUlJ5a67cuVKhg4dWmbZxRdfzMqVK2u6zGpXVFTERx99xE033XTGCwTX18/1z/bt20dqamqZzy4oKIjevXuX+9kVFRWxdu3aMttYLBaGDh1a7z7vrKwsDMMgODj4jOtV5m+hrlm6dCnh4eG0bduWO+64g/T09HLXbSif7eHDh/nxxx+5+eabz7puffhs//pds3btWoqLi8t8Tu3atSMmJqbcz6kqf+uVpSDkYmw2G/fccw/9+/enY8eO5a7Xtm1b3n33XWbPns1HH32EzWajX79+HDhwoBarrbzevXszc+ZM5s2bx2uvvca+ffsYMGAAOTk5p10/NTWViIiIMssiIiJITU2tjXKr1axZs8jMzGTSpEnlrlNfP9e/Kv18KvPZHT16FKvVWu8/74KCAh544AEmTJhwxotUVvZvoS4ZPnw4H3zwAYsXL+app57i559/ZsSIEVit1tOu31A+2/fff5+AgICzHiqqD5/t6b5rUlNT8fT0PCXAn+lzqsrfemXp6vMuJiEhgc2bN5/1eHLfvn3p27ev43G/fv1o3749b7zxBo888khNl1llI0aMcNzv3LkzvXv3JjY2li+++KJC/8uqz9555x1GjBhBVFRUuevU189V7IqLi7nqqqswTZPXXnvtjOvW57+Fq6++2nG/U6dOdO7cmZYtW7J06VKGDBnixMpq1rvvvsu111571hMY6sNnW9HvmrpAPUIu5K677uKHH35gyZIlNGvWrFLbenh40K1bN3bv3l1D1dWM4OBg2rRpU27dkZGRp5yxcPjwYSIjI2ujvGqTmJjIokWLuOWWWyq1XX39XEs/n8p8dqGhobi5udXbz7s0BCUmJrJw4cIz9gadztn+FuqyFi1aEBoaWm7t9f2zBfjll1/YsWNHpf+Goe59tuV910RGRlJUVERmZmaZ9c/0OVXlb72yFIRcgGma3HXXXXz77bf89NNPNG/evNL7sFqtbNq0iSZNmtRAhTUnNzeXPXv2lFt33759Wbx4cZllCxcuLNNrUh+89957hIeHc8kll1Rqu/r6uTZv3pzIyMgyn112djarVq0q97Pz9PSkR48eZbax2WwsXry4zn/epSFo165dLFq0iJCQkErv42x/C3XZgQMHSE9PL7f2+vzZlnrnnXfo0aMHXbp0qfS2deWzPdt3TY8ePfDw8CjzOe3YsYOkpKRyP6eq/K1XpXBp4O644w4zKCjIXLp0qXno0CHHLT8/37HO9ddfbz744IOOxw8//LA5f/58c8+ePebatWvNq6++2vT29ja3bNnijCZU2L333msuXbrU3Ldvn7lixQpz6NChZmhoqJmWlmaa5qntXLFihenu7m4+++yz5rZt28ypU6eaHh4e5qZNm5zVhEqzWq1mTEyM+cADD5zyXH3+XHNycsz169eb69evNwHz+eefN9evX+84U+rJJ580g4ODzdmzZ5t//PGHOXr0aLN58+bm8ePHHfu48MILzZdfftnx+LPPPjO9vLzMmTNnmlu3bjVvu+02Mzg42ExNTa319v3ZmdpaVFRkXnbZZWazZs3MDRs2lPkbLiwsdOzjr20929+CM52pvTk5OeZ9991nrly50ty3b5+5aNEis3v37mbr1q3NgoICxz4awmdbKisry/T19TVfe+210+6jvny2Ffmuuf32282YmBjzp59+MtesWWP27dvX7Nu3b5n9tG3b1vzmm28cjyvyt34uFIRcAHDa23vvvedYZ9CgQebEiRMdj++55x4zJibG9PT0NCMiIsyRI0ea69atq/3iK2n8+PFmkyZNTE9PT7Np06bm+PHjzd27dzue/2s7TdM0v/jiC7NNmzamp6en2aFDB/PHH3+s5arPzfz5803A3LFjxynP1efPdcmSJaf9vS1tj81mMx966CEzIiLC9PLyMocMGXLKexAbG2tOnTq1zLKXX37Z8R706tXL/O2332qpReU7U1v37dtX7t/wkiVLHPv4a1vP9rfgTGdqb35+vjls2DAzLCzM9PDwMGNjY81bb731lEDTED7bUm+88Ybp4+NjZmZmnnYf9eWzrch3zfHjx80777zTbNSokenr62uOHTvWPHTo0Cn7+fM2FflbPxfGiRcVERERcTkaIyQiIiIuS0FIREREXJaCkIiIiLgsBSERERFxWQpCIiIi4rIUhERERMRlKQiJiIiIy1IQEhH5i7i4OF588UVnlyEitUBBSEScatKkSYwZMwaAwYMHc88999Taa8+cOZPg4OBTlq9evZrbbrut1uoQEedxd3YBIiLVraioCE9PzypvHxYWVo3ViEhdph4hEakTJk2axM8//8z//vc/DMPAMAz2798PwObNmxkxYgT+/v5ERERw/fXXc/ToUce2gwcP5q677uKee+4hNDSUiy++GIDnn3+eTp064efnR3R0NHfeeSe5ubkALF26lBtvvJGsrCzH602bNg049dBYUlISo0ePxt/fn8DAQK666ioOHz7seH7atGl07dqVDz/8kLi4OIKCgrj66qvJyclxrPPVV1/RqVMnfHx8CAkJYejQoeTl5dXQuykiFaUgJCJ1wv/+9z/69u3LrbfeyqFDhzh06BDR0dFkZmZy4YUX0q1bN9asWcO8efM4fPgwV111VZnt33//fTw9PVmxYgWvv/46ABaLhZdeeoktW7bw/vvv89NPP/HPf/4TgH79+vHiiy8SGBjoeL377rvvlLpsNhujR48mIyODn3/+mYULF7J3717Gjx9fZr09e/Ywa9YsfvjhB3744Qd+/vlnnnzySQAOHTrEhAkTuOmmm9i2bRtLly5l3Lhx6FKPIs6nQ2MiUicEBQXh6emJr68vkZGRjuWvvPIK3bp14/HHH3cse/fdd4mOjmbnzp20adMGgNatW/P000+X2eefxxvFxcXx6KOPcvvtt/Pqq6/i6elJUFAQhmGUeb2/Wrx4MZs2bWLfvn1ER0cD8MEHH9ChQwdWr15Nz549AXtgmjlzJgEBAQBcf/31LF68mMcee4xDhw5RUlLCuHHjiI2NBaBTp07n8G6JSHVRj5CI1GkbN25kyZIl+Pv7O27t2rUD7L0wpXr06HHKtosWLWLIkCE0bdqUgIAArr/+etLT08nPz6/w62/bto3o6GhHCAKIj48nODiYbdu2OZbFxcU5QhBAkyZNSEtLA6BLly4MGTKETp06ceWVV/LWW29x7Nixir8JIlJjFIREpE7Lzc1l1KhRbNiwocxt165dDBw40LGen59fme3279/PpZdeSufOnfn6669Zu3YtM2bMAOyDqaubh4dHmceGYWCz2QBwc3Nj4cKFzJ07l/j4eF5++WXatm3Lvn37qr0OEakcBSERqTM8PT2xWq1llnXv3p0tW7YQFxdHq1atytz+Gn7+bO3atdhsNp577jn69OlDmzZtSElJOevr/VX79u1JTk4mOTnZsWzr1q1kZmYSHx9f4bYZhkH//v15+OGHWb9+PZ6ennz77bcV3l5EaoaCkIjUGXFxcaxatYr9+/dz9OhRbDYbCQkJZGRkMGHCBFavXs2ePXuYP38+N9544xlDTKtWrSguLubll19m7969fPjhh45B1H9+vdzcXBYvXszRo0dPe8hs6NChdOrUiWuvvZZ169bx+++/c8MNNzBo0CDOO++8CrVr1apVPP7446xZs4akpCS++eYbjhw5Qvv27Sv3BolItVMQEpE647777sPNzY34+HjCwsJISkoiKiqKFStWYLVaGTZsGJ06deKee+4hODgYi6X8f8K6dOnC888/z1NPPUXHjh35+OOPeeKJJ8qs069fP26//XbGjx9PWFjYKYOtwd6TM3v2bBo1asTAgQMZOnQoLVq04PPPP69wuwIDA1m2bBkjR46kTZs2/Pe//+W5555jxIgRFX9zRKRGGKbO3xQREREXpR4hERERcVkKQiIiIuKyFIRERETEZSkIiYiIiMtSEBIRERGXpSAkIiIiLktBSERERFyWgpCIiIi4LAUhERERcVkKQiIiIuKyFIRERETEZSkIiYiIiMv6f2IowEMVV2ZjAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_train_test_loss(training_logs['train_loss'], training_logs['test_loss'])" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAoE1JREFUeJzs3Xl8lOW5//FvEpKQAAFkDQRZRUUj0gRBqgJGRIS2ti6ngCUutbUL1upRaBUXcAP8tVR7WrStNrTCUauVVkTFsLQqKkGKKIuCCA6EBFR2CCGZ3x/XeTLPTGaSmckMmYTP+/XKK5lnnnnmnsnU8s1139ed5PV6vQIAAAAAADGX3NgDAAAAAACguSJ0AwAAAAAQJ4RuAAAAAADihNANAAAAAECcELoBAAAAAIgTQjcAAAAAAHFC6AYAAAAAIE4I3QAAAAAAxAmhGwAAAACAOCF0AwBwAiUlJem+++47Ic/16quv6txzz1XLli2VlJSkvXv3npDnBQAAPoRuAEBcrFu3TldddZV69uypli1bqnv37ho1apQef/zxuD3n/PnzNWfOnFrHd+7cqfvuu0//+c9/4vbc8bZ+/Xrdd999+uyzz8I6/4svvtA111yjjIwM/c///I/+8pe/qFWrVvEdpKQtW7bohz/8ofr06aOWLVsqKytLX//61/Wb3/xGR44cifvzN3ehPuOhvP7667rxxht19tlnKyUlRb169Yrb2AAAwbVo7AEAAJqft99+WyNHjtSpp56qm266SV27dtXnn3+ud955R7/5zW80efLkuDzv/Pnz9eGHH+rWW2/1O75z507df//96tWrl84999y4PHe8rV+/Xvfff79GjBgRVnBatWqVDhw4oBkzZuiSSy6J/wAlLVq0SFdffbXS09M1adIknX322Tp27JjefPNN3XHHHfroo4/05JNPnpCxNFehPuN1nf/ss8/qa1/7mrp16xbfwQEAgiJ0AwBi7sEHH1Tbtm21atUqtWvXzu++8vLyxhlUHBw6dOiEVI+j4bzPge9/Q9T1erdu3arvfve76tmzp5YuXars7Oya+37yk59o8+bNWrRoUczGgvA89NBD+sMf/qDU1FSNGzdOH374YWMPCQBOOkwvBwDE3JYtW3TWWWcFDXydO3eudeyvf/2rzjvvPGVmZqp9+/a66KKL9Prrr9fcv3DhQo0dO1bdunVTenq6+vbtqxkzZqiqqqrmnBEjRmjRokXatm2bkpKSlJSUpF69emn58uUaPHiwJOn666+vue/Pf/5zzWPfffddXXbZZWrbtq0yMzM1fPhwvfXWW35jvO+++5SUlKT169drwoQJat++vS644AJJ0nXXXafWrVvr008/1ejRo9WqVSt169ZN06dPl9frrff9WrNmjcaMGaOsrCy1bt1aBQUFeuedd2ru//Of/6yrr75akjRy5Mia17B8+fKg1xsxYoQKCwslSYMHD1ZSUpKuu+66mvuff/555eXlKSMjQx07dtS1116rHTt2+F3DeU1btmzR5ZdfrjZt2mjixIkhX8OsWbN08OBB/elPf/IL3I5+/frpZz/7Wc3t48ePa8aMGerbt6/S09PVq1cv/fKXv1RFRYXf43r16qVx48Zp+fLlys/PV0ZGhnJzc2te+4svvqjc3Fy1bNlSeXl5WrNmTdDXEc7v5tChQ7r99tvVo0cPpaen6/TTT9ejjz5a67ykpCT99Kc/1UsvvaSzzz5b6enpOuuss/Tqq6/Wet07duzQDTfcoC5dutSc99RTT/mds3z5ciUlJem5557Tgw8+qJycHLVs2VIFBQXavHlzzXmhPuN16datm1JTU+s8BwAQX1S6AQAx17NnT61cuVIffvihzj777DrPvf/++3Xfffdp2LBhmj59utLS0vTuu+9q6dKluvTSSyVZ6GzdurVuu+02tW7dWkuXLtU999yj/fv3a/bs2ZKku+66S/v27ZPH49Gvf/1rSVLr1q115plnavr06brnnnv0gx/8QBdeeKEkadiwYZKkpUuXasyYMcrLy9O9996r5ORkPf3007r44ov173//W+edd57feK+++mqddtppeuihh/zCWFVVlS677DINHTpUs2bN0quvvqp7771Xx48f1/Tp00O+/o8++kgXXnihsrKydOeddyo1NVVPPPGERowYoRUrVmjIkCG66KKLdMstt+ixxx7TL3/5S5155pmSVPM90F133aXTTz9dTz75pKZPn67evXurb9++Ne/l9ddfr8GDB+vhhx9WWVmZfvOb3+itt97SmjVr/P5Qcvz4cY0ePVoXXHCBHn30UWVmZoZ8Hf/85z/Vp0+fmve1Pt///vdVVFSkq666SrfffrveffddPfzww9qwYYP+/ve/+527efNmTZgwQT/84Q917bXX6tFHH9U3vvENzZ07V7/85S/14x//WJL08MMP65prrtGmTZuUnOyrK4Tzu/F6vfrmN7+pZcuW6cYbb9S5556r1157TXfccYd27NhR85lyvPnmm3rxxRf14x//WG3atNFjjz2mK6+8Utu3b1eHDh0kSWVlZRo6dGhNSO/UqZMWL16sG2+8Ufv37681RfyRRx5RcnKy/vu//1v79u3TrFmzNHHiRL377rs1v9dgn3EAQILzAgAQY6+//ro3JSXFm5KS4j3//PO9d955p/e1117zHjt2zO+8Tz75xJucnOz99re/7a2qqvK7r7q6uubnw4cP13qOH/7wh97MzEzv0aNHa46NHTvW27Nnz1rnrlq1yivJ+/TTT9d6jtNOO807evToWs/Xu3dv76hRo2qO3XvvvV5J3vHjx9e6fmFhoVeSd/LkyX7XHjt2rDctLc27e/fumuOSvPfee2/N7SuuuMKblpbm3bJlS82xnTt3etu0aeO96KKLao49//zzXkneZcuW1Xr+YJ5++mmvJO+qVatqjh07dszbuXNn79lnn+09cuRIzfGXX37ZK8l7zz331HpNU6dOrfe59u3b55Xk/da3vhXW2P7zn/94JXm///3v+x3/7//+b68k79KlS2uO9ezZ0yvJ+/bbb9cce+2117ySvBkZGd5t27bVHH/iiSdqvUfh/m5eeuklryTvAw884Demq666ypuUlOTdvHlzzTFJ3rS0NL9ja9eu9UryPv744zXHbrzxRm92drZ3z549ftf87ne/623btm3N53rZsmVeSd4zzzzTW1FRUXPeb37zG68k77p162qOhfqMh6MhjwUARI/p5QCAmBs1apRWrlypb37zm1q7dq1mzZql0aNHq3v37vrHP/5Rc95LL72k6upq3XPPPX6VScmm8DoyMjJqfj5w4ID27NmjCy+8UIcPH9bGjRujHud//vMfffLJJ5owYYK++OIL7dmzR3v27NGhQ4dUUFCgf/3rX6qurvZ7zM033xzyej/96U/9xv/Tn/5Ux44d0xtvvBH0/KqqKr3++uu64oor1KdPn5rj2dnZmjBhgt58803t378/6tcXqKSkROXl5frxj3+sli1b1hwfO3aszjjjjKBrrn/0ox/Ve11njG3atAlrHK+88ook6bbbbvM7fvvtt0tSrXEMGDBA559/fs3tIUOGSJIuvvhinXrqqbWOf/rpp7Wes77fzSuvvKKUlBTdcssttcbk9Xq1ePFiv+OXXHJJzewBSTrnnHOUlZVV89xer1cvvPCCvvGNb8jr9dZ8tvbs2aPRo0dr3759ev/99/2uef311ystLa3mtjMrI9jrAQA0HUwvBwDExeDBg/Xiiy/q2LFjWrt2rf7+97/r17/+ta666ir95z//0YABA7RlyxYlJydrwIABdV7ro48+0t13362lS5fWCqH79u2LeoyffPKJJNWsfw5m3759at++fc3t3r17Bz0vOTnZLzhLUv/+/SUp5DZfu3fv1uHDh3X66afXuu/MM89UdXW1Pv/8c5111ll1vo5wbdu2TZKCPt8ZZ5yhN9980+9YixYtlJOTU+91s7KyJNkfRMIdR3Jysvr16+d3vGvXrmrXrl3NOB3uYC1Jbdu2lST16NEj6PGvvvrK73g4v5tt27apW7dutf5w4Ezhr29MktS+ffua5969e7f27t2rJ598MmTH9sCmgoHXdD53ga8HANC0ELoBAHGVlpamwYMHa/Dgwerfv7+uv/56Pf/887r33nvDevzevXs1fPhwZWVlafr06erbt69atmyp999/X1OmTKlViY6E89jZs2eH3EoscM2su+re3KWnp9eagRBMVlaWunXrFnFnbPdshrqkpKREdNwbRvO6hqrvuZ3P1rXXXhvyjzrnnHNORNcEADRNhG4AwAmTn58vSSotLZUk9e3bV9XV1Vq/fn3I0Lt8+XJ98cUXevHFF3XRRRfVHN+6dWutc0OFuFDHnenBWVlZDd7Lurq6Wp9++mlNBVWSPv74Y0kK2WG6U6dOyszM1KZNm2rdt3HjRiUnJ9dUc8MNqHXp2bOnJGnTpk26+OKL/e7btGlTzf3RGDdunJ588kmtXLnSbyp4qHFUV1frk08+8WsGV1ZWpr179zZoHMGE87vp2bOn3njjDR04cMCv2u0sX4h0TJ06dVKbNm1UVVUV033SY/E5AACcWKzpBgDE3LJly4JW55y1vM705iuuuELJycmaPn16rYq183in+ue+3rFjx/S73/2u1vVbtWoVdLq5s7f03r17/Y7n5eWpb9++evTRR3Xw4MFaj9u9e3fI1xjMb3/7W7/x//a3v1VqaqoKCgqCnp+SkqJLL71UCxcu9JuCXlZWpvnz5+uCCy6ombod6jVEIj8/X507d9bcuXP9tuZavHixNmzYoLFjx0Z97TvvvFOtWrXS97//fZWVldW6f8uWLfrNb34jSbr88sslSXPmzPE751e/+pUkNWgcodT3u7n88stVVVXld54k/frXv1ZSUpLGjBkT0fOlpKToyiuv1AsvvBB0BkCkny1HqM84ACBxUekGAMTc5MmTdfjwYX3729/WGWecoWPHjuntt9/Ws88+q169eun666+XZHs333XXXZoxY4YuvPBCfec731F6erpWrVqlbt266eGHH9awYcPUvn17FRYW6pZbblFSUpL+8pe/BA31eXl5evbZZ3Xbbbdp8ODBat26tb7xjW+ob9++ateunebOnas2bdqoVatWGjJkiHr37q0//vGPGjNmjM466yxdf/316t69u3bs2KFly5YpKytL//znP8N6zS1bttSrr76qwsJCDRkyRIsXL9aiRYv0y1/+Up06dQr5uAceeEBLlizRBRdcoB//+Mdq0aKFnnjiCVVUVGjWrFk155177rlKSUnRzJkztW/fPqWnp+viiy8Ouu95KKmpqZo5c6auv/56DR8+XOPHj6/ZMqxXr176+c9/Hva1AvXt21fz58/Xf/3Xf+nMM8/UpEmTdPbZZ9f87p9//vmavcIHDhyowsJCPfnkkzXLB9577z0VFRXpiiuu0MiRI6MeRzDh/G6+8Y1vaOTIkbrrrrv02WefaeDAgXr99de1cOFC3XrrrX5N08L1yCOPaNmyZRoyZIhuuukmDRgwQF9++aXef/99vfHGG/ryyy8jvmaoz3goH3zwQU3zws2bN2vfvn164IEHJNnvoa7HAgBipHGapgMAmrPFixd7b7jhBu8ZZ5zhbd26tTctLc3br18/7+TJk71lZWW1zn/qqae8gwYN8qanp3vbt2/vHT58uHfJkiU197/11lveoUOHejMyMrzdunWr2YJMAdtDHTx40DthwgRvu3btvJL8tkdauHChd8CAAd4WLVrU2j5szZo13u985zveDh06eNPT0709e/b0XnPNNd7i4uKac5wtw9zbfzkKCwu9rVq18m7ZssV76aWXejMzM71dunTx3nvvvbW2QlPAlmFer9f7/vvve0ePHu1t3bq1NzMz0zty5Ei/LbIcf/jDH7x9+vTxpqSk1Lt9WLAtwxzPPvtszft9yimneCdOnOj1eDxBX1OkPv74Y+9NN93k7dWrlzctLc3bpk0b79e//nXv448/7re9W2Vlpff+++/39u7d25uamurt0aOH9xe/+IXfOV6vbRk2duzYWs8jyfuTn/zE79jWrVu9kryzZ8+u9TrC+d0cOHDA+/Of/9zbrVs3b2pqqve0007zzp492287uVDP7Yy1sLDQ71hZWZn3Jz/5ibdHjx7e1NRUb9euXb0FBQXeJ598suYcZ8uw559/PujrcX9W6/qMB+N8DoJ9BY4VABAfSV4v3TkAAGiI6667Tn/729+CTlFH4+J3AwBobKzpBgAAAAAgTgjdAAAAAADECaEbAAAAAIA4YU03AAAAAABxQqUbAAAAAIA4IXQDAAAAABAnLRp7AImmurpaO3fuVJs2bZSUlNTYwwEAAAAAJCCv16sDBw6oW7duSk4OXc8mdAfYuXOnevTo0djDAAAAAAA0AZ9//rlycnJC3k/oDtCmTRtJ9sZlZWU18miavsrKSr3++uu69NJLlZqa2tjDQRPCZwfR4rODaPHZQTT43CBafHaavv3796tHjx41GTIUQncAZ0p5VlYWoTsGKisrlZmZqaysLP5jgojw2UG0+OwgWnx2EA0+N4gWn53mo75lyTRSAwAAAAAgTgjdAAAAAADECaEbAAAAAIA4IXQDAAAAABAnhG4AAAAAAOKE0A0AAAAAQJwQugEAAAAAiBNCNwAAAAAAcULoBgAAAAAgTgjdAAAAAADECaEbAAAAAIA4IXQDAAAAABAnhG4AAAAAAOKE0A0AAAAAQJwQugEAAAAAiBNCNwAAAADghCkpkWbOtO8nA0I3AAAAAKCWeIXj4mJp8WL7fjJo0dgDAAAAAAAkHiccS1J+fuyuW1Dg/725I3QDAAAAAGqJVzjOz49tiE90hG4AAAAAQC2NFY5LSqzKXlDQPMI5oRsAAAAA0Ojuv1/61a+k/ft9x664Qvr73xttSDFB6AYAAAAANJr775cefFCqrKx930svnfDhxByhGwAAAABwwn3729I//iFVVzf2SOKL0A0AAAAAiJvANdp5edL77zf2qE4cQjcAAAAAICbcAVuyn1evlpYtk6ZNCz6FvLkjdAMAAAAAYsK9t7fHI/3v/0p79jTumBoboRsAAAAAEBPZ2dKxY9K8edL69Q2/Xmpqw6/R2AjdAAAAAIAGmzdPuvNOqawsdtesqordtRoLoRsAAAAAELaSEmnWLF8ztF69pE8/lbZujf1zpaXF/ponGqEbAAAAAFAnd4O0WbOkF17wbfW1ZUv8njc3N37XPlEI3QAAAACAoJyw7fFI69ZZ2F69+sTtrZ2VdWKeJ54I3QAAAABwEgjcLzucc52wnZsrde4sPf987MaTlCR5vbWPJyfbd683tuvDGwuhGwAAAABOAs52Xh5P3eG7pMT21N6wQTp6VDp8WFqxIjZjSEmx5mgpKdLpp0tffFE7WHfqJJ16qrR5s3TmmbF53sZE6AYAAACAk0BBgX1fvVpatMjCtzt0l5RIRUXS8uXSpk1SZWVsnz8lRWrXzkJ8jx5S27bSjh3S2WdLu3fbV3KydNFF1gXd+cNAU0foBgAAAIA4i2Rqd7zk59vXNddYdXn+fKtmn3KK9Nln0tq1tsd2vHTsaBXssjJpwgSpd29pwQJp/HhpwADpllukbdukLl18Y20OCN0AAAAAEGfO1G4pPmEyVKh3jmdnS6Wldn+XLlbFPnxYWrbMzotlY7SWLS28u6/ZooVVtD/91CreLVtKkybZl+Oxx5pPdduN0A0AAAAAceYEyXgFylCh3jl+7JhVkR95RDpwwNZVS7EL26ecYo3PDh2SOnSwgO9ITZVatbJznDXawd6H5lTddiN0AwAAAECcxTtQBoZ6Z332u+9K27dbIP7qq9iv05ascr5rlzR5sq0Vb93abksWtAsKbDxdukiPPx775090hG4AAAAAaKLc08clC73Tpklt2khvvWXrp52qdiwlJdkU8epq6ZvftGOFhVJOjo3l0UdtnXhBQfNqihYNQjcAAAAANDGB+2hnZEjl5dKWLdLBgzalOyUl+D7YDZWRIV17rfTOOxas9+614+5q/oAB/mvMm+O08XARugEAAAAgwTnTxcvKbJq2ZGE7N1caM8aqy3PnWuCuqop9dTstzQJ8drb0wgsWoocNs7XiHk/t80/2oO1G6AYAAACABFZSYlPGP/hAOnLE9roeO9YCd1mZnfPOO/YVq8p2UpJ993qlzEybIv7OO7a9lxOmb77Zt+UXQiN0AwAAAEACcaraGzbYlPHDh6V9+6SuXa37d5cutn66qEh69VWrbsd6GnlGhnT++dLnn9ue2vfeW/ucwC2/EByhGwAAAAAShLuq/eWX1m08JcW23Boxwrp/O6H8qacskMdC9+42hXz7dpua3rKlBfzjx+1nRI/QDQAAAAAJoqjIArezp3V5udS5s/08eLB0zTXS88/H5rn69rXrS7Y+u0sX29O7vFwaNMiO5+aevF3HY4XQDQAAAAAniNN1fOTI0Oekp1vIzsvzBd4f/1j67W9jN47MTJtCnp5uP48bZ1PF582zddpt2lijtjFjaIjWUIRuAAAAADhBioutmpycLPXvb8dKSqRZs2wNd0aGdQR/+WXpxRelqVNj+/wtW1oVOy/PKucLFlhlu7TU7i8ttdv79vmHfkSP0A0AAAAAJ4gTYocPt4C7Zo30/e9bVTkekpPtu9drP+fmSo89Fnw/bcm2BDt4UDp0SMrJocodC4RuAAAAAGgkc+bEL3CnpdnU8fR06auvLHi3aGEh2+EEbidcl5ZKrVvbOnKq3LFB6AYAAACAGHPWbrsDreSbXv7Pf0p33CG99FJsnzcjw7fHdkqKrQ0fPVp64QUL3Tk59vwO52dnjE7QDhw3otcsQ/f//M//aPbs2dq1a5cGDhyoxx9/XOedd15jDwsAAABAggoVkqPlhGv37YIC+5o3T9q6teHPEUxystShg5SaKh05YuuyW7a0buhjxtjzu6eTS/4/5+cTtmOt2YXuZ599Vrfddpvmzp2rIUOGaM6cORo9erQ2bdqkzp07N/bwAAAAACQgd0iOReh0V4ynTpWWLrXb6enS0aNWkY6lpCS7ZocOUseOtgVYTk7tcB0YqgnY8dfsQvevfvUr3XTTTbr++uslSXPnztWiRYv01FNPaWqsW/8BAAAAaBbcIbku4VbEnXA7b57/GuqjRxs+1kCtWkldu0pf+5pt/VVaWnt8hOvG06xC97Fjx7R69Wr94he/qDmWnJysSy65RCtXrmzEkQEAAABIZOFMqy4pkaZNsy21nMc4+1qPH2+dwJ2tv6qrpc2bbfuvWGrRwr5SUqR27ayi3aWLNWPLy7O9tpFYmlXo3rNnj6qqqtSlSxe/4126dNHGjRuDPqaiokIVFRU1t/fv3y9JqqysVGVlZfwGe5Jw3kPeS0SKzw6ixWcH0eKzg2jwuTk5rFkj3Xuv9PbbkvOrvv9+afp0Wy/t9Up79kj790uff+57XEpK6GnkGRmVft/DkZxsQf+GG6SyMtt2bNAgG9+KFXabj+KJE+7/7pO8Xq83zmM5YXbu3Knu3bvr7bff1vnnn19z/M4779SKFSv07rvv1nrMfffdp/vvv7/W8fnz5yszMzOu4wUAAAAANE2HDx/WhAkTtG/fPmVlZYU8r1lVujt27KiUlBSVlZX5HS8rK1PXrl2DPuYXv/iFbrvttprb+/fvV48ePXTppZfW+cYhPJWVlVqyZIlGjRql1NTUxh4OmhA+O4gWnx1Ei88OosHnpnlbs0aaP196+WVp587YXjsjo1JPPbVEN9wwSkeOhP7spKdLQ4faz2vXSiNGSLfe6qtsDxoU/RjmzJGWLJFGjbJrNvS8k40zS7o+zSp0p6WlKS8vT8XFxbriiiskSdXV1SouLtZPf/rToI9JT09Xenp6reOpqan8hzOGeD8RLT47iBafHUSLzw6iwecmMYXT9CzUOSUlNqW8pET64gubQh4PR46kBg3dGRlSp07WiXzECMnjkTZtsu7k551nXw01cqStPR850rYYa+h5J5tw/zffrEK3JN12220qLCxUfn6+zjvvPM2ZM0eHDh2q6WYOAAAA4OQQzjZgRUXSokUWavPzLWQXFVkleetW6dCh+AVut+Rkq2oPG2bN0EpLpexsXyfy9eutMdvgwbF7znD35Gbv7oZpdqH7v/7rv7R7927dc8892rVrl84991y9+uqrtZqrAQAAAGjesrOtYpydXfs+p8LtXpk6b551J/d4rLIbT61b2/esLKltW+ncc60DemmpdUEP7EJeXGxd0xcssPsJwU1HswvdkvTTn/405HRyAAAAACeH0lLpyBH7LvlPJS8ulp57zqrLY8dKFRXSD35g3+OpfXvpkkts2y/JpmuffbY0Y0bdlfmCAmn5cgvexcWE7qakWYZuAAAAACgokFavlhYulLZskZ591rb16t5deughC9zr10uffmrH4xm4k5NtTfQbb9htpyFZ374WuN0huqCg9uPz833BPNj9SFyEbgAAAADN0vr10iuv2Lrsd97xrc3esUO64w7p6FEL2/v2xef5k5NtantZmT334cO+avvXvmbnzJrlC9z1rZ1mbXXTlNzYAwAAAACAWCspkSZPtsAt1W6GVl5ugTsekpKkli2lNm0s2KekSO3aSTff7JtC7qwlb8iWX2gaqHQDAAAAaDLC2QZMkn784/iF6rokJUkXXSTl5trU9p07bZuvu+6y5mglJXbe8OG+teZo3gjdAAAAAJqMupqNzZsnzZ5tVeTdu0/cmJKSrJKekmIV7owM6fHHg/+BwJkiXllJ6D5ZELoBAAAANBlOE7HAZmLz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34orMHAnJdnWXpIFbufnxYuljAyraDvXXbDApol37y7deWfdobhlS9vWzJmCPmCAPW95uY3N2aos0rXbAAAgMUUUuisrK3XGGWfo5Zdf1sSJEzVx4sR4jStin376qSTpvvvu069+9Sv16tVL/+///T+NGDFCH3/8sU455ZSgj6uoqFBFRUXN7f3790uy11rptMBF1Jz3kPcSkeKzc/IaONC+JF8n8kgeV1lZqdJSafVq+37uuTbl3LnWyJG+UO4+vmyZ7Yvdv7901VVWaR4+3O479VTfzytW2Fru99+367z3nlW1U1PtcTYGO3fBAulvf7PjTuV75Eirxg8fLg0aZMfuv9933WXLfFPkV6yw8yor/R/H/yzig//uIBp8bhAtPjtNX7i/uySv1+uN5MLdu3fXG2+8oTPPPDOqgUVq6tSpmjlzZp3nbNiwQe+//74mTpyoJ554Qj/4wQ8kWaDOycnRAw88oB/+8IdBH3vffffp/vvvr3V8/vz5yszMbPgLAAAAAAA0O4cPH9aECRO0b98+ZWVlhTwv4tD90EMP6eOPP9Yf//hHtWgR8ez0iO3evVtffPFFnef06dNHb731li6++GL9+9//1gUXXFBz35AhQ3TJJZfowQcfDPrYYJXuHj16aM+ePXW+cQhPZWWllixZolGjRinV3UYYqAefHURqzRqrDF94YaXKypboV78apbZtU3X33XZ8yRLbRuzWW2s/ds4c3/2S/dyypbR7t9Spk3T33VaVdp7DXfXescOargW79je/Kb37rk0h/9a3/Kvbdb2G+s5DfPDfHUSDzw2ixWen6du/f786duxYb+iOODWvWrVKxcXFev3115Wbm6tWTuvV//Piiy9GPto6dOrUSZ06dar3vLy8PKWnp2vTpk01obuyslKfffaZevbsGfJx6enpSk9Pr3U8NTWVD38M8X4iWnx2EK5ly3xrnvv3l8aNS9XIkanKz7dp2dXVNkU7NbV2U7KRI333S/ZzdrZvrfayZdJ55/meo7ratgo77zz/rumBH9V+/aQPPrAmaf/7v/a4884L/RrOO6/u+3Fi8N8dRIPPDaLFZ6fpCvf3FnHobteuna688sqIBxRvWVlZuvnmm3XvvfeqR48e6tmzp2bPni1Juvrqqxt5dACAeCkpsY7fZWVSbq6vkdqtt0pr1/o6gDv7aTsN08rL7bbTkC1w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iJsHH3xQw4YNU2Zmptq1axf0nO3bt2vs2LHKzMxU586ddccdd+j48eMndqBIeB9//LG+9a1vqWPHjsrKytIFF1ygZcuWNfaw0EQsWrRIQ4YMUUZGhtq3b68rrriisYeEJqSiokLnnnuukpKS9J///Kexh4ME99lnn+nGG29U7969lZGRob59++ree+/VsWPHGntoSED/8z//o169eqlly5YaMmSI3nvvvcYeEuKE0I24OXbsmK6++mr96Ec/Cnp/VVWVxo4dq2PHjuntt99WUVGR/vznP+uee+45wSNFohs3bpyOHz+upUuXavXq1Ro4cKDGjRunXbt2NfbQkOBeeOEFfe9739P111+vtWvX6q233tKECRMae1hoQu68805169atsYeBJmLjxo2qrq7WE088oY8++ki//vWvNXfuXP3yl79s7KEhwTz77LO67bbbdO+99+r999/XwIEDNXr0aJWXlzf20BAHdC9H3P35z3/Wrbfeqr179/odX7x4scaNG6edO3eqS5cukqS5c+dqypQp2r17t9LS0hphtEg0e/bsUadOnfSvf/1LF154oSTpwIEDysrK0pIlS3TJJZc08giRqI4fP65evXrp/vvv14033tjYw0ETtHjxYt1222164YUXdNZZZ2nNmjU699xzG3tYaGJmz56t3//+9/r0008beyhIIEOGDNHgwYP129/+VpJUXV2tHj16aPLkyZo6dWojjw6xRqUbjWblypXKzc2tCdySNHr0aO3fv18fffRRI44MiaRDhw46/fTTNW/ePB06dEjHjx/XE088oc6dOysvL6+xh4cE9v7772vHjh1KTk7WoEGDlJ2drTFjxujDDz9s7KGhCSgrK9NNN92kv/zlL8rMzGzs4aAJ27dvn0455ZTGHgYSyLFjx7R69Wq/wkFycrIuueQSrVy5shFHhnghdKPR7Nq1yy9wS6q5zbRhOJKSkvTGG29ozZo1atOmjVq2bKlf/epXevXVV9W+ffvGHh4SmFNVuu+++3T33Xfr5ZdfVvv27TVixAh9+eWXjTw6JDKv16vrrrtON998s/Lz8xt7OGjCNm/erMcff1w//OEPG3soSCB79uxRVVVV0H8H82/g5onQjYhMnTpVSUlJdX5t3LixsYeJJiDcz5LX69VPfvITde7cWf/+97/13nvv6YorrtA3vvENlZaWNvbLQCMI97NTXV0tSbrrrrt05ZVXKi8vT08//bSSkpL0/PPPN/KrQGMI97Pz+OOP68CBA/rFL37R2ENGgojm3z87duzQZZddpquvvlo33XRTI40cQCJo0dgDQNNy++2367rrrqvznD59+oR1ra5du9bq0lhWVlZzH5q3cD9LS5cu1csvv6yvvvpKWVlZkqTf/e53WrJkiYqKilj3dBIK97Pj/FFmwIABNcfT09PVp08fbd++PZ5DRIKK5L87K1euVHp6ut99+fn5mjhxooqKiuI4SiSiSP/9s3PnTo0cOVLDhg3Tk08+GefRoanp2LGjUlJSav7d6ygrK+PfwM0UoRsR6dSpkzp16hSTa51//vl68MEHVV5ers6dO0uSlixZoqysLL9/JKN5CvezdPjwYUm21sktOTm5ppKJk0u4n528vDylp6dr06ZNuuCCCyRJlZWV+uyzz9SzZ894DxMJKNzPzmOPPaYHHnig5vbOnTs1evRoPfvssxoyZEg8h4gEFcm/f3bs2KGRI0fWzK4J/P8vIC0tTXl5eSouLq7ZxrK6ulrFxcX66U9/2riDQ1wQuhE327dv15dffqnt27erqqqqZn/Tfv36qXXr1rr00ks1YMAAfe9739OsWbO0a9cu3X333frJT35Sq7qAk9f555+v9u3bq7CwUPfcc48yMjL0hz/8QVu3btXYsWMbe3hIYFlZWbr55pt17733qkePHurZs6dmz54tSbr66qsbeXRIZKeeeqrf7datW0uS+vbtq5ycnMYYEpqIHTt2aMSIEerZs6ceffRR7d69u+Y+Kphwu+2221RYWKj8/Hydd955mjNnjg4dOqTrr7++sYeGOCB0I27uuecevyl4gwYNkiQtW7ZMI0aMUEpKil5++WX96Ec/0vnnn69WrVqpsLBQ06dPb6whIwF17NhRr776qu666y5dfPHFqqys1FlnnaWFCxdq4MCBjT08JLjZs2erRYsW+t73vqcjR45oyJAhWrp0KU34AMTFkiVLtHnzZm3evLnWH2jYpRdu//Vf/6Xdu3frnnvu0a5du3Tuuefq1VdfrdVcDc0D+3QDAAAAABAnLDIBAAAAACBOCN0AAAAAAMQJoRsAAAAAgDghdAMAAAAAECeEbgAAAAAA4oTQDQAAAABAnBC6AQAAAACIE0I3AAAAAABxQugGAABxkZSUpJdeeqmxhwEAQKMidAMAkCCSkpLq/Lrvvvsae4gAACBCLRp7AAAAwJSWltb8/Oyzz+qee+7Rpk2bao61bt265mev16uqqiq1aMH/lQMAkMiodAMAkCC6du1a89W2bVslJSXV3N64caPatGmjxYsXKy8vT+np6XrzzTd13XXX6YorrvC7zq233qoRI0bU3K6urtbDDz+s3r17KyMjQwMHDtTf/va3kOP45S9/qSFDhtQ6PnDgQE2fPl2StGrVKo0aNUodO3ZU27ZtNXz4cL3//vshr7l8+XIlJSVp7969Ncf+85//KCkpSZ999lnNsTfffFMXXnihMjIy1KNHD91yyy06dOhQzf2/+93vdNppp6lly5bq0qWLrrrqqpDPCQBAIiB0AwDQhEydOlWPPPKINmzYoHPOOSesxzz88MOaN2+e5s6dq48++kg///nPde2112rFihVBz584caLee+89bdmypebYRx99pA8++EATJkyQJB04cECFhYV688039c477+i0007T5ZdfrgMHDkT92rZs2aLLLrtMV155pT744AM9++yzevPNN/XTn/5UklRSUqJbbrlF06dP16ZNm/Tqq6/qoosuivr5AAA4EZiTBgBAEzJ9+nSNGjUq7PMrKir00EMP6Y033tD5558vSerTp4/efPNNPfHEExo+fHitx5x11lkaOHCg5s+fr2nTpkmSnnnmGQ0ZMkT9+vWTJF188cV+j3nyySfVrl07rVixQuPGjYvqtT388MOaOHGibr31VknSaaedpscee0zDhw/X73//e23fvl2tWrXSuHHj1KZNG/Xs2VODBg2K6rkAADhRqHQDANCE5OfnR3T+5s2bdfjwYY0aNUqtW7eu+Zo3b55fJTvQxIkTNX/+fEm2fnzBggWaOHFizf1lZWW66aabdNppp6lt27bKysrSwYMHtX379uhemKS1a9fqz3/+s984R48ererqam3dulWjRo1Sz5491adPH33ve9/TM888o8OHD0f9fAAAnAhUugEAaEJatWrldzs5OVler9fvWGVlZc3PBw8elCQtWrRI3bt39zsvPT095POMHz9eU/5/e/cO0kgQx3H8d4cxiCibQgvxgaBIFAIGBQM+IEQUSxEsRNMINhIQ1FR5gIqIiAgiNjY+SGelFgqiRSohWIQgKSxMaxAVDKTIXSEXjKfHHXfrIXw/5c7s8J/pfjs7u36/YrGYMpmMUqmUhoeH8+1er1fpdFpra2uqq6uT1WqVy+VSNpt9c7yvX5+f87+s9WWdP2qdmJiQz+f76f7a2loVFxcrFovp7OxMx8fHCgaDCofDuri4kGEY784FAID/idANAMAnVlFRoXg8XnDt8vJSFotFktTc3Cyr1aqbm5s3XyV/T3V1tXp6erS3t6dMJqPe3l5VVlbm26PRqDY2NjQwMCBJSqVSur29/WWd0vMX2m02W77Ol5xOpxKJRP4V9rcUFRXJ4/HI4/EoFArJMAydnp5qcHDwt+cGAMBHInQDAPCJud1uLS8va3t7Wy6XS7u7u4rH4/mzzmVlZZqentbU1JRyuZw6Ozt1f3+vaDSq8vJyeb3ed8ceGRlRKBRSNpvV6upqQVtjY6N2dnbU1tamh4cHzczMqKSk5N2xGhoaVFNTo3A4rIWFBSWTSa2srBT08fv96ujo0OTkpMbHx1VaWqpEIqGTkxOtr6/r4OBA19fX6u7uls1m09HRkXK5nJqamv5iBQEAMBdnugEA+MT6+voUCAQ0Ozur9vZ2PT4+amxsrKDP3NycAoGAFhcXZbfb1d/fr8PDQ9XX1/9y7KGhIaXTaT09Pf30W7KtrS3d3d3J6XRqdHRUPp+vYCf8NYvFokgkoqurKzkcDi0tLWl+fr6gj8Ph0Pn5uZLJpLq6utTa2qpgMKiqqipJkmEY2t/fl9vtlt1u1+bmpiKRiFpaWv5gxQAA+Fhfvr0+CAYAAAAAAP4JdroBAAAAADAJoRsAAAAAAJMQugEAAAAAMAmhGwAAAAAAkxC6AQAAAAAwCaEbAAAAAACTELoBAAAAADAJoRsAAAAAAJMQugEAAAAAMAmhGwAAAAAAkxC6AQAAAAAwCaEbAAAAAACTfAeFRQVFUZX8xQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "preds = model.predict(train_dataset, batch_size=250)\n", "\n", "scaled_preds = output_scaler.inverse_transform([preds])[0]\n", "scaled_y = output_scaler.inverse_transform([train_dataset[:][1]])[0]\n", "true_vs_pred_plot(scaled_y, scaled_preds)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Evaluate the model with some metrics" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Regression evaluator metrics:\n", "mse: 0.0198\n", "rmse: 0.1406\n", "mae: 0.0645\n", "mre: 116.0480%\n", "ae_95: 0.2076\n", "ae_99: 0.5622\n", "r2: 0.9899\n", "l2_error: 0.0915\n" ] } ], "source": [ "evaluator = NN.RegressionEvaluator()\n", "evaluator(scaled_y, scaled_preds)\n", "evaluator.print_metrics()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you can see, this example is very similar that the one with the MLP, it just changes the model definition. This shows the power of pyLOM when training different models" ] } ], "metadata": { "kernelspec": { "display_name": "pruebasphinx", "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.11.8" } }, "nbformat": 4, "nbformat_minor": 2 }