From 3cff9c74a98fdf5c32d3e45c8878ce48dedf0d29 Mon Sep 17 00:00:00 2001 From: thelfer1 Date: Sun, 23 Jun 2024 14:43:35 -0400 Subject: [PATCH] some debugging for notebook --- notebook.ipynb | 682 +++++++++++++++++++++++++------------------------ 1 file changed, 355 insertions(+), 327 deletions(-) diff --git a/notebook.ipynb b/notebook.ipynb index cab7caa..48d1723 100644 --- a/notebook.ipynb +++ b/notebook.ipynb @@ -12,13 +12,14 @@ "text": [ "Processing /data/tedwar42/thelfer1/TorchGRTL\n", " Preparing metadata (setup.py) ... \u001b[?25ldone\n", - "\u001b[?25hRequirement already satisfied: torch in /home/thelfer1/dev/lib/python3.8/site-packages (from GeneralRelativity==0.1) (2.0.1)\n", - "Requirement already satisfied: black in /home/thelfer1/dev/lib/python3.8/site-packages (from GeneralRelativity==0.1) (23.12.0)\n", + "\u001b[?25hRequirement already satisfied: torch in /home/thelfer1/dev/lib/python3.8/site-packages (from GeneralRelativity==0.1) (2.3.0)\n", + "Requirement already satisfied: black in /home/thelfer1/dev/lib/python3.8/site-packages (from GeneralRelativity==0.1) (24.4.1)\n", "Requirement already satisfied: pre-commit in /home/thelfer1/dev/lib/python3.8/site-packages (from GeneralRelativity==0.1) (3.5.0)\n", - "Requirement already satisfied: pytest in /home/thelfer1/dev/lib/python3.8/site-packages (from GeneralRelativity==0.1) (7.4.3)\n", + "Requirement already satisfied: pytest in /home/thelfer1/dev/lib/python3.8/site-packages (from GeneralRelativity==0.1) (8.1.1)\n", "Requirement already satisfied: numpy in /home/thelfer1/dev/lib/python3.8/site-packages (from GeneralRelativity==0.1) (1.24.4)\n", - "Requirement already satisfied: tqdm in /home/thelfer1/dev/lib/python3.8/site-packages (from GeneralRelativity==0.1) (4.66.1)\n", - "Requirement already satisfied: matplotlib in /home/thelfer1/dev/lib/python3.8/site-packages (from GeneralRelativity==0.1) (3.7.3)\n", + "Requirement already satisfied: tqdm in /home/thelfer1/dev/lib/python3.8/site-packages (from GeneralRelativity==0.1) (4.66.2)\n", + "Requirement already satisfied: matplotlib in /home/thelfer1/dev/lib/python3.8/site-packages (from GeneralRelativity==0.1) (3.7.5)\n", + "Requirement already satisfied: pyinterpx in /home/thelfer1/dev/lib/python3.8/site-packages (from GeneralRelativity==0.1) (0.2.3)\n", "Requirement already satisfied: click>=8.0.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from black->GeneralRelativity==0.1) (8.1.7)\n", "Requirement already satisfied: mypy-extensions>=0.4.3 in /home/thelfer1/dev/lib/python3.8/site-packages (from black->GeneralRelativity==0.1) (1.0.0)\n", "Requirement already satisfied: packaging>=22.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from black->GeneralRelativity==0.1) (23.1)\n", @@ -26,7 +27,6 @@ "Requirement already satisfied: platformdirs>=2 in /home/thelfer1/dev/lib/python3.8/site-packages (from black->GeneralRelativity==0.1) (3.10.0)\n", "Requirement already satisfied: tomli>=1.1.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from black->GeneralRelativity==0.1) (2.0.1)\n", "Requirement already satisfied: typing-extensions>=4.0.1 in /home/thelfer1/dev/lib/python3.8/site-packages (from black->GeneralRelativity==0.1) (4.8.0)\n", - "Requirement already satisfied: aiohttp>=3.7.4 in /home/thelfer1/dev/lib/python3.8/site-packages (from black->GeneralRelativity==0.1) (3.9.1)\n", "Requirement already satisfied: contourpy>=1.0.1 in /home/thelfer1/dev/lib/python3.8/site-packages (from matplotlib->GeneralRelativity==0.1) (1.1.1)\n", "Requirement already satisfied: cycler>=0.10 in /home/thelfer1/dev/lib/python3.8/site-packages (from matplotlib->GeneralRelativity==0.1) (0.11.0)\n", "Requirement already satisfied: fonttools>=4.22.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from matplotlib->GeneralRelativity==0.1) (4.42.1)\n", @@ -41,44 +41,36 @@ "Requirement already satisfied: pyyaml>=5.1 in /home/thelfer1/dev/lib/python3.8/site-packages (from pre-commit->GeneralRelativity==0.1) (6.0.1)\n", "Requirement already satisfied: virtualenv>=20.10.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from pre-commit->GeneralRelativity==0.1) (20.25.0)\n", "Requirement already satisfied: iniconfig in /home/thelfer1/dev/lib/python3.8/site-packages (from pytest->GeneralRelativity==0.1) (2.0.0)\n", - "Requirement already satisfied: pluggy<2.0,>=0.12 in /home/thelfer1/dev/lib/python3.8/site-packages (from pytest->GeneralRelativity==0.1) (1.3.0)\n", + "Requirement already satisfied: pluggy<2.0,>=1.4 in /home/thelfer1/dev/lib/python3.8/site-packages (from pytest->GeneralRelativity==0.1) (1.5.0)\n", "Requirement already satisfied: exceptiongroup>=1.0.0rc8 in /home/thelfer1/dev/lib/python3.8/site-packages (from pytest->GeneralRelativity==0.1) (1.1.3)\n", "Requirement already satisfied: filelock in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (3.12.4)\n", "Requirement already satisfied: sympy in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (1.12)\n", "Requirement already satisfied: networkx in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (3.1)\n", "Requirement already satisfied: jinja2 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (3.1.2)\n", - "Requirement already satisfied: nvidia-cuda-nvrtc-cu11==11.7.99 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (11.7.99)\n", - "Requirement already satisfied: nvidia-cuda-runtime-cu11==11.7.99 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (11.7.99)\n", - "Requirement already satisfied: nvidia-cuda-cupti-cu11==11.7.101 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (11.7.101)\n", - "Requirement already satisfied: nvidia-cudnn-cu11==8.5.0.96 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (8.5.0.96)\n", - "Requirement already satisfied: nvidia-cublas-cu11==11.10.3.66 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (11.10.3.66)\n", - "Requirement already satisfied: nvidia-cufft-cu11==10.9.0.58 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (10.9.0.58)\n", - "Requirement already satisfied: nvidia-curand-cu11==10.2.10.91 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (10.2.10.91)\n", - "Requirement already satisfied: nvidia-cusolver-cu11==11.4.0.1 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (11.4.0.1)\n", - "Requirement already satisfied: nvidia-cusparse-cu11==11.7.4.91 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (11.7.4.91)\n", - "Requirement already satisfied: nvidia-nccl-cu11==2.14.3 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (2.14.3)\n", - "Requirement already satisfied: nvidia-nvtx-cu11==11.7.91 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (11.7.91)\n", - "Requirement already satisfied: triton==2.0.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (2.0.0)\n", - "Requirement already satisfied: setuptools in /home/thelfer1/dev/lib/python3.8/site-packages (from nvidia-cublas-cu11==11.10.3.66->torch->GeneralRelativity==0.1) (68.2.0)\n", - "Requirement already satisfied: wheel in /home/thelfer1/dev/lib/python3.8/site-packages (from nvidia-cublas-cu11==11.10.3.66->torch->GeneralRelativity==0.1) (0.41.2)\n", - "Requirement already satisfied: cmake in /home/thelfer1/dev/lib/python3.8/site-packages (from triton==2.0.0->torch->GeneralRelativity==0.1) (3.27.5)\n", - "Requirement already satisfied: lit in /home/thelfer1/dev/lib/python3.8/site-packages (from triton==2.0.0->torch->GeneralRelativity==0.1) (16.0.6)\n", - "Requirement already satisfied: attrs>=17.3.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from aiohttp>=3.7.4->black->GeneralRelativity==0.1) (23.1.0)\n", - "Requirement already satisfied: multidict<7.0,>=4.5 in /home/thelfer1/dev/lib/python3.8/site-packages (from aiohttp>=3.7.4->black->GeneralRelativity==0.1) (6.0.4)\n", - "Requirement already satisfied: yarl<2.0,>=1.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from aiohttp>=3.7.4->black->GeneralRelativity==0.1) (1.9.4)\n", - "Requirement already satisfied: frozenlist>=1.1.1 in /home/thelfer1/dev/lib/python3.8/site-packages (from aiohttp>=3.7.4->black->GeneralRelativity==0.1) (1.4.1)\n", - "Requirement already satisfied: aiosignal>=1.1.2 in /home/thelfer1/dev/lib/python3.8/site-packages (from aiohttp>=3.7.4->black->GeneralRelativity==0.1) (1.3.1)\n", - "Requirement already satisfied: async-timeout<5.0,>=4.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from aiohttp>=3.7.4->black->GeneralRelativity==0.1) (4.0.3)\n", + "Requirement already satisfied: fsspec in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (2023.12.2)\n", + "Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.1.105 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (12.1.105)\n", + "Requirement already satisfied: nvidia-cuda-runtime-cu12==12.1.105 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (12.1.105)\n", + "Requirement already satisfied: nvidia-cuda-cupti-cu12==12.1.105 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (12.1.105)\n", + "Requirement already satisfied: nvidia-cudnn-cu12==8.9.2.26 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (8.9.2.26)\n", + "Requirement already satisfied: nvidia-cublas-cu12==12.1.3.1 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (12.1.3.1)\n", + "Requirement already satisfied: nvidia-cufft-cu12==11.0.2.54 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (11.0.2.54)\n", + "Requirement already satisfied: nvidia-curand-cu12==10.3.2.106 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (10.3.2.106)\n", + "Requirement already satisfied: nvidia-cusolver-cu12==11.4.5.107 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (11.4.5.107)\n", + "Requirement already satisfied: nvidia-cusparse-cu12==12.1.0.106 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (12.1.0.106)\n", + "Requirement already satisfied: nvidia-nccl-cu12==2.20.5 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (2.20.5)\n", + "Requirement already satisfied: nvidia-nvtx-cu12==12.1.105 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (12.1.105)\n", + "Requirement already satisfied: triton==2.3.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->GeneralRelativity==0.1) (2.3.0)\n", + "Requirement already satisfied: nvidia-nvjitlink-cu12 in /home/thelfer1/dev/lib/python3.8/site-packages (from nvidia-cusolver-cu12==11.4.5.107->torch->GeneralRelativity==0.1) (12.4.127)\n", "Requirement already satisfied: zipp>=3.1.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from importlib-resources>=3.2.0->matplotlib->GeneralRelativity==0.1) (3.17.0)\n", + "Requirement already satisfied: setuptools in /home/thelfer1/dev/lib/python3.8/site-packages (from nodeenv>=0.11.1->pre-commit->GeneralRelativity==0.1) (68.2.0)\n", "Requirement already satisfied: six>=1.5 in /home/thelfer1/dev/lib/python3.8/site-packages (from python-dateutil>=2.7->matplotlib->GeneralRelativity==0.1) (1.16.0)\n", "Requirement already satisfied: distlib<1,>=0.3.7 in /home/thelfer1/dev/lib/python3.8/site-packages (from virtualenv>=20.10.0->pre-commit->GeneralRelativity==0.1) (0.3.8)\n", "Requirement already satisfied: MarkupSafe>=2.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from jinja2->torch->GeneralRelativity==0.1) (2.1.3)\n", "Requirement already satisfied: mpmath>=0.19 in /home/thelfer1/dev/lib/python3.8/site-packages (from sympy->torch->GeneralRelativity==0.1) (1.3.0)\n", - "Requirement already satisfied: idna>=2.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from yarl<2.0,>=1.0->aiohttp>=3.7.4->black->GeneralRelativity==0.1) (3.4)\n", "Building wheels for collected packages: GeneralRelativity\n", " Building wheel for GeneralRelativity (setup.py) ... \u001b[?25ldone\n", - "\u001b[?25h Created wheel for GeneralRelativity: filename=GeneralRelativity-0.1-py3-none-any.whl size=3652 sha256=2a657ab65235d55d0168331246d6ea8eb8fc22b9d2cc4a10d3bec08a3dec621d\n", - " Stored in directory: /tmp/pip-ephem-wheel-cache-8753yb8k/wheels/67/3f/b7/b7b472c1395273a8376b6665a5562d40b224035f0c4c3d28f9\n", + "\u001b[?25h Created wheel for GeneralRelativity: filename=GeneralRelativity-0.1-py3-none-any.whl size=3660 sha256=5ca4d9b96a90c8d54e3c72ba1c15fff2c4cb5830eb93032a494bb4de6fd24621\n", + " Stored in directory: /tmp/pip-ephem-wheel-cache-msvr6yy8/wheels/67/3f/b7/b7b472c1395273a8376b6665a5562d40b224035f0c4c3d28f9\n", "Successfully built GeneralRelativity\n", "Installing collected packages: GeneralRelativity\n", " Attempting uninstall: GeneralRelativity\n", @@ -86,11 +78,14 @@ " Uninstalling GeneralRelativity-0.1:\n", " Successfully uninstalled GeneralRelativity-0.1\n", "Successfully installed GeneralRelativity-0.1\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m24.0\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", "Requirement already satisfied: pandas in /home/thelfer1/dev/lib/python3.8/site-packages (2.0.3)\n", "Requirement already satisfied: scikit-learn in /home/thelfer1/dev/lib/python3.8/site-packages (1.3.0)\n", "Requirement already satisfied: tensorboard in /home/thelfer1/dev/lib/python3.8/site-packages (2.14.0)\n", - "Requirement already satisfied: torch in /home/thelfer1/dev/lib/python3.8/site-packages (2.0.1)\n", - "Requirement already satisfied: tqdm in /home/thelfer1/dev/lib/python3.8/site-packages (4.66.1)\n", + "Requirement already satisfied: torch in /home/thelfer1/dev/lib/python3.8/site-packages (2.3.0)\n", + "Requirement already satisfied: tqdm in /home/thelfer1/dev/lib/python3.8/site-packages (4.66.2)\n", "Requirement already satisfied: python-dateutil>=2.8.2 in /home/thelfer1/dev/lib/python3.8/site-packages (from pandas) (2.8.2)\n", "Requirement already satisfied: pytz>=2020.1 in /home/thelfer1/dev/lib/python3.8/site-packages (from pandas) (2023.3.post1)\n", "Requirement already satisfied: tzdata>=2022.1 in /home/thelfer1/dev/lib/python3.8/site-packages (from pandas) (2023.3)\n", @@ -110,24 +105,24 @@ "Requirement already satisfied: werkzeug>=1.0.1 in /home/thelfer1/dev/lib/python3.8/site-packages (from tensorboard) (2.3.7)\n", "Requirement already satisfied: wheel>=0.26 in /home/thelfer1/dev/lib/python3.8/site-packages (from tensorboard) (0.41.2)\n", "Requirement already satisfied: filelock in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (3.12.4)\n", - "Requirement already satisfied: typing-extensions in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (4.8.0)\n", + "Requirement already satisfied: typing-extensions>=4.8.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (4.8.0)\n", "Requirement already satisfied: sympy in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (1.12)\n", "Requirement already satisfied: networkx in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (3.1)\n", "Requirement already satisfied: jinja2 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (3.1.2)\n", - "Requirement already satisfied: nvidia-cuda-nvrtc-cu11==11.7.99 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (11.7.99)\n", - "Requirement already satisfied: nvidia-cuda-runtime-cu11==11.7.99 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (11.7.99)\n", - "Requirement already satisfied: nvidia-cuda-cupti-cu11==11.7.101 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (11.7.101)\n", - "Requirement already satisfied: nvidia-cudnn-cu11==8.5.0.96 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (8.5.0.96)\n", - "Requirement already satisfied: nvidia-cublas-cu11==11.10.3.66 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (11.10.3.66)\n", - "Requirement already satisfied: nvidia-cufft-cu11==10.9.0.58 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (10.9.0.58)\n", - "Requirement already satisfied: nvidia-curand-cu11==10.2.10.91 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (10.2.10.91)\n", - "Requirement already satisfied: nvidia-cusolver-cu11==11.4.0.1 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (11.4.0.1)\n", - "Requirement already satisfied: nvidia-cusparse-cu11==11.7.4.91 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (11.7.4.91)\n", - "Requirement already satisfied: nvidia-nccl-cu11==2.14.3 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (2.14.3)\n", - "Requirement already satisfied: nvidia-nvtx-cu11==11.7.91 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (11.7.91)\n", - "Requirement already satisfied: triton==2.0.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (2.0.0)\n", - "Requirement already satisfied: cmake in /home/thelfer1/dev/lib/python3.8/site-packages (from triton==2.0.0->torch) (3.27.5)\n", - "Requirement already satisfied: lit in /home/thelfer1/dev/lib/python3.8/site-packages (from triton==2.0.0->torch) (16.0.6)\n", + "Requirement already satisfied: fsspec in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (2023.12.2)\n", + "Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.1.105 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (12.1.105)\n", + "Requirement already satisfied: nvidia-cuda-runtime-cu12==12.1.105 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (12.1.105)\n", + "Requirement already satisfied: nvidia-cuda-cupti-cu12==12.1.105 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (12.1.105)\n", + "Requirement already satisfied: nvidia-cudnn-cu12==8.9.2.26 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (8.9.2.26)\n", + "Requirement already satisfied: nvidia-cublas-cu12==12.1.3.1 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (12.1.3.1)\n", + "Requirement already satisfied: nvidia-cufft-cu12==11.0.2.54 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (11.0.2.54)\n", + "Requirement already satisfied: nvidia-curand-cu12==10.3.2.106 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (10.3.2.106)\n", + "Requirement already satisfied: nvidia-cusolver-cu12==11.4.5.107 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (11.4.5.107)\n", + "Requirement already satisfied: nvidia-cusparse-cu12==12.1.0.106 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (12.1.0.106)\n", + "Requirement already satisfied: nvidia-nccl-cu12==2.20.5 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (2.20.5)\n", + "Requirement already satisfied: nvidia-nvtx-cu12==12.1.105 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (12.1.105)\n", + "Requirement already satisfied: triton==2.3.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch) (2.3.0)\n", + "Requirement already satisfied: nvidia-nvjitlink-cu12 in /home/thelfer1/dev/lib/python3.8/site-packages (from nvidia-cusolver-cu12==11.4.5.107->torch) (12.4.127)\n", "Requirement already satisfied: cachetools<6.0,>=2.0.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from google-auth<3,>=1.6.3->tensorboard) (5.3.1)\n", "Requirement already satisfied: pyasn1-modules>=0.2.1 in /home/thelfer1/dev/lib/python3.8/site-packages (from google-auth<3,>=1.6.3->tensorboard) (0.3.0)\n", "Requirement already satisfied: rsa<5,>=3.1.4 in /home/thelfer1/dev/lib/python3.8/site-packages (from google-auth<3,>=1.6.3->tensorboard) (4.9)\n", @@ -143,14 +138,17 @@ "Requirement already satisfied: zipp>=0.5 in /home/thelfer1/dev/lib/python3.8/site-packages (from importlib-metadata>=4.4->markdown>=2.6.8->tensorboard) (3.17.0)\n", "Requirement already satisfied: pyasn1<0.6.0,>=0.4.6 in /home/thelfer1/dev/lib/python3.8/site-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard) (0.5.0)\n", "Requirement already satisfied: oauthlib>=3.0.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<1.1,>=0.5->tensorboard) (3.2.2)\n", - "Requirement already satisfied: pyinterpx in /home/thelfer1/dev/lib/python3.8/site-packages (0.2.1)\n", - "Requirement already satisfied: torch in /home/thelfer1/dev/lib/python3.8/site-packages (from pyinterpx) (2.0.1)\n", - "Requirement already satisfied: black in /home/thelfer1/dev/lib/python3.8/site-packages (from pyinterpx) (23.12.0)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m24.0\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Requirement already satisfied: pyinterpx in /home/thelfer1/dev/lib/python3.8/site-packages (0.2.3)\n", + "Requirement already satisfied: torch in /home/thelfer1/dev/lib/python3.8/site-packages (from pyinterpx) (2.3.0)\n", + "Requirement already satisfied: black in /home/thelfer1/dev/lib/python3.8/site-packages (from pyinterpx) (24.4.1)\n", "Requirement already satisfied: pre-commit in /home/thelfer1/dev/lib/python3.8/site-packages (from pyinterpx) (3.5.0)\n", - "Requirement already satisfied: pytest in /home/thelfer1/dev/lib/python3.8/site-packages (from pyinterpx) (7.4.3)\n", + "Requirement already satisfied: pytest in /home/thelfer1/dev/lib/python3.8/site-packages (from pyinterpx) (8.1.1)\n", "Requirement already satisfied: numpy in /home/thelfer1/dev/lib/python3.8/site-packages (from pyinterpx) (1.24.4)\n", - "Requirement already satisfied: tqdm in /home/thelfer1/dev/lib/python3.8/site-packages (from pyinterpx) (4.66.1)\n", - "Requirement already satisfied: matplotlib in /home/thelfer1/dev/lib/python3.8/site-packages (from pyinterpx) (3.7.3)\n", + "Requirement already satisfied: tqdm in /home/thelfer1/dev/lib/python3.8/site-packages (from pyinterpx) (4.66.2)\n", + "Requirement already satisfied: matplotlib in /home/thelfer1/dev/lib/python3.8/site-packages (from pyinterpx) (3.7.5)\n", "Requirement already satisfied: click>=8.0.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from black->pyinterpx) (8.1.7)\n", "Requirement already satisfied: mypy-extensions>=0.4.3 in /home/thelfer1/dev/lib/python3.8/site-packages (from black->pyinterpx) (1.0.0)\n", "Requirement already satisfied: packaging>=22.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from black->pyinterpx) (23.1)\n", @@ -158,7 +156,6 @@ "Requirement already satisfied: platformdirs>=2 in /home/thelfer1/dev/lib/python3.8/site-packages (from black->pyinterpx) (3.10.0)\n", "Requirement already satisfied: tomli>=1.1.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from black->pyinterpx) (2.0.1)\n", "Requirement already satisfied: typing-extensions>=4.0.1 in /home/thelfer1/dev/lib/python3.8/site-packages (from black->pyinterpx) (4.8.0)\n", - "Requirement already satisfied: aiohttp>=3.7.4 in /home/thelfer1/dev/lib/python3.8/site-packages (from black->pyinterpx) (3.9.1)\n", "Requirement already satisfied: contourpy>=1.0.1 in /home/thelfer1/dev/lib/python3.8/site-packages (from matplotlib->pyinterpx) (1.1.1)\n", "Requirement already satisfied: cycler>=0.10 in /home/thelfer1/dev/lib/python3.8/site-packages (from matplotlib->pyinterpx) (0.11.0)\n", "Requirement already satisfied: fonttools>=4.22.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from matplotlib->pyinterpx) (4.42.1)\n", @@ -173,40 +170,35 @@ "Requirement already satisfied: pyyaml>=5.1 in /home/thelfer1/dev/lib/python3.8/site-packages (from pre-commit->pyinterpx) (6.0.1)\n", "Requirement already satisfied: virtualenv>=20.10.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from pre-commit->pyinterpx) (20.25.0)\n", "Requirement already satisfied: iniconfig in /home/thelfer1/dev/lib/python3.8/site-packages (from pytest->pyinterpx) (2.0.0)\n", - "Requirement already satisfied: pluggy<2.0,>=0.12 in /home/thelfer1/dev/lib/python3.8/site-packages (from pytest->pyinterpx) (1.3.0)\n", + "Requirement already satisfied: pluggy<2.0,>=1.4 in /home/thelfer1/dev/lib/python3.8/site-packages (from pytest->pyinterpx) (1.5.0)\n", "Requirement already satisfied: exceptiongroup>=1.0.0rc8 in /home/thelfer1/dev/lib/python3.8/site-packages (from pytest->pyinterpx) (1.1.3)\n", "Requirement already satisfied: filelock in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (3.12.4)\n", "Requirement already satisfied: sympy in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (1.12)\n", "Requirement already satisfied: networkx in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (3.1)\n", "Requirement already satisfied: jinja2 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (3.1.2)\n", - "Requirement already satisfied: nvidia-cuda-nvrtc-cu11==11.7.99 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (11.7.99)\n", - "Requirement already satisfied: nvidia-cuda-runtime-cu11==11.7.99 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (11.7.99)\n", - "Requirement already satisfied: nvidia-cuda-cupti-cu11==11.7.101 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (11.7.101)\n", - "Requirement already satisfied: nvidia-cudnn-cu11==8.5.0.96 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (8.5.0.96)\n", - "Requirement already satisfied: nvidia-cublas-cu11==11.10.3.66 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (11.10.3.66)\n", - "Requirement already satisfied: nvidia-cufft-cu11==10.9.0.58 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (10.9.0.58)\n", - "Requirement already satisfied: nvidia-curand-cu11==10.2.10.91 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (10.2.10.91)\n", - "Requirement already satisfied: nvidia-cusolver-cu11==11.4.0.1 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (11.4.0.1)\n", - "Requirement already satisfied: nvidia-cusparse-cu11==11.7.4.91 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (11.7.4.91)\n", - "Requirement already satisfied: nvidia-nccl-cu11==2.14.3 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (2.14.3)\n", - "Requirement already satisfied: nvidia-nvtx-cu11==11.7.91 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (11.7.91)\n", - "Requirement already satisfied: triton==2.0.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (2.0.0)\n", - "Requirement already satisfied: setuptools in /home/thelfer1/dev/lib/python3.8/site-packages (from nvidia-cublas-cu11==11.10.3.66->torch->pyinterpx) (68.2.0)\n", - "Requirement already satisfied: wheel in /home/thelfer1/dev/lib/python3.8/site-packages (from nvidia-cublas-cu11==11.10.3.66->torch->pyinterpx) (0.41.2)\n", - "Requirement already satisfied: cmake in /home/thelfer1/dev/lib/python3.8/site-packages (from triton==2.0.0->torch->pyinterpx) (3.27.5)\n", - "Requirement already satisfied: lit in /home/thelfer1/dev/lib/python3.8/site-packages (from triton==2.0.0->torch->pyinterpx) (16.0.6)\n", - "Requirement already satisfied: attrs>=17.3.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from aiohttp>=3.7.4->black->pyinterpx) (23.1.0)\n", - "Requirement already satisfied: multidict<7.0,>=4.5 in /home/thelfer1/dev/lib/python3.8/site-packages (from aiohttp>=3.7.4->black->pyinterpx) (6.0.4)\n", - "Requirement already satisfied: yarl<2.0,>=1.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from aiohttp>=3.7.4->black->pyinterpx) (1.9.4)\n", - "Requirement already satisfied: frozenlist>=1.1.1 in /home/thelfer1/dev/lib/python3.8/site-packages (from aiohttp>=3.7.4->black->pyinterpx) (1.4.1)\n", - "Requirement already satisfied: aiosignal>=1.1.2 in /home/thelfer1/dev/lib/python3.8/site-packages (from aiohttp>=3.7.4->black->pyinterpx) (1.3.1)\n", - "Requirement already satisfied: async-timeout<5.0,>=4.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from aiohttp>=3.7.4->black->pyinterpx) (4.0.3)\n", + "Requirement already satisfied: fsspec in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (2023.12.2)\n", + "Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.1.105 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (12.1.105)\n", + "Requirement already satisfied: nvidia-cuda-runtime-cu12==12.1.105 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (12.1.105)\n", + "Requirement already satisfied: nvidia-cuda-cupti-cu12==12.1.105 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (12.1.105)\n", + "Requirement already satisfied: nvidia-cudnn-cu12==8.9.2.26 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (8.9.2.26)\n", + "Requirement already satisfied: nvidia-cublas-cu12==12.1.3.1 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (12.1.3.1)\n", + "Requirement already satisfied: nvidia-cufft-cu12==11.0.2.54 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (11.0.2.54)\n", + "Requirement already satisfied: nvidia-curand-cu12==10.3.2.106 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (10.3.2.106)\n", + "Requirement already satisfied: nvidia-cusolver-cu12==11.4.5.107 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (11.4.5.107)\n", + "Requirement already satisfied: nvidia-cusparse-cu12==12.1.0.106 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (12.1.0.106)\n", + "Requirement already satisfied: nvidia-nccl-cu12==2.20.5 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (2.20.5)\n", + "Requirement already satisfied: nvidia-nvtx-cu12==12.1.105 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (12.1.105)\n", + "Requirement already satisfied: triton==2.3.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from torch->pyinterpx) (2.3.0)\n", + "Requirement already satisfied: nvidia-nvjitlink-cu12 in /home/thelfer1/dev/lib/python3.8/site-packages (from nvidia-cusolver-cu12==11.4.5.107->torch->pyinterpx) (12.4.127)\n", "Requirement already satisfied: zipp>=3.1.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from importlib-resources>=3.2.0->matplotlib->pyinterpx) (3.17.0)\n", + "Requirement already satisfied: setuptools in /home/thelfer1/dev/lib/python3.8/site-packages (from nodeenv>=0.11.1->pre-commit->pyinterpx) (68.2.0)\n", "Requirement already satisfied: six>=1.5 in /home/thelfer1/dev/lib/python3.8/site-packages (from python-dateutil>=2.7->matplotlib->pyinterpx) (1.16.0)\n", "Requirement already satisfied: distlib<1,>=0.3.7 in /home/thelfer1/dev/lib/python3.8/site-packages (from virtualenv>=20.10.0->pre-commit->pyinterpx) (0.3.8)\n", "Requirement already satisfied: MarkupSafe>=2.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from jinja2->torch->pyinterpx) (2.1.3)\n", "Requirement already satisfied: mpmath>=0.19 in /home/thelfer1/dev/lib/python3.8/site-packages (from sympy->torch->pyinterpx) (1.3.0)\n", - "Requirement already satisfied: idna>=2.0 in /home/thelfer1/dev/lib/python3.8/site-packages (from yarl<2.0,>=1.0->aiohttp>=3.7.4->black->pyinterpx) (3.4)\n" + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m24.0\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n" ] } ], @@ -218,7 +210,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "id": "113757c9-d051-41d3-9eab-5c65bc8c1098", "metadata": {}, "outputs": [], @@ -257,14 +249,14 @@ "from GeneralRelativity.CCZ4Geometry import compute_ricci\n", "from GeneralRelativity.Constraints import constraint_equations\n", "\n", - "from torch.utils.data import TensorDataset, DataLoader\n", + "from torch.utils.data import DataLoader, TensorDataset, random_split\n", "\n", "time_stamp = int(time.time())" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "id": "0581229a-6848-4bde-b6db-8bc5fdff61e5", "metadata": {}, "outputs": [ @@ -287,7 +279,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "id": "4c57d113-0439-4c27-bcbc-c33f963c0c94", "metadata": {}, "outputs": [ @@ -301,7 +293,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "b7832fb5484847309daff50d363bd99a", + "model_id": "8eb802ac50b34014b1d6c135a6f5637a", "version_major": 2, "version_minor": 0 }, @@ -314,69 +306,115 @@ } ], "source": [ + "small_data = True\n", + "\n", "# Loading small testdata\n", - "filenamesX = (\n", - " \"/home/thelfer1/scr4_tedwar42/thelfer1/data_gen_binary/outputXdata_level1_*\"\n", - ")\n", - "num_varsX = 100\n", - "dataX = get_box_format(filenamesX, num_varsX)\n", - "# Cutting out extra values added for validation\n", - "dataX = dataX[:, :, :, :, :25]" + "if small_data:\n", + " filenamesX = (\n", + " \"/home/thelfer1/scr4_tedwar42/thelfer1/data_gen_binary/outputXdata_level1_*\"\n", + " )\n", + " num_vars = 100\n", + " factor = 2 # how much refinement\n", + " scaling_factor = 1e-2 # Scaling factor for error\n", + " dataX = get_box_format(filenamesX, num_vars)\n", + " # Cutting out extra values added for validation\n", + " dataX = dataX[:, :, :, :, :25]\n", + "else:\n", + " # Instantiate the model\n", + " factor = 2 # how much refinement\n", + " res_level = 6\n", + " scaling_factor = 1e-3\n", + " filenamesX = f\"/home/thelfer1/scr4_tedwar42/thelfer1/high_end_data/outputXdata_level{res_level}_step*.dat\"\n", + "\n", + " num_vars = 25\n", + " dataX = get_box_format(filenamesX, num_vars)\n", + " # Cutting out extra values added for validation\n", + " dataX = dataX[:, :, :, :, :25]\n", + "\n", + "dataX_shape = dataX.shape\n", + "# Permute data to put the channel as the second dimension (N, C, H, W, D)\n", + "dataX = dataX.permute(0, 4, 1, 2, 3)" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "id": "771b86ac-4f14-477b-b969-b8499b75e560", "metadata": {}, "outputs": [], "source": [ "# A small default model\n", "class SuperResolution3DNet(torch.nn.Module):\n", - " def __init__(self):\n", + " def __init__(self, factor):\n", " super(SuperResolution3DNet, self).__init__()\n", - "\n", - " points = 6\n", - " power = 3\n", - " channels = 25\n", - " self.interpolation = interp(points, power, channels, True)\n", + " self.points = 6\n", + " self.power = 3\n", + " self.channels = 25\n", + " self.interpolation = interp(\n", + " num_points=self.points,\n", + " max_degree=self.power,\n", + " num_channels=self.channels,\n", + " learnable=False,\n", + " align_corners=True,\n", + " factor=factor,\n", + " dtype=torch.double,\n", + " )\n", "\n", " # Encoder\n", " # The encoder consists of two 3D convolutional layers.\n", + " # The first conv layer expands the channel size from 25 to 64.\n", + " # The second conv layer further expands the channel size from 64 to 128.\n", + " # ReLU activation functions are used for non-linearity.\n", " self.encoder = torch.nn.Sequential(\n", " torch.nn.Conv3d(25, 64, kernel_size=3, padding=1),\n", " torch.nn.ReLU(inplace=True),\n", - " torch.nn.Conv3d(64, 128, kernel_size=3, padding=1),\n", + " torch.nn.Conv3d(64, 64, kernel_size=3, padding=1),\n", + " torch.nn.ReLU(inplace=True),\n", + " torch.nn.Conv3d(64, 64, kernel_size=3, padding=1),\n", + " torch.nn.ReLU(inplace=True),\n", + " torch.nn.Conv3d(64, 25, kernel_size=3, padding=1),\n", " torch.nn.ReLU(inplace=True),\n", " )\n", "\n", " # Decoder\n", + " # The decoder uses a transposed 3D convolution (or deconvolution) to upsample the feature maps.\n", + " # The channel size is reduced from 128 back to 64.\n", + " # A final 3D convolution reduces the channel size back to the original size of 25.\n", " self.decoder = torch.nn.Sequential(\n", " torch.nn.ConvTranspose3d(128, 64, kernel_size=4, stride=2, padding=1),\n", " torch.nn.ReLU(inplace=True),\n", " torch.nn.Conv3d(64, 25, kernel_size=3, padding=1),\n", " )\n", "\n", - " def forward(self, x):\n", - " # Save the original input for later use\n", - " tmp = x\n", - " # x = self.interpolation(x)\n", - " # Apply the encoder\n", - " x = self.encoder(x)\n", - " ## Apply the decoder\n", - " x = self.decoder(x)\n", - " # x[:, :, ::2, ::2, ::2] = tmp[:, :, ...]\n", + " # Initialize only the weights in self.encoder and self.decoder\n", + " # self.initialize_encoder_decoder_weights()\n", "\n", - " return x\n", + " def initialize_encoder_decoder_weights(self):\n", + " for m in [self.encoder, self.decoder]:\n", + " for layer in m:\n", + " if isinstance(layer, torch.nn.Conv3d) or isinstance(\n", + " layer, torch.nn.ConvTranspose3d\n", + " ):\n", + " if hasattr(layer, \"weight\") and layer.weight is not None:\n", + " init.normal_(\n", + " layer.weight, mean=0, std=1e-3\n", + " ) # Adjust std as needed\n", + " if layer.bias is not None:\n", + " init.constant_(layer.bias, 0)\n", "\n", + " def forward(self, x):\n", + " # Reusing the input data for faster learning\n", "\n", - "# Instantiate the model\n", - "net = SuperResolution3DNet().to(torch.double)" + " x = self.interpolation(x)\n", + " tmp = x\n", + " x = x + self.encoder(tmp) * scaling_factor\n", + "\n", + " return x" ] }, { "cell_type": "code", - "execution_count": 90, + "execution_count": 6, "id": "456b85c7-a008-43bd-9dd5-153b043d7ee6", "metadata": {}, "outputs": [], @@ -386,12 +424,13 @@ "\n", "losses_train = []\n", "losses_val = []\n", + "losses_val_interp = []\n", "steps_val = []" ] }, { "cell_type": "code", - "execution_count": 91, + "execution_count": 7, "id": "823b3067-1b41-4cb4-894b-32b3f14884e1", "metadata": {}, "outputs": [ @@ -399,21 +438,31 @@ "name": "stdout", "output_type": "stream", "text": [ - "Input Shape: torch.Size([1, 25, 32, 32, 32])\n", - "Output Shape: torch.Size([1, 25, 64, 64, 64])\n" + "5\n", + "Input Shape: torch.Size([1, 25, 8, 8, 8])\n", + "Output Shape: torch.Size([1, 25, 6, 6, 6])\n" ] } ], "source": [ "# Create a random 3D low-resolution input tensor (batch size, channels, depth, height, width)\n", - "input_tensor = torch.randn(1, 25, 32, 32, 32) # Adjust dimensions as needed\n", + "input_tensor = torch.randn(\n", + " 1, dataX_shape[4], dataX_shape[1] // 2, dataX_shape[2] // 2, dataX_shape[3] // 2\n", + ").to(torch.double)\n", "\n", "# Instantiate the model\n", - "model = SuperResolution3DNet()\n", + "net = SuperResolution3DNet(factor).to(torch.double)\n", "\n", - "# Forward pass to obtain the high-resolution output\n", - "output_tensor = model(input_tensor)\n", + "restart = False\n", + "file_path = \"Run14315038/model_epoch_counter_0000000240_data_time_1718928325.pth\"\n", + "if restart and os.path.exists(file_path):\n", + " net.load_state_dict(torch.load(file_path))\n", "\n", + "# Forward pass to obtain the high-resolution output\n", + "output_tensor = net(input_tensor)\n", + "# Relevant for ghosts\n", + "diff = (dataX_shape[-2] - output_tensor.shape[-1]) // 2\n", + "print(diff)\n", "# Check the shape of the output\n", "print(\"Input Shape:\", input_tensor.shape)\n", "print(\"Output Shape:\", output_tensor.shape)" @@ -421,20 +470,20 @@ }, { "cell_type": "code", - "execution_count": 92, + "execution_count": 8, "id": "748ebfa6-d35a-4e65-8ca0-b7ee0e212d2b", "metadata": {}, "outputs": [], "source": [ "optimizerBFGS = torch.optim.LBFGS(\n", " net.parameters(), lr=0.1\n", - ") # Use LBFGS sometimes, it really does do magic sometimes, though its a bit of a diva\n", + ") # Use LBFGS sometimes, it really does do magic sometimes, though its a bit expensive\n", "optimizerADAM = torch.optim.Adam(net.parameters(), lr=0.0001)" ] }, { "cell_type": "code", - "execution_count": 93, + "execution_count": 9, "id": "6999db8f-b73b-4a36-b0a0-b70caaed8b0d", "metadata": {}, "outputs": [], @@ -442,27 +491,30 @@ "# Define the ratio for the split (e.g., 80% train, 20% test)\n", "train_ratio = 0.8\n", "test_ratio = 1 - train_ratio\n", + "batch_size = 100\n", "\n", "# Calculate the number of samples for each split\n", "num_samples = len(dataX)\n", "num_train = int(train_ratio * num_samples)\n", "num_test = num_samples - num_train\n", "\n", - "train_torch = dataX[:num_train].permute(0, 4, 1, 2, 3).to(device)\n", - "test_torch = dataX[num_train:].permute(0, 4, 1, 2, 3).to(device)\n", "\n", - "batch_size = 53\n", + "# Create a dataset from tensors\n", + "dataset = TensorDataset(dataX)\n", + "\n", + "# Split the dataset into training and testing datasets\n", + "train_dataset, test_dataset = random_split(dataset, [num_train, num_test])\n", "\n", "# Create DataLoader for batching -- in case data gets larger\n", "train_loader = DataLoader(\n", - " dataset=TensorDataset(train_torch),\n", + " dataset=train_dataset,\n", " batch_size=batch_size,\n", " shuffle=False,\n", " pin_memory=False,\n", " num_workers=0,\n", ")\n", "test_loader = DataLoader(\n", - " dataset=TensorDataset(test_torch),\n", + " dataset=test_dataset,\n", " batch_size=batch_size,\n", " shuffle=False,\n", " num_workers=0,\n", @@ -471,10 +523,18 @@ }, { "cell_type": "code", - "execution_count": 94, + "execution_count": 10, "id": "1a7058ed-a1f3-4af5-ba97-f816558320c7", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "dx = 0.25\n" + ] + } + ], "source": [ "# Magical loss coming from General Relativity\n", "class Hamiltonian_loss:\n", @@ -501,47 +561,54 @@ " return loss\n", "\n", "\n", - "oneoverdx = (2 * 32.0) / 16.0\n", + "if small_data:\n", + " oneoverdx = (2 * 32.0) / 16.0\n", + "else:\n", + " oneoverdx = (64.0 * 2**res_level) / 512.0\n", + "\n", + "print(f\"dx = {1./oneoverdx}\")\n", "my_loss = Hamiltonian_loss(oneoverdx)" ] }, { "cell_type": "code", - "execution_count": 95, - "id": "2ceaf420-791f-40cf-8a0c-f4537bcf85c3", - "metadata": {}, - "outputs": [], - "source": [ - "# load model in case you restart form checkpoint\n", - "restart = True\n", - "file_path = \"model_epoch_counter_0000000200_data_time_1708092450.pth\"\n", - "if restart and os.path.exists(file_path):\n", - " net.load_state_dict(torch.load(file_path))" - ] - }, - { - "cell_type": "code", - "execution_count": 98, + "execution_count": 11, "id": "f8f10c9c-b601-4ba0-b51e-c8377cc54e9c", "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "training\n" + ] + }, { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "4906574065e74edaa1b6640c0e059659", + "model_id": "f7fcd6f776424e3e9eb11a4541892b15", "version_major": 2, "version_minor": 0 }, "text/plain": [ - " 0%| | 0/10 [00:00" ] @@ -552,21 +619,27 @@ ], "source": [ "# Note: it will slow down signficantly with BFGS steps, they are 10x slower, just be aware!\n", - "ADAMsteps = 10 # Will perform # steps of ADAM steps and then switch over to BFGS-L\n", - "n_steps = 10 # Total amount of steps\n", + "ADAMsteps = 3 # Will perform # steps of ADAM steps and then switch over to BFGS-L\n", + "n_steps = 3 # Total amount of steps\n", "\n", "net.train()\n", "net.to(device)\n", "\n", "# my_loss = torch.nn.L1Loss()\n", "\n", + "print(\"training\")\n", "pbar = trange(n_steps)\n", "for i in pbar:\n", " total_loss_train = 0\n", " for (y_batch,) in train_loader:\n", + " batchcounter = 0\n", + " # for X_batch, y_batch in train_loader:\n", " y_batch = y_batch.to(device)\n", " X_batch = y_batch[:, :, ::2, ::2, ::2].clone()\n", - " y_batch = y_batch[:, :25]\n", + " y_batch = y_batch[\n", + " :, :25, diff - 1 : -diff - 1, diff - 1 : -diff - 1, diff - 1 : -diff - 1\n", + " ]\n", + " batchcounter += 1\n", "\n", " # This is needed for LBFGS\n", " def closure():\n", @@ -593,56 +666,50 @@ " optimizerBFGS.step(closure)\n", " # print(f'BFGS {batchcounter}')\n", "\n", - " output = net(X_batch)\n", " loss_train = closure()\n", - "\n", - " # Accumulate the training loss\n", " total_loss_train += loss_train.item()\n", - " if np.isnan(loss_train.item()):\n", - " print(\"we got nans\")\n", - " # print(loss_train.item())\n", - " # Advancing global counter\n", - "\n", " # Calculate the average training loss\n", " average_loss_train = total_loss_train / len(train_loader)\n", + " print(average_loss_train)\n", " # Log the average training loss\n", - " writer.add_scalar(\"loss/train\", average_loss_train, i)\n", + " writer.add_scalar(\"loss/train\", average_loss_train, counter)\n", " losses_train.append(average_loss_train)\n", " if np.isnan(average_loss_train):\n", " print(\"we got nans\")\n", "\n", + " # Validation\n", + "\n", " if counter % 1 == 0:\n", " with torch.no_grad():\n", - " total_loss_val = 0.0 # Initialize a variable to accumulate the total loss\n", - "\n", + " total_loss_val = 0.0\n", + " interp_val = 0.0\n", " for (y_val_batch,) in test_loader:\n", + " # for X_val_batch, y_val_batch in test_loader:\n", " # Transfer batch to GPU\n", " y_val_batch = y_val_batch.to(device)\n", - "\n", - " # Preprocess your input data here if needed (e.g., downsample)\n", " X_val_batch = y_val_batch[:, :, ::2, ::2, ::2].clone()\n", - "\n", - " # You may also need to preprocess your target data here\n", - " y_val_batch = y_val_batch[:, :25]\n", - "\n", - " # Forward pass\n", + " y_val_batch = y_val_batch[\n", + " :,\n", + " :25,\n", + " diff - 1 : -diff - 1,\n", + " diff - 1 : -diff - 1,\n", + " diff - 1 : -diff - 1,\n", + " ]\n", + " y_val_interp = net.interpolation(X_val_batch)\n", " y_val_pred = net(X_val_batch)\n", - "\n", - " # Compute loss and accumulate\n", " loss_val = my_loss(y_val_pred, y_val_batch)\n", " total_loss_val += loss_val.item()\n", - "\n", + " interp_val += my_loss(y_val_interp, y_val_batch).item()\n", " # Calculate the average loss\n", " average_loss_val = total_loss_val / len(test_loader)\n", + " average_interp_val = interp_val / len(test_loader)\n", + " losses_val_interp.append(average_interp_val)\n", " losses_val.append(average_loss_val)\n", " steps_val.append(counter)\n", - " # Log the average loss\n", - " writer.add_scalar(\"loss/test\", average_loss_val, i)\n", - " # Writing out network and scaler\n", - " torch.save(\n", - " net.state_dict(),\n", - " f\"model_epoch_counter_{counter:010d}_data_time_{time_stamp}.pth\",\n", - " )\n", + " writer.add_scalar(\"loss/test\", loss_val.item(), counter)\n", + " writer.add_scalar(\"loss/test\", loss_val.item(), counter)\n", + "\n", + " # Advancing global counter\n", " counter += 1\n", "\n", "# Plotting shit at the end\n", @@ -660,7 +727,7 @@ }, { "cell_type": "code", - "execution_count": 97, + "execution_count": 12, "id": "fdd46a1e-829c-4345-8e9b-0205aeab66a9", "metadata": { "editable": true, @@ -671,11 +738,28 @@ "tags": [] }, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "final val loss 0.0005349599881420729 relative 0.0010043246094549017\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAicAAAGsCAYAAAAGzwdbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/OQEPoAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA/QUlEQVR4nO3dd3gVZcL+8fucVAJJCC0hkIReAil0AdEIoalZQJFiA+v7urBSxLarYFtBRdouq7uuyuoqoaOriEIgoIigkNBBCKEJJCCQCiQk8/vj/MhrNrTUmXPy/VxXLs2c58y5J0M4NzPPmbEZhmEIAADAIuxmBwAAAPgtygkAALAUygkAALAUygkAALAUygkAALAUygkAALAUygkAALAUd7MDOJvCwkIdP35cvr6+stlsZscBAMBpGIahrKwsBQcHy26/+vERykkpHT9+XCEhIWbHAADAaR09elSNGze+6uOUk1Ly9fWV5PjB+vn5mZwGAADnkZmZqZCQkKL30quhnJTS5VM5fn5+lBMAAMrgetMimBALAAAshXICAAAshXICAAAshTknAADLKygoUH5+vtkxcB0eHh5yc3Mr93ooJwAAyzIMQydPntS5c+fMjoIbVLt2bQUFBZXrWmCUEwCAZV0uJg0aNJCPjw8Xv7QwwzCUm5ur9PR0SVLDhg3LvK5qXU6GDBmixMRE9enTR4sXLzY7DgDgNwoKCoqKSd26dc2OgxtQo0YNSVJ6eroaNGhQ5lM81XpC7Lhx4/TRRx+ZHQMAcAWX55j4+PiYnASlcXl/lWeOULUuJzExMde9Sh0AwFycynEuFbG/ylVOpk2bJpvNpvHjx5c7yG+tX79ecXFxCg4Ols1m0/Lly684bu7cuWrSpIm8vb3VrVs3bd68uUJzAACAqlfmcvLjjz/q73//uyIjI685bsOGDVc8tLN7926lpaVd8Tk5OTmKiorS3Llzr7reBQsWaOLEiZoyZYq2bt2qqKgo9e/fv2gijiRFR0erffv2Jb6OHz9+g1sJAACqWpnKSXZ2tu677z699957CggIuOq4wsJCjRkzRvfee68KCgqKlu/bt0+9e/fWv/71rys+b+DAgXrttdc0ZMiQq657xowZeuyxx/TQQw8pPDxc7777rnx8fPTBBx8UjUlOTtbOnTtLfAUHB5dhqwEAqHpNmjTRrFmzbnh8YmKibDabU3/8ukzlZMyYMbrjjjsUGxt77ZXb7VqxYoWSkpL04IMPqrCwUCkpKerdu7cGDx6sZ555pkyh8/LytGXLlmKvb7fbFRsbq40bN5Zpndczd+5chYeHq0uXLpWyfgCA64iJiamwKQ8//vijHn/88QpZl7Mo9UeJ4+PjtXXrVv344483ND44OFhr1qxRr169dO+992rjxo2KjY3VO++8U+qwl50+fVoFBQUKDAwstjwwMFB79+694fXExsZq27ZtysnJUePGjbVo0SJ17979imPHjBmjMWPGKDMzU/7+/mXODgCAYRgqKCiQu/v134br169fBYmspVRHTo4ePapx48bpk08+kbe39w0/LzQ0VB9//LEWLFggd3d3vf/++5aYfb169WqdOnVKubm5Onbs2FWLSWVb8OMRncvNM+W1AQAVa/To0Vq3bp1mz54tm80mm82mefPmyWaz6auvvlKnTp3k5eWl7777TikpKRo0aJACAwNVq1YtdenSRatXry62vv8+rWOz2fTPf/5TQ4YMkY+Pj1q2bKnPP//8mpmWLFmidu3aycvLS02aNNHbb79d7PG//e1vatmypby9vRUYGKihQ4cWPbZ48WJFRESoRo0aqlu3rmJjY5WTk1P+H9Q1lKqcbNmyRenp6erYsaPc3d3l7u6udevWac6cOXJ3dy82r+S30tLS9PjjjysuLk65ubmaMGFCuULXq1dPbm5uJSbUpqWlKSgoqFzrNkO7YH89GZ+snIuXzI4CACin2bNnq3v37nrsscd04sQJnThxQiEhIZKk5557TtOmTdOePXsUGRmp7Oxs3X777UpISFBSUpIGDBiguLg4HTly5Jqv8fLLL2vYsGHavn27br/9dt133306c+bMFcdu2bJFw4YN04gRI7Rjxw699NJLevHFFzVv3jxJ0k8//aQnn3xSr7zyivbt26eVK1fqlltukSSdOHFCI0eO1MMPP6w9e/YoMTFRd911lwzDqLgf2BWU6rROnz59tGPHjmLLHnroIbVp00bPPvvsFa8Ed/r0afXp00dt27bVokWL9PPPPysmJkZeXl6aPn16mUJ7enqqU6dOSkhI0ODBgyU5Jt8mJCRo7NixZVqnmdo38tfY21poXHyy5t7XQV7u5b9pEgC4sj8t26G0zAtV9nqBft7685CIGxrr7+8vT09P+fj4FP2D+fKUg1deeUV9+/YtGlunTh1FRUUVff/qq69q2bJl+vzzz6/5fjZ69GiNHDlSkvT6669rzpw52rx5swYMGFBi7IwZM9SnTx+9+OKLkqRWrVpp9+7deuuttzR69GgdOXJENWvW1J133ilfX1+FhYWpQ4cOkhzl5NKlS7rrrrsUFhYmSYqIuLGfQ3mUqpz4+vqqffv2xZbVrFlTdevWLbFcchSGgQMHKiwsrOiUTnh4uFatWqXevXurUaNGVzyKkp2drQMHDhR9n5qaquTkZNWpU0ehoaGSpIkTJ2rUqFHq3LmzunbtqlmzZiknJ0cPPfRQaTbJMro2raOsC/l6etF2zRweLTe7+ae9AMCqbrQoWE3nzp2LfZ+dna2XXnpJX375ZVEROH/+/HWPnPz2Mh41a9aUn59fsUtp/NaePXs0aNCgYst69uypWbNmqaCgQH379lVYWJiaNWumAQMGaMCAAUWnjKKiotSnTx9FRESof//+6tevn4YOHXrNT+pWhEq9Qqzdbtfrr7+uJUuWyNPTs2h5VFSUVq9erXvuueeKz/vpp5/UoUOHouY2ceJEdejQQZMnTy4aM3z4cE2fPl2TJ09WdHS0kpOTtXLlyhKTZJ1Jn7aB6t2mgV5YvrPSD5kBAKpezZo1i30/adIkLVu2TK+//rq+/fZbJScnKyIiQnl5156H6OHhUex7m82mwsLCMmXy9fXV1q1bNX/+fDVs2FCTJ09WVFSUzp07Jzc3N61atUpfffWVwsPD9Ze//EWtW7dWampqmV7rRpX7xn+JiYnXfPy3h69+63LxuJKYmJgbenMeO3asU57GuZbBHRop43y+3li5T88NbGN2HABAGXh6el51HuZvbdiwQaNHjy66rld2drYOHTpUoVnatm2rDRs2lHjdVq1aFU3HcHd3V2xsrGJjYzVlyhTVrl1ba9as0V133SWbzaaePXuqZ8+emjx5ssLCwrRs2TJNnDixQnP+VrW+K7FVjerRRLNW/6y/r0vR/9za3Ow4AIBSatKkiTZt2qRDhw6pVq1aVz2q0bJlSy1dulRxcXGy2Wx68cUXy3wE5GqeeuopdenSRa+++qqGDx+ujRs36q9//av+9re/SZK++OILHTx4ULfccosCAgK0YsUKFRYWqnXr1tq0aZMSEhLUr18/NWjQQJs2bdKpU6fUtm3bCs3436r1jf+sbFyfljqRcUELfrz2eUcAgPVMmjRJbm5uCg8PV/369a86h2TGjBkKCAhQjx49FBcXp/79+6tjx44VmqVjx45auHCh4uPj1b59e02ePFmvvPKKRo8eLUmqXbu2li5dqt69e6tt27Z69913NX/+fLVr105+fn5av369br/9drVq1UovvPCC3n77bQ0cOLBCM/43m8HkhlK5fBG2jIwM+fn5VeprFRYaenrxdsW2baCBEQ0r9bUAwGouXLig1NRUNW3atFTX1oK5rrXfbvQ9lCMnFma32zTt7gh9vu24vtt/2uw4AABUCcqJxXm42TVzeLTe/+6gko6cNTsOAACVjnLiBLw93DR7ZAe9/c3P+jkty+w4AABUKsqJk/Dz9tCsEdGa8tkuHT2Ta3YcAAAqDeXEidSr5aW37onUM4u361TWRbPjAABQKSgnTqZxgI9eGdROExYkK+N8vtlxAACocJQTJ9Qy0FdP92+tcfFJOp93/SsQAgDgTCgnTioqpLYe69VMExYkK7+gYq8mCACAmSgnTqxni3oa3KGRnl2yXYWFXEsPAFxJTEyMxo8ff9XHX3rpJUVHR1dZnqpEOXFyA9oH6aamdfXKF7u5kzEAWEBcXJwGDBhwxce+/fZb2Ww2bd++vYpTORfKiQsY1iVEwbW9NWv1frOjAEC198gjj2jVqlU6duxYicc+/PBDde7cWZGRkSYkcx6UExfx+C3NlV9QqA83pJodBQCqtTvvvFP169fXvHnzii3Pzs7WokWL9Mgjj+jXX3/VyJEj1ahRI/n4+CgiIkLz588v1+sWFhbqlVdeUePGjeXl5aXo6GitXLmy6PG8vDyNHTtWDRs2lLe3t8LCwjR16lRJkmEYeumllxQaGiovLy8FBwfrySefLFee8qCcuJCn+7fWgfRsLd1asq0DAKqGu7u7HnzwQc2bN6/Y6fZFixapoKBAI0eO1IULF9SpUyd9+eWX2rlzpx5//HE98MAD2rx5c5lfd/bs2Xr77bc1ffp0bd++Xf3799fvfvc77d/vOKo+Z84cff7551q4cKH27dunTz75RE2aNJEkLVmyRDNnztTf//537d+/X8uXL1dERES5fg7l4W7aK6PC2Ww2vTKovSYuTJaft4diwwPNjgQA1dLDDz+st956S+vWrVNMTIwkxymdu+++W/7+/vL399ekSZOKxv/hD3/Q119/rYULF6pr165les3p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", + "image/png": "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yMho9zl7o86cu7PV1taqoaFBERERTvs3btyo6OhojRw5Uj/72c90/PjxLh17T9DZ81ddXa2kpCRZrVZdd911+vrrrx338dlz/bP3wgsv6Pvf/76Cg4Od9veHz15Hne9nXlf8efQXdrtdVVVVrX7m5eXlKS4uTsOGDdOtt96qw4cPe2iEPc/EiRM1ePBgXXnlldq8ebNjP5+7jnnhhRc0e/ZsJSUlOe3vb5+9iooKSWr1d7Cl3vQ9jwDhIWVlZbLZbIqJiXHaHxMT0+o6yzOKi4vPefyZXzvynL1RZ87d2e677z7FxcU5/SW8+uqr9c9//lMbNmzQH/7wB3388ceaO3eubDZbl47f0zpz/kaOHKm///3vWrdunV5++WXZ7XZNmzZNhYWFkvjsufo+t27dqt27d+snP/mJ0/7+8tnrqPZ+5lVWVurUqVNd8rOgv1i2bJmqq6u1YMECx76MjAytWLFC7777rp577jnl5+dr+vTpqqqq8uBIPW/w4MF6/vnn9frrr+v111+X1WrVZZddpm3btknqmn+D+ouioiK98847rX7m9bfPnt1u1913361LLrlE48aNa/e43vQ9z6dbXw3oAZ544gm99tpr2rhxo1Mh8Pe//33H78ePH68JEyZo+PDh2rhxo6644gpPDLXHmDp1qqZOneq4PW3aNI0ePVr/7//9Pz3yyCMeHFnv8sILL2j8+PGaMmWK034+e3CnV155Rb///e+1bt06p+v4586d6/j9hAkTlJGRoaSkJK1atUo//vGPPTHUHmHkyJEaOXKk4/a0adN04MABPfnkk3rppZc8OLLe5x//+IcGDBig+fPnO+3vb5+9RYsWaffu3X2qzoMZCA+JjIyUt7e3SkpKnPaXlJQoNja2zcfExsae8/gzv3bkOXujzpy7M5YtW6YnnnhC77//viZMmHDOY4cNG6bIyEjt37//gsfck1zI+TvD19dXF110kePc8Nk7//usqanRa6+95tI/jn31s9dR7f3MCwsLU2BgYJd8lvu61157TT/5yU+0atWqVpdGnG3AgAFKSUnp95+7tkyZMsVxXvjcucYwDP3973/XD3/4Q/n5+Z3z2L782fvFL36hN998Ux999JESEhLOeWxv+p5HgPAQPz8/paWlacOGDY59drtdGzZscPqf3pamTp3qdLwkrV+/3nH80KFDFRsb63RMZWWlvvjii3afszfqzLmTzJULHnnkEb377rtKT08/7+sUFhbq+PHjGjx4cJeMu6fo7PlryWazadeuXY5zw2fv/OcuKytLp0+f1g9+8IPzvk5f/ex11Pl+5nXFZ7kve/XVV3X77bfr1VdfdVo2uD3V1dU6cOBAv//ctWXHjh2O88LnzjUff/yx9u/f79J/mvTFz55hGPrFL36hNWvW6MMPP9TQoUPP+5he9T2vW0u24eS1114z/P39jRUrVhh79uwx7rzzTmPAgAFGcXGxYRiG8cMf/tBYsmSJ4/jNmzcbPj4+xrJly4xvvvnGeOihhwxfX19j165djmOeeOIJY8CAAca6deuMr776yrjuuuuMoUOHGqdOner29+dOHT13TzzxhOHn52esXr3aOHr0qGOrqqoyDMMwqqqqjHvvvdfYsmWLkZ+fb3zwwQfGpEmTjOTkZKOurs4j79GdOnr+fv/73xvvvfeeceDAASMnJ8f4/ve/bwQEBBhff/214xg+e22fuzMuvfRS46abbmq1vz999qqqqozt27cb27dvNyQZf/7zn43t27cbhw4dMgzDMJYsWWL88Ic/dBz/7bffGkFBQcavf/1r45tvvjGWL19ueHt7G++++67jmPP9efQVHT13//rXvwwfHx9j+fLlTj/zysvLHcf86le/MjZu3Gjk5+cbmzdvNmbPnm1ERkYapaWl3f7+3Kmj5+7JJ5801q5da+Tl5Rm7du0yfvnLXxpeXl7GBx984Dimv3zuDKPj5++MH/zgB0ZGRkabz9kfPns/+9nPjPDwcGPjxo1Ofwdra2sdx/Tm73kECA975plnjMTERMPPz8+YMmWK8fnnnzvumzlzprFw4UKn41etWmWkpKQYfn5+xtixY4233nrL6X673W488MADRkxMjOHv729cccUVRm5ubne8lW7XkXOXlJRkSGq1PfTQQ4ZhGEZtba1x1VVXGVFRUYavr6+RlJRk/PSnP+2T/xic0ZHzd/fddzuOjYmJMa655hpj27ZtTs/HZ8/U1t/bvXv3GpKM999/v9Vz9afP3pnlMc/ezpyvhQsXGjNnzmz1mIkTJxp+fn7GsGHDjBdffLHV857rz6Ov6Oi5mzlz5jmPNwxzSdzBgwcbfn5+Rnx8vHHTTTcZ+/fv79431g06eu7+8Ic/GMOHDzcCAgKMiIgI47LLLjM+/PDDVs/bHz53htG5v7fl5eVGYGCg8de//rXN5+wPn722zpkkp59hvfl7nsUwDMNt0xsAAAAA+hRqIAAAAAC4jAABAAAAwGUECAAAAAAuI0AAAAAAcBkBAgAAAIDLCBAAAAAAXEaAAAAAAOAyAgQAAAAAlxEgAAAAALiMAAEAAADAZQQIAAAAAC77/wOov9Fq6CSyTQAAAABJRU5ErkJggg==", "text/plain": [ - "
" + "
" ] }, "metadata": {}, @@ -683,57 +767,25 @@ } ], "source": [ - "plt.figure(figsize=(6, 5), dpi=100)\n", - "\n", - "plt.plot(np.array(losses_train), label=\"trainloss\", linewidth=0.5)\n", - "plt.plot(steps_val, np.array(losses_val), label=\"Val loss\", linewidth=0.5)\n", + "# Plotting shit at the end\n", + "plt.figure(figsize=(9, 6))\n", + "print(f\"final val loss {losses_val[-1]} relative {losses_val_interp[-1]}\")\n", + "plt.plot(np.array(losses_train), label=\"Train\")\n", + "plt.plot(steps_val, np.array(losses_val), label=\"Val\", linewidth=0.5)\n", + "plt.plot(steps_val, np.array(losses_val_interp), label=\"baseline\", linewidth=0.5)\n", "plt.yscale(\"log\")\n", - "plt.legend()\n", - "plt.show()\n", - "plt.close()\n", - "\n", - "writer.flush()\n", - "writer.close()" + "plt.legend()" ] }, { "cell_type": "code", - "execution_count": 79, + "execution_count": 28, "id": "d1111cd8-4e85-4e05-bc75-96eb4281ac91", "metadata": {}, - "outputs": [], - "source": [ - "# Get comparison with classical methods\n", - "(y_batch,) = next(iter(test_loader))\n", - "y_batch = y_batch.to(\"cpu\")\n", - "X_batch = y_batch[:, :, ::2, ::2, ::2].clone()\n", - "y_batch = y_batch[:, :25]\n", - "\n", - "# Interpolation compared to what is used typically in codes ( we interpolate between 6 values with polynomials x^i y^k z^k containing powers up to 3)\n", - "points = 6\n", - "power = 3\n", - "channels = 25\n", - "\n", - "shape = X_batch.shape\n", - "interpolation = interp(points, power, channels, False, True, torch.double)\n", - "ghosts = int(math.ceil(points / 2))\n", - "shape_higher_order = (shape[-1] - 2 * ghosts) * 2 + 2\n", - "\n", - "y_interpolated = interpolation(X_batch.detach().cpu()).detach().to(torch.double)\n", - "y_interpolated_buffer = torch.zeros_like(y_batch.detach())\n", - "diff = (y_batch.shape[-1] - y_interpolated.shape[-1]) // 2\n", - "y_interpolated_buffer[:, :, diff:-diff, diff:-diff, diff:-diff] = y_interpolated" - ] - }, - { - "cell_type": "code", - "execution_count": 80, - "id": "309d8ad4-fd6d-4376-ace4-3fcb0d65e6be", - "metadata": {}, "outputs": [ { "data": { - "image/png": "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svm985zv9gCAj8luAEgX2Z2bEeQAAAAAAJQkI8gBSJS50AAgXWQ3AKSL7M7NCHIAAAAAAEqSEeQAJKo2yqM2z/dra/PaGgDwSbIbANJFdudmBDkAAAAAACVJBzkkrKysLCZOnJh0GTmdfPLJ0b59+6TLoEhl/72adj63bBGtpg3k16uvvhplZWVx4403Jl1KizJx4sQoKyuLt956K+lSSAHZDaTdkCFDYsiQIXltc12WQksku3PTQU4qLFy4MMaMGRO77rprtG3bNtq2bRt77LFHjB49Op5//vmkyyuoIUOGRFlZ2Ua3ze1k/+CDD2LixIkxa9asvNQNjbVusZB8b0B+3XjjjVFWVhZt2rSJ119/vcHrQ4YMib322iuBygpj1qxZdRk7Z86cBq9vzs3j+++/v8XfHIdcZDcUp3VZ/8wzzzTpfaV0LVlK50pxkd25mYOcFu/ee++NY445Jlq1ahUnnHBC9O/fP8rLy+Oll16KO++8M6ZMmRILFy6M7bffPulSC+I73/lOnHbaaXU/P/3003H11VfHRRddFLvvvnvd/n79+m3W53zwwQdx6aWXRkTk/U46AMWjpqYmLrvssvj5z3+edCnNZuLEifE///M/eWvv/vvvj8mTJ+skB6AolNK1ZK5z/e53vxsXXnhhAlUBm0sHOS3aggUL4thjj43tt98+Zs6cGVtvvXW91y+//PL4xS9+EeXluR+GWLVqVbRr166QpRbMF7/4xXo/t2nTJq6++ur44he/mPPLR5rPmdJSmy2P2myeFwvJ5rU54BMGDBgQ119/fYwfPz569uyZdDnx4YcfRuvWrTf6XWBTDRgwIO69996YO3du7L333gX5jCT5vsCmkN1Ac0hbRrVq1SpatdLNRssku3MzxQot2n/913/FqlWr4te//nWDzvGItQF09tlnR69ever2rXvkecGCBfGlL30pOnToECeccEJErA3Yc889N3r16hWVlZXRp0+f+MlPfhLZ7Md/qnPNTfrpqUzWzTH2yiuvxMknnxxbbbVVVFdXxymnnBIffPBBvffW1NTEt771rejatWt06NAhjjjiiPjnP/+5mb+h+nX87W9/i+OPPz46duwYgwcPjogNz6128sknR+/evevOuWvXrhERcemll25w2pbXX389RowYEe3bt4+uXbvGeeedF7W1xbRuMQAbc9FFF0VtbW1cdtlljTr+5ptvjn322Se23HLL6NSpUxx77LGxePHiesf07t07Tj755Abv/XSGrZv2ZNq0afHd7343ttlmm2jbtm2sXLky3nnnnTjvvPOib9++0b59+6iqqorDDjssnnvuuc053TjrrLOiY8eOjR7t/cADD8SBBx4Y7dq1iw4dOsTw4cPjr3/9a93rJ598ckyePDkiot5UaRERe++9dxx55JH12uvbt2+UlZXVm1Lutttui7KysnjxxRfr9v3lL3+Jww47LKqqqqJ9+/Zx8MEHx1NPPVWvrXWPzj/66KPxzW9+M7p16xbbbrvtBs/ltddei5133jn22muvWLZsWaPOH4Dise7aOtd1YGOuJV966aX42te+Fp06dYo2bdrEvvvuG/fcc0+9z8qVUeuud1966aU4+uijo6qqKjp37hznnHNOfPjhh/Xa+eijj+L73/9+7LTTTlFZWRm9e/eOiy66KGpqanKe6+rVq2PChAmxzz77RHV1dbRr1y4OPPDA+OMf/1h3zMbOdX1zkDe2nt69e8eXv/zleOKJJ2LgwIHRpk2b2HHHHeM3v/lNzrqB/HBrixbt3nvvjZ133jkGDRrUpPd99NFHMWzYsBg8eHD85Cc/ibZt20Y2m40jjjgi/vjHP8app54aAwYMiIceeijOP//8eP311+PKK6/c5DqPPvro2GGHHWLSpEkxd+7c+NWvfhXdunWLyy+/vO6Y0047LW6++eY4/vjj44ADDohHHnkkhg8fvsmfuT5HHXVU7LLLLvGjH/2oXqf/xnTt2jWmTJkSZ555Znz1q1+tuzj/5LQttbW1MWzYsBg0aFD85Cc/iYcffjh++tOfxk477RRnnnlmXs+D0pKJssjk+X5tJoroVja0MDvssEOMHDkyrr/++rjwwgtzjiL/4Q9/GBdffHEcffTRcdppp8Wbb74ZP//5z+Nzn/tc/OUvf4mtttpqk2r4/ve/H61bt47zzjsvampqonXr1vG3v/0t/vCHP8RRRx0VO+ywQyxbtiyuu+66+PznPx9/+9vfNnm0e1VVVXzrW9+KCRMmbHQU+W9/+9sYNWpUDBs2LC6//PL44IMPYsqUKTF48OD4y1/+Er17945vfOMb8cYbb8SMGTPit7/9bb33H3jggfHf//3fdT+/88478de//jXKy8vj8ccfr8vlxx9/PLp27Vo31dpf//rXOPDAA6OqqiouuOCC2GKLLeK6666LIUOGxKOPPtrge9Q3v/nN6Nq1a0yYMCFWrVq13nNZsGBBfOELX4hOnTrFjBkzokuXLpv0+6M4yW4oHRu7DtzYteRf//rX+OxnPxvbbLNNXHjhhdGuXbv43e9+FyNGjIjf//738dWvfrXe5+XKqKOPPjp69+4dkyZNiqeeeiquvvrq+Ne//lWvE/m0006Lm266Kb72ta/FueeeG3/+859j0qRJ8eKLL8Zdd921wfNcuXJl/OpXv4rjjjsuTj/99Hjvvfdi6tSpMWzYsJg9e3YMGDCgUdfNn9aUel555ZX42te+FqeeemqMGjUqbrjhhjj55JNjn332iT333LMR/7Vgw2R3bjrIabFWrlwZb7zxRowYMaLBa++++2589NFHdT+3a9cuttxyy7qfa2pq4qijjopJkybV7bv77rvjkUceiR/84Afxne98JyIiRo8eHUcddVT87Gc/izFjxsROO+20SbV+5jOfialTp9b9/Pbbb8fUqVPrOsife+65uPnmm+Ob3/xm3aix0aNHxwknnJDXRUb79+8ft956a5Pf165du/ja174WZ555ZvTr1y9OPPHEBsd8+OGHccwxx8TFF18cERFnnHFG7L333jF16lQd5AAl5jvf+U785je/icsvvzx+9rOfrfeY1157LS655JL4wQ9+EBdddFHd/iOPPDI+85nPxC9+8Yt6+5viww8/jGeeeaZe9vft2zf+/ve/15tq5aSTTorddtstpk6dWpdfm+Lss8+OK6+8Mi699NK4++6713vM+++/H2effXacdtpp8ctf/rJu/6hRo6JPnz7xox/9KH75y1/G/vvvH7vuumvMmDGjQd4eeOCBcfXVV8eLL74Yu+++e/zv//5vtG7dOoYNGxaPP/54jB49OiLWdpCve1IsYu2cp2vWrIknnngidtxxx4iIGDlyZPTp0ycuuOCCePTRR+t9TqdOnWLmzJlRUVGx3nN56aWX4uCDD45tttkmHnrooejYsWPTf2kAFIWNXQdu7FrynHPOie222y6efvrpqKysjIi1neCDBw+Ob3/72w06yHNl1A477FCXw6NHj46qqqr4xS9+Eeedd17069cvnnvuubjpppvitNNOi+uvv77us7p16xY/+clP4o9//GMcdNBB6z3Pjh07xquvvhqtW7eu23f66afHbrvtFj//+c9j6tSpjbpu/qSm1jN//vx47LHH4sADD4yItTcEevXqFb/+9a/jJz/5Sc7PAjaPKVZosVauXBkREe3bt2/w2pAhQ6Jr165127pO50/6dKft/fffHxUVFXH22WfX23/uuedGNpuNBx54YJNrPeOMM+r9fOCBB8bbb79ddw73339/RESDzx47duwmf2Zj6si39Z3nP/7xj4J+JsXPatqQPjvuuGOcdNJJ8ctf/jKWLFmy3mPuvPPOyGQycfTRR8dbb71Vt/Xo0SN22WWXeo8sN9WoUaPqdY5HRFRWVtZ1jtfW1sbbb78d7du3jz59+sTcuXM3+bMiIqqrq2Ps2LFxzz33xF/+8pf1HjNjxox4991347jjjqt3vhUVFTFo0KBGne+6C+LHHnssItZ2hO+3337xxS9+MR5//PGIWDtIYN68eXXH1tbWxvTp02PEiBF1neMREVtvvXUcf/zx8cQTT9R9H1nn9NNP32Dn+Lx58+Lzn/989O7dOx5++GGd46yX7IbSsqnXge+880488sgjcfTRR8d7771Xl41vv/12DBs2LF5++eV4/fXX670nV0atu1G8zllnnRURH19vr/vnuHHj6h137rnnRkTEfffdt8FaKyoq6jrHM5lMvPPOO/HRRx/Fvvvuu8nfI5pazx577FGX7xFrn/Tu06ePa27yQnbnpoOcFqtDhw4RsXZE1qddd911MWPGjLj55pvX+95WrVo1mFPztddei549e9a1u866x5Nfe+21Ta51u+22q/fzuovJf/3rX3Vtl5eXNxih3qdPn03+zPXZYYcd8treJ7Vp06ZuvrV1OnbsWHeOAJSW7373u/HRRx9tcC7yl19+ObLZbOyyyy71bmp37do1XnzxxVi+fPkmf/b68i6TycSVV14Zu+yyS1RWVkaXLl2ia9eu8fzzz8eKFSs2+bPWOeecc2Krrbba4FzkL7/8ckREfOELX2hwvtOnT2/U+Xbv3j122WWXus7wxx9/PA488MD43Oc+F2+88Ub84x//iP/93/+NTCZTdwH95ptvxgcffLDe7xS77757ZDKZBnO+5/q+cPjhh0eHDh3ioYceiqqqqo3WDEBx25zrwFdeeSWy2WxcfPHFDbLxkksuiYhokI+5MmqXXXap9/NOO+0U5eXl8eqrr0bEx9fdO++8c73jevToEVtttdVGr/lvuumm6NevX7Rp0yY6d+4cXbt2jfvuu2+Tv0c0tZ5P9ytEuOaG5mKKFVqs6urq2HrrrWPevHkNXls3l+a6IPy0T44ia6pPL6qxTq7FKDd0h7sp84Dnw6dH00WsPZ/11dHUxTU3dI6wuQqzmnbxzIUGLdWOO+4YJ554Yvzyl7+MCy+8sMHrmUwmysrK4oEHHlhvhnzyCbFc2bu+964v7370ox/FxRdfHF//+tfj+9//fnTq1CnKy8tj7NixkclkmnJq67VuFPnEiRPXO4p83Wf89re/jR49ejR4vVWrxn3tHjx4cMycOTP+7//+L+bMmRMTJkyIvfbaK7baaqt4/PHH48UXX4z27dvHZz7zmU0+l/X9/tb5z//8z7jpppvilltuiW984xub/BkUN9kNpWNzrgPXZeN5550Xw4YNW+8xn+48zpVRn7ah7w8b2p/LzTffHCeffHKMGDEizj///OjWrVtUVFTEpEmTYsGCBU1ub1PqaSn9ChQn2Z2bDnJatOHDh8evfvWrmD17dgwcOHCz2tp+++3j4Ycfjvfee6/eKPKXXnqp7vWIj0d/v/vuu/XevzkjzLfffvvIZDKxYMGCeiO85s+fv8ltNlbHjh3X+0jWp89nU75EAFDavvvd78bNN99cb1HqdXbaaafIZrOxww47xK677pqznY4dOzbI3Yi1WfXJaUNyueOOO+Kggw6qtyZIxNo8z9cCk2PHjo2rrroqLr300gYLjK57Sqxbt24xdOjQnO3kytwDDzwwfv3rX8e0adOitrY2DjjggCgvL4/BgwfXdZAfcMABdRfRXbt2jbZt2673O8VLL70U5eXl0atXr0af449//ONo1apVfPOb34wOHTrE8ccf3+j3AlCaNpRr6zJ8iy222Gg2NsbLL79cb4T5K6+8EplMJnr37h0RH193v/zyy3VPikdELFu2LN599926a/71ueOOO2LHHXeMO++8s975rBvpvk5Trps3px6geZlihRbtggsuiLZt28bXv/71WLZsWYPXm3In9Utf+lLU1tbGNddcU2//lVdeGWVlZXHYYYdFRERVVVV06dKlbv7PdX7xi19swhmsta7tq6++ut7+q666apPbbKyddtopXnrppXjzzTfr9j333HPxv//7v/WOa9u2bUQ0vDEAhbZ2Ne38b0Dh7bTTTnHiiSfGddddF0uXLq332pFHHhkVFRVx6aWXNsjrbDYbb7/9dr12nnrqqVi9enXdvnvvvbfB1CC5VFRUNPic22+/vcHcpptj3Sjyu+++O5599tl6rw0bNiyqqqriRz/6UaxZs6bBez+Zw+3atYuI9WfuuqlTLr/88ujXr19UV1fX7Z85c2Y888wz9eYnraioiEMOOSTuvvvuek/WLVu2LG699dYYPHhwk6ZKKSsri1/+8pfxta99LUaNGhX33HNPo99L6ZDdwCdt6FqyW7duMWTIkLjuuuvWu2bJJ7OxMT699tjPf/7ziPj4evtLX/pSRDS8zr7iiisiYu0AvA1Zd+P5k98l/vznP8eTTz5Z77imXDdvTj2Qb7I7NyPIadF22WWXuPXWW+O4446LPn36xAknnBD9+/ePbDYbCxcujFtvvTXKy8sbzDe+PocffngcdNBB8Z3vfCdeffXV6N+/f0yfPj3uvvvuGDt2bL35wU877bS47LLL4rTTTot99903Hnvssfj73/++yecxYMCAOO644+IXv/hFrFixIg444ICYOXNmvPLKK5vcZmN9/etfjyuuuCKGDRsWp556aixfvjyuvfba2HPPPest2rXlllvGHnvsEbfddlvsuuuu0alTp9hrr71ir732KniNlLZMlEdtnu/XZqJ4HvWClu473/lO/Pa3v4358+fHnnvuWbd/p512ih/84Acxfvz4ePXVV2PEiBHRoUOHWLhwYdx1113x//7f/4vzzjsvItbm7h133BGHHnpoHH300bFgwYK4+eabG6zdkcuXv/zl+N73vhennHJKHHDAAfHCCy/ELbfc0ugR6I11zjnnxJVXXhnPPfdcXUd3xNob7FOmTImTTjop9t577zj22GOja9eusWjRorjvvvvis5/9bN1N+n322Sci1i7ePWzYsKioqIhjjz02ItY+at6jR4+YP39+3eJjERGf+9zn4tvf/nZERL0O8oiIH/zgBzFjxowYPHhwfPOb34xWrVrFddddFzU1NfFf//VfTT7H8vLyuPnmm2PEiBFx9NFHx/333x9f+MIXmtwOxUt2A5+U61py8uTJMXjw4Ojbt2+cfvrpseOOO8ayZcviySefjH/+85/x3HPPNfpzFi5cGEcccUQceuih8eSTT8bNN98cxx9/fPTv3z8iIvr37x+jRo2KX/7yl/Huu+/G5z//+Zg9e3bcdNNNMWLEiDjooIM22PaXv/zluPPOO+Or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Y86cOTF06NC6feXl5TF06NB48sknE6yMzbVixYqIiOjUqVPClRRObW1tTJs2LVatWhX7779/0uUUxOjRo2P48OH1/owWm5dffjl69uwZO+64Y5xwwgmxaNGipEvKk0LcxS6eO9lsOtldvGR3cZDdaSa7KQzZXbxkd3GQ3Wkmu3MxgryR3nrrraitrY3u3bvX29+9e/d46aWXEqqKzZXJZGLs2LHx2c9+Nvbaa6+ky8m7F154Ifbff//48MMPo3379nHXXXfFHnvskXRZeTdt2rSYO3duPP3000mXUjCDBg2KG2+8Mfr06RNLliyJSy+9NA488MCYN29edOjQIenyoEWS3cVJdhcH2S27YX1kd3GS3cVBdsvuYqaDnJI2evTomDdvXvHMKfUpffr0iWeffTZWrFgRd9xxR4waNSoeffTRogrrxYsXxznnnBMzZsyINm3aJF1OwXzyEcx+/frFoEGDYvvtt4/f/e53ceqppyZYWR4UYu6yIpoLDahPdqef7JbdG2wTKEqyO/1kt+zeYJtFQgd5I3Xp0iUqKipi2bJl9fYvW7bM3EQpNWbMmLj33nvjsccei2233TbpcgqidevWsfPOO0dExD777BNPP/10/OxnP4vrrrsu4cryZ86cObF8+fLYe++96/bV1tbGY489Ftdcc03U1NRERUVFghUWxlZbbRW77rprvPLKK0mXAi2W7C4+srs4yG7ZDRsiu4uP7C4Oslt2FztzkDdS69atY5999omZM2fW7ctkMjFz5syinVuqWGWz2RgzZkzcdddd8cgjj8QOO+yQdEnNJpPJRE1NTdJl5NXBBx8cL7zwQjz77LN127777hsnnHBCPPvss0UZ0hFrF0dZsGBBbL311kmXsvky2cJslDzZXTxkt+wuBrJbdrNxsrt4yG7ZXQxkd+lktxHkTTBu3LgYNWpU7LvvvjFw4MC46qqrYtWqVXWraxeD999/v96dsYULF8azzz4bnTp1iu222y7ByvJn9OjRceutt8bdd98dHTp0iKVLl0ZERHV1dWy55ZYJV5c/48ePj8MOOyy22267eO+99+LWW2+NWbNmxUMPPZR0aXnVoUOHBvPYtWvXLjp37lxU89udd955cfjhh8f2228fb7zxRlxyySVRUVERxx13XNKlQYsmu2V3mshu2Q3IbtmdLrJbdlMcdJA3wTHHHBNvvvlmTJgwIZYuXRoDBgyIBx98sMECImn2zDPPxEEHHVT387hx4yIiYtSoUXHjjTcmVFV+TZkyJSIihgwZUm//r3/96zj55JObv6ACWb58eYwcOTKWLFkS1dXV0a9fv3jooYfii1/8YtKlsQn++c9/xnHHHRdvv/12dO3aNQYPHhxPPfVUdO3aNenSNl82s3bLd5sQslt2p4vsLi6yexPahJDdsjtdZHdxkd2b0GaRKMtmi2hGdQBSY+XKlVFdXR1Dt/tmtCqvzGvbH2Vq4uFFv4gVK1ZEVVVVXtsGgFIluwEgXWR34xhBDkCyrKYNAOkiuwEgXWR3TjrIAUhWJhsReQ7WIlosBABaHNkNAOkiu3MqT7oAAAAAAABIghHkACTLo14AkC6yGwDSRXbnZAQ5AAAAAAAlSQc5AMnKxsd3s/O2bVopkydPjt69e0ebNm1i0KBBMXv27A0eO2TIkCgrK2uwDR8+vO6YO++8Mw455JDo3LlzlJWVxbPPPrtphQFASyK7ASBdZHdOOsgBICJuu+22GDduXFxyySUxd+7c6N+/fwwbNiyWL1++3uPvvPPOWLJkSd02b968qKioiKOOOqrumFWrVsXgwYPj8ssvb67TAICSIbsBIF1aanabgxyAZLWQudCuuOKKOP300+OUU06JiIhrr7027rvvvrjhhhviwgsvbHB8p06d6v08bdq0aNu2bb2gPumkkyIi4tVXX21yPQDQYsluAEgX2Z2TEeTQQs2aNSvKysri3XffTboUSK2VK1fW22pqatZ73OrVq2POnDkxdOjQun3l5eUxdOjQePLJJxv1WVOnTo1jjz022rVrl5fagfSR3bD5ZDfQnGQ3bL5iyG4d5LARtbW1ccABB8SRRx5Zb/+KFSuiV69e8Z3vfKcgn3vAAQfEkiVLorq6uiDtQ4uRyRRmi4hevXpFdXV13TZp0qT1lvDWW29FbW1tdO/evd7+7t27x9KlSzd6CrNnz4558+bFaaedtvm/D2CzyW4oMNkN5JnshgKT3TmZYgU2oqKiIm688cYYMGBA3HLLLXHCCSdERMRZZ50VnTp1iksuuaQgn9u6devo0aNHQdqGUrF48eKoqqqq+7mysrIgnzN16tTo27dvDBw4sCDtA00juyG9ZDeUJtkN6VUM2W0EOTTCrrvuGpdddlmcddZZsWTJkrj77rtj2rRp8Zvf/CZat2693vd8+9vfjl133TXatm0bO+64Y1x88cWxZs2aiIjIZrMxdOjQGDZsWGT/PWfTO++8E9tuu21MmDAhIho+6vXaa6/F4YcfHh07dox27drFnnvuGffff3/hTx4KLe8raX88t1pVVVW9bUNB3aVLl6ioqIhly5bV279s2bKNfmFetWpVTJs2LU499dT8/D6AvJDdUECyGygA2Q0FJLtz0kEOjXTWWWdF//7946STTor/9//+X0yYMCH69++/weM7dOgQN954Y/ztb3+Ln/3sZ3H99dfHlVdeGRERZWVlcdNNN8XTTz8dV199dUREnHHGGbHNNtvUBfWnjR49OmpqauKxxx6LF154IS6//PJo3759/k8UmlsBg7qxWrduHfvss0/MnDmzbl8mk4mZM2fG/vvvn/O9t99+e9TU1MSJJ564SacPFI7shgKR3UCByG4oENmdkylWoJHKyspiypQpsfvuu0ffvn3Xu7ruJ333u9+t+/fevXvHeeedF9OmTYsLLrggIiK22WabuO6662LkyJGxdOnSuP/+++Mvf/lLtGq1/j+WixYtiv/8z/+Mvn37RkTEjjvumKczAyIixo0bF6NGjYp99903Bg4cGFdddVWsWrWqbnXtkSNHxjbbbNNgPrWpU6fGiBEjonPnzg3afOedd2LRokXxxhtvRETE/PnzIyKiR48eHuWEZiC7objJbig+shuKW0vNbh3k0AQ33HBDtG3bNhYuXBj//Oc/o3fv3nHGGWfEzTffXHfM+++/HxERt912W1x99dWxYMGCeP/99+Ojjz6qNydTRMRRRx0Vd911V1x22WUxZcqU2GWXXTb42WeffXaceeaZMX369Bg6dGj853/+Z/Tr168wJwrNKZONiKbdeW5cm01zzDHHxJtvvhkTJkyIpUuXxoABA+LBBx+sW0Bk0aJFUV5e/8Gr+fPnxxNPPBHTp09fb5v33HNPXdBHRBx77LEREXHJJZfExIkTm1wj0HSyGwpAdgMFJLuhAGR3TmXZbBPHw0OJ+tOf/hSf//znY/r06fGDH/wgIiIefvjhePPNN2PlypV1x+28887x5JNPxoEHHhiXXnppDBs2LKqrq2PatGnx05/+tG5us4iIDz74ID7zmc/EggUL4pxzzomf/vSnda/NmjUrDjrooPjXv/4VW221VUSsXfjgvvvui+nTp8e9994bP/3pT+Oss85qlvOHfFu5cmVUV1fH0E6nRKvy9c8puKk+yqyOh9/5daxYsaLBF2SgdMhuyC/ZDRSa7Ib8kt2NYwQ5NMIHH3wQJ598cpx55plx0EEHxQ477BB9+/aNa6+9Ns4888zo1q1bveP/9Kc/xfbbbx/f+c536va99tprDdo999xzo7y8PB544IH40pe+FMOHD48vfOELG6yjV69eccYZZ8QZZ5wR48ePj+uvv15Qk3rZbCay2Uze2wRKm+yGwpHdQCHIbigc2Z2bRTqhEcaPHx/ZbDYuu+yyiFg7t9lPfvKTuOCCC+LVV19tcPwuu+wSixYtimnTpsWCBQvi6quvjrvuuqveMffdd1/ccMMNccstt8QXv/jFOP/882PUqFHxr3/9a701jB07Nh566KFYuHBhzJ07N/74xz/G7rvvnvdzBYBiILsBIF1kN5AUHeSwEY8++mhMnjw5fv3rX0fbtm3r9n/jG9+IAw44IE499dT49ExFRxxxRHzrW9+KMWPGxIABA+JPf/pTXHzxxXWvv/nmm3HqqafGxIkTY++9946IiEsvvTS6d+8eZ5xxxnrrqK2tjdGjR8fuu+8ehx56aOy6667xi1/8ogBnDM0sm107d1k+N7OHQUmT3VBgshvIM9kNBSa7czIHOQCJWDcX2sFbjYxWZXmeCy27Oma++5uimAsNAFoK2Q0A6SK7G8cc5AAkK1uA1bTd+wWAwpHdAJAusjsnU6wAAAAAAFCSjCAHIFmZTERZnle/LqLVtAGgxZHdAJAusjsnHeQAJMujXgCQLrIbANJFdudkihUAAAAAAEqSEeQAJCqbyUQ2z496ZYvoUS8AaGlkNwCki+zOzQhyAAAAAABKkhHkACTLXGgAkC6yGwDSRXbnZAQ5AAAAAAAlyQhyAJKVyUaUuZMNAKkhuwEgXWR3TkaQAwAAAABQkowgByBZ2WxE5Hn16yK6kw0ALY7sBoB0kd05GUEOAAAAAEBJMoIcgERlM9nI5nkutGwR3ckGgJZGdgNAusju3HSQA5CsbCby/6hXntsDAD4muwEgXWR3TqZYAQAAAACgJBlBDkCiPOoFAOkiuwEgXWR3bkaQAwAAAABQkowgByBZ5kIDgHSR3QCQLrI7Jx3kACTqo1gTkecnsz6KNfltEACoI7sBIF1kd246yAFIROvWraNHjx7xxNL7C9J+jx49onXr1gVpGwBKkewGgHSR3Y1Tli2mGdUBSJUPP/wwVq9eXZC2W7duHW3atClI2wBQqmQ3AKSL7N44HeQAAAAAAJSk8qQLAAAAAACAJOggBwAAAACgJOkgBwAAAACgJOkgBwAAAACgJOkgBwAAAACgJOkgBwAAAACgJOkgBwAAAACgJP1/nnHKvhO7orsAAAAASUVORK5CYII=", + "image/png": "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JSUlqXfv3vr+++/D/An51/H111/rhhtuUM2aNdW5c2dJZa8pMHjwYGVmZvrec506dSRJEydOLHPK5w8//KC+ffuqevXqqlOnjkaPHi2320kb+AJwkvvuu09ut1uTJ08u1/Xz5s1Tdna2zjnnHNWqVUt/+tOftHv3br9rMjMzNXjw4IB7S/+u9U6ZnD9/vh544AE1aNBAVatWVXFxsX7++WeNHj1aF154oapXr67k5GT17NlTX375ZThvV3fccYdq1qxZ7lFhb7/9trp06aJq1aopKSlJV199tTZt2uR7fvDgwZo+fbok+S0HIEkXX3yxrr32Wr/2LrzwQrlcLr9lExYsWCCXy6VvvvnGd+6LL75Qz549lZycrOrVq+v3v/+9Vq9e7deWdxrThx9+qNtvv11169ZVw4YNy3wvO3fuVJMmTdS6dWsVFhaW6/0DgJ28n1lO9/d1ef5G37x5s6677jrVqlVLiYmJateunRYvXuz3Wqf7ner9HLF582Zdf/31Sk5O1rnnnqu77rpLx44d82vnl19+0cMPP6zGjRsrISFBmZmZuu+++1RSUnLa93r8+HGNGzdO2dnZSklJUbVq1dSlSxd98MEHvmvO9F6DrWlW3noyMzN1zTXX6JNPPlH79u2VmJioRo0a6aWXXjpt3UAkousYfpYsWaImTZqoQ4cOId33yy+/KCcnR507d9ZTTz2lqlWryjAM9e7dWx988IFuvvlmZWVl6Z133tE999yjH374QVOnTq1wnddff73OP/98TZo0SevWrdNzzz2nunXr6vHHH/ddM3ToUM2bN0833HCDOnXqpPfff19XX311hV8zmD/+8Y9q2rSpHnvsMb+OwDOpU6eOZsyYodtuu039+vXzfRA6dcqn2+1WTk6OOnTooKeeekrvvfee/vd//1eNGzfWbbfdZur7gDnMWPTSSYtm4uxz/vnna9CgQZo9e7bGjBlz2tFmjz76qB588EFdf/31Gjp0qPbt26dnnnlGXbt21RdffKEaNWpUqIaHH35Y8fHxGj16tEpKShQfH6+vv/5ab775pv74xz/q/PPPV2FhoWbNmqVu3brp66+/rvCouOTkZN19990aN27cGUebvfzyy8rNzVVOTo4ef/xxHT16VDNmzFDnzp31xRdfKDMzU3/5y1/0448/avny5Xr55Zf97u/SpYv+3//7f77HP//8szZt2qSYmBh9/PHHvvz4+OOPVadOHd9yAps2bVKXLl2UnJyse++9V1WqVNGsWbPUvXt3ffjhhwF5f/vtt6tOnToaN26cjhw5EvS9bNu2Tb/73e9Uq1YtLV++XLVr167Qzw+hI2eA8Jzp7+sz/Y2+adMmXXbZZWrQoIHGjBmjatWq6bXXXlPfvn31r3/9S/369fN7vdP9Tr3++uuVmZmpSZMmafXq1Xr66ad14MABv46loUOH6sUXX9R1112nUaNG6dNPP9WkSZP0zTffaOHChWW+z+LiYj333HMaMGCAhg0bpkOHDun5559XTk6O1qxZo6ysrHJ9HiktlHq2bt2q6667TjfffLNyc3M1Z84cDR48WNnZ2WrVqlU5/r8FO5i1iL+jssYAflVUVGRIMvr27Rvw3IEDB4x9+/b5jqNHj/qey83NNSQZY8aM8bvnzTffNCQZjzzyiN/56667znC5XMbWrVsNwzCM7du3G5KMF154IeB1JRnjx4/3PR4/frwhybjpppv8ruvXr59x7rnn+h6vX7/ekGTcfvvtftfdcMMNAW2eyT//+U9DkvHBBx8E1DFgwICA67t162Z069Yt4Hxubq6RkZHhe7xv374ya/H+TB966CG/8xdddJGRnZ1d7tpRObz/dhZ+2dR49z8XhHUs/LKpIckoKioKqYZnn33WyMjIMBISEoz27dsbn376aZnXvvDCC4YkvyMhIcHvmkOHDhnDhw83GjRoYCQmJhotWrQwZsyYUaGfD5zP+9/UZ599Zmzbts2Ii4sz7rzzTt/z3bp1M1q1auV7vGPHDiM2NtZ49NFH/drZuHGjERcX53c+IyPDyM3NDXjN0r9rP/jgA0OS0ahRI7+MMgzDOHbsmOF2u/3Obd++3UhISPD7PXu6PDqV97X++c9/GgcPHjRq1qxp9O7d2/d8bm6uUa1aNd/jQ4cOGTVq1DCGDRvm105BQYGRkpLid3748OFGsD/PvFn09ddfG4ZhGIsXLzYSEhKM3r17G/379/dd16ZNG6Nfv36+x3379jXi4+ONbdu2+c79+OOPRlJSktG1a1ffOe//Dzt37mz88ssvfq/tzbx9+/YZ33zzjVG/fn3jkksuMX7++efT/pxgHnIGCN2p2WQY5f/7+nR/o//+9783LrzwQuPYsWO+cx6Px+jUqZPRtGnTgNc+3e/UU3PDMAzj9ttvNyQZX375pWEYv32eGTp0qN91o0ePNiQZ77//vu9c6Uz85ZdfjJKSEr/7Dhw4YKSmpvp9jjrde/XW6RVKPRkZGYYk46OPPvKd27t3r5GQkGCMGjUq4LVgPzNzpqJZE6k5w/RM+BQXF0tS0B2/unfvrjp16vgO7/SRU5Ue/fTWW28pNjZWd955p9/5UaNGyTAMvf322xWu9dZbb/V73KVLF/3000++9/DWW29JUsBrjxw5ssKvWZ46zBbsff7nP/+x9DURfRYsWKC8vDyNHz9e69atU9u2bZWTk6O9e/eWeU9ycrL27NnjO3bu3On3fF5enpYtW6Z58+bpm2++0ciRIzVixIiA6QdAaY0aNdKNN96of/zjH9qzZ0/Qa9544w15PB5df/312r9/v+9IS0tT06ZN/aaPhCo3N1fnnHOO37mEhATfumZut1s//fSTqlevrubNm2vdunUVfi1JSklJ0ciRI7V48WJ98cUXQa9Zvny5Dh48qAEDBvi939jYWHXo0KFc77dLly6SpI8++kjSyRFll1xyif7whz/o448/liQdPHhQX331le9at9utd999V3379lWjRo18bdWrV0833HCDPvnkE19ueg0bNkyxsbFBa/jqq6/UrVs3ZWZm6r333lPNmjXPWDecgZyBk1T07+uff/5Z77//vq6//nodOnTI97v8p59+Uk5Ojr777ruAHaRP9zt1+PDhfo/vuOMOSb99jvH+37y8PL/rRo0aJUlaunRpmbXGxsYqPj5ekuTxePTzzz/rl19+Ubt27Sqce6HW07JlS18eSSdn2jRv3pzPMggqknOGTjP4JCUlSZIOHz4c8NysWbO0fPlyzZs3L+i9cXFxAWuf7Ny5U/Xr1/e16+WdMlL6P+pQnHfeeX6PvX+4HzhwwNd2TEyMGjdu7Hdd8+bNK/yawZx//vmmtneqxMRE3zoDXjVr1vS9R0Sekwtnhn+EasqUKRo2bJiGDBmili1baubMmapatarmzJlT5j0ul0tpaWm+IzU11e/5lStXKjc3V927d1dmZqZuueUWtW3bVmvWrAm5Ppx9HnjgAf3yyy9lrm323XffyTAMNW3a1O8LmTp16uibb7457R9IZxLs97LH49HUqVPVtGlTJSQkqHbt2qpTp442bNigoqKiCr+W11133aUaNWqUubbZd999J0n63e9+F/B+33333XK9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Y7Vjxw717dtXSUlJ2r59uxYuXKhbbrlFo0ePlnQyH15//XVdeeWVuv7667Vt2zbNmzcvYM3K07nmmmv00EMPaciQIerUqZM2btyoV155pdwj1crrrrvu0tSpU/Xll1/6Or+kk/+eZ8yYoRtvvFEXX3yx/vSnP6lOnTratWuXli5dqssuu8z3BVN2drakkxvZ5OTkKDY2Vn/6058knZz2k5aWpi1btvgWjJakrl276q9//ask+XWaSdIjjzyi5cuXq3Pnzrr99tsVFxenWbNmqaSkRE888UTI7zEmJkbz5s1T3759df311+utt97S7373u5DbQcWQM4D1Tvc3+vTp09W5c2ddeOGFGjZsmBo1aqTCwkKtWrVK33//vb788styv8727dvVu3dvXXnllVq1apXmzZunG264QW3btpUktW3bVrm5ufrHP/6hgwcPqlu3blqzZo1efPFF9e3bV5dffnmZbV9zzTV644031K9fP1199dXavn27Zs6cqZYtW/qtXx3K55Fw6kH0MCNnTrZT/qyJ9JxhpBkC9OnTRxs3btQNN9ygd999V3fddZfuvvtuLVq0SFdffbXWrVvn+wP+dGJiYrR48WKNHDlSS5Ys0ciRI/X111/rySef9H0j4TVu3DjdfPPNev3113XvvffK7XaHtbumJM2ZM0d33nmnli1bpnvvvVcnTpw47S4zZmnRooVeeuklFRUVKS8vT4sXL9bLL7+siy++OODa5557Tg0aNNDdd9+tAQMG6PXXX7e8PjhLfHy8srOzlZ+f7zvn8XiUn5+vjh07lqsNt9utjRs3ql69epKkEydO6MSJEwHrFMbGxpqy/hPOHk2aNNGf//znoM+NGTNG//rXvxQTE6OJEydq9OjRWrx4sa644gr17t3bd11OTo7+93//V99++61GjhypVatWacmSJeX68sbrvvvu06hRo/TOO+/orrvu0rp167R06dKQpiaWR40aNcrcpfmGG25Qfn6+GjRooCeffFJ33XWX5s+fr6ysLA0ZMsR33bXXXqs77rhDy5Yt04033qgBAwb4tePtFOvcubPvXHZ2tqpWrar4+HjfGqRerVq10scff6zWrVtr0qRJmjhxojIyMvTBBx8EXFteVapU0euvv65LL71Uffr00aefflqhdhAdyBmcjcr6G71ly5b6/PPPdfXVV2vu3LkaPny4Zs6c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", "text/plain": [ "
" ] @@ -743,38 +795,40 @@ } ], "source": [ + "# Get comparison with classical methods\n", + "(y_batch,) = next(iter(test_loader))\n", + "y_batch = y_batch.to(device)\n", + "X_batch = y_batch[:, :, ::2, ::2, ::2].clone()\n", + "y_batch = y_batch[\n", + " :, :25, diff - 1 : -diff - 1, diff - 1 : -diff - 1, diff - 1 : -diff - 1\n", + "]\n", + "# Interpolation compared to what is used typically in codes ( we interpolate between 6 values with polynomials x^i y^k z^k containing powers up to 3)\n", + "points = 6\n", + "power = 3\n", + "channels = 25\n", + "shape = X_batch.shape\n", + "interpolation = interp(\n", + " points, power, channels, False, True, dtype=torch.double, factor=factor\n", + ")\n", + "ghosts = int(math.ceil(points / 2))\n", + "\n", + "\n", "box = 0\n", "channel = 0\n", - "slice = 9\n", + "slice = 0\n", "# Note we remove some part of the grid as the interpolation needs space\n", - "max_val = (\n", - " torch.max(\n", - " y_batch[box, channel, diff - 1 : -diff - 1, diff - 1 : -diff - 1, slice - 1]\n", - " )\n", - " .cpu()\n", - " .numpy()\n", - ")\n", - "min_val = (\n", - " torch.min(\n", - " y_batch[box, channel, diff - 1 : -diff - 1, diff - 1 : -diff - 1, slice - 1]\n", - " )\n", - " .cpu()\n", - " .numpy()\n", - ")\n", - "net.cpu()\n", + "max_val = torch.max(y_batch[box, channel, :, :, slice]).cpu().numpy()\n", + "min_val = torch.min(y_batch[box, channel, :, :, slice]).cpu().numpy()\n", "net.eval()\n", "y_pred = net(X_batch.detach())\n", - "\n", - "\n", + "y_interpolated = interpolation(X_batch.detach().cpu()).detach().to(torch.double)\n", "# Create subplots\n", "fig, axes = plt.subplots(1, 3, figsize=(15, 5))\n", "\n", "# Plot ground truth\n", "axes[0].set_title(\"Ground Truth\")\n", "im0 = axes[0].imshow(\n", - " y_batch[box, channel, diff - 1 : -diff - 1, diff - 1 : -diff - 1, slice - 1]\n", - " .cpu()\n", - " .numpy(),\n", + " y_batch[box, channel, :, :, slice].cpu().numpy(),\n", " vmin=min_val,\n", " vmax=max_val,\n", " cmap=\"viridis\",\n", @@ -785,10 +839,7 @@ "# Plot Neural Network\n", "axes[1].set_title(\"Neural Network\")\n", "im1 = axes[1].imshow(\n", - " y_pred[box, channel, diff - 1 : -diff - 1, diff - 1 : -diff - 1, slice - 1]\n", - " .detach()\n", - " .cpu()\n", - " .numpy(),\n", + " y_pred[box, channel, :, :, slice].detach().cpu().numpy(),\n", " vmin=min_val,\n", " vmax=max_val,\n", " cmap=\"viridis\",\n", @@ -799,7 +850,7 @@ "# Plot Interpolation\n", "axes[2].set_title(\"Interpolation\")\n", "im2 = axes[2].imshow(\n", - " y_interpolated[box, channel, :, :, slice - diff],\n", + " y_interpolated[box, channel, :, :, slice],\n", " vmin=min_val,\n", " vmax=max_val,\n", " cmap=\"viridis\",\n", @@ -813,20 +864,28 @@ "cbar1 = fig.colorbar(im1, ax=axes[1])\n", "# cbar1.set_label('Values')\n", "cbar2 = fig.colorbar(im2, ax=axes[2])\n", - "# cbar2.set_label('Values')\n", - "plt.tight_layout()\n", - "plt.show()" + "# cbar2.set_label('Values')" ] }, { "cell_type": "code", - "execution_count": 81, - "id": "ddd54cde-bbdc-45ba-8ae4-487b675bdf43", + "execution_count": 25, + "id": "309d8ad4-fd6d-4376-ace4-3fcb0d65e6be", "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "text/plain": [ + "" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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qVixIp988gmtWrWiSpUqfPTRR2f8D2OVBQsWWB2hWPor/S8OZRyiYrgHuW2H8fpCX55w/xJjyauYp9Iwbh6joktECvCwe5xxzM129o+3s7W12+zYsV9Q26vBw+P0dZ1OZ/6xsLAwIiIi2L17N7169broPvPy8li7di1NmzYFYNu2bZw8eZLatWsDULt2bZYvX17gM3r58uVERUWdtb8VK1YQGRnJM888k39s3759Z7yOf76Gs6lduzYJCQlkZmbmF4rLly/HZrNRs2bNi36dRVmhTCmGh4ef8R+pdu3a5xxqXLduHcnJyTRs2BA3Nzfc3NxYsmQJ48ePx83N7Zz/wY4cOUK/fv3o2LEjWVlZDBky5LJyly5dGrvdfsai+yNHjlC2bNnL6lsuTJWgKtxZ807uibqHQW0bEt7xWUY5Tv8DYPw2Cde3A8B1/v+BRUSKs9DQULy9vfnpp584cuQIqampADz//POMGTOG8ePHs337djZu3MiUKVN48803/7VPd3d3HnvsMX777TfWrVvHfffdx3XXXZdfgD3xxBMkJCQwadIkduzYwZtvvsnMmTMZNmzYWfurXr06+/fvZ/r06ezatYvx48cza9asAm0qVarEnj17SExMJCUlhZycnDP66dWrF15eXvTp04dNmzaxaNEiHnvsMe69994zZpuKu0IpuGJjYwvMvQJs376dyMjIs7Zv164dGzduJDExMf+ncePG9OrVi8TExDOGS+H09F+7du2oXbs2M2fOZOHChcyYMeOcfzkuhIeHB40aNWLhwoX5x1wuFwsXLjzrdKAUjpqlalLOrxwA91wXSdVODzMk7yGcpoEt8VNcXz0AebkWpxQRKRxubm6MHz+e999/n4iICDp16gTAgw8+yIcffsiUKVOoW7curVq1IiEhIX8bifPx8fHhqaee4u677yY2NhY/Pz9mzJiR/3znzp15++23eeONN4iOjub9999nypQpBbak+Kfbb7+dIUOGMGDAAOrXr8+KFSt47rnnCrTp2rUrN998M23atKFMmTJ88cUXZ801b948jh8/TpMmTejWrRvt2rVjwoQJF/GOFROFsZp/9erVppubm/nyyy+bO3bsMD/77DPTx8fH/PTTT03TNM133nnHbNu27Xn7+LdvKTZu3Ni85ZZbzJycnPzjiYmJZqlSpcw333zznP2mp6ebGzZsMDds2GAC5ptvvmlu2LDB3Ldvn2mapjl9+nTT09PTTEhIMLds2WL269fPDAoKyv+2RGG5Vr+l+G9OZJ8w31z7pvnEz2+aDz/7jJkzItg0RwaYedPuMM2cTKvjichVcr5vicn5TZkyxQwMDLQ6RrF2Jb6lWChruJo0acKsWbMYPnw4L7zwApUrV+att97Kn3dOSUk541sVF8NmszF69GhatGiRP9cNEBMTw4IFCyhTpsw5z127di1t2rTJfzx06FAA+vTpQ0JCAj169ODo0aOMGDGCpKQk6tevz08//VTihjaLi+y8bBwuB5FlfKly14M8Mt2PibaxeO9agPOTrth7zQCvAKtjioiInJdhmoWwo5tctL+/pZiamkpAgAqIf0rOSsbLzYsAjwBW7Erh3amf8q7xCgFGNs6y9bHfOxN8Q6yOKSKF6NSpU+zZs4fKlStf1Jer5PSu74MHD+bkyZNWRym2zvf370I/v3UvRSnyQn1CCfA4/Zf4+qql6dmzLffZn+SY6Y89KRHnxx0g7bDFKUVEiqb77rtPxVYRoIJLipUD6Qf4Pe0HarXMoa/7fzhslsJ+bBvOj26C43usjiciInJWKrikWAnyDCLYM5josIq80rcnj7i/zF5XGPbU/Tg/uhmSL26DWhERkatBBZcUK/4e/vSJ7sOdNe6kVngw4/t3YqD3aLa5ymPPTML58c1waIPVMUWkkGjZsVjhSvy9U8ElxY6Puw/u9tO3eYgM8SW+ezhDgoaS6KqC/dQJnFNug73LLU4pIlfS37d2ycrKsjiJXIv+/nv3v7cYuhiFsi2EyNWy48QOVh1dQMMmBs+u/Q/PnhjLdY6tuD7pgu2uz6D6jVZHFJErwG63ExQUlH/DYh8fnyJzKzcpuUzTJCsri+TkZIKCgs66EfuFUsElxVqlwErUDK5JsFcwQxu0pt+UUvRPfpF2bMD1RU9sXSdDdBerY4rIFfD3Ldb+LrpErpagoKDLvsWf9uEqIrQP16VzmS4MDAzDIP2UgwenrKDXoTHcbl+JadgwOo6HhvdaHVNErhCn04nD4bA6hlwj3N3dzzuydaGf3xrhkmLPZvx3KaKfpxt3tj3JlGU9yNjjxd1ui+C7AZCTDs0ftTCliFwpdrv9sqZ2RKygRfNSomw7sY1NxxOpV2s/86oP4P28W08/MW84LH4FNKArIiIW0AiXlCg1g2vSslxLgr2Cib6uHkNnlOKNzT4Mc/8KFo85PdJ100ugxbYiInIVaYRLShTDMGhTsQ31Q+vjbrfx1l0NOFL/UUY6/n8N18oJ8P1AcDmtDSoiItcUFVxSornMPKJq/c7++tE87uiH0zRg/TT45kHIy7U6noiIXCNUcEmJti9tHwcyDlCj4kkCY7sR7xhErmmHzTMxZ/QCR7bVEUVE5BqgNVxSolULrka3Gt3wd/enQkAFJnqH8NB8T95zH4f3jp8xP+2K0XM6eGkrDhERKTwa4ZISLyokigoBFQCIb1ONZjffxj2OJ0gzvTH2LcecdjtkHbc4pYiIlGQquOSakpqTisNvEeVbuHFX3tMcM/0xDm3A/LgDpB22Op6IiJRQKrjkmpLhyOBU3imqlXWnzx230NMxkiQzGCPlT8yPb4YTe62OKCIiJZDWcMk1pZxfOfpE98HL7kWQVxDBXgHc/bkHU+wvEXlyL+ZHN2P0ng2htayOKiIiJYhGuOSaU9a3LEFeQQDcFF2WR++MoZfxFNtc5TEyDmNO6QCHNlgbUkREShQVXHJNO5hxkB2n5nJ9q6PcZ3+K311VMLKPYyZ0hH0rrI4nIiIlhAouuab5e/gT4BlAnbByTLjvFvrbRrLKVRsjNx3zkztgxwKrI4qISAlgmKbu5lsUpKWlERgYSGpqKgEB2hPqasp0ZOJuc8fD7sHWw2k8+OFSXsh9g3b2DZg2d4yuH0J0Z6tjiohIEXShn98a4ZJrnq+7Lx52DwBqhwfwnzuDec6vL987r8NwOTC/vh82fGpxShERKc5UcIn8w84TO1l3fCGtrtvN6wGP8EVeGwzTBd/Gw6r3rI4nIiLFlLaFEPmHyMBIqgZVJdgzmEH123DPh8Gkn/Chn9uP8NNTkJMGLZ8Aw7A6qoiIFCMquET+wd3mzl0178Jm2DAMgxkPN+feD22kH/XmcfevYdHLcCoVbnpJRZeIiFwwTSmK/A+7zY7x/8VUKV8P+nZIY36FFjzvuPd0g5UT4PtB4HJamFJERIoTFVwi57H9xHY2HV9Hkzp7+SPyNp5w9MNpGrB+KnzzIDgdVkcUEZFiQAWXyHnUCK5BbEQsnat35LP7bySlWnceczxGrmmHzTNhei9wZFsdU0REijgVXCLnYRgGcZFxNAprhJe7nffvbYyz9m086HicbNMDdsyDT7vBqTSro4qISBGmgkvkIhg2J80b/ImjThD35j5FuukN+5bBtE6QddzqeCIiUkSp4BK5CPtS97E/fR91q6QR2fg6euY+w3HTDw6thym3QNohqyOKiEgRpG0hRC5CteBq3FH9Dvzc/YhsFslor1LcucyDTz3GUPboVpjcDu6eAeH1rI4qIiJFiEa4RC5SndJ1qBRYCcMw+M8ttYlr3YSuuc+x3VUO0g9hfnwzbP/Z6pgiIlKEqOASuQwZjgx8yiyj3vWpdHU8yzJnNIYjE/OLHrB6stXxRESkiFDBJXIZUnNSycrLonY5N0bd2YSHzeHMyGt9+v6Lc4bBT//RBqkiIqI1XCKXo7x/eXpH9cbbzZtgr2CqhJTmoame7DsVxpPuM2DVRDixF7pOBg9fq+OKiIhFNMIlcpki/CII9goGoEHFYMb3Ls/cMjcyIPcxckx32Pbj6W8wpidZnFRERKyigkvkCkrJTmHpke9o2WQryVWb0jP3GY6Z/nA4EXNyOziy2eqIIiJiARVcIldQoEcgVQKrUDmwIlN730ytpnF0yX2BXa5wjLS/MD9qDzsXWh1TRESuMsM0TdPqEAJpaWkEBgaSmppKQECA1XHkMpimSa4rF0+7J6Zp8uGve5gwdzXvu7/FdbatmIYd47Y3odF9VkcVEZHLdKGf3xrhErnCDMPA0+6Z/+cGNY5zS9xRHuJJvnHegGE64ftBMH8EuFwWpxURkatBBZdIIcrOy2bh/oV4+RznmW7BvOI5mDcd3U4/ufxt+KoPOLKtDSkiIoVO20KIFCJvN2/ui76PjSkbaVexNS0rnuKBBE/2J4fymvsHeGz9DhIOQc/p4FfG6rgiIlJINMIlUsjCfMOIi4zDMAwigrz58pHrSKrenHtyh3PC9IODazE/bAvJf1odVURECokKLpGrbEXSL9SqsZ7gRhHckfs8e1xhGCf3Y350I+xebHU8EREpBCq4RK4i0zQxMDBsBgPbxND7tnZ0czzPGlcNjJw0zE+7woZPrY4pIiJXmNZwiVxFhmHQvlJ7YsrEUNa3LNGxULGUDw994cvzzkl0YgV8Gw/H90CbZ8Cm34lEREoC/WsuYoGyvmXz/3xDjSDuvy2VMT79GJ/X+fTBX9+AmQ+C45Q1AUVE5IpSwSVisXl753HSuZuubf/ip9C+DHM8jMO0w6ZvYNrtkHnM6ogiInKZVHCJWKx1hdZU8K/A3dF38NXD13OyRnd6O54mzfSBA79hftgOUnZaHVNERC6DCi4RiwV4BHB/9P2U8yuHr6cb79/bmGrXtaVz7igOuMpgnNhzuujau9zqqCIicolUcIkUAYZh5P85PTeVoIglNG3tSRfHKNa7qmGcOok5rRP8PsPClCIicqlUcIkUMfvT95PpyCSybDZjerfmIWMUPzqbYrgcMKsfLH4FdM95EZFiRdtCiBQx9crUw8vNizCfMAI9A6nQP4C+H3uxP2sq/d2+h8Vj4PhuuP0dcPO0Oq6IiFwAjXAVgi5duhAcHEy3bt2sjiLFVI3gGgR6BgJQq2wAb9wbxnfh3Xna8SB5pg3+mAGfdIGs4xYnFRGRC6GCqxAMGjSIadOmWR1DSohDGYf45eD3NG+wkaSaN3Gf4ynSTG/Yt/z07YCO77Y6ooiI/AsVXIWgdevW+Pv7Wx1DSogQ7xAqBVaieqmqfNgrjugbOtEtdxR/maUxju3E/DAO9q+yOqaIiJzHJRVcBw8e5J577iEkJARvb2/q1q3L2rVrz9l+0qRJ1KtXj4CAAAICAmjevDlz584t0GbUqFEYhlHgp1atWpcS75yWLl1Kx44diYiIwDAMZs+efdZ2EydOpFKlSnh5edGsWTNWr159RXOIXAxPuyc9a/Wka/WuuNntDL+lNvd17kBXx/P87qqCkXUMc+rtpzdKFRGRIumiC64TJ04QGxuLu7s7c+fOZcuWLYwdO5bg4OBznlO+fHleeeUV1q1bx9q1a2nbti2dOnVi8+bNBdpFR0dz+PDh/J9ly5ads8/ly5fjcDjOOL5lyxaOHDly1nMyMzOJiYlh4sSJ5+x3xowZDB06lJEjR7J+/XpiYmJo3749ycnJ+W3q169PnTp1zvg5dOjQOfsVuRw2w4aH3SP/cYVy+7nt5iwetD3Dz85GGM4c+PoBWPqGvsEoIlIEXfS3FF999VUqVKjAlClT8o9Vrlz5vOd07NixwOOXX36ZSZMmsWrVKqKjo/8bxs2NsmXL/u/pZ3C5XMTHx1O9enWmT5+O3W4HYNu2bbRt25ahQ4fy5JNPnnFehw4d6NChw3n7fvPNN3nooYe4//77AXjvvff48ccf+fjjj3n66acBSExM/NeMIoUlPTedZQeX4XLPZVTPerw0azj7Mj7mIbc58MuLp298fds4cPP4985EROSquOgRru+++47GjRvTvXt3QkNDadCgAZMnT77g851OJ9OnTyczM5PmzZsXeG7Hjh1ERERQpUoVevXqxf79+88e2mZjzpw5bNiwgd69e+Nyudi1axdt27alc+fOZy22LkRubi7r1q0jLi6uwLXi4uJYuXLlJfX5byZOnEhUVBRNmjQplP6l5PH38Kd3dG/aVGjDrTWv45v4lvwYPoBnHffjNA1I/BQ+6wrZJ62OKiIi/++iC67du3czadIkqlevzrx58+jfvz8DBw5k6tSp5z1v48aN+Pn54enpySOPPMKsWbOIiorKf75Zs2YkJCTw008/MWnSJPbs2UOLFi1IT08/a38RERH88ssvLFu2jLvvvpu2bdsSFxfHpEmTLvYl5UtJScHpdBIWFlbgeFhYGElJSRfcT1xcHN27d2fOnDmUL1/+vMVafHw8W7ZsYc2aNZecW6495fzK0bJ8SwDK+Hvy6YONOVT7Jvo6hpFhesGepZgf3QQn9lobVEREgEuYUnS5XDRu3JjRo0cD0KBBAzZt2sR7771Hnz59znlezZo1SUxMJDU1la+//po+ffqwZMmS/KLrn1N99erVo1mzZkRGRvLll1/St2/fs/ZZsWJFPvnkE1q1akWVKlX46KOPCtwixSoLFiywOoJcQ0zTZP7+OURW2Uh6YB26rxjJxx6vE56yDfPDOIye06F8Y6tjiohc0y56hCs8PLzAyBRA7dq1zzn99zcPDw+qVatGo0aNGDNmDDExMbz99tvnbB8UFESNGjXYuXPnOdscOXKEfv360bFjR7KyshgyZMjFvZj/Ubp0aex2+xmL7o8cOXJBa8tErGBi4mZzw2YY9G8Rw/1dO9LN8SKbXZEYmUcxE26FLd9aHVNE5Jp20QVXbGws27ZtK3Bs+/btREZGXlQ/LpeLnJyccz6fkZHBrl27CA8PP+vzKSkptGvXjtq1azNz5kwWLlzIjBkzGDZs2EXl+CcPDw8aNWrEwoULC+RcuHDhGevNRIoKm2Hjtiq38VC9h6gaVJU7G1fg9b4384DtRRY6G2DknYIve8Pyt/UNRhERi1x0wTVkyBBWrVrF6NGj2blzJ59//jkffPAB8fHxAEyYMIF27doVOGf48OEsXbqUvXv3snHjRoYPH87ixYvp1atXfpthw4axZMkS9u7dy4oVK+jSpQt2u52ePXuekcHlctGhQwciIyOZMWMGbm5uREVFMX/+fKZMmcK4cePOmj0jI4PExMT8bxnu2bOHxMTEAqNzQ4cOZfLkyUydOpWtW7fSv39/MjMz87+1KFIUGYZBWd//jsLWr+hDn45pPO//OAl5N50+OH8E/DAYnGdupyIiIoXrotdwNWnShFmzZjF8+HBeeOEFKleuzFtvvZVfPKWkpLBr164C5yQnJ9O7d28OHz5MYGAg9erVY968edx44435bf766y969uzJsWPHKFOmDDfccAOrVq2iTJkyZ2Sw2WyMHj2aFi1a4OHx36++x8TEsGDBgrOeA7B27VratGmT/3jo0KEA9OnTh4SEBAB69OjB0aNHGTFiBElJSdSvX5+ffvrpjIX0IkXZD7t/4GjubnrEleP73waz96+yjHD7BNu6BDi5H7ongFeg1TFFRK4ZhmlqjqEoSEtLIzAwkNTUVAICAqyOI8XciVMnmLljJrdXvR1/91I89c0fZP7xPePdJ+Bj5GCGRmHc/SUEVbA6qohIsXahn98quIoIFVxypZmmmf+tXdM0eeXnRJYvXsbHHm8QapzE9A3D6DUDIhpYnFREpPi60M9v3bxapIT65xYpKdkp2IJ/pumNIXTNe4GtrgoYmUcwP+4Af/5oYUoRkWuDCi6Ra8C+tH2ccp6ifOgpXrn/Zh60v8QSZz2MvGzM6b1g5bv6BqOISCG66EXzIlL8NC7bGD8PPyr4V8DX3ZdP42/kwSn+PJA6kV5uC2HecDixB9qPAbv+WRARudI0wiVyjahVqha+7r4AVC7tywt3BfN1+b687Lgbl2nA6g9gek/IOfvttERE5NKp4BK5Bu1N3csvf/1I4/q/c6jeXfR3DCLb9IAdP2NO6QBph6yOKCJSoqjgErkGhfqEUjGgIlEhtXmnewvqtLuHu3Kf5agZgJG0EdfktnD4D6tjioiUGNoWoojQthByteW58gBws51eszV7w1+89c0CPrC9Rg3bQVzuPti6J0CN9hamFBEp2rQthIicl5vNLb/YAvAJ3sKtt5j0dXuBZc5obI4szC/ugtWTLUwpIlIyqOASEY5lH2N10mqyjP28fG8NXgh8gRl5rTFMF8wZBj/9B1xOq2OKiBRb+v63iBDiHULvqN4czDhI84h6fPWog/6f+rJvXxhPus+AVRPhxF7oOhk8fK2OKyJS7GiES0QAqBhQkeYRzQEI9HHngz4N2BfTlQG5j5FjusO2HzGn3ALpSRYnFREpflRwicgZXKaL7/fMIqzCb4S0up6euc9wzPTHOJx4+huMRzZbHVFEpFhRwSUiZ3CZLrzsXtgNOw9eX5cH776LHs4X2eUKx5Z2ENdHN8HOBVbHFBEpNrQtRBGhbSGkqDFNk6PZRwn1CQVgw/4TPD51EaMdr3GdbSumYce4dSw0vt/ipCIi1tG2ECJyWQzDyC+2AKqE2bjz1ixGBT3LN84bMEwn/DAYfn4OXC7rgoqIFAMquETkgszeOZsjObvoceNJZkc+x5uObqefWDEe86s+4Mi2NqCISBGmgktELsitVW6lgn8FulS/jY/vb0pK48EMzn2UHNMNY+t3mAm3QUay1TFFRIokreEqIrSGS4oD0zQxDCP/zxMWb2TZ/J95z30cwUYGrsCK2Hp9BaG1LE4qInJ1aA2XiFxxfxdbAIcyD5Hm/T1Nb6lCT9cL7HGFYUvdj+vDG2H3YutCiogUQSq4ROSS7EvdR56ZR9mQbF7tdwcPebzCGlcNbLlpmJ90hfWfWB1RRKTI0K19ROSSXF/ueoK8gqgaVBVPuyfTBnTg4SkBPHh8LJ3sK+C7AXBiD7R5Fmz63U5Erm36V1BELllUSBSedk8AIoK8eapbAF9WHsL4vM6nG/w6FnPmg+A4ZV1IEZEiQAWXiFwR245vY+Ffc6kbvYHDjR5lmONhHKYdY9M3uKZ2hMwUqyOKiFhGBZeIXBHl/ctT3q88MaH1GNOlGdG39Oc+x9Okmj7Y/lqNc3IcpOywOqaIiCW0LUQRoW0hpCRwuBzYDTs24/TvcvO3HOat6T8wiVepaDuK0zMIe8/PoVKsxUlFRK4MbQshIledu809v9gyTZMsj9XcfJsP/TxHs95VDXvOSVzTOsHv0y1OKiJydangEpFCcSTrCH8c/YMTzl28fF8DXgx5lR+czbC5HDDrYVg0BjTALiLXCE0pFhGaUpSSaPfJ3ZzMOUnDsIZk5uQx+It1NNz5Dv3dvgfArHcnxu0TwM3T4qQiIpdGU4oiYrkqQVVoGNYQAF9PN8b1rMPeJn152vEgeaYN448vcU3rDFnHrQ0qIlLIVHCJyFWR58rj6x1f4R+2nNI33soDjqdIM72x7V9x+huMx3ZZHVFEpNCo4BKRq8I0TXzcfXCzudG7aR0e6PMAvXmRv8zS2E/sOl107V9ldUwRkUKhNVxFhNZwybXANE2OnTpGae/SAPyZlMYTH8/jpVOjibHtxmXzwNZlEtTtZnFSEZELozVcIlLkGIaRX2wBlA7MpfOtubxQ5mXmORtjc+XCN31h6ev6BqOIlCgquETEEqZp8s32b/grayd3xmUzu/oYJufdcvrJX17C/DYe8nKtDSkicoWo4BIRSxiGQadqnYj0j+S2ajcz8Z4mpFw/gmcd9+M0DYzEz3B92hWyT1odVUTksmkNVxGhNVwip328cjPLf5jN227j8TNO4Qypgf2eryC4ktXRRETOoDVcIlLs7E7dzSFjFk061ac3z3PYLIX92HacH7SFv9ZaHU9E5JKp4BKRImNv6l6cppMyQad4pf/d9Pd+jc2uSOzZx3BNuQW2fGt1RBGRS6IpxSJCU4oip21O2UyNUjVwt7lzND2Hx6b+ykNHXqKdfcPpBje+ANcPBMOwNqiICJpSFJFiKrp0NO42dwDK+HvyaCcfvqwxgoS8m043mD8Cc2Y/yMmwMKWIyMVRwSUiRdbvR39n0V/zqV5rPYdin2GUo/fpezBu/BLney0haaPVEUVELogKLhEpsioFVKKsT1malG3CfzrUJ7rLk9zrHHF6Mf2JXbg+aAtrP9YmqSJS5GkNVxGhNVwiZ+dwOnCzuWH8/5qt3w8c47kvfmVw+jja2hMBMKPvwOj4Nnjp/x0Rubq0hktESgR3u3t+seUyXWzLWkjPjnnMrPUKLzvuxmHaMTbPxPleCziUaG1YEZFzUMElIsXGgfQDbDu+jV2pf/Js58pU6zycXs5R/GWWxn5yL64Pb4TfPtAUo4gUOZpSLCI0pShyYQ6kHeBEzgnqlakHwLakdJ76bCmPnhzLTfZ1AJi1OmJ0mgDeQRYmFZFrgaYURaREqhBQIb/YAggNyqPnraeYU2c0zzvuJde0Y/z5Pc5JN8Bf6yxMKiLyXyq4RKTYMk2Tb3d+y58nNhHb4AB17niau10vss8Vij3tAK6PboIVEzTFKCKWU8ElIsWWYRi0r9Secn7luLHijXRtVJ5XHuvDkODx/Ohsis3Mg5+fwfX5XZB13Oq4InIN0xquIkJruEQunWma+d9kBNiYvJVPfk3DY/0XPOf2KZ6GA6d/Oezdp0DFZhYmFZGSRmu4ROSa8c9iKykziW93f0NY5DLq3PEId/Myu11lsacfxDWlAywbBy6XhWlF5FqkgktEShS7YSfEK4QIvwh6NKzJ2Mfu4anS45ntvB6b6YQFo3B91g0yU6yOKiLXEE0pFhGaUhS5chxOB3lmHt5u3gBkOxy89OMG8tZ8yfNuCXgZDvJ8y+LW/WOoFGtxWhEpzjSlKCLXLHe7e36xBfBb0nICyy2mduc76GWMYacrArfMJMyE22DJ6+ByWphWRK4FKrhEpERzupzsPLmT7LxsGlcO4K2BvfhP6AS+drbEwAWLXsI1rQtkJFsdVURKMBVchaRLly4EBwfTrVs3q6OIXNPsNjv3Rd9Ht+rdqFO6DhVK+fDpI234s9krPJ77CFmmJ7a9S3C+ez3sXmx1XBEpoVRwFZJBgwYxbdo0q2OICOBmcyO6dHT+Y8PmJKLSb9Tpciv32Mbwp6sC9qyjmNM6w6LRmmIUkStOBVchad26Nf7+/lbHEJGzWH14NQfSD3DcWMObA7ryYvh4vshrg4EJS17FldAR0g5bHVNESpBCK7gOHjzIPffcQ0hICN7e3tStW5e1a9ees/2kSZOoV68eAQEBBAQE0Lx5c+bOnXvFcy1dupSOHTsSERGBYRjMnj37jDYTJ06kUqVKeHl50axZM1avXn3Fc4iIda4Lv44byt1Al2pdqBQSxNR+rfmrxSsMcsSTYXph27+cvEmxsHOB1VFFpIQolILrxIkTxMbG4u7uzty5c9myZQtjx44lODj4nOeUL1+eV155hXXr1rF27Vratm1Lp06d2Lx581nbL1++HIfDccbxLVu2cOTIkXNeJzMzk5iYGCZOnHjW52fMmMHQoUMZOXIk69evJyYmhvbt25Oc/N8FtfXr16dOnTpn/Bw6dOic1xWRosNus9OuYjuqBFUBwM1u467mvjS440busb/KFlckbtnH4NOusGAUOPOsDSwixV6h7MP19NNPs3z5cn799dfL6qdUqVK8/vrr9O3bt8Bxl8tFw4YNqV69OtOnT8dutwOwbds2WrVqxdChQ3nyySf/tX/DMJg1axadO3fOP9asWTOaNGnChAkT8q9VoUIFHnvsMZ5++umLyr948WImTJjA119//a9ttQ+XiHWy87J57/f3SMtNIzbsRqbNzyPuwHh6u80HwFm+GfbuH0NgeYuTikhRY+k+XN999x2NGzeme/fuhIaG0qBBAyZPnnzB5zudTqZPn05mZibNmzc/43mbzcacOXPYsGEDvXv3xuVysWvXLtq2bUvnzp0vqNg6m9zcXNatW0dcXFyBa8XFxbFy5cpL6vPfTJw4kaioKJo0aVIo/YvIv/Oye9E4rDGlvUvTIrIRUx5qwfHWo4l3DCTN9Mb+1284342FbT9ZHVVEiqlCKbh2797NpEmTqF69OvPmzaN///4MHDiQqVOnnve8jRs34ufnh6enJ4888gizZs0iKirqrG0jIiL45ZdfWLZsGXfffTdt27YlLi6OSZMmXXLulJQUnE4nYWFhBY6HhYWRlJR0UX3FxcXRvXt35syZQ/ny5c9ZsMXHx7NlyxbWrFlzyblF5PIYhkGL8i14uN7DeNo9sdsMBsfVIK5nV3q7v84frsrYc07CFz0w5z0DeblWRxaRYsatMDp1uVw0btyY0aNHA9CgQQM2bdrEe++9R58+fc55Xs2aNUlMTCQ1NZWvv/6aPn36sGTJknMWXRUrVuSTTz6hVatWVKlShY8++qjATWyttGCBFtuKFDdutv/+k7jt+Db+SP+W22+vxpur36bl3nd5wO0njJUTcO5bib37FAiOtDCtiBQnhTLCFR4efkaRVLt2bfbv33/e8zw8PKhWrRqNGjVizJgxxMTE8Pbbb5+z/ZEjR+jXrx8dO3YkKyuLIUOGXFbu0qVLY7fbz1h0f+TIEcqWLXtZfYtI8ZLpyMRu2CkXUJqPH2jJqbiXecQxlFTTB/uhdTgn3QBbf7A6pogUE4VScMXGxrJt27YCx7Zv305k5MX9NuhyucjJyTnrcykpKbRr147atWszc+ZMFi5cyIwZMxg2bNgl5/bw8KBRo0YsXLiwQIaFCxeedS2ZiJRcDcMa8mDdB2lXsR02m8GjravRp29/+niOZYOrGvbcNJjRC3POk5B39n+nRET+VigF15AhQ1i1ahWjR49m586dfP7553zwwQfEx8cDMGHCBNq1a1fgnOHDh7N06VL27t3Lxo0bGT58OIsXL6ZXr15n9O9yuejQoQORkZHMmDEDNzc3oqKimD9/PlOmTGHcuHHnzJaRkUFiYiKJiYkA7Nmzh8TExPzRt6FDhzJ58mSmTp3K1q1b6d+/P5mZmdx///1X6N0RkeKirG/Z/GlG0zQ5mLeUW29xMKHyG7yfdysAxur3cX54IxzfbWVUESniCmUNV5MmTZg1axbDhw/nhRdeoHLlyrz11lv5xVNKSgq7du0qcE5ycjK9e/fm8OHDBAYGUq9ePebNm8eNN954Rv82m43Ro0fTokULPDw88o/HxMSwYMECypQpc85sa9eupU2bNvmPhw4dCkCfPn1ISEigR48eHD16lBEjRpCUlET9+vX56aefzlhILyLXlmOnjrHt+DZcpotRXdsy7/eXePCnKF5zm0SppN9xTmqJvfM7EN3F6qgiUgQVyj5ccvG0D5dI0ZeclcyhjEPUD60PQOKBkzz/2c8Mz3qDprbTyyjMxn0x2o8Gdy8Lk4rI1WLpPlwiIiVRqE9ofrEFUC3Mjc63Oplc9VUm5t0OgLH2I5yT20LKTotSikhRpIJLROQS/bj7R/ZmbOeGxvvxu+VFHsgbTooZgD15M873WsAfX1odUUSKCBVcIiKXKC4yjkj/SG6tcit9rq/E0P79edjnLVY6o7DnZcHMhzC/HQC5WVZHFRGLaQ1XEaE1XCIlQ2LSVt5beJhaWz9hoH0WNsMkL6QWbj2mQmgtq+OJyBWmNVwiIldZSnYKc/fNJrLab/h0GMj9rmdINoNwO/Ynzg9aw4bPrI4oIhZRwSUicoW429wJ8w0jwi+CB6+PYXj8wzzq9za/Outgz8uGbx/FNfNhyMmwOqqIXGWaUiwiNKUoUjK4TBen8k7h4+4DQMYpB/+ZvZIKGz9hqNtX2A2TvFLVT08xhkVbnFZELpemFEVELGAzbPnFFsAfx9dQtvIy3G++k/tcI0gyg3E7vgPnB21gXQLod16Ra4IKLhGRQmKaJntS9+BwObihejAjH3uIgQHvsMgZg92ZA98PwvX1A3AqzeqoIlLINKVYRGhKUaRkMk2Trce3UrtUbQzD4JTDyfPf/oH/hvd50m0GboaLvKDKp6cYw2OsjisiF0lTiiIiRYBhGESFRGEYBgDudqhZ63e8O9zOveYoDpohuJ3cg2tyO1g9WVOMIiWUCi4RkatoY8pG9qXvI9djI8/278nQ4AnMdzbC5nLAnGG4vuwDp1KtjikiV5imFIsITSmKXBtM02R10moCPQOpVaoWpxxOxvy4Bfua93na7XM8DCd5ARVx65EA5RpZHVdE/oWmFEVEiiDDMGgW3oxapU7vOu/lbqf/jWUIuKU99xovsN9VBre0/bg+bA8r39UUo0gJoYJLRMRCDpeDr7d/TaptPd171ODp0hOY42yKzXTAvOE4v+gJWcetjikil0kFl4iIhdwMN2LLxRLiFcIt1W4g4dGbWN/0LZ5z3EeO6YZ9+1zyJt0AB1ZbHVVELoPWcBURWsMlcm1zupzYbfb8x5+tW8O3P6zjVeebVLYdwWW4YYsbAc0fA5t+VxYpKrSGS0SkGPlnsbU7dTe7cucSe6ud58LG852zOTYzD+aPwPnZnZB5zMKkInIpVHCJiBQxOXk5eNg9qBwcxpRHbuLP68cx3NGXU6Y79l3zyXv3eti3wuqYInIRNKVYRGhKUUT+6fip4/i7++Nudwfglz8P896X3zEmbxxVbYdxGXZsbf4DNwzVFKOIhTSlKCJSjJXyKpVfbAFkuq+leQcXz0W8xjfOG7CZTvjlRZyfdIGMZAuTisiFUMElIlLEZeRmsPX4VtLzjvJ8j2j2txzHMMfDZJse2PcsJu/dWNiz1OqYInIemlIsIjSlKCLnk5qTyu7U3TQIbQDAip0pvDX9e17MfYOatr9wYcNo9SRGqyfhHwvwRaRwaUpRRKQECfQMzC+2AOpH+tDuNhsvVRjD9LzW2HBhLHkF59TbIT3JwqQicjYquEREiqEF+xeQlL2X65scIqXtGwxxPEqm6Yl93zLyJl4POxdaHVFE/kEFl4hIMdS2QltqBNegc7VODGhbnZ4PPsH9Hm+w1VURt1PHMD/tirngBXDmWR1VRNAariJDa7hE5HKtP/wn4+duJ253Ave4nR7hyit/HW7dP4bAchanEymZtIZLROQakpqTyvwD31Kt9h8cbjOUgXkDSTe9cftr1elvMW7/2eqIItc0FVwiIiWAu82dyIBIyvqVZUib67iv31D6eo5lo6sSbjkn4PPumD8/B06H1VFFrkmaUiwiNKUoIpfLNE1OOU/h7eYNwMnMXJ74eiHX75jC/W7zAMiLaIzbnVMgqKKVUUVKDE0piohcYwzDyC+2AHZlbKRCjTXsb3UX8XlDSTV9cDu0lrx3b4A/f7Qwqci1RwWXiEgJdTDjICYmcVFhPPLIYPr5jCPRVRW33FSYfjfm3KcgL9fqmCLXBE0pFhGaUhSRK800TXac3EH1oOoYhkH6KQfPfL2WOn++Qz+30yNceWXr43ZnApSqbG1YkWJKU4oiItc4wzCoEVwDwzAA8PW007jBDg617kQ/5zBOmH64JSWSN6kFbJ5tbViREk4Fl4jINWLnyZ3sSduDh/8u+j7Ym0f83mKtqwZujnT4qg+uHx4HxymrY4qUSJpSLCI0pSgiV8PmlM24TBd1y9QlMyePkbMSqbLpbR51+w4AR5k6uN81DUKqWpxUpHjQlKKIiJwhunQ0dcvUBcDX042nO1Uipe0tPOh8imOmP+5HN+Gc1AI2fm1xUpGSRQWXiMg1ymW6+Gb7N5je24ntWov4gPGsctXGnpcJ3/TFNfNhyDpudUyREkEFl4jINcpm2GhdoTWlvUvTNSqOKY914rt67/J23h24TAPbH9PJe6cJbPoGtPpE5LJoDVcRoTVcImIVl+nCZvz39+/Jq1byy9zfeN78gBq2gwA4q9+M/bY3dRNskf+hNVwiInJB/llsHcw4SJK5gIa32BlXbRJvOrqRa9qx7/jp9GjX6sngclmYVqR4UsElIiL58lx5+Lj7UCm4LO/e25J6vUZzn8ebp7ePyMuEOcPI/bA9HN1mdVSRYkVTikWEphRFpKjIyM3AzeaGl5sXACeyshjz8wq813zPE27T8TNO4TTcMVo9ge2GIeDmYXFiEetoSlFERC6Jn4dffrEFsPbocnzDllOp240MCJ7EQmcD7KYD2+LR5Ey8AQ6ssTCtSPGggktERM7JNE0cTgcA10dW58PHOrP3po953DWQFDMAzxPbMD+6kbwfn4ScDIvTihRdmlIsIjSlKCJF2dGso5TxKZP/eP2hXXz402ba7fmArvZfATjlE4FXl3egepxVMUWuOk0piojIFfPPYsvhdLAs6UcqRG8mq9MoBrqN4ICrDF5Zh+Czrpya8QBkHrMwrUjRo4JLREQuSrYzO3+d150N6vLysIFMazCdD/NuwWkaeG39hlNvN8L8fYY2TBX5f5pSLCI0pSgixYlpmqTmpBLkFZR/bObmVSz+6Xf6p75DbdsBADIrtsH3jvEQVNGipCKFS1OKIiJSaAzDKFBs7Tq5i41p86jWJpelbWYwznUXOaY7vvsXkTu+KY4V74LLaV1gEYup4BIRkSvC38OfGsHVebhNNN0Gj2NUuff5zVULD1c27j8PJ/3dtnBki9UxRSyhKcUiQlOKIlLc5ThzMDDwsJ/eCDUjN4NP163m2Py5POb8hAAjmzzccDQfhHe7p8DN0+LEIpdPU4oiInJVedo984stgPn75nOEX6l9VysmRX/Oz85GuJGH98qxpL11Hea+lRamFbm6VHCJiMgVZ5ompb1L425zp2l4fZ66sy0hfb/mJZ+nOWoGEpCxG2PKzaR+PRBOpVkdV6TQaUqxiNCUooiURFmOLHzcffIfbz22jZ9W76f8yol0ty0CIN0jDK8ub+Fe+xarYopcMk0pioiI5f5ZbGU6Mvl+97ekB60kou9oxoS+xl5XGP65R3Cf0ZNjCb0gI9nCtCKFRwWXiIhcNVUCqxDqE8p1FWrydP9+bO40l6lGJ/JMGyF7fyBrXEOyfpuqDVOlxFHBVUi6dOlCcHAw3bp1szqKiEiR4OvuS7ca3bi/zv3YbXYMw+CWhlUIv7cvb1d7h02uSvg40/GZO5DkdztgHt9jdWSRK0YFVyEZNGgQ06ZNszqGiEiR42n/73YQf6T8wcojizGikknvPZfJnn04ZboTenQlue804/j8seDMszCtyJWhgquQtG7dGn9/f6tjiIgUaWW8yxDmE0aTsCY0rxZBnyfe4qumX7LSFY2nmUOp5S9w5K0WOA7+bnVUkctyyQXXwYMHueeeewgJCcHb25u6deuydu3as7YdM2YMTZo0wd/fn9DQUDp37sy2bdsKtBk1ahSGYRT4qVWr1qXGO6elS5fSsWNHIiIiMAyD2bNnn7XdxIkTqVSpEl5eXjRr1ozVq1df8SwiIte6CL8IHqr7ENdHXA+Ah5uNW9vV5/BdL/Be8BBSTR/C0rdgm9yawzOHgyPb4sQil+aSCq4TJ04QGxuLu7s7c+fOZcuWLYwdO5bg4OCztl+yZAnx8fGsWrWK+fPn43A4uOmmm8jMzCzQLjo6msOHD+f/LFu27JwZli9fjsPhOOP4li1bOHLkyDnPy8zMJCYmhokTJ56zzYwZMxg6dCgjR45k/fr1xMTE0L59e5KTT397pn79+tSpU+eMn0OHDp2zTxEROTu7zY7dZgdO79/14+4f2Zi6nPK3NWb5zXOYz3XYcRH+x7ukvN6YjG2LrQ0scinMS/DUU0+ZN9xww6WcapqmaSYnJ5uAuWTJkvxjI0eONGNiYi7ofKfTacbExJjdunUz8/Ly8o//+eefZlhYmPnqq69eUD+AOWvWrDOON23a1IyPjy9wvYiICHPMmDEX1O/fFi1aZHbt2vWC2qamppqAmZqaelHXEBEpSVwul/l78u/mm2vfNFOyUkzTNM3jGTlmwkfvmIdHRJrmyADTHBlg7p3yoOnKOm5tWBHzwj+/L2mE67vvvqNx48Z0796d0NBQGjRowOTJky/4/NTUVABKlSpV4PiOHTuIiIigSpUq9OrVi/3795/1fJvNxpw5c9iwYQO9e/fG5XKxa9cu2rZtS+fOnXnyyScv5WUBkJuby7p164iLiytwvbi4OFauvPK3oZg4cSJRUVE0adLkivctIlLcGIZBvTL1GNhgICHeIQAE+3pQ59bmrOj0Md+5twcgcu+XnHyjISlrvrYyrsgFu6SCa/fu3UyaNInq1aszb948+vfvz8CBA5k6deq/nutyuRg8eDCxsbHUqVMn/3izZs1ISEjgp59+YtKkSezZs4cWLVqQnp5+1n4iIiL45ZdfWLZsGXfffTdt27YlLi6OSZMmXcpLypeSkoLT6SQsLKzA8bCwMJKSki64n7i4OLp3786cOXMoX778OYu1+Ph4tmzZwpo1ay4rt4hISfL3FCPAiVMn+GnPT2zM+ZWaj4zmq7rvs9sMJ9h5nNI/9mX3xC44TmpJhxRtbpdyksvlonHjxowePRqABg0asGnTJt577z369Olz3nPj4+PZtGnTGeuzOnTokP/nevXq0axZMyIjI/nyyy/p27fvWfuqWLEin3zyCa1ataJKlSp89NFHGIZxKS/piluwYIHVEURESgQ/dz+ahTfjSNYRapSqSs2u1dh9fRwzP3uGjulfUeXoL2S81ZjDsc9RMe4RKCKfAyL/dEkjXOHh4URFRRU4Vrt27XNOAf5twIAB/PDDDyxatIjy5cuft21QUBA1atRg586d52xz5MgR+vXrR8eOHcnKymLIkCEX/iLOoXTp0tjt9jMW3h85coSyZctedv8iInJx3O3uxEXG0bNWz/xfqiPDgvHo0pFvb5jMZqriRyYVlz/NnrFtyDj0p8WJRc50SQVXbGzsGds6bN++ncjIyLO2N02TAQMGMGvWLH755RcqV678r9fIyMhg165dhIeHn/X5lJQU2rVrR+3atZk5cyYLFy5kxowZDBs27OJf0D94eHjQqFEjFi5cmH/M5XKxcOFCmjdvfll9i4jIpbMZ//3I+u3wb6xLXsf+4H2UHryYb8MGkGV6UjljA24ftGDb1y9g5uVamFakoEsquIYMGcKqVasYPXo0O3fu5PPPP+eDDz4gPj4egAkTJtCuXbv89vHx8Xz66ad8/vnn+Pv7k5SURFJSEtnZ/91PZdiwYSxZsoS9e/eyYsUKunTpgt1up2fPnmdc3+Vy0aFDByIjI5kxYwZubm5ERUUxf/58pkyZwrhx486ZPSMjg8TERBITEwHYs2cPiYmJBUbnhg4dyuTJk5k6dSpbt26lf//+ZGZmcv/991/K2yUiIldYVEgU1YKq0bZiW8KCAujU/2W2dpnHGnt9vMil5qaxHHjtOpK3rbI6qshpl/o1yO+//96sU6eO6enpadaqVcv84IMP8p8bOXKkGRkZmf8YOOvPlClT8tv06NHDDA8PNz08PMxy5cqZPXr0MHfu3HnO6//8889mdnb2GcfXr19vHjhw4JznLVq06KxZ+vTpU6DdO++8Y1asWNH08PAwmzZtaq5aterf35TLoG0hREQujsvlMl0uV/7jv9L/Mmdv+878dtqr5vEREaY5MsDMGxFo/v7RANORnW5hUinJLvTz2zBN3ZK9KEhLSyMwMJDU1FQCAgKsjiMiUqyYpskHf3xAUlYSTcKaUMuozaEZg7nh1GIADtvKkt3+Tao0u9XaoFLiXOjnt+6lKCIixZ5hGNxU6SbK+5WnVYVWVKlcmeufnM3SRhNIIoRwVxJV5t7NhnfuJuPkUavjyjVII1xFhEa4REQun2maBbYHWnxgMXlZebjP/YQWJ77FZpgcI4i/rhtFTPv7tIWEXDaNcImIyDXnn8XWkcwjLP1rKcuPL6fSAy/wx00z2GuUJ4STxKwaTOLrt3Dkr10WppVriQouEREpkcr4lKFD5Q40CmtEZEAk9WPbU/bJNSwv9yC5pp36WSvwnRzLiumv4nQ6rY4rJZymFIsITSmKiBS+XGcuM7bNoPKpYMrMfZGajtObpG52i8a9yzvUiG5kcUIpbjSlKCIi8j+WHVzG7tTdrGc3VZ5YypraT5OFJ9F5m4n88iYWT36CzKwsq2NKCaSCS0RErhnNI5rTKKwRt1S+BXcPT5r0GE7Wg8vZ7NMMTyOP1gc/4PDr17Fm+c9WR5USRlOKRYSmFEVErLHjxA7WJK2h6t7j1PjtVYJJw2UaLAq+g7r3vE5o6RCrI0oRpilFERGRf2GaJvP2zmPHyR2kR9XCc/BaNoXcjM0waXfyGxzvNGPB95/hdGlsQi6PRriKCI1wiYhY42jWUZb+tZSOVTviYfcAYO+q2Xj//ARhrmQAFnm2pVyPcdSoUsnCpFIUaYRLRETkApTxKUPXGl3ziy2ADSEmf9w9jj8i78ZlGrTJ+YXSU2/gu0/eJjsnz8K0Ulyp4BIREfmHQxmH+CPlD1YeXU+Z7iM40fNHDnpUppSRzu27RrDh1ZtYuT7R6phSzGhKsYjQlKKISNGx7fg2jmYf5YZyN5w+kJfLzlkvUXHzRDzII9P0ZE7Yw7Tq9TShgb7WhhVLaUpRRETkEtUsVfO/xRaQ4crlp2qhJPb4mH1+9fA1cuiePJ7D41rx44JfcGlRvfwLFVwiIiL/YuXhlRw7dYwNuUlUGLKIQ7Evk2V4E8MObvy1G1+PjWfHoRSrY0oRpinFIkJTiiIiRVeeK4+Vh1ZSNagqEX4Rp4+dOMBfnz1KpZSlAOw0y/Fb3VF07dQVL3e7lXHlKrrQz28VXEWECi4RkeJlQ/IGVh9eTYsMKP/LaAKcJ3GZBrPdOxB+xxiaR1WyOqJcBVrDJSIiUkhcpotlB5eRlJXEyUp1CXh8A39VugObYXJH3hwiZ7Rh8oeTSMnIsTqqFBEa4SoiNMIlIlK8ZORm8FvSb7Sp0AabcXr8Im3LPPJmD6ZU7iEA5hJLbtxobo+NwTAMK+NKIdEIl4iISCHy8/CjXcV2+cWWaZrMMpNY3GUke+s8gBMbHVhOy/m3MvGtl9h5JN3ixGIlFVwiIiJXwKHMQ+xL28fW1F0E3jYC88GFHPOrQbCRwYDUN0ia2IEPv1/EKYfT6qhiAU0pFhGaUhQRKf4OZhzkWPYx6pWpd/qA00HygtcJXvkm7jjIMj1J8OxF/e5Pc331MGvDyhWhKUUREZGrrJxfuf8WW0BKbipTgu2svHMiR0s3xsfI4dHcj/H55GbemDaT45m5FqaVq0kFl4iISCH5/ejvnHKeYj8OSvf/mewO48i2+VHftptBux5k5uv9+HLlDvKcLqujSiHTlGIRoSlFEZGSxzRN/kj5g4r+FQn2CgYg7+RfpMwaQtl9PwPwl1maLzzvpNpND3F7w8rYbfo2Y3GijU+LGRVcIiLXhl//+pW1R9Zyi8uX8gtewzfnKHC68PrS605q3Pwwt8REYlPhVSxoDZeIiEgR4zJdbEzZSFpuGjmVrsP38T/IafcymR4hlDdSGJrzLvVnt+Od1/7DvD/2oTGRkkMjXEWERrhERK4NDqeDP1L+oGFow/zNUJNO7sXj91l4LnsHX8cx4PSI1yzfHkR16E/bOuW1cWoRpSnFYkYFl4jItcllunjv9/dIzUmlR9XOhG/9BefSN/FzpABw0AzhO7+7iLq1Py1rq/AqajSlKCIiUgxkODJwt7ljM2xEBFXGu0U8fk9uIqvdaNLdS1POOEb/zIlUn9GSyW8+w4ptBzXVWAxphKuI0AiXiMi1yzRNjp86Toh3SP6x73Z9R4DNizr7/sRj+dsE/P+I1yGzFHMDe1Lv9sdoUi3cqsjy/zTCJSIiUkwYhlGg2ErOSmZD8gaWJq3C1fQuAp7cTHrbMaS5lyHCOE7ftImU/+R6Et56hg27D1uYXC6URriKCI1wiYjI30zTZMvxLSRlJtGuYrv84/uP78Dr9zl4rniHQMfp7SSSzGAWlLqbmE4DqVuprFWRr1laNF/MqOASEZHzyc7LZvz68RiGwQO17sG+bjbGsnEE5SUDpwuvRaV7Ub/TIGpXDLU47bVDU4oiIiIlSGpOKr7uvvi7+xPiF05w60cJenoTx1qN4YRbKGWNE/Q8NoHgj5ry5cRn2HEw2erI8g8a4SoiNMIlIiL/xmW6SM9NJ9AzEDg99fjp1k+pHlCJitsS8Vo5nlL/P+J1xAxiWdg9NOgymCrhZayMXaJphEtERKSEsRm2/GILYNuJbexO3c3iQ8sJbvUgpZ7eRFLLVzjuFkqYcZKuyRPwe68xsyY9y/4jKRYmF41wFREa4RIRkYuV58rj96O/43Q5aRreNP/47mPbcN8wH5+VbxPiPD3ilWwG8VvEvTS4Ywjly4Scq0u5SBrhEhERKeHcbG40CmtUoNg6mnWUT7fPYGYpJ35PrudA7Cuk2MMINU7S8fA7eE5owJwPnuVwyjELk197VHCJiIiUIKk5qfh5+BHuG46npz8VbuxP6eGb2Bs7hmR7GGWMVG459A5u7zRg3uRnST523OrI1wRNKRYRmlIUEZErxeFykJOXg5+HHwA5zhw+2fIJjcvUxzfxNwLXvE2o8wgAKWYgiRV706DLUEJKlbIydrGkKUUREZFrlLvNPb/YAlibtJaDGQdZnvQbVdv3p8zwTey4bgxJtrKUNlKJO/AO5tv1WfTxs5w4ccLC5CWXRriKCI1wiYhIYcl15rI2aS0h3iHULFUTOL2lxPaULThXLyJ43TuEu5IAOGYGsLnSfcTc8TiBgUEWpi4eNMIlIiIiAHjYPbi+3PX5xRac3lJi+s6vWVHRi7Dhf7C5yRgO28oSYqTRct94nOPqsjzhWdLTNOJ1JajgEhERuQadyjuFl92LKoFVsLl7En3ro4QN38jvDV/moK0spUgjdu87ON6sy8ppz5GVcdLqyMWaphSLCE0piojI1Zadl43NsOFp9wQgJTuFWTtmcUP49ZxauYTQDW9Tzjw91XiCAHZUvY96dwzDyzfwfN1eUzSlKCIiIufl7eadX2wBLD+4nEOZh0g89gcNbn+UsP9sZG2D0fxlhBNMGk13jefU69Gs+/Q5cjJPWhe8GNIIVxGhES4REbFaliOLlYdXEh0STVnfssDpBfe7j+/ixK8LKbdxAhXNwwCk4seeGg8Q1WkYHtfwiJdGuEREROSi+Lj70K5iu/xiC2B10mpm7PySw3UjKDv8D5bXG80+Iggkg/rbx5P9ehQbv3gOR9ZJ64IXAyq4RERE5Jxcpgs3w42qQVXx8PAg9o54Qp9OZGmdl/MLr7rbxpP1Wh02T38OZ3aq1ZGLJE0pFhGaUhQRkaIqIzcDH3cfbMbpcZrtJ7az8tBKmofFcnDRPCpvnkAlDgGQhh8Haz9AzduHYfMu+VONmlIUERGRK8LPwy+/2AJYdnAZe9P2si9zD226x1PmqUQW1H6Z3ZQjgAxqbx1PxmtRbP/yOVyaagQ0wlVkaIRLRESKi9ScVFYcWkHL8i3xdfcF4OSpkySlpbB34Vyqb5tEVQ4CkG74khzVlyq3PY7hHWRh6sKhES4REREpFIGegXSo3CG/2AJY8tcSZuz6DK8b6lL6ifX8WOMldpnl8Dczqbp5PJmvRbHnm+cws6/NnetVcImIiMhlMU0Tu82ODRvVg6sT6OvFrXc/RvDja/m22kvsNMvjZ2ZSeeN4sl6LZv/MEddc4aUpxSJCU4oiIlLcpeem4+/hn/945aGV7EvbR0yp5myd9y11d75PdeMvADINX07U7Uv5Do9DMZ5q1JSiiIiIXFX/LLacLicrDq1g24ltnOI4d9w7kMCha/iy8ktsN8vja2ZS/o/xZL1Wm0Ozn4MSPuKlgquQdOnSheDgYLp162Z1FBERkavObrPTO6o3Tcs2pV7pegCEBvrQslt3ch/5kc8jX2SbWQEfM4uIxPFkvRbFkW9LbuGlgquQDBo0iGnTplkdQ0RExDJlfMrQoXIH7DY7cHqt14+7f2Tm3mlE39YKn4Gr+KTCi/zpOl14hW04vcbr6LfPQdZxi9NfWSq4Cknr1q3x9/f/94YiIiLXCIfLgb+HP242N6oGVqVCiB/39h2I12MrmFL+Rba6KuJjZlJmw3iyX4/m2Hclp/Aq1ILr4MGD3HPPPYSEhODt7U3dunVZu3btWduOGTOGJk2a4O/vT2hoKJ07d2bbtm1XPNPSpUvp2LEjERERGIbB7Nmzz9pu4sSJVKpUCS8vL5o1a8bq1auveBYREZFriYfdgztr3snABgPx8/DLP745/VdKtY7kVL85fBjxAltdFfE2swhZP57sN6I58f2zxb7wKrSC68SJE8TGxuLu7s7cuXPZsmULY8eOJTg4+KztlyxZQnx8PKtWrWL+/Pk4HA5uuukmMjMzz3mN5cuX43A4zji+ZcsWjhw5ctZzMjMziYmJYeLEiefsd8aMGQwdOpSRI0eyfv16YmJiaN++PcnJyflt6tevT506dc74OXTo0Dn7FREREQoUWxm5GWxI3kDi0URKB8CD/QZh67+M98o+zxZXJN6uLILXvcOpN6JI/aH4jngV2rYQTz/9NMuXL+fXX3+9pPOPHj1KaGgoS5YsoWXLlmc873K5aNiwIdWrV2f69OnY7afnh7dt20arVq0YOnQoTz755HmvYRgGs2bNonPnzgWON2vWjCZNmjBhwoT8a1WoUIHHHnuMp59++oJfw+LFi5kwYQJff/31v7bVthAiInKtOphxkG3Ht9G2Ytv8Y7tTd5N83MbaubNpk/Qx0bZ9AOTYvMlp+CABbYaAb4hVkfNZvi3Ed999R+PGjenevTuhoaE0aNCAyZMnX/D5qamn7zZeqlSpsz5vs9mYM2cOGzZsoHfv3rhcLnbt2kXbtm3p3LnzvxZb55Kbm8u6deuIi4srcK24uDhWrlx5SX2ez8SJE4mKiqJJkyZXvG8REZHioJxfuQLFlsPlYPaO2Sw48ikd7+mC86ElvF3meTa7IvF0ZROw9h1yxkaT8eOzkHnMwuQXrtAKrt27dzNp0iSqV6/OvHnz6N+/PwMHDmTq1Kn/eq7L5WLw4MHExsZSp06dc7aLiIjgl19+YdmyZdx99920bduWuLg4Jk2adMm5U1JScDqdhIWFFTgeFhZGUlLSBfcTFxdH9+7dmTNnDuXLlz9nsRYfH8+WLVtYs2bNJWcWEREpSbIcWZT2Lo2/hz/l/MpRr0Iwg+IHk33/It4MeZ5Nrkp4urLxW/MOuWOjyfzxGchMsTr2ebkVVscul4vGjRszevRoABo0aMCmTZt477336NOnz3nPjY+PZ9OmTSxbtuxfr1OxYkU++eQTWrVqRZUqVfjoo48wDOOKvIbLsWDBAqsjiIiIFEuBnoH0ju5NpiMTN9vpUsU0Tf7MnktUx1ocy/2BV+d+zS3HEqjLXjzWTCB33UfkNeqLT+sh4Fva4ldwpkIb4QoPDycqKqrAsdq1a7N///7znjdgwAB++OEHFi1aRPny5f/1OkeOHKFfv3507NiRrKwshgwZclm5S5cujd1uP2PR/ZEjRyhbtuxl9S0iIiIX7p83xz6YcZBdqbtYm7SWBpUCeXLgYNLuXcDLgSP5w1UZD1c2PmsmkDs2mlM/PgMZRy1MfqZCK7hiY2PP2NZh+/btREZGnrW9aZoMGDCAWbNm8csvv1C5cuV/vUZKSgrt2rWjdu3azJw5k4ULFzJjxgyGDRt2ybk9PDxo1KgRCxcuzD/mcrlYuHAhzZs3v+R+RURE5NKV8yvHPbXv4abImwjwCMAwDGKrl+GO3h043GM2LwSM5HdXFTxcp/BaMwHHm3XImfOfIlN4FVrBNWTIEFatWsXo0aPZuXMnn3/+OR988AHx8fEATJgwgXbt2uW3j4+P59NPP+Xzzz/H39+fpKQkkpKSyM7OPmv/LpeLDh06EBkZyYwZM3BzcyMqKor58+czZcoUxo0bd9bzMjIySExMJDExEYA9e/aQmJhYYORt6NChTJ48malTp7J161b69+9PZmYm999//xV6d0RERORiGIZB1aCqNA1vmn8sNSeVb3Z8w/qML3is//0c7TGXEX4jSXRVwd11Cs/VE3G8WYfcOcMhI/k8vV8FZiH6/vvvzTp16pienp5mrVq1zA8++CD/uZEjR5qRkZH5j4Gz/kyZMuWc/f/8889mdnb2GcfXr19vHjhw4KznLFq06KzX6dOnT4F277zzjlmxYkXTw8PDbNq0qblq1aqLeu0XKzU11QTM1NTUQr2OiIhISXE447D5/u/vmwmbEvKPOZ0uc87vf5nPvDrW3PBcA9McGWCaIwPM3OfLmFk7fr3iGS7087vQ9uGSi6N9uERERC6eaZpk52Xj4+4DQJ4rj8l/TKZWqdqcTKnE6vnfcGfm50QYKRzsvYqGVcOv6PUv9PO70L6lKCIiIlLYDMPIL7YANh/bTHJ2MtlHs3msQSy31x/Ktxvu5Oed23nqChdbF0MFl4iIiJQY9UrXw81wAwPcbe4A3NGoAilR3pbmUsElIiIiJYZhGESXji5w7FDGIQI8rF2uU2jfUhQREREpCvw8/ArcMNsKKrhERESkRLN6dAtUcImIiIgUOhVcIiIiIoVMBZeIiIhIIVPBJSIiIlLIVHCJiIiIFDIVXCIiIiKFTAWXiIiISCFTwSUiIiJSyFRwiYiIiBQyFVwiIiIihUwFl4iIiEghU8ElIiIiUshUcImIiIgUMjerA8hppmkCkJaWZnESERERuVB/f27//Tl+Liq4ioj09HQAKlSoYHESERERuVjp6ekEBgae83nD/LeSTK4Kl8vFoUOH8Pf3xzCMK9ZvWloaFSpU4MCBAwQEBFyxfqUgvc9Xj97rq0Pv89Wh9/nqKMz32TRN0tPTiYiIwGY790otjXAVETabjfLlyxda/wEBAfqf+SrQ+3z16L2+OvQ+Xx16n6+Ownqfzzey9TctmhcREREpZCq4RERERAqZCq4SztPTk5EjR+Lp6Wl1lBJN7/PVo/f66tD7fHXofb46isL7rEXzIiIiIoVMI1wiIiIihUwFl4iIiEghU8ElIiIiUshUcImIiIgUMhVcJdzEiROpVKkSXl5eNGvWjNWrV1sdqURZunQpHTt2JCIiAsMwmD17ttWRSqQxY8bQpEkT/P39CQ0NpXPnzmzbts3qWCXOpEmTqFevXv7mkM2bN2fu3LlWxyrxXnnlFQzDYPDgwVZHKXFGjRqFYRgFfmrVqmVJFhVcJdiMGTMYOnQoI0eOZP369cTExNC+fXuSk5OtjlZiZGZmEhMTw8SJE62OUqItWbKE+Ph4Vq1axfz583E4HNx0001kZmZaHa1EKV++PK+88grr1q1j7dq1tG3blk6dOrF582aro5VYa9as4f3336devXpWRymxoqOjOXz4cP7PsmXLLMmhbSFKsGbNmtGkSRMmTJgAnL5fY4UKFXjsscd4+umnLU5X8hiGwaxZs+jcubPVUUq8o0ePEhoaypIlS2jZsqXVcUq0UqVK8frrr9O3b1+ro5Q4GRkZNGzYkHfffZeXXnqJ+vXr89Zbb1kdq0QZNWoUs2fPJjEx0eooGuEqqXJzc1m3bh1xcXH5x2w2G3FxcaxcudLCZCKXLzU1FThdDEjhcDqdTJ8+nczMTJo3b251nBIpPj6eW2+9tcC/03Ll7dixg4iICKpUqUKvXr3Yv3+/JTl08+oSKiUlBafTSVhYWIHjYWFh/PnnnxalErl8LpeLwYMHExsbS506dayOU+Js3LiR5s2bc+rUKfz8/Jg1axZRUVFWxypxpk+fzvr161mzZo3VUUq0Zs2akZCQQM2aNTl8+DDPP/88LVq0YNOmTfj7+1/VLCq4RKRYiY+PZ9OmTZatwyjpatasSWJiIqmpqXz99df06dOHJUuWqOi6gg4cOMCgQYOYP38+Xl5eVscp0Tp06JD/53r16tGsWTMiIyP58ssvr/o0uQquEqp06dLY7XaOHDlS4PiRI0coW7asRalELs+AAQP44YcfWLp0KeXLl7c6Tonk4eFBtWrVAGjUqBFr1qzh7bff5v3337c4Wcmxbt06kpOTadiwYf4xp9PJ0qVLmTBhAjk5OdjtdgsTllxBQUHUqFGDnTt3XvVraw1XCeXh4UGjRo1YuHBh/jGXy8XChQu1HkOKHdM0GTBgALNmzeKXX36hcuXKVke6ZrhcLnJycqyOUaK0a9eOjRs3kpiYmP/TuHFjevXqRWJiooqtQpSRkcGuXbsIDw+/6tfWCFcJNnToUPr06UPjxo1p2rQpb731FpmZmdx///1WRysxMjIyCvymtGfPHhITEylVqhQVK1a0MFnJEh8fz+eff863336Lv78/SUlJAAQGBuLt7W1xupJj+PDhdOjQgYoVK5Kens7nn3/O4sWLmTdvntXRShR/f/8z1h/6+voSEhKidYlX2LBhw+jYsSORkZEcOnSIkSNHYrfb6dmz51XPooKrBOvRowdHjx5lxIgRJCUlUb9+fX766aczFtLLpVu7di1t2rTJfzx06FAA+vTpQ0JCgkWpSp5JkyYB0Lp16wLHp0yZwn333Xf1A5VQycnJ9O7dm8OHDxMYGEi9evWYN28eN954o9XRRC7JX3/9Rc+ePTl27BhlypThhhtuYNWqVZQpU+aqZ9E+XCIiIiKFTGu4RERERAqZCi4RERGRQqaCS0RERKSQqeASERERKWQquEREREQKmQouERERkUKmgktERESkkKngEhERESlkKrhERERECpkKLhEREZFCpoJLREREpJCp4BIREREpZP8HTgU1UZQ7EOAAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -836,7 +895,7 @@ } ], "source": [ - "box = 2\n", + "box = 0\n", "channel = 0\n", "slice = 5\n", "\n", @@ -844,38 +903,42 @@ "y_pred = net(X_batch.detach())\n", "\n", "plt.plot(\n", - " y_batch[box, channel, diff - 1 : -diff - 1, slice - 1, slice - 1]\n", - " .detach()\n", - " .cpu()\n", - " .numpy(),\n", + " y_batch[box, channel, :, slice, slice].detach().cpu().numpy(),\n", " label=\"ground truth\",\n", ")\n", "plt.plot(\n", - " y_pred[box, channel, diff - 1 : -diff - 1, slice - 1, slice - 1]\n", - " .detach()\n", - " .cpu()\n", - " .numpy(),\n", + " y_pred[box, channel, :, slice, slice].detach().cpu().numpy(),\n", " label=\"neural network \",\n", ")\n", "plt.plot(\n", - " y_interpolated[box, channel, :, slice - diff, slice - diff].detach().cpu().numpy(),\n", + " y_interpolated[box, channel, :, slice, slice].detach().cpu().numpy(),\n", " label=\"interpolation \",\n", " linestyle=\":\",\n", " alpha=0.6,\n", ")\n", - "plt.legend()\n", - "plt.show()" + "plt.yscale(\"log\")\n", + "plt.legend()" ] }, { "cell_type": "code", - "execution_count": 82, - "id": "87e6487b-629b-4909-b03f-f59811f10ce8", + "execution_count": 26, + "id": "ddd54cde-bbdc-45ba-8ae4-487b675bdf43", "metadata": {}, "outputs": [ { "data": { - "image/png": "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rYDC6mb9aqfO4acrTQ5WWpp1LtvW7x4c4j70JwczvDC8EBGRiattVotzaLot4T5X3oB2Tc+PdbkMCOyaHKzbk0Y5pCYHM7wwvBAR0TCk7ug+OVjfS3PlycGWulVOXUch+BtpcjDDC8MLERERAHFycFl9my7MdPXUXGlysKWZHCHuym7Lt1UI81QO+ORghheGFyIioqtqVncgp9Rw2OlMaQOarzA52MfJGuEe4pDTOF8HTA9169d6+vL5bdavz0xERESSYGNhhnG+jhjn66hr65oc3D3QZJfUo7iuFUXVLSiqbsGPp8sQ6+/U7+GlLxheiIiICAAgl8vg52ILPxdb3DbGU9de06TutnNwA8I8lEaskuGFiIiIrsHR1gKTAl0wKdDF2KUAAExmr+HU1FREREQgJibG2KUQERHRAOKEXSIiIjK6vnx+m0zPCxEREQ0PDC9EREQkKQwvREREJCkML0RERCQpDC9EREQkKQwvREREJCkML0RERCQpDC9EREQkKQwvREREJCkML0RERCQpDC9EREQkKQwvREREJCkML0RERCQpDC9EREQkKSYTXlJTUxEREYGYmBhjl0JEREQDSCYIgmDsIvpTfX09VCoV6urqYG9vb+xyiIiI6Dr05fPbZHpeiIiIaHhgeCEiIiJJYXghIiIiSWF4ISIiIklheCEiIiJJYXghIiIiSWF4ISIiIklheCEiIiJJYXghIiIiSWF4ISIiIklheCEiIiJJYXghIiIiSWF4ISIiIklheCEiIiJJYXghIiIiSWF4ISIiIklheCEiIiJJYXghIiIiSWF4ISIiIklheCEiIiJJMZnwkpqaioiICMTExBi7FCIiIhpAMkEQBGMX0Z/q6+uhUqlQV1cHe3t7Y5dDRERE16Evn98m0/NCREREwwPDCxEREUkKwwsRERFJCsMLERERSQrDCxEREUkKwwsRERFJCsMLERERSQrDCxEREUkKwwsRERFJCsMLERERSQrDCxEREUkKwwsRERFJCsMLERERSQrDCxEREUkKwwsRERFJCsMLERERSQrDCxEREUkKwwsRERFJCsMLERERSQrDCxEREUkKwwsRERFJCsMLERERSQrDCxEREUkKwwsRERFJCsMLERERSQrDCxEREUkKwwsRERFJCsMLERERSQrDCxEREUkKwwsRERFJCsMLERERScqQDS/Nzc0YOXIknnnmGWOXQkREREPIkA0vr732Gm666SZjl0FERERDzJAML+fOncOZM2dw6623GrsUIiIiGmL6HF727t2L2bNnw8vLCzKZDFu2bOlxTWpqKvz8/GBlZYXY2FgcOXKkT8/xzDPPYOXKlX0tjYiIiIaBPoeXpqYmREZGIjU1tdevb9y4ESkpKVi+fDkyMzMRGRmJpKQklJeX666JiorC6NGje9yKi4vxzTffICQkBCEhIb/+VREREZHJkgmCIPzqb5bJsHnzZsyZM0fXFhsbi5iYGKxZswYAoNVq4ePjg8WLF+O555675mM+//zz+M9//gOFQoHGxka0t7fj6aefxrJly3q9vq2tDW1tbbr79fX18PHxQV1dHezt7X/tSyMiIqJBVF9fD5VKdV2f3/0650WtVuPo0aNITEzUP4FcjsTERBw8ePC6HmPlypUoKipCQUEBVq1ahYceeuiKwaXrepVKpbv5+Pjc8OsgIiKioatfw0tlZSU0Gg3c3d0N2t3d3VFaWtqfT6Xz/PPPo66uTncrKioakOchIiKiocHM2AVczfz58695jaWlJSwtLQe+GCIiIhoS+rXnxcXFBQqFAmVlZQbtZWVl8PDw6M+nIiIiomGqX8OLhYUFJkyYgB07dujatFotduzYgbi4uP58KiIiIhqm+jxs1NjYiNzcXN39/Px8ZGVlwcnJCb6+vkhJSUFycjKio6MxceJErF69Gk1NTViwYEG/Fk5ERETDU5/DS0ZGBmbMmKG7n5KSAgBITk5GWloa5s6di4qKCixbtgylpaWIiorC999/32MSb39LTU1FamoqNBrNgD4PERERGdcN7fMyFPVlnTgRERENDUbb54WIiIhooDG8EBERkaQwvBAREZGkMLwQERGRpDC8EBERkaSYTHhJTU1FREQEYmJijF0KERERDSAulSYiIiKj41JpIiIiMlkML0RERCQpDC9EREQkKQwvREREJCkML0RERCQpJhNeuFSaiIhoeOBSaSIiIjI6LpUmIiIik8XwQkRERJLC8EJERESSwvBCREREksLwQkRERJLC8EJERESSwvBCREREkmIy4YWb1BEREQ0P3KSOiIiIjI6b1BEREZHJYnghIiIiSWF4ISIiIklheCEiIiJJYXghIiIiSWF4ISIiIklheCEiIiJJYXghIiIiSTGZ8MIddomIiIYH7rBLRERE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", + "text/plain": [ + "" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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kaIwvBAREZGiMLwQERGRojC8EBERkaIwvBAREZGiMLwQERGRojC8EBERkaIwvBAREZGiMLwQERGRojC8EBERkaIwvBAREZGiMLwQERGRojC8EBERkaIwvBAREZGiMLwQERGRojC8EBERkaIwvBAREZGiMLwQERGRojC8EBERkaIwvBAREZGiMLwQERGRojC8EBERkaIwvBAREZGiMLwQERGRojC8EBERkaIwvBAREZGiMLwQERGRojC8EBERkaIwvBAREZGiMLwQERGRojC8EBERkaIwvBAREZGiMLwQERGRojC8EBERkaIwvBAREZGiMLwQERGRojC8EBERkaIwvBAREZGiMLwQERGRojC8EBERkaIwvBAREZGiMLwQERGRojC8EBERkaIwvBAREZGiMLwQERGRojC8EBERkaIwvBAREZGiMLwQERGRorTb8FJeXo6AgAAsWLBA7lKIiIioHWm34eXtt9/GkCFD5C6D2lilTo8ZXx7A9C8OIDm3VO5yiIioHWqX4eXcuXM4ffo0JkyYIHcp1MZ+OpaFfckFiEspwMRP92D1gQsQRVHusoiIqB1pdnjZvXs37r77bvj4+EAQBGzevLnROTExMQgMDISNjQ0iIiJw6NChZt3HggULsHjx4uaWRgoniiJWxqUBADwcrVGpM2Dh5hN4dOVh5JVUyVscERG1G80OL2VlZQgJCUFMTMxVf75+/Xo899xzWLRoEY4cOYKQkBCMGzcOubm5xnMGDBiAvn37NvrKzMzEli1b0LNnT/Ts2fPmHxUpUmJGEY5f0sLKQoWfnxmGhRODYWWhwp+nczH+o93441SO3CUSEVE7IIi30CYvCAI2bdqESZMmGY9FREQgPDwcS5YsAQAYDAb4+fnhqaeewksvvXTDa7788sv45ptvoFarUVpaCp1Oh+effx6vvvrqVc+vqqpCVVX9p/Li4mL4+flBq9XCycnpZh8ayWD+ur+wOTETUwb54oP7QwAAp7OLMX9dIk5nlwAApkf441939YadlYWcpRIRUQsrLi6GRqNp0vt3i455qa6uRkJCAsaOHVt/ByoVxo4di/379zfpGosXL0ZGRgbS0tLw/vvv47HHHrtmcKk7X6PRGL/8/Pxu+XFQ28srqcLW41kAgOioAOPxIC8nbJ47FI8N6wIAWHswHXd9shdHM4rkKJOIiNqBFg0v+fn5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", "text/plain": [ "
" ] @@ -894,40 +957,27 @@ "\n", "plt.plot(\n", " np.abs(\n", - " y_batch[box, channel, diff - 1 : -diff - 1, slice - 1, slice - 1]\n", - " .detach()\n", - " .cpu()\n", - " .numpy()\n", - " - y_pred[box, channel, diff - 1 : -diff - 1, slice - 1, slice - 1]\n", - " .detach()\n", - " .cpu()\n", - " .numpy()\n", + " y_batch[box, channel, :, slice, slice].detach().cpu().numpy()\n", + " - y_pred[box, channel, :, slice, slice].detach().cpu().numpy()\n", " ),\n", " label=\"neural network residual \",\n", ")\n", "plt.plot(\n", " np.abs(\n", - " y_batch[box, channel, diff - 1 : -diff - 1, slice - 1, slice - 1]\n", - " .detach()\n", - " .cpu()\n", - " .numpy()\n", - " - y_interpolated[box, channel, :, slice - diff, slice - diff]\n", - " .detach()\n", - " .cpu()\n", - " .numpy()\n", + " y_batch[box, channel, :, slice, slice].detach().cpu().numpy()\n", + " - y_interpolated[box, channel, :, slice, slice].detach().cpu().numpy()\n", " ),\n", " label=\"interpolation residual\",\n", " linestyle=\":\",\n", " alpha=0.6,\n", ")\n", "plt.yscale(\"log\")\n", - "plt.legend()\n", - "plt.show()" + "plt.legend()" ] }, { "cell_type": "code", - "execution_count": 84, + "execution_count": 27, "id": "e2c3a78a-9a54-4772-82b0-bd8d43bcdeb6", "metadata": {}, "outputs": [ @@ -935,9 +985,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "Reference data L2 2.5749868459436663e-07\n", - "Neural Network L2 loss 0.03562101091489489\n", - "Interpolation 0.0001903071884725697\n" + "Reference data L2 Ham 9.95904696796558e-07\n", + "\n", + "Neural Network L2 Ham 0.0005349599881420729\n", + "\n", + "Interpolation L2 Ham 0.0010043246094549017\n", + "\n", + "--------------------\n", + "\n" ] } ], @@ -949,47 +1004,20 @@ "y_pred = net(X_batch.detach())\n", "\n", "print(\n", - " f\"Reference data L2 {my_loss(y_batch[:, :, diff-1:-diff-1, diff-1:-diff-1, diff-1:-diff-1], torch.tensor([])).detach().cpu().numpy()}\"\n", + " f\"Reference data L2 Ham {my_loss(y_batch[:, :, :, :, :], torch.tensor([])).detach().cpu().numpy()}\\n\"\n", ")\n", "print(\n", - " f\"Neural Network L2 loss {my_loss(y_pred[:, :, diff-1:-diff-1, diff-1:-diff-1, diff-1:-diff-1], torch.tensor([])).detach().cpu().numpy()}\"\n", + " f\"Neural Network L2 Ham {my_loss(y_pred[:, :, :, :, :], torch.tensor([])).detach().cpu().numpy()}\\n\"\n", ")\n", - "print(f\"Interpolation {my_loss(y_interpolated, torch.tensor([])).detach().numpy()}\")" - ] - }, - { - "cell_type": "code", - "execution_count": 85, - "id": "e0feb723-c91e-4288-b72b-c7345ef485ab", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "L1 loss Neural Network 0.0018411548239573204\n", - "L1 loss interpolation 6.242214018525592e-05\n" - ] - } - ], - "source": [ - "# Calculate L1 performance\n", - "my_loss = torch.nn.L1Loss()\n", - "\n", - "net.eval()\n", - "y_pred = net(X_batch.detach())\n", - "\n", "print(\n", - " f\"L1 loss Neural Network {my_loss(y_pred[:, :, diff-1:-diff-1, diff-1:-diff-1, diff-1:-diff-1].cpu(), y_batch[:, :, diff-1:-diff-1, diff-1:-diff-1, diff-1:-diff-1].cpu())}\"\n", + " f\"Interpolation L2 Ham {my_loss(y_interpolated, torch.tensor([])).detach().numpy()}\\n\"\n", ")\n", - "print(\n", - " f\"L1 loss interpolation {my_loss(y_interpolated.cpu(), y_batch[:, :, diff-1:-diff-1, diff-1:-diff-1, diff-1:-diff-1].cpu())}\"\n", - ")" + "print(\"--------------------\\n\")" ] }, { "cell_type": "code", - "execution_count": 86, + "execution_count": null, "id": "eb655716-a267-42b1-a6b4-e804d25507ee", "metadata": {}, "outputs": [], @@ -1005,7 +1033,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ab70acd9-7aad-4002-bc28-9e4eb54b4946", + "id": "f6542c5c-ec7e-485e-9f71-7aadd92982cf", "metadata": {}, "outputs": [], "source": [] @@ -1013,7 +1041,7 @@ { "cell_type": "code", "execution_count": null, - "id": "5305d629-a951-447a-9abe-e1063dd37c0a", + "id": "90bfe3eb-4255-45b3-bc22-f1f00db3fe2a", "metadata": {}, "outputs": [], "source": []