From aa4ab9c06de21ba58fa7bea9dd802185aa08accf Mon Sep 17 00:00:00 2001 From: SarahAlidoost Date: Thu, 15 Jan 2026 16:33:51 +0100 Subject: [PATCH 1/2] add a notebook for partitioning --- .../notebooks/optimization_partitioning.ipynb | 517 ++++++++++++++++++ 1 file changed, 517 insertions(+) create mode 100644 docs/notebooks/optimization_partitioning.ipynb diff --git a/docs/notebooks/optimization_partitioning.ipynb b/docs/notebooks/optimization_partitioning.ipynb new file mode 100644 index 0000000..97af9b0 --- /dev/null +++ b/docs/notebooks/optimization_partitioning.ipynb @@ -0,0 +1,517 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "c784f1c2-d477-464d-a35f-f2c64e96fb10", + "metadata": {}, + "source": [ + "
\n", + "

Optimizing parameters in a WOFOST crop model using diffWOFOST

\n", + " \n", + "
\n", + "\n", + "\n", + "This Jupyter notebook demonstrates the optimization of parameters in a\n", + "differentiable model using the `diffwofost` package. The package provides\n", + "differentiable implementations of the WOFOST model and its associated\n", + "sub-models. As `diffwofost` is under active development, this notebook focuses on\n", + "`partitioning`. \n", + "\n", + "To enable these models to operate independently, certain state variables\n", + "required by the model are supplied as \"external states\" derived from the test\n", + "data. Also, at this stage, only a limited subset of model parameters has been made\n", + "differentiable." + ] + }, + { + "cell_type": "markdown", + "id": "41262fbd-270b-4616-91ad-09ee82451604", + "metadata": {}, + "source": [ + "## 1. Partitioning\n", + "\n", + "In this section, we will demonstrate how to optimize parameters `FLTB`, `FSTB`, and `FOTB` in\n", + "partitioning model using a differentiable version of partitioning. We skip the parameters `FRTB`. \n", + "The optimization will be done using the Adam optimizer from `torch.optim`." + ] + }, + { + "cell_type": "markdown", + "id": "1b6c3f53-6fab-4537-9177-7b16e0a1ccec", + "metadata": {}, + "source": [ + "### 1.1 software requirements\n", + "\n", + "To run this notebook, we need to install the `diffwofost`; the differentiable\n", + "version of WOFOST models. Since the package is constantly under development, make\n", + "sure you have the latest version of `diffwofost` installed in your\n", + "python environment. You can install it using pip:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e4049fea-1d05-41f1-bf9d-f030ae83a324", + "metadata": {}, + "outputs": [], + "source": [ + "# install diffwofost\n", + "!pip install diffwofost" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "21731653-3976-4bb9-b83b-b11d78211700", + "metadata": {}, + "outputs": [], + "source": [ + "# ---- import libraries ----\n", + "import copy\n", + "import torch\n", + "import numpy\n", + "import yaml\n", + "from pathlib import Path\n", + "from diffwofost.physical_models.config import Configuration\n", + "from diffwofost.physical_models.crop.partitioning import DVS_Partitioning\n", + "from diffwofost.physical_models.utils import EngineTestHelper\n", + "from diffwofost.physical_models.utils import prepare_engine_input\n", + "from diffwofost.physical_models.utils import get_test_data" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "82a1ef6b-336e-4902-8bd1-2a1ed2020f9d", + "metadata": {}, + "outputs": [], + "source": [ + "# ---- disable a warning: this will be fixed in the future ----\n", + "import warnings\n", + "warnings.filterwarnings(\"ignore\", message=\"To copy construct from a tensor.*\")" + ] + }, + { + "cell_type": "markdown", + "id": "47def7fc-f2dd-4aaf-a572-41cc9d1e4679", + "metadata": {}, + "source": [ + "### 1.2. Data\n", + "\n", + "A test dataset of `FR` (Fraction partitioned to roots),\n", + "`FL` (Fraction partitioned to leaves), `FS` (Fraction partitioned to stems), \n", + "`FO` (Fraction partitioned to storage organs) will be used to optimize\n", + "parametesr `FRTB` (Partitioning to roots), `FLTB` (Partitioning to leaves),\n", + "`FSTB` (Partitioning to stems), and `FOTB` (Partitioning to storage).\n", + "Note that in partitioning, changes in `FRTB` affect `FR`, in `FLTB` affect `FL` and so on. \n", + "\n", + "The data is stored in PCSE tests folder, and can be doewnloded from PCSE repsository.\n", + "You can select any of the files related to `partitioning` model with a file name that follwos the pattern\n", + "`test_partitioning_wofost72_*.yaml`. Each file contains different data depending on the locatin and crop type.\n", + "For example, you can download the file \"test_partitioning_wofost72_01.yaml\" as:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "0233a048-e5a2-4249-887d-35a37284769c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Downloaded: test_partitioning_wofost72_01.yaml\n" + ] + } + ], + "source": [ + "import urllib.request\n", + "\n", + "url = \"https://raw.githubusercontent.com/ajwdewit/pcse/refs/heads/master/tests/test_data/test_partitioning_wofost72_01.yaml\"\n", + "filename = \"test_partitioning_wofost72_01.yaml\"\n", + "\n", + "urllib.request.urlretrieve(url, filename)\n", + "print(f\"Downloaded: {filename}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "5a459489-bfcb-4ad6-9102-1b6be5edeb52", + "metadata": {}, + "outputs": [], + "source": [ + "# ---- Check the path to the files that are downloaded as explained above ----\n", + "test_data_path = \"test_partitioning_wofost72_01.yaml\"" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "9f3105fb-4fbe-4405-9fd4-e8255b4b119e", + "metadata": {}, + "outputs": [], + "source": [ + "# ---- Here we read the test data and set some variables ----\n", + "test_data = get_test_data(test_data_path)\n", + "(crop_model_params_provider, weather_data_provider, agro_management_inputs, external_states) = (\n", + " prepare_engine_input(test_data, [\"FRTB\", \"FLTB\", \"FSTB\", \"FOTB\"])\n", + ")\n", + "\n", + "expected_results = test_data[\"ModelResults\"]\n", + "expected_results = torch.tensor(\n", + " [[float(item[\"FL\"]), float(item[\"FO\"]), float(item[\"FS\"])] for item in expected_results], dtype=torch.float32\n", + ").unsqueeze(0) # shape: [1, time_steps, 3], we skip output FR\n", + "\n", + "# ---- dont change this: in this config file we specified the diffrentiable version of partitioning ----\n", + "partitioning_config = Configuration(\n", + " CROP=DVS_Partitioning,\n", + " OUTPUT_VARS=[\"FL\", \"FS\", \"FO\"],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "52b19ae2-3fe6-4b3f-95a7-aea07a2c0958", + "metadata": {}, + "source": [ + "### 1.3. Helper classes/functions\n", + "\n", + "The model parameters should be a table with the same length, all positive and sum equal to 1. To ensure this, we will use\n", + "an approximation function to create the tables and initialize the table using some test data. You might change these values depending on the crop type and\n", + "location.\n", + "Another helper class is `OptDiffPartitioning` which is a subclass of `torch.nn.Module`. \n", + "We use this class to wrap the `EngineTestHelper` function and make it easier to run the model `Partitioning`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "36dd6463-4812-41c0-b2bf-d4769df1136f", + "metadata": {}, + "outputs": [], + "source": [ + "# ---- Wrap the model with torch.nn.Module----\n", + "class OptDiffPartitioning(torch.nn.Module):\n", + " def __init__(\n", + " self, crop_model_params_provider, weather_data_provider, agro_management_inputs, partitioning_config, external_states, n_points=6,\n", + " ):\n", + " super().__init__()\n", + " self.crop_model_params_provider = crop_model_params_provider\n", + " self.weather_data_provider = weather_data_provider\n", + " self.agro_management_inputs = agro_management_inputs\n", + " self.config = partitioning_config\n", + " self.external_states = external_states\n", + "\n", + " # X coordinates (shared)\n", + " self.dx_raw = torch.nn.Parameter(torch.randn(n_points))\n", + "\n", + " # Y logits per table\n", + " self.y_logits = torch.nn.Parameter(torch.randn(n_points, 3))\n", + "\n", + " def init_from_tables(self, fltb, fotb, fstb):\n", + " \"\"\"to initialize the learnable logits so that the model starts from known tables instead of random values.\"\"\"\n", + " x0 = fltb[0::2] # shared\n", + " fltb0 = fltb[1::2]\n", + " fotb0 = fotb[1::2]\n", + " fstb0 = fstb[1::2]\n", + "\n", + " dx0 = torch.diff(x0, prepend=x0[:1])\n", + " self.dx_raw.data.copy_(torch.log(torch.exp(dx0) - 1)) # inverse softplus\n", + "\n", + " self.y_logits.data[:, 0] = torch.log(fltb0 + 1e-8) # FLTB\n", + " self.y_logits.data[:, 1] = torch.log(fotb0 + 1e-8) # FOTB\n", + " self.y_logits.data[:, 2] = torch.log(fstb0 + 1e-8) # FSTB\n", + "\n", + " def get_tables(self):\n", + " # ---- x ----\n", + " dx = torch.nn.functional.softplus(self.dx_raw) + 1e-6\n", + " x = torch.cumsum(dx, dim=0)\n", + "\n", + " # ---- y ----\n", + " # Softmax enforces constraints; all tables are positive and sum is 1.\n", + " y = torch.softmax(self.y_logits, dim=-1)\n", + "\n", + " fltb_y = y[:, 0]\n", + " fotb_y = y[:, 1]\n", + " fstb_y = y[:, 2]\n", + "\n", + " # ---- interleave ----\n", + " fltb = torch.stack([x, fltb_y], dim=1).flatten()\n", + " fotb = torch.stack([x, fotb_y], dim=1).flatten()\n", + " fstb = torch.stack([x, fstb_y], dim=1).flatten()\n", + "\n", + " return fltb, fotb, fstb\n", + "\n", + "\n", + " def forward(self):\n", + " # currently, copying is needed due to an internal issue in engine\n", + " crop_model_params_provider_ = copy.deepcopy(self.crop_model_params_provider)\n", + " external_states_ = copy.deepcopy(self.external_states)\n", + "\n", + " fltb_val, fotb_val, fstb_val = self.get_tables()\n", + "\n", + " # pass new value of parameters to the model\n", + " crop_model_params_provider_.set_override(\"FLTB\", fltb_val, check=False)\n", + " crop_model_params_provider_.set_override(\"FOTB\", fotb_val, check=False)\n", + " crop_model_params_provider_.set_override(\"FSTB\", fstb_val, check=False)\n", + "\n", + " engine = EngineTestHelper(\n", + " crop_model_params_provider_,\n", + " self.weather_data_provider,\n", + " self.agro_management_inputs,\n", + " self.config,\n", + " external_states_,\n", + " )\n", + " engine.run_till_terminate()\n", + " results = engine.get_output()\n", + "\n", + " return torch.stack(\n", + " [torch.stack([item[\"FL\"], item[\"FO\"], item[\"FS\"]]) for item in results]\n", + " ).unsqueeze(0) # shape: [1, time_steps, 3]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f1f76ce0-cad3-4e9d-83c7-6231e788e9c1", + "metadata": {}, + "outputs": [], + "source": [ + "# ---- Create model ----\n", + "opt_model = OptDiffPartitioning(\n", + " crop_model_params_provider,\n", + " weather_data_provider,\n", + " agro_management_inputs,\n", + " partitioning_config,\n", + " external_states,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "3f28391c-b73f-4b5a-962c-60b609563f5d", + "metadata": {}, + "outputs": [], + "source": [ + "# init tables: change the values as needed\n", + "# here they are set randomly manually\n", + "fotb = torch.tensor([0.0, 0.5, 0.9, 0.1, 1.2, 0.75, 1.6, 0.95, 1.98, 0.85, 2.1, 0.9], dtype=torch.float32)\n", + "fltb = torch.tensor([0.0, 0.3, 0.9, 0.3, 1.2, 0.02, 1.6, 0.01, 1.98, 0.1, 2.1, 0.03], dtype=torch.float32)\n", + "fstb = 1.0 - fotb - fltb\n", + "opt_model.init_from_tables(fltb, fotb, fstb)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "78d797f5-4ac4-4380-85f3-6622a7b0f7fb", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Step 0, Loss 1.0416, FLTB mean 0.738, FOTB mean 1.002, FSTB mean 0.766\n", + "Step 1, Loss 0.9497, FLTB mean 0.768, FOTB mean 1.026, FSTB mean 0.783\n", + "Step 2, Loss 0.7792, FLTB mean 0.783, FOTB mean 1.035, FSTB mean 0.785\n", + "Step 3, Loss 0.6351, FLTB mean 0.773, FOTB mean 1.016, FSTB mean 0.760\n", + "Step 4, Loss 0.5335, FLTB mean 0.768, FOTB mean 1.003, FSTB mean 0.744\n", + "Step 5, Loss 0.5021, FLTB mean 0.774, FOTB mean 1.001, FSTB mean 0.741\n", + "Step 6, Loss 0.4655, FLTB mean 0.783, FOTB mean 1.002, FSTB mean 0.742\n", + "Step 7, Loss 0.4417, FLTB mean 0.787, FOTB mean 1.000, FSTB mean 0.739\n", + "Step 8, Loss 0.4040, FLTB mean 0.782, FOTB mean 0.991, FSTB mean 0.731\n", + "Step 9, Loss 0.3804, FLTB mean 0.791, FOTB mean 0.995, FSTB mean 0.738\n", + "Step 10, Loss 0.3423, FLTB mean 0.795, FOTB mean 0.994, FSTB mean 0.742\n", + "Step 11, Loss 0.2985, FLTB mean 0.792, FOTB mean 0.988, FSTB mean 0.740\n", + "Step 12, Loss 0.2451, FLTB mean 0.786, FOTB mean 0.980, FSTB mean 0.737\n", + "Step 13, Loss 0.2029, FLTB mean 0.788, FOTB mean 0.979, FSTB mean 0.741\n", + "Step 14, Loss 0.1902, FLTB mean 0.791, FOTB mean 0.981, FSTB mean 0.747\n", + "Step 15, Loss 0.1904, FLTB mean 0.794, FOTB mean 0.983, FSTB mean 0.751\n", + "Step 16, Loss 0.1962, FLTB mean 0.791, FOTB mean 0.979, FSTB mean 0.748\n", + "Step 17, Loss 0.1900, FLTB mean 0.792, FOTB mean 0.979, FSTB mean 0.748\n", + "Step 18, Loss 0.1806, FLTB mean 0.798, FOTB mean 0.982, FSTB mean 0.752\n", + "Step 19, Loss 0.1622, FLTB mean 0.800, FOTB mean 0.981, FSTB mean 0.752\n", + "Step 20, Loss 0.1420, FLTB mean 0.798, FOTB mean 0.976, FSTB mean 0.747\n", + "Step 21, Loss 0.1233, FLTB mean 0.799, FOTB mean 0.973, FSTB mean 0.745\n", + "Step 22, Loss 0.1194, FLTB mean 0.807, FOTB mean 0.980, FSTB mean 0.752\n", + "Step 23, Loss 0.1171, FLTB mean 0.805, FOTB mean 0.978, FSTB mean 0.750\n", + "Step 24, Loss 0.1140, FLTB mean 0.798, FOTB mean 0.971, FSTB mean 0.744\n", + "Step 25, Loss 0.1011, FLTB mean 0.798, FOTB mean 0.973, FSTB mean 0.746\n", + "Step 26, Loss 0.0880, FLTB mean 0.803, FOTB mean 0.979, FSTB mean 0.754\n", + "Step 27, Loss 0.0823, FLTB mean 0.800, FOTB mean 0.978, FSTB mean 0.755\n", + "Step 28, Loss 0.0687, FLTB mean 0.793, FOTB mean 0.973, FSTB mean 0.749\n", + "Step 29, Loss 0.1047, FLTB mean 0.796, FOTB mean 0.977, FSTB mean 0.753\n", + "Step 30, Loss 0.0928, FLTB mean 0.807, FOTB mean 0.986, FSTB mean 0.763\n", + "Step 31, Loss 0.0836, FLTB mean 0.807, FOTB mean 0.986, FSTB mean 0.760\n", + "Step 32, Loss 0.0695, FLTB mean 0.800, FOTB mean 0.979, FSTB mean 0.751\n", + "Step 33, Loss 0.0788, FLTB mean 0.801, FOTB mean 0.979, FSTB mean 0.751\n", + "Step 34, Loss 0.0771, FLTB mean 0.808, FOTB mean 0.984, FSTB mean 0.758\n", + "Step 35, Loss 0.0726, FLTB mean 0.810, FOTB mean 0.985, FSTB mean 0.760\n", + "Step 36, Loss 0.0824, FLTB mean 0.803, FOTB mean 0.978, FSTB mean 0.753\n", + "Step 37, Loss 0.0632, FLTB mean 0.800, FOTB mean 0.975, FSTB mean 0.750\n", + "Step 38, Loss 0.0703, FLTB mean 0.802, FOTB mean 0.978, FSTB mean 0.754\n", + "Step 39, Loss 0.0523, FLTB mean 0.806, FOTB mean 0.981, FSTB mean 0.759\n", + "Step 40, Loss 0.0593, FLTB mean 0.804, FOTB mean 0.980, FSTB mean 0.757\n", + "Step 41, Loss 0.0469, FLTB mean 0.799, FOTB mean 0.975, FSTB mean 0.753\n", + "Step 42, Loss 0.0679, FLTB mean 0.801, FOTB mean 0.976, FSTB mean 0.754\n", + "Step 43, Loss 0.0669, FLTB mean 0.807, FOTB mean 0.981, FSTB mean 0.759\n", + "Step 44, Loss 0.0525, FLTB mean 0.806, FOTB mean 0.980, FSTB mean 0.757\n", + "Step 45, Loss 0.0441, FLTB mean 0.801, FOTB mean 0.975, FSTB mean 0.752\n", + "Step 46, Loss 0.0553, FLTB mean 0.803, FOTB mean 0.976, FSTB mean 0.753\n", + "Step 47, Loss 0.0450, FLTB mean 0.807, FOTB mean 0.980, FSTB mean 0.758\n", + "Step 48, Loss 0.0579, FLTB mean 0.806, FOTB mean 0.978, FSTB mean 0.756\n", + "Step 49, Loss 0.0504, FLTB mean 0.800, FOTB mean 0.973, FSTB mean 0.750\n", + "Step 50, Loss 0.0566, FLTB mean 0.801, FOTB mean 0.974, FSTB mean 0.751\n", + "Step 51, Loss 0.0514, FLTB mean 0.807, FOTB mean 0.980, FSTB mean 0.758\n", + "Step 52, Loss 0.0533, FLTB mean 0.807, FOTB mean 0.981, FSTB mean 0.759\n", + "Step 53, Loss 0.0502, FLTB mean 0.799, FOTB mean 0.974, FSTB mean 0.751\n", + "Step 54, Loss 0.0517, FLTB mean 0.799, FOTB mean 0.974, FSTB mean 0.750\n", + "Step 55, Loss 0.0543, FLTB mean 0.805, FOTB mean 0.979, FSTB mean 0.756\n", + "Early stopping at step 55\n" + ] + } + ], + "source": [ + "# ---- Early stopping ----\n", + "best_loss = float(\"inf\")\n", + "patience = 10 # Number of steps to wait for improvement\n", + "patience_counter = 0\n", + "min_delta = 1e-4\n", + "\n", + "# ---- Optimizer ----\n", + "optimizer = torch.optim.Adam(opt_model.parameters(), lr=0.1)\n", + "\n", + "# ---- We use relative MAE as loss because there are two outputs with different untis ----\n", + "denom = torch.mean(torch.abs(expected_results), dim=1)\n", + "\n", + "# Training loop (example)\n", + "for step in range(101):\n", + " optimizer.zero_grad()\n", + " results = opt_model()\n", + " mae = torch.mean(torch.abs(results - expected_results), dim=1)\n", + " rmae = mae / denom\n", + " loss = rmae.sum() # example: relative mean absolute error\n", + " loss.backward()\n", + " optimizer.step()\n", + "\n", + " fltb, fotb, fstb = opt_model.get_tables()\n", + "\n", + " print(f\"Step {step}, Loss {loss.item():.4f}, FLTB mean {fltb.mean():.3f}, FOTB mean {fotb.mean():.3f}, FSTB mean {fstb.mean():.3f}\")\n", + " # Early stopping logic\n", + " if loss.item() < best_loss - min_delta:\n", + " best_loss = loss.item()\n", + " patience_counter = 0\n", + " else:\n", + " patience_counter += 1\n", + " if patience_counter >= patience:\n", + " print(f\"Early stopping at step {step}\")\n", + " break" + ] + }, + { + "cell_type": "markdown", + "id": "a6a511a4-f269-4af4-9f51-2dafa9ba38c0", + "metadata": {}, + "source": [ + "## 1.4 Plotting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "558d47cf-c697-4169-ab46-fe76c52d24c2", + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "def plot_xy_table(tbl, label=None, marker=\".\", color=\"r\"):\n", + " \"\"\"\n", + " tbl: 1D tensor or numpy array [x0, y0, x1, y1, ...]\n", + " \"\"\"\n", + " if hasattr(tbl, \"detach\"):\n", + " tbl = tbl.detach().cpu().numpy()\n", + "\n", + " x = tbl[0::2]\n", + " y = tbl[1::2]\n", + "\n", + " plt.scatter(x, y, label=label, marker=marker, color=color)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "84280835-4651-4279-80c9-27426a7dc1cf", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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W/aDBw/WqlWrdPDgQVmtVrVv377c49q3b6+zZ88qMzNTZrP5ituL+N+TKSwsVGlpqZ5++mndcsstFdY/cuSITCaTQkNDHcrHjRtn/z4qKkqvvfaabrzxRp07d06BgYFasGCBzGazPvzwQ/n4+EiS2rZtaz8mICBAhYWFCgsLc2ozPDxc33///RU/J1cjyAIAgDrt4MELIbZMSYl06JBrg2z//v315ptv2rcbNGjgsL+qM64V2bx5s4KCglRYWKjt27dr8uTJaty4sSZNmlRu/fz8fPn5+cnLy8uhfMeOHZo9e7Z2796ts2fPqvR/L97Ro0fVoUMH7dq1S3379rWH2MoICAhQXl5e5Z+cixBkAQBAnXbNNZK3t2OYNZmk6GjXttugQQNFl9NIdHS0vLy8tG/fPt19991O+/ft26dGjRopJCSkUu1FRkaqYcOGkmzrUb/55hs999xzFQbZkJAQ5eXlqaioSL6+vpKk3NxcxcbGKjY2VsuXL1fTpk119OhRxcbGqqioSJKclkNUxpkzZ9S0adMqH1/TWCMLAADqtIgI6e23beFVsn196y3XzsZeTpMmTTRw4ED94x//UH5+vsO+9PR0LV++XPfee6/TTGllmUwmp/NfrHPnzpKkn376yV62f/9+nT59Wi+88IL69u2ra6+91ulCrxtuuEGbN29WcXFxuef19fVVSUlJufv27t2rLl26VPKZuA5BFgAA1Hnjx0uHD9vuWnD4sG3bnd544w0VFhYqNjZWX375pVJTU5WYmKiBAweqRYsWevbZZyt9zoyMDKWnp+vIkSNatWqVEhISdNddd1VYv2nTpuratau++uore1nLli3l6+ur119/XSkpKfrkk0/0zDPPOBw3efJkZWdn6w9/+IO+++47HTx4UAkJCTpw4IAkqXXr1vrhhx904MABZWZm2gNvXl6eduzYoUGDBlX6ubkKQRYAABhCRIQUE+O+mdiLXXPNNfruu+8UFRWle++9V23atNGECRPUv39/bdu2TY0bN670Odu1a6fmzZsrOjpaTzzxhCZOnKjXX3/9ssfcf//9Wr58uX27adOmWrp0qVatWqUOHTrohRde0EsvveRwTJMmTfT555/r3Llz6tevn7p166Z33nnHvmb2gQceULt27dS9e3c1bdpUW7ZskSR9/PHHatmypfr27Vvp5+YqXtaaXqlcx2Vn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c89VGGRDQkKUl5enoqIi+fr6Vrq9S0P4uXPnNGfOHN1zzz1OdSt7d6ozZ86oadOmle5TTWCNLAAAqLsuvrArKkrassVxzeyldzMwKJPJpPz8/Ar3l927/6effnLa9/XXXzttt2/f/rLtde3aVQcOHFB0dLTTw9vbW+3bt1dqaqpOnDhRYTtl9u7dqy5duly2PVdhRhYAANRNaWnOF3ZdumY2JkbatMktF3xlZWVp165dDmVNmjSR5QpmiTMyMlRQUGBfWpCQkKDf//73FdZv2rSpunbtqq+++srpA6m2bNmiv//97xo6dKg2btyoVatW6dNPP71s+zNnztQdd9yhli1b6ve//728vb21e/du7d27V88++6wGDBigtm3bavTo0XrxxReVnZ2tv/zlL07nycvL044dO9z2IQ3MyAIAgLopKEgKDXW+sKsszEZF2fYHBbmle8nJyerSpYvDY86cOVd0bLt27dS8eXNFR0friSee0MSJE/X6669f9pj7779fy5cvdyp/5JFH9N1336lLly569tlnNW/ePMXGxl72XLGxsVq7dq02bNigG2+8UTfddJPmz5+vVq1aSZK8vb21evVq5efnq0ePHrr//vsd1tOW+fjjj9WyZUv17dv3ip53TWNGFgAA1E1ms5SYaLtP7KUzrhaLbSY2KMhWr4YtXbr0N/dfrs6sWbP08MMPO5XHxMTIarVWqU9jxozR3LlztW3bNocLr4KDg7Vy5coKj6uovdjY2MsG3rZt2zrdVuvSc7366quaOXPmlXTfJQiyAACg7jKbKw6qBr5/bFUEBATovffeU2Zmpru7IknKzMzUPffcoxEjRritDwRZAAAAg4iJiXF3F+xCQkL0+OOPu7UPBFkAAACDOnz4sLu74FZc7AUAAABDIsgCAADAkAiyAAAAMCSCLAAAAAyJIAsAAABDIsgCAAAYWHx8vNs+IlaSvLy8tGbNGkm2e8uGhoYqLS2tVtomyAIAAFxizJgx8vLycnocOnTIXic1NVXjxo1TeHi4fH191apVK02dOlWnT5+WJB09elQmk6nc85Q9li5dquTkZIeygIAAdezYUW+//fZv9nP37t1at26dpkyZ4rLXojJCQkI0atQozZo1q1baqxNBdsGCBWrdurX8/f3Vs2dPbd++/YqO+/DDD+Xl5aWhQ4e6toMAAMAtsrKkiib30tJs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NXz4cGVkZGj27NkymUxq1KiRTCZTuecpr40mTZooLi5OP/zww2/277nnntNdd92l1q1bu/JluGLjxo3Tzp07nT6+1tUIsgAAoM7KKshSWnZaufvSstOUVZDlsrbj4uJ04sQJh0dkZKROnTql3/3ud2rcuLHWr1+vffv2acmSJQoPD1dubq4effRRHTt2TPv379exY8cUERGhp59+2uE85bWRlJSkevXq6Y477rhsv/Ly8rR48WKNHz++Ws+vpKREpaWl1TpHGV9fX40cOVKvvfZajZzvShFkAQBAnZRVkKW45XHqt7SfUrNSHfalZqWq39J+ilse57Iw6+fnp7CwMIeHyWTSli1blJWVpUWLFqlLly6KjIxU//79NX/+fEVGRiowMFBhYWFq1qyZ/ZigoCCH85TXRufOnTV9+nSlpqbq1KlTFfZr3bp18vPz00033WQvS05OlpeXlz799FPdcMMN8vf310033aS9e/fa65QtB/jkk0/UoUMH+fn56ejRoyosLNSjjz6qFi1aqEGDBurZs6eSk5Md2ly6dKlatmyp+vXr6+6779bp06ed+jVkyBB98sknys/Pr8arXjkEWQAAUCflFOUoIzdDKWdTFLMsxh5mU7NSFbMsRilnU5SRm6Gcopxa7VdYWJjOnz+v1atXy2q11th5z507p3/+85+Kjo5WkyZNKqy3efNmdevWrdx9jz32mF5++WV9++23atq0qYYMGaLi4mL7/ry8PP3tb3/TokWL9OOPPyo0NFSTJ0/Wtm3b9OGHH+qHH37QsGHDFBcXp4MHD0qSvvnmG40fP16TJ0/Wrl271L9/fz377LNObXfv3l3nz5/XN998U81X4soRZAEAQJ0UERyh5NHJimoUZQ+zW1O32kNsVKMoJY9OVkRwhEvaX7t2rQIDA+2PYcOGSZJuuukmPfnkkxo5cqRCQkI0ePBgvfjiizp58mS12ggKCtInn3yiFStWyNu74oh25MgRhYeHl7tv1qxZGjhwoK6//notW7ZMJ0+e1OrVq+37i4uL9Y9//EO9e/dWu3btlJmZqSVLlmjVqlXq27ev2rRpo0cffVQ333yzlixZIkl69dVXFRcXp8cff1xt27bVlClTFBsb69R2/fr1ZTabdeTIkUq/DlVFkAUAAHWWxWxxCLN93u3jEGItZovL2u7fv7927dplf1y8/vO5555Tenq6Fi5cqI4dO2rhwoW69tprtWfPniq3sX37dsXGxmrw4MGXDYP5+fny9/cvd1+vXr3s3zdu3Fjt2rXTvn377GW+vr664YYb7Nt79uxRSUmJ2rZt6xDaN23apF9++UWStG/fPvXs2bPCdi4WEBCgvLy8337iNaRerbUEAABQBRazRQl3J6jPu33sZQl3J7g0xEpSgwYNFB0dXeH+Jk2aaNiwYRo2bJief/55denSRS+99JKWLVtW5TYWLVoks9msd955p9y37yUpJCREZ8+evfIncpGAgAD7XRMk23IGk8mkHTt2yGQyOdQNDAys9PnPnDmjpk2bVqlvVcGMLAAAqNNSs1IVvzreoSx+dbzTBWDu5OvrqzZt2ig3N7da5/Hy8pK3t/dlL5jq0qWLfvrpp3L3ff311/bvz549q59//lnt27e/7LlKSkqUkZGh6Ohoh0fZRWnt27d3Wvd6cTtlfvnlFxUUFKhLly6XfY41iSALAADqrIsv7IpqFKUt47Y4rJl1R5hdu3at/u///k9r167Vzz//rAMHDuill17SunXrdNddd1XqXIWFhUpPT1d6err27dunP//5zzp37txlP1wgNjZWP/74Y7mzsk8//bSSkpK0d+9ejRkzRiEhIRo6dGiF52rbtq3uu+8+jRo1Sv/f//f/6ddff9X27ds1d+5cffrpp5KkKVOmKDExUS+99JIOHjyoN954Q4mJiU7n2rx5s6KiotSmTZtKvQbVQZAFAAB1Ulp2mtOFXb0tvZ0uAKvoPrOu0qFDB9WvX1+PPPKIOnfurJtuukkrV67UokWLFB8f/9snuEhiYqKaN2+u5s2bq2fPnvr222+1atUqxcTEVHjM9ddfr65du2rlypVO+1544QVNnTpV3bp1U3p6uv7973/L19f3sn1YsmSJRo0apUceeUTt2rXT0KFD9e2336ply5aSbBe3vfPOO3r11VfVqVMnbdiwQU899ZTTeT744AM98MADlXr+1eVlrcn7RhhAdna2zGazsrKyFBwc7PL2iouLtW7dOt12223y8fFxeXuoWxh/z8b4ezbG36agoEC//vqrIiMjK7xAqSJl95HNyM1wurCrbKY2tEGoEu9LlNnfXMM9r57S0lJlZ2crODj4sncgqKpPP/1Ujz32mPbu3Stvb28lJyerf//+Onv2rMNHx9aWH3/8Ubfeeqt+/vln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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# ---- compare the results with test data ----\n", + "with torch.no_grad():\n", + " fltb_opt, fotb_opt, fstb_opt = opt_model.get_tables()\n", + "\n", + "plt.figure(figsize=(7, 5))\n", + "\n", + "# Actual (dashed)\n", + "plot_xy_table(crop_model_params_provider[\"FLTB\"][:12], label=\"FLTB (act)\", marker=\".\", color=\"r\")\n", + "plot_xy_table(crop_model_params_provider[\"FOTB\"][:12], label=\"FOTB (act)\", marker=\".\", color=\"b\")\n", + "plot_xy_table(crop_model_params_provider[\"FSTB\"][:12], label=\"FSTB (act)\", marker=\".\", color=\"g\")\n", + "\n", + "# Optimized (solid)\n", + "plot_xy_table(fltb_opt, label=\"FLTB (pred)\", marker=\"x\", color=\"r\")\n", + "plot_xy_table(fotb_opt, label=\"FOTB (pred)\", marker=\"x\", color=\"b\")\n", + "plot_xy_table(fstb_opt, label=\"FSTB (pred)\", marker=\"x\", color=\"g\")\n", + "\n", + "plt.xlabel(\"x\")\n", + "plt.ylabel(\"y\")\n", + "plt.legend()\n", + "plt.grid(True)\n", + "\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9db31684-6b85-46a8-9e95-20631ae88b9f", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.12.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 1d44c30e8107569ce1b5a8adaec2a8e5dfdd14cb Mon Sep 17 00:00:00 2001 From: SarahAlidoost Date: Fri, 16 Jan 2026 14:36:19 +0100 Subject: [PATCH 2/2] fix the approximation and plots --- .../notebooks/optimization_partitioning.ipynb | 299 +++++++++--------- 1 file changed, 157 insertions(+), 142 deletions(-) diff --git a/docs/notebooks/optimization_partitioning.ipynb b/docs/notebooks/optimization_partitioning.ipynb index 97af9b0..ebc887d 100644 --- a/docs/notebooks/optimization_partitioning.ipynb +++ b/docs/notebooks/optimization_partitioning.ipynb @@ -82,6 +82,18 @@ { "cell_type": "code", "execution_count": 2, + "id": "047456fd-4aeb-4fef-9e54-6f09c931ab90", + "metadata": {}, + "outputs": [], + "source": [ + "# --- run on CPU ------\n", + "from diffwofost.physical_models.config import ComputeConfig\n", + "ComputeConfig.set_device('cpu')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, "id": "82a1ef6b-336e-4902-8bd1-2a1ed2020f9d", "metadata": {}, "outputs": [], @@ -113,7 +125,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "id": "0233a048-e5a2-4249-887d-35a37284769c", "metadata": {}, "outputs": [ @@ -137,7 +149,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "id": "5a459489-bfcb-4ad6-9102-1b6be5edeb52", "metadata": {}, "outputs": [], @@ -148,7 +160,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "id": "9f3105fb-4fbe-4405-9fd4-e8255b4b119e", "metadata": {}, "outputs": [], @@ -187,7 +199,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, + "id": "46ae01c9-f199-4c58-bebc-3463575ed140", + "metadata": {}, + "outputs": [], + "source": [ + "# Adjust as needed\n", + "init_params = torch.tensor(\n", + " [\n", + " [0.0, 2.0, 10.0], # FL: start=0.0, end=1.2, sharpness=10\n", + " [0.0, 2.0, 10.0], # FO: start=0.6, end=1.8, sharpness=10\n", + " [0.0, 2.0, 10.0], # FS: start=1.2, end=2.0, sharpness=10\n", + " ], dtype=torch.float32\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, "id": "36dd6463-4812-41c0-b2bf-d4769df1136f", "metadata": {}, "outputs": [], @@ -195,7 +224,7 @@ "# ---- Wrap the model with torch.nn.Module----\n", "class OptDiffPartitioning(torch.nn.Module):\n", " def __init__(\n", - " self, crop_model_params_provider, weather_data_provider, agro_management_inputs, partitioning_config, external_states, n_points=6,\n", + " self, crop_model_params_provider, weather_data_provider, agro_management_inputs, partitioning_config, external_states, init_params,\n", " ):\n", " super().__init__()\n", " self.crop_model_params_provider = crop_model_params_provider\n", @@ -204,44 +233,30 @@ " self.config = partitioning_config\n", " self.external_states = external_states\n", "\n", - " # X coordinates (shared)\n", - " self.dx_raw = torch.nn.Parameter(torch.randn(n_points))\n", - "\n", - " # Y logits per table\n", - " self.y_logits = torch.nn.Parameter(torch.randn(n_points, 3))\n", - "\n", - " def init_from_tables(self, fltb, fotb, fstb):\n", - " \"\"\"to initialize the learnable logits so that the model starts from known tables instead of random values.\"\"\"\n", - " x0 = fltb[0::2] # shared\n", - " fltb0 = fltb[1::2]\n", - " fotb0 = fotb[1::2]\n", - " fstb0 = fstb[1::2]\n", - "\n", - " dx0 = torch.diff(x0, prepend=x0[:1])\n", - " self.dx_raw.data.copy_(torch.log(torch.exp(dx0) - 1)) # inverse softplus\n", - "\n", - " self.y_logits.data[:, 0] = torch.log(fltb0 + 1e-8) # FLTB\n", - " self.y_logits.data[:, 1] = torch.log(fotb0 + 1e-8) # FOTB\n", - " self.y_logits.data[:, 2] = torch.log(fstb0 + 1e-8) # FSTB\n", + " # DVS \n", + " self.dvs = torch.arange(0.0, 2.1, 0.01)\n", + "\n", + " # sigmoid parameters\n", + " self.params = torch.nn.Parameter(init_params)\n", + " \n", + " def sigmoid_approx(self, dvs, start, end, sharpness):\n", + " return torch.sigmoid(sharpness * (dvs - start)) - torch.sigmoid(sharpness * (dvs - end))\n", + " \n", + " def get_partitions(self):\n", + " raw = torch.stack([\n", + " self.sigmoid_approx(self.dvs, *self.params[0]),\n", + " self.sigmoid_approx(self.dvs, *self.params[1]),\n", + " self.sigmoid_approx(self.dvs, *self.params[2]),\n", + " ], dim=1)\n", + "\n", + " parts = torch.softmax(raw, dim=1)\n", + " return parts[:,0], parts[:,1], parts[:,2]\n", "\n", " def get_tables(self):\n", - " # ---- x ----\n", - " dx = torch.nn.functional.softplus(self.dx_raw) + 1e-6\n", - " x = torch.cumsum(dx, dim=0)\n", - "\n", - " # ---- y ----\n", - " # Softmax enforces constraints; all tables are positive and sum is 1.\n", - " y = torch.softmax(self.y_logits, dim=-1)\n", - "\n", - " fltb_y = y[:, 0]\n", - " fotb_y = y[:, 1]\n", - " fstb_y = y[:, 2]\n", - "\n", - " # ---- interleave ----\n", - " fltb = torch.stack([x, fltb_y], dim=1).flatten()\n", - " fotb = torch.stack([x, fotb_y], dim=1).flatten()\n", - " fstb = torch.stack([x, fstb_y], dim=1).flatten()\n", - "\n", + " fl, fo, fs = self.get_partitions()\n", + " fltb = torch.stack([self.dvs, fl], dim=1).flatten()\n", + " fotb = torch.stack([self.dvs, fo], dim=1).flatten()\n", + " fstb = torch.stack([self.dvs, fs], dim=1).flatten()\n", " return fltb, fotb, fstb\n", "\n", "\n", @@ -250,12 +265,12 @@ " crop_model_params_provider_ = copy.deepcopy(self.crop_model_params_provider)\n", " external_states_ = copy.deepcopy(self.external_states)\n", "\n", - " fltb_val, fotb_val, fstb_val = self.get_tables()\n", + " fltb, fotb, fstb = self.get_tables()\n", "\n", " # pass new value of parameters to the model\n", - " crop_model_params_provider_.set_override(\"FLTB\", fltb_val, check=False)\n", - " crop_model_params_provider_.set_override(\"FOTB\", fotb_val, check=False)\n", - " crop_model_params_provider_.set_override(\"FSTB\", fstb_val, check=False)\n", + " crop_model_params_provider_.set_override(\"FLTB\", fltb, check=False)\n", + " crop_model_params_provider_.set_override(\"FOTB\", fotb, check=False)\n", + " crop_model_params_provider_.set_override(\"FSTB\", fstb, check=False)\n", "\n", " engine = EngineTestHelper(\n", " crop_model_params_provider_,\n", @@ -274,8 +289,8 @@ }, { "cell_type": "code", - "execution_count": null, - "id": "f1f76ce0-cad3-4e9d-83c7-6231e788e9c1", + "execution_count": 9, + "id": "b87b8c08-cc5c-4848-9295-6c37b8fbc9b0", "metadata": {}, "outputs": [], "source": [ @@ -286,27 +301,13 @@ " agro_management_inputs,\n", " partitioning_config,\n", " external_states,\n", + " init_params,\n", ")" ] }, { "cell_type": "code", - "execution_count": 8, - "id": "3f28391c-b73f-4b5a-962c-60b609563f5d", - "metadata": {}, - "outputs": [], - "source": [ - "# init tables: change the values as needed\n", - "# here they are set randomly manually\n", - "fotb = torch.tensor([0.0, 0.5, 0.9, 0.1, 1.2, 0.75, 1.6, 0.95, 1.98, 0.85, 2.1, 0.9], dtype=torch.float32)\n", - "fltb = torch.tensor([0.0, 0.3, 0.9, 0.3, 1.2, 0.02, 1.6, 0.01, 1.98, 0.1, 2.1, 0.03], dtype=torch.float32)\n", - "fstb = 1.0 - fotb - fltb\n", - "opt_model.init_from_tables(fltb, fotb, fstb)" - ] - }, - { - "cell_type": "code", - "execution_count": null, + "execution_count": 10, "id": "78d797f5-4ac4-4380-85f3-6622a7b0f7fb", "metadata": {}, "outputs": [ @@ -314,63 +315,30 @@ "name": "stdout", "output_type": "stream", "text": [ - "Step 0, Loss 1.0416, FLTB mean 0.738, FOTB mean 1.002, FSTB mean 0.766\n", - "Step 1, Loss 0.9497, FLTB mean 0.768, FOTB mean 1.026, FSTB mean 0.783\n", - "Step 2, Loss 0.7792, FLTB mean 0.783, FOTB mean 1.035, FSTB mean 0.785\n", - "Step 3, Loss 0.6351, FLTB mean 0.773, FOTB mean 1.016, FSTB mean 0.760\n", - "Step 4, Loss 0.5335, FLTB mean 0.768, FOTB mean 1.003, FSTB mean 0.744\n", - "Step 5, Loss 0.5021, FLTB mean 0.774, FOTB mean 1.001, FSTB mean 0.741\n", - "Step 6, Loss 0.4655, FLTB mean 0.783, FOTB mean 1.002, FSTB mean 0.742\n", - "Step 7, Loss 0.4417, FLTB mean 0.787, FOTB mean 1.000, FSTB mean 0.739\n", - "Step 8, Loss 0.4040, FLTB mean 0.782, FOTB mean 0.991, FSTB mean 0.731\n", - "Step 9, Loss 0.3804, FLTB mean 0.791, FOTB mean 0.995, FSTB mean 0.738\n", - "Step 10, Loss 0.3423, FLTB mean 0.795, FOTB mean 0.994, FSTB mean 0.742\n", - "Step 11, Loss 0.2985, FLTB mean 0.792, FOTB mean 0.988, FSTB mean 0.740\n", - "Step 12, Loss 0.2451, FLTB mean 0.786, FOTB mean 0.980, FSTB mean 0.737\n", - "Step 13, Loss 0.2029, FLTB mean 0.788, FOTB mean 0.979, FSTB mean 0.741\n", - "Step 14, Loss 0.1902, FLTB mean 0.791, FOTB mean 0.981, FSTB mean 0.747\n", - "Step 15, Loss 0.1904, FLTB mean 0.794, FOTB mean 0.983, FSTB mean 0.751\n", - "Step 16, Loss 0.1962, FLTB mean 0.791, FOTB mean 0.979, FSTB mean 0.748\n", - "Step 17, Loss 0.1900, FLTB mean 0.792, FOTB mean 0.979, FSTB mean 0.748\n", - "Step 18, Loss 0.1806, FLTB mean 0.798, FOTB mean 0.982, FSTB mean 0.752\n", - "Step 19, Loss 0.1622, FLTB mean 0.800, FOTB mean 0.981, FSTB mean 0.752\n", - "Step 20, Loss 0.1420, FLTB mean 0.798, FOTB mean 0.976, FSTB mean 0.747\n", - "Step 21, Loss 0.1233, FLTB mean 0.799, FOTB mean 0.973, FSTB mean 0.745\n", - "Step 22, Loss 0.1194, FLTB mean 0.807, FOTB mean 0.980, FSTB mean 0.752\n", - "Step 23, Loss 0.1171, FLTB mean 0.805, FOTB mean 0.978, FSTB mean 0.750\n", - "Step 24, Loss 0.1140, FLTB mean 0.798, FOTB mean 0.971, FSTB mean 0.744\n", - "Step 25, Loss 0.1011, FLTB mean 0.798, FOTB mean 0.973, FSTB mean 0.746\n", - "Step 26, Loss 0.0880, FLTB mean 0.803, FOTB mean 0.979, FSTB mean 0.754\n", - "Step 27, Loss 0.0823, FLTB mean 0.800, FOTB mean 0.978, FSTB mean 0.755\n", - "Step 28, Loss 0.0687, FLTB mean 0.793, FOTB mean 0.973, FSTB mean 0.749\n", - "Step 29, Loss 0.1047, FLTB mean 0.796, FOTB mean 0.977, FSTB mean 0.753\n", - "Step 30, Loss 0.0928, FLTB mean 0.807, FOTB mean 0.986, FSTB mean 0.763\n", - "Step 31, Loss 0.0836, FLTB mean 0.807, FOTB mean 0.986, FSTB mean 0.760\n", - "Step 32, Loss 0.0695, FLTB mean 0.800, FOTB mean 0.979, FSTB mean 0.751\n", - "Step 33, Loss 0.0788, FLTB mean 0.801, FOTB mean 0.979, FSTB mean 0.751\n", - "Step 34, Loss 0.0771, FLTB mean 0.808, FOTB mean 0.984, FSTB mean 0.758\n", - "Step 35, Loss 0.0726, FLTB mean 0.810, FOTB mean 0.985, FSTB mean 0.760\n", - "Step 36, Loss 0.0824, FLTB mean 0.803, FOTB mean 0.978, FSTB mean 0.753\n", - "Step 37, Loss 0.0632, FLTB mean 0.800, FOTB mean 0.975, FSTB mean 0.750\n", - "Step 38, Loss 0.0703, FLTB mean 0.802, FOTB mean 0.978, FSTB mean 0.754\n", - "Step 39, Loss 0.0523, FLTB mean 0.806, FOTB mean 0.981, FSTB mean 0.759\n", - "Step 40, Loss 0.0593, FLTB mean 0.804, FOTB mean 0.980, FSTB mean 0.757\n", - "Step 41, Loss 0.0469, FLTB mean 0.799, FOTB mean 0.975, FSTB mean 0.753\n", - "Step 42, Loss 0.0679, FLTB mean 0.801, FOTB mean 0.976, FSTB mean 0.754\n", - "Step 43, Loss 0.0669, FLTB mean 0.807, FOTB mean 0.981, FSTB mean 0.759\n", - "Step 44, Loss 0.0525, FLTB mean 0.806, FOTB mean 0.980, FSTB mean 0.757\n", - "Step 45, Loss 0.0441, FLTB mean 0.801, FOTB mean 0.975, FSTB mean 0.752\n", - "Step 46, Loss 0.0553, FLTB mean 0.803, FOTB mean 0.976, FSTB mean 0.753\n", - "Step 47, Loss 0.0450, FLTB mean 0.807, FOTB mean 0.980, FSTB mean 0.758\n", - "Step 48, Loss 0.0579, FLTB mean 0.806, FOTB mean 0.978, FSTB mean 0.756\n", - "Step 49, Loss 0.0504, FLTB mean 0.800, FOTB mean 0.973, FSTB mean 0.750\n", - "Step 50, Loss 0.0566, FLTB mean 0.801, FOTB mean 0.974, FSTB mean 0.751\n", - "Step 51, Loss 0.0514, FLTB mean 0.807, FOTB mean 0.980, FSTB mean 0.758\n", - "Step 52, Loss 0.0533, FLTB mean 0.807, FOTB mean 0.981, FSTB mean 0.759\n", - "Step 53, Loss 0.0502, FLTB mean 0.799, FOTB mean 0.974, FSTB mean 0.751\n", - "Step 54, Loss 0.0517, FLTB mean 0.799, FOTB mean 0.974, FSTB mean 0.750\n", - "Step 55, Loss 0.0543, FLTB mean 0.805, FOTB mean 0.979, FSTB mean 0.756\n", - "Early stopping at step 55\n" + "Step 0, Loss 3.4981, FL mean 0.337, FO mean 0.344, FS mean 0.320\n", + "Step 1, Loss 3.0637, FL mean 0.340, FO mean 0.354, FS mean 0.306\n", + "Step 2, Loss 2.7177, FL mean 0.345, FO mean 0.362, FS mean 0.293\n", + "Step 3, Loss 2.4850, FL mean 0.350, FO mean 0.369, FS mean 0.281\n", + "Step 4, Loss 2.3371, FL mean 0.353, FO mean 0.374, FS mean 0.272\n", + "Step 5, Loss 2.2356, FL mean 0.357, FO mean 0.379, FS mean 0.265\n", + "Step 6, Loss 2.1515, FL mean 0.359, FO mean 0.381, FS mean 0.260\n", + "Step 7, Loss 2.0795, FL mean 0.361, FO mean 0.383, FS mean 0.256\n", + "Step 8, Loss 2.0224, FL mean 0.362, FO mean 0.384, FS mean 0.254\n", + "Step 9, Loss 1.9857, FL mean 0.362, FO mean 0.383, FS mean 0.254\n", + "Step 10, Loss 1.9665, FL mean 0.363, FO mean 0.380, FS mean 0.257\n", + "Step 11, Loss 1.9517, FL mean 0.365, FO mean 0.374, FS mean 0.261\n", + "Step 12, Loss 1.9483, FL mean 0.365, FO mean 0.368, FS mean 0.267\n", + "Step 13, Loss 1.9732, FL mean 0.364, FO mean 0.366, FS mean 0.271\n", + "Step 14, Loss 1.9969, FL mean 0.360, FO mean 0.367, FS mean 0.273\n", + "Step 15, Loss 2.0028, FL mean 0.354, FO mean 0.371, FS mean 0.275\n", + "Step 16, Loss 1.9974, FL mean 0.349, FO mean 0.376, FS mean 0.276\n", + "Step 17, Loss 1.9885, FL mean 0.344, FO mean 0.382, FS mean 0.274\n", + "Step 18, Loss 1.9795, FL mean 0.342, FO mean 0.387, FS mean 0.271\n", + "Step 19, Loss 1.9771, FL mean 0.340, FO mean 0.392, FS mean 0.267\n", + "Step 20, Loss 1.9814, FL mean 0.341, FO mean 0.395, FS mean 0.264\n", + "Step 21, Loss 1.9864, FL mean 0.344, FO mean 0.396, FS mean 0.260\n", + "Step 22, Loss 1.9882, FL mean 0.348, FO mean 0.395, FS mean 0.257\n", + "Early stopping at step 22\n" ] } ], @@ -397,9 +365,9 @@ " loss.backward()\n", " optimizer.step()\n", "\n", - " fltb, fotb, fstb = opt_model.get_tables()\n", + " fl, fo, fs = opt_model.get_partitions()\n", "\n", - " print(f\"Step {step}, Loss {loss.item():.4f}, FLTB mean {fltb.mean():.3f}, FOTB mean {fotb.mean():.3f}, FSTB mean {fstb.mean():.3f}\")\n", + " print(f\"Step {step}, Loss {loss.item():.4f}, FL mean {fl.mean():.3f}, FO mean {fo.mean():.3f}, FS mean {fs.mean():.3f}\")\n", " # Early stopping logic\n", " if loss.item() < best_loss - min_delta:\n", " best_loss = loss.item()\n", @@ -421,35 +389,35 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "558d47cf-c697-4169-ab46-fe76c52d24c2", "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "\n", - "def plot_xy_table(tbl, label=None, marker=\".\", color=\"r\"):\n", + "def plot_xy_table(tbl, label=None, marker=None, color=\"r\", linestyle=\"-\"):\n", " \"\"\"\n", " tbl: 1D tensor or numpy array [x0, y0, x1, y1, ...]\n", " \"\"\"\n", - " if hasattr(tbl, \"detach\"):\n", - " tbl = tbl.detach().cpu().numpy()\n", - "\n", " x = tbl[0::2]\n", " y = tbl[1::2]\n", "\n", - " plt.scatter(x, y, label=label, marker=marker, color=color)" + " if marker:\n", + " plt.scatter(x, y, label=label, marker=marker, color=color)\n", + " else:\n", + " plt.plot(x, y, label=label, color=color, linestyle=linestyle)" ] }, { "cell_type": "code", - "execution_count": null, - "id": "84280835-4651-4279-80c9-27426a7dc1cf", + "execution_count": 12, + "id": "feed8c79-589d-4e33-963c-0ad8935a9aba", "metadata": {}, "outputs": [ { "data": { - "image/png": "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W/aDBw/WqlWrdPDgQVmtVrVv377c49q3b6+zZ88qMzNTZrP5ituL+N+TKSwsVGlpqZ5++mndcsstFdY/cuSITCaTQkNDHcrHjRtn/z4qKkqvvfaabrzxRp07d06BgYFasGCBzGazPvzwQ/n4+EiS2rZtaz8mICBAhYWFCgsLc2ozPDxc33///RU/J1cjyAIAgDrt4MELIbZMSYl06JBrg2z//v315ptv2rcbNGjgsL+qM64V2bx5s4KCglRYWKjt27dr8uTJaty4sSZNmlRu/fz8fPn5+cnLy8uhfMeOHZo9e7Z2796ts2fPqvR/L97Ro0fVoUMH7dq1S3379rWH2MoICAhQXl5e5Z+cixBkAQBAnXbNNZK3t2OYNZmk6GjXttugQQNFl9NIdHS0vLy8tG/fPt19991O+/ft26dGjRopJCSkUu1FRkaqYcOGkmzrUb/55hs999xzFQbZkJAQ5eXlqaioSL6+vpKk3NxcxcbGKjY2VsuXL1fTpk119OhRxcbGqqioSJKclkNUxpkzZ9S0adMqH1/TWCMLAADqtIgI6e23beFVsn196y3XzsZeTpMmTTRw4ED94x//UH5+vsO+9PR0LV++XPfee6/TTGllmUwmp/NfrHPnzpKkn376yV62f/9+nT59Wi+88IL69u2ra6+91ulCrxtuuEGbN29WcXFxuef19fVVSUlJufv27t2rLl26VPKZuA5BFgAA1Hnjx0uHD9vuWnD4sG3bnd544w0VFhYqNjZWX375pVJTU5WYmKiBAweqRYsWevbZZyt9zoyMDKWnp+vIkSNatWqVEhISdNddd1VYv2nTpuratau++uore1nLli3l6+ur119/XSkpKfrkk0/0zDPPOBw3efJkZWdn6w9/+IO+++47HTx4UAkJCTpw4IAkqXXr1vrhhx904MABZWZm2gNvXl6eduzYoUGDBlX6ubkKQRYAABhCRIQUE+O+mdiLXXPNNfruu+8UFRWle++9V23atNGECRPUv39/bdu2TY0bN670Odu1a6fmzZsrOjpaTzzxhCZOnKjXX3/9ssfcf//9Wr58uX27adOmWrp0qVatWqUOHTrohRde0EsvveRwTJMmTfT555/r3Llz6tevn7p166Z33nnHvmb2gQceULt27dS9e3c1bdpUW7ZskSR9/PHHatmypfr27Vvp5+YqXtaaXqlcx2Vn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c89VGGRDQkKUl5enoqIi+fr6Vrq9S0P4uXPnNGfOHN1zzz1OdSt7d6ozZ86oadOmle5TTWCNLAAAqLsuvrArKkrassVxzeyldzMwKJPJpPz8/Ar3l927/6effnLa9/XXXzttt2/f/rLtde3aVQcOHFB0dLTTw9vbW+3bt1dqaqpOnDhRYTtl9u7dqy5duly2PVdhRhYAANRNaWnOF3ZdumY2JkbatMktF3xlZWVp165dDmVNmjSR5QpmiTMyMlRQUGBfWpCQkKDf//73FdZv2rSpunbtqq+++srpA6m2bNmiv//97xo6dKg2btyoVatW6dNPP71s+zNnztQdd9yhli1b6ve//728vb21e/du7d27V88++6wGDBigtm3bavTo0XrxxReVnZ2tv/zlL07nycvL044dO9z2IQ3MyAIAgLopKEgKDXW+sKsszEZF2fYHBbmle8nJyerSpYvDY86cOVd0bLt27dS8eXNFR0friSee0MSJE/X6669f9pj7779fy5cvdyp/5JFH9N1336lLly569tlnNW/ePMXGxl72XLGxsVq7dq02bNigG2+8UTfddJPmz5+vVq1aSZK8vb21evVq5efnq0ePHrr//vsd1tOW+fjjj9WyZUv17dv3ip53TWNGFgAA1E1ms5SYaLtP7KUzrhaLbSY2KMhWr4YtXbr0N/dfrs6sWbP08MMPO5XHxMTIarVWqU9jxozR3LlztW3bNocLr4KDg7Vy5coKj6uovdjY2MsG3rZt2zrdVuvSc7366quaOXPmlXTfJQiyAACg7jKbKw6qBr5/bFUEBATovffeU2Zmpru7IknKzMzUPffcoxEjRritDwRZAAAAg4iJiXF3F+xCQkL0+OOPu7UPBFkAAACDOnz4sLu74FZc7AUAAABDIsgCAADAkAiyAAAAMCSCLAAAAAyJIAsAAABDIsgCAAAYWHx8vNs+IlaSvLy8tGbNGkm2e8uGhoYqLS2tVtomyAIAAFxizJgx8vLycnocOnTIXic1NVXjxo1TeHi4fH191apVK02dOlWnT5+WJB09elQmk6nc85Q9li5dquTkZIeygIAAdezYUW+//fZv9nP37t1at26dpkyZ4rLXojJCQkI0atQozZo1q1baqxNBdsGCBWrdurX8/f3Vs2dPbd++/YqO+/DDD+Xl5aWhQ4e6toMAAMAtsrKkiib30tJs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NXz4cGVkZGj27NkymUxq1KiRTCZTuecpr40mTZooLi5OP/zww2/277nnntNdd92l1q1bu/JluGLjxo3Tzp07nT6+1tUIsgAAoM7KKshSWnZaufvSstOUVZDlsrbj4uJ04sQJh0dkZKROnTql3/3ud2rcuLHWr1+vffv2acmSJQoPD1dubq4effRRHTt2TPv379exY8cUERGhp59+2uE85bWRlJSkevXq6Y477rhsv/Ly8rR48WKNHz++Ws+vpKREpaWl1TpHGV9fX40cOVKvvfZajZzvShFkAQBAnZRVkKW45XHqt7SfUrNSHfalZqWq39J+ilse57Iw6+fnp7CwMIeHyWTSli1blJWVpUWLFqlLly6KjIxU//79NX/+fEVGRiowMFBhYWFq1qyZ/ZigoCCH85TXRufOnTV9+nSlpqbq1KlTFfZr3bp18vPz00033WQvS05OlpeXlz799FPdcMMN8vf310033aS9e/fa65QtB/jkk0/UoUMH+fn56ejRoyosLNSjjz6qFi1aqEGDBurZs6eSk5Md2ly6dKlatmyp+vXr6+6779bp06ed+jVkyBB98sknys/Pr8arXjkEWQAAUCflFOUoIzdDKWdTFLMsxh5mU7NSFbMsRilnU5SRm6Gcopxa7VdYWJjOnz+v1atXy2q11th5z507p3/+85+Kjo5WkyZNKqy3efNmdevWrdx9jz32mF5++WV9++23atq0qYYMGaLi4mL7/ry8PP3tb3/TokWL9OOPPyo0NFSTJ0/Wtm3b9OGHH+qHH37QsGHDFBcXp4MHD0qSvvnmG40fP16TJ0/Wrl271L9/fz377LNObXfv3l3nz5/XN998U81X4soRZAEAQJ0UERyh5NHJimoUZQ+zW1O32kNsVKMoJY9OVkRwhEvaX7t2rQIDA+2PYcOGSZJuuukmPfnkkxo5cqRCQkI0ePBgvfjiizp58mS12ggKCtInn3yiFStWyNu74oh25MgRhYeHl7tv1qxZGjhwoK6//notW7ZMJ0+e1OrVq+37i4uL9Y9//EO9e/dWu3btlJmZqSVLlmjVqlXq27ev2rRpo0cffVQ333yzlixZIkl69dVXFRcXp8cff1xt27bVlClTFBsb69R2/fr1ZTabdeTIkUq/DlVFkAUAAHWWxWxxCLN93u3jEGItZovL2u7fv7927dplf1y8/vO5555Tenq6Fi5cqI4dO2rhwoW69tprtWfPniq3sX37dsXGxmrw4MGXDYP5+fny9/cvd1+vXr3s3zdu3Fjt2rXTvn377GW+vr664YYb7Nt79uxRSUmJ2rZt6xDaN23apF9++UWStG/fPvXs2bPCdi4WEBCgvLy8337iNaRerbUEAABQBRazRQl3J6jPu33sZQl3J7g0xEpSgwYNFB0dXeH+Jk2aaNiwYRo2bJief/55denSRS+99JKWLVtW5TYWLVoks9msd955p9y37yUpJCREZ8+evfIncpGAgAD7XRMk23IGk8mkHTt2yGQyOdQNDAys9PnPnDmjpk2bVqlvVcGMLAAAqNNSs1IVvzreoSx+dbzTBWDu5OvrqzZt2ig3N7da5/Hy8pK3t/dlL5jq0qWLfvrpp3L3ff311/bvz549q59//lnt27e/7LlKSkqUkZGh6Ohoh0fZRWnt27d3Wvd6cTtlfvnlFxUUFKhLly6XfY41iSALAADqrIsv7IpqFKUt47Y4rJl1R5hdu3at/u///k9r167Vzz//rAMHDuill17SunXrdNddd1XqXIWFhUpPT1d6err27dunP//5zzp37txlP1wgNjZWP/74Y7mzsk8//bSSkpK0d+9ejRkzRiEhIRo6dGiF52rbtq3uu+8+jRo1Sv/f//f/6ddff9X27ds1d+5cffrpp5KkKVOmKDExUS+99JIOHjyoN954Q4mJiU7n2rx5s6KiotSmTZtKvQbVQZAFAAB1Ulp2mtOFXb0tvZ0uAKvoPrOu0qFDB9WvX1+PPPKIOnfurJtuukkrV67UokWLFB8f/9snuEhiYqKaN2+u5s2bq2fPnvr222+1atUqxcTEVHjM9ddfr65du2rlypVO+1544QVNnTpV3bp1U3p6uv7973/L19f3sn1YsmSJRo0apUceeUTt2rXT0KFD9e2336ply5aSbBe3vfPOO3r11VfVqVMnbdiwQU899ZTTeT744AM98MADlXr+1eVlrcn7RhhAdna2zGazsrKyFBwc7PL2iouLtW7dOt12223y8fFxeXuoWxh/z8b4ezbG36agoEC//vqrIiMjK7xAqSJl95HNyM1wurCrbKY2tEGoEu9LlNnfXMM9r57S0lJlZ2crODj4sncgqKpPP/1Ujz32mPbu3Stvb28lJyerf//+Onv2rMNHx9aWH3/8Ubfeeqt+/vln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", + "image/png": "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rCwvRSXeVq1aNSZMmMA333zDN998Q0xMDFdddRUrV670dmhSClwuF4888giJiYk0b9682HZlKb/w8/gziohXJSQkkJCQ4P65Q4cONGnShIkTJ/LSSy95MTIRKWsaNWpEo0aN3D936NCBbdu28cYbb/Dpp596MTIpDQ8++CDr1q3jjz/+8HYo50w9sj4iMjISm81GSkpKodtTUlKIjo4u8j7R0dHn1V58z4WcF6ez2+20bt2av/76qzRCFB9R3OtFaGgoQUFBXopKyqL4+Hi9XlyChgwZwo8//sjcuXOpWbPmWduWpfxCiayP8Pf3p23btsyePdt9m8vlYvbs2YV61wpKSEgo1B5g1qxZxbYX33Mh58XpnE4na9eupVq1aqUVpvgAvV7IuVq9erVeLy4hhmEwZMgQpk2bxpw5c6hTp87f3qdMvV54fHqZXLApU6YYAQEBxuTJk40NGzYY9957r1GpUiUjOTnZMAzDuOOOO4wnn3zS3X7hwoWGn5+f8dprrxkbN240RowYYdjtdmPt2rXeOgQpBed7Xrz44ovGL7/8Ymzbts1YsWKFceuttxqBgYHG+vXrvXUIUgrS09ONVatWGatWrTIAY8yYMcaqVauMXbt2GYZhGE8++aRxxx13uNtv377dCA4ONh5//HFj48aNxvjx4w2bzWbMnDnTW4cgpeB8z4s33njDmD59urF161Zj7dq1xtChQw2r1Wr89ttv3joEKWGDBw82wsLCjHnz5hkHDhxwb5mZme42ZTm/UCLrY9566y0jNjbW8Pf3N+Lj443Fixe793Xs2NHo379/ofZfffWV0bBhQ8Pf399o1qyZ8dNPP3k4YvGE8zkvHnnkEXfbqKgoo0ePHsbKlSu9ELWUpryySadveedC//79jY4dO55xn1atWhn+/v5G3bp1jY8++sjjcUvpOt/zYtSoUUa9evWMwMBAIyIiwrjqqquMOXPmeCd4KRVFnQ9Aof//spxfWAzDMDzdCywiIiIicrE0RlZEREREfJISWRERERHxSUpkRURERMQnKZEVEREREZ+kRFZEREREfJISWRERERHxSUpkRURERMQnKZEVEREREZ+kRFZEREREfJISWRGRMmbAgAFYLBYsFgt2u52oqCi6du3KpEmTcLlcrFixAovFwuLFi4u8f+fOnfnnP/8JwKFDhxg8eDCxsbEEBAQQHR1N9+7dWbhwoScPSUSkVPh5OwARETnTNddcw0cffYTT6SQlJYWZM2cydOhQpk6dyvfff09cXByTJk3i8ssvL3S/nTt3MnfuXH744QcAbrrpJnJycvj444+pW7cuKSkpzJ49myNHjnjjsERESpTFMAzD20GIiEi+AQMGcPz4caZPn17o9jlz5tC5c2fef/99srKyePbZZzlw4ADBwcHuNi+88ALvv/8+u3fvJj09nfDwcObNm0fHjh09fBQiIqVPQwtERHzE1VdfTVxcHN9++y39+vUjOzubqVOnuvcbhsHHH3/MgAEDsNlshISEEBISwvTp08nOzvZi5CIipUOJrIiID2ncuDE7d+4kIiKCG2+8kUmTJrn3zZ07l507dzJw4EAA/Pz8mDx5Mh9//DGVKlUiMTGRp59+mj///NNb4YuIlCglsiIiPsQwDCwWCwB33XUXv//+O9u2bQNg0qRJdOzYkfr167vb33TTTezfv5/vv/+ea665hnnz5tGmTRsmT57sjfBFREqUElkRER+yceNG6tSpA5jVCWJjY5k8eTJpaWl8++233H333WfcJzAwkK5du/Lcc8+RlJTEgAEDGDFihKdDFxEpcUpkRUR8xJw5c1i7di033XQTAFarlYEDB/Lxxx/z+eef4+/vz8033/y3j9O0aVMyMjJKO1wRkVKnRFZEpAzKzs4mOTmZffv2sXLlSl5++WVuuOEGrrvuOu688053u4EDB7Jv3z6efvpp+vbtS1BQkHvfkSNHuPrqq/nss8/4888/2bFjB19//TWjR4/mhhtu8MZhiYiUKNWRFREpg2bOnEm1atXw8/MjPDycuLg4xo0bR//+/bFa8/sgYmNj6dKlC7/++it33XVXoccICQmhffv2vPHGG2zbtg2Hw0FMTAyDBg3i6aef9vQhiYiUONWRFRERERGfpKEFIiIiIuKTlMiKiIiIiE9SIisiIiIiPkmJrIiIiIj4JCWyIiIiIuKTlMiKiIiIiE9SIisiIiIiPkmJrIiIiIj4JCWyIiIiIuKTlMiKiIiIiE9SIisiIiIiPkmJrIiIiIj4pP8HlPihUp/sj8YAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -460,23 +428,70 @@ ], "source": [ "# ---- compare the results with test data ----\n", + "plt.figure(figsize=(7, 5))\n", + "\n", + "dvs = torch.tensor([float(item[\"DVS\"]) for item in external_states], dtype=torch.float32)\n", + "\n", + "# Actual (dashed)\n", + "fl, fo, fs = expected_results[0, :, 0], expected_results[0, :, 1], expected_results[0, :, 2]\n", + "fltb_act = torch.stack([dvs, fl], dim=1).flatten()\n", + "fotb_act = torch.stack([dvs, fo], dim=1).flatten()\n", + "fstb_act = torch.stack([dvs, fs], dim=1).flatten()\n", + "\n", + "plot_xy_table(fltb_act, label=\"FL (act)\", color=\"r\", linestyle=\"-\")\n", + "plot_xy_table(fotb_act, label=\"FO (act)\", color=\"b\", linestyle=\"-\")\n", + "plot_xy_table(fstb_act, label=\"FS (act)\", color=\"g\", linestyle=\"-\")\n", + "\n", + "# predicted (solid)\n", + "predictions = results.detach()\n", + "fl, fo, fs = predictions[0, :, 0], predictions[0, :, 1], predictions[0, :, 2]\n", + "fltb_opt = torch.stack([dvs, fl], dim=1).flatten()\n", + "fotb_opt = torch.stack([dvs, fo], dim=1).flatten()\n", + "fstb_opt = torch.stack([dvs, fs], dim=1).flatten()\n", + "plot_xy_table(fltb_opt, label=\"FL (pred)\", color=\"r\", linestyle=\"--\")\n", + "plot_xy_table(fotb_opt, label=\"FO (pred)\", color=\"b\", linestyle=\"--\")\n", + "plot_xy_table(fstb_opt, label=\"FS (pred)\", color=\"g\", linestyle=\"--\")\n", + "\n", + "plt.xlabel(\"DVS\")\n", + "plt.ylabel(\"Partitioning\")\n", + "plt.legend()\n", + "plt.grid(True)\n", + "\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "84280835-4651-4279-80c9-27426a7dc1cf", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# ---- tables ----\n", "with torch.no_grad():\n", " fltb_opt, fotb_opt, fstb_opt = opt_model.get_tables()\n", "\n", "plt.figure(figsize=(7, 5))\n", "\n", - "# Actual (dashed)\n", - "plot_xy_table(crop_model_params_provider[\"FLTB\"][:12], label=\"FLTB (act)\", marker=\".\", color=\"r\")\n", - "plot_xy_table(crop_model_params_provider[\"FOTB\"][:12], label=\"FOTB (act)\", marker=\".\", color=\"b\")\n", - "plot_xy_table(crop_model_params_provider[\"FSTB\"][:12], label=\"FSTB (act)\", marker=\".\", color=\"g\")\n", - "\n", "# Optimized (solid)\n", - "plot_xy_table(fltb_opt, label=\"FLTB (pred)\", marker=\"x\", color=\"r\")\n", - "plot_xy_table(fotb_opt, label=\"FOTB (pred)\", marker=\"x\", color=\"b\")\n", - "plot_xy_table(fstb_opt, label=\"FSTB (pred)\", marker=\"x\", color=\"g\")\n", + "plot_xy_table(fltb_opt, label=\"FL (pred)\", color=\"r\")\n", + "plot_xy_table(fotb_opt, label=\"FO (pred)\", color=\"b\")\n", + "plot_xy_table(fstb_opt, label=\"FS (pred)\", color=\"g\")\n", "\n", - "plt.xlabel(\"x\")\n", - "plt.ylabel(\"y\")\n", + "plt.xlabel(\"DVS\")\n", + "plt.ylabel(\"Partitioning\")\n", "plt.legend()\n", "plt.grid(True)\n", "\n", @@ -487,7 +502,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9db31684-6b85-46a8-9e95-20631ae88b9f", + "id": "31cad3b0-89c6-4675-9327-9a1f9d2e915c", "metadata": {}, "outputs": [], "source": []