4267 lines
788 KiB
Plaintext
4267 lines
788 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 1,
|
||
"id": "initial_id",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease\n",
|
||
"Get:2 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB] \n",
|
||
"Hit:3 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64 InRelease\n",
|
||
"Get:4 http://security.ubuntu.com/ubuntu jammy-security InRelease [129 kB] \n",
|
||
"Get:5 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [127 kB]\n",
|
||
"Fetched 384 kB in 1s (519 kB/s) \n",
|
||
"Reading package lists... Done\n",
|
||
"Reading package lists... Done\n",
|
||
"Building dependency tree... Done\n",
|
||
"Reading state information... Done\n",
|
||
"graphviz is already the newest version (2.42.2-6ubuntu0.1).\n",
|
||
"0 upgraded, 0 newly installed, 0 to remove and 121 not upgraded.\n",
|
||
"Requirement already satisfied: tensorflow in /usr/local/lib/python3.11/dist-packages (2.14.0)\n",
|
||
"Requirement already satisfied: absl-py>=1.0.0 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (2.0.0)\n",
|
||
"Requirement already satisfied: astunparse>=1.6.0 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (1.6.3)\n",
|
||
"Requirement already satisfied: flatbuffers>=23.5.26 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (23.5.26)\n",
|
||
"Requirement already satisfied: gast!=0.5.0,!=0.5.1,!=0.5.2,>=0.2.1 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (0.5.4)\n",
|
||
"Requirement already satisfied: google-pasta>=0.1.1 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (0.2.0)\n",
|
||
"Requirement already satisfied: h5py>=2.9.0 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (3.9.0)\n",
|
||
"Requirement already satisfied: libclang>=13.0.0 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (16.0.6)\n",
|
||
"Requirement already satisfied: ml-dtypes==0.2.0 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (0.2.0)\n",
|
||
"Requirement already satisfied: numpy>=1.23.5 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (1.26.0)\n",
|
||
"Requirement already satisfied: opt-einsum>=2.3.2 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (3.3.0)\n",
|
||
"Requirement already satisfied: packaging in /usr/local/lib/python3.11/dist-packages (from tensorflow) (23.1)\n",
|
||
"Requirement already satisfied: protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.20.3 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (4.24.3)\n",
|
||
"Requirement already satisfied: setuptools in /usr/local/lib/python3.11/dist-packages (from tensorflow) (68.2.2)\n",
|
||
"Requirement already satisfied: six>=1.12.0 in /usr/lib/python3/dist-packages (from tensorflow) (1.16.0)\n",
|
||
"Requirement already satisfied: termcolor>=1.1.0 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (2.3.0)\n",
|
||
"Requirement already satisfied: typing-extensions>=3.6.6 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (4.8.0)\n",
|
||
"Requirement already satisfied: wrapt<1.15,>=1.11.0 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (1.14.1)\n",
|
||
"Requirement already satisfied: tensorflow-io-gcs-filesystem>=0.23.1 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (0.37.1)\n",
|
||
"Requirement already satisfied: grpcio<2.0,>=1.24.3 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (1.58.0)\n",
|
||
"Requirement already satisfied: tensorboard<2.15,>=2.14 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (2.14.0)\n",
|
||
"Requirement already satisfied: tensorflow-estimator<2.15,>=2.14.0 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (2.14.0)\n",
|
||
"Requirement already satisfied: keras<2.15,>=2.14.0 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (2.14.0)\n",
|
||
"Requirement already satisfied: wheel<1.0,>=0.23.0 in /usr/local/lib/python3.11/dist-packages (from astunparse>=1.6.0->tensorflow) (0.41.2)\n",
|
||
"Requirement already satisfied: google-auth<3,>=1.6.3 in /usr/local/lib/python3.11/dist-packages (from tensorboard<2.15,>=2.14->tensorflow) (2.23.1)\n",
|
||
"Requirement already satisfied: google-auth-oauthlib<1.1,>=0.5 in /usr/local/lib/python3.11/dist-packages (from tensorboard<2.15,>=2.14->tensorflow) (1.0.0)\n",
|
||
"Requirement already satisfied: markdown>=2.6.8 in /usr/local/lib/python3.11/dist-packages (from tensorboard<2.15,>=2.14->tensorflow) (3.4.4)\n",
|
||
"Requirement already satisfied: requests<3,>=2.21.0 in /usr/local/lib/python3.11/dist-packages (from tensorboard<2.15,>=2.14->tensorflow) (2.31.0)\n",
|
||
"Requirement already satisfied: tensorboard-data-server<0.8.0,>=0.7.0 in /usr/local/lib/python3.11/dist-packages (from tensorboard<2.15,>=2.14->tensorflow) (0.7.1)\n",
|
||
"Requirement already satisfied: werkzeug>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from tensorboard<2.15,>=2.14->tensorflow) (2.3.7)\n",
|
||
"Requirement already satisfied: cachetools<6.0,>=2.0.0 in /usr/local/lib/python3.11/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.15,>=2.14->tensorflow) (5.3.1)\n",
|
||
"Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/local/lib/python3.11/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.15,>=2.14->tensorflow) (0.3.0)\n",
|
||
"Requirement already satisfied: rsa<5,>=3.1.4 in /usr/local/lib/python3.11/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.15,>=2.14->tensorflow) (4.9)\n",
|
||
"Requirement already satisfied: urllib3>=2.0.5 in /usr/local/lib/python3.11/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.15,>=2.14->tensorflow) (2.0.5)\n",
|
||
"Requirement already satisfied: requests-oauthlib>=0.7.0 in /usr/local/lib/python3.11/dist-packages (from google-auth-oauthlib<1.1,>=0.5->tensorboard<2.15,>=2.14->tensorflow) (1.3.1)\n",
|
||
"Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.11/dist-packages (from requests<3,>=2.21.0->tensorboard<2.15,>=2.14->tensorflow) (3.2.0)\n",
|
||
"Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/dist-packages (from requests<3,>=2.21.0->tensorboard<2.15,>=2.14->tensorflow) (3.4)\n",
|
||
"Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.11/dist-packages (from requests<3,>=2.21.0->tensorboard<2.15,>=2.14->tensorflow) (2023.7.22)\n",
|
||
"Requirement already satisfied: MarkupSafe>=2.1.1 in /usr/local/lib/python3.11/dist-packages (from werkzeug>=1.0.1->tensorboard<2.15,>=2.14->tensorflow) (2.1.3)\n",
|
||
"Requirement already satisfied: pyasn1<0.6.0,>=0.4.6 in /usr/local/lib/python3.11/dist-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard<2.15,>=2.14->tensorflow) (0.5.0)\n",
|
||
"Requirement already satisfied: oauthlib>=3.0.0 in /usr/lib/python3/dist-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<1.1,>=0.5->tensorboard<2.15,>=2.14->tensorflow) (3.2.0)\n",
|
||
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
|
||
"\u001b[0m\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;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.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;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
|
||
"Requirement already satisfied: numpy in /usr/local/lib/python3.11/dist-packages (1.26.0)\n",
|
||
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
|
||
"\u001b[0m\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;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.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;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
|
||
"Requirement already satisfied: pandas in /usr/local/lib/python3.11/dist-packages (2.2.3)\n",
|
||
"Requirement already satisfied: numpy>=1.23.2 in /usr/local/lib/python3.11/dist-packages (from pandas) (1.26.0)\n",
|
||
"Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.11/dist-packages (from pandas) (2.8.2)\n",
|
||
"Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.11/dist-packages (from pandas) (2024.2)\n",
|
||
"Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.11/dist-packages (from pandas) (2024.2)\n",
|
||
"Requirement already satisfied: six>=1.5 in /usr/lib/python3/dist-packages (from python-dateutil>=2.8.2->pandas) (1.16.0)\n",
|
||
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
|
||
"\u001b[0m\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;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.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;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
|
||
"Requirement already satisfied: keras in /usr/local/lib/python3.11/dist-packages (2.14.0)\n",
|
||
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
|
||
"\u001b[0m\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;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.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;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
|
||
"Requirement already satisfied: scikit-learn in /usr/local/lib/python3.11/dist-packages (1.5.2)\n",
|
||
"Requirement already satisfied: numpy>=1.19.5 in /usr/local/lib/python3.11/dist-packages (from scikit-learn) (1.26.0)\n",
|
||
"Requirement already satisfied: scipy>=1.6.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn) (1.14.1)\n",
|
||
"Requirement already satisfied: joblib>=1.2.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn) (1.4.2)\n",
|
||
"Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn) (3.5.0)\n",
|
||
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
|
||
"\u001b[0m\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;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.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;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
|
||
"Requirement already satisfied: matplotlib in /usr/local/lib/python3.11/dist-packages (3.8.0)\n",
|
||
"Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (1.1.1)\n",
|
||
"Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (0.11.0)\n",
|
||
"Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (4.42.1)\n",
|
||
"Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (1.4.5)\n",
|
||
"Requirement already satisfied: numpy<2,>=1.21 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (1.26.0)\n",
|
||
"Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (23.1)\n",
|
||
"Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (10.0.1)\n",
|
||
"Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (3.2.0)\n",
|
||
"Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (2.8.2)\n",
|
||
"Requirement already satisfied: six>=1.5 in /usr/lib/python3/dist-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)\n",
|
||
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
|
||
"\u001b[0m\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;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.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;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
|
||
"Requirement already satisfied: joblib in /usr/local/lib/python3.11/dist-packages (1.4.2)\n",
|
||
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
|
||
"\u001b[0m\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;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.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;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
|
||
"Requirement already satisfied: pyarrow in /usr/local/lib/python3.11/dist-packages (18.1.0)\n",
|
||
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
|
||
"\u001b[0m\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;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.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;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
|
||
"Requirement already satisfied: fastparquet in /usr/local/lib/python3.11/dist-packages (2024.11.0)\n",
|
||
"Requirement already satisfied: pandas>=1.5.0 in /usr/local/lib/python3.11/dist-packages (from fastparquet) (2.2.3)\n",
|
||
"Requirement already satisfied: numpy in /usr/local/lib/python3.11/dist-packages (from fastparquet) (1.26.0)\n",
|
||
"Requirement already satisfied: cramjam>=2.3 in /usr/local/lib/python3.11/dist-packages (from fastparquet) (2.9.0)\n",
|
||
"Requirement already satisfied: fsspec in /usr/local/lib/python3.11/dist-packages (from fastparquet) (2024.10.0)\n",
|
||
"Requirement already satisfied: packaging in /usr/local/lib/python3.11/dist-packages (from fastparquet) (23.1)\n",
|
||
"Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.5.0->fastparquet) (2.8.2)\n",
|
||
"Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.5.0->fastparquet) (2024.2)\n",
|
||
"Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.5.0->fastparquet) (2024.2)\n",
|
||
"Requirement already satisfied: six>=1.5 in /usr/lib/python3/dist-packages (from python-dateutil>=2.8.2->pandas>=1.5.0->fastparquet) (1.16.0)\n",
|
||
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
|
||
"\u001b[0m\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;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.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;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
|
||
"Requirement already satisfied: scipy in /usr/local/lib/python3.11/dist-packages (1.14.1)\n",
|
||
"Requirement already satisfied: numpy<2.3,>=1.23.5 in /usr/local/lib/python3.11/dist-packages (from scipy) (1.26.0)\n",
|
||
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
|
||
"\u001b[0m\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;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.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;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
|
||
"Requirement already satisfied: seaborn in /usr/local/lib/python3.11/dist-packages (0.13.2)\n",
|
||
"Requirement already satisfied: numpy!=1.24.0,>=1.20 in /usr/local/lib/python3.11/dist-packages (from seaborn) (1.26.0)\n",
|
||
"Requirement already satisfied: pandas>=1.2 in /usr/local/lib/python3.11/dist-packages (from seaborn) (2.2.3)\n",
|
||
"Requirement already satisfied: matplotlib!=3.6.1,>=3.4 in /usr/local/lib/python3.11/dist-packages (from seaborn) (3.8.0)\n",
|
||
"Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (1.1.1)\n",
|
||
"Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (0.11.0)\n",
|
||
"Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (4.42.1)\n",
|
||
"Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (1.4.5)\n",
|
||
"Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (23.1)\n",
|
||
"Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (10.0.1)\n",
|
||
"Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (3.2.0)\n",
|
||
"Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (2.8.2)\n",
|
||
"Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.2->seaborn) (2024.2)\n",
|
||
"Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.2->seaborn) (2024.2)\n",
|
||
"Requirement already satisfied: six>=1.5 in /usr/lib/python3/dist-packages (from python-dateutil>=2.7->matplotlib!=3.6.1,>=3.4->seaborn) (1.16.0)\n",
|
||
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
|
||
"\u001b[0m\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;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.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;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
|
||
"Requirement already satisfied: tqdm in /usr/local/lib/python3.11/dist-packages (4.67.1)\n",
|
||
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
|
||
"\u001b[0m\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;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.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;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
|
||
"Requirement already satisfied: pydot in /usr/local/lib/python3.11/dist-packages (3.0.3)\n",
|
||
"Requirement already satisfied: pyparsing>=3.0.9 in /usr/local/lib/python3.11/dist-packages (from pydot) (3.2.0)\n",
|
||
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
|
||
"\u001b[0m\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;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.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;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
|
||
"Requirement already satisfied: tensorflow-io in /usr/local/lib/python3.11/dist-packages (0.37.1)\n",
|
||
"Requirement already satisfied: tensorflow-io-gcs-filesystem==0.37.1 in /usr/local/lib/python3.11/dist-packages (from tensorflow-io) (0.37.1)\n",
|
||
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
|
||
"\u001b[0m\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;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.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;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
|
||
"Requirement already satisfied: tensorflow-addons in /usr/local/lib/python3.11/dist-packages (0.23.0)\n",
|
||
"Requirement already satisfied: packaging in /usr/local/lib/python3.11/dist-packages (from tensorflow-addons) (23.1)\n",
|
||
"Requirement already satisfied: typeguard<3.0.0,>=2.7 in /usr/local/lib/python3.11/dist-packages (from tensorflow-addons) (2.13.3)\n",
|
||
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
|
||
"\u001b[0m\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;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.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;49mpython3 -m pip install --upgrade pip\u001b[0m\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"!apt-get update\n",
|
||
"!apt-get install graphviz -y\n",
|
||
"\n",
|
||
"!pip install tensorflow\n",
|
||
"!pip install numpy\n",
|
||
"!pip install pandas\n",
|
||
"\n",
|
||
"!pip install keras\n",
|
||
"!pip install scikit-learn\n",
|
||
"!pip install matplotlib\n",
|
||
"!pip install joblib\n",
|
||
"!pip install pyarrow\n",
|
||
"!pip install fastparquet\n",
|
||
"!pip install scipy\n",
|
||
"!pip install seaborn\n",
|
||
"!pip install tqdm\n",
|
||
"!pip install pydot\n",
|
||
"!pip install tensorflow-io\n",
|
||
"!pip install tensorflow-addons"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 2,
|
||
"id": "a467d3f0dfd9beab",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"2024-12-07 07:35:27.011449: E tensorflow/compiler/xla/stream_executor/cuda/cuda_dnn.cc:9342] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
|
||
"2024-12-07 07:35:27.011494: E tensorflow/compiler/xla/stream_executor/cuda/cuda_fft.cc:609] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
|
||
"2024-12-07 07:35:27.011539: E tensorflow/compiler/xla/stream_executor/cuda/cuda_blas.cc:1518] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
|
||
"2024-12-07 07:35:27.020703: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n",
|
||
"To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Keras version: 2.14.0\n",
|
||
"TensorFlow version: 2.14.0\n",
|
||
"TensorFlow version: 2.14.0\n",
|
||
"CUDA available: True\n",
|
||
"GPU devices: [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]\n",
|
||
"1 Physical GPUs, 1 Logical GPUs\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"2024-12-07 07:35:29.539283: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1886] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 9725 MB memory: -> device: 0, name: NVIDIA L40, pci bus id: 0000:81:00.0, compute capability: 8.9\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"import tensorflow as tf\n",
|
||
"import keras\n",
|
||
"\n",
|
||
"print(f\"Keras version: {keras.__version__}\")\n",
|
||
"print(f\"TensorFlow version: {tf.__version__}\")\n",
|
||
"print(f\"TensorFlow version: {tf.__version__}\")\n",
|
||
"print(f\"CUDA available: {tf.test.is_built_with_cuda()}\")\n",
|
||
"print(f\"GPU devices: {tf.config.list_physical_devices('GPU')}\")\n",
|
||
"\n",
|
||
"# GPU configuration\n",
|
||
"import tensorflow as tf\n",
|
||
"import os\n",
|
||
"\n",
|
||
"# Limita la crescita della memoria GPU\n",
|
||
"gpus = tf.config.experimental.list_physical_devices('GPU')\n",
|
||
"if gpus:\n",
|
||
" try:\n",
|
||
" # Imposta la crescita di memoria dinamica\n",
|
||
" for gpu in gpus:\n",
|
||
" tf.config.experimental.set_memory_growth(gpu, True)\n",
|
||
" \n",
|
||
" # Opzionalmente, limita la memoria GPU massima (uncomment se necessario)\n",
|
||
" # tf.config.experimental.set_virtual_device_configuration(\n",
|
||
" # gpus[0],\n",
|
||
" # [tf.config.experimental.VirtualDeviceConfiguration(memory_limit=1024*4)] # 4GB\n",
|
||
" # )\n",
|
||
" \n",
|
||
" logical_gpus = tf.config.experimental.list_logical_devices('GPU')\n",
|
||
" print(len(gpus), \"Physical GPUs,\", len(logical_gpus), \"Logical GPUs\")\n",
|
||
" except RuntimeError as e:\n",
|
||
" print(e)\n",
|
||
" \n",
|
||
"# Imposta le opzioni di logging\n",
|
||
"os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # Riduce i messaggi di log\n",
|
||
" \n",
|
||
"# Configura la modalità mista di precisione\n",
|
||
"tf.keras.mixed_precision.set_global_policy('float32')\n",
|
||
"\n",
|
||
"# Imposta il seed per la riproducibilità\n",
|
||
"##tf.random.set_seed(42)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 3,
|
||
"id": "c0155cde4740b0a3",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/usr/local/lib/python3.11/dist-packages/tensorflow_addons/utils/tfa_eol_msg.py:23: UserWarning: \n",
|
||
"\n",
|
||
"TensorFlow Addons (TFA) has ended development and introduction of new features.\n",
|
||
"TFA has entered a minimal maintenance and release mode until a planned end of life in May 2024.\n",
|
||
"Please modify downstream libraries to take dependencies from other repositories in our TensorFlow community (e.g. Keras, Keras-CV, and Keras-NLP). \n",
|
||
"\n",
|
||
"For more information see: https://github.com/tensorflow/addons/issues/2807 \n",
|
||
"\n",
|
||
" warnings.warn(\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"import pandas as pd\n",
|
||
"import numpy as np\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"from sklearn.preprocessing import StandardScaler\n",
|
||
"import tensorflow_addons as tfa\n",
|
||
"from datetime import datetime\n",
|
||
"import os\n",
|
||
"import joblib\n",
|
||
"import re\n",
|
||
"from typing import List\n",
|
||
"\n",
|
||
"random_state_value = None\n",
|
||
"execute_name = datetime.now().strftime(\"%Y-%m-%d_%H-%M\")\n",
|
||
"\n",
|
||
"base_project_dir = './'\n",
|
||
"data_dir = '../../sources/'\n",
|
||
"models_project_dir = base_project_dir\n",
|
||
"\n",
|
||
"os.makedirs(base_project_dir, exist_ok=True)\n",
|
||
"os.makedirs(models_project_dir, exist_ok=True)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 4,
|
||
"id": "1347fb59-50cc-4aa8-b805-ca9403037af5",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"def clean_column_name(name: str) -> str:\n",
|
||
" \"\"\"\n",
|
||
" Rimuove caratteri speciali e spazi, converte in snake_case e abbrevia.\n",
|
||
"\n",
|
||
" Parameters\n",
|
||
" ----------\n",
|
||
" name : str\n",
|
||
" Nome della colonna da pulire\n",
|
||
"\n",
|
||
" Returns\n",
|
||
" -------\n",
|
||
" str\n",
|
||
" Nome della colonna pulito\n",
|
||
" \"\"\"\n",
|
||
" # Rimuove caratteri speciali\n",
|
||
" name = re.sub(r'[^a-zA-Z0-9\\s]', '', name)\n",
|
||
" # Converte in snake_case\n",
|
||
" name = name.lower().replace(' ', '_')\n",
|
||
"\n",
|
||
" # Abbreviazioni comuni\n",
|
||
" abbreviations = {\n",
|
||
" 'production': 'prod',\n",
|
||
" 'percentage': 'pct',\n",
|
||
" 'hectare': 'ha',\n",
|
||
" 'tonnes': 't',\n",
|
||
" 'litres': 'l',\n",
|
||
" 'minimum': 'min',\n",
|
||
" 'maximum': 'max',\n",
|
||
" 'average': 'avg'\n",
|
||
" }\n",
|
||
"\n",
|
||
" for full, abbr in abbreviations.items():\n",
|
||
" name = name.replace(full, abbr)\n",
|
||
"\n",
|
||
" return name\n",
|
||
"\n",
|
||
"\n",
|
||
"def clean_column_names(df: pd.DataFrame) -> List[str]:\n",
|
||
" \"\"\"\n",
|
||
" Pulisce tutti i nomi delle colonne in un DataFrame.\n",
|
||
"\n",
|
||
" Parameters\n",
|
||
" ----------\n",
|
||
" df : pd.DataFrame\n",
|
||
" DataFrame con le colonne da pulire\n",
|
||
"\n",
|
||
" Returns\n",
|
||
" -------\n",
|
||
" list\n",
|
||
" Lista dei nuovi nomi delle colonne puliti\n",
|
||
" \"\"\"\n",
|
||
" new_columns = []\n",
|
||
"\n",
|
||
" for col in df.columns:\n",
|
||
" # Usa regex per separare le varietà\n",
|
||
" varieties = re.findall(r'([a-z]+)_([a-z_]+)', col)\n",
|
||
" if varieties:\n",
|
||
" new_columns.append(f\"{varieties[0][0]}_{varieties[0][1]}\")\n",
|
||
" else:\n",
|
||
" new_columns.append(col)\n",
|
||
"\n",
|
||
" return new_columns"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 5,
|
||
"id": "4da1f1bb67343e3e",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"def save_plot(plt, title, output_dir=f'{base_project_dir}/{execute_name}_plots'):\n",
|
||
" os.makedirs(output_dir, exist_ok=True)\n",
|
||
" filename = \"\".join(x for x in title if x.isalnum() or x in [' ', '-', '_']).rstrip()\n",
|
||
" filename = filename.replace(' ', '_').lower()\n",
|
||
" filepath = os.path.join(output_dir, f\"{filename}.png\")\n",
|
||
" plt.savefig(filepath, bbox_inches='tight', dpi=300)\n",
|
||
" print(f\"Plot salvato come: {filepath}\")\n",
|
||
"\n",
|
||
"\n",
|
||
"def encode_techniques(df, mapping_path=f'{data_dir}technique_mapping.joblib'):\n",
|
||
" if not os.path.exists(mapping_path):\n",
|
||
" raise FileNotFoundError(f\"Mapping not found at {mapping_path}. Run create_technique_mapping first.\")\n",
|
||
"\n",
|
||
" technique_mapping = joblib.load(mapping_path)\n",
|
||
"\n",
|
||
" # Trova tutte le colonne delle tecniche\n",
|
||
" tech_columns = [col for col in df.columns if col.endswith('_tech')]\n",
|
||
"\n",
|
||
" # Applica il mapping a tutte le colonne delle tecniche\n",
|
||
" for col in tech_columns:\n",
|
||
" df[col] = df[col].str.lower().map(technique_mapping).fillna(0).astype(int)\n",
|
||
"\n",
|
||
" return df\n",
|
||
"\n",
|
||
"\n",
|
||
"def decode_single_technique(technique_value, mapping_path=f'{data_dir}technique_mapping.joblib'):\n",
|
||
" if not os.path.exists(mapping_path):\n",
|
||
" raise FileNotFoundError(f\"Mapping not found at {mapping_path}\")\n",
|
||
"\n",
|
||
" technique_mapping = joblib.load(mapping_path)\n",
|
||
" reverse_mapping = {v: k for k, v in technique_mapping.items()}\n",
|
||
" reverse_mapping[0] = ''\n",
|
||
"\n",
|
||
" return reverse_mapping.get(technique_value, '')\n",
|
||
"\n",
|
||
"\n",
|
||
"def prepare_comparison_data(simulated_data, olive_varieties):\n",
|
||
" # Pulisci i nomi delle colonne\n",
|
||
" df = simulated_data.copy()\n",
|
||
"\n",
|
||
" df.columns = clean_column_names(df)\n",
|
||
" df = encode_techniques(df)\n",
|
||
"\n",
|
||
" all_varieties = olive_varieties['Varietà di Olive'].unique()\n",
|
||
" varieties = [clean_column_name(variety) for variety in all_varieties]\n",
|
||
" comparison_data = []\n",
|
||
"\n",
|
||
" for variety in varieties:\n",
|
||
" olive_prod_col = next((col for col in df.columns if col.startswith(f'{variety}_') and col.endswith('_olive_prod')), None)\n",
|
||
" oil_prod_col = next((col for col in df.columns if col.startswith(f'{variety}_') and col.endswith('_avg_oil_prod')), None)\n",
|
||
" tech_col = next((col for col in df.columns if col.startswith(f'{variety}_') and col.endswith('_tech')), None)\n",
|
||
" water_need_col = next((col for col in df.columns if col.startswith(f'{variety}_') and col.endswith('_water_need')), None)\n",
|
||
"\n",
|
||
" if olive_prod_col and oil_prod_col and tech_col and water_need_col:\n",
|
||
" variety_data = df[[olive_prod_col, oil_prod_col, tech_col, water_need_col]]\n",
|
||
" variety_data = variety_data[variety_data[tech_col] != 0] # Esclude le righe dove la tecnica è 0\n",
|
||
"\n",
|
||
" if not variety_data.empty:\n",
|
||
" avg_olive_prod = pd.to_numeric(variety_data[olive_prod_col], errors='coerce').mean()\n",
|
||
" avg_oil_prod = pd.to_numeric(variety_data[oil_prod_col], errors='coerce').mean()\n",
|
||
" avg_water_need = pd.to_numeric(variety_data[water_need_col], errors='coerce').mean()\n",
|
||
" efficiency = avg_oil_prod / avg_olive_prod if avg_olive_prod > 0 else 0\n",
|
||
" water_efficiency = avg_oil_prod / avg_water_need if avg_water_need > 0 else 0\n",
|
||
"\n",
|
||
" comparison_data.append({\n",
|
||
" 'Variety': variety,\n",
|
||
" 'Avg Olive Production (kg/ha)': avg_olive_prod,\n",
|
||
" 'Avg Oil Production (L/ha)': avg_oil_prod,\n",
|
||
" 'Avg Water Need (m³/ha)': avg_water_need,\n",
|
||
" 'Oil Efficiency (L/kg)': efficiency,\n",
|
||
" 'Water Efficiency (L oil/m³ water)': water_efficiency\n",
|
||
" })\n",
|
||
"\n",
|
||
" return pd.DataFrame(comparison_data)\n",
|
||
"\n",
|
||
"\n",
|
||
"def plot_variety_comparison(comparison_data, metric):\n",
|
||
" plt.figure(figsize=(12, 6))\n",
|
||
" bars = plt.bar(comparison_data['Variety'], comparison_data[metric])\n",
|
||
" plt.title(f'Comparison of {metric} across Olive Varieties')\n",
|
||
" plt.xlabel('Variety')\n",
|
||
" plt.ylabel(metric)\n",
|
||
" plt.xticks(rotation=45, ha='right')\n",
|
||
"\n",
|
||
" for bar in bars:\n",
|
||
" height = bar.get_height()\n",
|
||
" plt.text(bar.get_x() + bar.get_width() / 2., height,\n",
|
||
" f'{height:.2f}',\n",
|
||
" ha='center', va='bottom')\n",
|
||
"\n",
|
||
" plt.tight_layout()\n",
|
||
" plt.show()\n",
|
||
" save_plot(plt, f'variety_comparison_{metric.lower().replace(\" \", \"_\").replace(\"/\", \"_\").replace(\"(\", \"\").replace(\")\", \"\")}')\n",
|
||
" plt.close()\n",
|
||
"\n",
|
||
"\n",
|
||
"def plot_efficiency_vs_production(comparison_data):\n",
|
||
" plt.figure(figsize=(10, 6))\n",
|
||
"\n",
|
||
" plt.scatter(comparison_data['Avg Olive Production (kg/ha)'],\n",
|
||
" comparison_data['Oil Efficiency (L/kg)'],\n",
|
||
" s=100)\n",
|
||
"\n",
|
||
" for i, row in comparison_data.iterrows():\n",
|
||
" plt.annotate(row['Variety'],\n",
|
||
" (row['Avg Olive Production (kg/ha)'], row['Oil Efficiency (L/kg)']),\n",
|
||
" xytext=(5, 5), textcoords='offset points')\n",
|
||
"\n",
|
||
" plt.title('Oil Efficiency vs Olive Production by Variety')\n",
|
||
" plt.xlabel('Average Olive Production (kg/ha)')\n",
|
||
" plt.ylabel('Oil Efficiency (L oil / kg olives)')\n",
|
||
" plt.tight_layout()\n",
|
||
" save_plot(plt, 'efficiency_vs_production')\n",
|
||
" plt.close()\n",
|
||
"\n",
|
||
"\n",
|
||
"def plot_water_efficiency_vs_production(comparison_data):\n",
|
||
" plt.figure(figsize=(10, 6))\n",
|
||
"\n",
|
||
" plt.scatter(comparison_data['Avg Olive Production (kg/ha)'],\n",
|
||
" comparison_data['Water Efficiency (L oil/m³ water)'],\n",
|
||
" s=100)\n",
|
||
"\n",
|
||
" for i, row in comparison_data.iterrows():\n",
|
||
" plt.annotate(row['Variety'],\n",
|
||
" (row['Avg Olive Production (kg/ha)'], row['Water Efficiency (L oil/m³ water)']),\n",
|
||
" xytext=(5, 5), textcoords='offset points')\n",
|
||
"\n",
|
||
" plt.title('Water Efficiency vs Olive Production by Variety')\n",
|
||
" plt.xlabel('Average Olive Production (kg/ha)')\n",
|
||
" plt.ylabel('Water Efficiency (L oil / m³ water)')\n",
|
||
" plt.tight_layout()\n",
|
||
" plt.show()\n",
|
||
" save_plot(plt, 'water_efficiency_vs_production')\n",
|
||
" plt.close()\n",
|
||
"\n",
|
||
"\n",
|
||
"def plot_water_need_vs_oil_production(comparison_data):\n",
|
||
" plt.figure(figsize=(10, 6))\n",
|
||
"\n",
|
||
" plt.scatter(comparison_data['Avg Water Need (m³/ha)'],\n",
|
||
" comparison_data['Avg Oil Production (L/ha)'],\n",
|
||
" s=100)\n",
|
||
"\n",
|
||
" for i, row in comparison_data.iterrows():\n",
|
||
" plt.annotate(row['Variety'],\n",
|
||
" (row['Avg Water Need (m³/ha)'], row['Avg Oil Production (L/ha)']),\n",
|
||
" xytext=(5, 5), textcoords='offset points')\n",
|
||
"\n",
|
||
" plt.title('Oil Production vs Water Need by Variety')\n",
|
||
" plt.xlabel('Average Water Need (m³/ha)')\n",
|
||
" plt.ylabel('Average Oil Production (L/ha)')\n",
|
||
" plt.tight_layout()\n",
|
||
" plt.show()\n",
|
||
" save_plot(plt, 'water_need_vs_oil_production')\n",
|
||
" plt.close()\n",
|
||
"\n",
|
||
"\n",
|
||
"def analyze_by_technique(simulated_data, olive_varieties):\n",
|
||
" # Pulisci i nomi delle colonne\n",
|
||
" df = simulated_data.copy()\n",
|
||
"\n",
|
||
" df.columns = clean_column_names(df)\n",
|
||
" df = encode_techniques(df)\n",
|
||
" all_varieties = olive_varieties['Varietà di Olive'].unique()\n",
|
||
" varieties = [clean_column_name(variety) for variety in all_varieties]\n",
|
||
"\n",
|
||
" technique_data = []\n",
|
||
"\n",
|
||
" for variety in varieties:\n",
|
||
" olive_prod_col = next((col for col in df.columns if col.startswith(f'{variety}_') and col.endswith('_olive_prod')), None)\n",
|
||
" oil_prod_col = next((col for col in df.columns if col.startswith(f'{variety}_') and col.endswith('_avg_oil_prod')), None)\n",
|
||
" tech_col = next((col for col in df.columns if col.startswith(f'{variety}_') and col.endswith('_tech')), None)\n",
|
||
" water_need_col = next((col for col in df.columns if col.startswith(f'{variety}_') and col.endswith('_water_need')), None)\n",
|
||
"\n",
|
||
" if olive_prod_col and oil_prod_col and tech_col and water_need_col:\n",
|
||
" variety_data = df[[olive_prod_col, oil_prod_col, tech_col, water_need_col]]\n",
|
||
" variety_data = variety_data[variety_data[tech_col] != 0]\n",
|
||
"\n",
|
||
" if not variety_data.empty:\n",
|
||
" for tech in variety_data[tech_col].unique():\n",
|
||
" tech_data = variety_data[variety_data[tech_col] == tech]\n",
|
||
"\n",
|
||
" avg_olive_prod = pd.to_numeric(tech_data[olive_prod_col], errors='coerce').mean()\n",
|
||
" avg_oil_prod = pd.to_numeric(tech_data[oil_prod_col], errors='coerce').mean()\n",
|
||
" avg_water_need = pd.to_numeric(tech_data[water_need_col], errors='coerce').mean()\n",
|
||
"\n",
|
||
" efficiency = avg_oil_prod / avg_olive_prod if avg_olive_prod > 0 else 0\n",
|
||
" water_efficiency = avg_oil_prod / avg_water_need if avg_water_need > 0 else 0\n",
|
||
"\n",
|
||
" technique_data.append({\n",
|
||
" 'Variety': variety,\n",
|
||
" 'Technique': tech,\n",
|
||
" 'Technique String': decode_single_technique(tech),\n",
|
||
" 'Avg Olive Production (kg/ha)': avg_olive_prod,\n",
|
||
" 'Avg Oil Production (L/ha)': avg_oil_prod,\n",
|
||
" 'Avg Water Need (m³/ha)': avg_water_need,\n",
|
||
" 'Oil Efficiency (L/kg)': efficiency,\n",
|
||
" 'Water Efficiency (L oil/m³ water)': water_efficiency\n",
|
||
" })\n",
|
||
"\n",
|
||
" return pd.DataFrame(technique_data)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 6,
|
||
"id": "9aa4bf176c4affb9",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"def calculate_real_error(model, test_data, test_targets, scaler_y):\n",
|
||
" # Fare predizioni\n",
|
||
" predictions = model.predict(test_data)\n",
|
||
"\n",
|
||
" # Denormalizzare predizioni e target\n",
|
||
" predictions_real = scaler_y.inverse_transform(predictions)\n",
|
||
" targets_real = scaler_y.inverse_transform(test_targets)\n",
|
||
"\n",
|
||
" # Calcolare errore percentuale per ogni target\n",
|
||
" percentage_errors = []\n",
|
||
" absolute_errors = []\n",
|
||
"\n",
|
||
" for i in range(predictions_real.shape[1]):\n",
|
||
" mae = np.mean(np.abs(predictions_real[:, i] - targets_real[:, i]))\n",
|
||
" mape = np.mean(np.abs((predictions_real[:, i] - targets_real[:, i]) / targets_real[:, i])) * 100\n",
|
||
" percentage_errors.append(mape)\n",
|
||
" absolute_errors.append(mae)\n",
|
||
"\n",
|
||
" # Stampa risultati per ogni target\n",
|
||
" target_names = ['olive_prod', 'min_oil_prod', 'max_oil_prod', 'avg_oil_prod', 'total_water_need']\n",
|
||
"\n",
|
||
" print(\"\\nErrori per target:\")\n",
|
||
" print(\"-\" * 50)\n",
|
||
" for i, target in enumerate(target_names):\n",
|
||
" print(f\"{target}:\")\n",
|
||
" print(f\"MAE assoluto: {absolute_errors[i]:.2f}\")\n",
|
||
" print(f\"Errore percentuale medio: {percentage_errors[i]:.2f}%\")\n",
|
||
" print(f\"Precisione: {100 - percentage_errors[i]:.2f}%\")\n",
|
||
" print(\"-\" * 50)\n",
|
||
"\n",
|
||
" return percentage_errors, absolute_errors"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 7,
|
||
"id": "b3ba2b96ba678389",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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wObNm/O83YC+HEOGDMHixYuRmpr6n1vsnb582dnZqFKlCjp27IhJkyYVSJ+zZs3C0KFDcf/+fVhaWqJUqVKYPHky+vXrVyD9f0hGRgbs7OwwevRoDB48uNDHIyIi+lpwTSkiIqJi7v21oJ49e4Y///wT3333HRNSVCg0NTUxceJEzJ8//5MS2O+fs69fv8bixYtRsWJFlC5dGklJSRg6dCj+97//FVTIHxQaGgptbW307du3SMYjIiL6WnCmFBERqYUzpb48Li4uaNy4MZycnPDo0SMsX74cDx48wOHDh/N9jDvR5+Tl5YVy5crBxcUFycnJWLNmDa5cuYKwsDB06dLlc4dHREREBYQLnRMRERVzLVq0wObNm7FkyRLIZDJ88803WL58ORNS9J/l4eGBZcuWISwsTLoVcP369UpPXyMiIqIvG2dKERERERERERFRkeOaUkREREREREREVOSYlCIiIiIiIiIioiLHNaUKSE5ODh48eABDQ0PIZLLPHQ4RERERERER0WchhMDLly9hY2MDDY3850MxKVVAHjx4gLJly37uMIiIiIiIiIiI/hP++ecflClTJt96JqUKiKGhIYC3B9zIyOgzR0NERERERERE9HmkpKSgbNmyUq4kP0xKFZDcW/aMjIyYlCIiIiIiIiKir97HljfiQudERERERERERFTkmJQiIiIiIiIiIqIix6QUEREREREREREVOSaliIiIiIiIiIioyDEpRURE9P+dOHECrVu3ho2NDWQyGbZv365Q/+jRI/To0QM2NjYoUaIEPD09cfPmTaV+IiIi8P3330NfXx9GRkZo2LAh0tPTldplZGTAxcUFMpkM0dHRCnUHDhxAnTp1YGhoCHNzc7Rv3x537tz56D7s2bMHtWvXhp6eHkxMTODt7S3VPXv2DJ6enrCxsYFcLkfZsmUxYMAApKSkqHJ4iIiIiIgKFJNSRERE/19aWhpq1KiB+fPnK9UJIeDt7Y3bt29jx44duHDhAmxtbeHu7o60tDSpXUREBDw9PdG8eXOcPXsW586dw4ABA6ChofxP7siRI2FjY6NUHh8fj7Zt2+L7779HdHQ0Dhw4gKdPn6Jdu3YfjH/Lli3o1q0bevbsiYsXL+Kvv/5Cly5dpHoNDQ20bdsWO3fuxI0bN7By5UocOnQIffv2VecwEREREREVDPEZ/fHHH6JmzZrC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R0cHbm5uCm1ycnJw+PBhqQ0RERV/kZGRcHV1lRI/w4YNg6urq/RE14cPH6Jbt25wdHTEoEGD0K1bN6xbt06hjyFDhiAgIABDhw5FjRo1cPjwYYSHh6N8+fIqx/H9999j7dq12L59O1xdXeHp6Qm5XI79+/dDT08PwNvZVLGxscjKypK2Cw4Oho+PD7p164ZatWrh7t27OHLkCExMTAAAenp6WLp0Kb777js4OTlh6NChaNOmDXbv3v2vjhsRERER0aeQifxWTC0C/fr1w9q1a7Fjxw5UrlxZKjc2Npb+p/vnn3/G3r17sXLlShgZGWHgwIEAgNOnTwMAsrOz4eLiAhsbG0ybNg2JiYno1q0bevXqhT/++APA2790V6tWDf3794efnx+OHDmCQYMGYc+ePfDw8ADw9rYJX19fLF68GN9++y1mzZqFjRs34vr160prTeUlJSUFxsbGSE5OhpGRUYEeJyIiIiIiIiKiL4WqOZLPmpSSyWR5loeGhqJHjx4AgNevX2P48OFYt24dMjIy4OHhgQULFijcVnf37l38/PPPOHbsGPT19eHr64spU6ZAS+v/7k48duwYhg4diqtXr6JMmTL49ddfpTFyzZs3D8HBwUhMTISLiwvmzJmD2rVrq7QvTEoREREREREREX0hSanihEkpIiIiIiIiIiLVcyT/iYXOiYiI8mM3es/nDoEKwZ0pLT93CERERET0mX3Whc6JiIiIiIiIiOjrxKQUEREREREREREVOSaliIiIiIiIiIioyDEpRURERERERERERY5JKSIiIiIiIiIiKnJMShERERERERERUZFjUoqIiIiIiIiIiIock1JERERERERERFTkmJQiIiIiIiIiIqIix6QUEREREREREREVOSaliIiIiIiIiIioyDEpRURERERERERERY5JKSIiIiIiIiIiKnJMShERERERERERUZFjUoqIiIiIiIiIiIock1JERERERERERFTkmJQiIiIiIiIiIqIix6QUEREREREREREVOSaliIiIiIiIiIioyDEpRURERERERERERY5JKSIiIiIiIiIiKnJMShERERERERERUZFjUoqIiIiIiIiIiIock1JERERERERERFTkmJQiIiIiIiIiIqIix6QUEREREREREREVOSaliIiIiIiIiIioyDEpRURERERERERERY5JKSIiIiIiIiIi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AGzbtg0BAQG4fv26tE1cXBxSU1ORmJiI9PR0qY8qVapAR0cH7u7u+Oabb+Dn54dZs2YhJycH/fv3R7NmzQr8thwi+vf+C9ckDQ0NVKtWTaHMwsICurq6CuXz5s3Dtm3bcPjwYans6tWryMzMRFJSEl6+fCldk1xcXAC8ncU1adIk9OzZE0FBQXj69ClGjBgBPz8/3rpHREREKmNSioiKhcjISDRp0kR6P2zYMACAr68vFi5ciJiYGKxatQovXryAjY0NmjdvjkmTJkEul0vbnD17FhMmTEBqaiocHR2xePFidOvWTWms5cuXo127dkpfDHO5urpKP0dFRWHt2rWwtbXFnTt3AADJycmIjY1V2KZXr144fvy4Uh/x8fGws7ODhoYGdu3ahYEDB6Jhw4bQ19eHl5cXZsyYod6BIqIi8V+6Jn3M06dPFWZhAkCLFi1w9+5d6X3uNUkIAQBSomzgwIGoWbMmSpUqhY4dO+K33377pBiIiIjo6yQTuf93Qf9KSkoKjI2NkZycDCMjo88dDhFRsWE3es/nDoEKwZ0pLT93CERERERUSFTNkXBNKSIiIiIiIiIiKnJMShERERERERERUZHjmlJEVGh421Xxw1uu6EvGa1Lxw2sSERHRl40zpYiIiIiIiIiIqMgxKUVEREREREREREWOSSkiIiIiIiIiIipyTEoREREREREREVGRY1KKiIiIiIiIiIiKHJNSRERERERERERU5JiUIiIiIiIiIiKiIsekFBERERERERERFTkmpYiIiIiIiIiIqMgxKUVEREREREREREWOSSkiIiIiIiIiIipyTEoREREREREREVGRY1KKiIiIiIiIiIiKHJNSRERERERExdiJEyfQunVr2NjYQCaTYfv27fm27du3L2QyGWbNmqVUt2fPHtSuXRt6enowMTGBt7e3Qv2gQYPg5uYGuVwOFxcXpe0DAwMhk8mUXvr6+irtx7Nnz1CmTBnIZDK8ePFCKj916hTq16+PUqVKQU9PD46OjggJCVGpTyL6vD5rUupjF8cePXooXbA8PT0V2iQlJaFr164wMjJCyZIl4e/vj9TUVIU2MTExaNCgAXR1dVG2bFlMmzZNKZZNmzbB0dERurq6qF69Ovbu3Vvg+0tERERERFTU0tLSUKNGDcyfP/+D7bZt24a///4bNjY2SnVbtmxBt27d0LNnT1y8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NOjr68PR0RH29vawt7eHk5MTSpUqhenTpxdGjEREREREREREVMxoqbuBsbExTp8+jfDwcFy8eBF6enpwdnZGw4YNCyM+IiIiIiIiIiIqhtROSgGATCZD8+bN0bx584KOh4iIiIiIiIiIvgJqJ6UmTpz4wfrx48d/cjBERERERERERPR1UDsptW3bNoX3WVlZiI+Ph5aWFsqXL8+kFBERERERERERfZTaSakLFy4olaWkpKBHjx743//+VyBBERERERERERFR8ab20/fyYmRkhKCgIPz6668F0R0RERERERERERVzBZKUAoDk5GQkJycXVHdERERERERERFSMqX373pw5cxTeCyHw8OFD/Pnnn/Dy8iqwwIiIiIiIiIiIqPhSOykVEhKi8F5DQwPm5ubw9fVFQEBAgQVGRERERERERETFl9pJqfj4+MKIg4iIiIiIiIiIviIFtqYUERERERERERGRqlSaKdWuXTuVO9y6desnB0NERERERERERF8HlWZKGRsbSy8jIyMcPnwYkZGRUn1UVBQOHz4MY2NjtQY/ceIEWrduDRsbG8hkMmzfvl2hXgiB8ePHw9raGnp6enB3d8fNmzcV2iQlJaFr164wMjJCyZIl4e/vj9TUVIU2MTExaNCgAXR1dVG2bFlMmzZNKZZNmzbB0dERurq6qF69Ovbu3avWvhARERERERERkepUSkqFhoZKL0tLS3Ts2BHx8fHYunUrtm7ditu3b8PHxwdmZmZqDZ6WloYaNWpg/vz5edZPmzYNc+bMwaJFi3DmzBno6+vDw8MDr1+/ltp07doVV65cQXh4OHbv3o0TJ06gT58+Un1KSgqaN28OW1tbREVFITg4GIGBgViyZInU5vTp0+jcuTP8/f1x4cIFeHt7w9vbG5cvX1Zrf4iIiIiIiIiISDVqL3S+YsUKnDp1CpqamlKZpqYmhg0bhnr16iE4OFjlvry8vODl5ZVnnRACs2bNwrhx49C2bVsAwOrVq2FpaYnt27fDx8cH165dw/79+3Hu3DnUrFkTADB37ly0aNEC06dPh42NDcLCwpCZmYkVK1ZAR0cHVatWRXR0NGbOnCklr2bPng1PT0+MGDECADBp0iSEh4dj3rx5WLRokbqHiIiIiIiIiIiIPkLthc7fvHmD69evK5Vfv34dOTk5BRIU8PYpf4mJiXB3d5fKjI2NUbt2bURERAAAIiIiULJkSSkhBQDu7u7Q0NDAmTNnpDYNGzaEjo6O1MbDwwOxsbF4/vy51ObdcXLb5I5DREREREREREQFS+2ZUj179oS/vz9u3bqFb7/9FgBw5swZTJkyBT179iywwBITEwEAlpaWCuWWlpZSXWJiIiwsLBTqtbS0YGpqqtDG3t5eqY/cOhMTEyQmJn5wnLxkZGQgIyNDep+SkqLO7hERERERERERfdXUTkpNnz4dVlZWmDFjBh4+fAgAsLa2xogRIzB8+PACD/C/avLkyQgKCvrcYRARERERERERfZHUvn1PQ0MDI0eOREJCAl68eIEXL14gISEBI0eOVFhn6t+ysrICADx69Eih/NGjR1KdlZUVHj9+rFD/5s0bJCUlKbTJq493x8ivTW59XgICApCcnCy9/vnnH3V3kYiIiIiIiIjoq6V2UirXkydPEBMTg5iYGDx9+rQgYwIA2Nvbw8rKCocPH5bKUlJScObMGdStWxcAULduXbx48QJRUVFSmyNHjiAnJwe1a9eW2pw4cQJZWVlSm/DwcFSuXBkmJiZSm3fHyW2TO05e5HI5jIyMFF5ERERERERERKQatZNSaWlp8PPzg7W1NRo2bIiGDRvC2toa/v7+ePXqlVp9paamIjo6GtHR0QDeLm4eHR2Ne/fuQSaTYciQIfjtt9+wc+dOXLp0Cd27d4eNjQ28vb0BAE5OTvD09ETv3r1x9uxZ/PXXXxgwYAB8fHxgY2MDAOjSpQt0dHTg7++PK1euYMOGDZg9ezaGDRsmxTF48GDs378fM2bMwPXr1xEYGIjIyEgMGDBA3cNDREREREREREQqUDspNWzYMBw/fhy7du2Sbt/bsWMHjh8/rvaaUpGRkXB1dYWrq6vUt6urK8aPHw8AGDlyJAYOHIg+ffqgVq1aSE1Nxf79+6Grqyv1ERYWBkdHRzRt2hQtWrTAd999hyVLlkj1xsbGOHjwIOLj4+Hm5obhw4dj/Pjx6NOnj9SmXr16WLt2LZYsWYIaNWpg8+bN2L59O6pVq6bu4SEiIiIiIiIiIhWovdD5li1bsHnzZjRu3Fgqa9GiBfT09NCxY0csXLhQ5b4aN24MIUS+9TKZDBMnTsTEiRPzbWNqaoq1a9d+cBxnZ2ecPHnyg206dOiADh06fDhgIiIiIiIiIiIqEGrPlHr16hUsLS2Vyi0sLNS+fY+IiIiIiIiIiL5Oaiel6tatiwkTJuD169dSWXp6OoKCgj64MDgREREREREREVEutW/fmzVrFjw9PVGmTBnUqFEDAHDx4kXo6uriwIEDBR4gEREREREREREVP2onpapXr46bN28iLCwM169fBwB07twZXbt2hZ6eXoEHSERERERERERExY9aSamsrCw4Ojpi9+7d6N27d2HFRERERERERERExZxaa0ppa2srrCVFRERERERERET0KdRe6Lx///6YOnUq3rx5UxjxEBERERERERHRV0DtNaXOnTuHw4cP4+DBg6hevTr09fUV6rdu3VpgwRERERERERERUfGkdlKqZMmSaN++fWHEQkREREREREREXwm1k1KhoaGFEQcREREREREREX1FVF5TKicnB1OnTkX9+vVRq1YtjB49Gunp6YUZGxERERERERERFVMqJ6V+//13jBkzBgYGBihdujRmz56N/v37F2ZsRERERERERERUTKmclFq9ejUWLFiAAwcOYPv27di1axfCwsKQk5NTmPEREREREREREVExpHJS6t69e2jRooX03t3dHTKZDA8ePCiUwIiIiIiIiIiIqPhSOSn15s0b6OrqKpRpa2sjKyurwIMiIiIiIiIiIqLiTeWn7wkh0KNHD8jlcqns9evX6Nu3L/T19aWyrVu3FmyERERERERERERU7KiclPL19VUq+/HHHws0GCIiIiIiIiIi+jqonJQKDQ0tzDiIiIiIiIiIiOgrovKaUkRERERERERERAWFSSkiIiIiIiIiIipyTEoREREREREREVGRY1KKiIiIiIiIiIiKHJNSRERERERERERU5D4pKfXnn3+ifv36sLGxwd27dwEAs2bNwo4dOwo0OCIiIiIiIiIiKp7UTkotXLgQw4YNQ4sWLfDixQtkZ2cDAEqWLIlZs2YVdHxERERERERERFQMqZ2Umjt3LpYuXYqxY8dCU1NTKq9ZsyYuXbpUoMEREREREREREVHxpHZSKj4+Hq6urkrlcrkcaWlpBRIUEREREREREREVb2onpezt7REdHa1Uvn//fjg5ORVETEREREREREREVMxpqbvBsGHD0L9/f7x+/RpCCJw9exbr1q3D5MmTsWzZssKIkYiIiIiIiIiIihm1k1K9evWCnp4exo0bh1evXqFLly6wsbHB7Nmz4ePjUxgxEhERERERERFRMaN2UgoAunbtiq5du+LVq1dITU2FhYVFQcdFRERERERERETFmNprSv3222+Ij48HAJQoUYIJKSIiIiIiIiIiUpvaSalNmzahQoUKqFevHhYsWICnT58WRlxERERERERERFSMqZ2UunjxImJiYtC4cWNMnz4dNjY2aNmyJdauXYtXr14VRoxERERERERERFTMqJ2UAoCqVavijz/+wO3bt3H06FHY2dlhyJAhsLKyKuj4iIiIiIiIiIioGPqkpNS79PX1oaenBx0dHWRlZRVETEREREREREREVMx9UlIqPj4ev//+O6pWrYqaNWviwoULCAoKQmJiYkHHR0RERERERERExZCWuhvUqVMH586dg7OzM3r27InOnTujdOnShREbEREREREREREVU2onpZo2bYoVK1agSpUqhREPERERERERERF9BdROSv3++++FEQcREREREREREX1FVFpTatiwYUhLS5N+/tCroNnZ2UEmkym9+vfvDwBo3LixUl3fvn0V+rh37x5atmyJEiVKwMLCAiNGjMCbN28U2hw7dgzffPMN5HI5KlSogJUrVxb4vhARERERERER0VsqzZS6cOGC9GS9Cxcu5NtOJpMVTFTvOHfuHLKzs6X3ly9fRrNmzdChQweprHfv3pg4caL0vkSJEtLP2dnZaNmyJaysrHD69Gk8fPgQ3bt3h7a2Nv744w8Abxdub9myJfr27YuwsDAcPnwYvXr1grW1NTw8PAp8n4iIiIiIiIiIvnYqJaWOHj2a589FwdzcXOH9lClTUL58eTRq1EgqK1GiBKysrPLc/uDBg7h69SoOHToES0tLuLi4YNKkSRg1ahQCAwOho6ODRYsWwd7eHjNmzAAAODk54dSpUwgJCWFSioiIiIiIiIioEKh0+95/RWZmJtasWQM/Pz+FWVlhYWEwMzNDtWrVEBAQgFevXkl1ERERqF69OiwtLaUyDw8PpKSk4MqVK1Ibd3d3hbE8PDwQERGRbywZGRlISUlReBERERERERERkWpUminVrl07lTvcunXrJwfzMdu3b8eLFy/Qo0cPqaxLly6wtbWFjY0NYmJiMGrUKMTGxkpxJCYmKiSkAEjvExMTP9gmJSUF6enp0NPTU4pl8uTJCAoKKsjdIyIiIiIiIiL6aqiUlDI2Ni7sOFSyfPlyeHl5wcbGRirr06eP9HP16tVhbW2Npk2b4tatWyhfvnyhxRIQEKCwsHtKSgrKli1baOMRERERERERERUnKiWlQkNDCzuOj7p79y4OHTr00ZlYtWvXBgDExcWhfPnysLKywtmzZxXaPHr0CACkdaisrKyksnfbGBkZ5TlLCgDkcjnkcvkn7QsRERERERER0dfuk9aUiomJwebNm7F582ZcunSpoGPKU2hoKCwsLNCyZcsPtouOjgYAWFtbAwDq1q2LS5cu4fHjx1Kb8PBwGBkZoUqVKlKbw4cPK/QTHh6OunXrFuAeEBERERERERFRLpVmSuU6e/Ys/P39cfXqVQghAAAymQxVq1bF8uXLUatWrUIJMicnB6GhofD19YWW1v+FfOvWLaxduxYtWrRAqVKlEBMTg6FDh6Jhw4ZwdnYGADRv3hxVqlRBt27dMG3aNCQmJmLcuHHo37+/NNOpb9++mDdvHkaOHAk/Pz8cOXIEGzduxJ49ewplf4iIiIiIiIiIvnYqz5S6evUqmjZtCj09PaxZswbnz5/H+fPn8eeff0Iul6Np06a4evVqoQR56NAh3Lt3D35+fgrlOjo6OHToEJo3bw5HR0cMHz4c7du3x65du6Q2mpqa2L17NzQ1NVG3bl38+OOP6N69OyZOnCi1sbe3x549exAeHo4aNWpgxowZWLZsGTw8PAplf4iIiIiIiIiIvnYqz5QKDAxEs2bNsGXLFshkMqncxcUFnTt3Rrt27RAYGIiNGzcWeJDNmzeXZma9q2zZsjh+/PhHt7e1tcXevXs/2KZx48a4cOHCJ8dIRERERERERESqUzkpdfToUezbt08hIZVLJpNhzJgxaNGiRYEGR0RERERERERExZPKt++9fPkSlpaW+dZbWVnh5cuXBRIUEREREREREREVbyonpWxtbXH27Nl868+cOQNbW9sCCYqIiIiIiIiIiIo3lZNSPj4+GDZsGC5fvqxUd+nSJfzyyy/o1KlTgQZHRERERERERETFk8prSgUEBODQoUNwcXFBs2bN4OTkBCEErl27hkOHDuHbb7/FmDFjCjNWIiIiIiIiIiIqJlROSunq6uLo0aMICQnBunXrpKfeVapUCb/99huGDh0KuVxeaIESEREREREREVHxoXJSCgB0dHQwatQojBo1qrDiISIiIiIiIiKir4DKa0oREREREREREREVFCaliIiIiIiIiIioyDEpRURERERE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nz+/QkJC/uvLAwAAAAAAeGo5dSi1adMmdenSRTt27NC6deuUkJCgWrVq6c6dO6mO69Chg6Kiomw/Y8eOte1LSkrSq6++qvj4eG3fvl0zZ85USEiIhgwZYjsmMjJSr776qqpXr679+/erR48eat++vdasWWO3awUAAAAAAHiauDm6gD+zevXqVL+HhIQoc+bM2rNnj1588UXbdm9vbwUEBPzuOdauXaujR48qNDRUWbJkUalSpTRixAj169dPw4YNk4eHh6ZMmaI8efLos88+kyQVKVJEW7du1fjx4xUUFPTfXSAAAAAAAMBTyqlXSv3WrVu3JEnPPPNMqu3fffedMmbMqOLFi2vAgAG6e/eubV94eLhKlCihLFmy2LYFBQUpJiZGR44csR3z0ksvpTpnUFCQwsPD/6tLAQAAAAAAeKo59UqplKxWq3r06KHnn39exYsXt21/6623lCtXLj377LM6ePCg+vXrpxMnTmjx4sWSpOjo6FSBlCTb79HR0X96TExMjO7du6c0adI8VM/9+/d1//592+8xMTGP5kIBAAAAAACeAo9NKNWlSxcdPnxYW7duTbX9nXfesf25RIkSypo1q2rWrKnTp08rX758/1k9o0eP1vDhw/+z8wMAAAAAADzJHovb97p27aoffvhBGzZsUPbs2f/02IoVK0qSTp06JUkKCAjQ5cuXUx2T/HtyH6o/OsbPz+93V0lJ0oABA3Tr1i3bz/nz5//5hQEAAAAAADylnDqUMsaoa9euWrJkidavX688efL85Wv2798vScqaNaskqVKlSjp06JCuXLliO2bdunXy8/NT0aJFbceEhYWlOs+6detUqVKlP/x7PD095efnl+oHAAAAAAAAf49Th1JdunTR7NmzNWfOHPn6+io6OlrR0dG6d++eJOn06dMaMWKE9uzZo7Nnz2r58uVq1aqVXnzxRQUGBkqSatWqpaJFi6ply5Y6cOCA1qxZo8GDB6tLly7y9PSUJHXq1ElnzpxR3759dfz4cQUHB+v7779Xz549HXbtAAAAAAAATzKnDqW+/PJL3bp1S9WqVVPWrFltP/Pnz5ckeXh4KDQ0VLVq1VLhwoXVq1cvNWrUSCtWrLCdw9XVVT/88INcXV1VqVIltWjRQq1atdKHH35oOyZPnjxauXKl1q1bp5IlS+qzzz7TtGnTFBQUZPdrBgAAAAAA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X77cFiAkJCQ4smw4if79+9s+v4wxZuPGjcZisZjPP//ctm3hwoWmRo0aplq1aubcuXO/ex6CqafXsWPHTIUKFR66uyA0NNQEBASY3bt3p9p+4MABkyZNGrN27Vp7lgknR08pOJ2kpCRJUu7cuZWQkKC4uDgdOnRIMTExtr4JBQoUUJcuXVSnTh316dNHy5YtS3WOlA0/8XQy/9+PbOfOnZo/f76sVqs++eQT9e3bV++8846mT58uSSpZsqTmz5+v06dPq27duo4sGU7GxcVFP//8swYPHixJWrRokerUqaPr16+revXqqly5srp166YrV67YGnR6eHjIy8uLfhpIJS4uTk2bNlX58uX17bffqmHDhrYnMHbv3l2tW7fWli1bNHnyZJ08eVL+/v5auHChcubMqYIFCzq4ejgzi8Uif39/pU2bVvv379fgwYNVo0YNderUSdWqVdOxY8f03HPPqWvXrqpbt65cXV2VlJTEexR05swZTZ48WTVq1LD188mTJ48GDBigYcOGadKkSZKkRo0aqXPnznJxcdHbb7/9u/026Un29MqfP79CQ0OVP39+/fTTT7JarZIe9PxNnz69vv/+e12+fNl2fI4cOVS4cGHbcYAkekrBefx22WdiYqJJTEw0o0aNMi4uLuaLL74wMTExqY65dOmSGTduHN/QIJXklXILFy40mTJlMv379zeHDh2y7R86dKhxdXVNtWLq0KFD5tSpU3avFc7LarWasWPHmpIlS5p69eoZNzc3M2vWLNv+GTNmmKpVq5p69eqZU6dOmZMnT5oPPvjAPPvssw/d5gBcuHDBPPvss8bT09N89dVXxpgHq1qSTZgwwZQuXdr07NnTdrs6t1chpd9rT7B7926TO3duU61aNePj42M6dOhg5syZY7Zu3WoKFy5sli5d6qhy8RjYs2ePKVSokKlUqZLtts4LFy6YDz74wPj6+pqJEyfajl20aJEpUaKE6dq1q6PKhRO7evWqKVKkiClTpozts+urr74yPj4+plevXmbz5s3m0qVLpl+/fiZr1qyp+rwChFJwCikn3jt27DBr1qwxGzdutG0bMmSIcXFxMcHBwbZgqk2bNraJuzEsHUZq27dvN+nSpTNfffXV796mMHToUJMmTZqHGuYDv9WqVStjsVhM7dq1U223Wq1m5syZplq1asZisZgiRYqY3Llzmz17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dVW7du1sX9glB56APdDoHP9KyklY165dtXTpUiUlJcnX11eurq46dOiQ3NzcbI31AMBR7t69q4SEBKVLl87RpeAxdOnSJf3888+yWCzKkycPjadhk3KOExMTo4EDByp37tzq3bu3li9frlatWum9995TRESENm/erDFjxqhFixa210dERGjIkCHatGmTVq5cqdKlSzvqUuAEfu9L3P79+8vV1VV169bVyy+/rE8++USdOnWSMUYhISG6ceOGunfvLnd3d0m/9r4Dku3bt09NmjRR5syZNWXKFBUvXty2b8qUKerZs6cGDBiggQMHcrsn7I5QCv9ayslYeHi4rl27pjt37ujNN9+Uq6srH4wAAOCJtGHDBl26dEnNmzdXx44dlSFDBr333nu6d++ekpKS9Morr6hLly7q0aOHlixZombNmsnd3V2zZs1SgwYNJElxcXFat26dihQpovz58zv4iuBIKQOp06dPK02aNMqUKZN27dqlKlWqSJLmz5+vN998U5J0584dNWzYUMWLF9dnn33msLrxeDh48KBat26tChUqqHv37ipWrJht3zfffKMXX3xRBQoUcGCFeFoRSuGR+KNb8wikAADAk8YYo9u3b6tRo0aKj4+Xn5+fNm3apC1bttieqjd79mxNnDhRa9euVbp06bR27Vp99dVXqlOnjt5++23mR0gl5Ze8/fv317Jly3T16lUVK1bM1r/u3Xff1fTp0/X8888rJiZGffr00ZUrV7Rz505Wt+Bv2bdvn9q3b68yZcqoZ8+eKlq0qKNLAmh0jt9ntVp/d/sfZZjJgdRvX8eECwAAPGksFot8fX01b948RUdH64cfftDAgQNtgZQkubu769y5c9qyZYvu3r2riRMnKnfu3GrXrp1tJTkgPZg/JwdS8+bN08yZMzVmzBh99tlnqlixonr06KFdu3Zp7NixateunSpVqqRWrVopPj5eP/30k9zc3BhP+FtKly6tadOm6eDBgxoxYoSOHz/u6JIAGp3jYSlXPR0+fFh3795V5syZlTt3blkslj9c/ZTyqTPHjx9Xzpw5bY9lBwAAeNK4uLgoX758ypIli8LCwpQ9e3Y1b95cklS0aFG9+OKLatWqldKnT6+0adNq8eLFslgsMsbwxR1skufPGzduVFhYmPr27avXX39d0oM+Zblz51b//v01d+5cHTlyROfPn5ef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",
|
||
"text/plain": [
|
||
"<Figure size 1200x600 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Plot salvato come: .//2024-12-07_07-35_plots/variety_comparison_avg_olive_production_kg_ha.png\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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72FSUpJ69uypv/76K9WwOy3atGmj3bt364svvtDly5etLuOT7s1iTUxM1HvvvZfiuXfv3k1zcNS+fXvduXNH3bt31x9//JFiHTx7e/sU78nkyZOfaPZiSEiIPD099eGHH6b6Gv/xxx/m92n97Nrb26tly5ZasmRJqkH1/WM+7nsOAP8FzJgCgCygcOHCmjdvntq0aaPAwEB16NBBJUqUUEJCgnbu3KlFixapY8eOkqTSpUsrLCxMn376qXkJy969ezVnzhw1b95ctWrVytDaXFxctHr1aoWFhalixYr6/vvvtXLlSg0ZMsS8bCM0NFTjx49XgwYN9NJLL+nSpUuaOnWqihQp8tBLwx7m2rVrypcvn1q1aqXSpUvL3d1d69ev1759+8x/RXd0dNTo0aPVqVMn1ahRQ+3atdPFixc1adIkFSxY8JG3mE+rPHnyaPDgwXr33XfVoEEDNW3aVNHR0Zo2bZqef/55cy2b9Jg3b555+/nUNGrUSA4ODpo7d665MH2bNm308ssva9q0aQoJCUmxgPOAAQP09ddfq169enr99dfl5uamzz//XAUKFNCVK1ceOQugevXqGjdunPr27atSpUqpY8eO8vPz008//aTPPvtMSUlJWrVqlTmzyJbS896PHDlSoaGhqlq1qjp37qwrV65o8uTJKl68uK5fv2728/Ly0osvvqjJkyfLYrGocOHCioyMTHXtmY8//lhVq1ZVuXLl9OqrryogIECnT5/WypUrzWCwfPnykqS33npLbdu2laOjo5o0aWL+0Xu/QYMG6ZtvvlHDhg3Vu3dv5cyZU3PmzNGpU6e0ZMmSx76s7O8KFSqkEiVKaP369ercuXOK7fv379f777+for1mzZpat27dE4VkxYoVU+HChdWvXz+dO3dOnp6eWrJkyQPXxVq/fr0Mw1CzZs0eOm7lypWVI0cOhYWFqXfv3rJYLPrqq69SBBt2dnaaPn26mjRpojJlyqhTp07m+X306FFz/awHadKkiWrVqqW33npLp0+fVunSpbV27VotX75cffr0MWfkjBgxQlu3blVoaKj8/f116dIlTZs2Tfny5TMXt69fv758fX1VpUoV+fj46Pjx45oyZYpCQ0Mfeomlk5OTFi9erDp16qhq1arq1KmTKlSooKtXr2revHk6ePCg3nzzTavL4tKjdevW6tevn/r166ecOXOm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UVFRmf/iAQAAAMC/xMiRI/X888/Lw8ND3t7eat68uaKjo636xMTE6JVXXpGvr6/c3NxUrlw5LVmyxKrPzz//rGbNmil37tzy9PRU1apVtWnTJqs+GzZsUOXKlc07qA8cODDNN6kyDEMNGzaUxWLRt99+a7UtLRNdkPke+1K+jPD3u/d98MEHmj59unbv3q18+fJp5syZmjdvnmrXri3pXmARGBio3bt3q1KlSlq7dq2OHTum9evXy8fHR2XKlNF7772ngQMHavjw4XJyctKMGTMUEBCgjz76SJIUGBio7du3a8KECQoJCfnHj/lpN336dElSzZo1rdpnzZqljh07SpKio6M1ePBgXblyRQULFtRbb72liIgIq/579+7VO++8o+vXr6tYsWL65JNP9Morr5jb7e3tFRkZqZ49eyo4OFhubm4KCwvTiBEjzD43b95UdHS07ty5I+neOmrz58/X8OHDFR8fr4CAAEVERFitOyVJjRo10m+//WY+Llu2rKR7P/AAAAAA4GmwZcsWhYeH6/nnn9fdu3c1ZMgQ1a9fX8eOHZObm5skqUOHDrp69apWrFih3Llza968eWrdurX2799v/h3VuHFjPfvss9q4caNcXV01ceJENW7cWCdPnpSvr69++OEHNWrUSG+99Za+/PJLnTt3Tj169FBiYqLGjRv3yDonTpwoi8WSoj15oouvr6927typCxcuqEOHDnJ0dNSHH36YsS8WHspi/Ev+mk5MTNSiRYsUFhamQ4cOKSYmRnXq1NFff/1lzoKRJH9/f/Xp00cREREaNmyYVqxYYTVb5dSpUypUqJAOHjyosmXLqnr16ipXrpwmTpxo9pk1a5b69Olj3lnwUeLi4uTl5aXY2Fh5enpm0BED/30FB620dQnIJKdHhf7j++R8yro4n5BRbHEuAQDS5o8//pC3t7e2bNmi6tWrS5Lc3d01ffp0q0kEuXLl0ujRo9W1a1ddvnxZefLk0datW1WtWjVJ0rVr1+Tp6al169apbt26GjJkiNatW6d9+/aZY3z33Xdq3bq1Ll26JA8PjwfWFBUVpcaNG2v//v3y8/PTsmXL1Lx5c0nS999/r8aNG+v8+fPmHdxnzJihgQMH6o8//pCTk1NGv0RPlfTkKI99KV9CQoJ+//13nTlzxuorvQ4fPix3d3c5OzurR48eWrZsmYKCghQTEyMn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VCo8ePAAffr0waJFi2BqaorOnTvj3r17iImJQfXq1aGnp4fjx49DT09PqT1FRERERERERJTfMTGlBZ6enpgzZw727t0LCwsLxMfHY8CAAWjUqBG2bt0KfX19XLlyBdevX0fJkiXRrFmzdxZCJyIiIiIiIiLKz5iY0oKBAwfCyMgIq1evVmZRnT9/Hl988QXGjh2L+fPnv3UNZ0oRERERERER0aeGxc8/sDfzfhkZGbh37x7S0tKU4+np6ahTpw5mz56NnTt34tmzZ8jKysp1HZNSRERERERERPSpYWLqA9JoNEpNqVu3buHhw4fQ09ODo6Mjdu3aheDgYKjVaujp6QEADAwMUKxYMRQqVIiJKCIiIiIiIiL65DEx9QFl777n5uaGTp06oXr16nB2doaJiQmGDBmC0aNH4+DBg9BoNPjjjz/w66+/olSpUkqiioiIiIiIiIjoU8ZK2h+ARqNRklI7d+7Epk2b4OnpiQsXLuDgwYOIi4vD559/jo4dO6JDhw6oWLEidHR0YGBggNOnT0OlUuXawY+IiIiIiIiI6FPE4ucf0LFjx+Dn54fatWtjyJAhAIB9+/bBw8MD5ubmGDZsGEqUKIHff/8dJiYm6NWrF3ffIyIiIiIiIqICg4mpDyQxMRHNmjXDo0ePMGfOHEyYMEE5FhAQgOXLl8PMzAxTp05Fw4YNlWPcfY+IiIiIiIiICgrWmPpALC0tsXv3blhaWuLAgQO4ePGicqxjx46YNGkSYmJisGfPnlzXMSlFRERERERERAUFZ0x9YFFRURg8eDDq16+P8ePHo0aNGsqxkydPolGjRkxGEREREREREVGBxMTURxAZGYmhQ4fCzs4OEyZMQPXq1XMd5/I9IiIiIiIiIiqImJj6SCIjIzF8+HCUK1cOixYtQoUKFbQdEhERERERERGRVrHG1EdSt25deHp6wtTUFOXKldN2OEREREREREREWscZUx+ZiEClUkGj0UCtZl6QiIiIiIiIiAouJqa0IDs5RURERERERERUkHHKjhYwKUVERERERERExMQUERERERERERFpCRNTRERERERERESkFUxMERERERERERGRVjAxRUREREREREREWsHEFBERERERERERaQUTU0RERET5lEqlgr+/v7bDICIiIvqfMTFFRERE9AF17NgR7dq1e+exsLAwqFQqXLhw4X/67ISEBLRv3/5fnz9o0CB06dLlf/pdRERERB8CE1NEREREH5CTkxMOHz6Mu3fvvnVsw4YNqF+/Pmxtbf/TZ6anpwMALC0tYWBg8F7iJCIiItIGJqaIiIiIPqAOHTqgePHi8PHxydWekpKCnTt3okuXLujTpw9KlSoFY2Nj1KpVC9u3b891rr29PcaMGYMJEyagWLFiaNu2LYC3l/LFx8ejZ8+eKFKkCIoWLYrOnTvj9u3bAIDZs2dj48aN2Lt3L1QqFVQqFUJCQuDg4IAxY8bk+n2PHj2Cvr4+goOD3/v/BxEREVFOTEwRERERfUC6urpwdHSEj48PRERp37lzJ7KystC/f3/Y2dlh//79uHTpEr799lsMGDAAERERuT5n48aN0NfXx4kTJ7B69eq3fk9GRgbatm0LU1NThIWF4cSJEzAxMUG7du2Qnp6OyZMno2fPnmjXrh0SEhKQkJCAJk2aYOjQodi2bRtevXqlfNaWLVtQqlQpODg4fLj/GCIiIiIwMUVERET0wQ0ZMgQ3b95EaGio0rZhwwZ0794d5cqVw+TJk1GnTh1UrFgRY8eORbt27fDLL7/k+gxra2ssWrQIVatWRdWqVd/6Hb6+vtBoNFi/fj1q1aoFGxsbbNiwAXFxcQgJCYGJiQmMjIxgYGAAS0tLWFpaQl9fH926dQMA7N27V/ksHx8fDBo0CCqV6gP9jxARERG9xsQUERER0QdWrVo1NGnSBN7e3gCAmJgYhIWFwcnJCVlZWZg3bx5q1aqFokWLwsTEBIcOHUJcXFyuz7Czs/vb3xEVFYWYmBiYmprCxMQEJiYmKFq0KNLS0nDz5s2/vM7Q0BADBgxQYjt37hwuXbqEQYMG/f99aSIiIqJ/QVfbARAREREVBE5OThg7dixWrVqFDRs2oFKlSmjRogV++OEHrFixAsuXL0etWrVQqFAhTJgwQSlwnq1QoUJ/+/kpKSmws7PD1q1b3zpWvHjxv7126NChqFOnDu7evYsNGzbAwcEB5cqV++9fkoiIiOg/YmKKiIiI6CPo2bMnxo8fj23btmHTpk0YOXIkVCoVTpw4gc6dO6N///4AAI1Ggxs3bqB69er/6fPr1asHX19flChRAmZmZu88R19fH1lZWW+116pVC/Xr18e6deuwbds2eHp6/vcvSERERPQ/4FI+IiIioo/AxMQEvXr1wtSpU5GQkKAslbO2tsbhw4dx8uRJXL16FcOHD8eDBw/+8+f369cPxYoVQ+fOnREWFobY2FiEhIRg3LhxuHv3LgCgfPnyuHDhAq5fv47Hjx8jIyNDuX7o0KFYuHAhRARdu3Z9L9+ZiIiI6J8wMUVERET0kTg5OeHZs2do27YtPvvsMwDA9OnTUa9ePbRt2xb29vawtLREly5d/vNnGxsb49ixYyhbtiy6desGGxsbODk5IS0tTZlBNWzYMFStWhX169dH8eLFceLECeX6Pn36QFdXF3369IGhoeF7+b5ERERE/0QlOfctJiIiIqIC6fbt26hUqRJOnz6NevXqaTscIiIiKiCYmCIiIiIqwDIyMvDkyRNMnjwZsbGxuWZREREREX1oXMpHREREVICdOHECVlZWOH36NFavXq3tcIiIiKiA4YwpIiIiIiIiIiLSCs6YIiIiIiIiIiIirWBiioiIiIiIiIiItIKJKSIiIiIiIiIi0gompoiIiIiIiIiISCuYmCIiIiIiIiIiIq1gYoqIiIiIiIiIiLSCiSkiIiIiIiIiItIKJqaIiIiIiIiIiEgrmJgiIiIiIiIiIiKt+H9QO1u8MBXrZAAAAABJRU5ErkJggg==",
|
||
"text/plain": [
|
||
"<Figure size 1200x600 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Plot salvato come: .//2024-12-07_07-35_plots/variety_comparison_avg_oil_production_l_ha.png\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAADYfUlEQVR4nOzdeVxO6f8/8NfdvkdIIZUaEmXJVllCCjGMfRmyZSsGn0HNkG1s2YdEgzBk32UyiazZorHvSyPKWikqdV+/P/w6X7eKO1Imr+fjcT/GfV3vc533OZ3upnfXuY5MCCFARERERERERERUhFSKOwEiIiIiIiIiIvr2sChFRERERERERERFjkUpIiIiIiIiIiIqcixKERERERERERFRkWNRioiIiIiIiIiIihyLUkREREREREREVORYlCIiIiIiIiIioiLHohQRERERERERERU5FqWIiIiIiIiIiKjIsShFREQlnkwmw+TJk4s7jc/2559/wsbGBurq6ihVqlRxp0NfsXv37kEmk2H16tVKxW/evBlGRkZITU39sol9wOTJkyGTyfD06dNCG7NRo0YYN25coY33LVu9ejVkMhnu3bsntbm4uMDFxaXYcioK/fr1g4WFRaGOGRUVBZlMhqioqEIdl4jov4hFKSKib8Dt27cxZMgQVKlSBVpaWjAwMICzszMWLVqE169fF3d6pIRr166hX79+sLKywh9//IHg4GClths3bhxkMhm6d+/+hTPMW0BAAGQyGc6fP6/QLoRA6dKlIZPJcPfuXYW+9PR0aGpqolevXgXa14wZM7Bz587PTblAZDIZZDIZ5s2bl6sv55f4s2fPFmlOBZWdnY1JkyZhxIgR0NPTK5Qxz5w5g3r16qFZs2awsbHBTz/9hOzs7Fxx//vf/2Bra1so+8zL+PHjERgYiISEhC+2j/+yy5cv48cff0TFihWhqamJChUqoHfv3rh8+XJxp5anx48fQ01NDT/++GO+MS9fvoS2tjY6depUhJnlbenSpUoXhomIvlVqxZ0AERF9WWFhYejatSs0NTXRt29f1KxZE5mZmTh27BjGjh2Ly5cvK13g+K96/fo11NT+2z/yoqKiIJfLsWjRIlhbWyu1jRACGzZsgIWFBfbs2YOXL19CX1//C2eqqHHjxgCAY8eOoU6dOlL75cuXkZSUBDU1NRw/fhyWlpZS35kz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ePToEQwNDWFvb4/9+/ejVatWAIB9+/bB19cX7du3R2pqKqytrbFmzRq0bdsWwNtZR7du3cKtW7dQqVIlhbGFEADezrTas2cPRowYgaZNm0JXVxdt2rTBvHnzpFi5XA4/Pz/cvXsXampqsLKywuzZsxUWTH/69KnCbCtDQ0P8/fff8Pb2hoODA8qWLQt/f38MHjxYinFyckJoaCgmTJiAX375Bd999x127tyJmjVrFv7JJCIiohJLJnL+z4Y+S0pKCgwNDZGcnAwDA4PiToeIiIiIiIiIqFgoWyPh7XtERERERERERFTkWJQiIiIiIiIiIqIixzWliIiI6Jtg4RtW3ClQIbs3y6O4UyAiIqLPwJlSRERERERERERU5FiUIiIiIiIiIiKiIseiFBERERERERERFTkWpYiIiIiIiIiIqMixKEVEREREREREREWORSkiIiIiIiIiIipyLEoREREREREREVGRY1GKiIiIiIiIiIiKHItSRERERERERERU5FiUIiIiIiIiIiKiIseiFBERERERERERFTkWpYiIiIiIiIiIqMixKEVEREREREREREWORSkiIiIiIiIiIipyLEoREREREREREVGRY1GKiIiIiIiIiIiKHItSRERERERERERU5FiUIiIiIiIiIiKiIseiFBERERERERERFTkWpYiIiIiIiIiIqMixKEVEREREREREREWORSkiIiIiIiIiIipyLEoREREREREREVGRY1GKiIiIiIiIiIiKHItSRERERERERERU5FiUIiIiIiIiIiKiIseiFBERERERERERFTkWpYiIiIiIiIiIqMixKEVEREREREREREWuWItSQUFBsLe3h4GBAQwMDODo6Ii//vpL6ndxcYFMJlN4DR06VGGMuLg4eHh4QEdHB8bGxhg7diyysrIUYqKiolC3bl1oamrC2toaq1evzpVLYGAgLCwsoKWlhYYNG+L06dNf5JiJiIiIiIiIiKiYi1KVKlXCrFmzEBMTg7Nnz6JFixbo0KEDLl++LMV4eXnh0aNH0isgIEDqy87OhoeHBzIzM3HixAmsWbMGq1evhr+/vxRz9+5deHh4oHnz5oiNjcWoUaMwaNAg7N+/X4rZtGkTxowZg0mTJuHcuXOoVasW3N3d8fjx46I5EURERERERERE3xiZEEIUdxLvMjIywpw5czBw4EC4uLigdu3a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w78kExERERHR5/Lz80ObNm1QuXJlvHz5EqGhoYiKisL+/fulgtSrV6+wbt06pKSkICUlBQBQrlw5qKqqYs+ePUhMTESjRo2gpaWFiIgIzJgxAz///HOufa1cuRINGzZEzZo1c/XlrNNbuXJl1KhRA+fPn8f8+fMxYMAAhVzj4+Oxdu1aAG9v2fP09MSiRYvQsGFDJCQkAAC0tbWlp/196Pjoy2BRioiIiIiIiIg+6kMPqoqKisKpU6cAANbW1grb3b17FxYWFlBXV0dgYCBGjx4NIQSsra0xf/58eHl5KcQnJydj27ZtWLRoUZ55LF68GBMnTsTw4cPx+PFjVKhQAUOGDIG/v78U8/6DqoKDg5GVlQVvb2+F2/48PT2xevXqjx4ffRlcU6qQlKQ1pThTquThTCkiIv58K4n4842IiOjrxDWliIiIiIiIiIjoq8WiFBERERERERERFTmuKUVERERERET0H8Xb00ueb+n2dM6UIiIiIiIiIiKiIseiFBERERERERERFTkWpYiIiIiIiIiIqMixKEVEREREREREREWORSkiIiIiIiIiIipyLEoREREREREREVGRY1GKiIiIiIiIiIiKHItSRERERERERERU5FiUIiIiIiIiIiKiIseiFBERERERERERFTkWpYiIiIiIiIiIqMixKEVEREREREREREWORSkiIiIiIiIiIipyLEoREREREREREVGRY1GKiIiIiIiIiIiKHItSRERERERERERU5FiUIiIiIiIiIiKiIseiFBERERERERERFTkWpYiIiIiIiIiIqMixKEVEREREREREREWORSkiIiIiIiIiIipyLEoREREREREREVGRK9aiVFBQEOzt7WFgYAADAwM4Ojrir7/+kvrT09Ph7e2NMmXKQE9PD507d0ZiYqLCGHFxcfDw8ICOjg6MjY0xduxYZGVlKcRERUWhbt260NTUhLW1NVavXp0rl8DAQFhYWEBLSwsNGzbE6dOnv8gxExERERERERFRMRelKlWqhFmzZiEmJgZnz55FixYt0KFDB1y+fBkAMHr0aOzZswdbtmzB4cOH8fDhQ3Tq1EnaPjs7Gx4eHsjMzMSJEyewZs0arF69Gv7+/lLM3bt34eHhgebNmyM2NhajRo3CoEGDsH//film06ZNGDNmDCZNmoRz586hVq1acHd3x+PHj4vuZBARERER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fv2goaGBAwcOYOHChUhLS4OZmRk6d+6MCRMmSLGqqqrYu3cvhg0bBkdHR+jq6sLT0xNTp06VYiwtLREWFobRo0dj0aJFqFSpElasWAF3d3cppnv37njy5An8/f2RkJCA2rVrIzw8vFCOk4iIiIiIiIiIFBW4KNWlSxdERUUVyiLjQogP9puZmeHw4cMfHcfc3DzX7Xnvc3Fxwfnz5z8Y4+Pjw9v1iIiIiIiIiIiKQIGLUkuWLEHXrl1x9OhR2NnZQV1dXaF/5MiRhZYcERERERERERGVTAUuSm3YsAF///03tLS0EBUVBZlMJvXJZDIWpYiIiIiIiIiI6KMKXJT69ddfMWXKFPj6+kJFpcDrpBMRERERERERERX86XuZmZno3r07C1JERERERERERPTJClxZ8vT0xKZNm75ELkRERERERERE9I0o8O172dnZCAgIwP79+2Fvb59rofP58+cXWnJERERERERERFQyFbgodfHiRdSpUwcAcOnSJYW+dxc9JyIiIiIiIiIiyk+Bi1KHDh36EnkQEREREREREdE3hKuVExERERERERFRkVOqKDV06FA8ePBAqQE3bdqE9evXf1ZSRERERERERERUsil1+165cuVQo0YNODs7o3379qhXrx4qVKgALS0tvHjxAleuXMGxY8ewceNGVKhQAcHBwV86byIiIiIiIiIi+g9Tqig1bdo0+Pj4YMWKFVi6dCmuXLmi0K+vrw9XV1cEBwejdevWXyRRIiIiIiIiIiIqOZRe6Lx8+fL49ddf8euvv+LFixeIi4vD69evUbZsWVhZWfHJe0REREREREREpLQCP30PAEqXLo3SpUsXdi5ERERERERERPSN4NP3iIiIiIiIiIioyLEoRURERERERERERY5FKSIiIiIiIiIiKnIsShERERERERERUZFjUYqIiIiIiIiIiIqcUk/fq1OnDmQymVIDnjt37rMSIiIiIiIiIiKikk+polTHjh2lf6enp2Pp0qWwtbWFo6MjAODkyZO4fPkyhg8f/kWSJCIiIiIiIiKikkWpotSkSZOkfw8aNAgjR47EtGnTcsX8+++/hZsdERERERERERGVSAVeU2rLli3o27dvrvYff/wR27ZtK5SkiIiIiIiIiIioZCtwUUpbWxvHjx/P1X78+HFoaWkVSlJERERERERERFSyKXX73rtGjRqFYcOG4dy5c2jQoAEA4NSpU1i1ahUmTpxY6AkSEREREREREVHJU+CilK+vL6pUqYJFixZh3bp1AIDq1asjJCQE3bp1K/QEiYiIiIiIiIio5ClwUQoAunXrxgIUERERERERERF9sgKvKQUASUlJWLFiBX755Rc8f/4cAHDu3DnEx8cXanJERERERERERFQyFXim1IULF+Dq6gpDQ0Pcu3cPgwYNgpGREbZv3464uDisXbv2S+RJREREREREREQlSIFnSo0ZMwb9+vXDzZs3FZ6217ZtWxw5cqRQkyMiIiIiIiIiopKpwEWpM2fOYMiQIbnaK1asiISEhEJJioiIiIiIiIiISrYCF6U0NTWRkpKSq/3GjRsoV65coSRFREREREREREQlW4GLUt9//z2mTp2KN2/eAABkMhni4uIwfvx4dO7cudATJCIiIiIiIiKikqfARal58+YhNTUVxsbGeP36NZo1awZra2vo6+tj+vTpXyJHIiIiIiIiIiIqYQr89D1DQ0NERETg2LFjuHDhAlJTU1G3bl24urp+ifyIiIiIiIiIiKgEKnBRKkfjxo1Rr149aGpqQiaTFWZORERERERERERUwhX49j25XI5p06ahYsWK0NPTw927dwEAEydOxMqVKws9QSIiIiIiIiIiKnkKXJT67bffsHr1agQEBEBDQ0Nqr1mzJlasWFGoyRERERERERERUclU4KLU2rVrERwcjN69e0NVVVVqr1WrFq5du1aoyRERERERERERUclU4KJUfHw8rK2tc7XL5XK8efOmUJIiIiIiIiIiIqKSrcBFKVtbWxw9ejRX+9atW1GnTp1CSYqIiIiIiIiIiEq2Ahel/P394ePjg9mzZ0Mul2P79u3w8vLC9OnT4e/vX6CxZs6cifr160NfXx/Gxsbo2LEjrl+/rhCTnp4Ob29vlClTBnp6eujcuTMSExMVYuLi4uDh4QEdHR0YGxtj7NixyMrKUoiJiopC3bp1oampCWtra6xevTpXPoGBgbCwsICWlhYaNmyI06dPF+h4iIiIiIiIiIhIOQUuSnXo0AF79uzBgQMHoKurC39/f1y9ehV79uxBq1atCjTW4cOH4e3tjZMnTyIiIgJv3ryBm5sb0tLSpJjRo0djz5492LJlCw4fPoyHDx+iU6dOUn92djY8PDyQmZmJEydOYM2aNVi9erVCgezu3bvw8PBA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xxdKUkREREREREREVLIpffve7t27pX/v378fhoaG0vvs7GxERkbCwsKiUJMjIiIiIiIiIqKSSemiVMeOHQEAMpkMnp6eCn3q6uqwsLDAvHnzCjU5IiIiIiIiIiIqmZQuSsnlcgCApaUlzpw5g7Jly36xpIiIiIiIiIiIqGQr8NP37t69+yXyICIiIiIiIiKib0iBi1IAkJaWhsOHDyMuLg6ZmZkKfSNHjiyUxIiIiIiIiIiIqOQqcFHq/PnzaNu2LV69eoW0tDQYGRnh6dOn0NHRgbGxMYtSRERERERERET0USoF3WD06NFo3749Xrx4AW1tbZw8eRL379+Hg4MD5s6d+yVyJCIiIiIiIiKiEqbARanY2Fj873//g4qKClRVVZGRkQEzMzMEBATgl19++RI5EhERERERERFRCVPgopS6ujpUVN5uZmxsjLi4OACAoaEh/v3338LNjoiIiIiIiIiISqQCrylVp04dnDlzBt999x2aNWsGf39/PH36FH/++Sdq1qz5JXIkIiIiIiIiIqISpsAzpWbMmAFTU1MAwPTp01G6dGkMGzYMT548QXBwcKEnSEREREREREREJY/SM6VCQkLQokUL1KtXT2ozNjZGeHj4F0mMiIiIiIiIiIhKLqWLUsOHD0dmZibMzc3RvHlz6VWxYsUvmR8REREREREREZVAShelkpKScOLECRw+fBiHDh1CaGgoMjMzYW1tLRWoXFxcUL58+S+ZLxERERERERERlQBKF6U0NTWl4tPkyZORnp6O6OhoHDp0CFFRUVizZg3evHmDrKysL5kvERERERERERGVAAVe6FzaUEUFKioqkMlkkMlkEEKgcuXKhZkbERERERERERGVUErPlMrMzMTJkycRFRWFgwcP4tSpUzA3N0fTpk3h5eWFdevWwczM7EvmSkREREREREREJYTSRSlDQ0MYGxujffv28Pb2xsaNG2FiYvIlcyMiIiIiIiIiohJK6dv3atWqhYSEBBw5cgRHjx7F8ePH8ezZs8/a+ZEjR9C+fXtUqFABMpkMO3fuVOjv16+fdHtgzqt169YKMc+fP0fv3r1hYGCAUqVKYeDAgUhNTVWIuXDhApo0aQItLS2YmZkhICAgVy5btmyBjY0NtLS0YGdnh3379n3WsRERERERERERUf6ULkqdPHkSz549Q0BAALS1tREQEABTU1PUrFkTPj4+2LJlCx4/flygnaelpaFWrVoIDAzMN6Z169Z49OiR9NqwYYNCf+/evXH58mVERERg7969OHLkCAYPHiz1p6SkwM3NDebm5oiJicGcOXMwefJkBAcHSzEnTpxAz549MXDgQJw/fx4dO3ZEx44dcenSpQIdDxERERERERERKUfp2/cAQE9PD61bt5ZmK718+RJHjx5FREQEvLy8kJqaWqCn77Vp0wZt2rT5YIympma+twlevXoV4eHhOHPmDOrVqwcAWLx4Mdq2bYu5c+eiQoUKWL9+PTIzM7Fq1SpoaGigRo0aiI2Nxfz586Xi1aJFi9C6dWuMHTsWADBt2jRERERgyZIlWLZsmdLHQ0REREREREREyvmkp+/J5XKcOnUKS5cuxe+//44VK1YgJSXliyx0HhUVBWNjY1SrVg3Dhg1TuGUwOjoapUqVkgpSAODq6goVFRWcOnVKimnatCk0NDSkGHd3d1y/fh0vXryQYlxdXRX26+7ujujo6HzzysjIQEpKisKLiIiIiIiIiIiUo/RMqdOnTyMqKgpRUVE4duwYUlNTUalSJbi4uOD3339H8+bNYWFhUajJtW7dGp06dYKlpSVu376NX375BW3atEF0dDRUVVWRkJAAY2NjxQNSU4ORkRESEhIAAAkJCbC0tFSIKV++vNRXunRpJCQkSG3vxuSMkZeZM2diypQphXGYRERERERERETfHKWLUo0aNYKJiQmaN2+O+fPno3nz5rCysvqSuaFHjx7Sv+3s7GBvbw8rKytERUWhZcuWX3TfH+Pn54cxY8ZI77/UTDEiIiIiIiIiopJI6aLU1atXUa1atS+Zy0dVqVIFZcuWxa1bt9CyZUuYmJjkWlw9KysLz58/l9ahMjExQWJiokJMzvuPxeS3lhXwdq0rTU3Nzz4mIiIiIiIiIqJvkdJrShV3QQoAHjx4gGfPnsHU1BQA4OjoiKSkJMTExEgxBw8ehFwuR8OGDaWYI0eO4M2bN1JMREQEqlWrhtKlS0sxkZGRCvuKiIiAo6Pjlz4kIiIiIiIiIqJv0ictdF5YUlNTERsbi9jYWADA3bt3ERsbi7i4OKSmpmLs2LE4efIk7t27h8jISHTo0AHW1tZwd3cHAFSvXh2tW7eGl5cXTp8+jePHj8PHxwc9evRAhQoVAAC9evWChoYGBg4ciMuXL2PTpk1YtGiRwq13P/30E8LDwzFv3jxcu3YNkydPxtmzZ+Hj41Pk54SIiIiIiIiI6FtQrEWps2fPok6dOqhTpw4AYMyYMahTpw78/f2hqqqKCxcu4Pvvv0fVqlUxcOBAODg44OjRowq3za1fvx42NjZo2bIl2rZti8aNGyM4OFjqNzQ0xN9//427d+/CwcEB//vf/+Dv74/BgwdLMU5OTggNDUVwcDBq1aqFrVu3YufOnahZs2bRnQwiIiIiIiIiom+I0mtKfQkuLi4QQuTbv3///o+OYWRkhNDQ0A/G2Nvb4+jRox+M6dq1K7p27frR/RERERERERER0ecr1plSRERERERERET0bSrwTKl312J6l0wmg5aWFqytrdGhQwcYGRl9dnJERERERERERFQyFbgodf78eZw7dw7Z2dnSE/lu3LgBVVVV2NjYYOnSpfjf//6HY8eOwdbWttATJiIiIiIiIiKi/74C377XoUMHuLq64uHDh4iJiUFMTAwePHiAVq1aoWfPnoiPj0fTpk0xevToL5EvERERERERERGVAAUuSs2ZMwfTpk2DgYGB1GZoaIjJkycjICAAOjo68Pf3R0xMTKEmSkREREREREREJUeBi1LJycl4/PhxrvYnT54gJSUFAFCqVClkZmZ+fnZERERERERERFQifdLtewMGDMCOHTvw4MEDPHjwADt27MDAgQPRsWNHAMDp06dRtWrVws6ViIiIiIiIiIhKiAIvdL58+XKMHj0aPXr0QFZW1ttB1NTg6emJBQsWAABsbGywYsWKws2UiIiIiIiIiIhKjAIXpfT09PDHH39gwYIFuHPnDgCgSpUq0NPTk2Jq165daAkSEREREREREVHJU+Db99atW4dXr15BT08P9vb2sLe3VyhIERERERERERERfUyBi1KjR4+GsbExevXqhX379iE7O/tL5EVERERERERERCVYgYtSjx49wsaNGyGTydCtWzeYmprC29sbJ06c+BL5ERERERERERFRCVTgopSamhratWuH9evX4/Hjx1iwYAHu3buH5s2bw8rK6kvkSEREREREREREJUyBFzp/l46ODtzd3fHixQvcv38fV69eLay8iIiIiIiIiIioBCvwTCkAePXqFdavX4+2bduiYsWKWLhwIX744Qdcvny5sPMjIiIiIiIiIqIS6P+1d9/RUVVtG4fvSQeSAAZI6EV6CR0E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RxcAAADwMgoMDFTnzp01depUzZ49W6+++qoqVqyozz//XBMnTtSECRNUpEgRpUqVSt26dbM1M4+XKlWqv3z++/fvq2TJkpo/f/5T59KnT/+Xj23btq2KFSumK1euaPbs2apSpYqyZ8/+z18kAADAXyCUAgAAcIBGjRqpa9euWrBggebOnasOHTrIYrFo9+7dqlOnjpo3by5JslqtOnfunAoWLPiPnr9EiRJavHixMmTIIG9v72eOcXNzU1xc3FPHixQpolKlSumbb77RggULNGXKlH/+AgEAAP4DLt8DAABwAE9PTzVu3Fj9+vXT9evXbZfH5cmTRxs3btSePXt0+vRptW/fXjdu3PjHz9+sWTOlS5dOderU0c6dOxUWFqZt27apS5cuunLliiQpR44cOnbsmM6ePavbt28rJibG9vi2bdtq9OjRMsaoXr16z+U1AwAAJEQoBQAA4CCBgYG6e/euAgIClClTJknSwIEDVaJECQUEBKhSpUry8/NT3bp1//Fzp0yZUjt27FC2bNlUv359FShQQIGBgYqKirLtnGrXrp3y5cunUqVKKX369Nq9e7ft8U2bNpWLi4uaNm0qDw+P5/J6AQAAErKYhPciBgAAACRdvHhRr776qvbv368SJUo4uhwAAJAMEUoBAADAJiYmRr/++qt69uypsLCwRLunAAAAnicu3wMAAIDN7t27lTFjRu3fv1/Tp093dDkAACAZY6cUAAAAAAAA7I6dUgAAAAAAALA7QikAAAAAAADYHaEUAAAAAAAA7I5QCgAAAAAAAHZHKAUAAAAAAAC7I5QCAAAAAACA3RFKAQAAAAAAwO4IpQAAAAAAAGB3hFIAAAAAAACwu/8DIhDgfzTDc08AAAAASUVORK5CYII=",
|
||
"text/plain": [
|
||
"<Figure size 1200x600 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Plot salvato come: .//2024-12-07_07-35_plots/variety_comparison_avg_water_need_m³_ha.png\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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ueesYeHu3bv18MMPKzAwUBMnTpS/v79cXV313Xff6d133830nGb3uUpPT1fTpk31+uuvZzk9I3zLifT0dFksFn3//fdZvr6vPirwVp5zAAChFAAgC4899pg++OADxcXF2Zxql5WyZcsqPT1dO3futH6pkqSEhASdOXPG5hSf3JCenq49e/bYfMHYsWOHJFkHKF+8eLHc3d31ww8/2Fw2fM6cOf/6/n19fdWrVy/16tVLx44dU+3atfXmm2/qkUcesa7r9u3bM13mfvv27bn2WFx9P1cfNZaamqq9e/fe0pXXChYsqAcffFArV67U/v37s6z1888/V0pKih577LFbL94BKlSokOOQNeNxdXFx+VdXsru2DunKKXI3+3IfERGh1q1b6/fff9eCBQtUq1Yt3X///Te9j8DAQC1YsECJiYnWow2z68yZM1qzZk2mwdkz9O3bVxUrVtSwYcPk4eGhAQMGWKdlbC+7du3KNF9WbZK0d+9eSbLZb2Rl0aJFevDBB/XRRx9lqvfqQKtChQpau3atLl26JBcXlxsu81pXv6au9c8//8jLy0sFCxa0tt1oP5ChevXqql69uoYMGWIdMH3mzJkaPXp0ljVUrlxZlStX1pIlSzR58uQsj4aaN2+eJN3Sa7BDhw6aO3euYmJitG3bNhljrKfuSbm3zXfq1EkDBw7UwoULVbZsWaWlpdmcuvfNN98oJSVFS5cutTm6MONUuFtVoUIFnTt37qa15+RqoRUqVJAxRuXKlctWqJXT5xwAwOl7AIAsvP766ypYsKCeffZZJSQkZJq+e/duTZ48WZL06KOPSrpylbSrTZw4UZKyHJvm35o2bZr1/8YYTZs2TS4uLnr44YclXTlixWKxKC0tzdpv3759WrJkyS3fZ1paWqZTMUqWLCk/Pz+lpKRIkurUqaOSJUtq5syZ1jZJ+v7777Vt27ZceyzCwsLk6uqqKVOm2ByF89FHHykxMfGW72fIkCEyxqhbt266ePGizbS9e/fq9ddfl6+vr5577rl/Vb+9tWvXTps2bcry6mHXO4qpZMmSatKkid5//30dPXo00/Tjx4/nuI5mzZqpcOHCGjNmjJKTk29YxyOPPCIvLy+NGzdOq1evztZRUpJUv359GWOue8W7G1m+fLm1zusZOnSo+vXrp4EDB1qvYiZJfn5+qlatmubNm6dz585Z21evXq3Nmzdnuaz169fLw8PjpmGbs7Nzpsfniy++yDS+Ubt27XTixAmb/UOGmx2t5uvrq6CgIM2dO9fmaml///23li9fbt3PZWc/kJSUpMuXL9v0qV69upycnGz2C1kZNmyYTp8+reeff95m/yVdebzGjRunatWqqV27djdcTlbCwsJUrFgxRUVFKSoqSvXq1bM5NS63tvkyZcqocePGioqK0ieffKJy5crZXMk144ijq5+TxMTEf/2jwZNPPqm4uDj98MMPmaadOXPG+pwUKFDA2nYzbdu2lbOzs0aOHJlpGzLG6OTJk5L+3XMOAPc6jpQCAGRSoUIFLVy4UB06dFCVKlUUERGhatWqKTU1VWvWrNEXX3yhbt26SZJq1qyprl276oMPPtCZM2cUGhqqdevWae7cuWrTpk2uDlgtXRmHKTo6Wl27dlVISIi+//57LVu2TIMGDbKOz9SiRQtNnDhRzZs311NPPaVjx45p+vTpqlix4g1PjbmRs2fPqnTp0nriiSdUs2ZNFSpUSCtWrNDvv/+ud955R9KVIwzGjRun7t27KzQ0VJ06dVJCQoImT56sgIAAvfLKK7nyGJQoUUIDBw7UyJEj1bx5c7Vq1Urbt2/XjBkzVLdu3WwHGNd64IEHNGHCBEVGRqpGjRrq1q2bfH199c8//2jWrFlKT0/Xd999968G0r7Wjh079Mknn2Rq9/b2VtOmTXPlPl577TUtWrRI7du319NPP63g4GCdOnVKS5cu1cyZM1WzZs0s55s+fboaNWqk6tWrq0ePHipfvrwSEhIUFxenQ4cOadOmTTmqo0iRInr33Xf17LPPqm7dunrqqafk6empTZs26cKFC5o7d661r4uLizp27Khp06bJ2dlZnTp1ytZ9NGrUSMWLF9eKFSsyHa0nSTExMZkCMUlq06aNli1bpkaNGt30CKu3335biYmJ6t27twoXLmzd3t566y21bt1aDRs2VPfu3XX69GlNmzZN1apVswmqMvz4449q2bLlTY9ceeyxx/TGG2+oe/fuatCggTZv3qwFCxZkGlsuIiJC8+bNU2RkpNatW6fGjRvr/PnzWrFihXr16qXWrVvfdL0eeeQR1a9fX88884wuXryoqVOnysPDQyNGjJCUvf3AypUr1adPH7Vv316VK1fW5cuXNX/+fDk7O980TOrcubN+//13TZ48WVu3blXn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6dOKioqSxJguyD43NzfVq1dPHTt21KFDh9S4cWM9+uijWrJkiWrUqKGIiAgtWrSIoxCQLWfOnNHevXs1YsQIBQcHa/Hixerdu7dGjx6tAwcOaNCgQfrxxx8liW0K2bZ48WItXLhQ0dHRio2N1ZEjRxQcHKyvv/5a77//viS2J2Rt586dSk1NtWn7+eefFRoaqh49eig0NFTh4eHasGGDduzYoddff10S29O9hFAKd6TChQurW7duatasmVatWqWnn35aY8eO1e+//64aNWpo8ODBioqKyrSDA66nSJEiOnXqlHbt2mVtK1mypB5//HFt3bpVe/bscWB1uFMtWrRIo0ePto7JksFisejs2bNKTU21Dsr54IMP6plnntHHH3+sY8eOXXfsDeBaZcqU0fDhw+Xp6am3335b1atX18SJE3XfffepSpUqcnV1Vb9+/ZSUlMQgsMjk2gC8cOHCat++vVq3bq3NmzdrwIABGjFihAYNGqTx48frzz//1JAhQ7Ru3ToHVYy70b59+1S6dGlVq1ZNxhgVKlRIo0aNko+Pj7744gtHl4c71JIlS3Tffffpu+++06VLlyRdOX1vz549On36tLVfcnKySpYsqWnTpumnn37Snj17eL+7h/CJGQ6X1dEElStXVuvWrSVJM2fO1JNPPqkePXro8uXL8vf317lz57RgwQK5urrau1zcBbJ6E/Px8VHRokX1+eefKyEhwdru7++vwMBAjmpBlho2bKh58+apRIkS2rt3r7W9fPnyWrdundatW2fzS17lypVVtmxZAnNcV8b+6eDBg9qyZYsuX74sSSpRooSSk5O1ceNGlS1bVgULFpR05SiqsWPHasOGDSpSpAi/HMPG1WP9zJ07V9HR0UpLS1ODBg3k5eWlNWvWyMfHR507d5YknT9/Xu3atVP16tVVp04dR5aOu0TGla+dnZ2VkpKiS5cuycnJSZcvX5aXl5cGDRqkVatWacOGDQ6uFHeiNm3aqG3bturRo4e+//57paamymKx6Mknn9TOnTv16aefSpLc3d0lSa6urnJ2dlb+/Pl5v7uHEErBoa7+MBUTE6PVq1db39S8vb2VlJSkvXv3ytfXV05OTsqXL5+cnZ21Zs0aLV++3JGl4w5l/n/wxF9++UXTp0/X1KlTdfnyZd1///3q16+fZsyYobfffls///yzjh49qnHjxik+Pl7333+/o0vHHcYYI19fX5UuXVpbt25Vhw4dNGrUKElS165d1a5dOz3++ONavXq1kpKSJF0ZADZfvnzWQAG4VsbgrqGhoXrwwQcVGhqqr776SsnJyXJ3d1ft2rX19ddfa9asWXrxxRf11Vdf6aGHHlKxYsUcXTruQBmfoV5//XUNGDBA27dv17lz56ztx48fV1JSkuLj43X27Fl9/vnnql+/vj788EM5OTnxgwwyuXabcHZ2liSFh4dr69atGjNmjCQpX74rF3G/dOmS7r//fhUpUsS+heKOl/Gjy6JFi/Twww+rW7duio6O1qVLl1SzZk21bt1aM2bM0MKFCyVJqamp+u233+Th4SE3NzdHlg474+p7cBhz1VU6Xn31VS1YsEDp6ekqXbq0OnbsaD2fuEOHDlq9erUiIiL0yy+/KCkpSZs2bZKzs/MNL0+Le9dXX32lLl26qHLlyjpy5IiKFi2qH3/8UWXKlNGcOXM0efJkHTx4UN7e3jp//ryWLFmiWrVqObps3MEOHz6soUOHaseOHWrZsqX69++v5ORkPfPMM1q8eLHuu+8+FS5cWFu3blVMTAzbE2xc/X63detWPf744+rZs6eCg4P11ltv6fTp03ruuefUtWtX7dy5U2PGjNEvv/yi4sWLa9asWWxPuKEPP/xQgwcP1g8//KBq1apZwwJJ2rVrlxo1aqSCBQsqLS1NHh4e+uOPP+Ti4uLAinGnunpfNXv2bO3cuVOlSpXSI488ogoVKmjevHnq0aOHnnvuObVv316enp7q37+/kpKStHr1aj6TI5PLly9b90kdOnTQ8uXLNXfuXLVq1Up//fWXpk6dqsWLF8vPz09FixbVtm3btGLFCt737jGEUnCIaz+gd+7cWbNnz9bFixe1fPlyzZkzRxEREdajErp06aKTJ0+qaNGimjdvnlxcXAikYCNjm0pJSVGfPn3UqFEjtW/fXgcPHlSPHj108OBBrVixQhUqVNC+fft07NgxnT9/XoGBgfL19XV0+bgLHDx40Dq23ZNPPql+/fpJkr744gsdOXJExhi1bNlSFSpUcHCluFOcOnXK5ginTZs2aeXKlTp48KAmTpwo6coH9i5dumjnzp3q27ev/vvf/8rZ2Vnx8fFyc3OTp6eno8rHXeLFF1/UxYsXNWvWLKWlpWX60W7fvn3Wgc27d++ufPny2XxRBCTbsxcGDBig2bNnq1KlSjp79qzy58+vjz76SNWqVdOSJUvUu3dvWSwW5c+fXz4+Plq5ciWfzZEtTzzxhFasWKF58+apVatWOnHihLZv365vvvlGZcqUUdOmTVWpUiVHlwk7I5SCQ3344YdasWKFSpYsqSlTpkiS4uPj9fHHH2vGjBnq1q2b3njjDUlXxkHIOCWGD1OQpHXr1qlevXrWv3/++Wf16tVLAQEBevPNN1WjRg1J0tGjR9WxY0ft379fK1euVPny5R1VMu4CGQHn+vXr9ffff+vy5ctq0KCBqlSpoqNHj+rNN9/UunXr1K5dO/Xv39/R5eIONWHCBB07dkxvvvmm9TSpxo0ba926dQoLC7M5BT01NVURERHau3evIiIi9PTTTyt//vwOrB53qqt/1JOufB5q0qSJSpcurc8++0zS/8KF1NRU/f3336pdu7bNMjKCKyDD1WHS7t27NXbsWPXu3VtBQUFatWqV3n33Xe3cuVNRUVGqUaOGjh49quPHj+vy5csKCgqyjjHFZ3NI/9tPbdy4Uf/8849cXV1VtmxZBQcHS7INppo3b84YwWBMKdjX1RnopUuXFBcXp5UrV+rAgQPWdh8fH3Xv3l29evXS/Pnz9fLLL0uSNZAyxvCmB0VHRys8PNzmyh2FCxeWk5OTli9fbv1wlZ6eLl9fX0VFRalChQqqXbu29u3b56CqcTewWCxatGiRmjVrpokTJ2r8+PGqWbOmZs6cKV9fXw0ePFh169bVN998oxEjRji6XNyhChQooGeeeUYuLi5KSUmRi4uLvvvuOzVv3lw7d+7Ul19+aR1vw9XVVfPmzVPx4sW1ePFipaSkOLh63InS09OtgdSePXt09uxZ5cuXT23bttWmTZsUExMj6X/jTB04cEBjxozRn3/+abMcAilk+OqrryT9b5v57LPPrGNH+fv7S7pyZdn+/furUqVK6tixozZt2iRfX1/VqFFDtWvXtobufDZHhoyxEx988EG9++67evbZZ9W9e3cNGzZM0pUxpsLCwvTss8/q66+/5uIwkAxgJ9u3bzcXLlwwxhgzYsQI8/fff5s9e/aYl156yRQqVMhMnz7dpn98fLwZNGiQefzxx016erojSsYd7ujRo8YYYw4ePGht27hxo6lWrZqpXbu2OX/+vDHGWLefw4cPmxYtWpidO3fav1jcNTZv3mxKlChhZs+ebc6ePWuSkpLMqFGjTL58+cysWbOMMcYcOHDAREREmLCwMHPy5EkHV4w72c8//2z69Oljtm3bZowx5uTJk6ZRo0amQYMG5ptvvjFpaWnWvikpKebQoUOOKhV3sKu3k2HDhpnHHnvMxMTEGGOMiYuLM40bNzbt2rUzy5YtM8YYs2/fPtOqVSvTsGFDc/nyZYfUjDvbBx98YOrXr2/S0tKs28i8efNMaGio8fT0NIcPH7bp/+uvv5o2bdqYYsWKmd27dzuiZNzBrt7PbN682Xh5eZkZM2aY5ORks337djN69GhTpkwZM3z4cGu/5s2bm4CAAHP27FkHVIw7CaEUbrv09HSzefNmY7FYzIcffmh69+5t8ufPb7Zu3WqMMWb37t3mpZdeMoGBgWbmzJk28546dcoaKBBMISs7duwwFovFvPfee9a2jRs3msDAQFO3bl1rEJqx/fDhHNe6dt8SExNj7r//fnP06FGbaSNGjDAFChSwhppHjx61BqPA1aFBamqq9f+zZs0yFSpUMK+88orZvn27McaYEydOmIYNG5oGDRqYZcuW2cwL3MiAAQNMyZIlzZdffmmOHz9ubV+5cqVp2bKlKV68uPH39zdVq1Y1wcHB1m2RbQzXio+Pt34m+v33363tS5YsMcHBwaZRo0Zm//79NvOsXLnSvP7663yWgtWUKVMy7V++/PJLU7VqVXPmzBlrW0JCghkxYoQJDg62/khjjOGHGBhjCKVgR+PHjzfu7u6mQIECJi4uzhjzvy+DO3bssAZTH3zwQaZ5CaRwI/369TP58+c3H330kbUtI5iqX7++9YgpIEPGB6irP0idOHHCpKenm2+++cY4OTlZfyVOSUkxxhhz5MgRExAQYBYvXmz/gnFX2Ldvnzl37pwxxpivvvrKjBw50hhjzOTJk02tWrXMiy++aBNMhYaGmqpVq5offvjBYTXj7vHTTz+ZMmXKmLVr1xpjjElOTjb79u0z0dHR5tixYyY1NdXExcWZqVOnmqVLl1qDg0uXLjmybNxhBgwYYH1fM8aY2NhYY7FYzOTJk61tixYtMg899JBp0qSJOXDgQJbLIZjCtm3bTL169TKdgbBixQrj4+Nj/vjjD5v2TZs2mfz585vly5fbs0zcBRhTCrddWlqaJCkgIECXLl1ScnKyNm/erKSkJOvYCJUqVVLv3r31yCOP6LXXXtPXX39ts4yrB/XEvc38/7hk69atU1RUlNLT0/X222/r9ddfV8+ePTV79mxJUs2aNRUVFaXdu3erZcuWjiwZdyAnJyft379fQ4YMkSQtXrxYjzzyiE6ePKkHH3xQDRo0UN++fXXs2DHrAJyurq5yd3dn3AxkKTk5WR07dlTdunU1f/58tW3b1nolxhdffFFdu3bVzz//rOnTp2vHjh0qXry4Fi1apDJlyqhy5coOrh53A4vFouLFi6tgwYLauHGjhgwZooceekjPP/+8mjRpom3btuk///mP+vTpo5YtW8rZ2VlpaWnss2C1Z88eTZ8+XQ899JB1HJ9y5cpp4MCBGjFihKZNmyZJateunV544QU5OTmpe/fuWY7FydhkqFixolasWKGKFStq7dq1Sk9Pl3RlfOCiRYvq888/V0JCgrW/v7+/AgMDrf0AK0enYsi7rj2U8/Lly+by5cvmzTffNE5OTmbKlCkmKSnJps+RI0fMxIkT+fUFWco4Ym7RokWmRIkSZsCAAWbz5s3W6cOHDzfOzs42R0xt3rzZ7Nq1y+614s6Wnp5uxo8fb2rWrGlatWpl8uXLZ+bNm2edPmfOHBMaGmpatWpldu3aZXbs2GGGDh1q/Pz8Mp3OAGQ4dOiQ8fPzM25ubub99983xlw5miXDpEmTTK1atcwrr7xiPYWd06qQlayGLvjjjz9MQECAadKkiSlUqJDp0aOHWbhwofnll19MYGCgWbJkiaPKxV1k/fr15r777jP169e3nt556NAhM3ToUFO4cGEzdepUa9/Fixeb6tWrmz59+jiqXNwFjh8/bqpUqWJq165tfU97//33TaFChcyrr75qfvrpJ3PkyBHTv39/4+vrazMWLGAMp+/hNrn6Q/Zvv/1mfvjhBxMbG2ttGzZsmHFycjIzZsywBlPdunWzfkg3hsOCkbU1a9YYDw8P8/7772d5SsLw4cNN/vz5Mw2cD2QlIiLCWCwW07x5c5v29PR0M3fuXNOkSRNjsVhMlSpVTEBAgFm/fr2DKsXd4OjRo8bDw8MUL17c/Oc//7Geynf1qTKTJ082ZcqUMf379zepqamcno5Mrv4Mdfz4cXP27FlreLB69Wrz3nvvmWXLllkHB7548aKpVauW+eqrrxxRLu5C69evN5UqVTL/+c9/rNvWwYMHrcHUtGnTrH1XrVrFZ3Lc0KVLl8w333xjgoKCbC6uMGvWLFOzZk1TrFgxU6VKFVOmTBmzYcMGB1eLO5HFmP8/Fwa4DQYMGKBvvvlGFy9eVMmSJZUvXz79/PPPslgsGjVqlEaPHq3OnTtr+/btOnr0qHbs2MFh5siSMUYWi0VjxoxRXFycli5dap2WlpZmcxh5v379NHfuXO3atUseHh6OKBd3uEuXLslisWjAgAE6ePCgjhw5ouDgYL311lsqUKCAtV96erp++eUXFSpUSL6+vvL19XVg1bgbHDx4UCkpKWrZsqUKFSqk2NhYFSxYUKmpqdZTQT/55BM1aNBA5cuXd3C1uNOkp6fLyenK6Brjx4/X0qVLlZqaKm9vb82fP19FixbV5cuXlS9fPqWkpOjs2bOKiIjQyZMntWbNGk6pQpYyPkNd/feff/6pJ598UiVKlNBPP/0kFxcXHTp0SB988IGmTp2qAQMGqH///tZ5rv2sBVwtJSVFq1atUr9+/VS0aFGtXr1azs7O2rVrl06dOqXz588rMDCQz1HIEqEUcs3VH6QkadKkSRo9erSWLVumevXqaezYsRo8eLCio6PVrFkzSdLUqVO1bt06ubi46P3335eLiwtverihV155RRs2bNCqVatstjfpyjhTderUkZOTk44fP64SJUo4qErcqa79YJ7RNmLECP3www/6z3/+YxNMHT58WL6+vpm2NUD63/Z0/Phx6/tX8eLFlZ6ers2bN6tjx47y8PBQTEyMChYsqHfffVfnz5+3jmUGXO3q/dPgwYP10UcfafTo0SpWrJgGDRokV1dXfffddypdurSSk5P19ttva9WqVbpw4YJ+/vlnPkMhS1d/Pk9PT1dqaqrc3d0lSX/++aeeeOIJlSxZ0hpMHT58WG+//ba2bNmi5cuXS2JsV/xPxn7qjz/+0B9//CGLxaL69eurRo0aNsGUp6enVq9ezecnZAtbCXLF8ePH5eTkZB3UPC0tTX/99ZfefPNNhYSEaOnSpRo7dqzef/99NWvWTGfPnpUk9e3bVx988IFmz54tFxcXXb58mQ9TsMrIzA8dOmT9f6lSpbRly5ZMg24mJydr/vz5+vbbbyWJQAqZZHyQiomJUd++fTVkyBCtWrVKFotF/fv3V/PmzbVu3ToNGDBAiYmJGj58uJ588kldvHjR0aXjDpSxPX377bdq2bKlQkNDVb9+fcXExMjJyUk1a9bUZ599pnPnzqly5crq1KmTXn/9dbVq1crRpeMOs3v3bkn/++K/fPlyfffdd1q8eLGeffZZubi46OjRozp16pQaN26sQ4cOyd3dXWFhYWrRooV+/fVXPkMhS1cHUhMnTtRTTz2lkJAQjR8/XuvXr1etWrW0ePFiHTt2TKGhobp06ZJKlSqlwYMHa/ny5YRRsJHxvvfll1+qVatWmjNnjqKiotSkSRPFxMTIzc1NDz30kCZMmKBz586pVq1aDGqO7LH7CYPIc0aMGGEKFChg9u7da4y5MhZCWlqaadSokXn//fdNdHS0KVSokJkxY4Yx5spYUe+8846ZP3++zXIYVwNXy9gevv76a1O9enUzZ84c67R69eqZ6tWrm+3bt5vz58+b5ORkM3DgQOPv72/27dvnoIpxN/jmm2+Mu7u7adq0qalTp47x9PQ0CxYsMMYYc+HCBTN69GhTo0YNU7ZsWePj42N+++03B1eMO9k333xjChUqZMaNG2d++eUX88wzz5iCBQvavL8lJCSY3r17m+eff978/fffDqwWd6LHH3/cDB061KZtxYoV5o033jDGGPP9998bLy8vM336dLN582bj5eVlgoKCzJ49e2zmYcwfXO3az9QDBgwwxYsXN4MHDzYvvPCCqVy5smnRooX54YcfjDHGbNiwwdx3332mQoUKNuN18tkc1/rpp59MiRIlzAcffGCMuTI+mcViMS4uLmbx4sXGmCvjKH799demfv36fC5HthBK4V/75ZdfTHh4uKlQoYL1Q9Lly5fNwIEDzYMPPmiKFCli3nvvPWv/+Ph48+ijj5opU6Y4qmTcJb799lvj7u5uJk+ebPNlbufOnaZRo0amePHipkaNGiY0NNSUKFGCwRNxQydOnDDTp0+3fpDau3evee2114zFYjGffPKJMebKldJ+++03ExUVlelLH3C1/fv3myZNmph33nnHGGPMgQMHTPny5U3VqlVNvnz5zMcff2wzYHXGYMLA1X799VfrQPjx8fHW9kOHDpmUlBTz8MMPm8GDBxtjjElKSjINGjQwTk5OplWrVsYYQgNcX8b+Z9OmTaZSpUo2FxyKjY01rVq1Mm3atDEHDx406enpJi4uznTo0IGAEzc0cuRIM2TIEGPMlcHxy5QpY55++mnTo0cPky9fPhMdHW2MuRJMZVzsA7gZQincss8//9z6/3Xr1pmmTZuacuXKmd27dxtjjPn9999NqVKlTO3atc2WLVtMWlqaOXz4sHnkkUdM/fr1edPDDZ07d840bdrUDBo06Lp9Zs+ebcaOHWumTp1q3e6ArGzevNkUKVLEVK1a1fqByZgrV7bKCKYyjpgCricjADh9+rRJTU01b775pjl16pQ5cuSICQwMNM8884xJTU017du3N56enuajjz4iNEC2TJkyxbRt29bmx5X9+/ebsmXLmuXLlxtjjDl16pTp0KGD+f33320CTyBD//79zcCBA23atmzZYry9vc3q1att2leuXGmKFi1q3b6uxmd0ZMh4D1u+fLnZsmWL2blzp/n111/N2bNnTf369U3Pnj2NMVeutm6xWIzFYjFLly51ZMm4CzGmFG7JDz/8oA4dOmj06NGSpLp16+rNN99UpUqV9PDDD2vXrl2qU6eOFi5cqCNHjqhLly6qVKmS2rdvr+PHj1uvyJAxBhVwreTkZO3cuVPVqlWTJJtz0s3/jy/VvXt39e/fX3369OEqVrghFxcXtWvXTrt379bp06clXdmOvLy81L9/fw0YMEBdunTR4sWLHVwp7mQWi0VRUVEKDg7WxYsX9fTTT8vT01NTp05V+fLlNXHiRLm4uMjf319OTk7q37+/kpKSHF027kDmmusM+fv767ffftO0adP0119/SZLKlCmjkiVLasCAAfriiy/Utm1bHT58WLVr17YZxxOQpMTERB09evT/2rvv+Brv/o/jr5MlIgkaI0pr1KgVmxZVjda6bbVnGxoxo4hRtXcVrUhTTYlNbSptzZhBEFE1isZepZSINJHz/f3hl3Mnpffd9i4neD//cy2fy+N6nHN5n+/382XLli1MnDjRtv3evXtYLBYuXLhg+zPAG2+8wYsvvsjevXsfuJZ6k0kqi8XC9u3badKkCTExMRQuXJiqVaty/PhxkpKS6NOnDwBZs2alVatWDBkyhMKFC9u5annSKJSSv6VmzZqEhIQwatQoRo8eDdwPpsaMGUPRokV56623OHHiBDVq1GDTpk0MHTqUbt26MWjQIHbv3q2GnPJfeXh44OXlxb59+wDSvYDv27ePsLAw27G/f7kX+b1ixYoxYMAAWrZsiZ+fH5s2bbI1cPXy8qJv374MGzaM4sWL27lSycguXLjA/Pnz6devH56ennh7ewNw7Ngx8ubNi6enJ3B/sY85c+bw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1q3LpUuXuHTpElWrVqVLly4sXLiQ3377zXat+fPnkzdvXnx9fR/dP4yIiIjI/1MoJSIiIvKIvPvuu5w6dYqtW7fats2ePZvmzZuTP39++vfvT9myZSlUqBC9evWibt26fPXVV+muUaRIESZNmkSxYsUoVqzYA3/HkiVLsFqthIWFUbp0aYoXL87s2bM5e/YskZGRuLu7kzlzZjJlyoS3tzfe3t64uLjQrFkzAFavXm27Vnh4OJ07d8ZisTyifxERERGRf1MoJSIiIvKIvPzyy1StWpVZs2YBcPLkSbZv346fnx8pKSmMHj2a0qVL89xzz+Hu7s53333H2bNn012jQoUK//HviI2N5eTJk3h4eODu7o67uzvPPfcciYmJnDp16g/Pc3V1pUOHDrbaDhw4wOHDh+ncufP/dtMiIiIif5KTvQsQEREReZr5+fnRq1cvZsyYwezZs3nppZd4/fXXmThxIp988gnTpk2jdOnSZMmShcDAQFsz81RZsmT5j9ePj4+nQoUKLFiw4IF9OXPm/I/ndunShbJly3L+/Hlmz56Nr68v+fPn/+s3KSIiIvI3KJQSEREReYRatmxJnz59WLhwIXPnziUgIACLxcLOnTtp3Lgx7du3B8BqtfLjjz9SokSJv3T98uXLs2TJEnLlyoWnp+dDj3FxcSElJeWB7aVLl6ZixYp88cUXLFy4kODg4L9+gyIiIiJ/k6bviYiIiDxC7u7utGrVisGDB3Pp0iXb9LgiRYqwYcMGdu3axdGjR/H39+fKlSt/+frt2rUjR44cNG7cmO3btxMXF0dkZCS9e/fm/PnzABQoUIBDhw5x/Phxrl27RnJysu38Ll26MGHCBIwxNG3a9B+5ZxEREZE/Q6GUiIiIyCPm5+fHjRs3qFOnDs8//zwAQ4cOpXz58tSpU4eaNWvi7e1NkyZN/vK13dzc2LZtGy+++CLNmjWjePHi+Pn5kZiYaBs51bVrV4oVK0bFihXJmTMnO3futJ3fpk0bnJycaNOmDa6urv/I/YqIiIj8GRaTdo1iEREREXmmnD59mpdeeono6GjKly9v73JERETkGaJQSkREROQZlJyczPXr1+nfvz9xcXHpRk+JiIiIPA6aviciIiLyDNq5cyd58uQhOjqa0NBQe5cjIiIizyCNlBIRERERERERkcdOI6VEREREREREROSxUyglIiIiIiIiIiKPnUIpERERERERERF57BRKiYiIiIiIiIjIY6dQSkREREREREREHjuFUiIiIiIiIiIi8tgplBIRERERERERkcdOoZSIiIiIiIiIiDx2CqVEREREREREROSx+z/Ng4n3nxVd9gAAAABJRU5ErkJggg==",
|
||
"text/plain": [
|
||
"<Figure size 1200x600 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Plot salvato come: .//2024-12-07_07-35_plots/variety_comparison_oil_efficiency_l_kg.png\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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bdvW+ktJly5dbJa5ubmpY8eO1vXtec7/7ciRIzp+/LhmzZqlGjVq2NwiIyMl/W8S8jxFfd3y1K1bVyEhIfluF7s6lr12795tEywUxe+//y5jjF5++eV82543x9W/t/3f76O80CBv38n7hfZStQwYMEDu7u6aN2+epPPhxxdffKEHHnigSHM2mX/N5XY57H3/FMXy5cvVp0+ffO1169bNt33e3t6X/Bxq3bq11q1bpzVr1iglJUWLFy9WzZo1L1pDt27ddOjQIf3+++9at26dLBaLOnfubBNWfffdd+ratatNyPz9998rJCREnp6eqlKlimrUqKGRI0dKUpHeU7t27VJCQkK+fSpvDjB73k95r/Ol9onTp09r1KhR1jmsfHx8VKNGDR0/ftymZnveJ/+uq6j7ibu7u8aPH6+vvvpKvr6+6t69uyZMmKC0tDRr/+DgYPXr109jxoyRj4+P7rzzTs2dOzfffIj/lhc4Xex7sijBVUH69+8vFxcXLVy4UNL5537RokXq3bu39ft5165dks4Hdv9+fd99912dPXv2kvtI7969Va1aNWsQJUkff/yxWrdurebNm1vbSvq7tDif9UWxa9cuZWRkqGbNmvnGPXnypHXM4r7mAGAvrr4HAMXk5eWl2rVra8uWLXatV9RJh11dXe1qL84vvd9995369u2r7t276+2331atWrVUvnx5zZ071+YH8DxFPdrm3nvvVbdu3bR06VJ98803mjhxosaPH69PP/20WJfOLmybnenGG29UfHy8jh8/ru+//15dunSxLuvSpYvmzJmjc+fOae3atQoKCrIeqWDvc/5veX/VHzRokCIiIgrs06pVK5v79hwldSXL2/bnnntOoaGhBfb5d+hbUu+XqlWr6vbbb9e8efM0atQoLV68WGfPnr3kVQolqXr16pcMUJ1p79692r59e77JwSXHfA7lyTua8Ntvv9WePXvUrl07eXp6qlu3bnrrrbd08uRJbdq0Sa+//rp1nd27d+vmm29W06ZNNXnyZNWrV09ubm768ssvNWXKlEseBSOd369uueUWPf/88wUuzwvz81zs/ZT3Ovv4+Fz0MZ944gnNnTtXTz/9tDp37ixvb29ZLBYNHDiwSDUX5HLe508//bTuuOMOLVu2TF9//bVefvllxcbGatWqVWrbtq0sFosWL16sH374Qf/973/19ddfa8iQIXrzzTf1ww8/qFKlSgWO26xZM0nSL7/8orCwsAL75E1uX5SjcC9Uu3ZtdevWTZ988olGjhypH374QampqRo/fry1T95zOXHiRLVp06bAcQqrPU/58uV17733avbs2UpPT1dqaqp27dqlCRMmWPuUxndpcT7riyI3N1c1a9a0Buz/lvcHoOK+5gBgL0IpALgMt99+u2bNmqXk5GSbU+0K4u/vr9zcXO3atcv6g7okpaen6/jx4/L39y/R2nJzc7Vnzx6bX6h27twpSdZTdJYsWSIPDw99/fXXNpe7njt37mU/fq1atTR06FANHTpUhw8fVrt27fT666+rd+/e1m3dsWNHvsvP79ixo8Seiwsf58KjxrKzs7V3797LuhrajTfeqJkzZ2rlypXatGmThg8fbl3WpUsXnT59WsuXL9eePXvUr18/6zJ7nvOCAswaNWqocuXKysnJKfGruTlSo0aN7A50817D8uXLl9i2N2rUSJK0ZcuWfIHWv4WHh+vOO+/UTz/9pHnz5qlt27Y2R0oUpmnTppo3b54yMjKsRxRdjpJ+/yxfvlze3t42p5g6Q/369VW/fn1999132rNnj7p16yZJ6t69u6Kjo7Vo0SLl5OSoe/fu1nX++9//6uzZs/r8889tjorLOwXpQoX9QaBRo0Y6efJkiexTe/fulYuLS74g698WL16siIgIvfnmm9a2M2fO2FwVNK82e98neezdTxo1aqRnn31Wzz77rHbt2qU2bdrozTff1H/+8x9rnxtuuEE33HCDXn/9dc2fP18PPPCAFixYoIcffrjAGm688UZVqVJF8+fP14svvlhgmPnhhx9KOv99aq8BAwZo6NCh2rFjhxYuXKiKFSvqjjvusNkm6fwfkS7n9X3ggQcUHx+vhQsXau/evbJYLLrvvvusy0vju9Sez/qi/rFLOv+crFy5Ul27di1SOGbvaw4A9uL0PQC4DM8//7w8PT318MMPKz09Pd/y3bt3a+rUqZKk2267TZIUFxdn02fy5MmSVOCpM5dr+vTp1v8bYzR9+nSVL19eN998s6TzRztYLBbl5ORY+/3xxx9atmxZsR8zJycn3+kKNWvWVO3ata2H/bdv3141a9ZUfHy8zakAX331lX777bcSey5CQkLk5uamt956y+YIjvfee08ZGRmX9Th5v8BPnjxZ586dszlSKiAgQLVq1bL+Jf3CX/btec49PT3z/ZLq6uqqfv36acmSJQX+snrkyJFib5Mj9evXTz///LOWLl2ab1lhR9vUrFlTN910k9555x0dOnQo3/LibHuvXr1UuXJlxcbG6syZMxeto3fv3vLx8dH48eO1Zs2aIh0lJUmdO3eWMUYbN260u76ClPT758svv1SvXr1Urpzz/1bZrVs3rVq1SuvXr7eGUm3atFHlypU1btw4VahQQUFBQdb+eSHHha9VRkZGgWFAQe8n6fyRncnJyfr666/zLTt+/Lj++eefIte/ceNGNW/e/JLho6ura779a9q0aTafC1Lx3id5irqfnDp1Kt++36hRI1WuXNm63t9//53v8fKOPLrY6VwVK1bUc889px07dujFF1/Mt3z58uV6//33FRoaqhtuuOGi21OQfv36ydXVVR9//LEWLVqk22+/XZ6entblQUFBatSokSZNmqSTJ0/mW7+onxldu3ZVQECA/vOf/2jhwoUKDg5W3bp1rctL47vUns/6vG0uaP/+t3vvvVc5OTkaO3ZsvmX//POPdYzivuYAYC/n//QBAFexRo0aaf78+RowYICaNWum8PBwtWjRQtnZ2Vq3bp0WLVqkwYMHSzo/x0pERIRmzZql48ePKzg4WOvXr9cHH3ygsLCwEp1EWjo/D1NCQoIiIiLUqVMnffXVV1q+fLlGjhxpPTy/T58+mjx5sm699Vbdf//9Onz4sGbMmKHGjRtbT6mw14kTJ1S3bl3dc889at26tSpVqqSVK1fqp59+sh4VUL58eY0fP16RkZEKDg7Wfffdp/T0dE2dOlUBAQF65plnSuQ5qFGjhmJiYjRmzBjdeuut6tu3r3bs2KG3335bHTp0KHKoUJD69eurXr16Sk5OVkBAgGrXrm2zvEuXLlqyZIksFou6du1qbbfnOQ8KCtLKlSs1efJk1a5dWw0aNFCnTp00btw4rV69Wp06dVJUVJQCAwN17NgxpaSkaOXKlTp27Fixt0s6f0TdhUdH5PH19dUtt9xyWWPnGT58uBYvXqz+/ftryJAhCgoK0rFjx/T5558rPj5erVu3LnC9GTNm6MYbb1TLli0VFRWlhg0bKj09XcnJyfrzzz/1888/21WHl5eXpkyZoocfflgdOnTQ/fffr6pVq+rnn3/WqVOn9MEHH1j7li9fXgMHDtT06dPl6upqc6TExdx4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AABwOEIpAAAAAAAAOByhFAAAAAAAAByOUAoAAAAAAAAORygFAAAAAAAAhyOUAgAAAAAAgMOVK85K586dU1pamk6dOqUaNWqoWrVqJV0XAAAAAAAAyrAiHyl14sQJzZw5U8HBwfLy8lJAQICaNWumGjVqyN/fX1FRUfrpp59Ks1YAAAAAAACUEUUKpSZPnqyAgADNnTtXISEhWrZsmTZv3qydO3cqOTlZo0eP1j///KNevXrp1ltv1a5du0q7bgAAAAAAAFzFinT63k8//aRvv/1WzZs3L3B5x44dNWTIEMXHx2vu3Ln67rvv1KRJkxItFAAAAAAAAGVHkUKpjz/+uEiDubu767HHHrusggAAAAAAAFD22XX1vXPnzqlcuXLasmVLadUDAAAAAACAa4BdoVT58uVVv3595eTklFY9AAAAAAAAuAbYFUpJ0osvvqiRI0fq2LFjpVEPAJSaGTNmKCAgQB4eHurUqZPWr19faN+tW7eqX79+CggIkMViUVxcXL4+M2fOVKtWreTl5SUvLy917txZX331VSluAQAAAACUHUWaU+pC06dP1++//67atWvL399fnp6eNstTUlJKrDgAKCkLFy5UdHS04uPj1alTJ8XFxSk0NFQ7duxQzZo18/U/deqUGjZsqP79++uZZ54pcMy6detq3LhxatKkiYwx+uCDD3TnnXdq06ZNhV4YAgAAAABwnt2hVFhYWCmUAQCla/LkyYqKilJkZKQkKT4+XsuXL9ecOXM0YsSIfP07dOigDh06SFKByyXpjjvusLn/+uuva+bMmfrhhx8IpQAAAADgEuwOpUaPHl0adQBAqcnOztbGjRsVExNjbXNxcVFISIiSk5NL5DFycnK0aNEiZWVlqXPnziUyJgAAAACUZXbPKSVJx48f17vvvquYmBjr3FIpKSk6cOBAiRYHACXh6NGjysnJka+vr027r6+v0tLSLmvsX3/9VZUqVZK7u7see+wxLV26VIGBgZc1JgAAAABcC+w+UuqXX35RSEiIvL299ccffygqKkrVqlXTp59+qtTUVH344YelUScAXJGuv/56bd68WRkZGVq8eLEiIiK0Zs0agikAAAAAuAS7j5SKjo7W4MGDtWvXLnl4eFjbb7vtNn377bclWhwAlAQfHx+5uroqPT3dpj09PV1+fn6XNbabm5saN26soKAgxcbGqnXr1po6depljQkAAAAA1wK7Q6mffvpJjz76aL72OnXqXPZpMABQGtzc3BQUFKTExERrW25urhITE0t8/qfc3FydPXu2RMcEAAAAgLLI7tP33N3dlZmZma99586dqlGjRokUBQAlLTo6WhEREWrfvr06duyouLg4ZWVlWa/GFx4erjp16ig2NlbS+cnRt23bZv3/gQMHtHnzZlWqVEmNGzeWJMXExKh3796qX7++Tpw4ofnz5yspKUlff/21czYSAAAAAK4idodSffv21auvvqpPPvlEkmSxWJSamqoXXnhB/fr1K/ECAaAkDBgwQEeOHNGoUaOUlpamNm3aKCEhwTr5eWpqqlxc/nfw6MGDB9W2bVvr/UmTJmnSpEkKDg5WUlKSJOnw4cMKDw/XoUOH5O3trVatWunrr7/WLbfc4tBtAwAAAICrkcUYY+xZISMjQ/fcc482bNigEydOqHbt2kpLS1Pnzp315ZdfytPTs7RqdZjMzEx5e3srIyNDXl5ezi4HAMqsgBHLnV0CSskf4/o4uwQAAAA4SVFzFbuPlPL29taKFSv0/fff6+eff9bJkyfVrl07hYSEXFbBAAAAAAAAuHbYHUp9+OGHGjBggLp27aquXbta27Ozs7VgwQKFh4eXaIEAAAAAAAAoe+w+fc/V1VWHDh1SzZo1bdr/+usv1axZUzk5OSVaoDNw+h5QOE63KruccboV+1PZxel7AAAA166i5iouhS4phDFGFoslX/uff/4pb29ve4cDAAAAAADANajIp++1bdtWFotFFotFN998s8qV+9+qOTk52rt3r2699dZSKRIAAAAAAABlS5FDqbCwMEnS5s2bFRoaqkqVKlmXubm5KSAgQP369SvxAgEAAAAAAFD2FDmUGj16tCQpICBAAwYMkIeHR6kVBQAAAAAAgLLN7qvvRURElEYdAAAAAAAAuIbYHUrl5ORoypQp+uSTT5Samqrs7Gyb5ceOHSux4gAAAAAAAFA22X31vTFjxmjy5MkaMGCAMjIyFB0drbvvvlsuLi565ZVXSqFEAAAAAAAAlDV2h1Lz5s3T7Nmz9eyzz6pcuXK677779O6772rUqFH64YcfSqNGAAAAAAAAlDF2h1JpaWlq2bKlJKlSpUrKyMiQJN1+++1avnx5sYqYMWOGAgIC5OHhoU6dOmn9+vWF9t26dav69eungIAAWSwW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LU3GGN1yyy1q0qSJJPYnFF3evrJkyRLFxMTozJkz+ueffxQcHKxJkyapTp06zi4RjmaAK9SoUaNMrVq1zJIlS8yxY8dMt27dTKNGjcyCBQvMmTNnnF0erjK//vqr8fHxMW+//bY5c+aM2bFjh3nttddM/fr1zdixY51dHq4COTk51v9/9913xtPT07z11ltm69at5uOPPzbBwcHm9ttvN2vWrHFilbga7dy503To0MG8/fbbxhhj0tPTTd26dU3Tpk1N5cqVzbJly4wxxuTm5jqzTFxFpkyZYurWrWs2bNhgjDFm3rx5xmKxmJtvvtmsXLnS2o99CvZ49tlnjY+Pj+nevbupXLmy6dChg5k0aZJ1P2J/QlGtWbPGVKxY0cyaNcskJSWZhIQEU6dOHdO9e3eTlpZmjGF/upYwpxSuSBs3btSKFSv0/vvv6+6771ZycrJ+/fVXVa1aVQ899JCWLVumU6dOObtMXEV27dqlmjVr6v7775e7u7uuu+46RUVFaciQIVq2bJl2797t7BJxhVq1apUk2Zy28M0336hbt2564oknFBgYqIEDB2r06NH6+++/tXDhQknM6YKic3d3V8eOHTVw4ED9+eef6tatm2677TYtW7ZMrVq1Unh4uBYvXsxRCCiS48ePa+/evXrllVcUFBSkJUuW6PHHH9drr72m1NRUjRw5UitWrJAk9ikU2ZIlSzR//nwlJCQoKSlJBw8eVFBQkD777DO98847ktifULBdu3YpOzvbpu27775TcHCwoqKiFBwcrNDQUKWkpGjnzp16/vnnJbE/XUsIpXBFqly5sgYPHqxevXpp9erVGjJkiMaNG6effvpJrVq10osvvqiFCxfm+4ADCuPl5aVjx47p999/t7bVrFlTd911l7Zt26Y9e/Y4sTpcqRYvXqzXXnvNOidLHovFohMnTig7O9s6KWePHj300EMP6f3339fhw4cLnXsD+Lf69etr9OjRqlq1qiZOnKiWLVtq8uTJuv7669WsWTO5ubnpueeeU2ZmJpPAIp9/B+CVK1dW//79deedd+rXX3/ViBEj9Morr2jkyJGaMGGCNm3apJdeeknr1693UsW4Gv3xxx+qW7euWrRoIWOMKlWqpLFjx8rPz0+LFi1ydnm4Qi1btkzXX3+9vvzyS507d07S+dP39uzZo7///tva78yZM6pZs6amT5+ub7/9Vnv27OH77hrCT8xwuoKOJrjuuut05513SpLi4+N17733KioqSv/884/q1aunkydPat68eXJzc3N0ubgKFPQl5ufnpypVquiTTz5Renq6tb1evXpq2rQpR7WgQF27dtWHH36oGjVqaO/evdb2hg0bav369Vq/fr3NX/Kuu+46+fv7E5ijUHmfT/v379fWrVv1zz//SJJq1KihM2fOaPPmzfL395enp6ek80dRjRs3TikpKfLy8uIvx7Bx4Vw/H3zwgRISEpSTk6MuXbrIx8dH69atk5+fnx544AFJUlZWlvr166eWLVuqffv2ziwdV4m8K1+7urrq7NmzOnfunFxcXPTPP//Ix8dHI0eO1OrVq5WSkuLkSnElCgsL0913362oqCh99dVXys7OlsVi0b333qtdu3bp448/liR5eHhIktzc3OTq6qoKFSrwfXcNIZSCU134w1RiYqLWrFlj/VLz9fVVZmam9u7dq1q1asnFxUXlypWTq6ur1q1bp2+++caZpeMKZf7/5Ilr167VjBkzNG3aNP3zzz9q3ry5nnvuOb399tuaOHGivvvuOx06dEjjx49XWlqamjdv7uzScYUxxqhWrVqqW7eutm3bpgEDBmjs2LGSpIiICPXr10933XWX1qxZo8zMTEnnJ4AtV66cNVAA/i1vctfg4GD16NFDwcHBWrp0qc6cOSMPDw+1a9dOn332mWbPnq0nn3xSS5cuVc+ePVWtWjVnl44rUN7PUM8//7xGjBihHTt26OTJk9b2I0eOKDMzU2lpaTpx4oQ++eQTde7cWe+++65cXFz4gwzy+fc+4erqKkkKDQ3Vtm3bFBsbK0kqV+78RdzPnTun5s2by8vLy7GF4oqX90eXxYsX6+abb9bgwYOVkJCgc+fOqXXr1rrzzjv19ttva/78+ZKk7Oxs/fDDD/L29pa7u7szS4eDcfU9OI254Codzz77rObNm6fc3FzVrVtXAwcOtJ5PPGDAAK1Zs0bh4eFau3atMjMz9fPPP8vV1fWil6fFtWvp0qUaNGiQrrvuOh08eFBVqlTRihUrVL9+fc2dO1dTp07V/v375evrq6ysLC1btkxt27Z1dtm4gh04cEAvv/yydu7cqTvuuEMvvPCCzpw5o4ceekhLlizR9ddfr8qVK2vbtm1KTExkf4KNC7/vtm3bprvuukuPPPKIgoKC9MYbb+jvv//Wo48+qoiICO3atUuxsbFau3atqlevrtmzZ7M/4aLeffddvfjii/r666/VokULa1ggSb///rtuvPFGeXp6KicnR97e3tqwYYPKly/vxIpxpbrws2rOnDnatWuX6tSpo969e6tRo0b68MMPFRUVpUcffVT9+/dX1apV9cILLygzM1Nr1qzhZ3Lk888//1g/kwYMGKBvvvlGH3zwgfr27atffvlF06ZN05IlS1S7dm1VqVJFv/32m1auXMn33jWGUApO8e8f0B944AHNmTNHp0+f1jfffKO5c+cqPDzcelTCoEGD9Ndff6lKlSr68MMPVb58eQIp2Mjbp86ePathw4bpxhtvVP/+/bV//35FRUVp//79WrlypRo1aqQ//vhDhw8fVlZWlpo2bapatWo5u3xcBfbv32+d2+7ee+/Vc889J0latGiRDh48KGOM7rjjDjVq1MjJleJKcezYMZsjnH7++WetWrVK+/fv1+TJkyWd/4F90KBB2rVrl5544gk9+OCDcnV1VVpamtzd3VW1alVnlY+rxJNPPqnTp09r9uzZysnJyfdHuz/++MM6sXlkZKTKlStn84siINmevTBixAjNmTNHTZo00YkTJ1ShQgW99957atGihZYtW6bHH39cFotFFSpUkJ+fn1atWsXP5iiSe+65RytXrtSHH36ovn376ujRo9qxY4f++9//qn79+rrlllvUpEkTZ5cJByOUglO9++67WrlypWrWrKm33npLkpSWlqb3339fb7/9tgYPHqxXX31V0vl5EPJOieGHKUjS+vXr1bFjR+v97777TkOHDlVAQIBef/11tWrVSpJ06NAhDRw4UPv27dOqVavUsGFDZ5WMq0BewLlx40Zt2bJF//zzj/5fe3ceV2P6/gH885wWSdmy1NhihCxR9mVGYiwzdmMnRoydDCrJnmEwthYxJuugsddoMCKSKCTLWMpEJLKTpOVcvz98e6YzzPxmvt/hFJ/3X+NZjuvM63mdc/uc+77uZs2awdbWFikpKZg7dy6io6PRo0cPuLu767tcyqcWLVqE1NRUzJ07V10m9dFHHyE6Ohpt2rTRWYKemZkJZ2dnJCYmwtnZGUOGDEHhwoX1WD3lV3l/1ANejoccHR1Rvnx5bNmyBcDv4UJmZibOnz8PBwcHndfIDa6IcuUNk65evYr58+dj9OjRqFevHg4d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ORkJCQmoWbMmjIyMcPToURgZGam9poiIiIiIiIiI3iUMpd4CX19fzJo1C7t374aFhQVu3LiBgQMHonHjxvjhhx9gbGyMX3/9FZcvX0bZsmXRokWL1zY9JyIiIiIiIiJ6VzCUegsGDRqEwoULIyAgQJ09debMGXz88ccYO3Ys5s6d+8o9nCFFRERERERERO8yNjr/l/0x48vKykJycjIyMjLU85mZmahXrx5mzpyJrVu34uHDh8jJydG5j4EUEREREREREb3LGEr9i7RardpD6rfffkNqaiqMjIzg7OyMbdu2ISwsDBqNBkZGRgCAQoUKoVSpUihSpAhDKCIiIiIiIiJ6rzCU+hfl7rLn6emJzp07o2bNmnBzc4OZmRmGDBmC0aNHY+/evdBqtXj8+DF++uknlCtXTg2piIiIiIiIiIjeF+yi/S/QarVqILV161asX78evr6+OHv2LPbu3YukpCQ0adIEnTp1QseOHVGlShUYGBigUKFCiImJgaIoOjv1ERERERERERG969jo/F905MgRbN++HXXr1sWQIUMAAMHBwfDx8UGJEiUwbNgwlClTBidOnICZmRl69+7NXfaIiIiIiIiI6L3EUOpfcvv2bbRo0QJ3797FrFmz4Orqqp4LCQnB0qVLUbRoUUyZMgWNGjVSz3GXPSIiIiIiIiJ6H7Gn1L/E0tISO3bsgKWlJUJDQ3Hu3Dn1XKdOnTBx4kQkJCRg586dOvcxkCIiIiIiIiKi9xFnSv3L4uLi8MUXX6BBgwYYP348atWqpZ47duwYGjduzCCKiIiIiIiIiN57DKXegNjYWAwdOhT169eHq6sratasqXOeS/aIiIiIiIiI6H3HUOoNiY2NxfDhw1GpUiUsWLAAlStX1ndJRERERERERET5BntKvSH29vbw9fWFubk5KlWqpO9yiIiIiIiIiIjyFc6UesNEBIqiQKvVQqNhBkhEREREREREBDCUeitygykiIiIiIiIiInqJU3feAgZSRERERERERES6GEoREREREREREdFbx1CKiIiIiIiIiIjeOoZSRERERERERET01jGUIiIiIiIiIiKit46hFBERERERERERvXUMpYiIiIgKGEVRsGvXLn2XQURERPQ/YShFRERE9AZ06tQJ7du3f+25iIgIKIqCs2fP/levnZKSgg4dOvzt6wcPHoyuXbv+V38XERER0ZvCUIqIiIjoDXBxccEvv/yCmzdvvnJuzZo1aNCgAezs7P7Ra2ZmZgIALC0tUahQoX+lTiIiIiJ9YShFRERE9AZ07NgRpUuXxtq1a3WOp6WlYevWrejatSv69u2LcuXKwdTUFHXq1MHmzZt1rnV0dMSYMWPg6uqKUqVKoV27dgBeXb5348YN9OrVC8WLF0fJkiXRpUsXXLt2DQAwc+ZMrFu3Drt374aiKFAUBeHh4XBycsKYMWN0/r67d+/C2NgYYWFh//r/DyIiIqI/YihFRERE9AYYGhrC2dkZa9euhYiox7du3YqcnBwMGDAA9evXx549e3D+/Hl8+eWXGDhwIKKjo3VeZ926dTA2NkZkZCQCAgJe+XuysrLQrl07mJubIyIiApGRkTAzM0P79u2RmZmJSZMmoVevXmjfvj1SUlKQkpKCZs2aYejQodi0aRNevHihvtbGjRtRrlw5ODk5vbn/MURERET/wVCKiIiI6A0ZMmQIrl69isOHD6vH1qxZgx49eqBSpUqYNGkS6tWrhypVqmDs2LFo3749fvzxR53XsLGxwYIFC1C9enVUr179lb8jKCgIWq0Wq1evRp06dWBra4s1a9YgKSkJ4eHhMDMzQ+HChVGoUCFYWlrC0tISxsbG6N69OwBg9+7d6mutXbsWgwcPhqIob+j/CBEREdHvGEoRERERvSE1atRAs2bNEBgYCABISEhAREQEXFxckJOTgzlz5qBOnTooWbIkzMzMsG/fPiQlJem8Rv369f/y74iLi0NCQgLMzc1hZmYGMzMzlCxZEhkZGbh69eqf3mdiYoKBAweqtZ0+fRrnz5/H4MGD/7c3TURERPQ3Geq7ACIiIqJ3mYuLC8aOHQs/Pz+sWbMGH374IVq2bIlvvvkGy5Ytw9KlS1GnTh0UKVIErq6uajPzXEWKFPnL109LS0P9+vXxww8/vHKudOnSf3nv0KFDUa9ePdy8eRNr1qyBk5MTKlWq9M/fJBEREdF/gaEUERER0RvUq1cvjB8/Hps2bcL69esxcuRIKIqCyMhIdOnSBQMGDAAAaLVaXLlyBTVr1vxHr+/g4ICgoCCUKVMGRYsWfe01xsbGyMnJeeV4nTp10KBBA3z33XfYtGkTfH19//kbJCIiIvovcfkeERER0RtkZmaG3r17Y8qUKUhJSVGXx9nY2OCXX37BsWPHcPHiRQwfPhx37tz5x6/fv39/lCpVCl26dEFERAQSExMRHh6OcePG4ebNmwAAa2trnD17FpcvX8a9e/eQlZWl3j906FDMnz8fIoJu3br9K++ZiIiI6O9gKEVERET0hrm4uODhw4do164dPvjgAwCAl5cXHBwc0K5dOzg6OsLS0hJdu3b9x69tamqKI0eOoGLFiujevTtsbW3h4uKCjIwMdebUsGHDUL16dTRo0AClS5dGZGSken/fvn1haGiIvn37wsTE5F95v0RERER/hyJ59ygmIiIiovfKtWvX8OGHHyImJgYODg76LoeIiIjeIwyliIiIiN5DWVlZuH//PiZNmoTExESd2VNEREREbwOX7xERERG9hyIjI2FlZYWYmBgEBATouxwiIiJ6D3GmFBERERERERERvXWcKUVERERERERERG8dQykiIiIiIiIiInrrGEoREREREREREdFbx1CKiIiIiIiIiIjeOoZSRERERERERET01jGUIiIiIiIiIiKit46hFBERERERERERvXUMpYiIiIiIiIiI6K1jKEVERERERERERG/d/wGlU1SEziQW4AAAAABJRU5ErkJggg==",
|
||
"text/plain": [
|
||
"<Figure size 1200x600 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Plot salvato come: .//2024-12-07_07-35_plots/variety_comparison_water_efficiency_l_oil_m³_water.png\n",
|
||
"Plot salvato come: .//2024-12-07_07-35_plots/efficiency_vs_production.png\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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v/6y2K7gvuudO3fqiSeekL+/v/mXl1e6J/vzzz9XWFiYPDw8VK5cOT3++OM6evSoeX27du30448/6siRI+bPJzQ0VOnp6fLy8tKwYcMKjXns2DE5Oztr7NixVzx+ALge/MoQwG2nTZs2+uyzz7RhwwbzP5Dj4+PVqlUrtWrVSqmpqdq+fbsaNmxoXlevXj2VL19ekjRjxgzdcccdeuihh1SmTBn98MMPeu6555Sfn6/nn39ekjR58mQNHTpU3t7eeu211yRJQUFBki7+wzgiIkJJSUl65plnVLVqVa1bt04xMTFKTk4udG/hnDlz9Pfff2vQoEFyc3NTuXLlrnp8ubm5On36dKF2Ly8veXh46LXXXlPdunU1a9Ys/etf/1L16tVVs2ZNde3aVZ9++qkWL16sGTNmyNvb2/weXC4vL08PPPCAYmNj9fjjj2vYsGE6f/68VqxYoe3bt6tmzZpFbnfy5En94x//kMlk0pAhQxQYGKiffvpJAwYMUFpaWqHLPceNGycnJyeNGDFCqampGj9+vHr37q0NGzaY+6xYsUIPPPCAgoODNWzYMFWsWFG7du3SkiVLNGzYMD366KN6/vnn9cUXX6hJkyYW43/xxRdq166dKleuXGS9Xbp0kbe3t7766itFRERYrFuwYIHuuOMO3XnnnZKk7t27a8eOHRo6dKhCQ0OVkpKiFStWKDExsdBlxgUyMzMVGxurtm3bqnr16kX26dmzpwYNGqQlS5ZYfTlts2bNVKNGDX311VfmX6hcWre/v786deokyfbPxBq5ubk6evSo+WemQFHf5ZUrV+r+++9XjRo19MYbbygrK0tTp05V69attXnzZvN7t23bNt17770KDAzUG2+8oQsXLmjMmDHmn6viOH78uFq0aKFz585p0KBBqlevnpKSkvT1118rMzNTd999t1544QV9+OGHevXVV1W/fn1JMv/3cllZWWrXrp3279+vIUOGqHr16lq4cKH69++vc+fOFQp8X375pc6fP69nnnlGJpNJ48ePV7du3XTw4EG5uLhcs/4hQ4aobNmyeuONN7Rnzx7NmDFDR44cMf+Sqk+fPvr000+1fPlyPfDAA+btTpw4oV9++cX8S7WimEwmPfHEE3r33Xe1Y8cO3XHHHeZ1y5Yt05kzZ9S7d29JF38GDx48qKioKFWsWFE7duzQrFmztGPHDv32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PWrtplc1depUo2rVqoarq6vRokUL47fffjOvi4iIMPr162d+fejQIUNSoSUiIsLcZ9WqVUX2uXSca0lNTTUkGampqXY4QgAAUJLS0tIMNzc3Y/bs2YXWzZo1y/D39zfS09PNbT/++KPh5ORknDhxwjAMw+jXr58RFBRkZGdnX3U/mzZtMiQZ58+fNwzjf//mOHv2rEW/iIgIY9iwYebX1apVM5588knz6/z8fKNChQrGjBkzrriv999/3wgLC7tqPQCAojk6z1l9JvuXX35RXFyc4uLi9N///lc5OTmqUaOGOnTooPbt26t9+/aFZgq3xpAhQzRkyJAi18XFxVm8Dg0NlXGNx3q3a9fumn0AAMCtY9euXcrOzlbHjh2LXNeoUSN5eXmZ21q3bq38/Hzt2bPH/G+Xu+66S66urhbbJiQk6I033tAff/yhs2fPKj8/X5KUmJioBg0a2FRjw4YNzX82mUyqWLGi+dJzSVqwYIE+/PBDHThwQOnp6bpw4QK3rwFAKWX1Pdnt2rXTG2+8obi4OJ09e1YrVqxQr169tGvXLvXv31+VKlXSHXfcUZK1AgAAFHK1y7StdWkIl2S+zNzX11dffPGFNm3apMWLF0sq3sRoLi4uFq9NJpM5tK9fv169e/dW586dtWTJEm3ZskWvvfbadU/ABgBwDJufky1J7u7u6tChg9q0aaP27dvrp59+0scff3zDn28NAABQu3ZteXh4KDY2Vk8//bTFuvr162vu3LnKyMgwB+n4+Hg5OTmZ74cuyu7du/XXX39p3Lhx5kd7/v777xZ9Cs585+XlXVf969atU7Vq1fTaa6+Z244cOXJdYwIAHMem2cVzcnK0Zs0avfnmm2rfvr3Kli2rZ599VmfPntW0adN06NChkqoTAACgSO7u7nrllVc0cuRIffrppzpw4IB+++03/ec//1Hv3r3l7u6ufv36afv27Vq1apWGDh2qPn36XPU2t6pVq8rV1VVTp07VwYMH9f333xd69nW1atVkMpm0ZMkSnTp1ymLGclvUrl1biYmJmj9/vg4cOKAPP/zQfNYcAFD6WB2yO3ToIH9/fz333HNKSUnRM888owMHDmjPnj2aPXu2+vTpw+zdAADAbgzD0JmMHB09k6kzGTlXnXPl9ddf10svvaTRo0erfv366tmzp1JSUuTp6anly5frzJkzat68uR59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0LbTp0/XJ598osTERGVlZSknJ8eqmctTU1OVnJys8PBwc1uZMmXUrFkz8yXj+/fvV2Zmpu655x6LbXNyctSkSROrju2PP/5QfHy8+cy1dPEy9b///luZmZny9PS84rahoaHy8fExvy74zArs27dPo0eP1oYNG3T69GnzGezExETdeeedVtUHAABuD4RsALAzFxcXi9cmk8nqy4o9PDyuuC49PV3Ozs5KSEiQs7OzxTpvb2+rxu/Xr5/++usvTZkyRdWqVZObm5tatmypnJwci35eXl4Wr+fPn68RI0Zo4sSJatmypXx8fPT+++9rw4YNVu33WtLT0yVdvFy+cuXKFuvc3NysHuPNN99Ut27dCq1zd3e/6rbX+swefPBBVatWTbNnz1alSpWUn5+vO++8s9D7BgAAQMgGgBukfv36Onr0qI4ePWo+m71z506dO3dODRo0kHTxLHhsbKyioqIKbd+kSRPl5eUpJSVFbdu2LVYN8fHx+uijj9S5c2dJ0tGjR3X69GmrtmvVqpWee+45c5u1E3/5+fkpODhYGzZs0N133y1JunDhghISEtS0aVNJF8/ou7m5KTExUREREbYeliSpadOm2rNnj2rVqnXFPi4uLsrLy7Np3L/++kt79uzR7Nmzze/72rVri1UjAAC49RGyAcAKhmHobGauMrIvyMutjPw9XWQymWwaIzIyUnfddZd69+6tyZMn68KFC3ruuecUERFhvjx7zJgx6tixo2rWrKnHH39cFy5c0NKlS/XKK6+oTp066t27t/r27auJEyeqSZMmOnXqlGJjY9WwYUN16dLlmjXUrl1bn332mZo1a6a0tDS9/PLLVz17ful2n376qZYvX67q1avrs88+06ZNm1S9enWrjn3YsGEaN26cateurXr16mnSpEk6d+6ceb2Pj49GjBihF198Ufn5+WrTpo1SU1MVHx8vX19f9evX75r7GD16tB544AFVrVpVjz76qJycnPTHH39o+/btevvttyVdvCw8NjZWrVu3lpubm/z9/a85rr+/v8qXL69Zs2YpODhYiYmJGjVqlFXHDQAAbj/MLg4AV5GalatP1h5SvZ6jFFC+nNqOX6Wmb61Qu/fj9MnaQ0rNuvIzpE0mk7799luL19999538/f119913KzIyUjVq1NCCBQvMfdq1a6eFCxfq+++/V+PGjdWhQwdt3LjRvH7OnDnq27evXnrpJdWtW1ddu3bVpk2bVLVqVauO5z//+Y/Onj2rpk2bqk+fPnrhhRdUoUKFa273zDPPqFu3burZs6fCw8P1119/WZzVvpaXXnpJffr0Ub9+/cyXm1/6aDJJeuutt/T6669r7Nixql+/vu677z79+OOPVgf5Tp06acmSJfr555/VvHlz/eMf/9AHH3ygatWqmftMnDhRK1asUEhIiNX3ejs5OWn+/PlKSEjQnXfeqRdffFHvv/++1ccOAABuLybDuOxBpVBaWpr8/PyUmpoqX19fR5cDwEFW7z2lwZ8nKCsnT/m52crPyZKzV1lJUsE5bA9XZ814MkwRdQILbW8ymbR48WJ17dr1htUMAABwu3N0nuNMNoDb2pUmrlq995Si5mxUVm6eDEkmFzdzwJYk4/+XrNw8Rc3ZqNV7T92IcgEAAHCTI2QDuGm1a9dOQ4cO1fDhw+Xv76+goCDNnj1bGRkZioqKko+Pj2rVqqWffvrJvM3q1avVokULubm5KTg4WKNGjdKFCxcsxhwyZIiGDx+ugIAAderUSZI0adIk3XXXXfLy8lKVKiHq+kSU8nKyVHCtT/q2lUqc3NOivvNblurYzKd1aHxX3duyiT7+z5yrHs+2bdvUoUMHeXh4qHz58ho0aJB5Vu3Sztvb+4rLr7/+6ujyAAAAbhhCNoCb2rx58xQQEKCNGzdq6NChGjx4sHr06KFWrVpp8+bNuvfee9WnTx9lZmYqKSlJnTt3VvPmzfXHH39oxowZ+s9//mOe9OrSMV1dXRUfH6+ZM2dKunjf7YcffqgdO3ao18vjlH7oD51ZdeXQnLl3nc6snCXf5o+o0oDp8mp0n557ZqBWrVpVZP+MjAx16tRJ/v7+2rRpkxYuXKiVK1dqyJAh9nuzHGjr1q1XXIp65jYAAMCtinuyi+Doa/hvBaGhoRo+fLiGDx/u6FJQirVr1055eXnmM6F5eXny8/NTt27d9Omnn0qSTpw4oeDgYK1fv14//PCDFi1apF27dpln/v7oo4/0yiuvKDU1VU5OTmrXrp3S0tK0efPmIvdpGIbavR+nXet+1l8/f6SQF76UdPFM9pnY2ao6/OIkZSc+f1kuAVVV/r6hki7eo52+9H21CPHSjz/+eLHtknuyZ8+erVdeeUVHjx41P4N66dKlevDBB3X8+HEFBQWVzJsIAABwm3F0nrspzmRPnz5doaGhcnd3V3h4uMVMukVZuHCh6tWrJ3d3d911111aunSpxfqTJ0+qf//+qlSpkjw9PXXfffdp3759JXkIN6V27do5LORu2rRJgwYNcsi+cWtp2LCh+c/Ozs4qX7687rrrLnNbQThNSUnRrl271LJlS4tHa7Vu3Vrp6ek6duyYuS0sLKzQflauXKmOHTuqUuUq+vX1Ljr94yTlZ6UpP/fvIuvK/euo3Co3ML82JOVVqKMdO3cW2X/Xrl1q1KiROWAX1Jafn689e/Zc410AAABAaeHwkL1gwQJFR0drzJgx2rx5sxo1aqROnTopJSWlyP7r1q1Tr169NGDAAG3ZskVdu3ZV165dtX37dkkXz0J17dpVBw8e1HfffactW7aoWrVqioyMVEZGxo08tNtaYGCgPD09HV0GbgEuLi4Wr00mk0VbQaDOz8+3esxLg64kHT58WA888IAaNmyomXO+UHC/ySp3z7MXV+ZdKGKEK8vn2iAAAIDbmsND9qRJkzRw4EBFRUWpQYMGmjlzpjw9PfXJJ58U2X/KlCm677779PLLL6t+/fp666231LRpU02bNk2StG/fPv3222+aMWOGmjdvrrp162rGjBnKysrSf//73xt5aA7Vv39/rV69WlOmTJHJZJLJZNKBAwc0YMAAVa9eXR4eHqpbt66mTJlisd2FCxf0wgsvqGzZsipfvrxeeeUV9evXz+IRROfPn1fv3r3l5eWl4OBgffDBB4XOmoeGhmry5Mnm15dOKhUSEqLnnnvOYsKnI0eO6MEHH5S/v7+8vLx0xx13WFyhsGPHDj3wwAPy9fWVj4+P2rZtqwMHDki6eNb8nnvuUUBAgPz8/BQREXHFS4Fxa6tfv77Wr1+vS++CiY+Pl4+Pj6pUqXLF7RISEpSfn6+JEyeqbZtWcilXWRfSz1x1Xy7lQ5SdZHnWOvvYLtWvX/+Ktf3xxx8Wv+yLj4+Xk5OT6tata83hAQAAoBRwaMjOyclRQkKCIiMjzW1OTk6KjIzU+vXri9xm/fr1Fv0lqVOnTub+2dnZkiR3d3eLMd3c3LR27doix8zOzlZaWprFUtpNmTJFLVu21MCBA5WcnKzk5GRVqVJFVapU0cKFC7Vz506NHj1ar776qr766ivzdu+9956++OILzZkzR/Hx8UpLS9O3335rMXZ0dLTi4+P1/fffa8WKFfr111+vGWovnVRq3rx5+uWXXzRy5Ejz+ueff17Z2dlas2aNtm3bpvfee0/e3t6SpKSkJN19991yc3PTL7/8ooSEBD311FPmGaPPnz+vfv36ae3atfrtt99Uu3Ztde7cWefPn7fTu4nS4rnnntPRo0c1dOhQ7d69W999953GjBmj6OhoOTld+a+7WrVqKTc3V1OnTtXZE0flfnit0rf8dMX+kuTbopvSt8Xq/Jalyj2TpLSNi5W5b51GjXy5yP69e/eWu7u7+vXrp+3bt2vVqlUaOnSo+vTpw/3YAAAAt5Ayjtz56dOnlZeXV+gfmEFBQdq9e3eR25w4caLI/idOnJAk1atXT1WrVlVMTIw+/vhjeXl56YMPPtCxY8eUnJxc5Jhjx47Vm2++aYcjunn4+fnJ1dVVnp6eqlixorn90uOsXr261q9fr6+++kqPPfaYJGnq1KmKiYnRI488IkmaNm2axRnl8+fPa968efryyy/VsWNHSdKcOXNUqVKlq9Zz+Vnut99+W88++6w++ugjSVJiYqK6d+9uvte2Ro0a5v7Tp0+Xn5+f5s+fb75MuE6dOub1HTp0sNjXrFmzVLZsWa1evVoPPPDANd4pOIJhGDqbmauM7Avycisjf08Xi/uoi6ty5cpaunSpXn75ZTVq1EjlypXTgAED9M9//vOq2zVq1EiTJk3Se++9p5iYGNW8q7n8I/rp9I+TrriNZ52WKhc5SGkbv9GZlbNUpmyQnn71fbVv377o/p6eWr58uYYNG6bmzZvL09NT3bt316RJV94HAAAASh+HhuyS4OLiom+++UYDBgxQuXLl5OzsrMjISN1///260kTqMTExio6ONr9OS0tTSEjIjSr5hpo+fbo++eQTJSYmKisrSzk5OWrcuLEkKTU1VSdPnlSLFi3M/Z2dnRUWFma+3/XgwYPKzc216OPn53fNy11XrlypsWPHavfu3UpLS9OFCxf0999/KzMzU56ennrhhRc0ePBg/fzzz4qMjFT37t3NE15t3bpVbdu2LXRvboGTJ0/qn//8p+Li4pSSkqK8vDxlZmYqMTHxet4qlIDUrFwtSjimeesO68iZTHN7tXKe6tcqVN3DqsjP43+fc1xcXKExDh8+XKjt0p/tiIiIq06eWNSYkvTiiy/qxRdfNNfZcmysvO/qYH5OtvddkfK+y/IqGp8mneXTpLOcTJK7i7MmxHS8Yl2SdNddd+mXX365Ym0AAAAo/Rx6uXhAQICcnZ118uRJi/aTJ09anH29VMWKFa/ZPywsTFu3btW5c+eUnJysZcuW6a+//rI4O3opNzc3+fr6Wiy3ovnz52vEiBEaMGCAfv75Z23dulVRUVHKyckp0f1eOqnUokWLlJCQoOnTp0uSed9PP/20Dh48qD59+mjbtm1q1qyZpk6dKkny8PC46vj9+vXT1q1bNWXKFK1bt05bt25V+fLlS/y4YJvVe0+p5dhYvbVkpxIvCdiSlHgmU28t2amWY2O1eu8pB1X4P34eLprxZJhMkq51gr1g/cwnwyx+QQAAAIDbk0NDtqurq8LCwhQbG2tuy8/PV2xsrFq2bFnkNi1btrToL0krVqwosr+fn58CAwO1b98+/f7773r44YftewA3OVdXV+Xl5Zlfx8fHq1WrVvq/9u48rKpq/x/4+zAdDrOJqAiCiqiY4myCydVUNC7m8E1C1DLLUDAtQTNzuHXLBlHLTLJropVpllPmrKCoODE4IALhgIVGXQdG9QCf3x9c9s8toJKHIXq/nofnce/12Wutvd2r/LD2XnvSpEno3Lkz3NzclMXDgNLr1bhxYxw/flzZV1xcrHrfumXLljA1NVXF3Lx5E2lpaZX24+5FpZ544gm4u7sjKyurXJyzszOCg4OxYcMGTJs2DV988QWA0k84xcbGQq/XV1j/oUOH8Oqrr+Lpp59G+/btodVq8ccffzzEFaKasj/td4xbeQyF+mIISj93dbeyfYX6YoxbeaxOJNo+7o2wclwP6EyNS5Pte8rL9ulMjRE1rgf6uDeq+U4SERERUZ1T66uLv/766/jiiy+watUqpKSkYOLEicjPz8e4ceMAAGPHjsXMmTOV+ClTpmDHjh2IiIjAuXPnMG/ePJw4cQKhoaFKzPr16xETE6N8xmvAgAEYOnQoBg4cWOPnV5tcXV1x9OhRXLx4EX/88Qdat26NEydOYOfOnUhLS8Ps2bNVyTIATJ48GfPnz8fmzZuRmpqKKVOm4Pr168r7stbW1nj++ecRHh6O6OhoJCcnY/z48TAyMqr0ndq7F5U6f/48vvrqK0RGRqpipk6dip07d+LChQtISEhAdHS0skpzaGgocnJy8Nxzz+HEiRNIT0/HV199pXxbuHXr1vjqq6+QkpKCo0ePIigo6IGz31RzbhbqMfHr+NJE+gGftxIpTbYnfh2Pm4UV/1KlJvm4N0LczKcwx98DzR9Tf5Ku+WMWmOPvgSNvPsUEm4iIiIgUtf5OdkBAAH7//XfMmTMHV69eRadOnbBjxw5lcbPMzEzVqsBeXl5Ys2YN3nrrLbz55pto3bo1Nm3ahMcff1yJuXLlCl5//XX89ttvaNq0KcaOHYvZs2fX+LlVh6osGBUWFobnn38eHh4eKCwsxLlz55CYmIiAgABoNBoEBgZi0qRJ2L79/6+iPGPGDFy9ehVjx46FsbExJkyYAF9fXxgbGysxCxcuRHBwsPJJrenTp+Py5cuqFd3vdu+iUn369MH8+fMxduxYJaa4uBghISH45ZdfYGNjg0GDBmHRokUAgIYNG2Lfvn0IDw+Hj48PjI2N0alTJ3h7ewMAVqxYgQkTJqBLly5wdnbGe++9h7CwsEe+1mQYP8T/gsI7xeVmrysjAhTeKcaGhF8wzrtFtfbtYdjqTDHOuwVe8HLFjQI98m4XwUprAjsDLdZGRERERPWLRipbDexvLCcnB7a2trh582adeT+7qgtGGUpJSQnatWuHkSNH4p133qkwJj8/H82aNUNERATGjx9v8D7QX5eI4B8fxSDzWsFDJ9lA6WPYzR+zQEz4P5jIEhEREVGV1HY+V+sz2fRg+9N+x8Sv41F4p7hcWdmCUQt2pWLZ6K7wecTHVi9duoRdu3bBx8cHt2/fxqeffooLFy5g1KhRSkxiYiLOnTuHHj164ObNm3j77bcB4G/3zjs92PUCveqXQg9LAFy6VoAbBXo0sDQzfMeIiIiIiKpJrb+TTfdX0wtGGRkZISoqCt27d4e3tzdOnz6NPXv2KO9Hl1mwYAE8PT3Rv39/5OfnIzY2Fvb29o/UNtU/+beLHun4vEc8noiIiIiopnEmuw6r6oJR0JQuGBU386k//ei4s7MzDh06dN+Yzp07Iz4+/k/VT38vltpH+0+M1SMeT0RERERU0ziTXYcpC0Y95Musdy8YRVQXNLAwhctjFuU+f/UgGpSuN2Bnwe9OExEREdFfC5PsOkpEsOrwxT91bNShi+B6dlQXaDQaPO/l+qeOfcHblYueEREREdFfDpPsOqpswaiqpsp3LxhFVBeM6OoEnZkxHjZfNtIAOjNjDO/iVL0dIyIiIiKqBkyy6yguGEX1ha3OFMtGd4UGeGCiXVYeObprtXySjoiIiIioujHJrqO4YBTVJz7ujbByXA/oTI1Lk+17ysv26UyNETWuB/o84qfoiIiIiIhqCzOxOqpswajMKj4yrgHQnAtGUR3k494IcTOfwoaEXxB16KLq+9nNH7PAC96uGNHVCTbmvHeJiIiI6K+LSXYdVbZg1Dtbz1b5WC4YRXWVrc4U47xb4AUvV9wo0CPvdhGstCawszDlPUtERERE9QIfF6/DuGAU1VcajQYNLM3g/JgFGliaMcEmIiIionqDSXYdxgWjiIiIiIiI/lqYZNdxXDCKiIiIiIjor4PvZP8FcMEoIiIiIiKivwaNiFRl8eq/hZycHNja2uLmzZuwsbGp7e6oiAgXjCIiIiIiIqpEbedznMn+iylbMKqBpVltd4WIiIiIiIjuwXeyiYiIiIiIiAyESTYRERERERGRgTDJJiIiIiIiIjIQJtlEREREREREBsIkm4iIiIiIiMhAmGQTERERERERGQiTbCIiIiIiIiIDYZJNREREREREZCBMsomIiIiIiIgMhEk2ERERERERkYEwySYiIiIiIiIyECbZRERERERERAZiUtsdqItEBACQk5NTyz0hIiIiIiKiqijL48ryuprGJLsCubm5AABnZ+da7gkRERERERH9Gbm5ubC1ta3xdjVSW+l9HVZSUoKsrCxYW1tDo9HUdnf+tnJycuDs7IzLly/DxsamtrtDVGs4FohKcSwQleJYICpV2VgQEeTm5sLR0RFGRjX/hjRnsitgZGQEJyen2u4G/Y+NjQ3/B0IEjgWiMhwLRKU4FohKVTQWamMGuwwXPiMiIiIiIiIyECbZRERERERERAbCJJvqLK1Wi7lz50Kr1dZ2V4hqFccCUSmOBaJSHAtEperqWODCZ0REREREREQGwplsIiIiIiIiIgNhkk1ERERERERkIEyyiYiIiIiIiAyESTYZzIEDB+Dv7w9HR0doNBps2rRJKdPr9ZgxYwY6dOgAS0tLODo6YuzYscjKylLVce3aNQQFBcHGxgZ2dnYYP3488vLyVDGnTp3Ck08+CXNzczg7O+PDDz8s15f169ejbdu2MDc3R4cOHbBt27ZqOWeiitxvLNwrODgYGo0GixcvVu3nWKD64GHGQkpKCoYMGQJbW1tYWlqie/fuyMzMVMpv3bqFkJAQNGzYEFZWVhgxYgR+++03VR2ZmZnw8/ODhYUFHBwcEB4ejqKiIlVMTEwMunTpAq1WCzc3N0RFRVXHKRNV6EFjIS8vD6GhoXBycoJOp4OHhwciIyNVMRwLVB/Mnz8f3bt3h7W1NRwcHDB06FCkpqaqYmryXl+6dClcXV1hbm6Onj174tixYwY5TybZZDD5+fnw9PTE0qVLy5UVFBQgISEBs2fPRkJCAjZs2IDU1FQMGTJEFRcUFITk5GTs3r0bW7duxYEDBzBhwgSlPCcnBwMHDoSLiwvi4+Px0UcfYd68eVi+fLkSc/jwYQQGBmL8+PFITEzE0KFDMXToUJw5c6b6Tp7oLvcbC3fbuHEjjhw5AkdHx3JlHAtUHzxoLGRkZKB3795o27YtYmJicOrUKcyePRvm5uZKzGuvvYYff/wR69evx/79+5GVlYXhw4cr5cXFxfDz88OdO3dw+PBhrFq1ClFRUZgzZ44Sc+HCBfj5+aFv375ISkrC1KlT8dJLL2Hnzp3Vd/JEd3nQWHj99dexY8cOfP3110hJScHUqVMRGhqKLVu2KDEcC1Qf7N+/HyEhIThy5Ah2794NvV6PgQMHIj8/X4mpqXt93bp1eP311zF37lwkJCTA09MTvr6+yM7OfvQTFaJqAEA2btx435hjx44JALl06ZKIiJw9e1YAyPHjx5WY7du3i0ajkV9//VVERD777DNp0KCB3L59W4mZMWOGtGnTRtkeOXKk+Pn5qdrq2bOnvPLKK496WkRVVtlY+OWXX6RZs2Zy5swZcXFxkUWLFillHAtUH1U0FgICAmT06NGVHnPjxg0xNTWV9evXK/tSUlIEgMTFxYmIyLZt28TIyEiuXr2qxCxbtkxsbGyU8TF9+nRp3759ubZ9fX0f9bSIqqyisdC+fXt5++23Vfu6dOkis2bNEhGOBaq/srOzBYDs379fRGr2Xu/Ro4eEhIQo28XFxeLo6Cjz589/5PPiTDbVmps3b0Kj0cDOzg4AEBcXBzs7O3Tr1k2J6d+/P4yMjHD06FElpk+fPjAzM1NifH19kZqaiuvXrysx/fv3V7Xl6+uLuLi4aj4joodTUlKCMWPGIDw8HO3bty9XzrFAfwclJSX46aef4O7uDl9fXzg4OKBnz56qx2jj4+Oh1+tV93Hbtm3RvHlz5T6Oi4tDhw4d0LhxYyXG19cXOTk5SE5OVmI4Fqgu8/LywpYtW/Drr79CRBAdHY20tDQMHDgQAMcC1V83b94EADz22GMAau5ev3PnDuLj41UxRkZG6N+/v0HGA5NsqhW3bt3CjBkzEBgYCBsbGwDA1atX4eDgoIozMTHBY489hqtXryoxdw8oAMr2g2LKyolq2wcffAATExO8+uqrFZZzLNDfQXZ2NvLy8vD+++9j0KBB2LVrF4YNG4bhw4dj//79AErvYTMzM+WXsWXuvo8fZSzk5OSgsLCwOk6PqEqWLFkCDw8PODk5wczMDIMGDcLSpUvRp08fABwLVD+VlJRg6tSp8Pb2xuOPPw6g5u71P/74A8XFxdX27ySTR66BqIr0ej1GjhwJEcGyZctquztENSo+Ph4ff/wxEhISoNFoars7RLWmpKQEAPDMM8/gtddeAwB06tQJhw8fRmRkJHx8fGqze0Q1asmSJThy5Ai2bNkCFxcXHDhwACEhIXB0dCw3G0dUX4SEhODMmTM4ePBgbXfF4DiTTTWqLMG+dOkSdu/ercxiA0CTJk3KLTRQVFSEa9euoUmTJkrMvasLlm0/KKasnKg2xcbGIjs7G82bN4eJiQlMTExw6dIlTJs2Da6urgA4Fujvwd7eHiYmJvDw8FDtb9eunbK6eJMmTXDnzh3cuHFDFXP3ffwoY8HGxgY6nc5g50T0ZxQWFuLNN9/EwoUL4e/vj44dOyI0NBQBAQFYsGABAI4Fqn9CQ0OxdetWREdHw8nJSdlfU/e6vb09jI2Nq+3fSUyyqcaUJdjp6enYs2cPGjZsqCrv1asXbty4gfj4eGXfvn37UFJSgp49eyoxBw4cgF6vV2J2796NNm3aoEGDBkrM3r17VXXv3r0bvXr1qq5TI3poY8aMwalTp5CUlKT8ODo6Ijw8XFnxkmOB/g7MzMzQvXv3cp9uSUtLg4uLCwCga9euMDU1Vd3HqampyMzMVO7jXr164fTp06pfTJX9ErcsgedYoLpMr9dDr9fDyEj9z3JjY2PliQ+OBaovRAShoaHYuHEj9u3bhxYtWqjKa+peNzMzQ9euXVUxJSUl2Lt3r2HGwyMvnUb0P7m5uZKYmCiJiYkCQBYuXCiJiYly6dIluXPnjgwZMkScnJwkKSlJrly5ovzcvTryoEGDpHPnznL06FE5ePCgtG7dWgIDA5XyGzduSOPGjWXMmDFy5swZWbt2rVhYWMjnn3+uxBw6dEhMTExkwYIFkpKSInPnzhVTU1M5ffp0jV4P+vu631ioyL2ri4twLFD98KCxsGHDBjE1NZXly5dLenq6LFmyRIyNjSU2NlapIzg4WJo3by779u2TEydOSK9evaRXr15KeVFRkTz++OMycOBASUpKkh07dkijRo1k5syZSsz58+fFwsJCwsPDJSUlRZYuXSrGxsayY8eOmrsY9Lf2oLHg4+Mj7du3l+joaDl//rysXLlSzM3N5bPPPlPq4Fig+mDixIlia2srMTExqnygoKBAiampe33t2rWi1WolKipKzp49KxMmTBA7OzvVquV/FpNsMpjo6GgBUO7n+eeflwsXLlRYBkCio6OVOv773/9KYGCgWFlZiY2NjYwbN05yc3NV7Zw8eVJ69+4tWq1WmjVrJu+//365vnz33Xfi7u4uZmZm0r59e/npp5+q+/SJFPcbCxWpKMnmWKD64GHGwooVK8TNzU3Mzc3F09NTNm3apKqjsLBQJk2aJA0aNBALCwsZNmyYXLlyRRVz8eJFGTx4sOh0OrG3t5dp06aJXq8v15dOnTqJmZmZtGzZUlauXFldp01UzoPGwpUrV+SFF14QR0dHMTc3lzZt2khERISUlJQodXAsUH1QWT5w931Yk/f6kiVLpHnz5mJmZiY9evSQI0eOGOQ8Nf87WSIiIiIiIiJ6RHwnm4iIiIiIiMhAmGQTERERERERGQiTbCIiIiIiIiIDYZJNREREREREZCBMsomIiIiIiIgMhEk2ERERERERkYEwySYiIiIiIiIyECbZRERERERERAbCJJuIiMiAYmJioNFocOPGDQBAVFQU7OzsarVPhnTv+VWXefPmoVOnTtXaRpm9e/eiXbt2KC4urta2XV1dsXjx4keqIzIyEv7+/obpEBERVQsm2URE9KfExcXB2NgYfn5+td2VGrN161b4+PjA2toaFhYW6N69O6Kiou57TEBAANLS0qq1X2WJb9lP48aNMWLECJw/f75a2zUUjUaDTZs2qfaFhYVh7969NdL+9OnT8dZbb8HY2Njgda9atQq9e/c2WH0vvvgiEhISEBsba7A6iYjIsJhkExHRn7JixQpMnjwZBw4cQFZWVrW2JSIoKiqq1jYeZMmSJXjmmWfg7e2No0eP4tSpU3juuecQHByMsLCwSo/T6XRwcHCokT6mpqYiKysL69evR3JyMvz9/ZXZ2bvVhev5IFZW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",
|
||
"text/plain": [
|
||
"<Figure size 1000x600 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Plot salvato come: .//2024-12-07_07-35_plots/water_efficiency_vs_production.png\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA9kAAAJOCAYAAACjoMSlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAACW40lEQVR4nOzdeVxV1f7/8fcRmYfjAAoqioqaszmGlFpa3ETNstJyzpzncrh2y7I0h9K0Scu6YqjXnBocyllKJDPM2dQ0xAFFJUCBGPfvD7+cn0dQQQ8C+no+HucRZ6+19/7sA5pv1tprmwzDMAQAAAAAAO5YicIuAAAAAACAewUhGwAAAAAAGyFkAwAAAABgI4RsAAAAAABshJANAAAAAICNELIBAAAAALARQjYAAAAAADZCyAYAAAAAwEYI2QAAAAAA2AghGwCKsJCQEJlMJkVFRVm2tWnTRm3atCm0mvLqrbfekslkKpRzF5fPCMWDyWTSW2+9ddM+27Ztk8lk0ooVK+5OUXdBbn//AABujZANAHfZwYMH1aNHD1WsWFGOjo6qUKGCunfvroMHD9r0PH5+fjKZTJZXuXLl9Mgjj+ibb76x6XkKy6FDh/TWW2/dNwFg2bJlMplMuX7/GjZsKJPJpK1bt+Zoq1y5slq2bJmvc3366acKCQm53VJvS/bP6/Dhw3O03YsB9nY0aNBAlStXlmEYN+wTGBio8uXLKyMj4y5WltO6detu+YsJALhXEbIB4C5atWqVGjdurM2bN6tv37769NNP1a9fP23dulWNGzfOEaB69uyplJQUValS5bbO16hRI4WGhio0NFRjxozR2bNn9cwzz2jevHm2uJxCdejQIU2aNCnXkL1hwwZt2LDh7hdVgB5++GFJ0vbt2622JyYm6sCBAypZsqTCw8Ot2k6dOqVTp05Z9s2rwgjZ2ebPn6+zZ88WyrmLuu7du+vUqVP6+eefc22PiopSRESEunbtqpIlS97x+e7k759169Zp0qRJd1wDABRHhGwAuEuOHz+unj17qlq1atq3b58mT56sfv366Z133tG+fftUrVo19ezZUydOnLDsY2dnJycnp9uedl2xYkX16NFDPXr00Lhx4xQeHi5XV1d98MEHN9wnIyNDaWlpt3W+osLBwUEODg6FXYZNVahQQVWrVs0RsiMiImQYhp577rkcbdnv8xuyC0Jefq7q1q2rzMxMTZs27S5VVby8+OKLMplMWrJkSa7t//vf/2QYhrp3735H50lKSpJ053//AMD9ipANAHfJe++9p+TkZH3++efy8vKyavP09NRnn32mpKQkzZgxw7Ld1vdEent7q3bt2vrrr78kXR35MplMev/99zV79mxVr15djo6OOnTokCRpy5YteuSRR+Tq6qpSpUrpqaee0uHDh3Mcd/v27WrWrJmcnJxUvXp1ffbZZzn6ZJ8rtxHS3O55PXPmjPr166cKFSrI0dFRVatW1eDBg5WWlqaQkBA999xzkqRHH33UMiV+27ZtknK/Jzs2Nlb9+vVT+fLl5eTkpIYNG2rhwoW51vj+++/r888/t3wezZo1065du2762f72228ymUw5jilJ69evl8lk0po1ayRJly9f1qhRo+Tn5ydHR0eVK1dOjz/+uHbv3n3Tczz88MP6/ffflZKSYtkWHh6uunXr6sknn9Qvv/yirKwsqzaTyaTAwEBJ0oIFC/TYY4+pXLlycnR0VJ06dTR37lyrc/j5+engwYMKCwuzfK7Xfpbx8fEaNWqUfH195ejoKH9/f02fPt3qvLf6uboRPz8/9erVK8+j2WfOnNFLL72k8uXLy9HRUXXr1tV///vfHP1SU1P15ptvyt/fX46OjvL19dW4ceOUmpqao9/o0aPl5eUld3d3derUSadPn75lHdfKzMzUa6+9Jm9vb7m6uqpTp046deqUpf3NN9+Uvb29Lly4kGPfAQMGqFSpUvrnn39yPbavr69atWqlFStWKD09PUf7kiVLVL16dbVo0UInT57UkCFDVKtWLTk7O6ts2bJ67rnncvxdkv13TFhYmIYMGaJy5cqpUqVKVm3X7/PDDz9Y/l5wd3dXcHCw1e0uffr00SeffCJJVresGIYhPz8/PfXUUzlq/+eff2Q2mzVw4MDcP1gAKEbufC4RACBPVq9eLT8/Pz3yyCO5trdq1Up+fn5au3ZtgdWQnp6uU6dOqWzZslbbFyxYoH/++UcDBgyQo6OjypQpo02bNunJJ59UtWrV9NZbbyklJUUfffSRAgMDtXv3bvn5+UmS9u/fryeeeEJeXl566623lJGRoTfffFPly5e/7TrPnj2r5s2bKz4+XgMGDNADDzygM2fOaMWKFUpOTlarVq00YsQIffjhh3rttddUu3ZtSbL893opKSlq06aN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O3bo4sWL+uqrr6z+AS5JVatWtXp/8uRJSVKtWrVyHLN27dq6ePGikpKSdOHCBaWkpKhGjRo5+uW2b15cuHBBiYmJqlev3m3tn5uTJ0+qRo0aKlHC+n972dPLs68327W/MJBkCdx///33Tc/TsGFDPfDAA/r6668t277++mt5enpaQp0kzZgxQwcOHJCvr6+aN2+ut95665YBXrr6C4aWLVta7r0ODw9XuXLl5O/vL8k6ZGf/99qQHR4ernbt2lnusffy8tJrr70mSXkK2ceOHdOPP/5o+cVN9qtdu3aSrt73fq3rf67yKnsRwM8//1wxMTE52i9cuKD4+HjL+gbXvvr27WtVy7Fjx3Tw4MEc/bLDaHa/kydPqkSJEqpevbrVufL7c3z9nwWTySR/f3+r+5q7du0qR0dHS9BMSEjQmjVr8hwyu3fvrqSkJH333XeSpB07digqKspqwbOUlBRNnDjRcu+8p6envLy8FB8fn+v3Oi/fq2PHjkmSHnvssRyf54YNG3J8/2+kV69eCg8Pt/y5W758udLT09WzZ8887Q8ARR33ZAPAXWA2m+Xj46N9+/bdtN++fftUsWJFeXh42OS8np6elgB0M9eH7oJwo/CQmZlZ4OfOrxuN6Bk3eT5xtq5du2rKlCm6ePGi3N3d9f333+uFF16weqTS888/b3lm+YYNG/Tee+9p+vTpWrVqlZ588smbHv/hhx/W6tWrtX//fsv92NlatmypsWPH6syZM9q+fbsqVKigatWqSbq6un3btm31wAMPaNasWfL19ZWDg4PWrVunDz74wGrhshvJysrS448/rnHjxuXanh1cs93Jz9V//vMfhYaGavr06ercuXOOOiSpR48eOe5/z5Z9X3pWVpbq16+vWbNm5drP19f3tmu8XaVLl1aHDh20ePFiTZw4UStWrFBqamqe70fu0KGDzGazlixZohdffFFLliyRnZ2dunXrZukzfPhwLViwQKNGjVJAQIDMZrNMJpO6deuW6/c6L9+r7P1CQ0Pl7e2doz2vjw3r1q2bRo8ercWLF+u1117TokWL1LRp09v+xRwAFDWEbAC4Szp06KD58+dr+/btuT5S6eeff1ZUVFSRWF03+7m4R44cydH2xx9/yNPTU66urnJycpKzs7NlhOta1++bPRocHx9vtf36UWQvLy95eHjowIEDN60xP9NKq1Spon379ikrK8tqNPuPP/6wtNtK165dNWnSJK1cuVLly5dXYmKiVfjJ5uPjoyFDhmjIkCGKjY1V48aNNWXKlDyFbOnqiu7h4eFW05mbNGkiR0dHbdu2TTt37lT79u0tbatXr1Zqaqq+//57q5H63Kb43uizrV69uq5cuZKnX9zcqerVq6tHjx767LPP1KJFC6u27NW/MzMzb1lL9erVtXfvXrVt2/amPzNVqlRRVlaWjh8/bhX2cvszcDPX/1kwDEN//vmnJfRn69Wrl5566int2rVLixcv1oMPPqi6devm6RyOjo569tln9dVXX+n8+fNavny5HnvsMavgu2LFCvXu3VszZ860bPvnn39y/PnLj+xR/nLlyt3yc7/ZZ12mTBkFBwdr8eLF6t69u8LDw3MsmgcAxRnTxQHgLhk7dqycnZ01cOBAXbp0yaotLi5OgwYNkouLi8aOHVtIFf5/Pj4+atSokRYuXGj1j/IDBw5ow4YNlvBmZ2enoKAgffvtt4qOjrb0O3z4sNavX291TA8PD3l6eua4b/fTTz+1el+iRAl17txZq1ev1m+//ZajtuzRZFdXV0k5Q3tu2rdvr3PnzllN487IyNBHH30kNze3W94Hmx+1a9dW/fr19fXXX+vrr7+Wj4+PWrVqZWnPzMzMMV23XLlyqlChQo5HSuWmadOmcnJy0uLFi3XmzBmrkWxHR0c1btxYn3zyiZKSkqx+mZM9On/taHxCQoIWLFiQ4xyurq65fq7PP/+8IiIicnxvpavfh4yMjFvWnx+vv/660tPTrR5rJ129li5dumjlypW5/jLm2sdjPf/88zpz5ozmz5+fo19KSorlvubsX25cv6J5fsPfV199ZXVbyIoVKxQTE5PjlydPPvmkPD09NX36dIWFheV7Ve3u3bsrPT1dAwcO1IULF3I8G9vOzi7HzIuPPvrojmaOBAUFycPDQ++++26ujxC79nO/1Z/Pnj176tChQxo7dmyOUXgAKO4YyQaAu6RGjRpauHChunfvrvr166tfv36qWrWqoqKi9OWXX+rixYv63//+l+Oe0MLy3nvv6cknn1RAQID69etneYSX2Wy2eqb1pEmT9OOPP+qRRx7RkCFDLOG1bt26OabHv/zyy5o2bZpefvllNW3aVD/99JOOHj2a49zvvvuuNmzYoNatW1seuxQTE6Ply5dr+/btKlWqlBo1aiQ7OztNnz5dCQkJcnR0tDwD+noDBgzQZ599pj59+igyMlJ+fn5asWKFZQTNVvfAZ+vatasmTpwoJycn9evXz2r0/PLly6pUqZKeffZZNWzYUG5ubtq0aZN27dplNep4Iw4ODmrWrJl+/vlnOTo6qkmTJlbtLVu2tBzn2pD9xBNPyMHBQR07dtTAgQN15coVzZ8/X+XKlctx33OTJk00d+5cTZ48Wf7+/ipXrpwee+wxjR07Vt9//706dOigPn36qEmTJkpKStL+/fu1YsUKRUVFydPT804+OivZo9m5PXt82rRp2rp1q1q0aKH+/furTp06iouL0+7du7Vp0ybFxcVJuhrmli1bpkGDBmnr1q0KDAxUZmam/vjjDy1btkzr169X06ZN1ahRI73wwgv69NNPlZCQoJYtW2rz5s36888/81VzmTJl9PDDD6tv3746f/68Zs+eLX9/f/Xv39+qn729vbp166aPP/5YdnZ2Vovy5UXr1q1VqVIlfffdd3J2dtYzzzxj1d6hQweFhobKbDarTp06ioiI0KZNm3I8vi8/PDw8NHfuXPXs2VONGzdWt27d5OXlpejoaK1du1aBgYH6+OOPJcnyczlixAgFBQXlCNLBwcEqW7asli9frieffDLXP7cAUGwV3sLmAHB/2rdvn/HCCy8YPj4+hr29veHt7W288MILxv79+3P0vdNHeGU/EulGsh+19N577+XavmnTJiMwMNBwdnY2PDw8jI4dOxqHDh3K0S8sLMxo0qSJ4eDgYFSrVs2YN2+e8eabb+Z4hE9ycrLRr18/w2w2G+7u7sbzzz9vxMbG5vqIpJMnTxq9evUyvLy8DEdHR6NatWrG0KFDjdTUVEuf+fPnG9WqVbM8Liz78Ue5fUbnz583+vbta3h6ehoODg5G/fr1czxO7GafR2413sixY8cMSYYkY/v27VZtqampxtixY42GDRsa7u7uhqurq9GwYUPj008/zdOxDePqo8IkGS1btszRlv0oKHd39xyPZPr++++NBg0aGE5OToafn58xffp047///W+On7Fz584ZwcHBhru7uyHJ6rO8fPmyMWHCBMPf399wcHAwPD09jZYtWxrvv/++kZaWZhjGrX+ucnOjn9djx45Zvr/XPsLLMK5+T4cOHWr4+vpa/iy1bdvW+Pzzz636paWlGdOnTzfq1q1rODo6GqVLlzaaNGliTJo0yUhISLD0S0lJMUaMGGGULVvWcHV1NTp27GicOnUqX4/w+t///mdMmDDBKFeunOHs7GwEBwdbPd7uWr/++qshyXjiiSfy+ClZGzt2rCHJeP7553O0/f3335afdzc3NyMoKMj4448/jCpVqhi9e/e29Mv+Oya3x+Xl9vdP9rUGBQUZZrPZcHJyMqpXr2706dPH+O233yx9MjIyjOHDhxteXl6GyWTK9XFeQ4YMMSQZS5Ysua3rB4CiymQYeVjFBQAAADa1d+9eNWrUSF999dV9ubL26NGj9eWXX+rcuXNycXEp7HIAwGa4JxsAAKAQzJ8/X25ubjmmet8P/vnnHy1atEhdunQhYAO453BPNgAAwF20evVqHTp0SJ9//rmGDRtmWSTsfhAbG6tNmzZpxYoVunTpkkaOHFnYJQGAzTFdHAAA4C7y8/PT+fPnFRQUpNDQUJsvvFeUbdu2TY8++qjKlSunN954Q8OGDSvskgDA5gjZAAAAAADYCPdkAwAAAABgI4RsAAAAAABshIXP8iArK0tnz56Vu7u7TCZTYZcDAAAAALiGYRi6fPmyKlSooBIlCncsmZCdB2fPnpWvr29hlwEAAAAAuIlTp06pUqVKhVoDITsPslf9PHXqlDw8PAq5GgAAAADAtRITE+Xr61sknthAyM6D7CniHh4ehGwAAAAAKKKKwu29LHwGAAAAAICNELIBAAAAALARQjYAFEGGYWjAgAEqU6aMTCaT9uzZU9gl5dCnTx917ty5sMsAAAAoUrgnGwCKoB9//FEhISHatm2bqlWrJk9PzwI7V58+fRQfH69vv/02X/vNmTNHhmEUTFEAAADFFCEbAIqg48ePy8fHRy1btsy1PS0tTQ4ODne5Kmtms7lQzw8AAFAUMV0cAIqYPn36aPjw4YqOjpbJZJKfn5/atGmjYcOGadSoUfL09FRQUJAkadasWapfv75cXV3l6+urIUOG6MqVK5ZjhYSEqFSpUlq/fr1q164tNzc3/etf/1JMTIwk6a233tLChQv13XffyWQyyWQyadu2bZKk/fv367HHHpOzs7PKli2rAQMGWB37+uniqampGjFihMqVKycnJyc9/PDD2rVrV8F/YAAAAEUIIRsAipg5c+bo7bffVqVKlRQTE2MJqgsXLpSDg4PCw8M1b948SVKJEiX04Ycf6uDBg1q4cKG2bNmicePGWR0vOTlZ77//vkJDQ/XTTz8pOjpaY8aMkSSNGTNGzz//vCV4x8TEqGXLlkpKSlJQUJBKly6tXbt2afny5dq0aZOGDRt2w7rHjRunlStXauHChdq9e7f8/f0VFBSkuLi4AvqkAAAAih6miwNAEWM2m+Xu7i47Ozt5e3tbtteoUUMzZsyw6jtq1CjL135+fpo8ebIGDRqkTz/91LI9PT1d8+bNU/Xq1SVJw4YN09tvvy1JcnNzk7Ozs1JTU63OtXDhQv3zzz/66quv5OrqKkn6+OOP1bFjR02fPl3ly5e3qiMpKUlz585VSEiInnzySUnS/PnztXHjRn355ZcaO3asDT4ZAACAoo+RbAAoJpo0aZJj26ZNm9S2bVtVrFhR7u7u6tmzpy5duqTk5GRLHxcXF0vAliQfHx/Fxsbe9FyHDx9Ww4YNLQFbkgIDA5WVlaUjR47k6H/8+HGlp6crMDDQss3e3l7NmzfX4cOH83WdAAAAxRkhGwCKiWsDryRFRUWpQ4cOatCggVauXKnIyEh98sknkq4ujJbN3t7eaj+TycSq4AAAAAWEkA0AxVRkZKSysrI0c+ZMPfTQQ6pZs6bOnj2b7+M4ODgoMzPTalvt2rW1d+9eJSUlWbaFh4erRIkSqlWrVo5jVK9e3XK/eLb09HTt2rVLderUyXdNAAAAxRUhGwCKKX9/f6Wnp+ujjz7SiRMnFBoaalkQLT/8/Py0b98+HTlyRBcvXlR6erq6d+8uJycn9e7dWwcOHNDWrVs1fPhw9ezZM8f92NLVUfbBgwdr7Nix+vHHH3Xo0CH1799fycnJ6tevny0uFwAAoFggZAPAXWQYhuKS0nQqLllxSWl3NG27YcOGmjVrlqZPn6569epp8eLFmjp1ar6P079/f9WqVUtNmzaVl5eXwsPD5eLiovXr1ysuLk7NmjXTs88+q7Zt2+rjjz++4XGmTZumLl26qGfPnmrcuLH+/PNPrV+/XqVLl77tawQAAChuTAY35t1SYmKizGazEhIS5OHhUdjlACiGElLStTLytBbuiNLJuP+/KFmVMi7q3dJPXZpUktnZ/iZHAAAAwI0UpcxGyM6DovQNA1D8hB29oMGLIpWSdvW+52v/0jX933+dHew0t0cTta7pddfrAwAAKO6KUmZjujgAFKCwoxfUd8GvSknPlCHrgK3/e29ISknPVN8Fvyrs6IW7XyQAAABshpANAAUkISVdgxdFXg3St5gzZBhXw/bgRZFKSEm/G+UBAACgABCyAaCArIw8rZS0zFsG7GyGIaWkZWrV7tMFWxgAAAAKDCEbAAqAYRhauCPqtvYNCY+6o1XHAQAAUHgI2QBQAP5OTtfJuOQc92DfiiHpZFyy4pOZMg4AAFAcEbIBoAAkpWbc0f5X7nB/AAAAFA5CNgAUAFfHkne0v9sd7g8AAIDCQcgGgAJQ2sVeVcq4WJ6DnVcmSVXKuKiUi31BlAUAAIACRsgGgAJgMpnUu6Xfbe3bJ9BPJlN+4zkAAACKAkI2ABSQLk0qydnBTnnNyyVMkrODnZ5pXKlgCwMAAECBIWQDQAExO9trbo8mMkm3DNrZ7fN6NJHZmaniAAAAxRUhGwAKUOuaXlrQt7mc7e2uhu3r2rO3OdvbKaRvc7Wq6XX3iwQAAIDNsHwtABSw1jW9FDGhrVbtPq2Q8CidjEu2tFUu46I+gX7q0qSSPJwYwQYAACjuTIZhGIVdRFGXmJgos9mshIQEeXh4FHY5AIoxwzAUn5yuK6kZcnMsqVIu9ixyBgAAcIeKUmZjJBsA7iKTyaTSrg4q7epQ2KUAAACgAHBPNgAAAAAANkLIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjhGwAAAAAAGyEkA0AAAAAgI0QsgEAAAAAsBFCNgAAAAAANkLIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjhGwAAAAAAGyEkA0AAAAAgI0QsgEAAAAAsBFCNgAAAAAANkLIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjhGwAAAAAAGyEkA0AAAAAgI0QsgEAAAAAsBFCNgAAAAAANkLIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjhGwAAAAAAGyEkA0AAAAAgI0QsgEAAAAAsBFCNgAAAAAANkLIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjhGwAAAAAAGyEkA0AAAAAgI0QsgEAAAAAsBFCNgAAAAAANkLIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjRSZkT5s2TSaTSaNGjbJsa9OmjUwmk9Vr0KBBVvtFR0crODhYLi4uKleunMaOHauMjAyrPtu2bVPjxo3l6Ogof39/hYSE3IUrAgAAAADcb0oWdgGStGvXLn322Wdq0KBBjrb+/fvr7bfftrx3cXGxfJ2Zmang4GB5e3trx44diomJUa9evWRvb693331XkvTXX38pODhYgwYN0uLFi7V582a9/PLL8vHxUVBQUMFfHAAAAADgvlHoI9lXrlxR9+7dNX/+fJUuXTpHu4uLi7y9vS0vDw8PS9uGDRt06NAhLVq0SI0aNdKTTz6pd955R5988onS0tIkSfPmzVPVqlU1c+ZM1a5dW8OGDdOzzz6rDz744K5dIwAAAADg/lDoIXvo0KEKDg5Wu3btcm1fvHixPD09Va9ePU2YMEHJycmWtoiICNWvX1/ly5e3bAsKClJiYqIOHjxo6XP9sYOCghQREVEAVwMAAAAAuJ8V6nTxpUuXavfu3dq1a1eu7S+++KKqVKmiChUqaN++fRo/fryOHDmiVatWSZLOnTtnFbAlWd6fO3fupn0SExOVkpIiZ2fnHOdNTU1Vamqq5X1iYuLtXyQAAAAA4L5RaCH71KlTGjlypDZu3CgnJ6dc+wwYMMDydf369eXj46O2bdvq+PHjql69eoHVNnXqVE2aNKnAjg8AAAAAuDcV2nTxyMhIxcbGqnHjxipZsqRKliypsLAwffjhhypZsqQyMzNz7NOiRQtJ0p9//ilJ8vb21vnz5636ZL/39va+aR8PD49cR7ElacKECUpISLC8Tp06dWcXCwAAAAC4LxTaSHbbtm21f/9+q219+/bVAw88oPHjx8vOzi7HPnv27JEk+fj4SJICAgI0ZcoUxcbGqly5cpKkjRs3ysPDQ3Xq1LH0WbdundVxNm7cqICAgBvW5ujoKEdHx9u+NgAAAADA/anQQra7u7vq1atntc3V1VVly5ZVvXr1dPz4cS1ZskTt27dX2bJltW/fPo0ePVqtWrWyPOrriSeeUJ06ddSzZ0/NmDFD586d0+uvv66hQ4daQvKgQYP08ccfa9y4cXrppZe0ZcsWLVu2TGvXrr3r1wwAAAAAuLcV+uriN+Lg4KBNmzbpiSee0AMPPKBXX31VXbp00erVqy197OzstGbNGtnZ2SkgIEA9evRQr169rJ6rXbVqVa1du1YbN25Uw4YNNXPmTH3xxRc8IxsAAAAAYHMmwzCMwi6iqEtMTJTZbFZCQoLVc7oBAAAAAIWvKGW2IjuSDQAAAABAcUPIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjhGwAAAAAAGyEkA0AAAAAgI0QsgEAAAAAsBFCNgAAAAAANkLIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjhGwAAAAAAGyEkA0AAAAAgI0QsgEAAAAAsBFCNgAAAAAANkLIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjhGwAAAAAAGyEkA0AAAAAgI0QsgEAAAAAsBFCNgAAAAAANkLIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjhGwAAAAAAGyEkA0AAAAAgI0QsgEAAAAAsBFCNgAAAAAANkLIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjhGwAAAAAAGyEkA0AAAAAgI0QsgEAAAAAsBFCNgAAAAAANkLIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjhGwAAAAAAGyEkA0AAAAAgI0QsgEAAAAAsBFCNgAAAAAANkLIBgAAAADcc9q0aaNRo0bd9fOWvOtnBAAAAADARrZt26ZHH300x/ZVq1bJ3t7+rtdDyAYAAAAAFDlpaWlycHC47f3LlCljw2ryjuniAAAAAACbyMrK0owZM+Tv7y9HR0dVrlxZU6ZMkSTt379fjz32mJydnVW2bFkNGDBAV65csezbp08fde7cWVOmTFGFChVUq1YtSVJoaKiaNm0qd3d3eXt768UXX1RsbKwkKSoqymoU22w2q0+fPpJyThf38/PTu+++q5deeknu7u6qXLmyPv/8c6v6x48fr5o1a8rFxUXVqlXTG2+8ofT09Hx9BoRsAAAAAIBNTJgwQdOmTdMbb7yhQ4cOacmSJSpfvrySkpIUFBSk0qVLa9euXVq+fLk2bdqkYcOGWe2/efNmHTlyRBs3btSaNWskSenp6XrnnXe0d+9effvtt4qKirIEaV9fX61cudKy/9GjRzVnzpwb1jdz5kw1bdpUv//+u4YMGaLBgwfryJEjlnZ3d3eFhITo0KFDmjNnjubPn68PPvggX5+ByTAMI1973IcSExNlNpuVkJAgDw+Pwi4HAAAAAIqcy5cvy8vLSx9//LFefvllq7b58+dr/PjxOnXqlFxdXSVJ69atU8eOHXX27FmVL19effr00Y8//qjo6OibThP/7bff1KxZM12+fFlubm5W92Rfm9natGmjRo0aafbs2ZKujmQ/8sgjCg0NlSQZhiFvb29NmjRJgwYNyvVc77//vpYuXarffvstz58DI9kAAAAAgDt2+PBhpaamqm3btrm2NWzY0BKwJSkwMFBZWVlWI8n169fPEbAjIyPVsWNHVa5cWe7u7mrdurUkKTo6Ot81NmjQwPK1yWSSt7e3Zeq5JH399dcKDAyUt7e33Nzc9Prrr+f7PIRsAAAAAMAdc3Z2vuNjXBvCJVmmmXt4eGjx4sXatWuXvvnmG0lXF0bLr+tXGzeZTMrKypIkRUREqHv37mrfvr3WrFmj33//Xf/5z3/yfR5CNgAAAADgjtWoUUPOzs7avHlzjrbatWtr7969SkpKsmwLDw9XiRIlLAuc5eaPP/7QpUuXNG3aND3yyCN64IEHrEaeJd3RCuTX2rFjh6pUqaL//Oc/atq0qWrUqKGTJ0/m+ziEbAAAAADAHXNyctL48eM1btw4ffXVVzp+/Lh++eUXffnll+revbucnJzUu3dvHThwQFu3btXw4cPVs2dPlS9f/obHrFy5shwcHPTRRx/pxIkT+v777/XOO+9Y9alSpYpMJpMk6eLFi1YrludHjRo1FB0draVLl+r48eP68MMPLaPm+UHIBgAAAADckGEYiktK06m4ZMUlpelma2e/8cYbevXVVzVx4kTVrl1bXbt2VWxsrFxcXLR+/XrFxcWpWbNmevbZZ9W2bVt9/PHHNz23l5eXQkJCtHz5ctWpU0fTpk3T+++/b9WnYsWKeu211yRJ/v7+OVYsz6tOnTpp9OjRGjZsmBo1aqQdO3bojTfeyPdxWF08D1hdHAAAAMD9JiElXSsjT2vhjiidjEu2bK9SxkW9W/qpS5NKMjvb3+QId09RymyE7DwoSt8wAAAAAChoYUcvaPCiSKWkZUqSrg2Npv/7r7ODneb2aKLWNb3uen3XK0qZjeniAAAAAACLsKMX1HfBr0pJz5Qh64Ct/3tvSEpJz1TfBb8q7OiFu19kEVYyvzukpqZq586dOnnypJKTk+Xl5aUHH3xQVatWLYj6AAAAAAB3SUJKugYvirwapG8x59kwJJmkwYsiFTGhbZGZOl7Y8hyyw8PDNWfOHK1evVrp6ekym81ydnZWXFycUlNTVa1aNQ0YMECDBg2Su7t7QdYMAAAAACgAKyNPKyUtM8fo9Y0YhpSSlqlVu0+rbyADr1Iep4t36tRJXbt2lZ+fnzZs2KDLly/r0qVLOn36tJKTk3Xs2DG9/vrr2rx5s2rWrKmNGzcWdN0AAAAAABsyDEMLd0Td1r4h4VE3XXX8fpKnkezg4GCtXLlS9va5D/9Xq1ZN1apVU+/evXXo0CHFxMTYtEgAAAAAQMH6OzndahXxvDIknYxLVnxyukq7Oti+sGImTyF74MCBeT5gnTp1VKdOndsuCAAAAABw9yWlZtzR/ldSMwjZYnVxAAAAAIAkV8d8r4ttxe0O979X5DtkZ2Zm6v3331fz5s3l7e2tMmXKWL0AAAAAAMVPaRd7VSnjYnkOdl6ZJFUp46JSLqwuLt1GyJ40aZJmzZqlrl27KiEhQa+88oqeeeYZlShRQm+99VYBlAgAAAAAKGgmk0m9W/rd1r59Av1kMuU3nt+b8h2yFy9erPnz5+vVV19VyZIl9cILL+iLL77QxIkT9csvvxREjQAAAACAu6BLk0pydrBTXvNyCZPk7GCnZxpXKtjCipF8h+xz586pfv36kiQ3NzclJCRIkjp06KC1a9fatjoAAAAAwF1jdrbX3B5NZJJuGbSz2+f1aCKzM1PFs+U7ZFeqVMnyiK7q1atrw4YNkqRdu3bJ0dHRttUBAAAAAO6q1jW9tKBvcznb210N29e1Z29ztrdTSN/malXT6+4XWYTle/m3p59+Wps3b1aLFi00fPhw9ejRQ19++aWio6M1evTogqgRAAAAAHAXta7ppYgJbbVq92mFhEdZPT+7chkX9Qn0U5cmleThxAj29UyGYRh3coCIiAhFRESoRo0a6tixo63qKlISExNlNpuVkJAgDw+Pwi4HAAAAAO4awzAUn5yuK6kZcnMsqVIu9kVukbOilNnuOGTfD4rSNwwAAAAAYK0oZbbbelr4sWPHtHXrVsXGxiorK8uqbeLEiTYpDAAAAACA4ibfIXv+/PkaPHiwPD095e3tbTVNwGQyEbIBAAAAAPetfIfsyZMna8qUKRo/fnxB1AMAAAAAQLGV70d4/f3333ruuedsXsi0adNkMpk0atQoy7Z//vlHQ4cOVdmyZeXm5qYuXbro/PnzVvtFR0crODhYLi4uKleunMaOHauMjAyrPtu2bVPjxo3l6Ogof39/hYSE2Lx+AAAAAADyHbKfe+45y7OxbWXXrl367LPP1KBBA6vto0eP1urVq7V8+XKFhYXp7NmzeuaZZyztmZmZCg4OVlpamnbs2KGFCxcqJCTEasr6X3/9peDgYD366KPas2ePRo0apZdfflnr16+36TUAAAAAAJCn1cU//PBDy9dJSUmaNWuWgoODVb9+fdnbWz8XbcSIEfkq4MqVK2rcuLE+/fRTTZ48WY0aNdLs2bOVkJAgLy8vLVmyRM8++6wk6Y8//lDt2rUVERGhhx56SD/88IM6dOigs2fPqnz58pKkefPmafz48bpw4YIcHBw0fvx4rV27VgcOHLCcs1u3boqPj9ePP/6YpxqL0kp1AAAAAABrRSmz5eme7A8++MDqvZubm8LCwhQWFma13WQy5TtkDx06VMHBwWrXrp0mT55s2R4ZGan09HS1a9fOsu2BBx5Q5cqVLSE7IiJC9evXtwRsSQoKCtLgwYN18OBBPfjgg4qIiLA6Rnafa6elAwAAAABgC3kK2X/99VeBnHzp0qXavXu3du3alaPt3LlzcnBwUKlSpay2ly9fXufOnbP0uTZgZ7dnt92sT2JiolJSUuTs7Jzj3KmpqUpNTbW8T0xMzP/FAQAAAADuO3m+J7tVq1aaOXOmjh07ZpMTnzp1SiNHjtTixYvl5ORkk2PaytSpU2U2my0vX1/fwi4JAAAAAFAM5Dlk9+vXTzt27FDjxo1Vu3ZtjR8/XuHh4crDLd25ioyMVGxsrBo3bqySJUuqZMmSCgsL04cffqiSJUuqfPnySktLU3x8vNV+58+fl7e3tyTJ29s7x2rj2e9v1cfDwyPXUWxJmjBhghISEiyvU6dO3dY1AgAAAADuL3kO2b1799bKlSt18eJFzZw5U/Hx8Xruuefk7e2tl156Sd9++61SUlLyfOK2bdtq//792rNnj+XVtGlTde/e3fK1vb29Nm/ebNnnyJEjio6OVkBAgCQpICBA+/fvV2xsrKXPxo0b5eHhoTp16lj6XHuM7D7Zx8iNo6OjPDw8rF4AAAAAANxKnlYXv5mdO3fq+++/1/fff6/jx4/rscce04QJExQYGJjvY7Vp08ayurgkDR48WOvWrVNISIg8PDw0fPhwSdKOHTskXX2EV6NGjVShQgXNmDFD586dU8+ePfXyyy/r3XfflXT1fvJ69epp6NCheumll7RlyxaNGDFCa9euVVBQUJ7qKkor1QEAAAAArBWlzJanhc9upkWLFmrRooUmTZqkHTt2KDIyUjExMbaoTR988IFKlCihLl26KDU1VUFBQfr0008t7XZ2dlqzZo0GDx6sgIAAubq6qnfv3nr77bctfapWraq1a9dq9OjRmjNnjipVqqQvvvgizwEbAAAAAIC8uuOR7Gx79+5V48aNlZmZaYvDFSlF6bciAAAAAABrRSmz5fmebAAAAAAAcHOEbAAAAAAAbISQDQAAAACAjeR54bN9+/bdtP3IkSN3XAwAAAAAAMVZnkN2o0aNZDKZlNs6adnbTSaTTYsDAAAAAKA4yXPI/uuvvwqyDgAAAAAAir08h+wqVaoUZB0AAAAAABR7eVr4LDo6Ol8HPXPmzG0VAwAAAABAcZankN2sWTMNHDhQu3btumGfhIQEzZ8/X/Xq1dPKlSttViAAAAAAAMVFnqaLHzp0SFOmTNHjjz8uJycnNWnSRBUqVJCTk5P+/vtvHTp0SAcPHlTjxo01Y8YMtW/fvqDrBgAAAACgyDEZuS0XfgMpKSlau3attm/frpMnTyolJUWenp568MEHFRQUpHr16hVkrYUmMTFRZrNZCQkJ8vDwKOxyAAAAAADXKEqZLV8h+35VlL5hAAAAAABrRSmz5emebAAAAAAAcGuEbAAAAAAAbISQDQAAAACAjRCyAQAAAACwEUI2AAAAAAA2kqfnZF/v2LFj2rp1q2JjY5WVlWXVNnHiRJsUBgAAAABAcZPvkD1//nwNHjxYnp6e8vb2lslksrSZTCZCNgAAAADgvpXvkD158mRNmTJF48ePL4h6AAAAAAAotvJ9T/bff/+t5557riBqAQAAAACgWMt3yH7uuee0YcOGgqgFAAAAAIBiLd/Txf39/fXGG2/ol19+Uf369WVvb2/VPmLECJsVBwAAAABAcWIyDMPIzw5Vq1a98cFMJp04ceKOiypqEhMTZTablZCQIA8Pj8IuBwAAAABwjaKU2fI9kv3XX38VRB0AAAAAABR7+b4n+1qGYSifA+EAAAAAANyzbitkf/XVV6pfv76cnZ3l7OysBg0aKDQ01Na1AQAAAABQrOR7uvisWbP0xhtvaNiwYQoMDJQkbd++XYMGDdLFixc1evRomxcJAAAAAEBxcFsLn02aNEm9evWy2r5w4UK99dZb9+Q920XpJnoAAAAAgLWilNnyPV08JiZGLVu2zLG9ZcuWiomJsUlRAAAAAAAUR/kO2f7+/lq2bFmO7V9//bVq1Khhk6IAAAAAACiO8n1P9qRJk9S1a1f99NNPlnuyw8PDtXnz5lzDNwAAAAAA94t8j2R36dJFO3fulKenp7799lt9++238vT01K+//qqnn366IGoEAAAAAKBYyPfCZ/ejonQTPQAAAADAWlHKbHmaLp6YmGgpNDEx8aZ9C/uCAAAAAAAoLHkK2aVLl1ZMTIzKlSunUqVKyWQy5ehjGIZMJpMyMzNtXiQAAAAAAMVBnkL2li1bVKZMGUnS1q1bC7QgAAAAAACKqzyF7NatW1u+rlq1qnx9fXOMZhuGoVOnTtm2OgAAAAAAipF8ry5etWpVXbhwIcf2uLg4Va1a1SZFAQAAAABQHOU7ZGffe329K1euyMnJySZFAQAAAABQHOVpurgkvfLKK5Ikk8mkN954Qy4uLpa2zMxM7dy5U40aNbJ5gQAAAAAAFBd5Dtm///67pKsj2fv375eDg4OlzcHBQQ0bNtSYMWNsXyEAAAAAAMVEnkN29qriffv21Zw5c3geNgAAAAAA18n3PdmzZ89WRkZGju1xcXFKTEy0SVEAAAAAABRH+Q7Z3bp109KlS3NsX7Zsmbp162aTogAAAAAAKI7yHbJ37typRx99NMf2Nm3aaOfOnTYpCgAAAACA4ijfITs1NTXX6eLp6elKSUmxSVEAAAAAABRH+Q7ZzZs31+eff55j+7x589SkSRObFAUAAAAAQHGU59XFs02ePFnt2rXT3r171bZtW0nS5s2btWvXLm3YsMHmBQIAAAAAUFzkeyQ7MDBQERER8vX11bJly7R69Wr5+/tr3759euSRRwqiRgAAAAAAigWTYRhGYRdR1CUmJspsNishIYHngwMAAABAEVOUMlu+p4tHR0fftL1y5cq3XQwAAAAAAMVZvkO2n5+fTCbTDdszMzPvqCAAAAAAAIqrfIfs33//3ep9enq6fv/9d82aNUtTpkyxWWEAAAAAABQ3+Q7ZDRs2zLGtadOmqlChgt577z0988wzNikMAAAAAIDiJt+ri99IrVq1tGvXLlsdDgAAAACAYiffI9mJiYlW7w3DUExMjN566y3VqFHDZoUBAAAAAFDc5DtklypVKsfCZ4ZhyNfXV0uXLrVZYQAAAAAAFDf5Dtlbt261el+iRAl5eXnJ399fJUvm+3AAAAAAANwz8p2KW7duXRB1AAAAAABQ7OUpZH///fd5PmCnTp1uuxgAAAAAAIqzPIXszp07W703mUwyDMPqfbbMzEzbVAYAAAAAQDGTp0d4ZWVlWV4bNmxQo0aN9MMPPyg+Pl7x8fFat26dGjdurB9//LGg6wUAAAAAoMjK9z3Zo0aN0rx58/Twww9btgUFBcnFxUUDBgzQ4cOHbVogAAAAAADFRZ5Gsq91/PhxlSpVKsd2s9msqKgoG5QEAAAAAEDxlO+Q3axZM73yyis6f/68Zdv58+c1duxYNW/e3KbFAQAAAABQnOQ7ZP/3v/9VTEyMKleuLH9/f/n7+6ty5co6c+aMvvzyy4KoEQAAAACAYiHf92T7+/tr37592rhxo/744w9JUu3atdWuXTurVcYBAAAAALjfmIxrn8WFXCUmJspsNishIUEeHh6FXQ4AAAAA4BpFKbPle7q4JIWFhaljx46W6eKdOnXSzz//bOvaAAAAAAAoVvIdshctWqR27drJxcVFI0aM0IgRI+Tk5KS2bdtqyZIlBVEjAAAAAADFQr6ni9euXVsDBgzQ6NGjrbbPmjVL8+fPvyefk12Uph4AAAAAAKwVpcyW75HsEydOqGPHjjm2d+rUSX/99ZdNigIAAAAAoDjKd8j29fXV5s2bc2zftGmTfH19bVIUAAAAAADFUb4f4fXqq69qxIgR2rNnj1q2bClJCg8PV0hIiObMmWPzAgEAAAAAKC7yHbIHDx4sb29vzZw5U8uWLZN09T7tr7/+Wk899ZTNCwQAAAAAoLjIV8jOyMjQu+++q5deeknbt28vqJoAAAAAACiW8nVPdsmSJTVjxgxlZGQUVD0AAAAAABRb+V74rG3btgoLCyuIWgAAAAAAKNbyfU/2k08+qX//+9/av3+/mjRpIldXV6v2Tp062aw4AAAAAACKk3yPZA8ZMkTnz5/XrFmz1L17d3Xu3Nnyevrpp/N1rLlz56pBgwby8PCQh4eHAgIC9MMPP1ja27RpI5PJZPUaNGiQ1TGio6MVHBwsFxcXlStXTmPHjs0xnX3btm1q3LixHB0d5e/vr5CQkPxeNgAAAAAAt5TvkeysrCybnbxSpUqaNm2aatSoIcMwtHDhQj311FP6/fffVbduXUlS//799fbbb1v2cXFxsXydmZmp4OBgeXt7a8eOHYqJiVGvXr1kb2+vd999V5L0119/KTg4WIMGDdLixYu1efNmvfzyy/Lx8VFQUJDNrgUAAAAAAJNhGEZeO0dFRWnjxo1KT09X69atLUHYlsqUKaP33ntP/fr1U5s2bdSoUSPNnj07174//PCDOnTooLNnz6p8+fKSpHnz5mn8+PG6cOGCHBwcNH78eK1du1YHDhyw7NetWzfFx8frxx9/zFNNiYmJMpvNSkhIkIeHxx1fIwAAAADAdopSZsvzdPGtW7eqbt26GjhwoIYNG6YHH3xQixYtslkhmZmZWrp0qZKSkhQQEGDZvnjxYnl6eqpevXqaMGGCkpOTLW0RERGqX7++JWBLUlBQkBITE3Xw4EFLn3bt2lmdKygoSBERETesJTU1VYmJiVYvAAAAAABuJc8h+4033tDjjz+uM2fO6NKlS+rfv7/GjRt3xwXs379fbm5ucnR01KBBg/TNN9+oTp06kqQXX3xRixYt0tatWzVhwgSFhoaqR48eln3PnTtnFbAlWd6fO3fupn0SExOVkpKSa01Tp06V2Wy2vHx9fe/4OgEAAAAA974835N94MAB7dixQz4+PpKk9957T5999pkuXbqksmXL3nYBtWrV0p49e5SQkKAVK1aod+/eCgsLU506dTRgwABLv/r168vHx0dt27bV8ePHVb169ds+561MmDBBr7zyiuV9YmIiQRsAAAAAcEt5HslOTEyUp6en5b2Li4ucnZ2VkJBwRwU4ODjI399fTZo00dSpU9WwYUPNmTMn174tWrSQJP3555+SJG9vb50/f96qT/Z7b2/vm/bx8PCQs7NzrudxdHS0rHie/QIAAAAA4Fbytbr4+vXrZTabLe+zsrK0efNmq0XF7vQ52VlZWUpNTc21bc+ePZJkGU0PCAjQlClTFBsbq3LlykmSNm7cKA8PD8uU84CAAK1bt87qOBs3brS67xsAAAAAAFvI8+riJUrcetDbZDIpMzMzzyefMGGCnnzySVWuXFmXL1/WkiVLNH36dK1fv17VqlXTkiVL1L59e5UtW1b79u3T6NGjValSJYWFhUm6ulhao0aNVKFCBc2YMUPnzp1Tz5499fLLL1s9wqtevXoaOnSoXnrpJW3ZskUjRozQ2rVr8/wIr6K0Uh0AAAAAwFpRymx5Hsm25fOxs8XGxqpXr16KiYmR2WxWgwYNtH79ej3++OM6deqUNm3apNmzZyspKUm+vr7q0qWLXn/9dcv+dnZ2WrNmjQYPHqyAgAC5urqqd+/eVs/Vrlq1qtauXavRo0drzpw5qlSpkr744guekQ0AAAAAsLl8PSf7flWUfisCAAAAALBWlDJbnhc+AwAAAAAAN0fIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjeXqEV+nSpWUymfJ0wLi4uDsqCAAAAACA4ipPIXv27NkFXAYAAAAAAMVfnkJ27969C7oOAAAAAACKvTyF7MTERMsDvRMTE2/at7Af/A0AAAAAQGHJ8z3ZMTExKleunEqVKpXr/dmGYchkMikzM9PmRQIAAAAAUBzkKWRv2bJFZcqUkSRt3bq1QAsCAAAAAKC4MhmGYRR2EUVdYmKizGazEhISmA4PAAAAAEVMUcpseRrJvtauXbv0v//9T0ePHpUk1apVSy+88IKaNm1q8+IAAAAAAChOSuSn87hx49SiRQt98cUXOn36tE6fPq3PP/9cLVq00Pjx4wuqRgAAAAAAioU8h+yFCxfqo48+0ocffqhLly5pz5492rNnj+Li4vTBBx/oww8/1FdffVWQtQIAAAAAUKTl+Z7s5s2b64UXXtDo0aNzbZ81a5aWLl2qX3/91aYFFgVFaX4/AAAAAMBaUcpseR7JPnjwoJ566qkbtnfu3FkHDx60SVEAAAAAABRHeQ7ZdnZ2SktLu2F7enq67OzsbFIUAAAAAADFUZ5DduPGjbV48eIbtoeGhqpx48Y2KQoAAAAAgOIoz4/wGjNmjDp37qzU1FS9+uqrKl++vCTp3LlzmjlzpmbPnq1vvvmmwAoFAAAAAKCoy/PCZ5L00UcfacyYMcrIyJDZbJYkJSQkqGTJkpoxY4ZGjhxZYIUWpqJ0Ez0AAAAAwFpRymz5CtmSdPr0aS1fvlzHjh2TJNWsWVNdunSRr69vgRRYFBSlbxgAAAAAwFpRymz5Dtn3o6L0DQMAAAAAWCtKmS3PC58BAAAAAICbI2QDAAAAAGAjhGwAAAAAAGyEkA0AAAAAgI3cVsiOj4/XF198oQkTJiguLk6StHv3bp05c8amxQEAAAAAUJyUzO8O+/btU7t27WQ2mxUVFaX+/furTJkyWrVqlaKjo/XVV18VRJ0AAAAAABR5+R7JfuWVV9SnTx8dO3ZMTk5Olu3t27fXTz/9ZNPiAAAAAAAoTvIdsnft2qWBAwfm2F6xYkWdO3fOJkUBAAAAAFAc5TtkOzo6KjExMcf2o0ePysvLyyZFAQAAAABQHOU7ZHfq1Elvv/220tPTJUkmk0nR0dEaP368unTpYvMCAQAAAAAoLvIdsmfOnKkrV66oXLlySklJUevWreXv7y93d3dNmTKlIGoEAAAAAKBYyPfq4mazWRs3btT27du1b98+XblyRY0bN1a7du0Koj4AAAAAAIoNk2EYRmEXUdQlJibKbDYrISFBHh4ehV0OAAAAAOAaRSmz5Xsk+8MPP8x1u8lkkpOTk/z9/dWqVSvZ2dndcXEAAAAAABQn+Q7ZH3zwgS5cuKDk5GSVLl1akvT333/LxcVFbm5uio2NVbVq1bR161b5+vravGAAAAAAAIqqfC989u6776pZs2Y6duyYLl26pEuXLuno0aNq0aKF5syZo+joaHl7e2v06NEFUS8AAAAAAEVWvu/Jrl69ulauXKlGjRpZbf/999/VpUsXnThxQjt27FCXLl0UExNjy1oLTVGa3w8AAAAAsFaUMlu+R7JjYmKUkZGRY3tGRobOnTsnSapQoYIuX75859UBAAAAAFCM5DtkP/rooxo4cKB+//13y7bff/9dgwcP1mOPPSZJ2r9/v6pWrWq7KnHH2rRpo1GjRhX4eaKiomQymbRnz54CPxcAAAAAFDX5DtlffvmlypQpoyZNmsjR0VGOjo5q2rSpypQpoy+//FKS5ObmppkzZ9q8WBR9vr6+iomJUb169Qq7FAAAAAC46/K9uri3t7c2btyoP/74Q0ePHpUk1apVS7Vq1bL0efTRR21XIYoVOzs7eXt7F3YZAAAAAFAo8j2Sne2BBx5Qp06d1KlTJ6uAjaIvNTVVY8aMUcWKFeXq6qoWLVpo27ZtVn3Cw8PVpk0bubi4qHTp0goKCtLff/8tScrKytKMGTPk7+8vR0dHVa5cWVOmTJGUc7r4tm3bZDKZtHnzZjVt2lQuLi5q2bKljhw5YnW+uXPnqnr16nJwcFCtWrUUGhpa4J8DAAAAANhavkeyJen06dP6/vvvFR0drbS0NKu2WbNm2aQwFJxhw4bp0KFDWrp0qSpUqKBvvvlG//rXv7R//37VqFFDe/bsUdu2bfXSSy9pzpw5KlmypLZu3arMzExJ0oQJEzR//nx98MEHevjhhxUTE6M//vjjpuf8z3/+o5kzZ8rLy0uDBg3SSy+9pPDwcEnSN998o5EjR2r27Nlq166d1qxZo759+6pSpUrMigAAAABQrOT7EV6bN29Wp06dVK1aNf3xxx+qV6+eoqKiZBiGGjdurC1bthRUrYWmKC0Hf7vatGmjRo0a6ZVXXlG1atUUHR2tChUqWNrbtWun5s2b691339WLL76o6Ohobd++PcdxLl++LC8vL3388cd6+eWXc7RHRUWpatWq+v3339WoUSNt27ZNjz76qDZt2qS2bdtKktatW6fg4GClpKTIyclJgYGBqlu3rj7//HPLcZ5//nklJSVp7dq1BfBpAAAAALiXFKXMlu/p4hMmTNCYMWO0f/9+OTk5aeXKlTp16pRat26t5557riBqhA3t379fmZmZqlmzptzc3CyvsLAwHT9+XJIsI9m5OXz4sFJTU2/YfiMNGjSwfO3j4yNJio2NtRwzMDDQqn9gYKAOHz6cr3MAAAAAQGHL93Txw4cP63//+9/VnUuWVEpKitzc3PT222/rqaee0uDBg21eJGznypUrsrOzU2RkpOzs7Kza3NzcJEnOzs433P9mbTdjb29v+dpkMkm6em83AAAAANxL8j2S7erqarkP28fHxzL6KUkXL160XWUoEA8++KAyMzMVGxsrf39/q1f2quANGjTQ5s2bc92/Ro0acnZ2vmH77ahdu7bl/uxs4eHhqlOnjs3OAQAAAAB3Q75Hsh966CFt375dtWvXVvv27fXqq69q//79WrVqlR566KGCqBE2VLNmTXXv3l29evXSzJkz9eCDD+rChQvavHmzGjRooODgYE2YMEH169fXkCFDNGjQIDk4OGjr1q167rnn5OnpqfHjx2vcuHFycHBQYGCgLly4oIMHD6pfv363VdPYsWP1/PPP68EHH1S7du20evVqrVq1Sps2bbLx1QMAAABAwcp3yJ41a5auXLkiSZo0aZKuXLmir7/+WjVq1GBl8UJgGIb+Tk5XUmqGXB1LqrSLvWU69o0sWLBAkydP1quvvqozZ87I09NTDz30kDp06CDpahDfsGGDXnvtNTVv3lzOzs5q0aKFXnjhBUnSG2+8oZIlS2rixIk6e/asfHx8NGjQoNu+hs6dO2vOnDl6//33NXLkSFWtWlULFixQmzZtbvuYAAAAAFAY8rW6eGZmpsLDw9WgQQOVKlWqAMsqWorSSnXZElLStTLytBbuiNLJuGTL9iplXNS7pZ+6NKkks7P9TY4AAAAAAPeGopTZ8v0ILycnJx0+fFhVq1YtqJqKnKL0DZOksKMXNHhRpFLSrj63+tpvYPYYtrODneb2aKLWNb3uen0AAAAAcDcVpcyW74XP6tWrpxMnThRELciDsKMX1HfBr0pJz5Qh64Ct/3tvSEpJz1TfBb8q7OiFu18kAAAAANyn8h2yJ0+erDFjxmjNmjWKiYlRYmKi1QsFJyElXYMXRV4N0reYf2AYV8P24EWRSkhJvxvlAQAAAMB9L98Ln7Vv316S1KlTJ6sFtgzDkMlkUmZmpu2qg5WVkaeVkpaZY/T6RgxDSknL1Krdp9U38P6Z3g8AAAAAhSXfIXvr1q0FUQduwTAMLdwRdVv7hoRHqU9Lv1uuOg4AAAAAuDP5DtmtW7cuiDpwC38np1utIp5XhqSTccmKT05XaVcH2xcGAAAAALDI9z3ZkvTzzz+rR48eatmypc6cOSNJCg0N1fbt221aHP6/pNSMO9r/yh3uDwAAAAC4tXyH7JUrVyooKEjOzs7avXu3UlNTJUkJCQl69913bV4grnJ1zPekAytud7g/AAAAAODWbmt18Xnz5mn+/Pmyt7e3bA8MDNTu3bttWhz+v9Iu9qpSxkX5vavaJKlKGReVcrG/ZV8AAAAAwJ3Jd8g+cuSIWrVqlWO72WxWfHy8LWpCLkwmk3q39LutffsEsugZAAAAANwN+Q7Z3t7e+vPPP3Ns3759u6pVq2aTopC7Lk0qydnBTnnNyyVMkrODnZ5pXKlgCwMAAAAASLqNkN2/f3+NHDlSO3fulMlk0tmzZ7V48WKNGTNGgwcPLoga8X/Mzvaa26OJTNItg3Z2+7weTWR2Zqo4AAAAANwN+V4N69///reysrLUtm1bJScnq1WrVnJ0dNSYMWM0fPjwgqgR12hd00sL+jbX4EWRSknLlHT1MV3ZsrO3s72d5vVoolY1ve56jQAAAABwvzIZhmHcultOaWlp+vPPP3XlyhXVqVNHbm5utq6tyEhMTJTZbFZCQoI8PDwKuxxJUkJKulbtPq2Q8Cir52dXKeOiPoF+6tKkkjycGMEGAAAAcO8rSpkt3yF70aJFeuaZZ+Ti4lJQNRU5Rekbdj3DMBSfnK4rqRlycyypUi72LHIGAAAA4L5SlDJbvu/JHj16tMqVK6cXX3xR69atU2ZmZkHUhTwymUwq7eog3zIuKu3qQMAGAAA3FRISolKlSlnev/XWW2rUqFGh1XMzffr0UefOnfPcf9u2bTKZTJYn3lx/rQBwN+Q7ZMfExGjp0qUymUx6/vnn5ePjo6FDh2rHjh0FUR8AAABw15hMJn377beFXQaAYizfIbtkyZLq0KGDFi9erNjYWH3wwQeKiorSo48+qurVqxdEjQAAACjC0tPTC7sEACgy8h2yr+Xi4qKgoCA9+eSTqlGjhqKiomxUFgAAwL2pTZs2GjFihMaNG6cyZcrI29tbb731lqU9OjpaTz31lNzc3OTh4aHnn39e58+ftzrG6tWr1axZMzk5OcnT01NPP/20pS01NVVjxoxRxYoV5erqqhYtWmjbtm15rm/Xrl16/PHH5enpKbPZrNatW2v37t1WfUwmk+bOnatOnTrJ1dVVU6ZMUWZmpvr166eqVavK2dlZtWrV0pw5c/J83szMTL3yyisqVaqUypYtq3Hjxun6pYOysrI0depUyzkaNmyoFStW5PkckvTdd9+pcePGcnJyUrVq1TRp0iRlZGRIkvz8/CRJTz/9tEwmk+V99pT60NBQ+fn5yWw2q1u3brp8+bLluD/++KMefvhhS/0dOnTQ8ePH81UbgHvDbYXs5ORkLV68WO3bt1fFihU1e/ZsPf300zp48KCt6wMAALjnLFy4UK6urtq5c6dmzJiht99+Wxs3blRWVpaeeuopxcXFKSwsTBs3btSJEyfUtWtXy75r167V008/rfbt2+v333/X5s2b1bx5c0v7sGHDFBERoaVLl2rfvn167rnn9K9//UvHjh3LU22XL19W7969tX37dv3yyy+qUaOG2rdvbxUopavB8+mnn9b+/fv10ksvKSsrS5UqVdLy5ct16NAhTZw4Ua+99pqWLVuWp/POnDlTISEh+u9//6vt27crLi5O33zzjVWfqVOn6quvvtK8efN08OBBjR49Wj169FBYWFiezvHzzz+rV69eGjlypA4dOqTPPvtMISEhmjJliqSrv2CQpAULFigmJsbyXpKOHz+ub7/9VmvWrNGaNWsUFhamadOmWdqTkpL0yiuv6LffftPmzZtVokQJPf3008rKyspTbQDuIUY+de3a1XB1dTW8vLyMoUOHGjt27MjvIYqdhIQEQ5KRkJBQ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",
|
||
"text/plain": [
|
||
"<Figure size 1000x600 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Plot salvato come: .//2024-12-07_07-35_plots/water_need_vs_oil_production.png\n",
|
||
" Variety Technique Technique String \\\n",
|
||
"0 nocellara_delletna 3 tradizionale \n",
|
||
"1 nocellara_delletna 1 intensiva \n",
|
||
"2 nocellara_delletna 2 superintensiva \n",
|
||
"3 leccino 1 intensiva \n",
|
||
"4 leccino 2 superintensiva \n",
|
||
"5 leccino 3 tradizionale \n",
|
||
"6 frantoio 2 superintensiva \n",
|
||
"7 frantoio 3 tradizionale \n",
|
||
"8 frantoio 1 intensiva \n",
|
||
"9 coratina 1 intensiva \n",
|
||
"10 coratina 2 superintensiva \n",
|
||
"11 coratina 3 tradizionale \n",
|
||
"12 taggiasca 3 tradizionale \n",
|
||
"13 taggiasca 2 superintensiva \n",
|
||
"14 taggiasca 1 intensiva \n",
|
||
"15 pendolino 1 intensiva \n",
|
||
"16 pendolino 2 superintensiva \n",
|
||
"17 pendolino 3 tradizionale \n",
|
||
"18 moraiolo 2 superintensiva \n",
|
||
"19 moraiolo 1 intensiva \n",
|
||
"20 moraiolo 3 tradizionale \n",
|
||
"\n",
|
||
" Avg Olive Production (kg/ha) Avg Oil Production (L/ha) \\\n",
|
||
"0 9564.638687 2088.362004 \n",
|
||
"1 13699.079622 2991.183032 \n",
|
||
"2 17826.710664 3892.059753 \n",
|
||
"3 16432.379678 3229.053194 \n",
|
||
"4 20528.499013 4033.942398 \n",
|
||
"5 10937.982122 2149.449585 \n",
|
||
"6 24621.040119 6047.876212 \n",
|
||
"7 13740.739760 3375.103688 \n",
|
||
"8 20550.900635 5047.942655 \n",
|
||
"9 16429.706879 4215.265516 \n",
|
||
"10 19164.700743 4916.649709 \n",
|
||
"11 12318.510310 3160.037128 \n",
|
||
"12 6839.506230 1381.247995 \n",
|
||
"13 16433.741502 3319.210170 \n",
|
||
"14 10968.603159 2215.371493 \n",
|
||
"15 13705.431414 2468.678455 \n",
|
||
"16 19183.689269 3455.879324 \n",
|
||
"17 10960.549241 1974.357984 \n",
|
||
"18 17793.971752 3885.415851 \n",
|
||
"19 13144.222436 2870.020002 \n",
|
||
"20 8765.195655 1913.745255 \n",
|
||
"\n",
|
||
" Avg Water Need (m³/ha) Oil Efficiency (L/kg) \\\n",
|
||
"0 32997.227891 0.218342 \n",
|
||
"1 33079.012125 0.218349 \n",
|
||
"2 33118.708645 0.218327 \n",
|
||
"3 25013.303736 0.196506 \n",
|
||
"4 24989.459147 0.196504 \n",
|
||
"5 24981.219100 0.196512 \n",
|
||
"6 28874.473543 0.245639 \n",
|
||
"7 29003.452741 0.245628 \n",
|
||
"8 28921.261327 0.245631 \n",
|
||
"9 38270.638622 0.256564 \n",
|
||
"10 38264.650562 0.256547 \n",
|
||
"11 38253.676395 0.256528 \n",
|
||
"12 26219.134374 0.201951 \n",
|
||
"13 26253.317778 0.201975 \n",
|
||
"14 26284.027794 0.201974 \n",
|
||
"15 26154.359691 0.180124 \n",
|
||
"16 26153.199618 0.180147 \n",
|
||
"17 26152.823801 0.180133 \n",
|
||
"18 32561.911109 0.218356 \n",
|
||
"19 32577.899255 0.218348 \n",
|
||
"20 32594.860153 0.218335 \n",
|
||
"\n",
|
||
" Water Efficiency (L oil/m³ water) \n",
|
||
"0 0.063289 \n",
|
||
"1 0.090425 \n",
|
||
"2 0.117518 \n",
|
||
"3 0.129093 \n",
|
||
"4 0.161426 \n",
|
||
"5 0.086043 \n",
|
||
"6 0.209454 \n",
|
||
"7 0.116369 \n",
|
||
"8 0.174541 \n",
|
||
"9 0.110144 \n",
|
||
"10 0.128491 \n",
|
||
"11 0.082607 \n",
|
||
"12 0.052681 \n",
|
||
"13 0.126430 \n",
|
||
"14 0.084286 \n",
|
||
"15 0.094389 \n",
|
||
"16 0.132140 \n",
|
||
"17 0.075493 \n",
|
||
"18 0.119324 \n",
|
||
"19 0.088097 \n",
|
||
"20 0.058713 \n",
|
||
"Comparison by Variety:\n",
|
||
" Avg Olive Production (kg/ha) Avg Oil Production (L/ha) \\\n",
|
||
"Variety \n",
|
||
"nocellara_delletna 13696.683690 2990.507461 \n",
|
||
"leccino 15971.162702 3138.439782 \n",
|
||
"frantoio 19648.631813 4826.360700 \n",
|
||
"coratina 15974.164423 4098.136472 \n",
|
||
"taggiasca 11412.636779 2305.011278 \n",
|
||
"pendolino 14617.432649 2633.129635 \n",
|
||
"moraiolo 13232.961913 2889.399172 \n",
|
||
"\n",
|
||
" Avg Water Need (m³/ha) Oil Efficiency (L/kg) \\\n",
|
||
"Variety \n",
|
||
"nocellara_delletna 33064.983905 0.218338 \n",
|
||
"leccino 24994.676451 0.196507 \n",
|
||
"frantoio 28932.932409 0.245633 \n",
|
||
"coratina 38262.995517 0.256548 \n",
|
||
"taggiasca 26252.184893 0.201970 \n",
|
||
"pendolino 26153.461822 0.180136 \n",
|
||
"moraiolo 32578.228327 0.218349 \n",
|
||
"\n",
|
||
" Water Efficiency (L oil/m³ water) \n",
|
||
"Variety \n",
|
||
"nocellara_delletna 0.090443 \n",
|
||
"leccino 0.125564 \n",
|
||
"frantoio 0.166812 \n",
|
||
"coratina 0.107104 \n",
|
||
"taggiasca 0.087803 \n",
|
||
"pendolino 0.100680 \n",
|
||
"moraiolo 0.088691 \n",
|
||
"\n",
|
||
"Best Varieties by Water Efficiency:\n",
|
||
" Variety Avg Olive Production (kg/ha) \\\n",
|
||
"2 frantoio 19648.631813 \n",
|
||
"1 leccino 15971.162702 \n",
|
||
"3 coratina 15974.164423 \n",
|
||
"5 pendolino 14617.432649 \n",
|
||
"0 nocellara_delletna 13696.683690 \n",
|
||
"\n",
|
||
" Avg Oil Production (L/ha) Avg Water Need (m³/ha) Oil Efficiency (L/kg) \\\n",
|
||
"2 4826.360700 28932.932409 0.245633 \n",
|
||
"1 3138.439782 24994.676451 0.196507 \n",
|
||
"3 4098.136472 38262.995517 0.256548 \n",
|
||
"5 2633.129635 26153.461822 0.180136 \n",
|
||
"0 2990.507461 33064.983905 0.218338 \n",
|
||
"\n",
|
||
" Water Efficiency (L oil/m³ water) \n",
|
||
"2 0.166812 \n",
|
||
"1 0.125564 \n",
|
||
"3 0.107104 \n",
|
||
"5 0.100680 \n",
|
||
"0 0.090443 \n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"simulated_data = pd.read_parquet(f\"{data_dir}olive_training_dataset.parquet\")\n",
|
||
"olive_varieties = pd.read_parquet(f\"{data_dir}olive_varieties.parquet\")\n",
|
||
"# Esecuzione dell'analisi\n",
|
||
"comparison_data = prepare_comparison_data(simulated_data, olive_varieties)\n",
|
||
"\n",
|
||
"# Genera i grafici\n",
|
||
"plot_variety_comparison(comparison_data, 'Avg Olive Production (kg/ha)')\n",
|
||
"plot_variety_comparison(comparison_data, 'Avg Oil Production (L/ha)')\n",
|
||
"plot_variety_comparison(comparison_data, 'Avg Water Need (m³/ha)')\n",
|
||
"plot_variety_comparison(comparison_data, 'Oil Efficiency (L/kg)')\n",
|
||
"plot_variety_comparison(comparison_data, 'Water Efficiency (L oil/m³ water)')\n",
|
||
"plot_efficiency_vs_production(comparison_data)\n",
|
||
"plot_water_efficiency_vs_production(comparison_data)\n",
|
||
"plot_water_need_vs_oil_production(comparison_data)\n",
|
||
"\n",
|
||
"# Analisi per tecnica\n",
|
||
"technique_data = analyze_by_technique(simulated_data, olive_varieties)\n",
|
||
"\n",
|
||
"print(technique_data)\n",
|
||
"\n",
|
||
"# Stampa un sommario statistico\n",
|
||
"print(\"Comparison by Variety:\")\n",
|
||
"print(comparison_data.set_index('Variety'))\n",
|
||
"print(\"\\nBest Varieties by Water Efficiency:\")\n",
|
||
"print(comparison_data.sort_values('Water Efficiency (L oil/m³ water)', ascending=False).head())"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 8,
|
||
"id": "bbe87b415168368",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"def prepare_transformer_data(df, olive_varieties_df):\n",
|
||
" # Crea una copia del DataFrame per evitare modifiche all'originale\n",
|
||
" df = df.copy()\n",
|
||
"\n",
|
||
" # Ordina per zona e anno\n",
|
||
" df = df.sort_values(['zone', 'year'])\n",
|
||
"\n",
|
||
" # Definisci le feature\n",
|
||
" temporal_features = ['temp_mean', 'precip_sum', 'solar_energy_sum']\n",
|
||
" static_features = ['ha'] # Feature statiche base\n",
|
||
" target_features = ['olive_prod', 'min_oil_prod', 'max_oil_prod', 'avg_oil_prod', 'total_water_need']\n",
|
||
"\n",
|
||
" # Ottieni le varietà pulite\n",
|
||
" all_varieties = olive_varieties_df['Varietà di Olive'].unique()\n",
|
||
" varieties = [clean_column_name(variety) for variety in all_varieties]\n",
|
||
"\n",
|
||
" # Crea la struttura delle feature per ogni varietà\n",
|
||
" variety_features = [\n",
|
||
" 'tech', 'pct', 'prod_t_ha', 'oil_prod_t_ha', 'oil_prod_l_ha',\n",
|
||
" 'min_yield_pct', 'max_yield_pct', 'min_oil_prod_l_ha', 'max_oil_prod_l_ha',\n",
|
||
" 'avg_oil_prod_l_ha', 'l_per_t', 'min_l_per_t', 'max_l_per_t', 'avg_l_per_t'\n",
|
||
" ]\n",
|
||
"\n",
|
||
" # Prepara dizionari per le nuove colonne\n",
|
||
" new_columns = {}\n",
|
||
"\n",
|
||
" # Prepara le feature per ogni varietà\n",
|
||
" for variety in varieties:\n",
|
||
" # Feature esistenti\n",
|
||
" for feature in variety_features:\n",
|
||
" col_name = f\"{variety}_{feature}\"\n",
|
||
" if col_name in df.columns:\n",
|
||
" if feature != 'tech': # Non includere la colonna tech direttamente\n",
|
||
" static_features.append(col_name)\n",
|
||
"\n",
|
||
" # Feature binarie per le tecniche di coltivazione\n",
|
||
" for technique in ['tradizionale', 'intensiva', 'superintensiva']:\n",
|
||
" col_name = f\"{variety}_{technique}\"\n",
|
||
" new_columns[col_name] = df[f\"{variety}_tech\"].notna() & (\n",
|
||
" df[f\"{variety}_tech\"].str.lower() == technique\n",
|
||
" ).fillna(False)\n",
|
||
" static_features.append(col_name)\n",
|
||
"\n",
|
||
" # Aggiungi tutte le nuove colonne in una volta sola\n",
|
||
" new_df = pd.concat([df] + [pd.Series(v, name=k) for k, v in new_columns.items()], axis=1)\n",
|
||
"\n",
|
||
" # Ordiniamo per zona e anno per mantenere la continuità temporale\n",
|
||
" df_sorted = new_df.sort_values(['zone', 'year'])\n",
|
||
"\n",
|
||
" # Definiamo la dimensione della finestra temporale\n",
|
||
" window_size = 41\n",
|
||
"\n",
|
||
" # Liste per raccogliere i dati\n",
|
||
" temporal_sequences = []\n",
|
||
" static_features_list = []\n",
|
||
" targets_list = []\n",
|
||
"\n",
|
||
" # Iteriamo per ogni zona\n",
|
||
" for zone in df_sorted['zone'].unique():\n",
|
||
" zone_data = df_sorted[df_sorted['zone'] == zone].reset_index(drop=True)\n",
|
||
"\n",
|
||
" if len(zone_data) >= window_size: # Verifichiamo che ci siano abbastanza dati\n",
|
||
" # Creiamo sequenze temporali scorrevoli\n",
|
||
" for i in range(len(zone_data) - window_size + 1):\n",
|
||
" # Sequenza temporale\n",
|
||
" temporal_window = zone_data.iloc[i:i + window_size][temporal_features].values\n",
|
||
" # Verifichiamo che non ci siano valori NaN\n",
|
||
" if not np.isnan(temporal_window).any():\n",
|
||
" temporal_sequences.append(temporal_window)\n",
|
||
"\n",
|
||
" # Feature statiche (prendiamo quelle dell'ultimo timestep della finestra)\n",
|
||
" static_features_list.append(zone_data.iloc[i + window_size - 1][static_features].values)\n",
|
||
"\n",
|
||
" # Target (prendiamo quelli dell'ultimo timestep della finestra)\n",
|
||
" targets_list.append(zone_data.iloc[i + window_size - 1][target_features].values)\n",
|
||
"\n",
|
||
" # Convertiamo in array numpy\n",
|
||
" X_temporal = np.array(temporal_sequences)\n",
|
||
" X_static = np.array(static_features_list)\n",
|
||
" y = np.array(targets_list)\n",
|
||
"\n",
|
||
" print(f\"Dataset completo - Temporal: {X_temporal.shape}, Static: {X_static.shape}, Target: {y.shape}\")\n",
|
||
"\n",
|
||
" # Split dei dati (usando indici casuali per una migliore distribuzione)\n",
|
||
" indices = np.random.permutation(len(X_temporal))\n",
|
||
"\n",
|
||
" #train_idx = int(len(indices) * 0.7) # 70% training\n",
|
||
" #val_idx = int(len(indices) * 0.85) # 15% validation\n",
|
||
" # Il resto rimane 15% test\n",
|
||
"\n",
|
||
" train_idx = int(len(indices) * 0.65) # 65% training\n",
|
||
" val_idx = int(len(indices) * 0.85) # 20% validation\n",
|
||
" # Il resto rimane 15% test\n",
|
||
"\n",
|
||
" #train_idx = int(len(indices) * 0.60) # 60% training\n",
|
||
" #val_idx = int(len(indices) * 0.85) # 25% validation\n",
|
||
" # Il resto rimane 15% test\n",
|
||
"\n",
|
||
" train_indices = indices[:train_idx]\n",
|
||
" val_indices = indices[train_idx:val_idx]\n",
|
||
" test_indices = indices[val_idx:]\n",
|
||
"\n",
|
||
" # Split dei dati\n",
|
||
" X_temporal_train = X_temporal[train_indices]\n",
|
||
" X_temporal_val = X_temporal[val_indices]\n",
|
||
" X_temporal_test = X_temporal[test_indices]\n",
|
||
"\n",
|
||
" X_static_train = X_static[train_indices]\n",
|
||
" X_static_val = X_static[val_indices]\n",
|
||
" X_static_test = X_static[test_indices]\n",
|
||
"\n",
|
||
" y_train = y[train_indices]\n",
|
||
" y_val = y[val_indices]\n",
|
||
" y_test = y[test_indices]\n",
|
||
"\n",
|
||
" # Standardizzazione\n",
|
||
" scaler_temporal = StandardScaler()\n",
|
||
" scaler_static = StandardScaler()\n",
|
||
" scaler_y = StandardScaler()\n",
|
||
"\n",
|
||
" # Standardizzazione dei dati temporali\n",
|
||
" X_temporal_train = scaler_temporal.fit_transform(X_temporal_train.reshape(-1, len(temporal_features))).reshape(X_temporal_train.shape)\n",
|
||
" X_temporal_val = scaler_temporal.transform(X_temporal_val.reshape(-1, len(temporal_features))).reshape(X_temporal_val.shape)\n",
|
||
" X_temporal_test = scaler_temporal.transform(X_temporal_test.reshape(-1, len(temporal_features))).reshape(X_temporal_test.shape)\n",
|
||
"\n",
|
||
" # Standardizzazione dei dati statici\n",
|
||
" X_static_train = scaler_static.fit_transform(X_static_train)\n",
|
||
" X_static_val = scaler_static.transform(X_static_val)\n",
|
||
" X_static_test = scaler_static.transform(X_static_test)\n",
|
||
"\n",
|
||
" # Standardizzazione dei target\n",
|
||
" y_train = scaler_y.fit_transform(y_train)\n",
|
||
" y_val = scaler_y.transform(y_val)\n",
|
||
" y_test = scaler_y.transform(y_test)\n",
|
||
"\n",
|
||
" print(\"\\nShape dopo lo split e standardizzazione:\")\n",
|
||
" print(f\"Train - Temporal: {X_temporal_train.shape}, Static: {X_static_train.shape}, Target: {y_train.shape}\")\n",
|
||
" print(f\"Val - Temporal: {X_temporal_val.shape}, Static: {X_static_val.shape}, Target: {y_val.shape}\")\n",
|
||
" print(f\"Test - Temporal: {X_temporal_test.shape}, Static: {X_static_test.shape}, Target: {y_test.shape}\")\n",
|
||
"\n",
|
||
" # Prepara i dizionari di input\n",
|
||
" train_data = {'temporal': X_temporal_train, 'static': X_static_train}\n",
|
||
" val_data = {'temporal': X_temporal_val, 'static': X_static_val}\n",
|
||
" test_data = {'temporal': X_temporal_test, 'static': X_static_test}\n",
|
||
"\n",
|
||
" joblib.dump(scaler_temporal, os.path.join(base_project_dir, f'{execute_name}_scaler_temporal.joblib'))\n",
|
||
" joblib.dump(scaler_static, os.path.join(base_project_dir, f'{execute_name}_scaler_static.joblib'))\n",
|
||
" joblib.dump(scaler_y, os.path.join(base_project_dir, f'{execute_name}_scaler_y.joblib'))\n",
|
||
"\n",
|
||
" return (train_data, y_train), (val_data, y_val), (test_data, y_test), (scaler_temporal, scaler_static, scaler_y)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 9,
|
||
"id": "9c4d5f0f3fafdc2d",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Dataset completo - Temporal: (3920000, 41, 3), Static: (3920000, 113), Target: (3920000, 5)\n",
|
||
"\n",
|
||
"Shape dopo lo split e standardizzazione:\n",
|
||
"Train - Temporal: (2548000, 41, 3), Static: (2548000, 113), Target: (2548000, 5)\n",
|
||
"Val - Temporal: (784000, 41, 3), Static: (784000, 113), Target: (784000, 5)\n",
|
||
"Test - Temporal: (588000, 41, 3), Static: (588000, 113), Target: (588000, 5)\n",
|
||
"Temporal data shape: (2548000, 41, 3)\n",
|
||
"Static data shape: (2548000, 113)\n",
|
||
"Target shape: (2548000, 5)\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"simulated_data = pd.read_parquet(f\"{data_dir}olive_training_dataset.parquet\")\n",
|
||
"olive_varieties = pd.read_parquet(f\"{data_dir}olive_varieties.parquet\")\n",
|
||
"\n",
|
||
"(train_data, train_targets), (val_data, val_targets), (test_data, test_targets), scalers = prepare_transformer_data(simulated_data, olive_varieties)\n",
|
||
"\n",
|
||
"scaler_temporal, scaler_static, scaler_y = scalers\n",
|
||
"\n",
|
||
"print(\"Temporal data shape:\", train_data['temporal'].shape)\n",
|
||
"print(\"Static data shape:\", train_data['static'].shape)\n",
|
||
"print(\"Target shape:\", train_targets.shape)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 10,
|
||
"id": "604c952c7195f40c",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"@keras.saving.register_keras_serializable()\n",
|
||
"class DataAugmentation(tf.keras.layers.Layer):\n",
|
||
" \"\"\"Custom layer per l'augmentation dei dati\"\"\"\n",
|
||
"\n",
|
||
" def __init__(self, noise_stddev=0.03, **kwargs):\n",
|
||
" super().__init__(**kwargs)\n",
|
||
" self.noise_stddev = noise_stddev\n",
|
||
"\n",
|
||
" def call(self, inputs, training=None):\n",
|
||
" if training:\n",
|
||
" return inputs + tf.random.normal(\n",
|
||
" shape=tf.shape(inputs),\n",
|
||
" mean=0.0,\n",
|
||
" stddev=self.noise_stddev\n",
|
||
" )\n",
|
||
" return inputs\n",
|
||
"\n",
|
||
" def get_config(self):\n",
|
||
" config = super().get_config()\n",
|
||
" config.update({\"noise_stddev\": self.noise_stddev})\n",
|
||
" return config\n",
|
||
"\n",
|
||
"\n",
|
||
"@keras.saving.register_keras_serializable()\n",
|
||
"class PositionalEncoding(tf.keras.layers.Layer):\n",
|
||
" \"\"\"Custom layer per l'encoding posizionale\"\"\"\n",
|
||
"\n",
|
||
" def __init__(self, d_model, **kwargs):\n",
|
||
" super().__init__(**kwargs)\n",
|
||
" self.d_model = d_model\n",
|
||
"\n",
|
||
" def build(self, input_shape):\n",
|
||
" _, seq_length, _ = input_shape\n",
|
||
"\n",
|
||
" # Crea la matrice di encoding posizionale\n",
|
||
" position = tf.range(seq_length, dtype=tf.float32)[:, tf.newaxis]\n",
|
||
" div_term = tf.exp(\n",
|
||
" tf.range(0, self.d_model, 2, dtype=tf.float32) *\n",
|
||
" (-tf.math.log(10000.0) / self.d_model)\n",
|
||
" )\n",
|
||
"\n",
|
||
" # Calcola sin e cos\n",
|
||
" pos_encoding = tf.zeros((1, seq_length, self.d_model))\n",
|
||
" pos_encoding_even = tf.sin(position * div_term)\n",
|
||
" pos_encoding_odd = tf.cos(position * div_term)\n",
|
||
"\n",
|
||
" # Assegna i valori alle posizioni pari e dispari\n",
|
||
" pos_encoding = tf.concat(\n",
|
||
" [tf.expand_dims(pos_encoding_even, -1),\n",
|
||
" tf.expand_dims(pos_encoding_odd, -1)],\n",
|
||
" axis=-1\n",
|
||
" )\n",
|
||
" pos_encoding = tf.reshape(pos_encoding, (1, seq_length, -1))\n",
|
||
" pos_encoding = pos_encoding[:, :, :self.d_model]\n",
|
||
"\n",
|
||
" # Salva l'encoding come peso non trainabile\n",
|
||
" self.pos_encoding = self.add_weight(\n",
|
||
" shape=(1, seq_length, self.d_model),\n",
|
||
" initializer=tf.keras.initializers.Constant(pos_encoding),\n",
|
||
" trainable=False,\n",
|
||
" name='positional_encoding'\n",
|
||
" )\n",
|
||
"\n",
|
||
" super().build(input_shape)\n",
|
||
"\n",
|
||
" def call(self, inputs):\n",
|
||
" # Broadcast l'encoding posizionale sul batch\n",
|
||
" batch_size = tf.shape(inputs)[0]\n",
|
||
" pos_encoding_tiled = tf.tile(self.pos_encoding, [batch_size, 1, 1])\n",
|
||
" return inputs + pos_encoding_tiled\n",
|
||
"\n",
|
||
" def get_config(self):\n",
|
||
" config = super().get_config()\n",
|
||
" config.update({\"d_model\": self.d_model})\n",
|
||
" return config\n",
|
||
"\n",
|
||
"\n",
|
||
"@keras.saving.register_keras_serializable()\n",
|
||
"class WarmUpLearningRateSchedule(tf.keras.optimizers.schedules.LearningRateSchedule):\n",
|
||
" \"\"\"Custom learning rate schedule with linear warmup and exponential decay.\"\"\"\n",
|
||
"\n",
|
||
" def __init__(self, initial_learning_rate=1e-3, warmup_steps=500, decay_steps=5000):\n",
|
||
" super().__init__()\n",
|
||
" self.initial_learning_rate = initial_learning_rate\n",
|
||
" self.warmup_steps = warmup_steps\n",
|
||
" self.decay_steps = decay_steps\n",
|
||
"\n",
|
||
" def __call__(self, step):\n",
|
||
" warmup_pct = tf.cast(step, tf.float32) / self.warmup_steps\n",
|
||
" warmup_lr = self.initial_learning_rate * warmup_pct\n",
|
||
" decay_factor = tf.pow(0.1, tf.cast(step, tf.float32) / self.decay_steps)\n",
|
||
" decayed_lr = self.initial_learning_rate * decay_factor\n",
|
||
" return tf.where(step < self.warmup_steps, warmup_lr, decayed_lr)\n",
|
||
"\n",
|
||
" def get_config(self):\n",
|
||
" return {\n",
|
||
" 'initial_learning_rate': self.initial_learning_rate,\n",
|
||
" 'warmup_steps': self.warmup_steps,\n",
|
||
" 'decay_steps': self.decay_steps\n",
|
||
" }\n",
|
||
"\n",
|
||
"\n",
|
||
"def create_olive_oil_transformer(temporal_shape, static_shape, num_outputs,\n",
|
||
" d_model=128, num_heads=8, ff_dim=256,\n",
|
||
" num_transformer_blocks=4, mlp_units=None,\n",
|
||
" dropout=0.2):\n",
|
||
" \"\"\"\n",
|
||
" Crea un transformer per la predizione della produzione di olio d'oliva.\n",
|
||
" \"\"\"\n",
|
||
" # Input layers\n",
|
||
" if mlp_units is None:\n",
|
||
" mlp_units = [256, 128, 64]\n",
|
||
"\n",
|
||
" temporal_input = tf.keras.layers.Input(shape=temporal_shape, name='temporal')\n",
|
||
" static_input = tf.keras.layers.Input(shape=static_shape, name='static')\n",
|
||
"\n",
|
||
" # === TEMPORAL PATH ===\n",
|
||
" x = tf.keras.layers.LayerNormalization(epsilon=1e-6)(temporal_input)\n",
|
||
" x = DataAugmentation()(x)\n",
|
||
"\n",
|
||
" # Temporal projection\n",
|
||
" x = tf.keras.layers.Dense(\n",
|
||
" d_model // 2,\n",
|
||
" activation='swish',\n",
|
||
" kernel_regularizer=tf.keras.regularizers.l2(1e-5)\n",
|
||
" )(x)\n",
|
||
" x = tf.keras.layers.Dropout(dropout)(x)\n",
|
||
" x = tf.keras.layers.Dense(\n",
|
||
" d_model,\n",
|
||
" activation='swish',\n",
|
||
" kernel_regularizer=tf.keras.regularizers.l2(1e-5)\n",
|
||
" )(x)\n",
|
||
"\n",
|
||
" # Positional encoding\n",
|
||
" x = PositionalEncoding(d_model)(x)\n",
|
||
"\n",
|
||
" # Transformer blocks\n",
|
||
" skip_connection = x\n",
|
||
" for _ in range(num_transformer_blocks):\n",
|
||
" # Self-attention\n",
|
||
" attention_output = tf.keras.layers.MultiHeadAttention(\n",
|
||
" num_heads=num_heads,\n",
|
||
" key_dim=d_model // num_heads,\n",
|
||
" value_dim=d_model // num_heads\n",
|
||
" )(x, x)\n",
|
||
" attention_output = tf.keras.layers.Dropout(dropout)(attention_output)\n",
|
||
"\n",
|
||
" # Residual connection con pesi addestrabili\n",
|
||
" residual_weights = tf.keras.layers.Dense(d_model, activation='sigmoid')(x)\n",
|
||
" x = tfa.layers.StochasticDepth(survival_probability=0.3)([x, residual_weights * attention_output])\n",
|
||
" x = tf.keras.layers.LayerNormalization(epsilon=1e-6)(x)\n",
|
||
"\n",
|
||
" # Feed-forward network\n",
|
||
" ffn = tf.keras.layers.Dense(ff_dim, activation=\"swish\")(x)\n",
|
||
" ffn = tf.keras.layers.Dropout(dropout)(ffn)\n",
|
||
" ffn = tf.keras.layers.Dense(d_model)(ffn)\n",
|
||
" ffn = tf.keras.layers.Dropout(dropout)(ffn)\n",
|
||
"\n",
|
||
" # Second residual connection\n",
|
||
" x = tfa.layers.StochasticDepth()([x, ffn])\n",
|
||
" x = tf.keras.layers.LayerNormalization(epsilon=1e-6)(x)\n",
|
||
"\n",
|
||
" # Add final skip connection\n",
|
||
" x = tfa.layers.StochasticDepth(survival_probability=0.5)([x, skip_connection])\n",
|
||
"\n",
|
||
" # Temporal pooling\n",
|
||
" attention_pooled = tf.keras.layers.MultiHeadAttention(\n",
|
||
" num_heads=num_heads,\n",
|
||
" key_dim=d_model // 4\n",
|
||
" )(x, x)\n",
|
||
" attention_pooled = tf.keras.layers.GlobalAveragePooling1D()(attention_pooled)\n",
|
||
"\n",
|
||
" # Additional pooling operations\n",
|
||
" avg_pooled = tf.keras.layers.GlobalAveragePooling1D()(x)\n",
|
||
" max_pooled = tf.keras.layers.GlobalMaxPooling1D()(x)\n",
|
||
"\n",
|
||
" # Combine pooling results\n",
|
||
" temporal_features = tf.keras.layers.Concatenate()(\n",
|
||
" [attention_pooled, avg_pooled, max_pooled]\n",
|
||
" )\n",
|
||
"\n",
|
||
" # === STATIC PATH ===\n",
|
||
" static_features = tf.keras.layers.LayerNormalization(epsilon=1e-6)(static_input)\n",
|
||
" for units in [256, 128, 64]:\n",
|
||
" static_features = tf.keras.layers.Dense(\n",
|
||
" units,\n",
|
||
" activation='swish',\n",
|
||
" kernel_regularizer=tf.keras.regularizers.l2(1e-5)\n",
|
||
" )(static_features)\n",
|
||
" static_features = tf.keras.layers.Dropout(dropout)(static_features)\n",
|
||
"\n",
|
||
" # === FEATURE FUSION ===\n",
|
||
" combined = tf.keras.layers.Concatenate()([temporal_features, static_features])\n",
|
||
"\n",
|
||
" # === MLP HEAD ===\n",
|
||
" x = combined\n",
|
||
" for units in mlp_units:\n",
|
||
" x = tf.keras.layers.BatchNormalization()(x)\n",
|
||
" x = tf.keras.layers.Dense(\n",
|
||
" units,\n",
|
||
" activation=\"swish\",\n",
|
||
" kernel_regularizer=tf.keras.regularizers.l2(1e-5)\n",
|
||
" )(x)\n",
|
||
" x = tf.keras.layers.Dropout(dropout)(x)\n",
|
||
"\n",
|
||
" # Output layer\n",
|
||
" outputs = tf.keras.layers.Dense(\n",
|
||
" num_outputs,\n",
|
||
" activation='linear',\n",
|
||
" kernel_regularizer=tf.keras.regularizers.l2(1e-5)\n",
|
||
" )(x)\n",
|
||
"\n",
|
||
" # Create model\n",
|
||
" model = tf.keras.Model(\n",
|
||
" inputs={'temporal': temporal_input, 'static': static_input},\n",
|
||
" outputs=outputs,\n",
|
||
" name='OilTransformer'\n",
|
||
" )\n",
|
||
"\n",
|
||
" return model\n",
|
||
"\n",
|
||
"\n",
|
||
"def create_transformer_callbacks(target_names, val_data, val_targets):\n",
|
||
" \"\"\"\n",
|
||
" Crea i callbacks per il training del modello.\n",
|
||
" \n",
|
||
" Parameters:\n",
|
||
" -----------\n",
|
||
" target_names : list\n",
|
||
" Lista dei nomi dei target per il monitoraggio specifico\n",
|
||
" val_data : dict\n",
|
||
" Dati di validazione\n",
|
||
" val_targets : array\n",
|
||
" Target di validazione\n",
|
||
" \n",
|
||
" Returns:\n",
|
||
" --------\n",
|
||
" list\n",
|
||
" Lista dei callbacks configurati\n",
|
||
" \"\"\"\n",
|
||
"\n",
|
||
" # Custom Metric per target specifici\n",
|
||
" class TargetSpecificMetric(tf.keras.callbacks.Callback):\n",
|
||
" def __init__(self, validation_data, target_names):\n",
|
||
" super().__init__()\n",
|
||
" self.validation_data = validation_data\n",
|
||
" self.target_names = target_names\n",
|
||
"\n",
|
||
" def on_epoch_end(self, epoch, logs={}):\n",
|
||
" x_val, y_val = self.validation_data\n",
|
||
" y_pred = self.model.predict(x_val, verbose=0)\n",
|
||
"\n",
|
||
" for i, name in enumerate(self.target_names):\n",
|
||
" mae = np.mean(np.abs(y_val[:, i] - y_pred[:, i]))\n",
|
||
" logs[f'val_{name}_mae'] = mae\n",
|
||
"\n",
|
||
"\n",
|
||
" callbacks = [\n",
|
||
" # Early Stopping\n",
|
||
" tf.keras.callbacks.EarlyStopping(\n",
|
||
" monitor='val_loss',\n",
|
||
" patience=20,\n",
|
||
" restore_best_weights=True,\n",
|
||
" min_delta=0.0005,\n",
|
||
" mode='min'\n",
|
||
" ),\n",
|
||
"\n",
|
||
" # Model Checkpoint\n",
|
||
" tf.keras.callbacks.ModelCheckpoint(\n",
|
||
" filepath=f'{execute_name}_best_oil_model.h5',\n",
|
||
" monitor='val_loss',\n",
|
||
" save_best_only=True,\n",
|
||
" mode='min',\n",
|
||
" save_weights_only=True\n",
|
||
" ),\n",
|
||
"\n",
|
||
" # Metric per target specifici\n",
|
||
" TargetSpecificMetric(\n",
|
||
" validation_data=(val_data, val_targets),\n",
|
||
" target_names=target_names\n",
|
||
" ),\n",
|
||
"\n",
|
||
" # Reduce LR on Plateau\n",
|
||
" tf.keras.callbacks.ReduceLROnPlateau(\n",
|
||
" monitor='val_loss',\n",
|
||
" factor=0.5,\n",
|
||
" patience=10,\n",
|
||
" min_lr=1e-6,\n",
|
||
" verbose=1\n",
|
||
" ),\n",
|
||
"\n",
|
||
" # TensorBoard logging\n",
|
||
" tf.keras.callbacks.TensorBoard(\n",
|
||
" log_dir=f'./logs_{execute_name}',\n",
|
||
" histogram_freq=1,\n",
|
||
" write_graph=True,\n",
|
||
" update_freq='epoch'\n",
|
||
" )\n",
|
||
" ]\n",
|
||
"\n",
|
||
" return callbacks\n",
|
||
"\n",
|
||
"\n",
|
||
"def compile_model(model, learning_rate=1e-3):\n",
|
||
" \"\"\"\n",
|
||
" Compila il modello con le impostazioni standard.\n",
|
||
" \"\"\"\n",
|
||
" lr_schedule = WarmUpLearningRateSchedule(\n",
|
||
" initial_learning_rate=learning_rate,\n",
|
||
" warmup_steps=500,\n",
|
||
" decay_steps=5000\n",
|
||
" )\n",
|
||
"\n",
|
||
" model.compile(\n",
|
||
" optimizer=tf.keras.optimizers.AdamW(\n",
|
||
" learning_rate=lr_schedule,\n",
|
||
" weight_decay=0.01\n",
|
||
" ),\n",
|
||
" loss=tf.keras.losses.Huber(),\n",
|
||
" metrics=['mae']\n",
|
||
" )\n",
|
||
"\n",
|
||
" return model\n",
|
||
"\n",
|
||
"\n",
|
||
"def setup_transformer_training(train_data, train_targets, val_data, val_targets):\n",
|
||
" \"\"\"\n",
|
||
" Configura e prepara il transformer con dimensioni dinamiche basate sui dati.\n",
|
||
" \"\"\"\n",
|
||
" # Estrai le shape dai dati\n",
|
||
" temporal_shape = (train_data['temporal'].shape[1], train_data['temporal'].shape[2])\n",
|
||
" static_shape = (train_data['static'].shape[1],)\n",
|
||
" num_outputs = train_targets.shape[1]\n",
|
||
"\n",
|
||
" print(f\"Shape rilevate:\")\n",
|
||
" print(f\"- Temporal shape: {temporal_shape}\")\n",
|
||
" print(f\"- Static shape: {static_shape}\")\n",
|
||
" print(f\"- Numero di output: {num_outputs}\")\n",
|
||
"\n",
|
||
" # Target names basati sul numero di output\n",
|
||
" target_names = ['olive_prod', 'min_oil_prod', 'max_oil_prod', 'avg_oil_prod', 'total_water_need']\n",
|
||
"\n",
|
||
" # Assicurati che il numero di target names corrisponda al numero di output\n",
|
||
" assert len(target_names) == num_outputs, \\\n",
|
||
" f\"Il numero di target names ({len(target_names)}) non corrisponde al numero di output ({num_outputs})\"\n",
|
||
"\n",
|
||
" # Crea il modello con le dimensioni rilevate\n",
|
||
" model = create_olive_oil_transformer(\n",
|
||
" temporal_shape=temporal_shape,\n",
|
||
" static_shape=static_shape,\n",
|
||
" num_outputs=num_outputs\n",
|
||
" )\n",
|
||
"\n",
|
||
" # Compila il modello\n",
|
||
" model = compile_model(model)\n",
|
||
"\n",
|
||
" # Crea i callbacks\n",
|
||
" callbacks = create_transformer_callbacks(target_names, val_data, val_targets)\n",
|
||
"\n",
|
||
" return model, callbacks, target_names\n",
|
||
"\n",
|
||
"\n",
|
||
"def train_transformer(train_data, train_targets, val_data, val_targets, epochs=150, batch_size=64, save_name='final_model'):\n",
|
||
" \"\"\"\n",
|
||
" Funzione principale per l'addestramento del transformer con ottimizzazioni.\n",
|
||
" \"\"\"\n",
|
||
" # Conversione dei dati in tf.data.Dataset per una gestione più efficiente della memoria\n",
|
||
" train_dataset = tf.data.Dataset.from_tensor_slices((train_data, train_targets))\\\n",
|
||
" .cache()\\\n",
|
||
" .shuffle(buffer_size=1024)\\\n",
|
||
" .batch(batch_size)\\\n",
|
||
" .prefetch(tf.data.AUTOTUNE)\n",
|
||
"\n",
|
||
" val_dataset = tf.data.Dataset.from_tensor_slices((val_data, val_targets))\\\n",
|
||
" .cache()\\\n",
|
||
" .batch(batch_size)\\\n",
|
||
" .prefetch(tf.data.AUTOTUNE)\n",
|
||
"\n",
|
||
" # Setup del modello\n",
|
||
" strategy = tf.distribute.MirroredStrategy() if len(tf.config.list_physical_devices('GPU')) > 1 else tf.distribute.get_strategy()\n",
|
||
" \n",
|
||
" with strategy.scope():\n",
|
||
" model, callbacks, target_names = setup_transformer_training(\n",
|
||
" train_data, train_targets, val_data, val_targets\n",
|
||
" )\n",
|
||
"\n",
|
||
" # Mostra il summary del modello\n",
|
||
" model.summary()\n",
|
||
" \n",
|
||
" try:\n",
|
||
" keras.utils.plot_model(model, f\"{execute_name}_{save_name}.png\", show_shapes=True)\n",
|
||
" except Exception as e:\n",
|
||
" print(f\"Warning: Could not create model plot: {e}\")\n",
|
||
"\n",
|
||
" # Training con gestione degli errori\n",
|
||
" try:\n",
|
||
" history = model.fit(\n",
|
||
" train_dataset,\n",
|
||
" validation_data=val_dataset,\n",
|
||
" epochs=epochs,\n",
|
||
" callbacks=callbacks,\n",
|
||
" verbose=1,\n",
|
||
" workers=4,\n",
|
||
" use_multiprocessing=True\n",
|
||
" )\n",
|
||
" except tf.errors.ResourceExhaustedError:\n",
|
||
" print(\"Memoria GPU esaurita, riprovo con batch size più piccolo...\")\n",
|
||
" # Riprova con batch size più piccolo\n",
|
||
" batch_size = batch_size // 2\n",
|
||
" train_dataset = train_dataset.unbatch().batch(batch_size)\n",
|
||
" val_dataset = val_dataset.unbatch().batch(batch_size)\n",
|
||
" history = model.fit(\n",
|
||
" train_dataset,\n",
|
||
" validation_data=val_dataset,\n",
|
||
" epochs=epochs,\n",
|
||
" callbacks=callbacks,\n",
|
||
" verbose=1\n",
|
||
" )\n",
|
||
"\n",
|
||
" # Salva il modello finale\n",
|
||
" try:\n",
|
||
" save_path = f'{execute_name}_{save_name}.keras'\n",
|
||
" model.save(save_path, save_format='keras')\n",
|
||
" \n",
|
||
" os.makedirs(f'{execute_name}/weights', exist_ok=True)\n",
|
||
" model.save_weights(f'{execute_name}/weights')\n",
|
||
" print(f\"\\nModello salvato in: {save_path}\")\n",
|
||
" except Exception as e:\n",
|
||
" print(f\"Warning: Could not save model: {e}\")\n",
|
||
"\n",
|
||
" return model, history"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "35490e902e494c4a",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Shape rilevate:\n",
|
||
"- Temporal shape: (41, 3)\n",
|
||
"- Static shape: (113,)\n",
|
||
"- Numero di output: 5\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"2024-12-07 08:38:26.936272: I tensorflow/tsl/platform/default/subprocess.cc:304] Start cannot spawn child process: No such file or directory\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Model: \"OilTransformer\"\n",
|
||
"__________________________________________________________________________________________________\n",
|
||
" Layer (type) Output Shape Param # Connected to \n",
|
||
"==================================================================================================\n",
|
||
" temporal (InputLayer) [(None, 41, 3)] 0 [] \n",
|
||
" \n",
|
||
" layer_normalization (Layer (None, 41, 3) 6 ['temporal[0][0]'] \n",
|
||
" Normalization) \n",
|
||
" \n",
|
||
" data_augmentation (DataAug (None, 41, 3) 0 ['layer_normalization[0][0]'] \n",
|
||
" mentation) \n",
|
||
" \n",
|
||
" dense (Dense) (None, 41, 64) 256 ['data_augmentation[0][0]'] \n",
|
||
" \n",
|
||
" dropout (Dropout) (None, 41, 64) 0 ['dense[0][0]'] \n",
|
||
" \n",
|
||
" dense_1 (Dense) (None, 41, 128) 8320 ['dropout[0][0]'] \n",
|
||
" \n",
|
||
" positional_encoding (Posit (None, 41, 128) 5248 ['dense_1[0][0]'] \n",
|
||
" ionalEncoding) \n",
|
||
" \n",
|
||
" multi_head_attention (Mult (None, 41, 128) 66048 ['positional_encoding[0][0]', \n",
|
||
" iHeadAttention) 'positional_encoding[0][0]'] \n",
|
||
" \n",
|
||
" dense_2 (Dense) (None, 41, 128) 16512 ['positional_encoding[0][0]'] \n",
|
||
" \n",
|
||
" dropout_1 (Dropout) (None, 41, 128) 0 ['multi_head_attention[0][0]']\n",
|
||
" \n",
|
||
" tf.math.multiply (TFOpLamb (None, 41, 128) 0 ['dense_2[0][0]', \n",
|
||
" da) 'dropout_1[0][0]'] \n",
|
||
" \n",
|
||
" stochastic_depth (Stochast (None, 41, 128) 0 ['positional_encoding[0][0]', \n",
|
||
" icDepth) 'tf.math.multiply[0][0]'] \n",
|
||
" \n",
|
||
" layer_normalization_1 (Lay (None, 41, 128) 256 ['stochastic_depth[0][0]'] \n",
|
||
" erNormalization) \n",
|
||
" \n",
|
||
" dense_3 (Dense) (None, 41, 256) 33024 ['layer_normalization_1[0][0]'\n",
|
||
" ] \n",
|
||
" \n",
|
||
" dropout_2 (Dropout) (None, 41, 256) 0 ['dense_3[0][0]'] \n",
|
||
" \n",
|
||
" dense_4 (Dense) (None, 41, 128) 32896 ['dropout_2[0][0]'] \n",
|
||
" \n",
|
||
" dropout_3 (Dropout) (None, 41, 128) 0 ['dense_4[0][0]'] \n",
|
||
" \n",
|
||
" stochastic_depth_1 (Stocha (None, 41, 128) 0 ['layer_normalization_1[0][0]'\n",
|
||
" sticDepth) , 'dropout_3[0][0]'] \n",
|
||
" \n",
|
||
" layer_normalization_2 (Lay (None, 41, 128) 256 ['stochastic_depth_1[0][0]'] \n",
|
||
" erNormalization) \n",
|
||
" \n",
|
||
" multi_head_attention_1 (Mu (None, 41, 128) 66048 ['layer_normalization_2[0][0]'\n",
|
||
" ltiHeadAttention) , 'layer_normalization_2[0][0]\n",
|
||
" '] \n",
|
||
" \n",
|
||
" dense_5 (Dense) (None, 41, 128) 16512 ['layer_normalization_2[0][0]'\n",
|
||
" ] \n",
|
||
" \n",
|
||
" dropout_4 (Dropout) (None, 41, 128) 0 ['multi_head_attention_1[0][0]\n",
|
||
" '] \n",
|
||
" \n",
|
||
" tf.math.multiply_1 (TFOpLa (None, 41, 128) 0 ['dense_5[0][0]', \n",
|
||
" mbda) 'dropout_4[0][0]'] \n",
|
||
" \n",
|
||
" stochastic_depth_2 (Stocha (None, 41, 128) 0 ['layer_normalization_2[0][0]'\n",
|
||
" sticDepth) , 'tf.math.multiply_1[0][0]'] \n",
|
||
" \n",
|
||
" layer_normalization_3 (Lay (None, 41, 128) 256 ['stochastic_depth_2[0][0]'] \n",
|
||
" erNormalization) \n",
|
||
" \n",
|
||
" dense_6 (Dense) (None, 41, 256) 33024 ['layer_normalization_3[0][0]'\n",
|
||
" ] \n",
|
||
" \n",
|
||
" dropout_5 (Dropout) (None, 41, 256) 0 ['dense_6[0][0]'] \n",
|
||
" \n",
|
||
" dense_7 (Dense) (None, 41, 128) 32896 ['dropout_5[0][0]'] \n",
|
||
" \n",
|
||
" dropout_6 (Dropout) (None, 41, 128) 0 ['dense_7[0][0]'] \n",
|
||
" \n",
|
||
" stochastic_depth_3 (Stocha (None, 41, 128) 0 ['layer_normalization_3[0][0]'\n",
|
||
" sticDepth) , 'dropout_6[0][0]'] \n",
|
||
" \n",
|
||
" layer_normalization_4 (Lay (None, 41, 128) 256 ['stochastic_depth_3[0][0]'] \n",
|
||
" erNormalization) \n",
|
||
" \n",
|
||
" multi_head_attention_2 (Mu (None, 41, 128) 66048 ['layer_normalization_4[0][0]'\n",
|
||
" ltiHeadAttention) , 'layer_normalization_4[0][0]\n",
|
||
" '] \n",
|
||
" \n",
|
||
" dense_8 (Dense) (None, 41, 128) 16512 ['layer_normalization_4[0][0]'\n",
|
||
" ] \n",
|
||
" \n",
|
||
" dropout_7 (Dropout) (None, 41, 128) 0 ['multi_head_attention_2[0][0]\n",
|
||
" '] \n",
|
||
" \n",
|
||
" tf.math.multiply_2 (TFOpLa (None, 41, 128) 0 ['dense_8[0][0]', \n",
|
||
" mbda) 'dropout_7[0][0]'] \n",
|
||
" \n",
|
||
" stochastic_depth_4 (Stocha (None, 41, 128) 0 ['layer_normalization_4[0][0]'\n",
|
||
" sticDepth) , 'tf.math.multiply_2[0][0]'] \n",
|
||
" \n",
|
||
" layer_normalization_5 (Lay (None, 41, 128) 256 ['stochastic_depth_4[0][0]'] \n",
|
||
" erNormalization) \n",
|
||
" \n",
|
||
" dense_9 (Dense) (None, 41, 256) 33024 ['layer_normalization_5[0][0]'\n",
|
||
" ] \n",
|
||
" \n",
|
||
" dropout_8 (Dropout) (None, 41, 256) 0 ['dense_9[0][0]'] \n",
|
||
" \n",
|
||
" dense_10 (Dense) (None, 41, 128) 32896 ['dropout_8[0][0]'] \n",
|
||
" \n",
|
||
" dropout_9 (Dropout) (None, 41, 128) 0 ['dense_10[0][0]'] \n",
|
||
" \n",
|
||
" stochastic_depth_5 (Stocha (None, 41, 128) 0 ['layer_normalization_5[0][0]'\n",
|
||
" sticDepth) , 'dropout_9[0][0]'] \n",
|
||
" \n",
|
||
" layer_normalization_6 (Lay (None, 41, 128) 256 ['stochastic_depth_5[0][0]'] \n",
|
||
" erNormalization) \n",
|
||
" \n",
|
||
" multi_head_attention_3 (Mu (None, 41, 128) 66048 ['layer_normalization_6[0][0]'\n",
|
||
" ltiHeadAttention) , 'layer_normalization_6[0][0]\n",
|
||
" '] \n",
|
||
" \n",
|
||
" dense_11 (Dense) (None, 41, 128) 16512 ['layer_normalization_6[0][0]'\n",
|
||
" ] \n",
|
||
" \n",
|
||
" dropout_10 (Dropout) (None, 41, 128) 0 ['multi_head_attention_3[0][0]\n",
|
||
" '] \n",
|
||
" \n",
|
||
" tf.math.multiply_3 (TFOpLa (None, 41, 128) 0 ['dense_11[0][0]', \n",
|
||
" mbda) 'dropout_10[0][0]'] \n",
|
||
" \n",
|
||
" stochastic_depth_6 (Stocha (None, 41, 128) 0 ['layer_normalization_6[0][0]'\n",
|
||
" sticDepth) , 'tf.math.multiply_3[0][0]'] \n",
|
||
" \n",
|
||
" layer_normalization_7 (Lay (None, 41, 128) 256 ['stochastic_depth_6[0][0]'] \n",
|
||
" erNormalization) \n",
|
||
" \n",
|
||
" dense_12 (Dense) (None, 41, 256) 33024 ['layer_normalization_7[0][0]'\n",
|
||
" ] \n",
|
||
" \n",
|
||
" dropout_11 (Dropout) (None, 41, 256) 0 ['dense_12[0][0]'] \n",
|
||
" \n",
|
||
" dense_13 (Dense) (None, 41, 128) 32896 ['dropout_11[0][0]'] \n",
|
||
" \n",
|
||
" static (InputLayer) [(None, 113)] 0 [] \n",
|
||
" \n",
|
||
" dropout_12 (Dropout) (None, 41, 128) 0 ['dense_13[0][0]'] \n",
|
||
" \n",
|
||
" layer_normalization_9 (Lay (None, 113) 226 ['static[0][0]'] \n",
|
||
" erNormalization) \n",
|
||
" \n",
|
||
" stochastic_depth_7 (Stocha (None, 41, 128) 0 ['layer_normalization_7[0][0]'\n",
|
||
" sticDepth) , 'dropout_12[0][0]'] \n",
|
||
" \n",
|
||
" dense_14 (Dense) (None, 256) 29184 ['layer_normalization_9[0][0]'\n",
|
||
" ] \n",
|
||
" \n",
|
||
" layer_normalization_8 (Lay (None, 41, 128) 256 ['stochastic_depth_7[0][0]'] \n",
|
||
" erNormalization) \n",
|
||
" \n",
|
||
" dropout_13 (Dropout) (None, 256) 0 ['dense_14[0][0]'] \n",
|
||
" \n",
|
||
" stochastic_depth_8 (Stocha (None, 41, 128) 0 ['layer_normalization_8[0][0]'\n",
|
||
" sticDepth) , 'positional_encoding[0][0]']\n",
|
||
" \n",
|
||
" dense_15 (Dense) (None, 128) 32896 ['dropout_13[0][0]'] \n",
|
||
" \n",
|
||
" multi_head_attention_4 (Mu (None, 41, 128) 131968 ['stochastic_depth_8[0][0]', \n",
|
||
" ltiHeadAttention) 'stochastic_depth_8[0][0]'] \n",
|
||
" \n",
|
||
" dropout_14 (Dropout) (None, 128) 0 ['dense_15[0][0]'] \n",
|
||
" \n",
|
||
" global_average_pooling1d ( (None, 128) 0 ['multi_head_attention_4[0][0]\n",
|
||
" GlobalAveragePooling1D) '] \n",
|
||
" \n",
|
||
" global_average_pooling1d_1 (None, 128) 0 ['stochastic_depth_8[0][0]'] \n",
|
||
" (GlobalAveragePooling1D) \n",
|
||
" \n",
|
||
" global_max_pooling1d (Glob (None, 128) 0 ['stochastic_depth_8[0][0]'] \n",
|
||
" alMaxPooling1D) \n",
|
||
" \n",
|
||
" dense_16 (Dense) (None, 64) 8256 ['dropout_14[0][0]'] \n",
|
||
" \n",
|
||
" concatenate (Concatenate) (None, 384) 0 ['global_average_pooling1d[0][\n",
|
||
" 0]', \n",
|
||
" 'global_average_pooling1d_1[0\n",
|
||
" ][0]', \n",
|
||
" 'global_max_pooling1d[0][0]']\n",
|
||
" \n",
|
||
" dropout_15 (Dropout) (None, 64) 0 ['dense_16[0][0]'] \n",
|
||
" \n",
|
||
" concatenate_1 (Concatenate (None, 448) 0 ['concatenate[0][0]', \n",
|
||
" ) 'dropout_15[0][0]'] \n",
|
||
" \n",
|
||
" batch_normalization (Batch (None, 448) 1792 ['concatenate_1[0][0]'] \n",
|
||
" Normalization) \n",
|
||
" \n",
|
||
" dense_17 (Dense) (None, 256) 114944 ['batch_normalization[0][0]'] \n",
|
||
" \n",
|
||
" dropout_16 (Dropout) (None, 256) 0 ['dense_17[0][0]'] \n",
|
||
" \n",
|
||
" batch_normalization_1 (Bat (None, 256) 1024 ['dropout_16[0][0]'] \n",
|
||
" chNormalization) \n",
|
||
" \n",
|
||
" dense_18 (Dense) (None, 128) 32896 ['batch_normalization_1[0][0]'\n",
|
||
" ] \n",
|
||
" \n",
|
||
" dropout_17 (Dropout) (None, 128) 0 ['dense_18[0][0]'] \n",
|
||
" \n",
|
||
" batch_normalization_2 (Bat (None, 128) 512 ['dropout_17[0][0]'] \n",
|
||
" chNormalization) \n",
|
||
" \n",
|
||
" dense_19 (Dense) (None, 64) 8256 ['batch_normalization_2[0][0]'\n",
|
||
" ] \n",
|
||
" \n",
|
||
" dropout_18 (Dropout) (None, 64) 0 ['dense_19[0][0]'] \n",
|
||
" \n",
|
||
" dense_20 (Dense) (None, 5) 325 ['dropout_18[0][0]'] \n",
|
||
" \n",
|
||
"==================================================================================================\n",
|
||
"Total params: 972077 (3.71 MB)\n",
|
||
"Trainable params: 965165 (3.68 MB)\n",
|
||
"Non-trainable params: 6912 (27.00 KB)\n",
|
||
"__________________________________________________________________________________________________\n",
|
||
"Epoch 1/150\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"2024-12-07 08:38:44.061185: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x7ade632071d0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
|
||
"2024-12-07 08:38:44.061220: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): NVIDIA L40, Compute Capability 8.9\n",
|
||
"2024-12-07 08:38:44.066715: I tensorflow/compiler/mlir/tensorflow/utils/dump_mlir_util.cc:269] disabling MLIR crash reproducer, set env var `MLIR_CRASH_REPRODUCER_DIRECTORY` to enable.\n",
|
||
"2024-12-07 08:38:44.130163: I tensorflow/compiler/xla/stream_executor/cuda/cuda_dnn.cc:442] Loaded cuDNN version 8905\n",
|
||
"2024-12-07 08:38:44.261917: I ./tensorflow/compiler/jit/device_compiler.h:186] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
" 5/4977 [..............................] - ETA: 3:14 - loss: 0.7255 - mae: 1.1227 WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.0329s vs `on_train_batch_end` time: 0.0391s). Check your callbacks.\n",
|
||
"4977/4977 [==============================] - 329s 62ms/step - loss: 0.0547 - mae: 0.2020 - val_loss: 0.0149 - val_mae: 0.0886 - val_olive_prod_mae: 0.0985 - val_min_oil_prod_mae: 0.0962 - val_max_oil_prod_mae: 0.0947 - val_avg_oil_prod_mae: 0.0915 - val_total_water_need_mae: 0.0625 - lr: 1.0111e-04\n",
|
||
"Epoch 2/150\n",
|
||
"4977/4977 [==============================] - 297s 59ms/step - loss: 0.0254 - mae: 0.1444 - val_loss: 0.0135 - val_mae: 0.0853 - val_olive_prod_mae: 0.0954 - val_min_oil_prod_mae: 0.0936 - val_max_oil_prod_mae: 0.0932 - val_avg_oil_prod_mae: 0.0893 - val_total_water_need_mae: 0.0550 - lr: 1.0219e-05\n",
|
||
"Epoch 3/150\n",
|
||
"4977/4977 [==============================] - 295s 59ms/step - loss: 0.0245 - mae: 0.1423 - val_loss: 0.0133 - val_mae: 0.0847 - val_olive_prod_mae: 0.0942 - val_min_oil_prod_mae: 0.0933 - val_max_oil_prod_mae: 0.0927 - val_avg_oil_prod_mae: 0.0889 - val_total_water_need_mae: 0.0545 - lr: 1.0328e-06\n",
|
||
"Epoch 4/150\n",
|
||
"4977/4977 [==============================] - 302s 61ms/step - loss: 0.0244 - mae: 0.1421 - val_loss: 0.0133 - val_mae: 0.0849 - val_olive_prod_mae: 0.0942 - val_min_oil_prod_mae: 0.0932 - val_max_oil_prod_mae: 0.0927 - val_avg_oil_prod_mae: 0.0889 - val_total_water_need_mae: 0.0554 - lr: 1.0438e-07\n",
|
||
"Epoch 5/150\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"2024-12-07 08:59:07.216568: W tensorflow/tsl/framework/bfc_allocator.cc:485] Allocator (GPU_0_bfc) ran out of memory trying to allocate 26.27MiB (rounded to 27541504)requested by op OilTransformer/multi_head_attention_3/einsum/Einsum\n",
|
||
"If the cause is memory fragmentation maybe the environment variable 'TF_GPU_ALLOCATOR=cuda_malloc_async' will improve the situation. \n",
|
||
"Current allocation summary follows.\n",
|
||
"Current allocation summary follows.\n",
|
||
"2024-12-07 08:59:07.216654: I tensorflow/tsl/framework/bfc_allocator.cc:1039] BFCAllocator dump for GPU_0_bfc\n",
|
||
"2024-12-07 08:59:07.216677: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (256): \tTotal Chunks: 197, Chunks in use: 196. 49.2KiB allocated for chunks. 49.0KiB in use in bin. 3.5KiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.216687: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (512): \tTotal Chunks: 171, Chunks in use: 166. 90.5KiB allocated for chunks. 87.5KiB in use in bin. 83.4KiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.216695: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (1024): \tTotal Chunks: 63, Chunks in use: 59. 75.2KiB allocated for chunks. 70.0KiB in use in bin. 66.5KiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.216702: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (2048): \tTotal Chunks: 6, Chunks in use: 3. 12.5KiB allocated for chunks. 6.0KiB in use in bin. 5.8KiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.216711: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (4096): \tTotal Chunks: 1, Chunks in use: 0. 4.0KiB allocated for chunks. 0B in use in bin. 0B client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.216720: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (8192): \tTotal Chunks: 1, Chunks in use: 1. 10.0KiB allocated for chunks. 10.0KiB in use in bin. 10.0KiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.216727: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (16384): \tTotal Chunks: 1, Chunks in use: 1. 20.5KiB allocated for chunks. 20.5KiB in use in bin. 20.5KiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.216735: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (32768): \tTotal Chunks: 16, Chunks in use: 16. 579.5KiB allocated for chunks. 579.5KiB in use in bin. 512.0KiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.216742: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (65536): \tTotal Chunks: 98, Chunks in use: 98. 6.74MiB allocated for chunks. 6.74MiB in use in bin. 6.54MiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.216749: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (131072): \tTotal Chunks: 66, Chunks in use: 66. 9.26MiB allocated for chunks. 9.26MiB in use in bin. 8.52MiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.216756: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (262144): \tTotal Chunks: 7, Chunks in use: 7. 2.51MiB allocated for chunks. 2.51MiB in use in bin. 2.47MiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.216763: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (524288): \tTotal Chunks: 3, Chunks in use: 3. 1.76MiB allocated for chunks. 1.76MiB in use in bin. 1.44MiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.216770: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (1048576): \tTotal Chunks: 1, Chunks in use: 1. 1.28MiB allocated for chunks. 1.28MiB in use in bin. 1.28MiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.216777: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (2097152): \tTotal Chunks: 6, Chunks in use: 5. 14.89MiB allocated for chunks. 12.81MiB in use in bin. 12.81MiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.216785: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (4194304): \tTotal Chunks: 6, Chunks in use: 6. 33.15MiB allocated for chunks. 33.15MiB in use in bin. 28.19MiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.216792: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (8388608): \tTotal Chunks: 42, Chunks in use: 42. 437.22MiB allocated for chunks. 437.22MiB in use in bin. 430.50MiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.216801: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (16777216): \tTotal Chunks: 12, Chunks in use: 12. 263.74MiB allocated for chunks. 263.74MiB in use in bin. 252.20MiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.216810: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (33554432): \tTotal Chunks: 1, Chunks in use: 1. 34.48MiB allocated for chunks. 34.48MiB in use in bin. 26.27MiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.216819: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (67108864): \tTotal Chunks: 1, Chunks in use: 1. 97.20MiB allocated for chunks. 97.20MiB in use in bin. 97.20MiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.216826: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (134217728): \tTotal Chunks: 0, Chunks in use: 0. 0B allocated for chunks. 0B in use in bin. 0B client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.216833: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (268435456): \tTotal Chunks: 12, Chunks in use: 12. 8.62GiB allocated for chunks. 8.62GiB in use in bin. 8.62GiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.216839: I tensorflow/tsl/framework/bfc_allocator.cc:1062] Bin for 26.27MiB was 16.00MiB, Chunk State: \n",
|
||
"2024-12-07 08:59:07.216845: I tensorflow/tsl/framework/bfc_allocator.cc:1075] Next region of size 1608187904\n",
|
||
"2024-12-07 08:59:07.216855: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abdd6000000 of size 385728000 next 704\n",
|
||
"2024-12-07 08:59:07.216862: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abdecfdbe00 of size 354368000 next 653\n",
|
||
"2024-12-07 08:59:07.216867: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe021cf800 of size 385728000 next 455\n",
|
||
"2024-12-07 08:59:07.216873: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe191ab600 of size 10747904 next 89\n",
|
||
"2024-12-07 08:59:07.216880: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe19beb600 of size 10747904 next 563\n",
|
||
"2024-12-07 08:59:07.216886: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1a62b600 of size 16793600 next 544\n",
|
||
"2024-12-07 08:59:07.216892: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1b62f600 of size 27541504 next 40\n",
|
||
"2024-12-07 08:59:07.216897: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1d073600 of size 83968 next 667\n",
|
||
"2024-12-07 08:59:07.216903: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1d087e00 of size 10747904 next 615\n",
|
||
"2024-12-07 08:59:07.216909: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1dac7e00 of size 83968 next 759\n",
|
||
"2024-12-07 08:59:07.216915: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1dadc600 of size 5373952 next 103\n",
|
||
"2024-12-07 08:59:07.216921: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1dffc600 of size 2686976 next 713\n",
|
||
"2024-12-07 08:59:07.216927: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e28c600 of size 83968 next 525\n",
|
||
"2024-12-07 08:59:07.216932: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e2a0e00 of size 83968 next 705\n",
|
||
"2024-12-07 08:59:07.216938: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e2b5600 of size 83968 next 471\n",
|
||
"2024-12-07 08:59:07.216944: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e2c9e00 of size 83968 next 645\n",
|
||
"2024-12-07 08:59:07.216949: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e2de600 of size 83968 next 458\n",
|
||
"2024-12-07 08:59:07.216955: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e2f2e00 of size 83968 next 621\n",
|
||
"2024-12-07 08:59:07.216960: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7abe1e307600 of size 2183168 next 703\n",
|
||
"2024-12-07 08:59:07.216966: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e51c600 of size 10747904 next 715\n",
|
||
"2024-12-07 08:59:07.216972: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1ef5c600 of size 21495808 next 675\n",
|
||
"2024-12-07 08:59:07.216978: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe203dc600 of size 21495808 next 750\n",
|
||
"2024-12-07 08:59:07.216983: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2185c600 of size 10747904 next 588\n",
|
||
"2024-12-07 08:59:07.216989: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2229c600 of size 10747904 next 497\n",
|
||
"2024-12-07 08:59:07.216996: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe22cdc600 of size 10747904 next 722\n",
|
||
"2024-12-07 08:59:07.217001: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2371c600 of size 10747904 next 479\n",
|
||
"2024-12-07 08:59:07.217007: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2415c600 of size 10747904 next 121\n",
|
||
"2024-12-07 08:59:07.217012: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe24b9c600 of size 10747904 next 419\n",
|
||
"2024-12-07 08:59:07.217018: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe255dc600 of size 10747904 next 507\n",
|
||
"2024-12-07 08:59:07.217023: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2601c600 of size 2686976 next 721\n",
|
||
"2024-12-07 08:59:07.217029: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe262ac600 of size 8060928 next 599\n",
|
||
"2024-12-07 08:59:07.217034: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe26a5c600 of size 10747904 next 541\n",
|
||
"2024-12-07 08:59:07.217039: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2749c600 of size 16793600 next 669\n",
|
||
"2024-12-07 08:59:07.217045: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe284a0600 of size 27541504 next 719\n",
|
||
"2024-12-07 08:59:07.217051: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe29ee4600 of size 10747904 next 517\n",
|
||
"2024-12-07 08:59:07.217056: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2a924600 of size 10747904 next 681\n",
|
||
"2024-12-07 08:59:07.217062: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2b364600 of size 10747904 next 432\n",
|
||
"2024-12-07 08:59:07.217067: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2bda4600 of size 10747904 next 95\n",
|
||
"2024-12-07 08:59:07.217072: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2c7e4600 of size 21495808 next 565\n",
|
||
"2024-12-07 08:59:07.217078: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2dc64600 of size 21495808 next 724\n",
|
||
"2024-12-07 08:59:07.217084: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2f0e4600 of size 10747904 next 66\n",
|
||
"2024-12-07 08:59:07.217089: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2fb24600 of size 2686976 next 747\n",
|
||
"2024-12-07 08:59:07.217094: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2fdb4600 of size 10747904 next 533\n",
|
||
"2024-12-07 08:59:07.217100: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe307f4600 of size 10747904 next 571\n",
|
||
"2024-12-07 08:59:07.217106: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe31234600 of size 10747904 next 488\n",
|
||
"2024-12-07 08:59:07.217111: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe31c74600 of size 10747904 next 710\n",
|
||
"2024-12-07 08:59:07.217116: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe326b4600 of size 10747904 next 552\n",
|
||
"2024-12-07 08:59:07.217122: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe330f4600 of size 10747904 next 46\n",
|
||
"2024-12-07 08:59:07.217127: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe33b34600 of size 36157952 next 18446744073709551615\n",
|
||
"2024-12-07 08:59:07.217133: I tensorflow/tsl/framework/bfc_allocator.cc:1075] Next region of size 4294967296\n",
|
||
"2024-12-07 08:59:07.217139: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad3f2000000 of size 2507232000 next 4\n",
|
||
"2024-12-07 08:59:07.217145: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad487715300 of size 101920000 next 5\n",
|
||
"2024-12-07 08:59:07.217151: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad48d848000 of size 256 next 6\n",
|
||
"2024-12-07 08:59:07.217157: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad48d848100 of size 256 next 7\n",
|
||
"2024-12-07 08:59:07.217163: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad48d848200 of size 256 next 8\n",
|
||
"2024-12-07 08:59:07.217168: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad48d848300 of size 256 next 9\n",
|
||
"2024-12-07 08:59:07.217175: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad48d848400 of size 256 next 10\n",
|
||
"2024-12-07 08:59:07.217181: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad48d848500 of size 708736000 next 11\n",
|
||
"2024-12-07 08:59:07.217187: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4b7c2f900 of size 771456000 next 12\n",
|
||
"2024-12-07 08:59:07.217193: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e5be7500 of size 31360000 next 13\n",
|
||
"2024-12-07 08:59:07.217199: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cf900 of size 256 next 14\n",
|
||
"2024-12-07 08:59:07.217204: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cfa00 of size 256 next 15\n",
|
||
"2024-12-07 08:59:07.217210: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cfb00 of size 256 next 16\n",
|
||
"2024-12-07 08:59:07.217215: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cfc00 of size 256 next 17\n",
|
||
"2024-12-07 08:59:07.217221: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cfd00 of size 256 next 18\n",
|
||
"2024-12-07 08:59:07.217226: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cfe00 of size 256 next 19\n",
|
||
"2024-12-07 08:59:07.217232: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cff00 of size 256 next 21\n",
|
||
"2024-12-07 08:59:07.217238: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0000 of size 256 next 22\n",
|
||
"2024-12-07 08:59:07.217244: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0100 of size 256 next 20\n",
|
||
"2024-12-07 08:59:07.217249: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0200 of size 256 next 586\n",
|
||
"2024-12-07 08:59:07.217255: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0300 of size 256 next 27\n",
|
||
"2024-12-07 08:59:07.217260: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0400 of size 256 next 23\n",
|
||
"2024-12-07 08:59:07.217266: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0500 of size 256 next 26\n",
|
||
"2024-12-07 08:59:07.217272: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0600 of size 256 next 30\n",
|
||
"2024-12-07 08:59:07.217278: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0700 of size 256 next 24\n",
|
||
"2024-12-07 08:59:07.217283: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0800 of size 256 next 79\n",
|
||
"2024-12-07 08:59:07.217289: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0900 of size 256 next 592\n",
|
||
"2024-12-07 08:59:07.217296: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0a00 of size 256 next 25\n",
|
||
"2024-12-07 08:59:07.217301: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0b00 of size 256 next 31\n",
|
||
"2024-12-07 08:59:07.217307: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0c00 of size 256 next 32\n",
|
||
"2024-12-07 08:59:07.217314: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0d00 of size 256 next 57\n",
|
||
"2024-12-07 08:59:07.217320: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0e00 of size 256 next 24960\n",
|
||
"2024-12-07 08:59:07.217326: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0f00 of size 256 next 24951\n",
|
||
"2024-12-07 08:59:07.217332: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1000 of size 256 next 24929\n",
|
||
"2024-12-07 08:59:07.217338: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1100 of size 256 next 584\n",
|
||
"2024-12-07 08:59:07.217345: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1200 of size 256 next 41\n",
|
||
"2024-12-07 08:59:07.217351: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1300 of size 256 next 35\n",
|
||
"2024-12-07 08:59:07.217374: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1400 of size 256 next 36\n",
|
||
"2024-12-07 08:59:07.217380: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1500 of size 256 next 49\n",
|
||
"2024-12-07 08:59:07.217387: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1600 of size 256 next 45\n",
|
||
"2024-12-07 08:59:07.217393: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1700 of size 256 next 43\n",
|
||
"2024-12-07 08:59:07.217398: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1800 of size 256 next 44\n",
|
||
"2024-12-07 08:59:07.217406: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1900 of size 256 next 24946\n",
|
||
"2024-12-07 08:59:07.217413: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1a00 of size 256 next 604\n",
|
||
"2024-12-07 08:59:07.217419: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1b00 of size 256 next 435\n",
|
||
"2024-12-07 08:59:07.217425: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1c00 of size 256 next 564\n",
|
||
"2024-12-07 08:59:07.217432: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1d00 of size 256 next 523\n",
|
||
"2024-12-07 08:59:07.217437: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1e00 of size 256 next 48\n",
|
||
"2024-12-07 08:59:07.217444: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1f00 of size 256 next 51\n",
|
||
"2024-12-07 08:59:07.217450: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d2000 of size 256 next 52\n",
|
||
"2024-12-07 08:59:07.217457: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d2100 of size 512 next 634\n",
|
||
"2024-12-07 08:59:07.217464: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d2300 of size 1024 next 514\n",
|
||
"2024-12-07 08:59:07.217472: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d2700 of size 1792 next 96\n",
|
||
"2024-12-07 08:59:07.217478: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d2e00 of size 1024 next 647\n",
|
||
"2024-12-07 08:59:07.217485: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3200 of size 256 next 589\n",
|
||
"2024-12-07 08:59:07.217492: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3300 of size 1280 next 506\n",
|
||
"2024-12-07 08:59:07.217497: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3800 of size 256 next 611\n",
|
||
"2024-12-07 08:59:07.217504: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3900 of size 256 next 172\n",
|
||
"2024-12-07 08:59:07.217511: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3a00 of size 256 next 677\n",
|
||
"2024-12-07 08:59:07.217518: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3b00 of size 256 next 613\n",
|
||
"2024-12-07 08:59:07.217524: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3c00 of size 256 next 489\n",
|
||
"2024-12-07 08:59:07.217531: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3d00 of size 256 next 24973\n",
|
||
"2024-12-07 08:59:07.217537: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3e00 of size 256 next 124\n",
|
||
"2024-12-07 08:59:07.217544: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3f00 of size 256 next 24979\n",
|
||
"2024-12-07 08:59:07.217551: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4000 of size 256 next 453\n",
|
||
"2024-12-07 08:59:07.217557: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4100 of size 256 next 651\n",
|
||
"2024-12-07 08:59:07.217564: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4200 of size 256 next 658\n",
|
||
"2024-12-07 08:59:07.217570: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4300 of size 256 next 642\n",
|
||
"2024-12-07 08:59:07.217577: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4400 of size 768 next 135\n",
|
||
"2024-12-07 08:59:07.217584: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4700 of size 768 next 691\n",
|
||
"2024-12-07 08:59:07.217590: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4a00 of size 768 next 560\n",
|
||
"2024-12-07 08:59:07.217597: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4d00 of size 768 next 428\n",
|
||
"2024-12-07 08:59:07.217603: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5000 of size 512 next 64\n",
|
||
"2024-12-07 08:59:07.217610: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5200 of size 512 next 527\n",
|
||
"2024-12-07 08:59:07.217616: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5400 of size 256 next 143\n",
|
||
"2024-12-07 08:59:07.217623: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5500 of size 512 next 486\n",
|
||
"2024-12-07 08:59:07.217629: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5700 of size 512 next 501\n",
|
||
"2024-12-07 08:59:07.217635: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5900 of size 768 next 539\n",
|
||
"2024-12-07 08:59:07.217642: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5c00 of size 768 next 60\n",
|
||
"2024-12-07 08:59:07.217648: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5f00 of size 512 next 423\n",
|
||
"2024-12-07 08:59:07.217655: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6100 of size 256 next 173\n",
|
||
"2024-12-07 08:59:07.217662: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6200 of size 256 next 590\n",
|
||
"2024-12-07 08:59:07.217669: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6300 of size 512 next 98\n",
|
||
"2024-12-07 08:59:07.217676: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6500 of size 512 next 531\n",
|
||
"2024-12-07 08:59:07.217684: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6700 of size 768 next 663\n",
|
||
"2024-12-07 08:59:07.217690: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6a00 of size 768 next 548\n",
|
||
"2024-12-07 08:59:07.217697: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6d00 of size 512 next 131\n",
|
||
"2024-12-07 08:59:07.217704: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6f00 of size 512 next 482\n",
|
||
"2024-12-07 08:59:07.217711: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7100 of size 512 next 109\n",
|
||
"2024-12-07 08:59:07.217717: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7300 of size 256 next 115\n",
|
||
"2024-12-07 08:59:07.217724: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7400 of size 256 next 116\n",
|
||
"2024-12-07 08:59:07.217731: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7500 of size 256 next 741\n",
|
||
"2024-12-07 08:59:07.217739: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7600 of size 512 next 86\n",
|
||
"2024-12-07 08:59:07.217745: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e79d7800 of size 768 next 491\n",
|
||
"2024-12-07 08:59:07.217751: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7b00 of size 256 next 502\n",
|
||
"2024-12-07 08:59:07.217758: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7c00 of size 256 next 24995\n",
|
||
"2024-12-07 08:59:07.217765: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7d00 of size 256 next 641\n",
|
||
"2024-12-07 08:59:07.217771: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7e00 of size 256 next 81\n",
|
||
"2024-12-07 08:59:07.217778: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7f00 of size 256 next 577\n",
|
||
"2024-12-07 08:59:07.217787: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8000 of size 256 next 123\n",
|
||
"2024-12-07 08:59:07.217795: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8100 of size 256 next 117\n",
|
||
"2024-12-07 08:59:07.217801: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8200 of size 256 next 118\n",
|
||
"2024-12-07 08:59:07.217807: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8300 of size 256 next 438\n",
|
||
"2024-12-07 08:59:07.217814: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8400 of size 256 next 505\n",
|
||
"2024-12-07 08:59:07.217820: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8500 of size 256 next 628\n",
|
||
"2024-12-07 08:59:07.217826: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8600 of size 256 next 127\n",
|
||
"2024-12-07 08:59:07.217833: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8700 of size 256 next 113\n",
|
||
"2024-12-07 08:59:07.217840: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8800 of size 256 next 126\n",
|
||
"2024-12-07 08:59:07.217846: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8900 of size 256 next 129\n",
|
||
"2024-12-07 08:59:07.217853: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8a00 of size 256 next 130\n",
|
||
"2024-12-07 08:59:07.217859: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8b00 of size 256 next 164\n",
|
||
"2024-12-07 08:59:07.217865: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8c00 of size 256 next 499\n",
|
||
"2024-12-07 08:59:07.217872: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8d00 of size 256 next 114\n",
|
||
"2024-12-07 08:59:07.217879: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8e00 of size 256 next 451\n",
|
||
"2024-12-07 08:59:07.217885: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8f00 of size 256 next 542\n",
|
||
"2024-12-07 08:59:07.217891: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9000 of size 256 next 593\n",
|
||
"2024-12-07 08:59:07.217898: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9100 of size 256 next 450\n",
|
||
"2024-12-07 08:59:07.217904: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9200 of size 256 next 480\n",
|
||
"2024-12-07 08:59:07.217911: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9300 of size 256 next 550\n",
|
||
"2024-12-07 08:59:07.217919: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9400 of size 512 next 102\n",
|
||
"2024-12-07 08:59:07.217926: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9600 of size 512 next 554\n",
|
||
"2024-12-07 08:59:07.217933: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9800 of size 1280 next 643\n",
|
||
"2024-12-07 08:59:07.217939: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9d00 of size 768 next 132\n",
|
||
"2024-12-07 08:59:07.217946: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79da000 of size 1792 next 139\n",
|
||
"2024-12-07 08:59:07.217952: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79da700 of size 1792 next 140\n",
|
||
"2024-12-07 08:59:07.217959: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dae00 of size 256 next 141\n",
|
||
"2024-12-07 08:59:07.217965: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79daf00 of size 256 next 142\n",
|
||
"2024-12-07 08:59:07.217971: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db000 of size 256 next 598\n",
|
||
"2024-12-07 08:59:07.217978: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db100 of size 256 next 463\n",
|
||
"2024-12-07 08:59:07.217985: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db200 of size 256 next 692\n",
|
||
"2024-12-07 08:59:07.217993: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db300 of size 256 next 467\n",
|
||
"2024-12-07 08:59:07.217999: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db400 of size 256 next 690\n",
|
||
"2024-12-07 08:59:07.218006: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db500 of size 256 next 466\n",
|
||
"2024-12-07 08:59:07.218012: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db600 of size 256 next 616\n",
|
||
"2024-12-07 08:59:07.218019: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db700 of size 256 next 24947\n",
|
||
"2024-12-07 08:59:07.218025: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db800 of size 256 next 559\n",
|
||
"2024-12-07 08:59:07.218032: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db900 of size 256 next 633\n",
|
||
"2024-12-07 08:59:07.218038: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dba00 of size 256 next 24980\n",
|
||
"2024-12-07 08:59:07.218045: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dbb00 of size 256 next 144\n",
|
||
"2024-12-07 08:59:07.218052: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dbc00 of size 1024 next 148\n",
|
||
"2024-12-07 08:59:07.218058: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dc000 of size 1024 next 149\n",
|
||
"2024-12-07 08:59:07.218065: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dc400 of size 1280 next 676\n",
|
||
"2024-12-07 08:59:07.218072: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dc900 of size 256 next 151\n",
|
||
"2024-12-07 08:59:07.218080: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dca00 of size 512 next 154\n",
|
||
"2024-12-07 08:59:07.218087: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dcc00 of size 512 next 155\n",
|
||
"2024-12-07 08:59:07.218093: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dce00 of size 256 next 156\n",
|
||
"2024-12-07 08:59:07.218100: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dcf00 of size 256 next 157\n",
|
||
"2024-12-07 08:59:07.218106: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd000 of size 256 next 158\n",
|
||
"2024-12-07 08:59:07.218113: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd100 of size 256 next 161\n",
|
||
"2024-12-07 08:59:07.218120: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd200 of size 256 next 162\n",
|
||
"2024-12-07 08:59:07.218126: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd300 of size 256 next 160\n",
|
||
"2024-12-07 08:59:07.218133: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd400 of size 256 next 169\n",
|
||
"2024-12-07 08:59:07.218139: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd500 of size 256 next 166\n",
|
||
"2024-12-07 08:59:07.218147: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd600 of size 256 next 167\n",
|
||
"2024-12-07 08:59:07.218154: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd700 of size 256 next 168\n",
|
||
"2024-12-07 08:59:07.218160: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd800 of size 256 next 163\n",
|
||
"2024-12-07 08:59:07.218167: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd900 of size 256 next 170\n",
|
||
"2024-12-07 08:59:07.218173: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dda00 of size 256 next 171\n",
|
||
"2024-12-07 08:59:07.218180: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e79ddb00 of size 2048 next 165\n",
|
||
"2024-12-07 08:59:07.218186: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79de300 of size 256 next 174\n",
|
||
"2024-12-07 08:59:07.218193: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79de400 of size 256 next 175\n",
|
||
"2024-12-07 08:59:07.218200: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79de500 of size 256 next 176\n",
|
||
"2024-12-07 08:59:07.218206: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79de600 of size 768 next 177\n",
|
||
"2024-12-07 08:59:07.218212: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79de900 of size 768 next 178\n",
|
||
"2024-12-07 08:59:07.218220: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dec00 of size 256 next 179\n",
|
||
"2024-12-07 08:59:07.218226: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79ded00 of size 256 next 180\n",
|
||
"2024-12-07 08:59:07.218233: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dee00 of size 512 next 181\n",
|
||
"2024-12-07 08:59:07.218239: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79df000 of size 512 next 182\n",
|
||
"2024-12-07 08:59:07.218246: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79df200 of size 512 next 185\n",
|
||
"2024-12-07 08:59:07.218252: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79df400 of size 512 next 186\n",
|
||
"2024-12-07 08:59:07.218258: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79df600 of size 512 next 188\n",
|
||
"2024-12-07 08:59:07.218265: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79df800 of size 512 next 189\n",
|
||
"2024-12-07 08:59:07.218273: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dfa00 of size 512 next 192\n",
|
||
"2024-12-07 08:59:07.218280: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dfc00 of size 512 next 193\n",
|
||
"2024-12-07 08:59:07.218286: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dfe00 of size 512 next 196\n",
|
||
"2024-12-07 08:59:07.218293: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0000 of size 512 next 197\n",
|
||
"2024-12-07 08:59:07.218300: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0200 of size 512 next 200\n",
|
||
"2024-12-07 08:59:07.218306: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0400 of size 512 next 201\n",
|
||
"2024-12-07 08:59:07.218313: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0600 of size 512 next 202\n",
|
||
"2024-12-07 08:59:07.218319: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0800 of size 768 next 29\n",
|
||
"2024-12-07 08:59:07.218326: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0b00 of size 512 next 78\n",
|
||
"2024-12-07 08:59:07.218332: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0d00 of size 512 next 558\n",
|
||
"2024-12-07 08:59:07.218339: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0f00 of size 512 next 657\n",
|
||
"2024-12-07 08:59:07.218346: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1100 of size 768 next 528\n",
|
||
"2024-12-07 08:59:07.218353: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1400 of size 512 next 33\n",
|
||
"2024-12-07 08:59:07.218369: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1600 of size 768 next 664\n",
|
||
"2024-12-07 08:59:07.218376: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1900 of size 256 next 515\n",
|
||
"2024-12-07 08:59:07.218383: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1a00 of size 256 next 723\n",
|
||
"2024-12-07 08:59:07.218390: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1b00 of size 256 next 24991\n",
|
||
"2024-12-07 08:59:07.218397: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1c00 of size 256 next 99\n",
|
||
"2024-12-07 08:59:07.218404: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1d00 of size 512 next 152\n",
|
||
"2024-12-07 08:59:07.218410: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e79e1f00 of size 1792 next 92\n",
|
||
"2024-12-07 08:59:07.218418: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2600 of size 256 next 462\n",
|
||
"2024-12-07 08:59:07.218424: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2700 of size 256 next 614\n",
|
||
"2024-12-07 08:59:07.218430: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2800 of size 256 next 557\n",
|
||
"2024-12-07 08:59:07.218437: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2900 of size 256 next 521\n",
|
||
"2024-12-07 08:59:07.218443: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2a00 of size 256 next 659\n",
|
||
"2024-12-07 08:59:07.218450: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2b00 of size 256 next 24934\n",
|
||
"2024-12-07 08:59:07.218456: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2c00 of size 256 next 543\n",
|
||
"2024-12-07 08:59:07.218463: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2d00 of size 768 next 568\n",
|
||
"2024-12-07 08:59:07.218470: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e79e3000 of size 768 next 639\n",
|
||
"2024-12-07 08:59:07.218476: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e3300 of size 512 next 53\n",
|
||
"2024-12-07 08:59:07.218483: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e3500 of size 1024 next 606\n",
|
||
"2024-12-07 08:59:07.218489: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e3900 of size 256 next 575\n",
|
||
"2024-12-07 08:59:07.218495: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e3a00 of size 256 next 607\n",
|
||
"2024-12-07 08:59:07.218502: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e3b00 of size 1280 next 420\n",
|
||
"2024-12-07 08:59:07.218508: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4000 of size 256 next 689\n",
|
||
"2024-12-07 08:59:07.218515: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4100 of size 2048 next 465\n",
|
||
"2024-12-07 08:59:07.218522: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4900 of size 256 next 712\n",
|
||
"2024-12-07 08:59:07.218529: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4a00 of size 256 next 468\n",
|
||
"2024-12-07 08:59:07.218535: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4b00 of size 256 next 742\n",
|
||
"2024-12-07 08:59:07.218542: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4c00 of size 256 next 578\n",
|
||
"2024-12-07 08:59:07.218549: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4d00 of size 512 next 39\n",
|
||
"2024-12-07 08:59:07.218556: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4f00 of size 512 next 635\n",
|
||
"2024-12-07 08:59:07.218564: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e5100 of size 256 next 446\n",
|
||
"2024-12-07 08:59:07.218569: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e79e5200 of size 2048 next 540\n",
|
||
"2024-12-07 08:59:07.218576: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e5a00 of size 768 next 34\n",
|
||
"2024-12-07 08:59:07.218583: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e5d00 of size 256 next 623\n",
|
||
"2024-12-07 08:59:07.218589: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e5e00 of size 512 next 492\n",
|
||
"2024-12-07 08:59:07.218596: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6000 of size 512 next 702\n",
|
||
"2024-12-07 08:59:07.218602: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6200 of size 512 next 752\n",
|
||
"2024-12-07 08:59:07.218609: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6400 of size 512 next 706\n",
|
||
"2024-12-07 08:59:07.218616: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6600 of size 1536 next 472\n",
|
||
"2024-12-07 08:59:07.218623: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6c00 of size 256 next 90\n",
|
||
"2024-12-07 08:59:07.218629: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6d00 of size 256 next 581\n",
|
||
"2024-12-07 08:59:07.218636: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6e00 of size 256 next 610\n",
|
||
"2024-12-07 08:59:07.218644: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6f00 of size 512 next 646\n",
|
||
"2024-12-07 08:59:07.218651: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7100 of size 512 next 576\n",
|
||
"2024-12-07 08:59:07.218657: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e79e7300 of size 512 next 583\n",
|
||
"2024-12-07 08:59:07.218663: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7500 of size 256 next 487\n",
|
||
"2024-12-07 08:59:07.218670: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7600 of size 256 next 522\n",
|
||
"2024-12-07 08:59:07.218677: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7700 of size 256 next 459\n",
|
||
"2024-12-07 08:59:07.218683: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7800 of size 256 next 654\n",
|
||
"2024-12-07 08:59:07.218690: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7900 of size 768 next 596\n",
|
||
"2024-12-07 08:59:07.218697: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7c00 of size 512 next 648\n",
|
||
"2024-12-07 08:59:07.218703: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7e00 of size 512 next 625\n",
|
||
"2024-12-07 08:59:07.218710: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e8000 of size 1280 next 735\n",
|
||
"2024-12-07 08:59:07.218716: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e8500 of size 512 next 652\n",
|
||
"2024-12-07 08:59:07.218722: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e8700 of size 512 next 457\n",
|
||
"2024-12-07 08:59:07.218729: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e8900 of size 512 next 28\n",
|
||
"2024-12-07 08:59:07.218736: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e8b00 of size 20992 next 37\n",
|
||
"2024-12-07 08:59:07.218743: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79edd00 of size 32768 next 159\n",
|
||
"2024-12-07 08:59:07.218750: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79f5d00 of size 246784 next 619\n",
|
||
"2024-12-07 08:59:07.218756: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a32100 of size 164608 next 566\n",
|
||
"2024-12-07 08:59:07.218763: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5a400 of size 256 next 42\n",
|
||
"2024-12-07 08:59:07.218770: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5a500 of size 256 next 546\n",
|
||
"2024-12-07 08:59:07.218776: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7a5a600 of size 4096 next 644\n",
|
||
"2024-12-07 08:59:07.218782: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5b600 of size 512 next 569\n",
|
||
"2024-12-07 08:59:07.218789: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7a5b800 of size 1536 next 421\n",
|
||
"2024-12-07 08:59:07.218795: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5be00 of size 512 next 474\n",
|
||
"2024-12-07 08:59:07.218802: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5c000 of size 512 next 624\n",
|
||
"2024-12-07 08:59:07.218809: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7a5c200 of size 2560 next 496\n",
|
||
"2024-12-07 08:59:07.218815: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5cc00 of size 512 next 437\n",
|
||
"2024-12-07 08:59:07.218822: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5ce00 of size 512 next 763\n",
|
||
"2024-12-07 08:59:07.218830: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5d000 of size 512 next 73\n",
|
||
"2024-12-07 08:59:07.218837: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5d200 of size 512 next 91\n",
|
||
"2024-12-07 08:59:07.218844: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5d400 of size 512 next 650\n",
|
||
"2024-12-07 08:59:07.218851: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5d600 of size 768 next 137\n",
|
||
"2024-12-07 08:59:07.218858: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5d900 of size 512 next 431\n",
|
||
"2024-12-07 08:59:07.218866: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5db00 of size 512 next 145\n",
|
||
"2024-12-07 08:59:07.218873: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5dd00 of size 512 next 481\n",
|
||
"2024-12-07 08:59:07.218881: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5df00 of size 512 next 464\n",
|
||
"2024-12-07 08:59:07.218888: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5e100 of size 1536 next 442\n",
|
||
"2024-12-07 08:59:07.218895: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5e700 of size 512 next 730\n",
|
||
"2024-12-07 08:59:07.218903: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5e900 of size 256 next 518\n",
|
||
"2024-12-07 08:59:07.218910: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5ea00 of size 512 next 110\n",
|
||
"2024-12-07 08:59:07.218918: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7a5ec00 of size 256 next 494\n",
|
||
"2024-12-07 08:59:07.218925: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5ed00 of size 256 next 100\n",
|
||
"2024-12-07 08:59:07.218932: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5ee00 of size 32768 next 693\n",
|
||
"2024-12-07 08:59:07.218940: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7a66e00 of size 1024 next 696\n",
|
||
"2024-12-07 08:59:07.218946: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a67200 of size 512 next 470\n",
|
||
"2024-12-07 08:59:07.218953: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a67400 of size 59648 next 138\n",
|
||
"2024-12-07 08:59:07.218960: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a75d00 of size 32768 next 56\n",
|
||
"2024-12-07 08:59:07.218967: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a7dd00 of size 65536 next 629\n",
|
||
"2024-12-07 08:59:07.218974: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7a8dd00 of size 1024 next 666\n",
|
||
"2024-12-07 08:59:07.218981: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a8e100 of size 130560 next 493\n",
|
||
"2024-12-07 08:59:07.218988: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7aadf00 of size 65536 next 80\n",
|
||
"2024-12-07 08:59:07.218995: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7abdf00 of size 131072 next 38\n",
|
||
"2024-12-07 08:59:07.219002: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7addf00 of size 512 next 545\n",
|
||
"2024-12-07 08:59:07.219009: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ade100 of size 65536 next 697\n",
|
||
"2024-12-07 08:59:07.219017: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7aee100 of size 65536 next 637\n",
|
||
"2024-12-07 08:59:07.219024: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7afe100 of size 115712 next 58\n",
|
||
"2024-12-07 08:59:07.219031: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b1a500 of size 512 next 108\n",
|
||
"2024-12-07 08:59:07.219038: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b1a700 of size 131072 next 439\n",
|
||
"2024-12-07 08:59:07.219045: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b3a700 of size 131072 next 74\n",
|
||
"2024-12-07 08:59:07.219052: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b5a700 of size 1024 next 601\n",
|
||
"2024-12-07 08:59:07.219059: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b5ab00 of size 65536 next 424\n",
|
||
"2024-12-07 08:59:07.219066: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b6ab00 of size 512 next 609\n",
|
||
"2024-12-07 08:59:07.219072: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b6ad00 of size 131072 next 685\n",
|
||
"2024-12-07 08:59:07.219079: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b8ad00 of size 1024 next 504\n",
|
||
"2024-12-07 08:59:07.219086: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b8b100 of size 32768 next 136\n",
|
||
"2024-12-07 08:59:07.219092: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b93100 of size 1792 next 475\n",
|
||
"2024-12-07 08:59:07.219100: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b93800 of size 65536 next 67\n",
|
||
"2024-12-07 08:59:07.219106: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ba3800 of size 131072 next 672\n",
|
||
"2024-12-07 08:59:07.219114: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7bc3800 of size 512 next 580\n",
|
||
"2024-12-07 08:59:07.219121: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7bc3a00 of size 1024 next 707\n",
|
||
"2024-12-07 08:59:07.219129: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7bc3e00 of size 198656 next 600\n",
|
||
"2024-12-07 08:59:07.219136: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7bf4600 of size 1792 next 679\n",
|
||
"2024-12-07 08:59:07.219144: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7bf4d00 of size 1024 next 441\n",
|
||
"2024-12-07 08:59:07.219151: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7bf5100 of size 101376 next 106\n",
|
||
"2024-12-07 08:59:07.219158: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c0dd00 of size 65536 next 183\n",
|
||
"2024-12-07 08:59:07.219165: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c1dd00 of size 65536 next 184\n",
|
||
"2024-12-07 08:59:07.219172: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c2dd00 of size 65536 next 187\n",
|
||
"2024-12-07 08:59:07.219178: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c3dd00 of size 65536 next 112\n",
|
||
"2024-12-07 08:59:07.219185: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c4dd00 of size 65536 next 740\n",
|
||
"2024-12-07 08:59:07.219191: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c5dd00 of size 131072 next 436\n",
|
||
"2024-12-07 08:59:07.219198: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c7dd00 of size 131072 next 430\n",
|
||
"2024-12-07 08:59:07.219204: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c9dd00 of size 65536 next 526\n",
|
||
"2024-12-07 08:59:07.219211: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7cadd00 of size 65536 next 678\n",
|
||
"2024-12-07 08:59:07.219218: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7cbdd00 of size 65536 next 508\n",
|
||
"2024-12-07 08:59:07.219225: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ccdd00 of size 65536 next 731\n",
|
||
"2024-12-07 08:59:07.219231: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7cddd00 of size 65536 next 627\n",
|
||
"2024-12-07 08:59:07.219238: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7cedd00 of size 131072 next 537\n",
|
||
"2024-12-07 08:59:07.219245: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d0dd00 of size 65536 next 478\n",
|
||
"2024-12-07 08:59:07.219252: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d1dd00 of size 65536 next 503\n",
|
||
"2024-12-07 08:59:07.219258: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d2dd00 of size 65536 next 594\n",
|
||
"2024-12-07 08:59:07.219266: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d3dd00 of size 181248 next 153\n",
|
||
"2024-12-07 08:59:07.219273: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d6a100 of size 65536 next 190\n",
|
||
"2024-12-07 08:59:07.219281: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d7a100 of size 65536 next 191\n",
|
||
"2024-12-07 08:59:07.219288: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d8a100 of size 65536 next 194\n",
|
||
"2024-12-07 08:59:07.219295: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d9a100 of size 65536 next 195\n",
|
||
"2024-12-07 08:59:07.219302: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7daa100 of size 65536 next 198\n",
|
||
"2024-12-07 08:59:07.219309: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7dba100 of size 65536 next 199\n",
|
||
"2024-12-07 08:59:07.219316: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7dca100 of size 512 next 203\n",
|
||
"2024-12-07 08:59:07.219322: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7dca300 of size 512 next 204\n",
|
||
"2024-12-07 08:59:07.219329: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7dca500 of size 131072 next 205\n",
|
||
"2024-12-07 08:59:07.219336: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7dea500 of size 261120 next 147\n",
|
||
"2024-12-07 08:59:07.219343: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e2a100 of size 256 next 620\n",
|
||
"2024-12-07 08:59:07.219350: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e2a200 of size 256 next 612\n",
|
||
"2024-12-07 08:59:07.219356: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e2a300 of size 131072 next 682\n",
|
||
"2024-12-07 08:59:07.219376: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e4a300 of size 32768 next 709\n",
|
||
"2024-12-07 08:59:07.219383: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e52300 of size 32768 next 698\n",
|
||
"2024-12-07 08:59:07.219392: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e5a300 of size 115712 next 88\n",
|
||
"2024-12-07 08:59:07.219398: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e76700 of size 1280 next 456\n",
|
||
"2024-12-07 08:59:07.219406: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e76c00 of size 64256 next 125\n",
|
||
"2024-12-07 08:59:07.219412: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e86700 of size 32768 next 75\n",
|
||
"2024-12-07 08:59:07.219419: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e8e700 of size 1024 next 535\n",
|
||
"2024-12-07 08:59:07.219426: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e8eb00 of size 1024 next 562\n",
|
||
"2024-12-07 08:59:07.219433: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e8ef00 of size 1024 next 461\n",
|
||
"2024-12-07 08:59:07.219441: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e8f300 of size 1024 next 656\n",
|
||
"2024-12-07 08:59:07.219449: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e8f700 of size 43520 next 146\n",
|
||
"2024-12-07 08:59:07.219456: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e9a100 of size 1024 next 206\n",
|
||
"2024-12-07 08:59:07.219463: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e9a500 of size 1024 next 207\n",
|
||
"2024-12-07 08:59:07.219470: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e9a900 of size 131072 next 208\n",
|
||
"2024-12-07 08:59:07.219475: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7eba900 of size 131072 next 209\n",
|
||
"2024-12-07 08:59:07.219482: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7eda900 of size 512 next 210\n",
|
||
"2024-12-07 08:59:07.219488: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7edab00 of size 512 next 211\n",
|
||
"2024-12-07 08:59:07.219495: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7edad00 of size 512 next 212\n",
|
||
"2024-12-07 08:59:07.219501: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7edaf00 of size 512 next 213\n",
|
||
"2024-12-07 08:59:07.219508: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7edb100 of size 512 next 214\n",
|
||
"2024-12-07 08:59:07.219514: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7edb300 of size 512 next 215\n",
|
||
"2024-12-07 08:59:07.219521: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7edb500 of size 65536 next 216\n",
|
||
"2024-12-07 08:59:07.219528: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7eeb500 of size 65536 next 217\n",
|
||
"2024-12-07 08:59:07.219535: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7efb500 of size 512 next 218\n",
|
||
"2024-12-07 08:59:07.219543: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7efb700 of size 512 next 219\n",
|
||
"2024-12-07 08:59:07.219550: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7efb900 of size 65536 next 220\n",
|
||
"2024-12-07 08:59:07.219557: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f0b900 of size 65536 next 221\n",
|
||
"2024-12-07 08:59:07.219565: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f1b900 of size 512 next 222\n",
|
||
"2024-12-07 08:59:07.219572: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f1bb00 of size 512 next 223\n",
|
||
"2024-12-07 08:59:07.219580: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f1bd00 of size 65536 next 224\n",
|
||
"2024-12-07 08:59:07.219587: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f2bd00 of size 65536 next 225\n",
|
||
"2024-12-07 08:59:07.219594: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f3bd00 of size 512 next 226\n",
|
||
"2024-12-07 08:59:07.219602: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f3bf00 of size 512 next 227\n",
|
||
"2024-12-07 08:59:07.219609: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f3c100 of size 65536 next 228\n",
|
||
"2024-12-07 08:59:07.219616: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f4c100 of size 65536 next 229\n",
|
||
"2024-12-07 08:59:07.219624: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f5c100 of size 512 next 230\n",
|
||
"2024-12-07 08:59:07.219631: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f5c300 of size 512 next 231\n",
|
||
"2024-12-07 08:59:07.219639: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f5c500 of size 65536 next 232\n",
|
||
"2024-12-07 08:59:07.219646: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f6c500 of size 65536 next 233\n",
|
||
"2024-12-07 08:59:07.219653: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7c500 of size 512 next 234\n",
|
||
"2024-12-07 08:59:07.219660: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7c700 of size 512 next 235\n",
|
||
"2024-12-07 08:59:07.219668: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7c900 of size 512 next 236\n",
|
||
"2024-12-07 08:59:07.219674: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7cb00 of size 512 next 237\n",
|
||
"2024-12-07 08:59:07.219680: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7cd00 of size 512 next 238\n",
|
||
"2024-12-07 08:59:07.219687: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7cf00 of size 512 next 239\n",
|
||
"2024-12-07 08:59:07.219694: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7d100 of size 131072 next 240\n",
|
||
"2024-12-07 08:59:07.219700: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f9d100 of size 131072 next 241\n",
|
||
"2024-12-07 08:59:07.219707: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7fbd100 of size 1024 next 242\n",
|
||
"2024-12-07 08:59:07.219714: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7fbd500 of size 1024 next 243\n",
|
||
"2024-12-07 08:59:07.219721: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7fbd900 of size 131072 next 244\n",
|
||
"2024-12-07 08:59:07.219728: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7fdd900 of size 131072 next 245\n",
|
||
"2024-12-07 08:59:07.219734: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffd900 of size 512 next 246\n",
|
||
"2024-12-07 08:59:07.219741: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffdb00 of size 512 next 247\n",
|
||
"2024-12-07 08:59:07.219748: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffdd00 of size 512 next 248\n",
|
||
"2024-12-07 08:59:07.219755: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffdf00 of size 512 next 249\n",
|
||
"2024-12-07 08:59:07.219762: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffe100 of size 512 next 250\n",
|
||
"2024-12-07 08:59:07.219770: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffe300 of size 512 next 251\n",
|
||
"2024-12-07 08:59:07.219776: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffe500 of size 65536 next 252\n",
|
||
"2024-12-07 08:59:07.219784: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e800e500 of size 65536 next 253\n",
|
||
"2024-12-07 08:59:07.219791: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e801e500 of size 512 next 254\n",
|
||
"2024-12-07 08:59:07.219798: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e801e700 of size 512 next 255\n",
|
||
"2024-12-07 08:59:07.219806: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e801e900 of size 65536 next 256\n",
|
||
"2024-12-07 08:59:07.219813: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e802e900 of size 65536 next 257\n",
|
||
"2024-12-07 08:59:07.219820: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e803e900 of size 512 next 258\n",
|
||
"2024-12-07 08:59:07.219828: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e803eb00 of size 512 next 259\n",
|
||
"2024-12-07 08:59:07.219835: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e803ed00 of size 65536 next 260\n",
|
||
"2024-12-07 08:59:07.219842: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e804ed00 of size 65536 next 261\n",
|
||
"2024-12-07 08:59:07.219850: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e805ed00 of size 512 next 262\n",
|
||
"2024-12-07 08:59:07.219857: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e805ef00 of size 512 next 263\n",
|
||
"2024-12-07 08:59:07.219864: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e805f100 of size 65536 next 264\n",
|
||
"2024-12-07 08:59:07.219872: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e806f100 of size 65536 next 265\n",
|
||
"2024-12-07 08:59:07.219879: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e807f100 of size 512 next 266\n",
|
||
"2024-12-07 08:59:07.219886: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e807f300 of size 512 next 267\n",
|
||
"2024-12-07 08:59:07.219894: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e807f500 of size 65536 next 268\n",
|
||
"2024-12-07 08:59:07.219901: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e808f500 of size 65536 next 269\n",
|
||
"2024-12-07 08:59:07.219907: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e809f500 of size 512 next 270\n",
|
||
"2024-12-07 08:59:07.219914: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e809f700 of size 512 next 271\n",
|
||
"2024-12-07 08:59:07.219921: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e809f900 of size 512 next 272\n",
|
||
"2024-12-07 08:59:07.219927: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e809fb00 of size 512 next 273\n",
|
||
"2024-12-07 08:59:07.219933: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e809fd00 of size 512 next 274\n",
|
||
"2024-12-07 08:59:07.219940: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e809ff00 of size 512 next 275\n",
|
||
"2024-12-07 08:59:07.219947: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e80a0100 of size 131072 next 276\n",
|
||
"2024-12-07 08:59:07.219953: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e80c0100 of size 131072 next 277\n",
|
||
"2024-12-07 08:59:07.219960: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e80e0100 of size 1024 next 278\n",
|
||
"2024-12-07 08:59:07.219968: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e80e0500 of size 1024 next 279\n",
|
||
"2024-12-07 08:59:07.219975: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e80e0900 of size 131072 next 280\n",
|
||
"2024-12-07 08:59:07.219982: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8100900 of size 131072 next 281\n",
|
||
"2024-12-07 08:59:07.219990: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8120900 of size 512 next 282\n",
|
||
"2024-12-07 08:59:07.219997: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8120b00 of size 512 next 283\n",
|
||
"2024-12-07 08:59:07.220005: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8120d00 of size 512 next 284\n",
|
||
"2024-12-07 08:59:07.220012: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8120f00 of size 512 next 285\n",
|
||
"2024-12-07 08:59:07.220020: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8121100 of size 512 next 286\n",
|
||
"2024-12-07 08:59:07.220027: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8121300 of size 512 next 287\n",
|
||
"2024-12-07 08:59:07.220034: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8121500 of size 65536 next 288\n",
|
||
"2024-12-07 08:59:07.220041: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8131500 of size 65536 next 289\n",
|
||
"2024-12-07 08:59:07.220048: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8141500 of size 512 next 290\n",
|
||
"2024-12-07 08:59:07.220054: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8141700 of size 512 next 291\n",
|
||
"2024-12-07 08:59:07.220061: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8141900 of size 65536 next 292\n",
|
||
"2024-12-07 08:59:07.220068: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8151900 of size 65536 next 293\n",
|
||
"2024-12-07 08:59:07.220075: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8161900 of size 512 next 294\n",
|
||
"2024-12-07 08:59:07.220081: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8161b00 of size 512 next 295\n",
|
||
"2024-12-07 08:59:07.220088: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8161d00 of size 65536 next 296\n",
|
||
"2024-12-07 08:59:07.220095: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8171d00 of size 65536 next 297\n",
|
||
"2024-12-07 08:59:07.220102: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8181d00 of size 512 next 298\n",
|
||
"2024-12-07 08:59:07.220111: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8181f00 of size 512 next 299\n",
|
||
"2024-12-07 08:59:07.220118: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8182100 of size 65536 next 300\n",
|
||
"2024-12-07 08:59:07.220125: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8192100 of size 65536 next 301\n",
|
||
"2024-12-07 08:59:07.220131: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81a2100 of size 512 next 302\n",
|
||
"2024-12-07 08:59:07.220138: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81a2300 of size 512 next 303\n",
|
||
"2024-12-07 08:59:07.220146: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81a2500 of size 65536 next 304\n",
|
||
"2024-12-07 08:59:07.220153: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81b2500 of size 65536 next 305\n",
|
||
"2024-12-07 08:59:07.220161: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c2500 of size 512 next 306\n",
|
||
"2024-12-07 08:59:07.220169: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c2700 of size 512 next 307\n",
|
||
"2024-12-07 08:59:07.220178: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c2900 of size 512 next 308\n",
|
||
"2024-12-07 08:59:07.220185: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c2b00 of size 512 next 309\n",
|
||
"2024-12-07 08:59:07.220192: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c2d00 of size 512 next 310\n",
|
||
"2024-12-07 08:59:07.220200: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c2f00 of size 512 next 311\n",
|
||
"2024-12-07 08:59:07.220207: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c3100 of size 131072 next 312\n",
|
||
"2024-12-07 08:59:07.220214: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81e3100 of size 131072 next 313\n",
|
||
"2024-12-07 08:59:07.220221: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8203100 of size 1024 next 314\n",
|
||
"2024-12-07 08:59:07.220229: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8203500 of size 1024 next 315\n",
|
||
"2024-12-07 08:59:07.220236: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8203900 of size 131072 next 316\n",
|
||
"2024-12-07 08:59:07.220245: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8223900 of size 131072 next 317\n",
|
||
"2024-12-07 08:59:07.220253: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8243900 of size 512 next 318\n",
|
||
"2024-12-07 08:59:07.220261: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8243b00 of size 512 next 319\n",
|
||
"2024-12-07 08:59:07.220268: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8243d00 of size 512 next 320\n",
|
||
"2024-12-07 08:59:07.220276: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8243f00 of size 512 next 321\n",
|
||
"2024-12-07 08:59:07.220282: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8244100 of size 512 next 322\n",
|
||
"2024-12-07 08:59:07.220289: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8244300 of size 512 next 323\n",
|
||
"2024-12-07 08:59:07.220296: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8244500 of size 115712 next 324\n",
|
||
"2024-12-07 08:59:07.220303: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8260900 of size 115712 next 325\n",
|
||
"2024-12-07 08:59:07.220310: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827cd00 of size 1024 next 326\n",
|
||
"2024-12-07 08:59:07.220317: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827d100 of size 1024 next 327\n",
|
||
"2024-12-07 08:59:07.220323: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827d500 of size 512 next 328\n",
|
||
"2024-12-07 08:59:07.220330: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827d700 of size 512 next 329\n",
|
||
"2024-12-07 08:59:07.220337: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827d900 of size 512 next 330\n",
|
||
"2024-12-07 08:59:07.220344: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827db00 of size 512 next 331\n",
|
||
"2024-12-07 08:59:07.220351: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827dd00 of size 131072 next 332\n",
|
||
"2024-12-07 08:59:07.220371: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e829dd00 of size 131072 next 333\n",
|
||
"2024-12-07 08:59:07.220381: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82bdd00 of size 512 next 334\n",
|
||
"2024-12-07 08:59:07.220388: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82bdf00 of size 512 next 335\n",
|
||
"2024-12-07 08:59:07.220395: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82be100 of size 131072 next 336\n",
|
||
"2024-12-07 08:59:07.220402: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82de100 of size 131072 next 337\n",
|
||
"2024-12-07 08:59:07.220409: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82fe100 of size 1024 next 338\n",
|
||
"2024-12-07 08:59:07.220416: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82fe500 of size 1024 next 339\n",
|
||
"2024-12-07 08:59:07.220424: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82fe900 of size 131072 next 340\n",
|
||
"2024-12-07 08:59:07.220429: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e831e900 of size 131072 next 341\n",
|
||
"2024-12-07 08:59:07.220437: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e833e900 of size 1024 next 342\n",
|
||
"2024-12-07 08:59:07.220443: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e833ed00 of size 1024 next 343\n",
|
||
"2024-12-07 08:59:07.220450: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e833f100 of size 131072 next 344\n",
|
||
"2024-12-07 08:59:07.220457: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e835f100 of size 131072 next 345\n",
|
||
"2024-12-07 08:59:07.220464: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e837f100 of size 1024 next 346\n",
|
||
"2024-12-07 08:59:07.220471: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e837f500 of size 1024 next 347\n",
|
||
"2024-12-07 08:59:07.220478: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e837f900 of size 131072 next 348\n",
|
||
"2024-12-07 08:59:07.220485: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e839f900 of size 131072 next 349\n",
|
||
"2024-12-07 08:59:07.220492: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83bf900 of size 512 next 350\n",
|
||
"2024-12-07 08:59:07.220500: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83bfb00 of size 512 next 351\n",
|
||
"2024-12-07 08:59:07.220507: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83bfd00 of size 32768 next 352\n",
|
||
"2024-12-07 08:59:07.220513: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83c7d00 of size 32768 next 353\n",
|
||
"2024-12-07 08:59:07.220520: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83cfd00 of size 256 next 354\n",
|
||
"2024-12-07 08:59:07.220529: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83cfe00 of size 256 next 355\n",
|
||
"2024-12-07 08:59:07.220536: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83cff00 of size 1792 next 356\n",
|
||
"2024-12-07 08:59:07.220544: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83d0600 of size 1792 next 357\n",
|
||
"2024-12-07 08:59:07.220551: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83d0d00 of size 1792 next 358\n",
|
||
"2024-12-07 08:59:07.220558: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83d1400 of size 1792 next 359\n",
|
||
"2024-12-07 08:59:07.220566: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83d1b00 of size 458752 next 360\n",
|
||
"2024-12-07 08:59:07.220573: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8441b00 of size 458752 next 361\n",
|
||
"2024-12-07 08:59:07.220580: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b1b00 of size 1024 next 362\n",
|
||
"2024-12-07 08:59:07.220589: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b1f00 of size 1024 next 363\n",
|
||
"2024-12-07 08:59:07.220595: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b2300 of size 1024 next 364\n",
|
||
"2024-12-07 08:59:07.220602: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b2700 of size 1024 next 365\n",
|
||
"2024-12-07 08:59:07.220609: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b2b00 of size 1024 next 366\n",
|
||
"2024-12-07 08:59:07.220616: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b2f00 of size 1024 next 367\n",
|
||
"2024-12-07 08:59:07.220623: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b3300 of size 131072 next 368\n",
|
||
"2024-12-07 08:59:07.220630: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84d3300 of size 131072 next 369\n",
|
||
"2024-12-07 08:59:07.220637: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3300 of size 512 next 370\n",
|
||
"2024-12-07 08:59:07.220643: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3500 of size 512 next 371\n",
|
||
"2024-12-07 08:59:07.220650: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3700 of size 512 next 372\n",
|
||
"2024-12-07 08:59:07.220657: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3900 of size 512 next 373\n",
|
||
"2024-12-07 08:59:07.220664: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3b00 of size 512 next 374\n",
|
||
"2024-12-07 08:59:07.220672: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3d00 of size 512 next 375\n",
|
||
"2024-12-07 08:59:07.220680: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3f00 of size 32768 next 376\n",
|
||
"2024-12-07 08:59:07.220687: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84fbf00 of size 32768 next 377\n",
|
||
"2024-12-07 08:59:07.220694: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8503f00 of size 256 next 378\n",
|
||
"2024-12-07 08:59:07.220701: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504000 of size 256 next 379\n",
|
||
"2024-12-07 08:59:07.220708: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504100 of size 1280 next 380\n",
|
||
"2024-12-07 08:59:07.220714: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504600 of size 1280 next 381\n",
|
||
"2024-12-07 08:59:07.220724: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504b00 of size 256 next 382\n",
|
||
"2024-12-07 08:59:07.220732: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504c00 of size 256 next 383\n",
|
||
"2024-12-07 08:59:07.220739: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504d00 of size 256 next 384\n",
|
||
"2024-12-07 08:59:07.220746: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504e00 of size 256 next 385\n",
|
||
"2024-12-07 08:59:07.220753: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504f00 of size 256 next 386\n",
|
||
"2024-12-07 08:59:07.220761: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505000 of size 256 next 387\n",
|
||
"2024-12-07 08:59:07.220769: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505100 of size 256 next 388\n",
|
||
"2024-12-07 08:59:07.220775: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505200 of size 256 next 389\n",
|
||
"2024-12-07 08:59:07.220782: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505300 of size 256 next 390\n",
|
||
"2024-12-07 08:59:07.220790: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505400 of size 256 next 391\n",
|
||
"2024-12-07 08:59:07.220798: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505500 of size 256 next 392\n",
|
||
"2024-12-07 08:59:07.220805: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505600 of size 256 next 393\n",
|
||
"2024-12-07 08:59:07.220812: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505700 of size 256 next 394\n",
|
||
"2024-12-07 08:59:07.220818: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505800 of size 256 next 395\n",
|
||
"2024-12-07 08:59:07.220824: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505900 of size 256 next 396\n",
|
||
"2024-12-07 08:59:07.220831: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505a00 of size 256 next 397\n",
|
||
"2024-12-07 08:59:07.220838: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505b00 of size 256 next 398\n",
|
||
"2024-12-07 08:59:07.220845: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505c00 of size 256 next 399\n",
|
||
"2024-12-07 08:59:07.220852: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505d00 of size 256 next 400\n",
|
||
"2024-12-07 08:59:07.220860: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505e00 of size 256 next 401\n",
|
||
"2024-12-07 08:59:07.220867: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505f00 of size 256 next 402\n",
|
||
"2024-12-07 08:59:07.220874: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506000 of size 256 next 403\n",
|
||
"2024-12-07 08:59:07.220882: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506100 of size 256 next 404\n",
|
||
"2024-12-07 08:59:07.220888: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506200 of size 256 next 405\n",
|
||
"2024-12-07 08:59:07.220895: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506300 of size 256 next 406\n",
|
||
"2024-12-07 08:59:07.220901: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506400 of size 256 next 407\n",
|
||
"2024-12-07 08:59:07.220908: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506500 of size 256 next 408\n",
|
||
"2024-12-07 08:59:07.220914: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506600 of size 256 next 409\n",
|
||
"2024-12-07 08:59:07.220921: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506700 of size 256 next 410\n",
|
||
"2024-12-07 08:59:07.220928: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506800 of size 256 next 411\n",
|
||
"2024-12-07 08:59:07.220935: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506900 of size 256 next 412\n",
|
||
"2024-12-07 08:59:07.220942: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506a00 of size 256 next 413\n",
|
||
"2024-12-07 08:59:07.220950: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506b00 of size 256 next 414\n",
|
||
"2024-12-07 08:59:07.220958: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506c00 of size 256 next 415\n",
|
||
"2024-12-07 08:59:07.220966: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506d00 of size 256 next 416\n",
|
||
"2024-12-07 08:59:07.220975: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506e00 of size 65536 next 597\n",
|
||
"2024-12-07 08:59:07.220983: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8516e00 of size 186368 next 447\n",
|
||
"2024-12-07 08:59:07.220990: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8544600 of size 262144 next 701\n",
|
||
"2024-12-07 08:59:07.220998: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8584600 of size 251904 next 718\n",
|
||
"2024-12-07 08:59:07.221004: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e85c1e00 of size 262144 next 524\n",
|
||
"2024-12-07 08:59:07.221011: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8601e00 of size 5373952 next 570\n",
|
||
"2024-12-07 08:59:07.221018: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8b21e00 of size 5373952 next 649\n",
|
||
"2024-12-07 08:59:07.221025: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e9041e00 of size 2686976 next 725\n",
|
||
"2024-12-07 08:59:07.221031: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e92d1e00 of size 2686976 next 107\n",
|
||
"2024-12-07 08:59:07.221038: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e9561e00 of size 1343488 next 429\n",
|
||
"2024-12-07 08:59:07.221045: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e96a9e00 of size 12410880 next 700\n",
|
||
"2024-12-07 08:59:07.221053: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ea27fe00 of size 131072 next 602\n",
|
||
"2024-12-07 08:59:07.221061: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4ea29fe00 of size 512 next 500\n",
|
||
"2024-12-07 08:59:07.221069: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ea2a0000 of size 720384 next 427\n",
|
||
"2024-12-07 08:59:07.221077: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ea34fe00 of size 458752 next 661\n",
|
||
"2024-12-07 08:59:07.221085: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ea3bfe00 of size 10747904 next 476\n",
|
||
"2024-12-07 08:59:07.221093: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4eadffe00 of size 10747904 next 582\n",
|
||
"2024-12-07 08:59:07.221102: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4eb83fe00 of size 10747904 next 83\n",
|
||
"2024-12-07 08:59:07.221108: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ec27fe00 of size 10747904 next 445\n",
|
||
"2024-12-07 08:59:07.221116: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4eccbfe00 of size 10747904 next 727\n",
|
||
"2024-12-07 08:59:07.221124: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ed6ffe00 of size 10747904 next 684\n",
|
||
"2024-12-07 08:59:07.221131: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ee13fe00 of size 10747904 next 63\n",
|
||
"2024-12-07 08:59:07.221137: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4eeb7fe00 of size 10747904 next 662\n",
|
||
"2024-12-07 08:59:07.221144: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ef5bfe00 of size 10747904 next 665\n",
|
||
"2024-12-07 08:59:07.221150: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4effffe00 of size 10747904 next 50\n",
|
||
"2024-12-07 08:59:07.221156: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4f0a3fe00 of size 5373952 next 587\n",
|
||
"2024-12-07 08:59:07.221163: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4f0f5fe00 of size 83968 next 683\n",
|
||
"2024-12-07 08:59:07.221170: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4f0f74600 of size 83968 next 626\n",
|
||
"2024-12-07 08:59:07.221176: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4f0f88e00 of size 5206016 next 536\n",
|
||
"2024-12-07 08:59:07.221183: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4f147fe00 of size 12059136 next 18446744073709551615\n",
|
||
"2024-12-07 08:59:07.221190: I tensorflow/tsl/framework/bfc_allocator.cc:1075] Next region of size 4294967296\n",
|
||
"2024-12-07 08:59:07.221197: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad61e000000 of size 2303392000 next 1\n",
|
||
"2024-12-07 08:59:07.221206: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad6a74af900 of size 1280 next 2\n",
|
||
"2024-12-07 08:59:07.221212: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad6a74afe00 of size 354368000 next 534\n",
|
||
"2024-12-07 08:59:07.221220: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad6bc6a3800 of size 385728000 next 630\n",
|
||
"2024-12-07 08:59:07.221227: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad6d367f600 of size 354368000 next 498\n",
|
||
"2024-12-07 08:59:07.221234: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad6e8873000 of size 385728000 next 426\n",
|
||
"2024-12-07 08:59:07.221240: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad6ff84ee00 of size 354368000 next 632\n",
|
||
"2024-12-07 08:59:07.221247: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a42800 of size 1280 next 553\n",
|
||
"2024-12-07 08:59:07.221254: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a42d00 of size 32768 next 549\n",
|
||
"2024-12-07 08:59:07.221261: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a4ad00 of size 97024 next 94\n",
|
||
"2024-12-07 08:59:07.221269: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a62800 of size 65536 next 729\n",
|
||
"2024-12-07 08:59:07.221275: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a72800 of size 65536 next 556\n",
|
||
"2024-12-07 08:59:07.221282: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a82800 of size 65536 next 519\n",
|
||
"2024-12-07 08:59:07.221289: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a92800 of size 65536 next 631\n",
|
||
"2024-12-07 08:59:07.221297: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714aa2800 of size 65536 next 477\n",
|
||
"2024-12-07 08:59:07.221304: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ab2800 of size 131072 next 473\n",
|
||
"2024-12-07 08:59:07.221311: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ad2800 of size 65536 next 495\n",
|
||
"2024-12-07 08:59:07.221319: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ae2800 of size 65536 next 490\n",
|
||
"2024-12-07 08:59:07.221328: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714af2800 of size 65536 next 670\n",
|
||
"2024-12-07 08:59:07.221336: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b02800 of size 131072 next 509\n",
|
||
"2024-12-07 08:59:07.221343: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b22800 of size 65536 next 54\n",
|
||
"2024-12-07 08:59:07.221350: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b32800 of size 131072 next 440\n",
|
||
"2024-12-07 08:59:07.221356: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b52800 of size 131072 next 618\n",
|
||
"2024-12-07 08:59:07.221374: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b72800 of size 65536 next 547\n",
|
||
"2024-12-07 08:59:07.221381: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b82800 of size 99584 next 738\n",
|
||
"2024-12-07 08:59:07.221388: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b9ad00 of size 65536 next 105\n",
|
||
"2024-12-07 08:59:07.221396: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714baad00 of size 131072 next 561\n",
|
||
"2024-12-07 08:59:07.221403: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714bcad00 of size 65536 next 511\n",
|
||
"2024-12-07 08:59:07.221410: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714bdad00 of size 65536 next 516\n",
|
||
"2024-12-07 08:59:07.221417: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714bead00 of size 65536 next 485\n",
|
||
"2024-12-07 08:59:07.221423: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714bfad00 of size 131072 next 551\n",
|
||
"2024-12-07 08:59:07.221431: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c1ad00 of size 65536 next 104\n",
|
||
"2024-12-07 08:59:07.221438: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c2ad00 of size 131072 next 720\n",
|
||
"2024-12-07 08:59:07.221444: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c4ad00 of size 65536 next 739\n",
|
||
"2024-12-07 08:59:07.221451: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c5ad00 of size 65536 next 708\n",
|
||
"2024-12-07 08:59:07.221457: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c6ad00 of size 65536 next 87\n",
|
||
"2024-12-07 08:59:07.221464: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c7ad00 of size 131072 next 694\n",
|
||
"2024-12-07 08:59:07.221471: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c9ad00 of size 246784 next 425\n",
|
||
"2024-12-07 08:59:07.221479: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714cd7100 of size 65536 next 765\n",
|
||
"2024-12-07 08:59:07.221487: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ce7100 of size 131072 next 655\n",
|
||
"2024-12-07 08:59:07.221495: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d07100 of size 1792 next 422\n",
|
||
"2024-12-07 08:59:07.221502: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d07800 of size 1024 next 530\n",
|
||
"2024-12-07 08:59:07.221511: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d07c00 of size 65536 next 454\n",
|
||
"2024-12-07 08:59:07.221519: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d17c00 of size 165888 next 62\n",
|
||
"2024-12-07 08:59:07.221528: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d40400 of size 131072 next 448\n",
|
||
"2024-12-07 08:59:07.221537: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d60400 of size 131072 next 120\n",
|
||
"2024-12-07 08:59:07.221545: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d80400 of size 1024 next 671\n",
|
||
"2024-12-07 08:59:07.221551: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d80800 of size 256 next 687\n",
|
||
"2024-12-07 08:59:07.221559: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d80900 of size 256 next 449\n",
|
||
"2024-12-07 08:59:07.221566: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d80a00 of size 2048 next 513\n",
|
||
"2024-12-07 08:59:07.221573: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d81200 of size 231424 next 434\n",
|
||
"2024-12-07 08:59:07.221582: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714db9a00 of size 83968 next 733\n",
|
||
"2024-12-07 08:59:07.221589: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714dce200 of size 2048 next 591\n",
|
||
"2024-12-07 08:59:07.221596: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714dcea00 of size 272640 next 59\n",
|
||
"2024-12-07 08:59:07.221604: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714e11300 of size 65536 next 585\n",
|
||
"2024-12-07 08:59:07.221611: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714e21300 of size 131072 next 636\n",
|
||
"2024-12-07 08:59:07.221618: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714e41300 of size 131072 next 638\n",
|
||
"2024-12-07 08:59:07.221625: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714e61300 of size 458752 next 512\n",
|
||
"2024-12-07 08:59:07.221632: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ed1300 of size 10240 next 85\n",
|
||
"2024-12-07 08:59:07.221639: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ed3b00 of size 83968 next 61\n",
|
||
"2024-12-07 08:59:07.221645: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ee8300 of size 131072 next 483\n",
|
||
"2024-12-07 08:59:07.221656: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714f08300 of size 131072 next 572\n",
|
||
"2024-12-07 08:59:07.221664: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714f28300 of size 32768 next 622\n",
|
||
"2024-12-07 08:59:07.221673: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714f30300 of size 124928 next 101\n",
|
||
"2024-12-07 08:59:07.221680: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714f4eb00 of size 231424 next 520\n",
|
||
"2024-12-07 08:59:07.221687: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714f87300 of size 251904 next 668\n",
|
||
"2024-12-07 08:59:07.221694: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714fc4b00 of size 524288 next 128\n",
|
||
"2024-12-07 08:59:07.221701: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad715044b00 of size 604672 next 71\n",
|
||
"2024-12-07 08:59:07.221708: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad7150d8500 of size 131072 next 573\n",
|
||
"2024-12-07 08:59:07.221715: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad7150f8500 of size 141056 next 444\n",
|
||
"2024-12-07 08:59:07.221722: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71511ac00 of size 27541504 next 608\n",
|
||
"2024-12-07 08:59:07.221728: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad716b5ec00 of size 21495808 next 640\n",
|
||
"2024-12-07 08:59:07.221736: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad717fdec00 of size 21495808 next 84\n",
|
||
"2024-12-07 08:59:07.221742: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71945ec00 of size 10747904 next 133\n",
|
||
"2024-12-07 08:59:07.221750: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad719e9ec00 of size 10747904 next 744\n",
|
||
"2024-12-07 08:59:07.221757: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71a8dec00 of size 10747904 next 77\n",
|
||
"2024-12-07 08:59:07.221763: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71b31ec00 of size 10747904 next 510\n",
|
||
"2024-12-07 08:59:07.221769: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71bd5ec00 of size 10747904 next 150\n",
|
||
"2024-12-07 08:59:07.221776: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71c79ec00 of size 10747904 next 673\n",
|
||
"2024-12-07 08:59:07.221782: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71d1dec00 of size 14816256 next 18446744073709551615\n",
|
||
"2024-12-07 08:59:07.221789: I tensorflow/tsl/framework/bfc_allocator.cc:1100] Summary of in-use Chunks by size: \n",
|
||
"2024-12-07 08:59:07.221801: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 196 Chunks of size 256 totalling 49.0KiB\n",
|
||
"2024-12-07 08:59:07.221809: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 148 Chunks of size 512 totalling 74.0KiB\n",
|
||
"2024-12-07 08:59:07.221817: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 18 Chunks of size 768 totalling 13.5KiB\n",
|
||
"2024-12-07 08:59:07.221825: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 37 Chunks of size 1024 totalling 37.0KiB\n",
|
||
"2024-12-07 08:59:07.221833: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 10 Chunks of size 1280 totalling 12.5KiB\n",
|
||
"2024-12-07 08:59:07.221841: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 2 Chunks of size 1536 totalling 3.0KiB\n",
|
||
"2024-12-07 08:59:07.221849: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 10 Chunks of size 1792 totalling 17.5KiB\n",
|
||
"2024-12-07 08:59:07.221857: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 3 Chunks of size 2048 totalling 6.0KiB\n",
|
||
"2024-12-07 08:59:07.221866: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 10240 totalling 10.0KiB\n",
|
||
"2024-12-07 08:59:07.221875: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 20992 totalling 20.5KiB\n",
|
||
"2024-12-07 08:59:07.221882: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 13 Chunks of size 32768 totalling 416.0KiB\n",
|
||
"2024-12-07 08:59:07.221890: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 43520 totalling 42.5KiB\n",
|
||
"2024-12-07 08:59:07.221898: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 59648 totalling 58.2KiB\n",
|
||
"2024-12-07 08:59:07.221907: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 64256 totalling 62.8KiB\n",
|
||
"2024-12-07 08:59:07.221916: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 77 Chunks of size 65536 totalling 4.81MiB\n",
|
||
"2024-12-07 08:59:07.221923: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 12 Chunks of size 83968 totalling 984.0KiB\n",
|
||
"2024-12-07 08:59:07.221930: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 97024 totalling 94.8KiB\n",
|
||
"2024-12-07 08:59:07.221938: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 99584 totalling 97.2KiB\n",
|
||
"2024-12-07 08:59:07.221945: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 101376 totalling 99.0KiB\n",
|
||
"2024-12-07 08:59:07.221954: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 4 Chunks of size 115712 totalling 452.0KiB\n",
|
||
"2024-12-07 08:59:07.221962: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 124928 totalling 122.0KiB\n",
|
||
"2024-12-07 08:59:07.221971: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 130560 totalling 127.5KiB\n",
|
||
"2024-12-07 08:59:07.221978: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 53 Chunks of size 131072 totalling 6.62MiB\n",
|
||
"2024-12-07 08:59:07.221986: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 141056 totalling 137.8KiB\n",
|
||
"2024-12-07 08:59:07.221993: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 164608 totalling 160.8KiB\n",
|
||
"2024-12-07 08:59:07.222001: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 165888 totalling 162.0KiB\n",
|
||
"2024-12-07 08:59:07.222008: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 181248 totalling 177.0KiB\n",
|
||
"2024-12-07 08:59:07.222015: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 186368 totalling 182.0KiB\n",
|
||
"2024-12-07 08:59:07.222023: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 198656 totalling 194.0KiB\n",
|
||
"2024-12-07 08:59:07.222030: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 2 Chunks of size 231424 totalling 452.0KiB\n",
|
||
"2024-12-07 08:59:07.222038: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 2 Chunks of size 246784 totalling 482.0KiB\n",
|
||
"2024-12-07 08:59:07.222045: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 2 Chunks of size 251904 totalling 492.0KiB\n",
|
||
"2024-12-07 08:59:07.222052: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 261120 totalling 255.0KiB\n",
|
||
"2024-12-07 08:59:07.222060: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 2 Chunks of size 262144 totalling 512.0KiB\n",
|
||
"2024-12-07 08:59:07.222071: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 272640 totalling 266.2KiB\n",
|
||
"2024-12-07 08:59:07.222078: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 4 Chunks of size 458752 totalling 1.75MiB\n",
|
||
"2024-12-07 08:59:07.222086: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 524288 totalling 512.0KiB\n",
|
||
"2024-12-07 08:59:07.222094: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 604672 totalling 590.5KiB\n",
|
||
"2024-12-07 08:59:07.222102: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 720384 totalling 703.5KiB\n",
|
||
"2024-12-07 08:59:07.222110: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 1343488 totalling 1.28MiB\n",
|
||
"2024-12-07 08:59:07.222118: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 5 Chunks of size 2686976 totalling 12.81MiB\n",
|
||
"2024-12-07 08:59:07.222125: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 5206016 totalling 4.96MiB\n",
|
||
"2024-12-07 08:59:07.222132: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 4 Chunks of size 5373952 totalling 20.50MiB\n",
|
||
"2024-12-07 08:59:07.222140: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 8060928 totalling 7.69MiB\n",
|
||
"2024-12-07 08:59:07.222148: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 39 Chunks of size 10747904 totalling 399.75MiB\n",
|
||
"2024-12-07 08:59:07.222155: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 12059136 totalling 11.50MiB\n",
|
||
"2024-12-07 08:59:07.222162: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 12410880 totalling 11.84MiB\n",
|
||
"2024-12-07 08:59:07.222170: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 14816256 totalling 14.13MiB\n",
|
||
"2024-12-07 08:59:07.222177: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 2 Chunks of size 16793600 totalling 32.03MiB\n",
|
||
"2024-12-07 08:59:07.222185: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 6 Chunks of size 21495808 totalling 123.00MiB\n",
|
||
"2024-12-07 08:59:07.222192: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 3 Chunks of size 27541504 totalling 78.80MiB\n",
|
||
"2024-12-07 08:59:07.222199: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 31360000 totalling 29.91MiB\n",
|
||
"2024-12-07 08:59:07.222206: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 36157952 totalling 34.48MiB\n",
|
||
"2024-12-07 08:59:07.222212: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 101920000 totalling 97.20MiB\n",
|
||
"2024-12-07 08:59:07.222220: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 4 Chunks of size 354368000 totalling 1.32GiB\n",
|
||
"2024-12-07 08:59:07.222228: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 4 Chunks of size 385728000 totalling 1.44GiB\n",
|
||
"2024-12-07 08:59:07.222236: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 708736000 totalling 675.90MiB\n",
|
||
"2024-12-07 08:59:07.222243: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 771456000 totalling 735.72MiB\n",
|
||
"2024-12-07 08:59:07.222250: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 2303392000 totalling 2.14GiB\n",
|
||
"2024-12-07 08:59:07.222259: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 2507232000 totalling 2.33GiB\n",
|
||
"2024-12-07 08:59:07.222267: I tensorflow/tsl/framework/bfc_allocator.cc:1107] Sum Total of in-use chunks: 9.50GiB\n",
|
||
"2024-12-07 08:59:07.222275: I tensorflow/tsl/framework/bfc_allocator.cc:1109] Total bytes in pool: 10198122496 memory_limit_: 10198122496 available bytes: 0 curr_region_allocation_bytes_: 17179869184\n",
|
||
"2024-12-07 08:59:07.222287: I tensorflow/tsl/framework/bfc_allocator.cc:1114] Stats: \n",
|
||
"Limit: 10198122496\n",
|
||
"InUse: 10195919872\n",
|
||
"MaxInUse: 10195920896\n",
|
||
"NumAllocs: 43119401\n",
|
||
"MaxAllocSize: 2507232000\n",
|
||
"Reserved: 0\n",
|
||
"PeakReserved: 0\n",
|
||
"LargestFreeBlock: 0\n",
|
||
"\n",
|
||
"2024-12-07 08:59:07.222309: W tensorflow/tsl/framework/bfc_allocator.cc:497] ****************************************************************************************************\n",
|
||
"2024-12-07 08:59:07.222350: W tensorflow/core/framework/op_kernel.cc:1839] OP_REQUIRES failed at einsum_op_impl.h:604 : RESOURCE_EXHAUSTED: OOM when allocating tensor with shape[512,8,41,41] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc\n",
|
||
"2024-12-07 08:59:07.222417: W tensorflow/tsl/framework/bfc_allocator.cc:485] Allocator (GPU_0_bfc) ran out of memory trying to allocate 10.25MiB (rounded to 10747904)requested by op OilTransformer/dense_11/Tensordot/MatMul\n",
|
||
"If the cause is memory fragmentation maybe the environment variable 'TF_GPU_ALLOCATOR=cuda_malloc_async' will improve the situation. \n",
|
||
"Current allocation summary follows.\n",
|
||
"Current allocation summary follows.\n",
|
||
"2024-12-07 08:59:07.222532: I tensorflow/tsl/framework/bfc_allocator.cc:1039] BFCAllocator dump for GPU_0_bfc\n",
|
||
"2024-12-07 08:59:07.222560: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (256): \tTotal Chunks: 197, Chunks in use: 196. 49.2KiB allocated for chunks. 49.0KiB in use in bin. 3.5KiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.222573: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (512): \tTotal Chunks: 171, Chunks in use: 166. 90.5KiB allocated for chunks. 87.5KiB in use in bin. 83.4KiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.222584: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (1024): \tTotal Chunks: 63, Chunks in use: 59. 75.2KiB allocated for chunks. 70.0KiB in use in bin. 66.5KiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.222596: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (2048): \tTotal Chunks: 6, Chunks in use: 3. 12.5KiB allocated for chunks. 6.0KiB in use in bin. 5.8KiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.222607: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (4096): \tTotal Chunks: 1, Chunks in use: 0. 4.0KiB allocated for chunks. 0B in use in bin. 0B client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.222620: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (8192): \tTotal Chunks: 1, Chunks in use: 1. 10.0KiB allocated for chunks. 10.0KiB in use in bin. 10.0KiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.222630: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (16384): \tTotal Chunks: 1, Chunks in use: 1. 20.5KiB allocated for chunks. 20.5KiB in use in bin. 20.5KiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.222641: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (32768): \tTotal Chunks: 16, Chunks in use: 16. 579.5KiB allocated for chunks. 579.5KiB in use in bin. 512.0KiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.222651: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (65536): \tTotal Chunks: 98, Chunks in use: 98. 6.74MiB allocated for chunks. 6.74MiB in use in bin. 6.54MiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.222661: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (131072): \tTotal Chunks: 66, Chunks in use: 66. 9.26MiB allocated for chunks. 9.26MiB in use in bin. 8.52MiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.222671: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (262144): \tTotal Chunks: 7, Chunks in use: 7. 2.51MiB allocated for chunks. 2.51MiB in use in bin. 2.47MiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.222681: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (524288): \tTotal Chunks: 3, Chunks in use: 3. 1.76MiB allocated for chunks. 1.76MiB in use in bin. 1.44MiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.222691: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (1048576): \tTotal Chunks: 1, Chunks in use: 1. 1.28MiB allocated for chunks. 1.28MiB in use in bin. 1.28MiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.222701: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (2097152): \tTotal Chunks: 6, Chunks in use: 5. 14.89MiB allocated for chunks. 12.81MiB in use in bin. 12.81MiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.222711: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (4194304): \tTotal Chunks: 6, Chunks in use: 6. 33.15MiB allocated for chunks. 33.15MiB in use in bin. 28.19MiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.222721: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (8388608): \tTotal Chunks: 42, Chunks in use: 42. 437.22MiB allocated for chunks. 437.22MiB in use in bin. 430.50MiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.222731: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (16777216): \tTotal Chunks: 12, Chunks in use: 12. 263.74MiB allocated for chunks. 263.74MiB in use in bin. 252.20MiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.222741: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (33554432): \tTotal Chunks: 1, Chunks in use: 1. 34.48MiB allocated for chunks. 34.48MiB in use in bin. 26.27MiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.222751: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (67108864): \tTotal Chunks: 1, Chunks in use: 1. 97.20MiB allocated for chunks. 97.20MiB in use in bin. 97.20MiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.222761: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (134217728): \tTotal Chunks: 0, Chunks in use: 0. 0B allocated for chunks. 0B in use in bin. 0B client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.222770: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (268435456): \tTotal Chunks: 12, Chunks in use: 12. 8.62GiB allocated for chunks. 8.62GiB in use in bin. 8.62GiB client-requested in use in bin.\n",
|
||
"2024-12-07 08:59:07.222783: I tensorflow/tsl/framework/bfc_allocator.cc:1062] Bin for 10.25MiB was 8.00MiB, Chunk State: \n",
|
||
"2024-12-07 08:59:07.222796: I tensorflow/tsl/framework/bfc_allocator.cc:1075] Next region of size 1608187904\n",
|
||
"2024-12-07 08:59:07.222809: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abdd6000000 of size 385728000 next 704\n",
|
||
"2024-12-07 08:59:07.222818: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abdecfdbe00 of size 354368000 next 653\n",
|
||
"2024-12-07 08:59:07.222828: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe021cf800 of size 385728000 next 455\n",
|
||
"2024-12-07 08:59:07.222837: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe191ab600 of size 10747904 next 89\n",
|
||
"2024-12-07 08:59:07.222847: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe19beb600 of size 10747904 next 563\n",
|
||
"2024-12-07 08:59:07.222856: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1a62b600 of size 16793600 next 544\n",
|
||
"2024-12-07 08:59:07.222865: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1b62f600 of size 27541504 next 40\n",
|
||
"2024-12-07 08:59:07.222876: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1d073600 of size 83968 next 667\n",
|
||
"2024-12-07 08:59:07.222884: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1d087e00 of size 10747904 next 615\n",
|
||
"2024-12-07 08:59:07.222893: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1dac7e00 of size 83968 next 759\n",
|
||
"2024-12-07 08:59:07.222902: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1dadc600 of size 5373952 next 103\n",
|
||
"2024-12-07 08:59:07.222911: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1dffc600 of size 2686976 next 713\n",
|
||
"2024-12-07 08:59:07.222920: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e28c600 of size 83968 next 525\n",
|
||
"2024-12-07 08:59:07.222929: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e2a0e00 of size 83968 next 705\n",
|
||
"2024-12-07 08:59:07.222938: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e2b5600 of size 83968 next 471\n",
|
||
"2024-12-07 08:59:07.222947: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e2c9e00 of size 83968 next 645\n",
|
||
"2024-12-07 08:59:07.222955: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e2de600 of size 83968 next 458\n",
|
||
"2024-12-07 08:59:07.222963: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e2f2e00 of size 83968 next 621\n",
|
||
"2024-12-07 08:59:07.222972: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7abe1e307600 of size 2183168 next 703\n",
|
||
"2024-12-07 08:59:07.222980: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e51c600 of size 10747904 next 715\n",
|
||
"2024-12-07 08:59:07.222989: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1ef5c600 of size 21495808 next 675\n",
|
||
"2024-12-07 08:59:07.222997: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe203dc600 of size 21495808 next 750\n",
|
||
"2024-12-07 08:59:07.223006: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2185c600 of size 10747904 next 588\n",
|
||
"2024-12-07 08:59:07.223015: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2229c600 of size 10747904 next 497\n",
|
||
"2024-12-07 08:59:07.223023: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe22cdc600 of size 10747904 next 722\n",
|
||
"2024-12-07 08:59:07.223032: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2371c600 of size 10747904 next 479\n",
|
||
"2024-12-07 08:59:07.223041: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2415c600 of size 10747904 next 121\n",
|
||
"2024-12-07 08:59:07.223049: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe24b9c600 of size 10747904 next 419\n",
|
||
"2024-12-07 08:59:07.223056: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe255dc600 of size 10747904 next 507\n",
|
||
"2024-12-07 08:59:07.223065: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2601c600 of size 2686976 next 721\n",
|
||
"2024-12-07 08:59:07.223074: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe262ac600 of size 8060928 next 599\n",
|
||
"2024-12-07 08:59:07.223082: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe26a5c600 of size 10747904 next 541\n",
|
||
"2024-12-07 08:59:07.223091: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2749c600 of size 16793600 next 669\n",
|
||
"2024-12-07 08:59:07.223100: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe284a0600 of size 27541504 next 719\n",
|
||
"2024-12-07 08:59:07.223108: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe29ee4600 of size 10747904 next 517\n",
|
||
"2024-12-07 08:59:07.223118: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2a924600 of size 10747904 next 681\n",
|
||
"2024-12-07 08:59:07.223126: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2b364600 of size 10747904 next 432\n",
|
||
"2024-12-07 08:59:07.223135: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2bda4600 of size 10747904 next 95\n",
|
||
"2024-12-07 08:59:07.223144: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2c7e4600 of size 21495808 next 565\n",
|
||
"2024-12-07 08:59:07.223152: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2dc64600 of size 21495808 next 724\n",
|
||
"2024-12-07 08:59:07.223160: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2f0e4600 of size 10747904 next 66\n",
|
||
"2024-12-07 08:59:07.223168: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2fb24600 of size 2686976 next 747\n",
|
||
"2024-12-07 08:59:07.223177: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2fdb4600 of size 10747904 next 533\n",
|
||
"2024-12-07 08:59:07.223185: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe307f4600 of size 10747904 next 571\n",
|
||
"2024-12-07 08:59:07.223193: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe31234600 of size 10747904 next 488\n",
|
||
"2024-12-07 08:59:07.223201: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe31c74600 of size 10747904 next 710\n",
|
||
"2024-12-07 08:59:07.223210: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe326b4600 of size 10747904 next 552\n",
|
||
"2024-12-07 08:59:07.223219: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe330f4600 of size 10747904 next 46\n",
|
||
"2024-12-07 08:59:07.223227: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe33b34600 of size 36157952 next 18446744073709551615\n",
|
||
"2024-12-07 08:59:07.223236: I tensorflow/tsl/framework/bfc_allocator.cc:1075] Next region of size 4294967296\n",
|
||
"2024-12-07 08:59:07.223244: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad3f2000000 of size 2507232000 next 4\n",
|
||
"2024-12-07 08:59:07.223253: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad487715300 of size 101920000 next 5\n",
|
||
"2024-12-07 08:59:07.223265: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad48d848000 of size 256 next 6\n",
|
||
"2024-12-07 08:59:07.223273: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad48d848100 of size 256 next 7\n",
|
||
"2024-12-07 08:59:07.223281: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad48d848200 of size 256 next 8\n",
|
||
"2024-12-07 08:59:07.223290: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad48d848300 of size 256 next 9\n",
|
||
"2024-12-07 08:59:07.223299: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad48d848400 of size 256 next 10\n",
|
||
"2024-12-07 08:59:07.223308: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad48d848500 of size 708736000 next 11\n",
|
||
"2024-12-07 08:59:07.223318: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4b7c2f900 of size 771456000 next 12\n",
|
||
"2024-12-07 08:59:07.223327: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e5be7500 of size 31360000 next 13\n",
|
||
"2024-12-07 08:59:07.223336: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cf900 of size 256 next 14\n",
|
||
"2024-12-07 08:59:07.223345: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cfa00 of size 256 next 15\n",
|
||
"2024-12-07 08:59:07.223352: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cfb00 of size 256 next 16\n",
|
||
"2024-12-07 08:59:07.223374: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cfc00 of size 256 next 17\n",
|
||
"2024-12-07 08:59:07.223383: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cfd00 of size 256 next 18\n",
|
||
"2024-12-07 08:59:07.223391: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cfe00 of size 256 next 19\n",
|
||
"2024-12-07 08:59:07.223400: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cff00 of size 256 next 21\n",
|
||
"2024-12-07 08:59:07.223407: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0000 of size 256 next 22\n",
|
||
"2024-12-07 08:59:07.223416: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0100 of size 256 next 20\n",
|
||
"2024-12-07 08:59:07.223424: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0200 of size 256 next 586\n",
|
||
"2024-12-07 08:59:07.223433: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0300 of size 256 next 27\n",
|
||
"2024-12-07 08:59:07.223441: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0400 of size 256 next 23\n",
|
||
"2024-12-07 08:59:07.223450: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0500 of size 256 next 26\n",
|
||
"2024-12-07 08:59:07.223459: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0600 of size 256 next 30\n",
|
||
"2024-12-07 08:59:07.223468: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0700 of size 256 next 24\n",
|
||
"2024-12-07 08:59:07.223475: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0800 of size 256 next 79\n",
|
||
"2024-12-07 08:59:07.223484: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0900 of size 256 next 592\n",
|
||
"2024-12-07 08:59:07.223493: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0a00 of size 256 next 25\n",
|
||
"2024-12-07 08:59:07.223502: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0b00 of size 256 next 31\n",
|
||
"2024-12-07 08:59:07.223510: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0c00 of size 256 next 32\n",
|
||
"2024-12-07 08:59:07.223519: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0d00 of size 256 next 57\n",
|
||
"2024-12-07 08:59:07.223527: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0e00 of size 256 next 24960\n",
|
||
"2024-12-07 08:59:07.223536: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0f00 of size 256 next 24951\n",
|
||
"2024-12-07 08:59:07.223545: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1000 of size 256 next 24929\n",
|
||
"2024-12-07 08:59:07.223553: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1100 of size 256 next 584\n",
|
||
"2024-12-07 08:59:07.223561: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1200 of size 256 next 41\n",
|
||
"2024-12-07 08:59:07.223569: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1300 of size 256 next 35\n",
|
||
"2024-12-07 08:59:07.223578: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1400 of size 256 next 36\n",
|
||
"2024-12-07 08:59:07.223586: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1500 of size 256 next 49\n",
|
||
"2024-12-07 08:59:07.223595: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1600 of size 256 next 45\n",
|
||
"2024-12-07 08:59:07.223603: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1700 of size 256 next 43\n",
|
||
"2024-12-07 08:59:07.223610: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1800 of size 256 next 44\n",
|
||
"2024-12-07 08:59:07.223619: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1900 of size 256 next 24946\n",
|
||
"2024-12-07 08:59:07.223627: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1a00 of size 256 next 604\n",
|
||
"2024-12-07 08:59:07.223636: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1b00 of size 256 next 435\n",
|
||
"2024-12-07 08:59:07.223646: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1c00 of size 256 next 564\n",
|
||
"2024-12-07 08:59:07.223655: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1d00 of size 256 next 523\n",
|
||
"2024-12-07 08:59:07.223664: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1e00 of size 256 next 48\n",
|
||
"2024-12-07 08:59:07.223672: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1f00 of size 256 next 51\n",
|
||
"2024-12-07 08:59:07.223681: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d2000 of size 256 next 52\n",
|
||
"2024-12-07 08:59:07.223689: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d2100 of size 512 next 634\n",
|
||
"2024-12-07 08:59:07.223698: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d2300 of size 1024 next 514\n",
|
||
"2024-12-07 08:59:07.223707: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d2700 of size 1792 next 96\n",
|
||
"2024-12-07 08:59:07.223715: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d2e00 of size 1024 next 647\n",
|
||
"2024-12-07 08:59:07.223724: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3200 of size 256 next 589\n",
|
||
"2024-12-07 08:59:07.223732: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3300 of size 1280 next 506\n",
|
||
"2024-12-07 08:59:07.223742: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3800 of size 256 next 611\n",
|
||
"2024-12-07 08:59:07.223751: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3900 of size 256 next 172\n",
|
||
"2024-12-07 08:59:07.223760: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3a00 of size 256 next 677\n",
|
||
"2024-12-07 08:59:07.223768: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3b00 of size 256 next 613\n",
|
||
"2024-12-07 08:59:07.223776: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3c00 of size 256 next 489\n",
|
||
"2024-12-07 08:59:07.223785: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3d00 of size 256 next 24973\n",
|
||
"2024-12-07 08:59:07.223792: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3e00 of size 256 next 124\n",
|
||
"2024-12-07 08:59:07.223801: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3f00 of size 256 next 24979\n",
|
||
"2024-12-07 08:59:07.223810: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4000 of size 256 next 453\n",
|
||
"2024-12-07 08:59:07.223819: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4100 of size 256 next 651\n",
|
||
"2024-12-07 08:59:07.223829: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4200 of size 256 next 658\n",
|
||
"2024-12-07 08:59:07.223847: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4300 of size 256 next 642\n",
|
||
"2024-12-07 08:59:07.223855: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4400 of size 768 next 135\n",
|
||
"2024-12-07 08:59:07.223864: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4700 of size 768 next 691\n",
|
||
"2024-12-07 08:59:07.223873: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4a00 of size 768 next 560\n",
|
||
"2024-12-07 08:59:07.223881: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4d00 of size 768 next 428\n",
|
||
"2024-12-07 08:59:07.223890: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5000 of size 512 next 64\n",
|
||
"2024-12-07 08:59:07.223898: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5200 of size 512 next 527\n",
|
||
"2024-12-07 08:59:07.223907: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5400 of size 256 next 143\n",
|
||
"2024-12-07 08:59:07.223916: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5500 of size 512 next 486\n",
|
||
"2024-12-07 08:59:07.223925: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5700 of size 512 next 501\n",
|
||
"2024-12-07 08:59:07.223934: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5900 of size 768 next 539\n",
|
||
"2024-12-07 08:59:07.223943: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5c00 of size 768 next 60\n",
|
||
"2024-12-07 08:59:07.223951: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5f00 of size 512 next 423\n",
|
||
"2024-12-07 08:59:07.223960: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6100 of size 256 next 173\n",
|
||
"2024-12-07 08:59:07.223968: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6200 of size 256 next 590\n",
|
||
"2024-12-07 08:59:07.223977: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6300 of size 512 next 98\n",
|
||
"2024-12-07 08:59:07.223986: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6500 of size 512 next 531\n",
|
||
"2024-12-07 08:59:07.223999: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6700 of size 768 next 663\n",
|
||
"2024-12-07 08:59:07.224008: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6a00 of size 768 next 548\n",
|
||
"2024-12-07 08:59:07.224016: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6d00 of size 512 next 131\n",
|
||
"2024-12-07 08:59:07.224025: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6f00 of size 512 next 482\n",
|
||
"2024-12-07 08:59:07.224035: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7100 of size 512 next 109\n",
|
||
"2024-12-07 08:59:07.224043: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7300 of size 256 next 115\n",
|
||
"2024-12-07 08:59:07.224052: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7400 of size 256 next 116\n",
|
||
"2024-12-07 08:59:07.224061: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7500 of size 256 next 741\n",
|
||
"2024-12-07 08:59:07.224069: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7600 of size 512 next 86\n",
|
||
"2024-12-07 08:59:07.224078: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e79d7800 of size 768 next 491\n",
|
||
"2024-12-07 08:59:07.224088: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7b00 of size 256 next 502\n",
|
||
"2024-12-07 08:59:07.224099: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7c00 of size 256 next 24995\n",
|
||
"2024-12-07 08:59:07.224108: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7d00 of size 256 next 641\n",
|
||
"2024-12-07 08:59:07.224117: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7e00 of size 256 next 81\n",
|
||
"2024-12-07 08:59:07.224126: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7f00 of size 256 next 577\n",
|
||
"2024-12-07 08:59:07.224133: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8000 of size 256 next 123\n",
|
||
"2024-12-07 08:59:07.224142: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8100 of size 256 next 117\n",
|
||
"2024-12-07 08:59:07.224151: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8200 of size 256 next 118\n",
|
||
"2024-12-07 08:59:07.224164: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8300 of size 256 next 438\n",
|
||
"2024-12-07 08:59:07.224173: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8400 of size 256 next 505\n",
|
||
"2024-12-07 08:59:07.224182: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8500 of size 256 next 628\n",
|
||
"2024-12-07 08:59:07.224190: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8600 of size 256 next 127\n",
|
||
"2024-12-07 08:59:07.224199: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8700 of size 256 next 113\n",
|
||
"2024-12-07 08:59:07.224208: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8800 of size 256 next 126\n",
|
||
"2024-12-07 08:59:07.224218: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8900 of size 256 next 129\n",
|
||
"2024-12-07 08:59:07.224227: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8a00 of size 256 next 130\n",
|
||
"2024-12-07 08:59:07.224235: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8b00 of size 256 next 164\n",
|
||
"2024-12-07 08:59:07.224244: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8c00 of size 256 next 499\n",
|
||
"2024-12-07 08:59:07.224253: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8d00 of size 256 next 114\n",
|
||
"2024-12-07 08:59:07.224262: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8e00 of size 256 next 451\n",
|
||
"2024-12-07 08:59:07.224271: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8f00 of size 256 next 542\n",
|
||
"2024-12-07 08:59:07.224279: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9000 of size 256 next 593\n",
|
||
"2024-12-07 08:59:07.224288: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9100 of size 256 next 450\n",
|
||
"2024-12-07 08:59:07.224297: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9200 of size 256 next 480\n",
|
||
"2024-12-07 08:59:07.224306: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9300 of size 256 next 550\n",
|
||
"2024-12-07 08:59:07.224315: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9400 of size 512 next 102\n",
|
||
"2024-12-07 08:59:07.224323: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9600 of size 512 next 554\n",
|
||
"2024-12-07 08:59:07.224332: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9800 of size 1280 next 643\n",
|
||
"2024-12-07 08:59:07.224340: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9d00 of size 768 next 132\n",
|
||
"2024-12-07 08:59:07.224349: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79da000 of size 1792 next 139\n",
|
||
"2024-12-07 08:59:07.224374: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79da700 of size 1792 next 140\n",
|
||
"2024-12-07 08:59:07.224384: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dae00 of size 256 next 141\n",
|
||
"2024-12-07 08:59:07.224393: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79daf00 of size 256 next 142\n",
|
||
"2024-12-07 08:59:07.224402: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db000 of size 256 next 598\n",
|
||
"2024-12-07 08:59:07.224410: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db100 of size 256 next 463\n",
|
||
"2024-12-07 08:59:07.224419: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db200 of size 256 next 692\n",
|
||
"2024-12-07 08:59:07.224428: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db300 of size 256 next 467\n",
|
||
"2024-12-07 08:59:07.224436: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db400 of size 256 next 690\n",
|
||
"2024-12-07 08:59:07.224445: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db500 of size 256 next 466\n",
|
||
"2024-12-07 08:59:07.224454: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db600 of size 256 next 616\n",
|
||
"2024-12-07 08:59:07.224462: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db700 of size 256 next 24947\n",
|
||
"2024-12-07 08:59:07.224471: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db800 of size 256 next 559\n",
|
||
"2024-12-07 08:59:07.224479: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db900 of size 256 next 633\n",
|
||
"2024-12-07 08:59:07.224488: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dba00 of size 256 next 24980\n",
|
||
"2024-12-07 08:59:07.224497: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dbb00 of size 256 next 144\n",
|
||
"2024-12-07 08:59:07.224506: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dbc00 of size 1024 next 148\n",
|
||
"2024-12-07 08:59:07.224516: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dc000 of size 1024 next 149\n",
|
||
"2024-12-07 08:59:07.224524: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dc400 of size 1280 next 676\n",
|
||
"2024-12-07 08:59:07.224533: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dc900 of size 256 next 151\n",
|
||
"2024-12-07 08:59:07.224542: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dca00 of size 512 next 154\n",
|
||
"2024-12-07 08:59:07.224551: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dcc00 of size 512 next 155\n",
|
||
"2024-12-07 08:59:07.224559: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dce00 of size 256 next 156\n",
|
||
"2024-12-07 08:59:07.224567: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dcf00 of size 256 next 157\n",
|
||
"2024-12-07 08:59:07.224576: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd000 of size 256 next 158\n",
|
||
"2024-12-07 08:59:07.224584: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd100 of size 256 next 161\n",
|
||
"2024-12-07 08:59:07.224593: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd200 of size 256 next 162\n",
|
||
"2024-12-07 08:59:07.224601: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd300 of size 256 next 160\n",
|
||
"2024-12-07 08:59:07.224609: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd400 of size 256 next 169\n",
|
||
"2024-12-07 08:59:07.224618: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd500 of size 256 next 166\n",
|
||
"2024-12-07 08:59:07.224627: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd600 of size 256 next 167\n",
|
||
"2024-12-07 08:59:07.224635: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd700 of size 256 next 168\n",
|
||
"2024-12-07 08:59:07.224644: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd800 of size 256 next 163\n",
|
||
"2024-12-07 08:59:07.224652: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd900 of size 256 next 170\n",
|
||
"2024-12-07 08:59:07.224661: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dda00 of size 256 next 171\n",
|
||
"2024-12-07 08:59:07.224670: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e79ddb00 of size 2048 next 165\n",
|
||
"2024-12-07 08:59:07.224678: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79de300 of size 256 next 174\n",
|
||
"2024-12-07 08:59:07.224687: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79de400 of size 256 next 175\n",
|
||
"2024-12-07 08:59:07.224696: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79de500 of size 256 next 176\n",
|
||
"2024-12-07 08:59:07.224704: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79de600 of size 768 next 177\n",
|
||
"2024-12-07 08:59:07.224713: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79de900 of size 768 next 178\n",
|
||
"2024-12-07 08:59:07.224722: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dec00 of size 256 next 179\n",
|
||
"2024-12-07 08:59:07.224731: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79ded00 of size 256 next 180\n",
|
||
"2024-12-07 08:59:07.224739: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dee00 of size 512 next 181\n",
|
||
"2024-12-07 08:59:07.224748: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79df000 of size 512 next 182\n",
|
||
"2024-12-07 08:59:07.224756: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79df200 of size 512 next 185\n",
|
||
"2024-12-07 08:59:07.224765: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79df400 of size 512 next 186\n",
|
||
"2024-12-07 08:59:07.224774: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79df600 of size 512 next 188\n",
|
||
"2024-12-07 08:59:07.224782: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79df800 of size 512 next 189\n",
|
||
"2024-12-07 08:59:07.224790: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dfa00 of size 512 next 192\n",
|
||
"2024-12-07 08:59:07.224798: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dfc00 of size 512 next 193\n",
|
||
"2024-12-07 08:59:07.224807: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dfe00 of size 512 next 196\n",
|
||
"2024-12-07 08:59:07.224815: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0000 of size 512 next 197\n",
|
||
"2024-12-07 08:59:07.224823: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0200 of size 512 next 200\n",
|
||
"2024-12-07 08:59:07.224832: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0400 of size 512 next 201\n",
|
||
"2024-12-07 08:59:07.224840: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0600 of size 512 next 202\n",
|
||
"2024-12-07 08:59:07.224848: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0800 of size 768 next 29\n",
|
||
"2024-12-07 08:59:07.224857: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0b00 of size 512 next 78\n",
|
||
"2024-12-07 08:59:07.224865: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0d00 of size 512 next 558\n",
|
||
"2024-12-07 08:59:07.224874: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0f00 of size 512 next 657\n",
|
||
"2024-12-07 08:59:07.224883: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1100 of size 768 next 528\n",
|
||
"2024-12-07 08:59:07.224891: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1400 of size 512 next 33\n",
|
||
"2024-12-07 08:59:07.224899: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1600 of size 768 next 664\n",
|
||
"2024-12-07 08:59:07.224907: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1900 of size 256 next 515\n",
|
||
"2024-12-07 08:59:07.224916: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1a00 of size 256 next 723\n",
|
||
"2024-12-07 08:59:07.224924: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1b00 of size 256 next 24991\n",
|
||
"2024-12-07 08:59:07.224933: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1c00 of size 256 next 99\n",
|
||
"2024-12-07 08:59:07.224941: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1d00 of size 512 next 152\n",
|
||
"2024-12-07 08:59:07.224950: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e79e1f00 of size 1792 next 92\n",
|
||
"2024-12-07 08:59:07.224966: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2600 of size 256 next 462\n",
|
||
"2024-12-07 08:59:07.224974: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2700 of size 256 next 614\n",
|
||
"2024-12-07 08:59:07.224982: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2800 of size 256 next 557\n",
|
||
"2024-12-07 08:59:07.224991: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2900 of size 256 next 521\n",
|
||
"2024-12-07 08:59:07.224999: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2a00 of size 256 next 659\n",
|
||
"2024-12-07 08:59:07.225007: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2b00 of size 256 next 24934\n",
|
||
"2024-12-07 08:59:07.225016: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2c00 of size 256 next 543\n",
|
||
"2024-12-07 08:59:07.225026: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2d00 of size 768 next 568\n",
|
||
"2024-12-07 08:59:07.225034: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e79e3000 of size 768 next 639\n",
|
||
"2024-12-07 08:59:07.225042: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e3300 of size 512 next 53\n",
|
||
"2024-12-07 08:59:07.225051: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e3500 of size 1024 next 606\n",
|
||
"2024-12-07 08:59:07.225060: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e3900 of size 256 next 575\n",
|
||
"2024-12-07 08:59:07.225069: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e3a00 of size 256 next 607\n",
|
||
"2024-12-07 08:59:07.225078: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e3b00 of size 1280 next 420\n",
|
||
"2024-12-07 08:59:07.225087: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4000 of size 256 next 689\n",
|
||
"2024-12-07 08:59:07.225099: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4100 of size 2048 next 465\n",
|
||
"2024-12-07 08:59:07.225108: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4900 of size 256 next 712\n",
|
||
"2024-12-07 08:59:07.225116: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4a00 of size 256 next 468\n",
|
||
"2024-12-07 08:59:07.225124: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4b00 of size 256 next 742\n",
|
||
"2024-12-07 08:59:07.225133: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4c00 of size 256 next 578\n",
|
||
"2024-12-07 08:59:07.225142: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4d00 of size 512 next 39\n",
|
||
"2024-12-07 08:59:07.225151: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4f00 of size 512 next 635\n",
|
||
"2024-12-07 08:59:07.225159: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e5100 of size 256 next 446\n",
|
||
"2024-12-07 08:59:07.225168: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e79e5200 of size 2048 next 540\n",
|
||
"2024-12-07 08:59:07.225176: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e5a00 of size 768 next 34\n",
|
||
"2024-12-07 08:59:07.225185: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e5d00 of size 256 next 623\n",
|
||
"2024-12-07 08:59:07.225194: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e5e00 of size 512 next 492\n",
|
||
"2024-12-07 08:59:07.225203: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6000 of size 512 next 702\n",
|
||
"2024-12-07 08:59:07.225212: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6200 of size 512 next 752\n",
|
||
"2024-12-07 08:59:07.225220: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6400 of size 512 next 706\n",
|
||
"2024-12-07 08:59:07.225229: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6600 of size 1536 next 472\n",
|
||
"2024-12-07 08:59:07.225238: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6c00 of size 256 next 90\n",
|
||
"2024-12-07 08:59:07.225246: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6d00 of size 256 next 581\n",
|
||
"2024-12-07 08:59:07.225255: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6e00 of size 256 next 610\n",
|
||
"2024-12-07 08:59:07.225263: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6f00 of size 512 next 646\n",
|
||
"2024-12-07 08:59:07.225271: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7100 of size 512 next 576\n",
|
||
"2024-12-07 08:59:07.225280: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e79e7300 of size 512 next 583\n",
|
||
"2024-12-07 08:59:07.225289: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7500 of size 256 next 487\n",
|
||
"2024-12-07 08:59:07.225297: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7600 of size 256 next 522\n",
|
||
"2024-12-07 08:59:07.225306: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7700 of size 256 next 459\n",
|
||
"2024-12-07 08:59:07.225314: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7800 of size 256 next 654\n",
|
||
"2024-12-07 08:59:07.225323: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7900 of size 768 next 596\n",
|
||
"2024-12-07 08:59:07.225335: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7c00 of size 512 next 648\n",
|
||
"2024-12-07 08:59:07.225344: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7e00 of size 512 next 625\n",
|
||
"2024-12-07 08:59:07.225354: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e8000 of size 1280 next 735\n",
|
||
"2024-12-07 08:59:07.225373: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e8500 of size 512 next 652\n",
|
||
"2024-12-07 08:59:07.225382: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e8700 of size 512 next 457\n",
|
||
"2024-12-07 08:59:07.225391: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e8900 of size 512 next 28\n",
|
||
"2024-12-07 08:59:07.225400: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e8b00 of size 20992 next 37\n",
|
||
"2024-12-07 08:59:07.225409: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79edd00 of size 32768 next 159\n",
|
||
"2024-12-07 08:59:07.225418: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79f5d00 of size 246784 next 619\n",
|
||
"2024-12-07 08:59:07.225426: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a32100 of size 164608 next 566\n",
|
||
"2024-12-07 08:59:07.225434: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5a400 of size 256 next 42\n",
|
||
"2024-12-07 08:59:07.225448: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5a500 of size 256 next 546\n",
|
||
"2024-12-07 08:59:07.225457: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7a5a600 of size 4096 next 644\n",
|
||
"2024-12-07 08:59:07.225466: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5b600 of size 512 next 569\n",
|
||
"2024-12-07 08:59:07.225474: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7a5b800 of size 1536 next 421\n",
|
||
"2024-12-07 08:59:07.225482: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5be00 of size 512 next 474\n",
|
||
"2024-12-07 08:59:07.225490: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5c000 of size 512 next 624\n",
|
||
"2024-12-07 08:59:07.225498: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7a5c200 of size 2560 next 496\n",
|
||
"2024-12-07 08:59:07.225507: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5cc00 of size 512 next 437\n",
|
||
"2024-12-07 08:59:07.225515: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5ce00 of size 512 next 763\n",
|
||
"2024-12-07 08:59:07.225525: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5d000 of size 512 next 73\n",
|
||
"2024-12-07 08:59:07.225534: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5d200 of size 512 next 91\n",
|
||
"2024-12-07 08:59:07.225542: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5d400 of size 512 next 650\n",
|
||
"2024-12-07 08:59:07.225549: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5d600 of size 768 next 137\n",
|
||
"2024-12-07 08:59:07.225554: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5d900 of size 512 next 431\n",
|
||
"2024-12-07 08:59:07.225561: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5db00 of size 512 next 145\n",
|
||
"2024-12-07 08:59:07.225567: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5dd00 of size 512 next 481\n",
|
||
"2024-12-07 08:59:07.225573: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5df00 of size 512 next 464\n",
|
||
"2024-12-07 08:59:07.225579: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5e100 of size 1536 next 442\n",
|
||
"2024-12-07 08:59:07.225585: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5e700 of size 512 next 730\n",
|
||
"2024-12-07 08:59:07.225591: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5e900 of size 256 next 518\n",
|
||
"2024-12-07 08:59:07.225597: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5ea00 of size 512 next 110\n",
|
||
"2024-12-07 08:59:07.225603: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7a5ec00 of size 256 next 494\n",
|
||
"2024-12-07 08:59:07.225609: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5ed00 of size 256 next 100\n",
|
||
"2024-12-07 08:59:07.225615: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5ee00 of size 32768 next 693\n",
|
||
"2024-12-07 08:59:07.225621: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7a66e00 of size 1024 next 696\n",
|
||
"2024-12-07 08:59:07.225627: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a67200 of size 512 next 470\n",
|
||
"2024-12-07 08:59:07.225634: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a67400 of size 59648 next 138\n",
|
||
"2024-12-07 08:59:07.225641: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a75d00 of size 32768 next 56\n",
|
||
"2024-12-07 08:59:07.225648: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a7dd00 of size 65536 next 629\n",
|
||
"2024-12-07 08:59:07.225653: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7a8dd00 of size 1024 next 666\n",
|
||
"2024-12-07 08:59:07.225660: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a8e100 of size 130560 next 493\n",
|
||
"2024-12-07 08:59:07.225667: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7aadf00 of size 65536 next 80\n",
|
||
"2024-12-07 08:59:07.225673: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7abdf00 of size 131072 next 38\n",
|
||
"2024-12-07 08:59:07.225683: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7addf00 of size 512 next 545\n",
|
||
"2024-12-07 08:59:07.225689: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ade100 of size 65536 next 697\n",
|
||
"2024-12-07 08:59:07.225696: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7aee100 of size 65536 next 637\n",
|
||
"2024-12-07 08:59:07.225702: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7afe100 of size 115712 next 58\n",
|
||
"2024-12-07 08:59:07.225709: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b1a500 of size 512 next 108\n",
|
||
"2024-12-07 08:59:07.225715: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b1a700 of size 131072 next 439\n",
|
||
"2024-12-07 08:59:07.225721: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b3a700 of size 131072 next 74\n",
|
||
"2024-12-07 08:59:07.225728: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b5a700 of size 1024 next 601\n",
|
||
"2024-12-07 08:59:07.225733: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b5ab00 of size 65536 next 424\n",
|
||
"2024-12-07 08:59:07.225739: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b6ab00 of size 512 next 609\n",
|
||
"2024-12-07 08:59:07.225746: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b6ad00 of size 131072 next 685\n",
|
||
"2024-12-07 08:59:07.225752: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b8ad00 of size 1024 next 504\n",
|
||
"2024-12-07 08:59:07.225758: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b8b100 of size 32768 next 136\n",
|
||
"2024-12-07 08:59:07.225764: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b93100 of size 1792 next 475\n",
|
||
"2024-12-07 08:59:07.225770: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b93800 of size 65536 next 67\n",
|
||
"2024-12-07 08:59:07.225777: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ba3800 of size 131072 next 672\n",
|
||
"2024-12-07 08:59:07.225782: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7bc3800 of size 512 next 580\n",
|
||
"2024-12-07 08:59:07.225789: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7bc3a00 of size 1024 next 707\n",
|
||
"2024-12-07 08:59:07.225795: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7bc3e00 of size 198656 next 600\n",
|
||
"2024-12-07 08:59:07.225802: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7bf4600 of size 1792 next 679\n",
|
||
"2024-12-07 08:59:07.225808: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7bf4d00 of size 1024 next 441\n",
|
||
"2024-12-07 08:59:07.225814: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7bf5100 of size 101376 next 106\n",
|
||
"2024-12-07 08:59:07.225820: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c0dd00 of size 65536 next 183\n",
|
||
"2024-12-07 08:59:07.225827: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c1dd00 of size 65536 next 184\n",
|
||
"2024-12-07 08:59:07.225833: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c2dd00 of size 65536 next 187\n",
|
||
"2024-12-07 08:59:07.225840: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c3dd00 of size 65536 next 112\n",
|
||
"2024-12-07 08:59:07.225846: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c4dd00 of size 65536 next 740\n",
|
||
"2024-12-07 08:59:07.225852: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c5dd00 of size 131072 next 436\n",
|
||
"2024-12-07 08:59:07.225861: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c7dd00 of size 131072 next 430\n",
|
||
"2024-12-07 08:59:07.225868: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c9dd00 of size 65536 next 526\n",
|
||
"2024-12-07 08:59:07.225874: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7cadd00 of size 65536 next 678\n",
|
||
"2024-12-07 08:59:07.225880: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7cbdd00 of size 65536 next 508\n",
|
||
"2024-12-07 08:59:07.225886: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ccdd00 of size 65536 next 731\n",
|
||
"2024-12-07 08:59:07.225892: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7cddd00 of size 65536 next 627\n",
|
||
"2024-12-07 08:59:07.225899: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7cedd00 of size 131072 next 537\n",
|
||
"2024-12-07 08:59:07.225905: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d0dd00 of size 65536 next 478\n",
|
||
"2024-12-07 08:59:07.225911: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d1dd00 of size 65536 next 503\n",
|
||
"2024-12-07 08:59:07.225917: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d2dd00 of size 65536 next 594\n",
|
||
"2024-12-07 08:59:07.225923: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d3dd00 of size 181248 next 153\n",
|
||
"2024-12-07 08:59:07.225930: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d6a100 of size 65536 next 190\n",
|
||
"2024-12-07 08:59:07.225937: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d7a100 of size 65536 next 191\n",
|
||
"2024-12-07 08:59:07.225942: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d8a100 of size 65536 next 194\n",
|
||
"2024-12-07 08:59:07.225949: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d9a100 of size 65536 next 195\n",
|
||
"2024-12-07 08:59:07.225954: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7daa100 of size 65536 next 198\n",
|
||
"2024-12-07 08:59:07.225961: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7dba100 of size 65536 next 199\n",
|
||
"2024-12-07 08:59:07.225967: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7dca100 of size 512 next 203\n",
|
||
"2024-12-07 08:59:07.225972: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7dca300 of size 512 next 204\n",
|
||
"2024-12-07 08:59:07.225979: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7dca500 of size 131072 next 205\n",
|
||
"2024-12-07 08:59:07.225985: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7dea500 of size 261120 next 147\n",
|
||
"2024-12-07 08:59:07.225993: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e2a100 of size 256 next 620\n",
|
||
"2024-12-07 08:59:07.225999: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e2a200 of size 256 next 612\n",
|
||
"2024-12-07 08:59:07.226005: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e2a300 of size 131072 next 682\n",
|
||
"2024-12-07 08:59:07.226011: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e4a300 of size 32768 next 709\n",
|
||
"2024-12-07 08:59:07.226017: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e52300 of size 32768 next 698\n",
|
||
"2024-12-07 08:59:07.226023: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e5a300 of size 115712 next 88\n",
|
||
"2024-12-07 08:59:07.226030: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e76700 of size 1280 next 456\n",
|
||
"2024-12-07 08:59:07.226036: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e76c00 of size 64256 next 125\n",
|
||
"2024-12-07 08:59:07.226042: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e86700 of size 32768 next 75\n",
|
||
"2024-12-07 08:59:07.226052: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e8e700 of size 1024 next 535\n",
|
||
"2024-12-07 08:59:07.226058: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e8eb00 of size 1024 next 562\n",
|
||
"2024-12-07 08:59:07.226065: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e8ef00 of size 1024 next 461\n",
|
||
"2024-12-07 08:59:07.226071: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e8f300 of size 1024 next 656\n",
|
||
"2024-12-07 08:59:07.226077: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e8f700 of size 43520 next 146\n",
|
||
"2024-12-07 08:59:07.226083: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e9a100 of size 1024 next 206\n",
|
||
"2024-12-07 08:59:07.226090: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e9a500 of size 1024 next 207\n",
|
||
"2024-12-07 08:59:07.226096: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e9a900 of size 131072 next 208\n",
|
||
"2024-12-07 08:59:07.226102: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7eba900 of size 131072 next 209\n",
|
||
"2024-12-07 08:59:07.226111: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7eda900 of size 512 next 210\n",
|
||
"2024-12-07 08:59:07.226117: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7edab00 of size 512 next 211\n",
|
||
"2024-12-07 08:59:07.226123: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7edad00 of size 512 next 212\n",
|
||
"2024-12-07 08:59:07.226129: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7edaf00 of size 512 next 213\n",
|
||
"2024-12-07 08:59:07.226135: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7edb100 of size 512 next 214\n",
|
||
"2024-12-07 08:59:07.226141: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7edb300 of size 512 next 215\n",
|
||
"2024-12-07 08:59:07.226147: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7edb500 of size 65536 next 216\n",
|
||
"2024-12-07 08:59:07.226154: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7eeb500 of size 65536 next 217\n",
|
||
"2024-12-07 08:59:07.226160: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7efb500 of size 512 next 218\n",
|
||
"2024-12-07 08:59:07.226166: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7efb700 of size 512 next 219\n",
|
||
"2024-12-07 08:59:07.226172: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7efb900 of size 65536 next 220\n",
|
||
"2024-12-07 08:59:07.226178: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f0b900 of size 65536 next 221\n",
|
||
"2024-12-07 08:59:07.226185: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f1b900 of size 512 next 222\n",
|
||
"2024-12-07 08:59:07.226191: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f1bb00 of size 512 next 223\n",
|
||
"2024-12-07 08:59:07.226197: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f1bd00 of size 65536 next 224\n",
|
||
"2024-12-07 08:59:07.226204: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f2bd00 of size 65536 next 225\n",
|
||
"2024-12-07 08:59:07.226210: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f3bd00 of size 512 next 226\n",
|
||
"2024-12-07 08:59:07.226220: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f3bf00 of size 512 next 227\n",
|
||
"2024-12-07 08:59:07.226226: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f3c100 of size 65536 next 228\n",
|
||
"2024-12-07 08:59:07.226233: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f4c100 of size 65536 next 229\n",
|
||
"2024-12-07 08:59:07.226239: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f5c100 of size 512 next 230\n",
|
||
"2024-12-07 08:59:07.226245: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f5c300 of size 512 next 231\n",
|
||
"2024-12-07 08:59:07.226250: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f5c500 of size 65536 next 232\n",
|
||
"2024-12-07 08:59:07.226257: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f6c500 of size 65536 next 233\n",
|
||
"2024-12-07 08:59:07.226263: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7c500 of size 512 next 234\n",
|
||
"2024-12-07 08:59:07.226270: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7c700 of size 512 next 235\n",
|
||
"2024-12-07 08:59:07.226275: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7c900 of size 512 next 236\n",
|
||
"2024-12-07 08:59:07.226282: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7cb00 of size 512 next 237\n",
|
||
"2024-12-07 08:59:07.226288: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7cd00 of size 512 next 238\n",
|
||
"2024-12-07 08:59:07.226294: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7cf00 of size 512 next 239\n",
|
||
"2024-12-07 08:59:07.226300: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7d100 of size 131072 next 240\n",
|
||
"2024-12-07 08:59:07.226306: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f9d100 of size 131072 next 241\n",
|
||
"2024-12-07 08:59:07.226313: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7fbd100 of size 1024 next 242\n",
|
||
"2024-12-07 08:59:07.226319: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7fbd500 of size 1024 next 243\n",
|
||
"2024-12-07 08:59:07.226325: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7fbd900 of size 131072 next 244\n",
|
||
"2024-12-07 08:59:07.226332: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7fdd900 of size 131072 next 245\n",
|
||
"2024-12-07 08:59:07.226338: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffd900 of size 512 next 246\n",
|
||
"2024-12-07 08:59:07.226344: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffdb00 of size 512 next 247\n",
|
||
"2024-12-07 08:59:07.226350: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffdd00 of size 512 next 248\n",
|
||
"2024-12-07 08:59:07.226356: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffdf00 of size 512 next 249\n",
|
||
"2024-12-07 08:59:07.226372: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffe100 of size 512 next 250\n",
|
||
"2024-12-07 08:59:07.226378: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffe300 of size 512 next 251\n",
|
||
"2024-12-07 08:59:07.226384: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffe500 of size 65536 next 252\n",
|
||
"2024-12-07 08:59:07.226391: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e800e500 of size 65536 next 253\n",
|
||
"2024-12-07 08:59:07.226397: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e801e500 of size 512 next 254\n",
|
||
"2024-12-07 08:59:07.226403: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e801e700 of size 512 next 255\n",
|
||
"2024-12-07 08:59:07.226409: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e801e900 of size 65536 next 256\n",
|
||
"2024-12-07 08:59:07.226415: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e802e900 of size 65536 next 257\n",
|
||
"2024-12-07 08:59:07.226421: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e803e900 of size 512 next 258\n",
|
||
"2024-12-07 08:59:07.226427: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e803eb00 of size 512 next 259\n",
|
||
"2024-12-07 08:59:07.226434: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e803ed00 of size 65536 next 260\n",
|
||
"2024-12-07 08:59:07.226440: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e804ed00 of size 65536 next 261\n",
|
||
"2024-12-07 08:59:07.226446: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e805ed00 of size 512 next 262\n",
|
||
"2024-12-07 08:59:07.226452: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e805ef00 of size 512 next 263\n",
|
||
"2024-12-07 08:59:07.226458: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e805f100 of size 65536 next 264\n",
|
||
"2024-12-07 08:59:07.226464: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e806f100 of size 65536 next 265\n",
|
||
"2024-12-07 08:59:07.226470: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e807f100 of size 512 next 266\n",
|
||
"2024-12-07 08:59:07.226477: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e807f300 of size 512 next 267\n",
|
||
"2024-12-07 08:59:07.226482: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e807f500 of size 65536 next 268\n",
|
||
"2024-12-07 08:59:07.226489: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e808f500 of size 65536 next 269\n",
|
||
"2024-12-07 08:59:07.226497: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e809f500 of size 512 next 270\n",
|
||
"2024-12-07 08:59:07.226505: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e809f700 of size 512 next 271\n",
|
||
"2024-12-07 08:59:07.226513: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e809f900 of size 512 next 272\n",
|
||
"2024-12-07 08:59:07.226522: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e809fb00 of size 512 next 273\n",
|
||
"2024-12-07 08:59:07.226530: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e809fd00 of size 512 next 274\n",
|
||
"2024-12-07 08:59:07.226539: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e809ff00 of size 512 next 275\n",
|
||
"2024-12-07 08:59:07.226548: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e80a0100 of size 131072 next 276\n",
|
||
"2024-12-07 08:59:07.226556: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e80c0100 of size 131072 next 277\n",
|
||
"2024-12-07 08:59:07.226565: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e80e0100 of size 1024 next 278\n",
|
||
"2024-12-07 08:59:07.226573: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e80e0500 of size 1024 next 279\n",
|
||
"2024-12-07 08:59:07.226580: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e80e0900 of size 131072 next 280\n",
|
||
"2024-12-07 08:59:07.226589: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8100900 of size 131072 next 281\n",
|
||
"2024-12-07 08:59:07.226598: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8120900 of size 512 next 282\n",
|
||
"2024-12-07 08:59:07.226606: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8120b00 of size 512 next 283\n",
|
||
"2024-12-07 08:59:07.226615: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8120d00 of size 512 next 284\n",
|
||
"2024-12-07 08:59:07.226629: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8120f00 of size 512 next 285\n",
|
||
"2024-12-07 08:59:07.226637: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8121100 of size 512 next 286\n",
|
||
"2024-12-07 08:59:07.226645: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8121300 of size 512 next 287\n",
|
||
"2024-12-07 08:59:07.226653: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8121500 of size 65536 next 288\n",
|
||
"2024-12-07 08:59:07.226662: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8131500 of size 65536 next 289\n",
|
||
"2024-12-07 08:59:07.226671: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8141500 of size 512 next 290\n",
|
||
"2024-12-07 08:59:07.226680: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8141700 of size 512 next 291\n",
|
||
"2024-12-07 08:59:07.226688: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8141900 of size 65536 next 292\n",
|
||
"2024-12-07 08:59:07.226696: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8151900 of size 65536 next 293\n",
|
||
"2024-12-07 08:59:07.226705: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8161900 of size 512 next 294\n",
|
||
"2024-12-07 08:59:07.226714: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8161b00 of size 512 next 295\n",
|
||
"2024-12-07 08:59:07.226723: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8161d00 of size 65536 next 296\n",
|
||
"2024-12-07 08:59:07.226736: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8171d00 of size 65536 next 297\n",
|
||
"2024-12-07 08:59:07.226745: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8181d00 of size 512 next 298\n",
|
||
"2024-12-07 08:59:07.226753: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8181f00 of size 512 next 299\n",
|
||
"2024-12-07 08:59:07.226760: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8182100 of size 65536 next 300\n",
|
||
"2024-12-07 08:59:07.226769: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8192100 of size 65536 next 301\n",
|
||
"2024-12-07 08:59:07.226778: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81a2100 of size 512 next 302\n",
|
||
"2024-12-07 08:59:07.226786: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81a2300 of size 512 next 303\n",
|
||
"2024-12-07 08:59:07.226795: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81a2500 of size 65536 next 304\n",
|
||
"2024-12-07 08:59:07.226803: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81b2500 of size 65536 next 305\n",
|
||
"2024-12-07 08:59:07.226811: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c2500 of size 512 next 306\n",
|
||
"2024-12-07 08:59:07.226820: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c2700 of size 512 next 307\n",
|
||
"2024-12-07 08:59:07.226828: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c2900 of size 512 next 308\n",
|
||
"2024-12-07 08:59:07.226835: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c2b00 of size 512 next 309\n",
|
||
"2024-12-07 08:59:07.226844: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c2d00 of size 512 next 310\n",
|
||
"2024-12-07 08:59:07.226853: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c2f00 of size 512 next 311\n",
|
||
"2024-12-07 08:59:07.226862: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c3100 of size 131072 next 312\n",
|
||
"2024-12-07 08:59:07.226870: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81e3100 of size 131072 next 313\n",
|
||
"2024-12-07 08:59:07.226879: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8203100 of size 1024 next 314\n",
|
||
"2024-12-07 08:59:07.226887: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8203500 of size 1024 next 315\n",
|
||
"2024-12-07 08:59:07.226896: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8203900 of size 131072 next 316\n",
|
||
"2024-12-07 08:59:07.226904: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8223900 of size 131072 next 317\n",
|
||
"2024-12-07 08:59:07.226912: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8243900 of size 512 next 318\n",
|
||
"2024-12-07 08:59:07.226921: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8243b00 of size 512 next 319\n",
|
||
"2024-12-07 08:59:07.226929: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8243d00 of size 512 next 320\n",
|
||
"2024-12-07 08:59:07.226937: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8243f00 of size 512 next 321\n",
|
||
"2024-12-07 08:59:07.226945: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8244100 of size 512 next 322\n",
|
||
"2024-12-07 08:59:07.226953: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8244300 of size 512 next 323\n",
|
||
"2024-12-07 08:59:07.226962: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8244500 of size 115712 next 324\n",
|
||
"2024-12-07 08:59:07.226970: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8260900 of size 115712 next 325\n",
|
||
"2024-12-07 08:59:07.226978: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827cd00 of size 1024 next 326\n",
|
||
"2024-12-07 08:59:07.226987: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827d100 of size 1024 next 327\n",
|
||
"2024-12-07 08:59:07.226995: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827d500 of size 512 next 328\n",
|
||
"2024-12-07 08:59:07.227004: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827d700 of size 512 next 329\n",
|
||
"2024-12-07 08:59:07.227012: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827d900 of size 512 next 330\n",
|
||
"2024-12-07 08:59:07.227020: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827db00 of size 512 next 331\n",
|
||
"2024-12-07 08:59:07.227029: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827dd00 of size 131072 next 332\n",
|
||
"2024-12-07 08:59:07.227037: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e829dd00 of size 131072 next 333\n",
|
||
"2024-12-07 08:59:07.227045: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82bdd00 of size 512 next 334\n",
|
||
"2024-12-07 08:59:07.227054: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82bdf00 of size 512 next 335\n",
|
||
"2024-12-07 08:59:07.227062: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82be100 of size 131072 next 336\n",
|
||
"2024-12-07 08:59:07.227071: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82de100 of size 131072 next 337\n",
|
||
"2024-12-07 08:59:07.227079: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82fe100 of size 1024 next 338\n",
|
||
"2024-12-07 08:59:07.227087: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82fe500 of size 1024 next 339\n",
|
||
"2024-12-07 08:59:07.227096: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82fe900 of size 131072 next 340\n",
|
||
"2024-12-07 08:59:07.227110: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e831e900 of size 131072 next 341\n",
|
||
"2024-12-07 08:59:07.227118: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e833e900 of size 1024 next 342\n",
|
||
"2024-12-07 08:59:07.227126: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e833ed00 of size 1024 next 343\n",
|
||
"2024-12-07 08:59:07.227134: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e833f100 of size 131072 next 344\n",
|
||
"2024-12-07 08:59:07.227143: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e835f100 of size 131072 next 345\n",
|
||
"2024-12-07 08:59:07.227151: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e837f100 of size 1024 next 346\n",
|
||
"2024-12-07 08:59:07.227158: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e837f500 of size 1024 next 347\n",
|
||
"2024-12-07 08:59:07.227167: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e837f900 of size 131072 next 348\n",
|
||
"2024-12-07 08:59:07.227176: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e839f900 of size 131072 next 349\n",
|
||
"2024-12-07 08:59:07.227185: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83bf900 of size 512 next 350\n",
|
||
"2024-12-07 08:59:07.227193: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83bfb00 of size 512 next 351\n",
|
||
"2024-12-07 08:59:07.227201: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83bfd00 of size 32768 next 352\n",
|
||
"2024-12-07 08:59:07.227209: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83c7d00 of size 32768 next 353\n",
|
||
"2024-12-07 08:59:07.227218: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83cfd00 of size 256 next 354\n",
|
||
"2024-12-07 08:59:07.227226: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83cfe00 of size 256 next 355\n",
|
||
"2024-12-07 08:59:07.227235: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83cff00 of size 1792 next 356\n",
|
||
"2024-12-07 08:59:07.227243: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83d0600 of size 1792 next 357\n",
|
||
"2024-12-07 08:59:07.227251: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83d0d00 of size 1792 next 358\n",
|
||
"2024-12-07 08:59:07.227260: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83d1400 of size 1792 next 359\n",
|
||
"2024-12-07 08:59:07.227269: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83d1b00 of size 458752 next 360\n",
|
||
"2024-12-07 08:59:07.227277: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8441b00 of size 458752 next 361\n",
|
||
"2024-12-07 08:59:07.227286: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b1b00 of size 1024 next 362\n",
|
||
"2024-12-07 08:59:07.227295: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b1f00 of size 1024 next 363\n",
|
||
"2024-12-07 08:59:07.227303: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b2300 of size 1024 next 364\n",
|
||
"2024-12-07 08:59:07.227311: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b2700 of size 1024 next 365\n",
|
||
"2024-12-07 08:59:07.227320: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b2b00 of size 1024 next 366\n",
|
||
"2024-12-07 08:59:07.227329: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b2f00 of size 1024 next 367\n",
|
||
"2024-12-07 08:59:07.227337: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b3300 of size 131072 next 368\n",
|
||
"2024-12-07 08:59:07.227349: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84d3300 of size 131072 next 369\n",
|
||
"2024-12-07 08:59:07.227367: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3300 of size 512 next 370\n",
|
||
"2024-12-07 08:59:07.227377: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3500 of size 512 next 371\n",
|
||
"2024-12-07 08:59:07.227385: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3700 of size 512 next 372\n",
|
||
"2024-12-07 08:59:07.227393: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3900 of size 512 next 373\n",
|
||
"2024-12-07 08:59:07.227402: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3b00 of size 512 next 374\n",
|
||
"2024-12-07 08:59:07.227410: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3d00 of size 512 next 375\n",
|
||
"2024-12-07 08:59:07.227418: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3f00 of size 32768 next 376\n",
|
||
"2024-12-07 08:59:07.227427: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84fbf00 of size 32768 next 377\n",
|
||
"2024-12-07 08:59:07.227436: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8503f00 of size 256 next 378\n",
|
||
"2024-12-07 08:59:07.227445: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504000 of size 256 next 379\n",
|
||
"2024-12-07 08:59:07.227453: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504100 of size 1280 next 380\n",
|
||
"2024-12-07 08:59:07.227461: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504600 of size 1280 next 381\n",
|
||
"2024-12-07 08:59:07.227469: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504b00 of size 256 next 382\n",
|
||
"2024-12-07 08:59:07.227478: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504c00 of size 256 next 383\n",
|
||
"2024-12-07 08:59:07.227487: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504d00 of size 256 next 384\n",
|
||
"2024-12-07 08:59:07.227495: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504e00 of size 256 next 385\n",
|
||
"2024-12-07 08:59:07.227503: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504f00 of size 256 next 386\n",
|
||
"2024-12-07 08:59:07.227513: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505000 of size 256 next 387\n",
|
||
"2024-12-07 08:59:07.227522: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505100 of size 256 next 388\n",
|
||
"2024-12-07 08:59:07.227531: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505200 of size 256 next 389\n",
|
||
"2024-12-07 08:59:07.227540: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505300 of size 256 next 390\n",
|
||
"2024-12-07 08:59:07.227547: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505400 of size 256 next 391\n",
|
||
"2024-12-07 08:59:07.227556: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505500 of size 256 next 392\n",
|
||
"2024-12-07 08:59:07.227565: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505600 of size 256 next 393\n",
|
||
"2024-12-07 08:59:07.227573: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505700 of size 256 next 394\n",
|
||
"2024-12-07 08:59:07.227581: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505800 of size 256 next 395\n",
|
||
"2024-12-07 08:59:07.227589: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505900 of size 256 next 396\n",
|
||
"2024-12-07 08:59:07.227598: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505a00 of size 256 next 397\n",
|
||
"2024-12-07 08:59:07.227606: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505b00 of size 256 next 398\n",
|
||
"2024-12-07 08:59:07.227615: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505c00 of size 256 next 399\n",
|
||
"2024-12-07 08:59:07.227624: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505d00 of size 256 next 400\n",
|
||
"2024-12-07 08:59:07.227632: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505e00 of size 256 next 401\n",
|
||
"2024-12-07 08:59:07.227639: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505f00 of size 256 next 402\n",
|
||
"2024-12-07 08:59:07.227648: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506000 of size 256 next 403\n",
|
||
"2024-12-07 08:59:07.227657: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506100 of size 256 next 404\n",
|
||
"2024-12-07 08:59:07.227666: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506200 of size 256 next 405\n",
|
||
"2024-12-07 08:59:07.227674: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506300 of size 256 next 406\n",
|
||
"2024-12-07 08:59:07.227682: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506400 of size 256 next 407\n",
|
||
"2024-12-07 08:59:07.227690: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506500 of size 256 next 408\n",
|
||
"2024-12-07 08:59:07.227699: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506600 of size 256 next 409\n",
|
||
"2024-12-07 08:59:07.227708: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506700 of size 256 next 410\n",
|
||
"2024-12-07 08:59:07.227717: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506800 of size 256 next 411\n",
|
||
"2024-12-07 08:59:07.227730: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506900 of size 256 next 412\n",
|
||
"2024-12-07 08:59:07.227738: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506a00 of size 256 next 413\n",
|
||
"2024-12-07 08:59:07.227747: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506b00 of size 256 next 414\n",
|
||
"2024-12-07 08:59:07.227755: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506c00 of size 256 next 415\n",
|
||
"2024-12-07 08:59:07.227764: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506d00 of size 256 next 416\n",
|
||
"2024-12-07 08:59:07.227772: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506e00 of size 65536 next 597\n",
|
||
"2024-12-07 08:59:07.227781: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8516e00 of size 186368 next 447\n",
|
||
"2024-12-07 08:59:07.227790: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8544600 of size 262144 next 701\n",
|
||
"2024-12-07 08:59:07.227799: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8584600 of size 251904 next 718\n",
|
||
"2024-12-07 08:59:07.227808: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e85c1e00 of size 262144 next 524\n",
|
||
"2024-12-07 08:59:07.227816: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8601e00 of size 5373952 next 570\n",
|
||
"2024-12-07 08:59:07.227824: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8b21e00 of size 5373952 next 649\n",
|
||
"2024-12-07 08:59:07.227832: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e9041e00 of size 2686976 next 725\n",
|
||
"2024-12-07 08:59:07.227841: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e92d1e00 of size 2686976 next 107\n",
|
||
"2024-12-07 08:59:07.227849: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e9561e00 of size 1343488 next 429\n",
|
||
"2024-12-07 08:59:07.227857: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e96a9e00 of size 12410880 next 700\n",
|
||
"2024-12-07 08:59:07.227867: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ea27fe00 of size 131072 next 602\n",
|
||
"2024-12-07 08:59:07.227877: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4ea29fe00 of size 512 next 500\n",
|
||
"2024-12-07 08:59:07.227886: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ea2a0000 of size 720384 next 427\n",
|
||
"2024-12-07 08:59:07.227898: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ea34fe00 of size 458752 next 661\n",
|
||
"2024-12-07 08:59:07.227906: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ea3bfe00 of size 10747904 next 476\n",
|
||
"2024-12-07 08:59:07.227914: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4eadffe00 of size 10747904 next 582\n",
|
||
"2024-12-07 08:59:07.227923: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4eb83fe00 of size 10747904 next 83\n",
|
||
"2024-12-07 08:59:07.227932: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ec27fe00 of size 10747904 next 445\n",
|
||
"2024-12-07 08:59:07.227940: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4eccbfe00 of size 10747904 next 727\n",
|
||
"2024-12-07 08:59:07.227948: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ed6ffe00 of size 10747904 next 684\n",
|
||
"2024-12-07 08:59:07.227957: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ee13fe00 of size 10747904 next 63\n",
|
||
"2024-12-07 08:59:07.227966: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4eeb7fe00 of size 10747904 next 662\n",
|
||
"2024-12-07 08:59:07.227975: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ef5bfe00 of size 10747904 next 665\n",
|
||
"2024-12-07 08:59:07.227982: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4effffe00 of size 10747904 next 50\n",
|
||
"2024-12-07 08:59:07.227990: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4f0a3fe00 of size 5373952 next 587\n",
|
||
"2024-12-07 08:59:07.227999: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4f0f5fe00 of size 83968 next 683\n",
|
||
"2024-12-07 08:59:07.228008: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4f0f74600 of size 83968 next 626\n",
|
||
"2024-12-07 08:59:07.228017: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4f0f88e00 of size 5206016 next 536\n",
|
||
"2024-12-07 08:59:07.228027: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4f147fe00 of size 12059136 next 18446744073709551615\n",
|
||
"2024-12-07 08:59:07.228035: I tensorflow/tsl/framework/bfc_allocator.cc:1075] Next region of size 4294967296\n",
|
||
"2024-12-07 08:59:07.228045: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad61e000000 of size 2303392000 next 1\n",
|
||
"2024-12-07 08:59:07.228054: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad6a74af900 of size 1280 next 2\n",
|
||
"2024-12-07 08:59:07.228062: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad6a74afe00 of size 354368000 next 534\n",
|
||
"2024-12-07 08:59:07.228071: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad6bc6a3800 of size 385728000 next 630\n",
|
||
"2024-12-07 08:59:07.228079: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad6d367f600 of size 354368000 next 498\n",
|
||
"2024-12-07 08:59:07.228089: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad6e8873000 of size 385728000 next 426\n",
|
||
"2024-12-07 08:59:07.228096: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad6ff84ee00 of size 354368000 next 632\n",
|
||
"2024-12-07 08:59:07.228105: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a42800 of size 1280 next 553\n",
|
||
"2024-12-07 08:59:07.228114: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a42d00 of size 32768 next 549\n",
|
||
"2024-12-07 08:59:07.228122: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a4ad00 of size 97024 next 94\n",
|
||
"2024-12-07 08:59:07.228130: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a62800 of size 65536 next 729\n",
|
||
"2024-12-07 08:59:07.228138: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a72800 of size 65536 next 556\n",
|
||
"2024-12-07 08:59:07.228147: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a82800 of size 65536 next 519\n",
|
||
"2024-12-07 08:59:07.228156: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a92800 of size 65536 next 631\n",
|
||
"2024-12-07 08:59:07.228164: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714aa2800 of size 65536 next 477\n",
|
||
"2024-12-07 08:59:07.228173: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ab2800 of size 131072 next 473\n",
|
||
"2024-12-07 08:59:07.228182: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ad2800 of size 65536 next 495\n",
|
||
"2024-12-07 08:59:07.228190: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ae2800 of size 65536 next 490\n",
|
||
"2024-12-07 08:59:07.228197: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714af2800 of size 65536 next 670\n",
|
||
"2024-12-07 08:59:07.228206: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b02800 of size 131072 next 509\n",
|
||
"2024-12-07 08:59:07.228215: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b22800 of size 65536 next 54\n",
|
||
"2024-12-07 08:59:07.228223: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b32800 of size 131072 next 440\n",
|
||
"2024-12-07 08:59:07.228232: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b52800 of size 131072 next 618\n",
|
||
"2024-12-07 08:59:07.228240: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b72800 of size 65536 next 547\n",
|
||
"2024-12-07 08:59:07.228249: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b82800 of size 99584 next 738\n",
|
||
"2024-12-07 08:59:07.228258: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b9ad00 of size 65536 next 105\n",
|
||
"2024-12-07 08:59:07.228266: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714baad00 of size 131072 next 561\n",
|
||
"2024-12-07 08:59:07.228274: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714bcad00 of size 65536 next 511\n",
|
||
"2024-12-07 08:59:07.228283: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714bdad00 of size 65536 next 516\n",
|
||
"2024-12-07 08:59:07.228292: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714bead00 of size 65536 next 485\n",
|
||
"2024-12-07 08:59:07.228300: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714bfad00 of size 131072 next 551\n",
|
||
"2024-12-07 08:59:07.228309: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c1ad00 of size 65536 next 104\n",
|
||
"2024-12-07 08:59:07.228318: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c2ad00 of size 131072 next 720\n",
|
||
"2024-12-07 08:59:07.228327: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c4ad00 of size 65536 next 739\n",
|
||
"2024-12-07 08:59:07.228335: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c5ad00 of size 65536 next 708\n",
|
||
"2024-12-07 08:59:07.228344: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c6ad00 of size 65536 next 87\n",
|
||
"2024-12-07 08:59:07.228352: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c7ad00 of size 131072 next 694\n",
|
||
"2024-12-07 08:59:07.228371: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c9ad00 of size 246784 next 425\n",
|
||
"2024-12-07 08:59:07.228381: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714cd7100 of size 65536 next 765\n",
|
||
"2024-12-07 08:59:07.228389: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ce7100 of size 131072 next 655\n",
|
||
"2024-12-07 08:59:07.228398: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d07100 of size 1792 next 422\n",
|
||
"2024-12-07 08:59:07.228405: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d07800 of size 1024 next 530\n",
|
||
"2024-12-07 08:59:07.228414: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d07c00 of size 65536 next 454\n",
|
||
"2024-12-07 08:59:07.228423: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d17c00 of size 165888 next 62\n",
|
||
"2024-12-07 08:59:07.228431: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d40400 of size 131072 next 448\n",
|
||
"2024-12-07 08:59:07.228440: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d60400 of size 131072 next 120\n",
|
||
"2024-12-07 08:59:07.228448: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d80400 of size 1024 next 671\n",
|
||
"2024-12-07 08:59:07.228456: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d80800 of size 256 next 687\n",
|
||
"2024-12-07 08:59:07.228465: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d80900 of size 256 next 449\n",
|
||
"2024-12-07 08:59:07.228473: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d80a00 of size 2048 next 513\n",
|
||
"2024-12-07 08:59:07.228482: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d81200 of size 231424 next 434\n",
|
||
"2024-12-07 08:59:07.228491: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714db9a00 of size 83968 next 733\n",
|
||
"2024-12-07 08:59:07.228500: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714dce200 of size 2048 next 591\n",
|
||
"2024-12-07 08:59:07.228509: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714dcea00 of size 272640 next 59\n",
|
||
"2024-12-07 08:59:07.228517: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714e11300 of size 65536 next 585\n",
|
||
"2024-12-07 08:59:07.228525: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714e21300 of size 131072 next 636\n",
|
||
"2024-12-07 08:59:07.228534: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714e41300 of size 131072 next 638\n",
|
||
"2024-12-07 08:59:07.228542: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714e61300 of size 458752 next 512\n",
|
||
"2024-12-07 08:59:07.228551: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ed1300 of size 10240 next 85\n",
|
||
"2024-12-07 08:59:07.228559: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ed3b00 of size 83968 next 61\n",
|
||
"2024-12-07 08:59:07.228568: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ee8300 of size 131072 next 483\n",
|
||
"2024-12-07 08:59:07.228576: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714f08300 of size 131072 next 572\n",
|
||
"2024-12-07 08:59:07.228589: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714f28300 of size 32768 next 622\n",
|
||
"2024-12-07 08:59:07.228598: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714f30300 of size 124928 next 101\n",
|
||
"2024-12-07 08:59:07.228607: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714f4eb00 of size 231424 next 520\n",
|
||
"2024-12-07 08:59:07.228615: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714f87300 of size 251904 next 668\n",
|
||
"2024-12-07 08:59:07.228624: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714fc4b00 of size 524288 next 128\n",
|
||
"2024-12-07 08:59:07.228633: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad715044b00 of size 604672 next 71\n",
|
||
"2024-12-07 08:59:07.228642: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad7150d8500 of size 131072 next 573\n",
|
||
"2024-12-07 08:59:07.228651: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad7150f8500 of size 141056 next 444\n",
|
||
"2024-12-07 08:59:07.228660: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71511ac00 of size 27541504 next 608\n",
|
||
"2024-12-07 08:59:07.228668: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad716b5ec00 of size 21495808 next 640\n",
|
||
"2024-12-07 08:59:07.228677: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad717fdec00 of size 21495808 next 84\n",
|
||
"2024-12-07 08:59:07.228686: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71945ec00 of size 10747904 next 133\n",
|
||
"2024-12-07 08:59:07.228694: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad719e9ec00 of size 10747904 next 744\n",
|
||
"2024-12-07 08:59:07.228703: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71a8dec00 of size 10747904 next 77\n",
|
||
"2024-12-07 08:59:07.228711: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71b31ec00 of size 10747904 next 510\n",
|
||
"2024-12-07 08:59:07.228719: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71bd5ec00 of size 10747904 next 150\n",
|
||
"2024-12-07 08:59:07.228728: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71c79ec00 of size 10747904 next 673\n",
|
||
"2024-12-07 08:59:07.228736: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71d1dec00 of size 14816256 next 18446744073709551615\n",
|
||
"2024-12-07 08:59:07.228744: I tensorflow/tsl/framework/bfc_allocator.cc:1100] Summary of in-use Chunks by size: \n",
|
||
"2024-12-07 08:59:07.228755: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 196 Chunks of size 256 totalling 49.0KiB\n",
|
||
"2024-12-07 08:59:07.228764: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 148 Chunks of size 512 totalling 74.0KiB\n",
|
||
"2024-12-07 08:59:07.228773: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 18 Chunks of size 768 totalling 13.5KiB\n",
|
||
"2024-12-07 08:59:07.228781: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 37 Chunks of size 1024 totalling 37.0KiB\n",
|
||
"2024-12-07 08:59:07.228790: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 10 Chunks of size 1280 totalling 12.5KiB\n",
|
||
"2024-12-07 08:59:07.228798: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 2 Chunks of size 1536 totalling 3.0KiB\n",
|
||
"2024-12-07 08:59:07.228807: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 10 Chunks of size 1792 totalling 17.5KiB\n",
|
||
"2024-12-07 08:59:07.228815: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 3 Chunks of size 2048 totalling 6.0KiB\n",
|
||
"2024-12-07 08:59:07.228824: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 10240 totalling 10.0KiB\n",
|
||
"2024-12-07 08:59:07.228833: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 20992 totalling 20.5KiB\n",
|
||
"2024-12-07 08:59:07.228842: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 13 Chunks of size 32768 totalling 416.0KiB\n",
|
||
"2024-12-07 08:59:07.228855: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 43520 totalling 42.5KiB\n",
|
||
"2024-12-07 08:59:07.228863: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 59648 totalling 58.2KiB\n",
|
||
"2024-12-07 08:59:07.228872: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 64256 totalling 62.8KiB\n",
|
||
"2024-12-07 08:59:07.228880: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 77 Chunks of size 65536 totalling 4.81MiB\n",
|
||
"2024-12-07 08:59:07.228889: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 12 Chunks of size 83968 totalling 984.0KiB\n",
|
||
"2024-12-07 08:59:07.228897: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 97024 totalling 94.8KiB\n",
|
||
"2024-12-07 08:59:07.228906: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 99584 totalling 97.2KiB\n",
|
||
"2024-12-07 08:59:07.228914: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 101376 totalling 99.0KiB\n",
|
||
"2024-12-07 08:59:07.228923: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 4 Chunks of size 115712 totalling 452.0KiB\n",
|
||
"2024-12-07 08:59:07.228931: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 124928 totalling 122.0KiB\n",
|
||
"2024-12-07 08:59:07.228940: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 130560 totalling 127.5KiB\n",
|
||
"2024-12-07 08:59:07.228948: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 53 Chunks of size 131072 totalling 6.62MiB\n",
|
||
"2024-12-07 08:59:07.228957: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 141056 totalling 137.8KiB\n",
|
||
"2024-12-07 08:59:07.228966: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 164608 totalling 160.8KiB\n",
|
||
"2024-12-07 08:59:07.228974: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 165888 totalling 162.0KiB\n",
|
||
"2024-12-07 08:59:07.228982: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 181248 totalling 177.0KiB\n",
|
||
"2024-12-07 08:59:07.228991: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 186368 totalling 182.0KiB\n",
|
||
"2024-12-07 08:59:07.228999: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 198656 totalling 194.0KiB\n",
|
||
"2024-12-07 08:59:07.229008: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 2 Chunks of size 231424 totalling 452.0KiB\n",
|
||
"2024-12-07 08:59:07.229017: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 2 Chunks of size 246784 totalling 482.0KiB\n",
|
||
"2024-12-07 08:59:07.229025: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 2 Chunks of size 251904 totalling 492.0KiB\n",
|
||
"2024-12-07 08:59:07.229033: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 261120 totalling 255.0KiB\n",
|
||
"2024-12-07 08:59:07.229042: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 2 Chunks of size 262144 totalling 512.0KiB\n",
|
||
"2024-12-07 08:59:07.229050: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 272640 totalling 266.2KiB\n",
|
||
"2024-12-07 08:59:07.229059: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 4 Chunks of size 458752 totalling 1.75MiB\n",
|
||
"2024-12-07 08:59:07.229067: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 524288 totalling 512.0KiB\n",
|
||
"2024-12-07 08:59:07.229075: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 604672 totalling 590.5KiB\n",
|
||
"2024-12-07 08:59:07.229084: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 720384 totalling 703.5KiB\n",
|
||
"2024-12-07 08:59:07.229092: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 1343488 totalling 1.28MiB\n",
|
||
"2024-12-07 08:59:07.229101: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 5 Chunks of size 2686976 totalling 12.81MiB\n",
|
||
"2024-12-07 08:59:07.229109: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 5206016 totalling 4.96MiB\n",
|
||
"2024-12-07 08:59:07.229117: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 4 Chunks of size 5373952 totalling 20.50MiB\n",
|
||
"2024-12-07 08:59:07.229126: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 8060928 totalling 7.69MiB\n",
|
||
"2024-12-07 08:59:07.229134: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 39 Chunks of size 10747904 totalling 399.75MiB\n",
|
||
"2024-12-07 08:59:07.229143: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 12059136 totalling 11.50MiB\n",
|
||
"2024-12-07 08:59:07.229151: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 12410880 totalling 11.84MiB\n",
|
||
"2024-12-07 08:59:07.229160: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 14816256 totalling 14.13MiB\n",
|
||
"2024-12-07 08:59:07.229169: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 2 Chunks of size 16793600 totalling 32.03MiB\n",
|
||
"2024-12-07 08:59:07.229177: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 6 Chunks of size 21495808 totalling 123.00MiB\n",
|
||
"2024-12-07 08:59:07.229190: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 3 Chunks of size 27541504 totalling 78.80MiB\n",
|
||
"2024-12-07 08:59:07.229199: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 31360000 totalling 29.91MiB\n",
|
||
"2024-12-07 08:59:07.229207: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 36157952 totalling 34.48MiB\n",
|
||
"2024-12-07 08:59:07.229216: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 101920000 totalling 97.20MiB\n",
|
||
"2024-12-07 08:59:07.229224: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 4 Chunks of size 354368000 totalling 1.32GiB\n",
|
||
"2024-12-07 08:59:07.229232: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 4 Chunks of size 385728000 totalling 1.44GiB\n",
|
||
"2024-12-07 08:59:07.229241: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 708736000 totalling 675.90MiB\n",
|
||
"2024-12-07 08:59:07.229250: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 771456000 totalling 735.72MiB\n",
|
||
"2024-12-07 08:59:07.229258: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 2303392000 totalling 2.14GiB\n",
|
||
"2024-12-07 08:59:07.229266: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 2507232000 totalling 2.33GiB\n",
|
||
"2024-12-07 08:59:07.229275: I tensorflow/tsl/framework/bfc_allocator.cc:1107] Sum Total of in-use chunks: 9.50GiB\n",
|
||
"2024-12-07 08:59:07.229284: I tensorflow/tsl/framework/bfc_allocator.cc:1109] Total bytes in pool: 10198122496 memory_limit_: 10198122496 available bytes: 0 curr_region_allocation_bytes_: 17179869184\n",
|
||
"2024-12-07 08:59:07.229298: I tensorflow/tsl/framework/bfc_allocator.cc:1114] Stats: \n",
|
||
"Limit: 10198122496\n",
|
||
"InUse: 10195919872\n",
|
||
"MaxInUse: 10195920896\n",
|
||
"NumAllocs: 43119401\n",
|
||
"MaxAllocSize: 2507232000\n",
|
||
"Reserved: 0\n",
|
||
"PeakReserved: 0\n",
|
||
"LargestFreeBlock: 0\n",
|
||
"\n",
|
||
"2024-12-07 08:59:07.229328: W tensorflow/tsl/framework/bfc_allocator.cc:497] ****************************************************************************************************\n",
|
||
"2024-12-07 08:59:07.229377: W tensorflow/core/framework/op_kernel.cc:1839] OP_REQUIRES failed at matmul_op_impl.h:908 : RESOURCE_EXHAUSTED: OOM when allocating tensor with shape[20992,128] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Memoria GPU esaurita, riprovo con batch size più piccolo...\n",
|
||
"Epoch 1/150\n",
|
||
" 5/Unknown - 1s 38ms/step - loss: 0.0238 - mae: 0.1432WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.0342s vs `on_train_batch_end` time: 0.0350s). Check your callbacks.\n",
|
||
" 9953/Unknown - 294s 29ms/step - loss: 0.0258 - mae: 0.1480"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"model, history = train_transformer(train_data, train_targets, val_data, val_targets, 150, 512)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "3e2fb5a5341dac92",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"percentage_errors, absolute_errors = calculate_real_error(model, val_data, val_targets, scaler_y)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "4af58aa9bbc156f5",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"def evaluate_model_performance(model, data, targets, set_name=\"\"):\n",
|
||
" \"\"\"\n",
|
||
" Valuta le performance del modello su un set di dati specifico.\n",
|
||
" \"\"\"\n",
|
||
" predictions = model.predict(data, verbose=0)\n",
|
||
"\n",
|
||
" target_names = ['olive_prod', 'min_oil_prod', 'max_oil_prod', 'avg_oil_prod', 'total_water_need']\n",
|
||
" metrics = {}\n",
|
||
"\n",
|
||
" for i, name in enumerate(target_names):\n",
|
||
" mae = np.mean(np.abs(targets[:, i] - predictions[:, i]))\n",
|
||
" mse = np.mean(np.square(targets[:, i] - predictions[:, i]))\n",
|
||
" rmse = np.sqrt(mse)\n",
|
||
" mape = np.mean(np.abs((targets[:, i] - predictions[:, i]) / (targets[:, i] + 1e-7))) * 100\n",
|
||
"\n",
|
||
" metrics[f\"{name}_mae\"] = mae\n",
|
||
" metrics[f\"{name}_rmse\"] = rmse\n",
|
||
" metrics[f\"{name}_mape\"] = mape\n",
|
||
"\n",
|
||
" if set_name:\n",
|
||
" print(f\"\\nPerformance sul set {set_name}:\")\n",
|
||
" for metric, value in metrics.items():\n",
|
||
" print(f\"{metric}: {value:.4f}\")\n",
|
||
"\n",
|
||
" return metrics\n",
|
||
"\n",
|
||
"\n",
|
||
"def retrain_model(base_model, train_data, train_targets,\n",
|
||
" val_data, val_targets,\n",
|
||
" test_data, test_targets,\n",
|
||
" epochs=50, batch_size=128):\n",
|
||
" \"\"\"\n",
|
||
" Implementa il retraining del modello con i dati combinati.\n",
|
||
" \"\"\"\n",
|
||
" print(\"Valutazione performance iniziali del modello...\")\n",
|
||
" initial_metrics = {\n",
|
||
" 'train': evaluate_model_performance(base_model, train_data, train_targets, \"training\"),\n",
|
||
" 'val': evaluate_model_performance(base_model, val_data, val_targets, \"validazione\"),\n",
|
||
" 'test': evaluate_model_performance(base_model, test_data, test_targets, \"test\")\n",
|
||
" }\n",
|
||
"\n",
|
||
" # Combina i dati per il retraining\n",
|
||
" combined_data = {\n",
|
||
" 'temporal': np.concatenate([train_data['temporal'], val_data['temporal'], test_data['temporal']]),\n",
|
||
" 'static': np.concatenate([train_data['static'], val_data['static'], test_data['static']])\n",
|
||
" }\n",
|
||
" combined_targets = np.concatenate([train_targets, val_targets, test_targets])\n",
|
||
"\n",
|
||
" # Crea una nuova suddivisione per la validazione\n",
|
||
" indices = np.arange(len(combined_targets))\n",
|
||
" np.random.shuffle(indices)\n",
|
||
"\n",
|
||
" split_idx = int(len(indices) * 0.9)\n",
|
||
" train_idx, val_idx = indices[:split_idx], indices[split_idx:]\n",
|
||
"\n",
|
||
" # Prepara i dati per il retraining\n",
|
||
" retrain_data = {k: v[train_idx] for k, v in combined_data.items()}\n",
|
||
" retrain_targets = combined_targets[train_idx]\n",
|
||
" retrain_val_data = {k: v[val_idx] for k, v in combined_data.items()}\n",
|
||
" retrain_val_targets = combined_targets[val_idx]\n",
|
||
"\n",
|
||
" # Configura callbacks\n",
|
||
" callbacks = [\n",
|
||
" tf.keras.callbacks.EarlyStopping(\n",
|
||
" monitor='val_loss',\n",
|
||
" patience=10,\n",
|
||
" restore_best_weights=True,\n",
|
||
" min_delta=0.0001\n",
|
||
" ),\n",
|
||
" tf.keras.callbacks.ReduceLROnPlateau(\n",
|
||
" monitor='val_loss',\n",
|
||
" factor=0.2,\n",
|
||
" patience=5,\n",
|
||
" min_lr=1e-6,\n",
|
||
" verbose=1\n",
|
||
" ),\n",
|
||
" tf.keras.callbacks.ModelCheckpoint(\n",
|
||
" filepath=f'{execute_name}_retrained_best_oil_model.h5',\n",
|
||
" monitor='val_loss',\n",
|
||
" save_best_only=True,\n",
|
||
" mode='min',\n",
|
||
" save_weights_only=True\n",
|
||
" )\n",
|
||
" ]\n",
|
||
"\n",
|
||
" # Imposta learning rate per il fine-tuning\n",
|
||
" optimizer = tf.keras.optimizers.AdamW(\n",
|
||
" learning_rate=tf.keras.optimizers.schedules.ExponentialDecay(\n",
|
||
" initial_learning_rate=1e-4,\n",
|
||
" decay_steps=1000,\n",
|
||
" decay_rate=0.9\n",
|
||
" ),\n",
|
||
" weight_decay=0.01\n",
|
||
" )\n",
|
||
"\n",
|
||
" # Ricompila il modello con il nuovo optimizer\n",
|
||
" base_model.compile(\n",
|
||
" optimizer=optimizer,\n",
|
||
" loss=tf.keras.losses.Huber(),\n",
|
||
" metrics=['mae']\n",
|
||
" )\n",
|
||
"\n",
|
||
" print(\"\\nAvvio retraining...\")\n",
|
||
" history = base_model.fit(\n",
|
||
" retrain_data,\n",
|
||
" retrain_targets,\n",
|
||
" validation_data=(retrain_val_data, retrain_val_targets),\n",
|
||
" epochs=epochs,\n",
|
||
" batch_size=batch_size,\n",
|
||
" callbacks=callbacks,\n",
|
||
" verbose=1\n",
|
||
" )\n",
|
||
"\n",
|
||
" print(\"\\nValutazione performance finali...\")\n",
|
||
" final_metrics = {\n",
|
||
" 'train': evaluate_model_performance(base_model, train_data, train_targets, \"training\"),\n",
|
||
" 'val': evaluate_model_performance(base_model, val_data, val_targets, \"validazione\"),\n",
|
||
" 'test': evaluate_model_performance(base_model, test_data, test_targets, \"test\")\n",
|
||
" }\n",
|
||
"\n",
|
||
" # Salva il modello finale\n",
|
||
" save_path = f'{execute_name}_retrained_model.keras'\n",
|
||
" os.makedirs(f'{execute_name}_retrained/weights', exist_ok=True)\n",
|
||
" \n",
|
||
" base_model.save_weights(f'{execute_name}_retrained/weights')\n",
|
||
" base_model.save(save_path, save_format='keras')\n",
|
||
" print(f\"\\nModello riaddestrato salvato in: {save_path}\")\n",
|
||
"\n",
|
||
" # Report miglioramenti\n",
|
||
" print(\"\\nMiglioramenti delle performance:\")\n",
|
||
" for dataset in ['train', 'val', 'test']:\n",
|
||
" print(f\"\\nSet {dataset}:\")\n",
|
||
" for metric in initial_metrics[dataset].keys():\n",
|
||
" initial = initial_metrics[dataset][metric]\n",
|
||
" final = final_metrics[dataset][metric]\n",
|
||
" improvement = ((initial - final) / initial) * 100\n",
|
||
" print(f\"{metric}: {improvement:.2f}% di miglioramento\")\n",
|
||
"\n",
|
||
" return base_model, history, final_metrics\n",
|
||
"\n",
|
||
"\n",
|
||
"def start_retraining(model_path, train_data, train_targets,\n",
|
||
" val_data, val_targets,\n",
|
||
" test_data, test_targets,\n",
|
||
" epochs=50, batch_size=128):\n",
|
||
" \"\"\"\n",
|
||
" Avvia il processo di retraining in modo sicuro.\n",
|
||
" \"\"\"\n",
|
||
" try:\n",
|
||
" print(\"Caricamento del modello...\")\n",
|
||
" base_model = tf.keras.models.load_model(model_path, compile=False)\n",
|
||
" print(\"Modello caricato con successo!\")\n",
|
||
"\n",
|
||
" return retrain_model(\n",
|
||
" base_model=base_model,\n",
|
||
" train_data=train_data,\n",
|
||
" train_targets=train_targets,\n",
|
||
" val_data=val_data,\n",
|
||
" val_targets=val_targets,\n",
|
||
" test_data=test_data,\n",
|
||
" test_targets=test_targets,\n",
|
||
" epochs=epochs,\n",
|
||
" batch_size=batch_size\n",
|
||
" )\n",
|
||
" except Exception as e:\n",
|
||
" print(f\"Errore durante il retraining: {str(e)}\")\n",
|
||
" raise"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "588c7e49371f4a0c",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"model_path = f'{execute_name}_final_model.keras'\n",
|
||
"\n",
|
||
"retrained_model, retrain_history, final_metrics = start_retraining(\n",
|
||
" model_path=model_path,\n",
|
||
" train_data=train_data,\n",
|
||
" train_targets=train_targets,\n",
|
||
" val_data=val_data,\n",
|
||
" val_targets=val_targets,\n",
|
||
" test_data=test_data,\n",
|
||
" test_targets=test_targets,\n",
|
||
" epochs=50,\n",
|
||
" batch_size=256\n",
|
||
")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "a95606bc-c4bc-418a-acdb-2e24c30dfa81",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"percentage_errors, absolute_errors = calculate_real_error(retrained_model, val_data, val_targets, scaler_y)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "e6f357cb-56a4-4f19-a4e8-77b73a28329d",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import numpy as np\n",
|
||
"import tensorflow as tf\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"from typing import List, Dict, Tuple, Union\n",
|
||
"\n",
|
||
"def analyze_feature_importance(model: tf.keras.Model, \n",
|
||
" test_data: dict, \n",
|
||
" feature_names: List[str]) -> Dict[str, float]:\n",
|
||
" \"\"\"\n",
|
||
" Analizza l'importanza delle feature usando perturbazione.\n",
|
||
" \n",
|
||
" Args:\n",
|
||
" model: Modello TensorFlow addestrato\n",
|
||
" test_data: Dizionario con chiavi 'temporal' e 'static' contenenti i dati\n",
|
||
" feature_names: Lista dei nomi delle feature\n",
|
||
" \n",
|
||
" Returns:\n",
|
||
" dict: Dizionario con l'importanza relativa di ogni feature\n",
|
||
" \"\"\"\n",
|
||
" # Estrai i dati temporali e statici\n",
|
||
" temporal_data = test_data['temporal']\n",
|
||
" static_data = test_data['static']\n",
|
||
" \n",
|
||
" # Ottieni la predizione base\n",
|
||
" base_prediction = model.predict(test_data)\n",
|
||
" feature_importance = {}\n",
|
||
" \n",
|
||
" # Per ogni feature temporale\n",
|
||
" for i, feature in enumerate(feature_names):\n",
|
||
" if feature in ['temp_mean', 'precip_sum', 'solar_energy_sum']:\n",
|
||
" # Crea copia perturbata dei dati\n",
|
||
" perturbed_data = {\n",
|
||
" 'temporal': temporal_data.copy(),\n",
|
||
" 'static': static_data.copy()\n",
|
||
" }\n",
|
||
" \n",
|
||
" # Trova l'indice della feature temporale\n",
|
||
" temp_idx = ['temp_mean', 'precip_sum', 'solar_energy_sum'].index(feature)\n",
|
||
" \n",
|
||
" # Crea rumore per la feature temporale\n",
|
||
" feature_values = temporal_data[..., temp_idx]\n",
|
||
" noise = np.random.normal(0, np.std(feature_values) * 0.1, \n",
|
||
" size=feature_values.shape)\n",
|
||
" \n",
|
||
" # Applica il rumore alla feature temporale\n",
|
||
" perturbed_temporal = perturbed_data['temporal'].copy()\n",
|
||
" perturbed_temporal[..., temp_idx] = feature_values + noise\n",
|
||
" perturbed_data['temporal'] = perturbed_temporal\n",
|
||
" \n",
|
||
" else: # Feature statiche\n",
|
||
" # Crea copia perturbata dei dati\n",
|
||
" perturbed_data = {\n",
|
||
" 'temporal': temporal_data.copy(),\n",
|
||
" 'static': static_data.copy()\n",
|
||
" }\n",
|
||
" \n",
|
||
" # Trova l'indice della feature statica\n",
|
||
" static_idx = ['ha'].index(feature)\n",
|
||
" \n",
|
||
" # Crea rumore per la feature statica\n",
|
||
" feature_values = static_data[..., static_idx]\n",
|
||
" noise = np.random.normal(0, np.std(feature_values) * 0.1, \n",
|
||
" size=feature_values.shape)\n",
|
||
" \n",
|
||
" # Applica il rumore alla feature statica\n",
|
||
" perturbed_static = perturbed_data['static'].copy()\n",
|
||
" perturbed_static[..., static_idx] = feature_values + noise\n",
|
||
" perturbed_data['static'] = perturbed_static\n",
|
||
" \n",
|
||
" # Calcola nuova predizione\n",
|
||
" perturbed_prediction = model.predict(perturbed_data)\n",
|
||
" \n",
|
||
" # Calcola impatto della perturbazione\n",
|
||
" impact = np.mean(np.abs(perturbed_prediction - base_prediction))\n",
|
||
" feature_importance[feature] = float(impact)\n",
|
||
" \n",
|
||
" # Normalizza le importanze\n",
|
||
" total_importance = sum(feature_importance.values())\n",
|
||
" feature_importance = {k: v/total_importance \n",
|
||
" for k, v in feature_importance.items()}\n",
|
||
" \n",
|
||
" return feature_importance\n",
|
||
"\n",
|
||
"class ProbabilityFunctions:\n",
|
||
" @staticmethod\n",
|
||
" def calculate_statistics(data: Union[np.ndarray, tf.Tensor]) -> Dict[str, float]:\n",
|
||
" \"\"\"\n",
|
||
" Calcola statistiche di base usando TensorFlow.\n",
|
||
" \n",
|
||
" Args:\n",
|
||
" data: Tensor o array dei dati\n",
|
||
" \n",
|
||
" Returns:\n",
|
||
" dict: Dizionario con le statistiche\n",
|
||
" \"\"\"\n",
|
||
" if not isinstance(data, tf.Tensor):\n",
|
||
" data = tf.convert_to_tensor(data, dtype=tf.float32)\n",
|
||
" \n",
|
||
" mean = tf.reduce_mean(data)\n",
|
||
" # Calcola varianza manualmente\n",
|
||
" squared_deviations = tf.square(data - mean)\n",
|
||
" variance = tf.reduce_mean(squared_deviations)\n",
|
||
" std = tf.sqrt(variance)\n",
|
||
" \n",
|
||
" # Ordina il tensor per il calcolo della mediana\n",
|
||
" sorted_data = tf.sort(data)\n",
|
||
" size = tf.size(data)\n",
|
||
" mid_index = size // 2\n",
|
||
" median = sorted_data[mid_index]\n",
|
||
" \n",
|
||
" return {\n",
|
||
" 'mean': mean.numpy(),\n",
|
||
" 'variance': variance.numpy(),\n",
|
||
" 'std': std.numpy(),\n",
|
||
" 'min': tf.reduce_min(data).numpy(),\n",
|
||
" 'max': tf.reduce_max(data).numpy(),\n",
|
||
" 'median': median.numpy()\n",
|
||
" }\n",
|
||
"\n",
|
||
" @staticmethod\n",
|
||
" def calculate_pmf(data: np.ndarray, bins: int = 50) -> Tuple[np.ndarray, np.ndarray, np.ndarray]:\n",
|
||
" \"\"\"\n",
|
||
" Calcola la Probability Mass Function (PMF) dei dati.\n",
|
||
" \n",
|
||
" Args:\n",
|
||
" data: Array di dati\n",
|
||
" bins: Numero di bin per l'istogramma\n",
|
||
" \n",
|
||
" Returns:\n",
|
||
" tuple: (bin_centers, pmf, bin_edges)\n",
|
||
" \"\"\"\n",
|
||
" # Calcola l'istogramma\n",
|
||
" hist, bin_edges = np.histogram(data, bins=bins, density=True)\n",
|
||
" \n",
|
||
" # Calcola i centri dei bin\n",
|
||
" bin_centers = (bin_edges[:-1] + bin_edges[1:]) / 2\n",
|
||
" \n",
|
||
" # Normalizza per ottenere la PMF\n",
|
||
" pmf = hist / np.sum(hist)\n",
|
||
" \n",
|
||
" return bin_centers, pmf, bin_edges\n",
|
||
"\n",
|
||
" @staticmethod\n",
|
||
" def calculate_cmf(pmf: np.ndarray) -> np.ndarray:\n",
|
||
" \"\"\"\n",
|
||
" Calcola la Cumulative Mass Function (CMF) dalla PMF.\n",
|
||
" \n",
|
||
" Args:\n",
|
||
" pmf: Probability Mass Function\n",
|
||
" \n",
|
||
" Returns:\n",
|
||
" array: Cumulative Mass Function\n",
|
||
" \"\"\"\n",
|
||
" return np.cumsum(pmf)\n",
|
||
"\n",
|
||
" def plot_distributions(self, data: np.ndarray, \n",
|
||
" bins: int = 50, \n",
|
||
" title: str = \"Distribuzione\") -> Tuple[np.ndarray, np.ndarray, np.ndarray]:\n",
|
||
" \"\"\"\n",
|
||
" Calcola e visualizza PMF e CMF delle distribuzioni.\n",
|
||
" \n",
|
||
" Args:\n",
|
||
" data: Array di dati da analizzare\n",
|
||
" bins: Numero di bin per l'istogramma\n",
|
||
" title: Titolo del grafico\n",
|
||
" \n",
|
||
" Returns:\n",
|
||
" tuple: (bin_centers, pmf, cmf)\n",
|
||
" \"\"\"\n",
|
||
" # Calcola PMF e CMF\n",
|
||
" bin_centers, pmf, bin_edges = self.calculate_pmf(data, bins)\n",
|
||
" cmf = self.calculate_cmf(pmf)\n",
|
||
" \n",
|
||
" # Crea il plot\n",
|
||
" fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(10, 8))\n",
|
||
" \n",
|
||
" # Plot PMF\n",
|
||
" width = np.diff(bin_edges)\n",
|
||
" ax1.bar(bin_centers, pmf, width=width, alpha=0.5, label='PMF')\n",
|
||
" ax1.set_title('Probability Mass Function')\n",
|
||
" ax1.set_ylabel('Probability')\n",
|
||
" ax1.grid(True, alpha=0.3)\n",
|
||
" ax1.legend()\n",
|
||
" \n",
|
||
" # Plot CMF\n",
|
||
" ax2.plot(bin_centers, cmf, 'r-', label='CMF')\n",
|
||
" ax2.set_title('Cumulative Mass Function')\n",
|
||
" ax2.set_xlabel('Value')\n",
|
||
" ax2.set_ylabel('Cumulative Probability')\n",
|
||
" ax2.grid(True, alpha=0.3)\n",
|
||
" ax2.legend()\n",
|
||
" \n",
|
||
" # Imposta il titolo generale\n",
|
||
" fig.suptitle(title, y=1.02)\n",
|
||
" plt.tight_layout()\n",
|
||
" plt.show()\n",
|
||
" \n",
|
||
" return bin_centers, pmf, cmf\n",
|
||
"\n",
|
||
"def analyze_model_predictions(model: tf.keras.Model, \n",
|
||
" test_data: np.ndarray,\n",
|
||
" test_targets: np.ndarray,\n",
|
||
" scaler_y) -> None:\n",
|
||
" \"\"\"\n",
|
||
" Analizza le distribuzioni di probabilità delle predizioni del modello.\n",
|
||
" \n",
|
||
" Args:\n",
|
||
" model: Modello TensorFlow addestrato\n",
|
||
" test_data: Dati di test\n",
|
||
" test_targets: Target di test\n",
|
||
" scaler_y: Scaler usato per denormalizzare i target\n",
|
||
" \"\"\"\n",
|
||
" # Ottieni le predizioni\n",
|
||
" predictions = model.predict(test_data)\n",
|
||
" \n",
|
||
" # Denormalizza predizioni e target\n",
|
||
" predictions_real = scaler_y.inverse_transform(predictions)\n",
|
||
" targets_real = scaler_y.inverse_transform(test_targets)\n",
|
||
" \n",
|
||
" # Inizializza la classe per l'analisi delle probabilità\n",
|
||
" prob = ProbabilityFunctions()\n",
|
||
" \n",
|
||
" # Analizza ogni target\n",
|
||
" target_names = ['olive_prod', 'min_oil_prod', 'max_oil_prod', \n",
|
||
" 'avg_oil_prod', 'total_water_need']\n",
|
||
" \n",
|
||
" for i, target in enumerate(target_names):\n",
|
||
" print(f\"\\nAnalisi per {target}\")\n",
|
||
" print(\"-\" * 50)\n",
|
||
" \n",
|
||
" # Calcola errori\n",
|
||
" errors = predictions_real[:, i] - targets_real[:, i]\n",
|
||
" \n",
|
||
" # Calcola statistiche degli errori\n",
|
||
" error_stats = prob.calculate_statistics(errors)\n",
|
||
" print(\"\\nStatistiche degli Errori:\")\n",
|
||
" for key, value in error_stats.items():\n",
|
||
" print(f\"{key}: {value:.3f}\")\n",
|
||
" \n",
|
||
" # Visualizza le distribuzioni degli errori\n",
|
||
" bin_centers, pmf, cmf = prob.plot_distributions(\n",
|
||
" errors, \n",
|
||
" bins=50,\n",
|
||
" title=f\"Distribuzione degli Errori - {target}\"\n",
|
||
" )\n",
|
||
" \n",
|
||
" # Calcola intervalli di confidenza\n",
|
||
" confidence_levels = [0.68, 0.95, 0.99] # 1σ, 2σ, 3σ\n",
|
||
" for level in confidence_levels:\n",
|
||
" lower_idx = np.searchsorted(cmf, (1 - level) / 2)\n",
|
||
" upper_idx = np.searchsorted(cmf, (1 + level) / 2)\n",
|
||
" \n",
|
||
" print(f\"\\nIntervallo di Confidenza {level*100}%:\")\n",
|
||
" print(f\"Range: [{bin_centers[lower_idx]:.2f}, {bin_centers[upper_idx]:.2f}]\")\n",
|
||
"\n",
|
||
"def run_comprehensive_analysis(retrained_model, test_data, test_targets, scaler_y):\n",
|
||
" \"\"\"\n",
|
||
" Esegue un'analisi completa del modello includendo errori,\n",
|
||
" importanza delle feature e distribuzioni.\n",
|
||
" \"\"\"\n",
|
||
" print(\"=== ANALISI COMPLETA DEL MODELLO ===\")\n",
|
||
" \n",
|
||
" # 1. Analisi degli errori\n",
|
||
" print(\"\\n1. ANALISI DEGLI ERRORI\")\n",
|
||
" print(\"-\" * 50)\n",
|
||
" analyze_model_predictions(retrained_model, test_data, test_targets, scaler_y)\n",
|
||
" \n",
|
||
" # 2. Analisi dell'importanza delle feature\n",
|
||
" print(\"\\n2. IMPORTANZA DELLE FEATURE\")\n",
|
||
" print(\"-\" * 50)\n",
|
||
" \n",
|
||
" # Definisci i nomi delle feature\n",
|
||
" temporal_features = ['temp_mean', 'precip_sum', 'solar_energy_sum']\n",
|
||
" static_features = ['ha']\n",
|
||
" \n",
|
||
" all_features = temporal_features + static_features\n",
|
||
" importance = analyze_feature_importance(retrained_model, test_data, all_features)\n",
|
||
" \n",
|
||
" print(\"\\nImportanza relativa delle feature:\")\n",
|
||
" for feature, imp in sorted(importance.items(), key=lambda x: x[1], reverse=True):\n",
|
||
" print(f\"{feature}: {imp:.4f}\")\n",
|
||
" \n",
|
||
" # 3. Analisi distribuzionale\n",
|
||
" print(\"\\n3. ANALISI DISTRIBUZIONALE\")\n",
|
||
" print(\"-\" * 50)\n",
|
||
" \n",
|
||
" prob = ProbabilityFunctions()\n",
|
||
" predictions = retrained_model.predict(test_data)\n",
|
||
" predictions_real = scaler_y.inverse_transform(predictions)\n",
|
||
" targets_real = scaler_y.inverse_transform(test_targets)\n",
|
||
" \n",
|
||
" target_names = ['olive_prod', 'min_oil_prod', 'max_oil_prod', \n",
|
||
" 'avg_oil_prod', 'total_water_need']\n",
|
||
" \n",
|
||
" for i, target in enumerate(target_names):\n",
|
||
" print(f\"\\nAnalisi distribuzionale per {target}\")\n",
|
||
" \n",
|
||
" # Statistiche\n",
|
||
" stats_pred = prob.calculate_statistics(predictions_real[:, i])\n",
|
||
" stats_true = prob.calculate_statistics(targets_real[:, i])\n",
|
||
" \n",
|
||
" print(\"\\nStatistiche Predizioni:\")\n",
|
||
" for key, value in stats_pred.items():\n",
|
||
" print(f\"{key}: {value:.3f}\")\n",
|
||
" \n",
|
||
" print(\"\\nStatistiche Target Reali:\")\n",
|
||
" for key, value in stats_true.items():\n",
|
||
" print(f\"{key}: {value:.3f}\")\n",
|
||
" \n",
|
||
" # Visualizza distribuzioni\n",
|
||
" prob.plot_distributions(predictions_real[:, i], bins=50,\n",
|
||
" title=f\"Distribuzione Predizioni - {target}\")\n",
|
||
" prob.plot_distributions(targets_real[:, i], bins=50,\n",
|
||
" title=f\"Distribuzione Target Reali - {target}\")\n",
|
||
"\n",
|
||
"def analyze_model_predictions(model, test_data, test_targets, scaler_y):\n",
|
||
" \"\"\"\n",
|
||
" Analizza le distribuzioni di probabilità delle predizioni del modello.\n",
|
||
" \n",
|
||
" Args:\n",
|
||
" model: Modello TensorFlow addestrato\n",
|
||
" test_data: Dati di test\n",
|
||
" test_targets: Target di test\n",
|
||
" scaler_y: Scaler usato per denormalizzare i target\n",
|
||
" \"\"\"\n",
|
||
" # Ottieni le predizioni\n",
|
||
" predictions = model.predict(test_data)\n",
|
||
" \n",
|
||
" # Denormalizza predizioni e target\n",
|
||
" predictions_real = scaler_y.inverse_transform(predictions)\n",
|
||
" targets_real = scaler_y.inverse_transform(test_targets)\n",
|
||
" \n",
|
||
" # Inizializza la classe per l'analisi delle probabilità\n",
|
||
" prob = ProbabilityFunctions()\n",
|
||
" \n",
|
||
" # Analizza ogni target\n",
|
||
" target_names = ['olive_prod', 'min_oil_prod', 'max_oil_prod', \n",
|
||
" 'avg_oil_prod', 'total_water_need']\n",
|
||
" \n",
|
||
" for i, target in enumerate(target_names):\n",
|
||
" print(f\"\\nAnalisi per {target}\")\n",
|
||
" print(\"-\" * 50)\n",
|
||
" \n",
|
||
" # Calcola errori\n",
|
||
" errors = predictions_real[:, i] - targets_real[:, i]\n",
|
||
" \n",
|
||
" # Calcola statistiche degli errori\n",
|
||
" error_stats = prob.calculate_statistics(errors)\n",
|
||
" print(\"\\nStatistiche degli Errori:\")\n",
|
||
" for key, value in error_stats.items():\n",
|
||
" print(f\"{key}: {value:.3f}\")\n",
|
||
" \n",
|
||
" # Visualizza le distribuzioni degli errori\n",
|
||
" bin_centers, pmf, cmf = prob.plot_distributions(\n",
|
||
" errors, \n",
|
||
" bins=50,\n",
|
||
" title=f\"Distribuzione degli Errori - {target}\"\n",
|
||
" )\n",
|
||
" \n",
|
||
" # Calcola intervalli di confidenza\n",
|
||
" confidence_levels = [0.80,0.85, 0.90, 0.95, 0.99] # 1σ, 2σ, 3σ\n",
|
||
" for level in confidence_levels:\n",
|
||
" lower_idx = np.searchsorted(cmf, (1 - level) / 2)\n",
|
||
" upper_idx = np.searchsorted(cmf, (1 + level) / 2)\n",
|
||
" \n",
|
||
" print(f\"\\nIntervallo di Confidenza {level*100}%:\")\n",
|
||
" print(f\"Range: [{bin_centers[lower_idx]:.2f}, {bin_centers[upper_idx]:.2f}]\")\n",
|
||
"\n",
|
||
"class ProbabilityFunctions:\n",
|
||
" @staticmethod\n",
|
||
" def calculate_statistics(data):\n",
|
||
" \"\"\"\n",
|
||
" Calcola statistiche di base usando TensorFlow.\n",
|
||
" \n",
|
||
" Args:\n",
|
||
" data: Tensor dei dati\n",
|
||
" \n",
|
||
" Returns:\n",
|
||
" dict: Dizionario con le statistiche\n",
|
||
" \"\"\"\n",
|
||
" if not isinstance(data, tf.Tensor):\n",
|
||
" data = tf.convert_to_tensor(data, dtype=tf.float32)\n",
|
||
" \n",
|
||
" mean = tf.reduce_mean(data)\n",
|
||
" # Calculate variance manually\n",
|
||
" squared_deviations = tf.square(data - mean)\n",
|
||
" variance = tf.reduce_mean(squared_deviations)\n",
|
||
" std = tf.sqrt(variance)\n",
|
||
" \n",
|
||
" # Sort the tensor for median calculation\n",
|
||
" sorted_data = tf.sort(data)\n",
|
||
" size = tf.size(data)\n",
|
||
" mid_index = size // 2\n",
|
||
" median = sorted_data[mid_index]\n",
|
||
" \n",
|
||
" return {\n",
|
||
" 'mean': mean.numpy(),\n",
|
||
" 'variance': variance.numpy(),\n",
|
||
" 'std': std.numpy(),\n",
|
||
" 'min': tf.reduce_min(data).numpy(),\n",
|
||
" 'max': tf.reduce_max(data).numpy(),\n",
|
||
" 'median': median.numpy()\n",
|
||
" }\n",
|
||
"\n",
|
||
" @staticmethod\n",
|
||
" def calculate_pmf(data, bins=50):\n",
|
||
" \"\"\"\n",
|
||
" Calcola la Probability Mass Function (PMF) dei dati.\n",
|
||
" \n",
|
||
" Args:\n",
|
||
" data: Array di dati\n",
|
||
" bins: Numero di bin per l'istogramma\n",
|
||
" \n",
|
||
" Returns:\n",
|
||
" tuple: (bin_centers, pmf, bin_edges)\n",
|
||
" \"\"\"\n",
|
||
" # Calcola l'istogramma\n",
|
||
" hist, bin_edges = np.histogram(data, bins=bins, density=True)\n",
|
||
" \n",
|
||
" # Calcola i centri dei bin\n",
|
||
" bin_centers = (bin_edges[:-1] + bin_edges[1:]) / 2\n",
|
||
" \n",
|
||
" # Normalizza per ottenere la PMF\n",
|
||
" pmf = hist / np.sum(hist)\n",
|
||
" \n",
|
||
" return bin_centers, pmf, bin_edges\n",
|
||
"\n",
|
||
" @staticmethod\n",
|
||
" def calculate_cmf(pmf):\n",
|
||
" \"\"\"\n",
|
||
" Calcola la Cumulative Mass Function (CMF) dalla PMF.\n",
|
||
" \n",
|
||
" Args:\n",
|
||
" pmf: Probability Mass Function\n",
|
||
" \n",
|
||
" Returns:\n",
|
||
" array: Cumulative Mass Function\n",
|
||
" \"\"\"\n",
|
||
" return np.cumsum(pmf)\n",
|
||
"\n",
|
||
" def plot_distributions(self, data, bins=50, title=\"Distribuzione\"):\n",
|
||
" \"\"\"\n",
|
||
" Calcola e visualizza PMF e CMF delle distribuzioni.\n",
|
||
" \n",
|
||
" Args:\n",
|
||
" data: Array di dati da analizzare\n",
|
||
" bins: Numero di bin per l'istogramma\n",
|
||
" title: Titolo del grafico\n",
|
||
" \n",
|
||
" Returns:\n",
|
||
" tuple: (bin_centers, pmf, cmf)\n",
|
||
" \"\"\"\n",
|
||
" # Calcola PMF e CMF\n",
|
||
" bin_centers, pmf, bin_edges = self.calculate_pmf(data, bins)\n",
|
||
" cmf = self.calculate_cmf(pmf)\n",
|
||
" \n",
|
||
" # Crea il plot\n",
|
||
" fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(10, 8))\n",
|
||
" \n",
|
||
" # Plot PMF\n",
|
||
" width = np.diff(bin_edges)\n",
|
||
" ax1.bar(bin_centers, pmf, width=width, alpha=0.5, label='PMF')\n",
|
||
" ax1.set_title('Probability Mass Function')\n",
|
||
" ax1.set_ylabel('Probability')\n",
|
||
" ax1.grid(True, alpha=0.3)\n",
|
||
" ax1.legend()\n",
|
||
" \n",
|
||
" # Plot CMF\n",
|
||
" ax2.plot(bin_centers, cmf, 'r-', label='CMF')\n",
|
||
" ax2.set_title('Cumulative Mass Function')\n",
|
||
" ax2.set_xlabel('Value')\n",
|
||
" ax2.set_ylabel('Cumulative Probability')\n",
|
||
" ax2.grid(True, alpha=0.3)\n",
|
||
" ax2.legend()\n",
|
||
" \n",
|
||
" # Set overall title\n",
|
||
" fig.suptitle(title, y=1.02)\n",
|
||
" plt.tight_layout()\n",
|
||
" plt.show()\n",
|
||
" \n",
|
||
" return bin_centers, pmf, cmf"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "b98f2a45-ba6f-4519-acaa-0138b4ee7812",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"run_comprehensive_analysis(retrained_model, test_data, test_targets, scaler_y)"
|
||
]
|
||
}
|
||
],
|
||
"metadata": {
|
||
"kernelspec": {
|
||
"display_name": "Python 3 (ipykernel)",
|
||
"language": "python",
|
||
"name": "python3"
|
||
},
|
||
"language_info": {
|
||
"codemirror_mode": {
|
||
"name": "ipython",
|
||
"version": 3
|
||
},
|
||
"file_extension": ".py",
|
||
"mimetype": "text/x-python",
|
||
"name": "python",
|
||
"nbconvert_exporter": "python",
|
||
"pygments_lexer": "ipython3",
|
||
"version": "3.11.0rc1"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 5
|
||
}
|