{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "982e76f5", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T04:29:11.074576Z", "iopub.status.busy": "2024-02-29T04:29:11.073762Z", "iopub.status.idle": "2024-02-29T04:29:11.113694Z", "shell.execute_reply": "2024-02-29T04:29:11.112810Z" }, "papermill": { "duration": 0.055415, "end_time": "2024-02-29T04:29:11.115700", "exception": false, "start_time": "2024-02-29T04:29:11.060285", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "import joblib\n", "\n", "#joblib.parallel_backend(\"threading\")" ] }, { "cell_type": "code", "execution_count": 2, "id": "675f0b41", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T04:29:11.141741Z", "iopub.status.busy": "2024-02-29T04:29:11.140838Z", "iopub.status.idle": "2024-02-29T04:29:11.148404Z", "shell.execute_reply": "2024-02-29T04:29:11.147580Z" }, "papermill": { "duration": 0.02269, "end_time": "2024-02-29T04:29:11.150466", "exception": false, "start_time": "2024-02-29T04:29:11.127776", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "'\\n%cd /kaggle/working\\n#!git clone https://github.com/R-N/ml-utility-loss\\n%cd ml-utility-loss\\n!git pull\\n#!pip install .\\n!pip install . --no-deps --force-reinstall --upgrade\\n#'" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\"\"\"\n", "%cd /kaggle/working\n", "#!git clone https://github.com/R-N/ml-utility-loss\n", "%cd ml-utility-loss\n", "!git pull\n", "#!pip install .\n", "!pip install . --no-deps --force-reinstall --upgrade\n", "#\"\"\"" ] }, { "cell_type": "code", "execution_count": 3, "id": "5ae30f5c", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T04:29:11.174255Z", "iopub.status.busy": "2024-02-29T04:29:11.173792Z", "iopub.status.idle": "2024-02-29T04:29:11.177803Z", "shell.execute_reply": "2024-02-29T04:29:11.176979Z" }, "papermill": { "duration": 0.018365, "end_time": "2024-02-29T04:29:11.179910", "exception": false, "start_time": "2024-02-29T04:29:11.161545", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "plt.rcParams['figure.figsize'] = [3,3]" ] }, { "cell_type": "code", "execution_count": 4, "id": "9f42c810", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T04:29:11.203700Z", "iopub.status.busy": "2024-02-29T04:29:11.203202Z", "iopub.status.idle": "2024-02-29T04:29:11.207400Z", "shell.execute_reply": "2024-02-29T04:29:11.206583Z" }, "executionInfo": { "elapsed": 678, "status": "ok", "timestamp": 1696841022168, "user": { "displayName": "Rizqi Nur", "userId": "09644007964068789560" }, "user_tz": -420 }, "id": "ns5hFcVL2yvs", "papermill": { "duration": 0.018933, "end_time": "2024-02-29T04:29:11.209878", "exception": false, "start_time": "2024-02-29T04:29:11.190945", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "datasets = [\n", " \"insurance\",\n", " \"treatment\",\n", " \"contraceptive\"\n", "]\n", "\n", "study_dir = \"./\"" ] }, { "cell_type": "code", "execution_count": 5, "id": "85d0c8ce", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T04:29:11.234360Z", "iopub.status.busy": "2024-02-29T04:29:11.233845Z", "iopub.status.idle": "2024-02-29T04:29:11.239162Z", "shell.execute_reply": "2024-02-29T04:29:11.238293Z" }, "papermill": { "duration": 0.019487, "end_time": "2024-02-29T04:29:11.241190", "exception": false, "start_time": "2024-02-29T04:29:11.221703", "status": "completed" }, "tags": [ "parameters" ] }, "outputs": [], "source": [ "#Parameters\n", "import os\n", "\n", "path_prefix = \"../../../../\"\n", "\n", "dataset_dir = os.path.join(path_prefix, \"ml-utility-loss/datasets\")\n", "dataset_name = \"treatment\"\n", "model_name=\"ml_utility_2\"\n", "models = [\"tvae\", \"realtabformer\", \"lct_gan\", \"tab_ddpm_concat\"]\n", "single_model = \"lct_gan\"\n", "random_seed = 42\n", "gp = True\n", "gp_multiply = True\n", "folder = \"eval\"\n", "debug = False\n", "path = None" ] }, { "cell_type": "code", "execution_count": 6, "id": "e997d4e6", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T04:29:11.266264Z", "iopub.status.busy": "2024-02-29T04:29:11.266000Z", "iopub.status.idle": "2024-02-29T04:29:11.270684Z", "shell.execute_reply": "2024-02-29T04:29:11.269865Z" }, "papermill": { "duration": 0.019149, "end_time": "2024-02-29T04:29:11.272484", "exception": false, "start_time": "2024-02-29T04:29:11.253335", "status": "completed" }, "tags": [ "injected-parameters" ] }, "outputs": [], "source": [ "# Parameters\n", "dataset = \"treatment\"\n", "dataset_name = \"treatment\"\n", "single_model = \"tvae\"\n", "gp = False\n", "gp_multiply = False\n", "random_seed = 2\n", "debug = False\n", "folder = \"eval\"\n", "path_prefix = \"../../../../\"\n", "path = \"eval/treatment/tvae/2\"\n" ] }, { "cell_type": "code", "execution_count": null, "id": "bd7c02d6", "metadata": { "papermill": { "duration": 0.011209, "end_time": "2024-02-29T04:29:11.294824", "exception": false, "start_time": "2024-02-29T04:29:11.283615", "status": "completed" }, "tags": [] }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 7, "id": "5f45b1d0", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T04:29:11.318911Z", "iopub.status.busy": "2024-02-29T04:29:11.318297Z", "iopub.status.idle": "2024-02-29T04:29:11.327653Z", "shell.execute_reply": "2024-02-29T04:29:11.326895Z" }, "executionInfo": { "elapsed": 7, "status": "ok", "timestamp": 1696841022169, "user": { "displayName": "Rizqi Nur", "userId": "09644007964068789560" }, "user_tz": -420 }, "id": "UdvXYv3c3LXy", "papermill": { "duration": 0.023753, "end_time": "2024-02-29T04:29:11.329797", "exception": false, "start_time": "2024-02-29T04:29:11.306044", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/kaggle/working\n", "/kaggle/working/eval/treatment/tvae/2\n" ] } ], "source": [ "from pathlib import Path\n", "import os\n", "\n", "%cd /kaggle/working/\n", "\n", "if path is None:\n", " path = os.path.join(folder, dataset_name, single_model, random_seed)\n", "Path(path).mkdir(parents=True, exist_ok=True)\n", "\n", "%cd {path}" ] }, { "cell_type": "code", "execution_count": 8, "id": "f85bf540", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T04:29:11.353602Z", "iopub.status.busy": "2024-02-29T04:29:11.353337Z", "iopub.status.idle": "2024-02-29T04:29:13.595630Z", "shell.execute_reply": "2024-02-29T04:29:13.594714Z" }, "papermill": { "duration": 2.256654, "end_time": "2024-02-29T04:29:13.597744", "exception": false, "start_time": "2024-02-29T04:29:11.341090", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Set seed to \n" ] } ], "source": [ "from ml_utility_loss.util import seed\n", "if single_model:\n", " model_name=f\"{model_name}_{single_model}\"\n", "if random_seed is not None:\n", " seed(random_seed)\n", " print(\"Set seed to\", seed)" ] }, { "cell_type": "code", "execution_count": 9, "id": "8489feae", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T04:29:13.624599Z", "iopub.status.busy": "2024-02-29T04:29:13.623911Z", "iopub.status.idle": "2024-02-29T04:29:13.639836Z", "shell.execute_reply": "2024-02-29T04:29:13.639010Z" }, "papermill": { "duration": 0.031202, "end_time": "2024-02-29T04:29:13.641867", "exception": false, "start_time": "2024-02-29T04:29:13.610665", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import json\n", "import os\n", "\n", "df = pd.read_csv(os.path.join(dataset_dir, f\"{dataset_name}.csv\"))\n", "with open(os.path.join(dataset_dir, f\"{dataset_name}.json\")) as f:\n", " info = json.load(f)" ] }, { "cell_type": "code", "execution_count": 10, "id": "debcc684", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T04:29:13.666451Z", "iopub.status.busy": "2024-02-29T04:29:13.666195Z", "iopub.status.idle": "2024-02-29T04:29:13.673384Z", "shell.execute_reply": "2024-02-29T04:29:13.672673Z" }, "executionInfo": { "elapsed": 6, "status": "ok", "timestamp": 1696841022169, "user": { "displayName": "Rizqi Nur", "userId": "09644007964068789560" }, "user_tz": -420 }, "id": "Vrl2QkoV3o_8", "papermill": { "duration": 0.021525, "end_time": "2024-02-29T04:29:13.675216", "exception": false, "start_time": "2024-02-29T04:29:13.653691", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "task = info[\"task\"]\n", "target = info[\"target\"]\n", "cat_features = info[\"cat_features\"]\n", "mixed_features = info[\"mixed_features\"]\n", "longtail_features = info[\"longtail_features\"]\n", "integer_features = info[\"integer_features\"]\n", "\n", "test = df.sample(frac=0.2, random_state=42)\n", "train = df[~df.index.isin(test.index)]" ] }, { "cell_type": "code", "execution_count": 11, "id": "7538184a", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T04:29:13.699417Z", "iopub.status.busy": "2024-02-29T04:29:13.699140Z", "iopub.status.idle": "2024-02-29T04:29:13.800471Z", "shell.execute_reply": "2024-02-29T04:29:13.799702Z" }, "executionInfo": { "elapsed": 6, "status": "ok", "timestamp": 1696841022169, "user": { "displayName": "Rizqi Nur", "userId": "09644007964068789560" }, "user_tz": -420 }, "id": "TilUuFk9vqMb", "papermill": { "duration": 0.116049, "end_time": "2024-02-29T04:29:13.802564", "exception": false, "start_time": "2024-02-29T04:29:13.686515", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "import ml_utility_loss.synthesizers.tab_ddpm.params as TAB_DDPM_PARAMS\n", "import ml_utility_loss.synthesizers.lct_gan.params as LCT_GAN_PARAMS\n", "import ml_utility_loss.synthesizers.realtabformer.params as RTF_PARAMS\n", "from ml_utility_loss.synthesizers.realtabformer.params.default import GPT2_PARAMS, REALTABFORMER_PARAMS\n", "from ml_utility_loss.util import filter_dict_2, filter_dict\n", "\n", "tab_ddpm_params = getattr(TAB_DDPM_PARAMS, dataset_name).BEST\n", "lct_gan_params = getattr(LCT_GAN_PARAMS, dataset_name).BEST\n", "lct_ae_params = filter_dict_2(lct_gan_params, LCT_GAN_PARAMS.default.AE_PARAMS)\n", "rtf_params = getattr(RTF_PARAMS, dataset_name).BEST\n", "rtf_params = filter_dict(rtf_params, REALTABFORMER_PARAMS)\n", "\n", "lct_ae_embedding_size=lct_gan_params[\"embedding_size\"]\n", "tab_ddpm_normalization=\"quantile\"\n", "tab_ddpm_cat_encoding=tab_ddpm_params[\"cat_encoding\"]\n", "#tab_ddpm_cat_encoding=\"one-hot\"\n", "tab_ddpm_y_policy=\"default\"\n", "tab_ddpm_is_y_cond=True" ] }, { "cell_type": "code", "execution_count": 12, "id": "cca61838", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T04:29:13.829096Z", "iopub.status.busy": "2024-02-29T04:29:13.828793Z", "iopub.status.idle": "2024-02-29T04:29:18.514659Z", "shell.execute_reply": "2024-02-29T04:29:18.513888Z" }, "executionInfo": { "elapsed": 3113, "status": "ok", "timestamp": 1696841025277, "user": { "displayName": "Rizqi Nur", "userId": "09644007964068789560" }, "user_tz": -420 }, "id": "7Abt8nStvr9Z", "papermill": { "duration": 4.702039, "end_time": "2024-02-29T04:29:18.517136", "exception": false, "start_time": "2024-02-29T04:29:13.815097", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2024-02-29 04:29:16.137890: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:9261] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n", "2024-02-29 04:29:16.137945: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:607] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n", "2024-02-29 04:29:16.139721: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1515] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n" ] } ], "source": [ "from ml_utility_loss.loss_learning.estimator.pipeline import load_lct_ae\n", "\n", "lct_ae = load_lct_ae(\n", " dataset_name=dataset_name,\n", " model_dir=os.path.join(path_prefix, \"ml-utility-loss/models\"),\n", " model_name=\"lct_ae\",\n", " df_name=\"df\",\n", ")\n", "lct_ae = None" ] }, { "cell_type": "code", "execution_count": 13, "id": "6f83b7b6", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T04:29:18.543026Z", "iopub.status.busy": "2024-02-29T04:29:18.542205Z", "iopub.status.idle": "2024-02-29T04:29:18.548277Z", "shell.execute_reply": "2024-02-29T04:29:18.547581Z" }, "papermill": { "duration": 0.021126, "end_time": "2024-02-29T04:29:18.550299", "exception": false, "start_time": "2024-02-29T04:29:18.529173", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "from ml_utility_loss.loss_learning.estimator.pipeline import load_rtf_embed\n", "\n", "rtf_embed = load_rtf_embed(\n", " dataset_name=dataset_name,\n", " model_dir=os.path.join(path_prefix, \"ml-utility-loss/models\"),\n", " model_name=\"realtabformer\",\n", " df_name=\"df\",\n", " ckpt_type=\"best-disc-model\"\n", ")" ] }, { "cell_type": "code", "execution_count": 14, "id": "0026de74", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T04:29:18.576519Z", "iopub.status.busy": "2024-02-29T04:29:18.576245Z", "iopub.status.idle": "2024-02-29T04:29:40.762246Z", "shell.execute_reply": "2024-02-29T04:29:40.760891Z" }, "executionInfo": { "elapsed": 20137, "status": "ok", "timestamp": 1696841045408, "user": { "displayName": "Rizqi Nur", "userId": "09644007964068789560" }, "user_tz": -420 }, "id": "tbaguWxAvtPi", "papermill": { "duration": 22.202272, "end_time": "2024-02-29T04:29:40.764735", "exception": false, "start_time": "2024-02-29T04:29:18.562463", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.10/site-packages/sklearn/mixture/_base.py:274: ConvergenceWarning: Initialization 1 did not converge. Try different init parameters, or increase max_iter, tol or check for degenerate data.\n", " warnings.warn(\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.10/site-packages/sklearn/mixture/_base.py:274: ConvergenceWarning: Initialization 1 did not converge. Try different init parameters, or increase max_iter, tol or check for degenerate data.\n", " warnings.warn(\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.10/site-packages/sklearn/mixture/_base.py:274: ConvergenceWarning: Initialization 1 did not converge. Try different init parameters, or increase max_iter, tol or check for degenerate data.\n", " warnings.warn(\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.10/site-packages/sklearn/mixture/_base.py:274: ConvergenceWarning: Initialization 1 did not converge. Try different init parameters, or increase max_iter, tol or check for degenerate data.\n", " warnings.warn(\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.10/site-packages/sklearn/mixture/_base.py:274: ConvergenceWarning: Initialization 1 did not converge. Try different init parameters, or increase max_iter, tol or check for degenerate data.\n", " warnings.warn(\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.10/site-packages/sklearn/mixture/_base.py:274: ConvergenceWarning: Initialization 1 did not converge. Try different init parameters, or increase max_iter, tol or check for degenerate data.\n", " warnings.warn(\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.10/site-packages/sklearn/mixture/_base.py:274: ConvergenceWarning: Initialization 1 did not converge. Try different init parameters, or increase max_iter, tol or check for degenerate data.\n", " warnings.warn(\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.10/site-packages/sklearn/mixture/_base.py:274: ConvergenceWarning: Initialization 1 did not converge. Try different init parameters, or increase max_iter, tol or check for degenerate data.\n", " warnings.warn(\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.10/site-packages/sklearn/mixture/_base.py:274: ConvergenceWarning: Initialization 1 did not converge. Try different init parameters, or increase max_iter, tol or check for degenerate data.\n", " warnings.warn(\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\r", " 0%| | 0/1 [00:00 torch.Tensor>,\n", " 'single_model': True,\n", " 'bias': True,\n", " 'bias_final': True,\n", " 'pma_ffn_mode': 'shared',\n", " 'patience': 10,\n", " 'inds_init_mode': 'torch',\n", " 'grad_clip': 0.8,\n", " 'gradient_penalty_mode': {'gradient_penalty': False,\n", " 'calc_grad_m': False,\n", " 'avg_non_role_model_m': False,\n", " 'inverse_avg_non_role_model_m': False},\n", " 'synth_data': 2,\n", " 'dataset_size': 2048,\n", " 'batch_size': 4,\n", " 'epochs': 100,\n", " 'lr_mul': 0.04,\n", " 'n_warmup_steps': 220,\n", " 'Optim': torch_optimizer.diffgrad.DiffGrad,\n", " 'loss_balancer_beta': 0.73,\n", " 'loss_balancer_r': 0.94,\n", " 'fixed_role_model': 'tvae',\n", " 'd_model': 512,\n", " 'attn_activation': ml_utility_loss.activations.LeakyHardsigmoid,\n", " 'tf_d_inner': 512,\n", " 'tf_n_layers_enc': 4,\n", " 'tf_n_head': 64,\n", " 'tf_activation': ml_utility_loss.activations.LeakyHardtanh,\n", " 'tf_activation_final': ml_utility_loss.activations.LeakyHardtanh,\n", " 'ada_d_hid': 1024,\n", " 'ada_n_layers': 7,\n", " 'ada_activation': torch.nn.modules.activation.SELU,\n", " 'ada_activation_final': ml_utility_loss.activations.LeakyHardsigmoid,\n", " 'head_d_hid': 128,\n", " 'head_n_layers': 8,\n", " 'head_n_head': 64,\n", " 'head_activation': ml_utility_loss.activations.LeakyHardsigmoid,\n", " 'head_activation_final': ml_utility_loss.activations.LeakyHardsigmoid,\n", " 'models': ['tvae'],\n", " 'max_seconds': 3600,\n", " 'tf_lora': False,\n", " 'tf_num_inds': 64,\n", " 'ada_n_seeds': 0,\n", " 'gradient_penalty_kwargs': {'mag_loss': True,\n", " 'mse_mag': False,\n", " 'mag_corr': False,\n", " 'seq_mag': False,\n", " 'cos_loss': False,\n", " 'mag_corr_kwargs': {'only_sign': False},\n", " 'cos_loss_kwargs': {'only_sign': True, 'cos_matrix': False},\n", " 'mse_mag_kwargs': {'target': 0.2, 'multiply': False}}}" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import ml_utility_loss.loss_learning.estimator.params2 as PARAMS\n", "from ml_utility_loss.tuning import map_parameters\n", "from ml_utility_loss.loss_learning.estimator.params.default import update_param_space, update_param_space_2\n", "import wandb\n", "\n", "#\"\"\"\n", "param_space = {\n", " **getattr(PARAMS, dataset_name).PARAM_SPACE,\n", "}\n", "params = {\n", " **getattr(PARAMS, dataset_name).BEST,\n", "}\n", "if gp:\n", " params[\"gradient_penalty_mode\"] = \"ALL\"\n", " params[\"mse_mag\"] = True\n", " if gp_multiply:\n", " params[\"mse_mag_multiply\"] = True\n", " params[\"mse_mag_target\"] = 1.0\n", " else:\n", " params[\"mse_mag_multiply\"] = False\n", " params[\"mse_mag_target\"] = 0.1\n", "else:\n", " params[\"gradient_penalty_mode\"] = \"NONE\"\n", " params[\"mse_mag\"] = False\n", "params[\"single_model\"] = False\n", "if models:\n", " params[\"models\"] = models\n", "if single_model:\n", " params[\"fixed_role_model\"] = single_model\n", " params[\"single_model\"] = True\n", " params[\"models\"] = [single_model]\n", "if params[\"fixed_role_model\"] == \"realtabformer\" and dataset_name == \"treatment\":\n", " params[\"batch_size\"] = 2\n", "params[\"max_seconds\"] = 3600\n", "params[\"patience\"] = 10\n", "params[\"epochs\"] = 100\n", "if debug:\n", " params[\"epochs\"] = 2\n", "with open(\"params.json\", \"w\") as f:\n", " json.dump(params, f)\n", "params = map_parameters(params, param_space=param_space)\n", "params" ] }, { "cell_type": "code", "execution_count": 19, "id": "a48bd9e9", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T04:29:41.281815Z", "iopub.status.busy": "2024-02-29T04:29:41.281494Z", "iopub.status.idle": "2024-02-29T04:29:41.349146Z", "shell.execute_reply": "2024-02-29T04:29:41.348155Z" }, "papermill": { "duration": 0.083785, "end_time": "2024-02-29T04:29:41.351100", "exception": false, "start_time": "2024-02-29T04:29:41.267315", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "load_dataset_3_factory 2\n", "Caching in ../../../../treatment/_cache/tvae/all inf False\n", "Splitting without random!\n", "Split with reverse index!\n", "../../../../ml-utility-loss/datasets_2/treatment [80, 20]\n", "Caching in ../../../../treatment/_cache4/tvae/all inf False\n", "Splitting without random!\n", "Split with reverse index!\n", "../../../../ml-utility-loss/datasets_4/treatment [80, 20]\n", "Caching in ../../../../treatment/_cache5/tvae/all inf False\n", "Splitting without random!\n", "Split with reverse index!\n", "../../../../ml-utility-loss/datasets_5/treatment [160, 40]\n", "[320, 80]\n", "[320, 80]\n" ] } ], "source": [ "train_set, val_set = datasetsn(model=params[\"fixed_role_model\"], synth_data=params[\"synth_data\"])" ] }, { "cell_type": "code", "execution_count": 20, "id": "2fcb1418", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "execution": { "iopub.execute_input": "2024-02-29T04:29:41.380722Z", "iopub.status.busy": "2024-02-29T04:29:41.380408Z", "iopub.status.idle": "2024-02-29T04:29:41.922049Z", "shell.execute_reply": "2024-02-29T04:29:41.921052Z" }, "executionInfo": { "elapsed": 396850, "status": "error", "timestamp": 1696841446059, "user": { "displayName": "Rizqi Nur", "userId": "09644007964068789560" }, "user_tz": -420 }, "id": "_bt1MQc5kpSk", "outputId": "01c1d3e5-ac64-461d-835a-b76f4a66e6d6", "papermill": { "duration": 0.558849, "end_time": "2024-02-29T04:29:41.924289", "exception": false, "start_time": "2024-02-29T04:29:41.365440", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Creating model of type \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[*] Embedding False True\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "['tvae'] 1\n" ] } ], "source": [ "from ml_utility_loss.loss_learning.estimator.model.pipeline import remove_non_model_params\n", "from ml_utility_loss.loss_learning.estimator.pipeline import create_model\n", "from ml_utility_loss.util import filter_dict, clear_memory\n", "\n", "clear_memory()\n", "\n", "params2 = remove_non_model_params(params)\n", "adapters = filter_dict(preprocessor.adapter_sizes, params[\"models\"])\n", "\n", "model = create_model(\n", " adapters=adapters,\n", " #Body=\"twin_encoder\",\n", " **params2,\n", ")\n", "#cf.apply_weight_standardization(model, n_last_layers_ignore=0)\n", "print(model.models, len(model.adapters))" ] }, { "cell_type": "code", "execution_count": 21, "id": "938f94fc", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T04:29:41.953848Z", "iopub.status.busy": "2024-02-29T04:29:41.953527Z", "iopub.status.idle": "2024-02-29T04:29:41.957492Z", "shell.execute_reply": "2024-02-29T04:29:41.956677Z" }, "papermill": { "duration": 0.021605, "end_time": "2024-02-29T04:29:41.959458", "exception": false, "start_time": "2024-02-29T04:29:41.937853", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "study_name=f\"{model_name}_{dataset_name}\"" ] }, { "cell_type": "code", "execution_count": 22, "id": "12fb613e", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T04:29:41.989740Z", "iopub.status.busy": "2024-02-29T04:29:41.989123Z", "iopub.status.idle": "2024-02-29T04:29:41.996421Z", "shell.execute_reply": "2024-02-29T04:29:41.995567Z" }, "papermill": { "duration": 0.024554, "end_time": "2024-02-29T04:29:41.998337", "exception": false, "start_time": "2024-02-29T04:29:41.973783", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "18701313" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def count_parameters(model):\n", " return sum(p.numel() for p in model.parameters() if p.requires_grad)\n", "\n", "count_parameters(model)" ] }, { "cell_type": "code", "execution_count": 23, "id": "bd386e57", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T04:29:42.026419Z", "iopub.status.busy": "2024-02-29T04:29:42.026154Z", "iopub.status.idle": "2024-02-29T04:29:42.124245Z", "shell.execute_reply": "2024-02-29T04:29:42.123367Z" }, "papermill": { "duration": 0.114636, "end_time": "2024-02-29T04:29:42.126241", "exception": false, "start_time": "2024-02-29T04:29:42.011605", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "========================================================================================================================\n", "Layer (type:depth-idx) Output Shape Param #\n", "========================================================================================================================\n", "MLUtilitySingle [2, 2648, 95] --\n", "├─Adapter: 1-1 [2, 2648, 95] --\n", "│ └─Sequential: 2-1 [2, 2648, 512] --\n", "│ │ └─FeedForward: 3-1 [2, 2648, 1024] --\n", "│ │ │ └─Linear: 4-1 [2, 2648, 1024] 98,304\n", "│ │ │ └─SELU: 4-2 [2, 2648, 1024] --\n", "│ │ └─FeedForward: 3-2 [2, 2648, 1024] --\n", "│ │ │ └─Linear: 4-3 [2, 2648, 1024] 1,049,600\n", "│ │ │ └─SELU: 4-4 [2, 2648, 1024] --\n", "│ │ └─FeedForward: 3-3 [2, 2648, 1024] --\n", "│ │ │ └─Linear: 4-5 [2, 2648, 1024] 1,049,600\n", "│ │ │ └─SELU: 4-6 [2, 2648, 1024] --\n", "│ │ └─FeedForward: 3-4 [2, 2648, 1024] --\n", "│ │ │ └─Linear: 4-7 [2, 2648, 1024] 1,049,600\n", "│ │ │ └─SELU: 4-8 [2, 2648, 1024] --\n", "│ │ └─FeedForward: 3-5 [2, 2648, 1024] --\n", "│ │ │ └─Linear: 4-9 [2, 2648, 1024] 1,049,600\n", "│ │ │ └─SELU: 4-10 [2, 2648, 1024] --\n", "│ │ └─FeedForward: 3-6 [2, 2648, 1024] --\n", "│ │ │ └─Linear: 4-11 [2, 2648, 1024] 1,049,600\n", "│ │ │ └─SELU: 4-12 [2, 2648, 1024] --\n", "│ │ └─FeedForward: 3-7 [2, 2648, 512] --\n", "│ │ │ └─Linear: 4-13 [2, 2648, 512] 524,800\n", "│ │ │ └─LeakyHardsigmoid: 4-14 [2, 2648, 512] --\n", "├─Adapter: 1-2 [2, 661, 95] (recursive)\n", "│ └─Sequential: 2-2 [2, 661, 512] (recursive)\n", "│ │ └─FeedForward: 3-8 [2, 661, 1024] (recursive)\n", "│ │ │ └─Linear: 4-15 [2, 661, 1024] (recursive)\n", "│ │ │ └─SELU: 4-16 [2, 661, 1024] --\n", "│ │ └─FeedForward: 3-9 [2, 661, 1024] (recursive)\n", "│ │ │ └─Linear: 4-17 [2, 661, 1024] (recursive)\n", "│ │ │ └─SELU: 4-18 [2, 661, 1024] --\n", "│ │ └─FeedForward: 3-10 [2, 661, 1024] (recursive)\n", "│ │ │ └─Linear: 4-19 [2, 661, 1024] (recursive)\n", "│ │ │ └─SELU: 4-20 [2, 661, 1024] --\n", "│ │ └─FeedForward: 3-11 [2, 661, 1024] (recursive)\n", "│ │ │ └─Linear: 4-21 [2, 661, 1024] (recursive)\n", "│ │ │ └─SELU: 4-22 [2, 661, 1024] --\n", "│ │ └─FeedForward: 3-12 [2, 661, 1024] (recursive)\n", "│ │ │ └─Linear: 4-23 [2, 661, 1024] (recursive)\n", "│ │ │ └─SELU: 4-24 [2, 661, 1024] --\n", "│ │ └─FeedForward: 3-13 [2, 661, 1024] (recursive)\n", "│ │ │ └─Linear: 4-25 [2, 661, 1024] (recursive)\n", "│ │ │ └─SELU: 4-26 [2, 661, 1024] --\n", "│ │ └─FeedForward: 3-14 [2, 661, 512] (recursive)\n", "│ │ │ └─Linear: 4-27 [2, 661, 512] (recursive)\n", "│ │ │ └─LeakyHardsigmoid: 4-28 [2, 661, 512] --\n", "├─TwinEncoder: 1-3 [2, 8192] --\n", "│ └─Encoder: 2-3 [2, 16, 512] --\n", "│ │ └─ModuleList: 3-16 -- (recursive)\n", "│ │ │ └─EncoderLayer: 4-29 [2, 2648, 512] --\n", "│ │ │ │ └─SimpleInducedSetAttention: 5-1 [2, 2648, 512] --\n", "│ │ │ │ │ └─TensorInductionPoint: 6-1 [2, 64, 512] 32,768\n", "│ │ │ │ │ └─MultiHeadAttention: 6-2 [2, 64, 512] --\n", "│ │ │ │ │ │ └─Linear: 7-1 [2, 64, 512] 262,144\n", "│ │ │ │ │ │ └─Linear: 7-2 [2, 2648, 512] 262,144\n", "│ │ │ │ │ │ └─Linear: 7-3 [2, 2648, 512] 262,144\n", "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-4 [2, 64, 64, 8] --\n", "│ │ │ │ │ │ │ └─Softmax: 8-1 [2, 64, 64, 2648] --\n", "│ │ │ │ │ │ └─Linear: 7-5 [2, 64, 512] 262,656\n", "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-6 [2, 64, 512] --\n", "│ │ │ │ │ └─MultiHeadAttention: 6-3 [2, 2648, 512] --\n", "│ │ │ │ │ │ └─Linear: 7-7 [2, 2648, 512] 262,144\n", "│ │ │ │ │ │ └─Linear: 7-8 [2, 64, 512] 262,144\n", "│ │ │ │ │ │ └─Linear: 7-9 [2, 64, 512] 262,144\n", "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-10 [2, 64, 2648, 8] --\n", "│ │ │ │ │ │ │ └─Softmax: 8-2 [2, 64, 2648, 64] --\n", "│ │ │ │ │ │ └─Linear: 7-11 [2, 2648, 512] 262,656\n", "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-12 [2, 2648, 512] --\n", "│ │ │ │ └─DoubleFeedForward: 5-2 [2, 2648, 512] --\n", "│ │ │ │ │ └─Linear: 6-4 [2, 2648, 512] 262,656\n", "│ │ │ │ │ └─LeakyHardtanh: 6-5 [2, 2648, 512] --\n", "│ │ │ │ │ └─Linear: 6-6 [2, 2648, 512] 262,656\n", "│ │ │ └─EncoderLayer: 4-30 [2, 2648, 512] --\n", "│ │ │ │ └─SimpleInducedSetAttention: 5-3 [2, 2648, 512] --\n", "│ │ │ │ │ └─TensorInductionPoint: 6-7 [2, 64, 512] 32,768\n", "│ │ │ │ │ └─MultiHeadAttention: 6-8 [2, 64, 512] --\n", "│ │ │ │ │ │ └─Linear: 7-13 [2, 64, 512] 262,144\n", "│ │ │ │ │ │ └─Linear: 7-14 [2, 2648, 512] 262,144\n", "│ │ │ │ │ │ └─Linear: 7-15 [2, 2648, 512] 262,144\n", "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-16 [2, 64, 64, 8] --\n", "│ │ │ │ │ │ │ └─Softmax: 8-3 [2, 64, 64, 2648] --\n", "│ │ │ │ │ │ └─Linear: 7-17 [2, 64, 512] 262,656\n", "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-18 [2, 64, 512] --\n", "│ │ │ │ │ └─MultiHeadAttention: 6-9 [2, 2648, 512] --\n", "│ │ │ │ │ │ └─Linear: 7-19 [2, 2648, 512] 262,144\n", "│ │ │ │ │ │ └─Linear: 7-20 [2, 64, 512] 262,144\n", "│ │ │ │ │ │ └─Linear: 7-21 [2, 64, 512] 262,144\n", "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-22 [2, 64, 2648, 8] --\n", "│ │ │ │ │ │ │ └─Softmax: 8-4 [2, 64, 2648, 64] --\n", "│ │ │ │ │ │ └─Linear: 7-23 [2, 2648, 512] 262,656\n", "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-24 [2, 2648, 512] --\n", "│ │ │ │ └─DoubleFeedForward: 5-4 [2, 2648, 512] --\n", "│ │ │ │ │ └─Linear: 6-10 [2, 2648, 512] 262,656\n", "│ │ │ │ │ └─LeakyHardtanh: 6-11 [2, 2648, 512] --\n", "│ │ │ │ │ └─Linear: 6-12 [2, 2648, 512] 262,656\n", "│ │ │ └─EncoderLayer: 4-31 [2, 2648, 512] --\n", "│ │ │ │ └─SimpleInducedSetAttention: 5-5 [2, 2648, 512] --\n", "│ │ │ │ │ └─TensorInductionPoint: 6-13 [2, 64, 512] 32,768\n", "│ │ │ │ │ └─MultiHeadAttention: 6-14 [2, 64, 512] --\n", "│ │ │ │ │ │ └─Linear: 7-25 [2, 64, 512] 262,144\n", "│ │ │ │ │ │ └─Linear: 7-26 [2, 2648, 512] 262,144\n", "│ │ │ │ │ │ └─Linear: 7-27 [2, 2648, 512] 262,144\n", "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-28 [2, 64, 64, 8] --\n", "│ │ │ │ │ │ │ └─Softmax: 8-5 [2, 64, 64, 2648] --\n", "│ │ │ │ │ │ └─Linear: 7-29 [2, 64, 512] 262,656\n", "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-30 [2, 64, 512] --\n", "│ │ │ │ │ └─MultiHeadAttention: 6-15 [2, 2648, 512] --\n", "│ │ │ │ │ │ └─Linear: 7-31 [2, 2648, 512] 262,144\n", "│ │ │ │ │ │ └─Linear: 7-32 [2, 64, 512] 262,144\n", "│ │ │ │ │ │ └─Linear: 7-33 [2, 64, 512] 262,144\n", "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-34 [2, 64, 2648, 8] --\n", "│ │ │ │ │ │ │ └─Softmax: 8-6 [2, 64, 2648, 64] --\n", "│ │ │ │ │ │ └─Linear: 7-35 [2, 2648, 512] 262,656\n", "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-36 [2, 2648, 512] --\n", "│ │ │ │ └─DoubleFeedForward: 5-6 [2, 2648, 512] --\n", "│ │ │ │ │ └─Linear: 6-16 [2, 2648, 512] 262,656\n", "│ │ │ │ │ └─LeakyHardtanh: 6-17 [2, 2648, 512] --\n", "│ │ │ │ │ └─Linear: 6-18 [2, 2648, 512] 262,656\n", "│ │ │ └─EncoderLayer: 4-32 [2, 16, 512] --\n", "│ │ │ │ └─SimpleInducedSetAttention: 5-7 [2, 2648, 512] --\n", "│ │ │ │ │ └─TensorInductionPoint: 6-19 [2, 64, 512] 32,768\n", "│ │ │ │ │ └─MultiHeadAttention: 6-20 [2, 64, 512] --\n", "│ │ │ │ │ │ └─Linear: 7-37 [2, 64, 512] 262,144\n", "│ │ │ │ │ │ └─Linear: 7-38 [2, 2648, 512] 262,144\n", "│ │ │ │ │ │ └─Linear: 7-39 [2, 2648, 512] 262,144\n", "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-40 [2, 64, 64, 8] --\n", "│ │ │ │ │ │ │ └─Softmax: 8-7 [2, 64, 64, 2648] --\n", "│ │ │ │ │ │ └─Linear: 7-41 [2, 64, 512] 262,656\n", "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-42 [2, 64, 512] --\n", "│ │ │ │ │ └─MultiHeadAttention: 6-21 [2, 2648, 512] --\n", "│ │ │ │ │ │ └─Linear: 7-43 [2, 2648, 512] 262,144\n", "│ │ │ │ │ │ └─Linear: 7-44 [2, 64, 512] 262,144\n", "│ │ │ │ │ │ └─Linear: 7-45 [2, 64, 512] 262,144\n", "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-46 [2, 64, 2648, 8] --\n", "│ │ │ │ │ │ │ └─Softmax: 8-8 [2, 64, 2648, 64] --\n", "│ │ │ │ │ │ └─Linear: 7-47 [2, 2648, 512] 262,656\n", "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-48 [2, 2648, 512] --\n", "│ │ │ │ └─DoubleFeedForward: 5-8 [2, 2648, 512] --\n", "│ │ │ │ │ └─Linear: 6-22 [2, 2648, 512] 262,656\n", "│ │ │ │ │ └─LeakyHardtanh: 6-23 [2, 2648, 512] --\n", "│ │ │ │ │ └─Linear: 6-24 [2, 2648, 512] 262,656\n", "│ │ │ │ └─PoolingByMultiheadAttention: 5-9 [2, 16, 512] --\n", "│ │ │ │ │ └─TensorInductionPoint: 6-25 [2, 16, 512] 8,192\n", "│ │ │ │ │ └─SimpleMultiHeadAttention: 6-26 [2, 16, 512] --\n", "│ │ │ │ │ │ └─Linear: 7-49 [2, 16, 512] 262,144\n", "│ │ │ │ │ │ └─Linear: 7-50 [2, 2648, 512] 262,144\n", "│ │ │ │ │ │ └─Linear: 7-51 [2, 2648, 512] 262,144\n", "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-52 [2, 64, 16, 8] --\n", "│ │ │ │ │ │ │ └─Softmax: 8-9 [2, 64, 16, 2648] --\n", "│ │ │ │ │ │ └─Linear: 7-53 [2, 16, 512] 262,656\n", "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-54 [2, 16, 512] --\n", "│ │ │ │ └─DoubleFeedForward: 5-10 [2, 16, 512] (recursive)\n", "│ │ │ │ │ └─Linear: 6-27 [2, 16, 512] (recursive)\n", "│ │ │ │ │ └─LeakyHardtanh: 6-28 [2, 16, 512] --\n", "│ │ │ │ │ └─Linear: 6-29 [2, 16, 512] (recursive)\n", "│ └─Encoder: 2-4 [2, 16, 512] (recursive)\n", "│ │ └─ModuleList: 3-16 -- (recursive)\n", "│ │ │ └─EncoderLayer: 4-33 [2, 661, 512] (recursive)\n", "│ │ │ │ └─SimpleInducedSetAttention: 5-11 [2, 661, 512] (recursive)\n", "│ │ │ │ │ └─TensorInductionPoint: 6-30 [2, 64, 512] (recursive)\n", "│ │ │ │ │ └─MultiHeadAttention: 6-31 [2, 64, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-55 [2, 64, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-56 [2, 661, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-57 [2, 661, 512] (recursive)\n", "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-58 [2, 64, 64, 8] --\n", "│ │ │ │ │ │ │ └─Softmax: 8-10 [2, 64, 64, 661] --\n", "│ │ │ │ │ │ └─Linear: 7-59 [2, 64, 512] (recursive)\n", "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-60 [2, 64, 512] --\n", "│ │ │ │ │ └─MultiHeadAttention: 6-32 [2, 661, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-61 [2, 661, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-62 [2, 64, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-63 [2, 64, 512] (recursive)\n", "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-64 [2, 64, 661, 8] --\n", "│ │ │ │ │ │ │ └─Softmax: 8-11 [2, 64, 661, 64] --\n", "│ │ │ │ │ │ └─Linear: 7-65 [2, 661, 512] (recursive)\n", "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-66 [2, 661, 512] --\n", "│ │ │ │ └─DoubleFeedForward: 5-12 [2, 661, 512] (recursive)\n", "│ │ │ │ │ └─Linear: 6-33 [2, 661, 512] (recursive)\n", "│ │ │ │ │ └─LeakyHardtanh: 6-34 [2, 661, 512] --\n", "│ │ │ │ │ └─Linear: 6-35 [2, 661, 512] (recursive)\n", "│ │ │ └─EncoderLayer: 4-34 [2, 661, 512] (recursive)\n", "│ │ │ │ └─SimpleInducedSetAttention: 5-13 [2, 661, 512] (recursive)\n", "│ │ │ │ │ └─TensorInductionPoint: 6-36 [2, 64, 512] (recursive)\n", "│ │ │ │ │ └─MultiHeadAttention: 6-37 [2, 64, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-67 [2, 64, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-68 [2, 661, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-69 [2, 661, 512] (recursive)\n", "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-70 [2, 64, 64, 8] --\n", "│ │ │ │ │ │ │ └─Softmax: 8-12 [2, 64, 64, 661] --\n", "│ │ │ │ │ │ └─Linear: 7-71 [2, 64, 512] (recursive)\n", "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-72 [2, 64, 512] --\n", "│ │ │ │ │ └─MultiHeadAttention: 6-38 [2, 661, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-73 [2, 661, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-74 [2, 64, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-75 [2, 64, 512] (recursive)\n", "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-76 [2, 64, 661, 8] --\n", "│ │ │ │ │ │ │ └─Softmax: 8-13 [2, 64, 661, 64] --\n", "│ │ │ │ │ │ └─Linear: 7-77 [2, 661, 512] (recursive)\n", "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-78 [2, 661, 512] --\n", "│ │ │ │ └─DoubleFeedForward: 5-14 [2, 661, 512] (recursive)\n", "│ │ │ │ │ └─Linear: 6-39 [2, 661, 512] (recursive)\n", "│ │ │ │ │ └─LeakyHardtanh: 6-40 [2, 661, 512] --\n", "│ │ │ │ │ └─Linear: 6-41 [2, 661, 512] (recursive)\n", "│ │ │ └─EncoderLayer: 4-35 [2, 661, 512] (recursive)\n", "│ │ │ │ └─SimpleInducedSetAttention: 5-15 [2, 661, 512] (recursive)\n", "│ │ │ │ │ └─TensorInductionPoint: 6-42 [2, 64, 512] (recursive)\n", "│ │ │ │ │ └─MultiHeadAttention: 6-43 [2, 64, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-79 [2, 64, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-80 [2, 661, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-81 [2, 661, 512] (recursive)\n", "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-82 [2, 64, 64, 8] --\n", "│ │ │ │ │ │ │ └─Softmax: 8-14 [2, 64, 64, 661] --\n", "│ │ │ │ │ │ └─Linear: 7-83 [2, 64, 512] (recursive)\n", "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-84 [2, 64, 512] --\n", "│ │ │ │ │ └─MultiHeadAttention: 6-44 [2, 661, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-85 [2, 661, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-86 [2, 64, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-87 [2, 64, 512] (recursive)\n", "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-88 [2, 64, 661, 8] --\n", "│ │ │ │ │ │ │ └─Softmax: 8-15 [2, 64, 661, 64] --\n", "│ │ │ │ │ │ └─Linear: 7-89 [2, 661, 512] (recursive)\n", "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-90 [2, 661, 512] --\n", "│ │ │ │ └─DoubleFeedForward: 5-16 [2, 661, 512] (recursive)\n", "│ │ │ │ │ └─Linear: 6-45 [2, 661, 512] (recursive)\n", "│ │ │ │ │ └─LeakyHardtanh: 6-46 [2, 661, 512] --\n", "│ │ │ │ │ └─Linear: 6-47 [2, 661, 512] (recursive)\n", "│ │ │ └─EncoderLayer: 4-36 [2, 16, 512] (recursive)\n", "│ │ │ │ └─SimpleInducedSetAttention: 5-17 [2, 661, 512] (recursive)\n", "│ │ │ │ │ └─TensorInductionPoint: 6-48 [2, 64, 512] (recursive)\n", "│ │ │ │ │ └─MultiHeadAttention: 6-49 [2, 64, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-91 [2, 64, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-92 [2, 661, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-93 [2, 661, 512] (recursive)\n", "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-94 [2, 64, 64, 8] --\n", "│ │ │ │ │ │ │ └─Softmax: 8-16 [2, 64, 64, 661] --\n", "│ │ │ │ │ │ └─Linear: 7-95 [2, 64, 512] (recursive)\n", "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-96 [2, 64, 512] --\n", "│ │ │ │ │ └─MultiHeadAttention: 6-50 [2, 661, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-97 [2, 661, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-98 [2, 64, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-99 [2, 64, 512] (recursive)\n", "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-100 [2, 64, 661, 8] --\n", "│ │ │ │ │ │ │ └─Softmax: 8-17 [2, 64, 661, 64] --\n", "│ │ │ │ │ │ └─Linear: 7-101 [2, 661, 512] (recursive)\n", "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-102 [2, 661, 512] --\n", "│ │ │ │ └─DoubleFeedForward: 5-18 [2, 661, 512] (recursive)\n", "│ │ │ │ │ └─Linear: 6-51 [2, 661, 512] (recursive)\n", "│ │ │ │ │ └─LeakyHardtanh: 6-52 [2, 661, 512] --\n", "│ │ │ │ │ └─Linear: 6-53 [2, 661, 512] (recursive)\n", "│ │ │ │ └─PoolingByMultiheadAttention: 5-19 [2, 16, 512] (recursive)\n", "│ │ │ │ │ └─TensorInductionPoint: 6-54 [2, 16, 512] (recursive)\n", "│ │ │ │ │ └─SimpleMultiHeadAttention: 6-55 [2, 16, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-103 [2, 16, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-104 [2, 661, 512] (recursive)\n", "│ │ │ │ │ │ └─Linear: 7-105 [2, 661, 512] (recursive)\n", "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-106 [2, 64, 16, 8] --\n", "│ │ │ │ │ │ │ └─Softmax: 8-18 [2, 64, 16, 661] --\n", "│ │ │ │ │ │ └─Linear: 7-107 [2, 16, 512] (recursive)\n", "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-108 [2, 16, 512] --\n", "│ │ │ │ └─DoubleFeedForward: 5-20 [2, 16, 512] (recursive)\n", "│ │ │ │ │ └─Linear: 6-56 [2, 16, 512] (recursive)\n", "│ │ │ │ │ └─LeakyHardtanh: 6-57 [2, 16, 512] --\n", "│ │ │ │ │ └─Linear: 6-58 [2, 16, 512] (recursive)\n", "├─Head: 1-4 [2] --\n", "│ └─Sequential: 2-5 [2, 1] --\n", "│ │ └─FeedForward: 3-17 [2, 128] --\n", "│ │ │ └─Linear: 4-37 [2, 128] 1,048,704\n", "│ │ │ └─LeakyHardsigmoid: 4-38 [2, 128] --\n", "│ │ └─FeedForward: 3-18 [2, 128] --\n", "│ │ │ └─Linear: 4-39 [2, 128] 16,512\n", "│ │ │ └─LeakyHardsigmoid: 4-40 [2, 128] --\n", "│ │ └─FeedForward: 3-19 [2, 128] --\n", "│ │ │ └─Linear: 4-41 [2, 128] 16,512\n", "│ │ │ └─LeakyHardsigmoid: 4-42 [2, 128] --\n", "│ │ └─FeedForward: 3-20 [2, 128] --\n", "│ │ │ └─Linear: 4-43 [2, 128] 16,512\n", "│ │ │ └─LeakyHardsigmoid: 4-44 [2, 128] --\n", "│ │ └─FeedForward: 3-21 [2, 128] --\n", "│ │ │ └─Linear: 4-45 [2, 128] 16,512\n", "│ │ │ └─LeakyHardsigmoid: 4-46 [2, 128] --\n", "│ │ └─FeedForward: 3-22 [2, 128] --\n", "│ │ │ └─Linear: 4-47 [2, 128] 16,512\n", "│ │ │ └─LeakyHardsigmoid: 4-48 [2, 128] --\n", "│ │ └─FeedForward: 3-23 [2, 128] --\n", "│ │ │ └─Linear: 4-49 [2, 128] 16,512\n", "│ │ │ └─LeakyHardsigmoid: 4-50 [2, 128] --\n", "│ │ └─FeedForward: 3-24 [2, 1] --\n", "│ │ │ └─Linear: 4-51 [2, 1] 129\n", "│ │ │ └─LeakyHardsigmoid: 4-52 [2, 1] --\n", "========================================================================================================================\n", "Total params: 18,701,313\n", "Trainable params: 18,701,313\n", "Non-trainable params: 0\n", "Total mult-adds (M): 74.05\n", "========================================================================================================================\n", "Input size (MB): 2.51\n", "Forward/backward pass size (MB): 1079.48\n", "Params size (MB): 74.81\n", "Estimated Total Size (MB): 1156.80\n", "========================================================================================================================" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from torchinfo import summary\n", "\n", "role_model = params[\"fixed_role_model\"]\n", "s = train_set[0][role_model]\n", "summary(model[role_model], input_size=((2, *s[0].shape), (2, *s[1].shape)), depth=9) # 8 max" ] }, { "cell_type": "code", "execution_count": 24, "id": "0f42c4d1", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T04:29:42.157988Z", "iopub.status.busy": "2024-02-29T04:29:42.157605Z", "iopub.status.idle": "2024-02-29T05:32:09.727771Z", "shell.execute_reply": "2024-02-29T05:32:09.726851Z" }, "papermill": { "duration": 3747.588598, "end_time": "2024-02-29T05:32:09.729982", "exception": false, "start_time": "2024-02-29T04:29:42.141384", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\u001b[34m\u001b[1mwandb\u001b[0m: Tracking run with wandb version 0.16.3\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\u001b[34m\u001b[1mwandb\u001b[0m: W&B syncing is set to \u001b[1m`offline`\u001b[0m in this directory. \n", "\u001b[34m\u001b[1mwandb\u001b[0m: Run \u001b[1m`wandb online`\u001b[0m or set \u001b[1mWANDB_MODE=online\u001b[0m to enable cloud syncing.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "g_loss_mul 0.1\n", "Epoch 0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.25079594189301135, 'avg_role_model_std_loss': 172.3493912117849, 'avg_role_model_mean_pred_loss': 0.0756463885481935, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.25079594189301135, 'n_size': 320, 'n_batch': 80, 'duration': 100.33574557304382, 'duration_batch': 1.2541968196630477, 'duration_size': 0.31354920491576194, 'avg_pred_std': 0.0283103398049775}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.15434771333821118, 'avg_role_model_std_loss': 0.8378194279823219, 'avg_role_model_mean_pred_loss': 0.03735067891972328, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.15434771333821118, 'n_size': 80, 'n_batch': 20, 'duration': 19.603960514068604, 'duration_batch': 0.9801980257034302, 'duration_size': 0.24504950642585754, 'avg_pred_std': 0.15204731123521925}\n", "Epoch 1\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.03561886841698651, 'avg_role_model_std_loss': 0.3229346345896033, 'avg_role_model_mean_pred_loss': 0.003486672353001108, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.03561886841698651, 'n_size': 320, 'n_batch': 80, 'duration': 99.75122737884521, 'duration_batch': 1.2468903422355653, 'duration_size': 0.3117225855588913, 'avg_pred_std': 0.2135042036534287}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.007464131528354301, 'avg_role_model_std_loss': 14.743032303131127, 'avg_role_model_mean_pred_loss': 0.0003255664299921697, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.007464131528354301, 'n_size': 80, 'n_batch': 20, 'duration': 19.27774691581726, 'duration_batch': 0.963887345790863, 'duration_size': 0.24097183644771575, 'avg_pred_std': 0.033036651482689194}\n", "Epoch 2\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.008308970414873329, 'avg_role_model_std_loss': 2.2638450761613056, 'avg_role_model_mean_pred_loss': 0.0002922931804504517, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.008308970414873329, 'n_size': 320, 'n_batch': 80, 'duration': 99.78807187080383, 'duration_batch': 1.2473508983850479, 'duration_size': 0.31183772459626197, 'avg_pred_std': 0.19011376096532331}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.008792089688631677, 'avg_role_model_std_loss': 7.008411024302973, 'avg_role_model_mean_pred_loss': 0.00045460039846188566, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.008792089688631677, 'n_size': 80, 'n_batch': 20, 'duration': 19.60298991203308, 'duration_batch': 0.9801494956016541, 'duration_size': 0.24503737390041352, 'avg_pred_std': 0.05645044087141286}\n", "Epoch 3\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.008624525008644923, 'avg_role_model_std_loss': 0.4896122309531961, 'avg_role_model_mean_pred_loss': 0.00020031151738803265, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.008624525008644923, 'n_size': 320, 'n_batch': 80, 'duration': 99.84555792808533, 'duration_batch': 1.2480694741010665, 'duration_size': 0.3120173685252666, 'avg_pred_std': 0.20240991505852435}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.007710156342363916, 'avg_role_model_std_loss': 3.4492962674491308, 'avg_role_model_mean_pred_loss': 0.00016955623478978054, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.007710156342363916, 'n_size': 80, 'n_batch': 20, 'duration': 19.69949173927307, 'duration_batch': 0.9849745869636536, 'duration_size': 0.2462436467409134, 'avg_pred_std': 0.057611686212476344}\n", "Epoch 4\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.005540997025855176, 'avg_role_model_std_loss': 0.2870428302302061, 'avg_role_model_mean_pred_loss': 0.00010962202765298911, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.005540997025855176, 'n_size': 320, 'n_batch': 80, 'duration': 99.68231582641602, 'duration_batch': 1.2460289478302002, 'duration_size': 0.31150723695755006, 'avg_pred_std': 0.20185390445403756}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.007617261353880167, 'avg_role_model_std_loss': 0.8548410554893053, 'avg_role_model_mean_pred_loss': 0.00021040458378775994, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.007617261353880167, 'n_size': 80, 'n_batch': 20, 'duration': 19.60577392578125, 'duration_batch': 0.9802886962890625, 'duration_size': 0.24507217407226561, 'avg_pred_std': 0.06373736902605742}\n", "Epoch 5\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.004228771507609963, 'avg_role_model_std_loss': 0.8442374373333109, 'avg_role_model_mean_pred_loss': 7.225186645620774e-05, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.004228771507609963, 'n_size': 320, 'n_batch': 80, 'duration': 99.56437826156616, 'duration_batch': 1.244554728269577, 'duration_size': 0.31113868206739426, 'avg_pred_std': 0.19006720920442605}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.007288631894334685, 'avg_role_model_std_loss': 1.333325219784001, 'avg_role_model_mean_pred_loss': 0.00021377515046261815, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.007288631894334685, 'n_size': 80, 'n_batch': 20, 'duration': 19.61089253425598, 'duration_batch': 0.9805446267127991, 'duration_size': 0.24513615667819977, 'avg_pred_std': 0.05554712610319257}\n", "Epoch 6\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.004288671186168358, 'avg_role_model_std_loss': 0.7424422502960226, 'avg_role_model_mean_pred_loss': 7.162387234466161e-05, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.004288671186168358, 'n_size': 320, 'n_batch': 80, 'duration': 99.62058591842651, 'duration_batch': 1.2452573239803315, 'duration_size': 0.3113143309950829, 'avg_pred_std': 0.19745058890111977}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.006442523133591749, 'avg_role_model_std_loss': 0.5144731080438725, 'avg_role_model_mean_pred_loss': 0.00011468025654934877, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.006442523133591749, 'n_size': 80, 'n_batch': 20, 'duration': 19.81056571006775, 'duration_batch': 0.9905282855033875, 'duration_size': 0.24763207137584686, 'avg_pred_std': 0.06324401344172656}\n", "Epoch 7\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.003485065951008437, 'avg_role_model_std_loss': 0.5401337196294321, 'avg_role_model_mean_pred_loss': 3.538603915114859e-05, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.003485065951008437, 'n_size': 320, 'n_batch': 80, 'duration': 99.80776119232178, 'duration_batch': 1.2475970149040223, 'duration_size': 0.3118992537260056, 'avg_pred_std': 0.18830189779400824}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.009077594889095052, 'avg_role_model_std_loss': 0.3387085039643353, 'avg_role_model_mean_pred_loss': 0.0002953080845562894, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.009077594889095052, 'n_size': 80, 'n_batch': 20, 'duration': 19.67119312286377, 'duration_batch': 0.9835596561431885, 'duration_size': 0.24588991403579713, 'avg_pred_std': 0.07019970323890448}\n", "Epoch 8\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.0029438145053859444, 'avg_role_model_std_loss': 0.8214074499624902, 'avg_role_model_mean_pred_loss': 2.2453812508680688e-05, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.0029438145053859444, 'n_size': 320, 'n_batch': 80, 'duration': 99.6238522529602, 'duration_batch': 1.2452981531620027, 'duration_size': 0.31132453829050066, 'avg_pred_std': 0.19482076268177478}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.007072782384057064, 'avg_role_model_std_loss': 0.48727775096755294, 'avg_role_model_mean_pred_loss': 0.00015469519749622407, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.007072782384057064, 'n_size': 80, 'n_batch': 20, 'duration': 19.500911951065063, 'duration_batch': 0.9750455975532532, 'duration_size': 0.2437613993883133, 'avg_pred_std': 0.06650436315685511}\n", "Epoch 9\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.002503083477677137, 'avg_role_model_std_loss': 0.7746123696918176, 'avg_role_model_mean_pred_loss': 1.2513642564668465e-05, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.002503083477677137, 'n_size': 320, 'n_batch': 80, 'duration': 99.6650288105011, 'duration_batch': 1.2458128601312637, 'duration_size': 0.3114532150328159, 'avg_pred_std': 0.18602521782158873}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.007042999230907299, 'avg_role_model_std_loss': 0.4210409534451173, 'avg_role_model_mean_pred_loss': 0.00016206004065456026, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.007042999230907299, 'n_size': 80, 'n_batch': 20, 'duration': 19.607900619506836, 'duration_batch': 0.9803950309753418, 'duration_size': 0.24509875774383544, 'avg_pred_std': 0.06358127733692527}\n", "Epoch 10\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.0019445733821157774, 'avg_role_model_std_loss': 0.45887769680392837, 'avg_role_model_mean_pred_loss': 2.8811827562555402e-05, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.0019445733821157774, 'n_size': 320, 'n_batch': 80, 'duration': 99.54072690010071, 'duration_batch': 1.2442590862512588, 'duration_size': 0.3110647715628147, 'avg_pred_std': 0.17861799619859084}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.007491035046405159, 'avg_role_model_std_loss': 0.4072774214367428, 'avg_role_model_mean_pred_loss': 0.0001684058567391844, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.007491035046405159, 'n_size': 80, 'n_batch': 20, 'duration': 19.5883047580719, 'duration_batch': 0.979415237903595, 'duration_size': 0.24485380947589874, 'avg_pred_std': 0.0683793492615223}\n", "Epoch 11\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.0016902872650462087, 'avg_role_model_std_loss': 0.14312844078152837, 'avg_role_model_mean_pred_loss': 1.2574293510679222e-05, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.0016902872650462087, 'n_size': 320, 'n_batch': 80, 'duration': 99.5855655670166, 'duration_batch': 1.2448195695877076, 'duration_size': 0.3112048923969269, 'avg_pred_std': 0.18321805561427026}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.00778989009122597, 'avg_role_model_std_loss': 0.30623174232314343, 'avg_role_model_mean_pred_loss': 0.0002285926662562332, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.00778989009122597, 'n_size': 80, 'n_batch': 20, 'duration': 19.662875652313232, 'duration_batch': 0.9831437826156616, 'duration_size': 0.2457859456539154, 'avg_pred_std': 0.0688946488313377}\n", "Epoch 12\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.0016234107402169685, 'avg_role_model_std_loss': 0.26942976858223344, 'avg_role_model_mean_pred_loss': 1.856327916652254e-05, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.0016234107402169685, 'n_size': 320, 'n_batch': 80, 'duration': 100.64648413658142, 'duration_batch': 1.2580810517072678, 'duration_size': 0.31452026292681695, 'avg_pred_std': 0.18938408511457966}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.007789343649346847, 'avg_role_model_std_loss': 0.39892919776157215, 'avg_role_model_mean_pred_loss': 0.00019050486260980827, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.007789343649346847, 'n_size': 80, 'n_batch': 20, 'duration': 19.436559677124023, 'duration_batch': 0.9718279838562012, 'duration_size': 0.2429569959640503, 'avg_pred_std': 0.06721605993807316}\n", "Epoch 13\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.0014992240631727326, 'avg_role_model_std_loss': 0.32569619336183353, 'avg_role_model_mean_pred_loss': 1.7869830239917398e-06, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.0014992240631727326, 'n_size': 320, 'n_batch': 80, 'duration': 99.36593246459961, 'duration_batch': 1.242074155807495, 'duration_size': 0.31051853895187376, 'avg_pred_std': 0.19987344325636514}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.007941817007667851, 'avg_role_model_std_loss': 0.3285603669361308, 'avg_role_model_mean_pred_loss': 0.00020670617296367766, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.007941817007667851, 'n_size': 80, 'n_batch': 20, 'duration': 19.3479266166687, 'duration_batch': 0.967396330833435, 'duration_size': 0.24184908270835875, 'avg_pred_std': 0.06898661321029068}\n", "Epoch 14\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.0015280315952168166, 'avg_role_model_std_loss': 0.1436633735797855, 'avg_role_model_mean_pred_loss': 2.658071664495944e-05, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.0015280315952168166, 'n_size': 320, 'n_batch': 80, 'duration': 99.75400042533875, 'duration_batch': 1.2469250053167342, 'duration_size': 0.31173125132918356, 'avg_pred_std': 0.189214165561134}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.007610848201147746, 'avg_role_model_std_loss': 0.30814517063022323, 'avg_role_model_mean_pred_loss': 0.00022678597003369382, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.007610848201147746, 'n_size': 80, 'n_batch': 20, 'duration': 19.45919370651245, 'duration_batch': 0.9729596853256226, 'duration_size': 0.24323992133140565, 'avg_pred_std': 0.06733945356681943}\n", "Epoch 15\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.0012301572283377026, 'avg_role_model_std_loss': 0.10807322694710982, 'avg_role_model_mean_pred_loss': 5.3408418359659e-06, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.0012301572283377026, 'n_size': 320, 'n_batch': 80, 'duration': 99.28717947006226, 'duration_batch': 1.2410897433757782, 'duration_size': 0.31027243584394454, 'avg_pred_std': 0.19792793567758055}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.006984197727433639, 'avg_role_model_std_loss': 0.247640823103211, 'avg_role_model_mean_pred_loss': 0.0001665852697917726, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.006984197727433639, 'n_size': 80, 'n_batch': 20, 'duration': 19.52495002746582, 'duration_batch': 0.976247501373291, 'duration_size': 0.24406187534332274, 'avg_pred_std': 0.06778875123709441}\n", "Epoch 16\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.0010839548700573686, 'avg_role_model_std_loss': 0.07997205620506662, 'avg_role_model_mean_pred_loss': 9.080777822098943e-06, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.0010839548700573686, 'n_size': 320, 'n_batch': 80, 'duration': 99.66356492042542, 'duration_batch': 1.2457945615053176, 'duration_size': 0.3114486403763294, 'avg_pred_std': 0.19800062356516718}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.008054383638955187, 'avg_role_model_std_loss': 0.28627982361469717, 'avg_role_model_mean_pred_loss': 0.00025097979236513577, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.008054383638955187, 'n_size': 80, 'n_batch': 20, 'duration': 19.489768266677856, 'duration_batch': 0.9744884133338928, 'duration_size': 0.2436221033334732, 'avg_pred_std': 0.06728147398680448}\n", "Epoch 17\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.0007286213950465026, 'avg_role_model_std_loss': 0.10312503655737952, 'avg_role_model_mean_pred_loss': 6.776996160624913e-07, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.0007286213950465026, 'n_size': 320, 'n_batch': 80, 'duration': 99.96071243286133, 'duration_batch': 1.2495089054107666, 'duration_size': 0.31237722635269166, 'avg_pred_std': 0.1800330831320025}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.007334689510025782, 'avg_role_model_std_loss': 0.2440898734063012, 'avg_role_model_mean_pred_loss': 0.00019387806316268908, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.007334689510025782, 'n_size': 80, 'n_batch': 20, 'duration': 19.55093002319336, 'duration_batch': 0.977546501159668, 'duration_size': 0.244386625289917, 'avg_pred_std': 0.06980508081614971}\n", "Epoch 18\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.0007013096967625643, 'avg_role_model_std_loss': 0.0806437349208462, 'avg_role_model_mean_pred_loss': 3.612507871512266e-07, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.0007013096967625643, 'n_size': 320, 'n_batch': 80, 'duration': 99.62839913368225, 'duration_batch': 1.245354989171028, 'duration_size': 0.311338747292757, 'avg_pred_std': 0.193802969326498}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.008005985312775011, 'avg_role_model_std_loss': 0.25233456931382536, 'avg_role_model_mean_pred_loss': 0.00024166704105831326, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.008005985312775011, 'n_size': 80, 'n_batch': 20, 'duration': 19.874733448028564, 'duration_batch': 0.9937366724014283, 'duration_size': 0.24843416810035707, 'avg_pred_std': 0.06946740932762623}\n", "Epoch 19\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.000650154861421015, 'avg_role_model_std_loss': 0.13836135070985306, 'avg_role_model_mean_pred_loss': 6.324771196684101e-07, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.000650154861421015, 'n_size': 320, 'n_batch': 80, 'duration': 100.67735123634338, 'duration_batch': 1.2584668904542924, 'duration_size': 0.3146167226135731, 'avg_pred_std': 0.1874849540356081}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.007276729341538157, 'avg_role_model_std_loss': 0.19176392750296145, 'avg_role_model_mean_pred_loss': 0.0001885933500119812, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.007276729341538157, 'n_size': 80, 'n_batch': 20, 'duration': 19.5623676776886, 'duration_batch': 0.97811838388443, 'duration_size': 0.2445295959711075, 'avg_pred_std': 0.06984148817136884}\n", "Epoch 20\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.0005832819898387243, 'avg_role_model_std_loss': 0.04374472918600412, 'avg_role_model_mean_pred_loss': 9.791867645731814e-07, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.0005832819898387243, 'n_size': 320, 'n_batch': 80, 'duration': 99.7720296382904, 'duration_batch': 1.24715037047863, 'duration_size': 0.3117875926196575, 'avg_pred_std': 0.19292465539183468}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.007389668950054329, 'avg_role_model_std_loss': 0.19728227270163642, 'avg_role_model_mean_pred_loss': 0.00020410724985005512, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.007389668950054329, 'n_size': 80, 'n_batch': 20, 'duration': 19.41769814491272, 'duration_batch': 0.970884907245636, 'duration_size': 0.242721226811409, 'avg_pred_std': 0.06944395890459418}\n", "Epoch 21\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.0005352863459663126, 'avg_role_model_std_loss': 0.01976681658542425, 'avg_role_model_mean_pred_loss': 6.443602266463554e-07, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.0005352863459663126, 'n_size': 320, 'n_batch': 80, 'duration': 100.6177191734314, 'duration_batch': 1.2577214896678925, 'duration_size': 0.31443037241697314, 'avg_pred_std': 0.19984434806974605}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.007991572895844002, 'avg_role_model_std_loss': 0.22150783375837904, 'avg_role_model_mean_pred_loss': 0.00023175869880640577, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.007991572895844002, 'n_size': 80, 'n_batch': 20, 'duration': 20.159916162490845, 'duration_batch': 1.0079958081245421, 'duration_size': 0.25199895203113554, 'avg_pred_std': 0.07001060470938683}\n", "Epoch 22\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.0005078368830425007, 'avg_role_model_std_loss': 0.02868203009257253, 'avg_role_model_mean_pred_loss': 8.534584292643494e-07, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.0005078368830425007, 'n_size': 320, 'n_batch': 80, 'duration': 99.94173312187195, 'duration_batch': 1.2492716640233994, 'duration_size': 0.31231791600584985, 'avg_pred_std': 0.19320008249487727}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.007862234280037229, 'avg_role_model_std_loss': 0.2152756543153373, 'avg_role_model_mean_pred_loss': 0.0002432201600976569, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.007862234280037229, 'n_size': 80, 'n_batch': 20, 'duration': 19.478534698486328, 'duration_batch': 0.9739267349243164, 'duration_size': 0.2434816837310791, 'avg_pred_std': 0.06986867655068636}\n", "Epoch 23\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.000520391069062498, 'avg_role_model_std_loss': 0.03020876141404938, 'avg_role_model_mean_pred_loss': 4.458749571339605e-07, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.000520391069062498, 'n_size': 320, 'n_batch': 80, 'duration': 100.07614707946777, 'duration_batch': 1.2509518384933471, 'duration_size': 0.3127379596233368, 'avg_pred_std': 0.1921757934615016}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.007205282323411666, 'avg_role_model_std_loss': 0.20713103588941523, 'avg_role_model_mean_pred_loss': 0.0001827256362942009, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.007205282323411666, 'n_size': 80, 'n_batch': 20, 'duration': 19.527496099472046, 'duration_batch': 0.9763748049736023, 'duration_size': 0.24409370124340057, 'avg_pred_std': 0.06974663501605391}\n", "Epoch 24\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.0005546999067291836, 'avg_role_model_std_loss': 0.027485956521196276, 'avg_role_model_mean_pred_loss': 6.895572416364425e-07, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.0005546999067291836, 'n_size': 320, 'n_batch': 80, 'duration': 99.80755043029785, 'duration_batch': 1.247594380378723, 'duration_size': 0.31189859509468076, 'avg_pred_std': 0.1784662834368646}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.007224415110249538, 'avg_role_model_std_loss': 0.17986427203068162, 'avg_role_model_mean_pred_loss': 0.00017955067020931638, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.007224415110249538, 'n_size': 80, 'n_batch': 20, 'duration': 19.42549467086792, 'duration_batch': 0.971274733543396, 'duration_size': 0.242818683385849, 'avg_pred_std': 0.0726472232490778}\n", "Epoch 25\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.0005678469070971914, 'avg_role_model_std_loss': 0.0783861569140182, 'avg_role_model_mean_pred_loss': 2.3522705448089696e-06, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.0005678469070971914, 'n_size': 320, 'n_batch': 80, 'duration': 99.91300010681152, 'duration_batch': 1.248912501335144, 'duration_size': 0.312228125333786, 'avg_pred_std': 0.18876876458525657}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.008989003312308341, 'avg_role_model_std_loss': 0.17780489571450744, 'avg_role_model_mean_pred_loss': 0.00034604211847950596, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.008989003312308341, 'n_size': 80, 'n_batch': 20, 'duration': 19.550805807113647, 'duration_batch': 0.9775402903556824, 'duration_size': 0.2443850725889206, 'avg_pred_std': 0.0718118923716247}\n", "Epoch 26\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.0004598389233777311, 'avg_role_model_std_loss': 0.03701534456806623, 'avg_role_model_mean_pred_loss': 6.740662266656723e-08, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.0004598389233777311, 'n_size': 320, 'n_batch': 80, 'duration': 99.83816456794739, 'duration_batch': 1.2479770570993423, 'duration_size': 0.31199426427483556, 'avg_pred_std': 0.19492796149570496}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.008001866593258456, 'avg_role_model_std_loss': 0.1477779638089487, 'avg_role_model_mean_pred_loss': 0.0002354497060985228, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.008001866593258456, 'n_size': 80, 'n_batch': 20, 'duration': 19.476824283599854, 'duration_batch': 0.9738412141799927, 'duration_size': 0.24346030354499817, 'avg_pred_std': 0.07350850850343704}\n", "Epoch 27\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.0004317075494100209, 'avg_role_model_std_loss': 0.016361890759745458, 'avg_role_model_mean_pred_loss': 3.335215542313308e-07, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.0004317075494100209, 'n_size': 320, 'n_batch': 80, 'duration': 99.95542669296265, 'duration_batch': 1.2494428336620331, 'duration_size': 0.3123607084155083, 'avg_pred_std': 0.18771503504831344}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.008291181290405802, 'avg_role_model_std_loss': 0.19831402401805462, 'avg_role_model_mean_pred_loss': 0.0002830501877054914, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.008291181290405802, 'n_size': 80, 'n_batch': 20, 'duration': 19.60791325569153, 'duration_batch': 0.9803956627845765, 'duration_size': 0.24509891569614412, 'avg_pred_std': 0.06914721243083477}\n", "Epoch 28\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.0004966751410051984, 'avg_role_model_std_loss': 0.013397608251197823, 'avg_role_model_mean_pred_loss': 1.0833947258724608e-07, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.0004966751410051984, 'n_size': 320, 'n_batch': 80, 'duration': 100.00627398490906, 'duration_batch': 1.2500784248113632, 'duration_size': 0.3125196062028408, 'avg_pred_std': 0.19725441149203107}\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Val loss {'avg_role_model_loss': 0.008539365028264, 'avg_role_model_std_loss': 0.21735998928961636, 'avg_role_model_mean_pred_loss': 0.0002757914544125217, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.008539365028264, 'n_size': 80, 'n_batch': 20, 'duration': 19.56255578994751, 'duration_batch': 0.9781277894973754, 'duration_size': 0.24453194737434386, 'avg_pred_std': 0.06783094126731157}\n", "Epoch 29\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\u001b[34m\u001b[1mwandb\u001b[0m: - 0.000 MB of 0.000 MB uploaded\r" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\u001b[34m\u001b[1mwandb\u001b[0m: \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Train loss {'avg_role_model_loss': 0.00043703318435177606, 'avg_role_model_std_loss': 0.012256504303220872, 'avg_role_model_mean_pred_loss': 2.395966142935274e-08, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.00043703318435177606, 'n_size': 320, 'n_batch': 80, 'duration': 99.63266062736511, 'duration_batch': 1.245408257842064, 'duration_size': 0.311352064460516, 'avg_pred_std': 0.18974662573309614}\n", "Time out: 3631.7292110919952/3600\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\u001b[34m\u001b[1mwandb\u001b[0m: \n", "\u001b[34m\u001b[1mwandb\u001b[0m: Run history:\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_loss_test █▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_loss_train █▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_non_role_model_embed_loss_test ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_non_role_model_embed_loss_train ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_non_role_model_g_cos_loss_test ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_non_role_model_g_cos_loss_train ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_non_role_model_g_mag_loss_test ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_non_role_model_g_mag_loss_train ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_pred_std_test █▁▂▂▃▂▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_pred_std_train ▁█▇██▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_role_model_g_cos_loss_test ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_role_model_g_cos_loss_train ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_role_model_g_mag_loss_test ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_role_model_g_mag_loss_train ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_role_model_loss_test █▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_role_model_loss_train █▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_role_model_mean_pred_loss_test █▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_role_model_mean_pred_loss_train █▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_role_model_std_loss_test ▁█▄▃▁▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_role_model_std_loss_train █▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\n", "\u001b[34m\u001b[1mwandb\u001b[0m: duration_batch_test ▄▁▄▄▄▄▅▄▃▄▃▄▂▂▂▃▃▃▆▃▂█▃▃▂▃▃▄▃\n", "\u001b[34m\u001b[1mwandb\u001b[0m: duration_batch_train ▆▃▄▄▃▂▃▄▃▃▂▃█▁▃▁▃▄▃█▃█▄▅▄▄▄▄▅\n", "\u001b[34m\u001b[1mwandb\u001b[0m: duration_size_test ▄▁▄▄▄▄▅▄▃▄▃▄▂▂▂▃▃▃▆▃▂█▃▃▂▃▃▄▃\n", "\u001b[34m\u001b[1mwandb\u001b[0m: duration_size_train ▆▃▄▄▃▂▃▄▃▃▂▃█▁▃▁▃▄▃█▃█▄▅▄▄▄▄▅\n", "\u001b[34m\u001b[1mwandb\u001b[0m: duration_test ▄▁▄▄▄▄▅▄▃▄▃▄▂▂▂▃▃▃▆▃▂█▃▃▂▃▃▄▃\n", "\u001b[34m\u001b[1mwandb\u001b[0m: duration_train ▆▃▄▄▃▂▃▄▃▃▂▃█▁▃▁▃▄▃█▃█▄▅▄▄▄▄▅\n", "\u001b[34m\u001b[1mwandb\u001b[0m: n_batch_test ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\n", "\u001b[34m\u001b[1mwandb\u001b[0m: n_batch_train ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\n", "\u001b[34m\u001b[1mwandb\u001b[0m: n_size_test ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\n", "\u001b[34m\u001b[1mwandb\u001b[0m: n_size_train ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\n", "\u001b[34m\u001b[1mwandb\u001b[0m: \n", "\u001b[34m\u001b[1mwandb\u001b[0m: Run summary:\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_loss_test 0.00854\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_loss_train 0.0005\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_non_role_model_embed_loss_test 0.0\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_non_role_model_embed_loss_train 0.0\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_non_role_model_g_cos_loss_test 0.0\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_non_role_model_g_cos_loss_train 0.0\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_non_role_model_g_mag_loss_test 0.0\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_non_role_model_g_mag_loss_train 0.0\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_pred_std_test 0.06783\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_pred_std_train 0.19725\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_role_model_g_cos_loss_test 0.0\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_role_model_g_cos_loss_train 0.0\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_role_model_g_mag_loss_test 0.0\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_role_model_g_mag_loss_train 0.0\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_role_model_loss_test 0.00854\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_role_model_loss_train 0.0005\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_role_model_mean_pred_loss_test 0.00028\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_role_model_mean_pred_loss_train 0.0\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_role_model_std_loss_test 0.21736\n", "\u001b[34m\u001b[1mwandb\u001b[0m: avg_role_model_std_loss_train 0.0134\n", "\u001b[34m\u001b[1mwandb\u001b[0m: duration_batch_test 0.97813\n", "\u001b[34m\u001b[1mwandb\u001b[0m: duration_batch_train 1.25008\n", "\u001b[34m\u001b[1mwandb\u001b[0m: duration_size_test 0.24453\n", "\u001b[34m\u001b[1mwandb\u001b[0m: duration_size_train 0.31252\n", "\u001b[34m\u001b[1mwandb\u001b[0m: duration_test 19.56256\n", "\u001b[34m\u001b[1mwandb\u001b[0m: duration_train 100.00627\n", "\u001b[34m\u001b[1mwandb\u001b[0m: n_batch_test 20\n", "\u001b[34m\u001b[1mwandb\u001b[0m: n_batch_train 80\n", "\u001b[34m\u001b[1mwandb\u001b[0m: n_size_test 80\n", "\u001b[34m\u001b[1mwandb\u001b[0m: n_size_train 320\n", "\u001b[34m\u001b[1mwandb\u001b[0m: \n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\u001b[34m\u001b[1mwandb\u001b[0m: You can sync this run to the cloud by running:\n", "\u001b[34m\u001b[1mwandb\u001b[0m: \u001b[1mwandb sync /kaggle/working/eval/treatment/tvae/2/wandb/offline-run-20240229_042943-h1x5mo8p\u001b[0m\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\u001b[34m\u001b[1mwandb\u001b[0m: Find logs at: \u001b[35m\u001b[1m./wandb/offline-run-20240229_042943-h1x5mo8p/logs\u001b[0m\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Eval loss {'role_model': 'tvae', 'n_size': 399, 'n_batch': 100, 'role_model_metrics': {'avg_loss': 0.002340294746186043, 'avg_g_mag_loss': 0.022517556619054607, 'avg_g_cos_loss': 0.06498512633163529, 'pred_duration': 2.4336907863616943, 'grad_duration': 4.428678035736084, 'total_duration': 6.862368822097778, 'pred_std': 0.06654548645019531, 'std_loss': 0.0213878583163023, 'mean_pred_loss': 1.473031716159312e-05, 'pred_rmse': 0.04837659373879433, 'pred_mae': 0.035608064383268356, 'pred_mape': 0.06660553067922592, 'grad_rmse': 0.3612377345561981, 'grad_mae': 0.13169732689857483, 'grad_mape': 1.3246768712997437}, 'non_role_model_metrics': {'avg_loss': 0, 'avg_g_mag_loss': 0, 'avg_g_cos_loss': 0, 'avg_pred_duration': 0, 'avg_grad_duration': 0, 'avg_total_duration': 0, 'avg_pred_std': 0, 'avg_std_loss': 0, 'avg_mean_pred_loss': 0}, 'avg_metrics': {'avg_loss': 0.002340294746186043, 'avg_g_mag_loss': 0.022517556619054607, 'avg_g_cos_loss': 0.06498512633163529, 'avg_pred_duration': 2.4336907863616943, 'avg_grad_duration': 4.428678035736084, 'avg_total_duration': 6.862368822097778, 'avg_pred_std': 0.06654548645019531, 'avg_std_loss': 0.0213878583163023, 'avg_mean_pred_loss': 1.473031716159312e-05}, 'min_metrics': {'avg_loss': 0.002340294746186043, 'avg_g_mag_loss': 0.022517556619054607, 'avg_g_cos_loss': 0.06498512633163529, 'pred_duration': 2.4336907863616943, 'grad_duration': 4.428678035736084, 'total_duration': 6.862368822097778, 'pred_std': 0.06654548645019531, 'std_loss': 0.0213878583163023, 'mean_pred_loss': 1.473031716159312e-05, 'pred_rmse': 0.04837659373879433, 'pred_mae': 0.035608064383268356, 'pred_mape': 0.06660553067922592, 'grad_rmse': 0.3612377345561981, 'grad_mae': 0.13169732689857483, 'grad_mape': 1.3246768712997437}, 'model_metrics': {'tvae': {'avg_loss': 0.002340294746186043, 'avg_g_mag_loss': 0.022517556619054607, 'avg_g_cos_loss': 0.06498512633163529, 'pred_duration': 2.4336907863616943, 'grad_duration': 4.428678035736084, 'total_duration': 6.862368822097778, 'pred_std': 0.06654548645019531, 'std_loss': 0.0213878583163023, 'mean_pred_loss': 1.473031716159312e-05, 'pred_rmse': 0.04837659373879433, 'pred_mae': 0.035608064383268356, 'pred_mape': 0.06660553067922592, 'grad_rmse': 0.3612377345561981, 'grad_mae': 0.13169732689857483, 'grad_mape': 1.3246768712997437}}}\n" ] } ], "source": [ "import torch\n", "from ml_utility_loss.loss_learning.estimator.pipeline import train, train_2\n", "from ml_utility_loss.loss_learning.estimator.process_simple import train_epoch, eval as _eval\n", "from ml_utility_loss.params import GradientPenaltyMode\n", "from ml_utility_loss.util import clear_memory\n", "import time\n", "#torch.autograd.set_detect_anomaly(True)\n", "\n", "clear_memory()\n", "\n", "opt = params[\"Optim\"](model.parameters())\n", "loss = train_2(\n", " [train_set, val_set, test_set],\n", " preprocessor=preprocessor,\n", " whole_model=model,\n", " optim=opt,\n", " log_dir=\"logs\",\n", " checkpoint_dir=\"checkpoints\",\n", " verbose=True,\n", " allow_same_prediction=False,\n", " wandb=wandb,\n", " study_name=study_name,\n", " **params\n", ")" ] }, { "cell_type": "code", "execution_count": 25, "id": "9b514a07", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T05:32:09.773143Z", "iopub.status.busy": "2024-02-29T05:32:09.772841Z", "iopub.status.idle": "2024-02-29T05:32:09.777116Z", "shell.execute_reply": "2024-02-29T05:32:09.776290Z" }, "papermill": { "duration": 0.0282, "end_time": "2024-02-29T05:32:09.779164", "exception": false, "start_time": "2024-02-29T05:32:09.750964", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "model = loss[\"whole_model\"]\n", "opt = loss[\"optim\"]" ] }, { "cell_type": "code", "execution_count": 26, "id": "331a49e1", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T05:32:09.820437Z", "iopub.status.busy": "2024-02-29T05:32:09.819934Z", "iopub.status.idle": "2024-02-29T05:32:10.291755Z", "shell.execute_reply": "2024-02-29T05:32:10.290586Z" }, "papermill": { "duration": 0.496243, "end_time": "2024-02-29T05:32:10.294946", "exception": false, "start_time": "2024-02-29T05:32:09.798703", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "import torch\n", "from copy import deepcopy\n", "\n", "torch.save(deepcopy(model.state_dict()), \"model.pt\")\n", "torch.save(deepcopy(opt.state_dict()), \"optim.pt\")" ] }, { "cell_type": "code", "execution_count": 27, "id": "123b4b17", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T05:32:10.343563Z", "iopub.status.busy": "2024-02-29T05:32:10.342710Z", "iopub.status.idle": "2024-02-29T05:32:10.631486Z", "shell.execute_reply": "2024-02-29T05:32:10.630522Z" }, "papermill": { "duration": 0.314088, "end_time": "2024-02-29T05:32:10.634360", "exception": false, "start_time": "2024-02-29T05:32:10.320272", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "history = loss[\"history\"]\n", "history.to_csv(\"history.csv\")\n", "history[[\"avg_loss_train\", \"avg_loss_test\"]].plot()" ] }, { "cell_type": "code", "execution_count": 28, "id": "2586ba0a", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T05:32:10.685003Z", "iopub.status.busy": "2024-02-29T05:32:10.684611Z", "iopub.status.idle": "2024-02-29T05:34:04.939597Z", "shell.execute_reply": "2024-02-29T05:34:04.938519Z" }, "papermill": { "duration": 114.280164, "end_time": "2024-02-29T05:34:04.942172", "exception": false, "start_time": "2024-02-29T05:32:10.662008", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "\n", "from ml_utility_loss.loss_learning.estimator.pipeline import eval\n", "#eval_loss = loss[\"eval_loss\"]\n", "\n", "batch_size = params[\"batch_size_low\"] if \"batch_size_low\" in params else params[\"batch_size\"]\n", "\n", "eval_loss = eval(\n", " test_set, model,\n", " batch_size=batch_size,\n", ")" ] }, { "cell_type": "code", "execution_count": 29, "id": "187137f6", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T05:34:04.987806Z", "iopub.status.busy": "2024-02-29T05:34:04.987011Z", "iopub.status.idle": "2024-02-29T05:34:05.008253Z", "shell.execute_reply": "2024-02-29T05:34:05.007293Z" }, "papermill": { "duration": 0.046226, "end_time": "2024-02-29T05:34:05.010204", "exception": false, "start_time": "2024-02-29T05:34:04.963978", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
avg_g_cos_lossavg_g_mag_lossavg_lossgrad_durationgrad_maegrad_mapegrad_rmsemean_pred_losspred_durationpred_maepred_mapepred_rmsepred_stdstd_losstotal_duration
tvae0.0683190.0739650.002344.4347470.1316971.3246770.3612380.0000152.4250930.0356080.0666060.0483770.0665450.0213886.85984
\n", "
" ], "text/plain": [ " avg_g_cos_loss avg_g_mag_loss avg_loss grad_duration grad_mae \\\n", "tvae 0.068319 0.073965 0.00234 4.434747 0.131697 \n", "\n", " grad_mape grad_rmse mean_pred_loss pred_duration pred_mae \\\n", "tvae 1.324677 0.361238 0.000015 2.425093 0.035608 \n", "\n", " pred_mape pred_rmse pred_std std_loss total_duration \n", "tvae 0.066606 0.048377 0.066545 0.021388 6.85984 " ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "\n", "metrics = pd.DataFrame(eval_loss[\"model_metrics\"]).T\n", "metrics.to_csv(\"eval.csv\")\n", "metrics" ] }, { "cell_type": "code", "execution_count": 30, "id": "123d305b", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T05:34:05.052398Z", "iopub.status.busy": "2024-02-29T05:34:05.052094Z", "iopub.status.idle": "2024-02-29T05:34:05.621766Z", "shell.execute_reply": "2024-02-29T05:34:05.620695Z" }, "papermill": { "duration": 0.594222, "end_time": "2024-02-29T05:34:05.624883", "exception": false, "start_time": "2024-02-29T05:34:05.030661", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "from ml_utility_loss.util import clear_memory\n", "clear_memory()" ] }, { "cell_type": "code", "execution_count": 31, "id": "a3eecc2a", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T05:34:05.672499Z", "iopub.status.busy": "2024-02-29T05:34:05.672189Z", "iopub.status.idle": "2024-02-29T05:36:07.804471Z", "shell.execute_reply": "2024-02-29T05:36:07.803670Z" }, "papermill": { "duration": 122.15973, "end_time": "2024-02-29T05:36:07.806970", "exception": false, "start_time": "2024-02-29T05:34:05.647240", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Caching in ../../../../treatment/_cache_test/tvae/all inf False\n" ] } ], "source": [ "#\"\"\"\n", "from ml_utility_loss.loss_learning.estimator.process import pred, pred_2\n", "from ml_utility_loss.util import stack_samples\n", "\n", "#samples = test_set[list(range(len(test_set)))]\n", "#y = {m: pred(model[m], s) for m, s in samples.items()}\n", "y = pred_2(model, test_set, batch_size=batch_size)\n", "#\"\"\"" ] }, { "cell_type": "code", "execution_count": 32, "id": "6ab51db8", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T05:36:07.853517Z", "iopub.status.busy": "2024-02-29T05:36:07.853197Z", "iopub.status.idle": "2024-02-29T05:36:07.870127Z", "shell.execute_reply": "2024-02-29T05:36:07.869295Z" }, "papermill": { "duration": 0.042527, "end_time": "2024-02-29T05:36:07.871962", "exception": false, "start_time": "2024-02-29T05:36:07.829435", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "import os\n", "import pandas as pd\n", "from ml_utility_loss.util import transpose_dict\n", "\n", "os.makedirs(\"pred\", exist_ok=True)\n", "y2 = transpose_dict(y)\n", "for k, v in y2.items():\n", " df = pd.DataFrame(v)\n", " df.to_csv(f\"pred/{k}.csv\")" ] }, { "cell_type": "code", "execution_count": 33, "id": "d81a30f1", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T05:36:07.914664Z", "iopub.status.busy": "2024-02-29T05:36:07.914365Z", "iopub.status.idle": "2024-02-29T05:36:07.919622Z", "shell.execute_reply": "2024-02-29T05:36:07.918622Z" }, "papermill": { "duration": 0.028815, "end_time": "2024-02-29T05:36:07.921727", "exception": false, "start_time": "2024-02-29T05:36:07.892912", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'tvae': 0.5567177837355095}\n" ] } ], "source": [ "print({k: sum(v[\"pred\"])/len(v[\"pred\"]) for k, v in y.items()})" ] }, { "cell_type": "code", "execution_count": 34, "id": "3b3ff322", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T05:36:07.965945Z", "iopub.status.busy": "2024-02-29T05:36:07.965677Z", "iopub.status.idle": "2024-02-29T05:36:08.337152Z", "shell.execute_reply": "2024-02-29T05:36:08.336249Z" }, "papermill": { "duration": 0.396392, "end_time": "2024-02-29T05:36:08.339358", "exception": false, "start_time": "2024-02-29T05:36:07.942966", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from ml_utility_loss.loss_learning.visualization import plot_pred_density_2\n", "\n", "_ = plot_pred_density_2(y)" ] }, { "cell_type": "code", "execution_count": 35, "id": "e79e4b0f", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T05:36:08.385465Z", "iopub.status.busy": "2024-02-29T05:36:08.385142Z", "iopub.status.idle": "2024-02-29T05:36:08.746209Z", "shell.execute_reply": "2024-02-29T05:36:08.745171Z" }, "papermill": { "duration": 0.38658, "end_time": "2024-02-29T05:36:08.748418", "exception": false, "start_time": "2024-02-29T05:36:08.361838", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAASIAAAEqCAYAAACx7V3bAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABCKElEQVR4nO2deXxTddb/Pzd72izd95QWyiq7CAKiIIwIbuiMMi4I4jKOdeZRfjyjzIKj82h1HnVgZnzQcQaqI4jL4DajIuIAgwgiUARBlu50oWvSptlz7++Pm6RNm7ZJmuQmzXm/Xnkluffm5tw2+eR8z/ec82U4juNAEAQhICKhDSAIgiAhIghCcEiICIIQHBIigiAEh4SIIAjBISEiCEJwSIgIghAcEiKCIASHhIggCMEhISIIQnAEFaKCggIwDNPnVlxcLKRZBEFEGImQb3748GE4nU7P85MnT+IHP/gBbr31VgGtIggi0jDRVPT6yCOP4J///CfOnTsHhmEGPZ5lWdTX10OtVvt1PEEQkYXjOHR2diInJwciUf8DMEE9op7YbDa88cYbWLNmTb+iYrVaYbVaPc/r6uowYcKESJlIEESQ1NbWIi8vr9/9USNE77//PvR6PVatWtXvMSUlJXjyySf7bK+trYVGowmjdQRBBENHRwd0Oh3UavWAx0XN0Gzx4sWQyWT46KOP+j2mt0fkvkiDwUBCRBBRSEdHB7Ra7aDf0ajwiKqrq/H5559jx44dAx4nl8shl8sjZBVBEJEiKvKItmzZgoyMDFx33XVCm0IQhAAILkQsy2LLli1YuXIlJJKocNAIgogwgn/zP//8c9TU1GD16tVhOT/HcXA4HF75SkToEYvFkEgklEZBBIXgQnTNNdcgXPFym82GhoYGmEymsJyf8CYhIQHZ2dmQyWRCm0LEGIILUbhgWRaVlZUQi8XIycmBTCajX+swwXEcbDYbmpubUVlZidGjRw+YvEYQvRm2QmSz2cCyLHQ6HRISEoQ2Z9ijVCohlUpRXV0Nm80GhUIhtEkBcaS6DecuGlGYlojLClIgEtGPViQZ9j9b9MscOWL5b61LTkBjhwUHylux92yz0ObEHbH7ySGIEJKhUWDR+EwAQFmtHo0Gi8AWxRckRETc8n1jh5fgTMzVYnw2n/17tKZdKLPiEhKiKGT+/Pl45JFHhDZjWGOxO/Hv75ux/XANGgxmz/bpI5IAAOebjLDYKeUjUpAQEXHJsRo9LHYnUhJlyFR3B9Yz1AqkqWRwshyqWrsEtDC+ICGKMlatWoW9e/di48aNno6VeXl52LRpk9dxx44dg0gkQnV1NQDgxRdfxKRJk5CYmAidToeHHnoIRqPR6zX79+/HvHnzoFQqodPp8POf/xxdXfH3ZbPYnZ6h1+UjU/vMkBWmqQAATR3WPq8lwkNcCpHNwfZ7czhZv4+1+3FsoGzcuBGzZ8/G/fffj4aGBjQ0NOD222/Htm3bvI7bunUr5s6dixEjRgDgZ6z++Mc/4rvvvsNrr72GL774Ar/4xS88x5eXl+Paa6/FD3/4Q3z77bd46623sH//fjz88MMB2xjrfFdvgM3BIk0lw+gMVZ/9U3RarJ5biCvHpAtgXXwSNW1AgmGgFgMWiwWVlZUoLCzsk9Pyh11n+z1nYVoilk3L9Tz/8xfnYHf6/hPlJStx6wyd5/nLe8thtnnHFR79wRi/r8fN/PnzMXXqVGzYsAEAUFZWhunTp6Oqqgr5+flgWRb5+fn49a9/jQcffNDnOd599108+OCDaGlpAQDcd999EIvFeOWVVzzH7N+/H1dddRW6urpCkvcz0N88WmBZDqUHqmAw27FofCYm5WmFNmlY428bkLj0iGKNqVOnYvz48R6vaO/evWhqavLq7f35559j4cKFyM3NhVqtxooVK9Da2uopbzl+/DhKS0uhUqk8t8WLF3sy0OOFytYuGMx2KKRijMseuFkXETmGbWb1QBQvKOp3X++E2geuHNXvsb0rRlbPLRyKWQNy5513Ytu2bXj88cexbds2XHvttUhNTQUAVFVV4frrr8dPf/pTPP3000hJScH+/ftx7733wmazISEhAUajET/5yU/w85//vM+58/Pzw2Z3tOFwclArJBibpYZU3P/vcE2rCcdq25GukmNOUVoELYxP4lKIZBL/HcFwHTvgeWSyPt0C7rjjDvz617/GkSNH8O677+Lll1/27Dty5AhYlsULL7zgyW5+++23vV4/ffp0nDp1CkVF/YtwPDA2S42iDBUc7MDxO5PdgYrmLprCjxA0NItCCgoKcOjQIVRVVaGlpQUsy6KgoABz5szBvffeC6fTiRtvvNFzfFFREex2O/70pz+hoqICf//7372ECgAee+wxHDhwAA8//DDKyspw7tw5fPDBB3EZrBaLGMgl4gGPSU3kO4G2GG1h6w5BdENCFIWsXbsWYrEYEyZMQHp6OmpqagDww7Pjx4/j5ptvhlKp9Bw/ZcoUvPjii3juuecwceJEbN26FSUlJV7nnDx5Mvbu3YuzZ89i3rx5mDZtGtavX4+cnJyIXptQcByHmlYTnKx/opKSKIOIYWBzsOi0OsJsHRGXs2ZEeIjmv3lThwVbD9VAo5Ri1ZwCiP2orn/9qyq0Gm24eVouCtISI2Dl8INmzQiiB2cv8smdWRqFXyIEdA/PWrsosTHckBARcUF5My9ERT4SGPsjVcV3mmwx2sJiE9ENCREx7GnrsqGtywaxiMGIVP+b5CUnyEI2E0oMTFxO3xPxRYXLG8pLVkIhHXi2rCejM1QYk6miFsMRQHC5r6urw1133YXU1FQolUpMmjQJ33zzjdBmEcMI97BsVLr/wzIAEIkYEqEIIahH1N7ejrlz52LBggX45JNPkJ6ejnPnziE5OVlIs4hhhNXhRKOBDzbTzFf0IqgQPffcc9DpdNiyZYtnW2Fh+MokiPhDKhJh+WU6NHZYoFVK/X+h0w6Uf4Hy08dQxyYj//JbUJBN1fjhQtCh2YcffogZM2bg1ltvRUZGBqZNm4ZXX31VSJOIYYZIxCBLq8BUXZL/L+I44NQHQN1ROM0dkLadA/PdDn47ERYEFaKKigps2rQJo0ePxs6dO/HTn/4UP//5z/Haa6/5PN5qtaKjo8PrRhAh5+JJoOUcIBLDVLAITkYKtr2W306EBUGFiGVZTJ8+Hc888wymTZuGBx54APfff3+fOik3JSUl0Gq1nptOp/N5HEEAgNnmxK5TF3GmsdP/ejHWCVT+h39cMA+ivOmo10yB1eEELtAkSrgQVIiys7MxYcIEr23jx4/31Fb1Zt26dTAYDJ5bbW1tJMyMONHWPD/a7PGXxg4LTtYZcLCi1f/Zr6ZTgMUAyFVA3gyo5BJcVE2AlWWAzkagqyW8Rscpggar586dizNnznhtO3v2rKf9aW/kcjnkcnkkTIt5bDZb3K9B716dI1MTQN1b/TH+PvdSQCyFSuGEQ6xAiyQbgBFoPgMkUn+iUCOoR/Too4/i4MGDeOaZZ3D+/Hls27YNf/nLX1BcXCykWYLiq3l+eXk57r33XhQWFkKpVGLs2LHYuHFjn9ctW7YMTz/9NHJycjB27FgAwIEDBzB16lQoFArMmDED77//PhiGQVlZmee1J0+exJIlS6BSqZCZmYkVK1Z4Wsz6sqeqqipSf44hcbGDX7MsW+unEBmbAUMdwIiArMkAALWcn2lrlOWD5TigrSIstsY7gnpEl112Gd577z2sW7cOTz31FAoLC7Fhwwbceeed4XlDjuOnZSONWNq3nWM/bNy4EWfPnsXEiRPx1FNPAQCSk5ORl5eHd955B6mpqThw4AAeeOABZGdn47bbbvO8dvfu3dBoNNi1axcAvvL5hhtuwNKlS7Ft2zZUV1f3GWLp9XpcffXVuO+++/CHP/wBZrMZjz32GG677TZ88cUXPu1JT4/+aWyO4zz5Q1n+ClHDcf4+rYgfmgFQSEVQySWQyArgsJ+ErLOB/wyJA0gFIAZF8BKP66+/Htdff31k3sxpB/7zQmTeqyfz/h8g8W+YpNVqIZPJkJCQgKysLM/2J5980vO4sLAQX331Fd5++20vIUpMTMRf//pXz5Ds5ZdfBsMwePXVV6FQKDBhwgTU1dXh/vvv97zmz3/+M6ZNm4ZnnnnGs23z5s3Q6XQ4e/YsxowZ49OeaEdvssNid0IiYpCm8mM4z3FA8/f8Y5c3BAAMw+D+K0fy+7/aB1iNQEcdkFwQHsPjFMGFiPCPl156CZs3b0ZNTQ3MZjNsNhumTp3qdcykSZO84kJnzpzB5MmTvXoDzZw50+s1x48fx7///W+oVH3LH8rLyzFmTOCrkEQDFzv5YVmGRu5f24+OOsDayf9gJPtIqmUYQKsDmk4D+loSohATX0IklvLeiRDvOwS2b9+OtWvX4oUXXsDs2bOhVqvxv//7vzh06JDXcYmJgZcwGI1G3HDDDXjuuef67MvOzg7aZqFp7+KH4OlqPyc33N5Q6mhA3M/XQpPLC5HxYggsJHoSX0LEMH4PkYSkd/P8L7/8EnPmzMFDDz3k2VZeXj7oecaOHYs33ngDVqvVM9t4+PBhr2OmT5+Of/zjHygoKIBE4vvj4KuZf7Qze1Qqpui08KszLMfxs2EAkD6uz+7v6g04Wt2OcQoZLgP4aXwipAhefU/0pXfz/NGjR+Obb77Bzp07cfbsWfzmN7/pIyi+uOOOO8CyLB544AGcPn0aO3fuxPPPPw8Anrya4uJitLW14fbbb8fhw4dRXl6OnTt34p577vGIj69m/rFAgkwCldyP39qOesDSwXuuKX2HZQ4nhxajDRc512KM1k7AFn9LdYcTEqIopHfz/MWLF+OWW27B8uXLMWvWLLS2tnp5R/2h0Wjw0UcfoaysDFOnTsWvfvUrrF+/HgA8caOcnBx8+eWXcDqduOaaazBp0iQ88sgjSEpK8ixN1F8z/2FDi8sbSi3yOYxWKXgx63SIgIQUfiMNz0IKNc+PM7Zu3Yp77rkHBoPBayWQUBAtf/NGgwVfVbRAl5yAGQUpg7/g61f5jOkJNwGZE/rsbjCYsf3rWqgVEtyXchxo+h4oWgjoZvo4GdETf5vnx1eMKA55/fXXMXLkSOTm5uL48eOeHKFQi1A00dhhQVWLCSKGwYzBDja18SLEiICUkT4PSZDxXxOzzQlOmQIGAEytoTQ57iEhGuY0NjZi/fr1aGxsRHZ2Nm699VY8/fTTQpsVVlqNfCKjX/lDra6gf5IOkPr24hJlfHtZB8vBJk+BHKCasxBDQjTM+cUvfoFf/OIXQpsRUdq6+FU3UhL9mCFtPc/fp/a/FLdELIJcKoLVzsIk0fJCRB5RSCEhIoYdehOfQ5ScMIgQOayA3hV4H0CIACA1UQabg4VdnsRvsJsBmwmQ+b8qCNE/JETEsMLmYGF0LRGdlDBIImlbBcCx/ExYwsBB7eWX5Xc/UWj46X5TKwlRiBj20/cxPCkYc0TD31pv5odlSpl48KWD/BiW+STB1QaEhmchY9gKkVTK/xqaTCaBLYkf3H9r999eCMw2J2QSEZIH84ZYtjtQHagQKV2rzJjbAzeQ8MmwHZqJxWIkJSWhqakJAJCQkEBrVIUJjuNgMpnQ1NSEpKQkiMX+L2IYakakJuKh+aNgdw7inXXW83EeiRzQ5g163u8bO3C4sg26lATMV7oyrC2GEFhMAMNYiAB42la4xYgIL0lJSVHRKoRhGMgkg/zotJzj71NGAqLBhdNd5qFWSIGUJH6jRT8kO4luhrUQMQyD7OxsZGRkwG4XoCFaHCGVSgX1hAImwPhQoqtmrcvmABTkEYWaYS1EbsRicWx9SYigeetwDRRSMRaOz+y/4NWsd2VTM0DqKL/Om+BKajRZnYAiid9oMwEOW0x0dIh2hm2wmog/LHYn6vUWVDR3QSoeYGjmDlJr8wCpf6UuHiGyOcFJ5N1Z2OQVhQQSImLY0GHmh98JMjHkkgE84FZXfCiA2TJ3vRnLcbA62B7DM30wphK9ICEihg0dFl6INAOtcR9ANnVPxCIGMgn/dTHZegzPyCMKCXERIyLigw4Ln1GtUQwgRO1V/GquymQgITWg86cmymB3snCyXLdHZNYHZyzhhaAe0W9/+1vPWlnu27hxfVt1EoQ/uIdmGuUAv689Z8sCzCv78cx8rJhdwPfBVibxG2loFhIE94guueQSfP75557n/fVNJojBGNQj4rgeQuTfbFm/yHu0jSWGjODfeolEEhVJcETsI2b4OI5a0c/HuqOen3KXyICkfN/H+Itczd+TEIUEwYXo3LlzyMnJgUKhwOzZs1FSUoL8fN8fEqvVCqvV6nne0dERKTOJGOC6ydkDF966vSE/s6l7c7xWj+MX9BiTqcbleS4hsnXxMacgzkd0I2iMaNasWSgtLcWnn36KTZs2obKyEvPmzUNnp+9fmZKSEmi1Ws9Np9NF2GIi2nHHGn0SbLW9C7uTRavRxvc7kioBket3nLyiISOoEC1ZsgS33norJk+ejMWLF+Pjjz+GXq/H22+/7fP4devWwWAweG61tbURtpiIWaydgNFVc9hPb+rBcLcVsdidfKCbhmchQ/ChWU+SkpIwZswYnD9/3ud+uVzuWSiQIHpS3dqFfedakJ+SgKvGpPc9oK2Cv1dnAbLAV8QF+B5HAGC2uxablKv5ViAkREMmqhIajUYjysvLY3qpY0IY2k12tHRaPVP4fXAL0RBmy5Quj8hs6yFEAAlRCBBUiNauXYu9e/eiqqoKBw4cwM033wyxWIzbb79dSLOIGKQ7h8jH1D3LAm2V/OMgh2VADyGykxCFGkGHZhcuXMDtt9+O1tZWpKen44orrsDBgweRnu7DtSaIAfCUd/iauu+o40s7pApAnRP0e7iHZjYHC4eThUTuWjDQSrO3Q0VQIdq+fbuQb08MI4yuZEafOUTuYVlyISAKfhAgd+UoyaVi2J0cJB6PiIRoqERVsJoggsW9codK7mNo5haiIQzLAD414L55Pc5BQ7OQEVXBaoIIBpbl0GXl4zaJ8l6JhVYj0NnIPx6iEPVB3iupkQgaEiIi5rE5WSQnSqGQipEo6+Xkt7uC1OpMQK4K7RvLEgFGxNew2YyhPXecQUMzIuZRSMW4e3aB752eYdkQi1xdHChvwfkmI6bnJ2NirpYXN0sH73m5W4MQAUMeETF84bge0/aFITml2eZEq9GGTldwHDKXl0Ue0ZAgISKGL13N/NplYimgyQ3JKT1lHg5XTMidpU1CNCRoaEbEPF9XtuHMxU5MztViii6pe0d7FX+flB+y6niFlP/ttrqTGj0eUVdIzh+vkEdExDxtXTa0dFphc7LeO9qr+fukESF7L0Wf7GqXEFnJIxoKJEREzNOdQ9TDwWedgN4lRMmhFyKL3SV6nqEZeURDgYSIiHm6fAlRZwPgdPUNUmWG7L28WoEAFKwOESREREzDcZxvj6hnfCjAJvkDoZSKoZJLuvOVSIhCAgWriZjG6mBhc/DDpEQvIXIPywpC+n4piTLcf2WPDG3P0MzEpwuEUPTiCfKIiJjGPSyTS0WeBRDhtPMV90DIhagPskRefDgWsJvC+17DGBIiIqZxshzSVDKkJsq6Nxpq+WC1XM0vpBhORGI+DgXQzNkQoKEZEdNkaBRY0bu8o+ewLAxDpX9+W4+2LhuuvSQLGRoF7xXZTK44UegC4/EEeUTE8MPgWlRhqGuX9Xd6sx2tRhu6bJTUGCpIiIjhhdPe3fZDmxeWt1BIaAo/1NDQjIhpPj3ZgGajDVcUpaEwLZFfzZV18hnPYYoP9c0loqTGoUIeERHTtLrKOzwrvLqHZdq8sE2lu+vNurOrySMaKiREREzTJ6vacIG/14YnPgT4qMCnerMhEzVC9Oyzz4JhGDzyyCNCm0LECM4eLWJVCgm/bJBHiMITHwJ6CJGNhmahIighqqioCKkRhw8fxiuvvILJkyeH9LzE8MZd2iEWMfyaY8aLfLBaIgcSw7ckVYKML/PwJFDS0GzIBCVERUVFWLBgAd544w1YLJYhGWA0GnHnnXfi1VdfRXJymJPPiGGFe1iWKJeAYZge8SHdkJYNGozx2Rrcf+VILBzvyhlyC5HTzq+fRgRMUP+to0ePYvLkyVizZg2ysrLwk5/8BF9//XVQBhQXF+O6667DokWLBj3WarWio6PD60bEL26PSO2JD/UIVEcSiYzvAgnQ8CxIghKiqVOnYuPGjaivr8fmzZvR0NCAK664AhMnTsSLL76I5uZmv86zfft2HD16FCUlJX4dX1JSAq1W67npdLpgzCeGCSIGSFPJkJwo4wtO3fGhJAE+FzQ8GxJD8l8lEgluueUWvPPOO3juuedw/vx5rF27FjqdDnfffTcaGhr6fW1tbS3+67/+C1u3boVCofDr/datWweDweC51dbWDsV8IsYpylBjxewC/GBCJmBq48ssRBJAnR3W97XYnXj7cC1e/6qqO22gZxU+ETBDEqJvvvkGDz30ELKzs/Hiiy9i7dq1KC8vx65du1BfX4+bbrqp39ceOXIETU1NmD59OiQSCSQSCfbu3Ys//vGPkEgkcDr7Llgnl8uh0Wi8bgQBADDU8PeanJD1p+4PqViEOr0ZrUYbrA7q1BgKgsqsfvHFF7FlyxacOXMGS5cuxeuvv46lS5dC5AoQFhYWorS0FAUFBf2eY+HChThx4oTXtnvuuQfjxo3DY489BrE4vB8mYpihj1x8SCxiIJOIYHOwsNid/HQ+Dc2GRFBCtGnTJqxevRqrVq1CdrZvNzgjIwN/+9vf+j2HWq3GxIkTvbYlJiYiNTW1z3aC8MXWQ9VgWQ5LJmUjLcLxIblHiMgjCgVBCdGuXbuQn5/v8YDccByH2tpa5OfnQyaTYeXKlSExkiB6w3Ec2ow2OFgOUocRsBj45Z9DtH7ZYChlYnRaHN2reZAQDYmghGjUqFFoaGhARkaG1/a2tjYUFhb6jO/4w549e4J6HRF/WOwsHCwfKFaZXZMiqgw+mTECUAV+aAkqWO2ZKeiF0Wj0ewaMIIZCp9UOgM9yFndEftqeKvBDS0Ae0Zo1awAADMNg/fr1SEhI8OxzOp04dOgQpk6dGlIDCcIX7hqzRLnEO6M6QiTKxVArJBC5K/xlru+CnZroB0NAQnTs2DEAvEd04sQJyGTdfYJlMhmmTJmCtWvXhtZCgvCB0cJnVSdJ7EBnC78xghnV88dmYP7YHqEJqcsjYp2A3dwtTIRfBCRE//73vwHw0+wbN26kPB5CMNzlHSkOVxZ/Qmr38EgIxBJAqgDsFn54RkIUEEEFq7ds2RJqOwgiIORSEdJUMqSxF/kNQpR19EamcgmREUD4qv+HI34L0S233ILS0lJoNBrccsstAx67Y8eOIRtGEAMxPT8Z0/OTgSN7ASsiXujaaLBg79kmqORSXDfZlUsnSwS6WihgHQR+C5FWq+VbLbgeE4TgOGw9GuVH1iNychzq9RYkJfRIVaGZs6DxW4h6DsdoaEZEBZ31/AqrcjWgiOyPo0LSq2810EOIKJcoUILKIzKbzTCZuquMq6ursWHDBnz22WchM4wg+sPuZLFpTzk+O3AYTpbj40MRni535xFZHU6wrLsC35XUSEtPB0xQQnTTTTfh9ddfBwDo9XrMnDkTL7zwAm666SZs2rQppAYSRG+6rA5Y7E4whgt8I8ZIN0JDtxBxHKgCPwQE3aFx3rx5AIB3330XWVlZqK6uxuuvv44//vGPITWQIHpjtDrAcE6kOJvBgAnrih394a7AB3xlV9PQLFCCEiKTyQS1Wg0A+Oyzz3DLLbdAJBLh8ssvR3V1dUgNJIjeGK0OJNhaoRCxfO5OYpogdvRZVoiWng6aoJvnv//++6itrcXOnTtxzTXXAACampooyZEIO11WBzTWBt4j0UY+PuRG5SrzcLK9ujTazXyGNeE3QSU0rl+/HnfccQceffRRLFy4ELNnzwbAe0fTpk0LqYEE0ZtOiwNq60XI5CJB4kNull/Wa0goUfKtSDiWD1jL1cIYFoMEJUQ/+tGPcMUVV6ChoQFTpkzxbF+4cCFuvvnmkBlHEL4wWuzQWhshSxBFPH9oQEQivrTDauSHZyREfhOUEAFAVlYWsrKyvLbNnDlzyAYRxGCkMJ1IlNghl2sAddbgL4gk0h5CRPhNUELU1dWFZ599Frt370ZTUxNYlvXaH+qVYAmiJ3NSTUBeEpA8IuyN8gfidEMHTlwwoCAtETMLU/iNMhWAJpo5C5CghOi+++7D3r17sWLFCmRnZ3tKPwgiIkRgfXt/MNmcqNOboVb0+BpRLlFQBCVEn3zyCf71r39h7ty5obaHIAaE4zgwHiESNj6kkLryiBxUbzZUghKi5ORkpKSkhNoWghiU+ouNqP++EiqlDOMj1Ci/P7rbxfasN6Pe1cEQVB7R7373O6xfv96r3iwYNm3ahMmTJ3sWS5w9ezY++eSTIZ2TGN5YmyrhYDl0yTP4NecFpE/faoA8oiAJyiN64YUXUF5ejszMTBQUFEAqlXrtP3r0qF/nycvLw7PPPovRo0eD4zi89tpruOmmm3Ds2DFccsklwZhGDHMcrZX8g6TIl3X0RukSIjMJ0ZAJSoiWLVsWkje/4YYbvJ4//fTT2LRpEw4ePEhCRPSF4wA9X0IkSi4U2JjuGJHVzoJlOYhEDJV5BElQQvTEE0+E2g44nU6888476Orq8mRq98ZqtcJqtXqed3R0hNwOIooxt8Np6QTLiCFLFXbGDADkEjGkYgYKqRg2JwuFSNztETmsgNMOiKUDn4QAMISERr1ej3fffRfl5eX47//+b6SkpODo0aPIzMxEbq7/QcQTJ05g9uzZsFgsUKlUeO+99zBhwgSfx5aUlODJJ58M1mRCIDiOC02KR3sVrHYWRlkGdAnCN6cXixg8fPVo740SOSCSAKyD94qUSYLYFmsEFaz+9ttvMWbMGDz33HN4/vnnodfrAfC9qtetWxfQucaOHYuysjIcOnQIP/3pT7Fy5UqcOnXK57Hr1q2DwWDw3Gpra4Mxn4ggNa0mfHi8HnYnO/jBg8C1V8PmcMKgyIFGGfRvaHhhGIoTBUFQQrRmzRqsWrUK586d81rZdenSpdi3b19A55LJZCgqKsKll16KkpISTJkyBRs3bvR5rFwu98ywuW9E9GJzsPjsVCMqmrtwrEYPADCY7Pj2gj7wk3Ec2PZqaJRSiFMKoJJHqRABJERBENR/8/Dhw3jllVf6bM/NzUVjY+OQDGJZ1isORMQu39Ub0GlxQKOUYlp+EoxWB944VA2W5TAyXRWYmHQ1Q+wwY1xuCsZdMZMvMI0CDpS3oLbNhBkFKRiV7gpUU4O0gAlKiORyuc9A8dmzZ5Ge7v96TuvWrcOSJUuQn5+Pzs5ObNu2DXv27MHOnTuDMYuIIjiOQ1mtHgAwY0QypGIRJCIG6So56vRmlNXoccXoABqa6Wv4e22+oPVlvdGb7KjXW2Aw27s3kkcUMEH9rNx444146qmnYLfzf3yGYVBTU4PHHnsMP/zhD/0+T1NTE+6++26MHTsWCxcuxOHDh7Fz50784Ac/CMYsIopoMFigN9khk4gwPpsfQjMMg2n5SQD4glFP03l/aKsEy3HgoiB/qCeeMg/KJRoSQSc0/uhHP0J6ejrMZjOuuuoqNDY2Yvbs2Xj66af9Ps/f/va3YN6eiAHOXuwEAIxKV3l6OwPAyHQVlDIxjFYHqttMKEzzY5lopwPQV6GypQt77SLMEOsxOS8pTJYHhkLiWs2DlhUaEkEJkVarxa5du/Dll1/i+PHjMBqNmD59OhYtWhRq+4gYhOM4nLvIfwlHZ6q89olFDMZmqlFWq8e5i53+CZGhBnA6YOQUMDBJkIqjIz4EAHKf2dWU1BgoAQsRy7IoLS3Fjh07UFVVBYZhUFhYiKysrNDlixAxjdXBoihDhcYOC0ak9M33KcpQoaxWj4qWru6M5IFo4/tbXZTmAAyDpIToSRJUUr1ZSAhIiDiOw4033oiPP/4YU6ZMwaRJk8BxHE6fPo1Vq1Zhx44deP/998NkKhErKKRiLBiX0e/+3CQlFFIxHE4W7SYbUlXygU/YVgknx6FRnAMASFIKW+zak+4Yka+hWRdflkI/zoMSkBCVlpZi37592L17NxYsWOC174svvsCyZcvw+uuv4+677w6pkcTwQiRi8MPpuUhOlA0+zDLrga4WWBws9PJcyKUiz5c/GlBI+TIPr8twD81YB1/qIVX4fC3RTUD/0TfffBO//OUv+4gQAFx99dV4/PHHsXXr1pAZR8QeTpbDhXZT9xI7/ZChUfgX62nnq+275JlwihVIUsqiavifrVXg4atHe6/oIZZ2tyih4ZlfBCRE3377La699tp+9y9ZsgTHjx8fslFE7HKxw4J3vrmALV9WguP8m54f8LjWcgBAm5yvX4ym+BCA/kXR7RXZSYj8ISAhamtrQ2ZmZr/7MzMz0d7ePmSjiNjlQrsZAJCpUQzquXxXb8Dfv6rC0Zp+PjNOu8cjkmSMRWFaInKTlCG1N2xQwDogAooROZ1OSCT9v0QsFsPhcAzZKCJ2qW3ju3bqfMyW9cbmYNFitKGiuQuXjvDReritgs8hUmhRVDgSRVE0JOvJJyca0GGx49pLsqF1e2wkRAER8KzZqlWrIJf7nuWgGrH4xuFkUa/nPaK85ME9l5FpKuw504x6vQUWu9PTetVDy1n+Pn1MVM88NRj4Eo8um6OHEFHv6kAISIhWrlw56DE0Yxa/NHZY4GA5JMjESE0cfIpdmyBFqkqGVqMN1a0mjM3qsTIqywKt5wEA9uQi2G0OJMiis+JeIRXDYLZTLtEQCOg/u2XLlnDZQQwDatt4b0iXkuD3zFZhWiJajTZUthi9hchQA9gtgCwB1Y4UfLS3ArqUBPzoUuE7M/bGZy6R1DU0JSHyi+hJyCBingvtfHzIn2GZG3eJR2WLybsItvkMf59ahKZOGwB4L2QYRfhuok9Ds0AgISJCxpVj0nHF6DSMSPWjfsxFjpbPsrbYnag38B4VWCfQdJp/nD4OFzstAIAsTXQmBrpjW1YamgVNdP7EEDFJpkaBzADFQiRiMC5bDaud7a7Sb68C7GZAlgAuuQCNJ6oAAFna6BQi+YArvpqozMMPSIgIwVkwtldd2sXv+PuMCdCbnbDYnRCLGL8C4ELgLvPwwi1EHAvYTd3PCZ+QEBEh4XBVG9QKCQrTEiGXDKGDosPWPW2fMQG1rrhTtlYBSRS1/+jJNF0Spucne28UiQGpkvfsbF0kRIMQnf9ZIqawOpw4cL4Vn5xo9J45CgCO49DUYUFz9Uk+o1qZBGhyUONKkMz3I0FSKPov86AGaf5CHhExZOrazWA5DlqlFFplcLVgJ+oM2H26CTM79iMthQOTeQnAMLgkR4sEmdi/BmrRhkwFdLVQwNoPyCMihkytq75sKF7LmEw11KwBIn0NOq1OIHsKAH56/+pxmciI0hkzgG+K9kFZHd46XONdwEszZ35DQkQMGc/wKTV4IVJIxZgm5VfqOG1JAyePnTXrxCIGFc1dqNdbYHX00yCNGBBBhaikpASXXXYZ1Go1MjIysGzZMpw5c0ZIk4gA6bI60NLJ1xgGksjYB6cDE0RVEDHAaWYU3jlyATu/a4TeZAuRpeFDKhZ5Ug/MNupdHQyCCtHevXtRXFyMgwcPYteuXbDb7bjmmmvQ1UX/uFjBPauVrpYPrRas6RSUnA15WZloV+ajrt2MU/UdONPYGSJLw4vv7GryiPxF0GD1p59+6vW8tLQUGRkZOHLkCK688kqBrCICodXIeywjhjAsA8cBtYcAALkT5+F6eS4qWrqQm6TEJTmxMURTyvjCV5PNlxDRrNlgRNWsmcFgAACkpPjoTUNEJXOL0jApT4sh5Q23VfCzS2IpkD0Vo6UKjM5UD/66KCJB5vKIaGgWFFEjRCzL4pFHHsHcuXMxceJEn8dYrVavnke+lr0mIo9GMcT2rS5vCDlTY7bRvGKgoZndzNfPRdFS2dFG1MyaFRcX4+TJk9i+fXu/x5SUlECr1XpuOp0ughYSvRmsQb5ftFcB7dX8lzTvsqGfTyASZHyZh9ffRKoERK7feiv9aA4Ew/nb4TyMPPzww/jggw+wb98+FBYW9nucL49Ip9PBYDBAo4mNWMJwgeM4bP6yCqmJMiwcnwF1MF4RxwHH/g4Y6oDcS4Ex14Te0AjR70KRB18GzO3AtDuBpPy++4c5HR0d0Gq1g35HBR2acRyHn/3sZ3jvvfewZ8+eAUUIAORyeb9taonIcqHdjA6zHVaH0zNjFDCt53kREkuAEbNDa2CE6Xe1WrmaFyILeUQDIagQFRcXY9u2bfjggw+gVqvR2NgIANBqtVAqY2S1hjjle9e0+ugMdXDFqE4HcH43/zj3Uv4LOxxxX5c1NtIQhELQGNGmTZtgMBgwf/58ZGdne25vvfWWkGYRg2B3sjjXxH+xxmUFKSC1h3hPQZYI5M8JoXXCYDDb8UFZHT4oq/PeoXANR0iIBkTwoRkRe3zf0AmrnYVWKQ0um9rYDFQf4B8XLYzZmbLeVDR3QSxiwHFcd0W+xyOiodlARM2sGREbcByHsgt6AMAUXVLgyz87HcDpD/h14VNGAhkTQm+kALjziJws511vJtfy9yREA0JCRAREnd6Mlk4rpGIm8KxnjgPO7eQ9IlkCMO66YdNCtWe9mdeyQm6PiILVAxI1CY1EbJChVmDR+EyYfS2IOBAcB1TuAxq+5cVn3PWAXBU+QwVAIRXD5mBhsjmR5K54cceI7Ga+4Zt4iMmfwxQSIiIgZBIRJuVpA3uR0wGU7wbqjvLPR18DpI4KvXECkyATo6N3vZlEwacnOB18wDqBypd8QUJEhA/WyecKVe7ja8kYBihaBOROF9qysOCOE5lsju6NDMPHiUytfJyIhMgnJESEX9idLN47Wodx2WpckqOF2J3Ax7L8l6yriS/utJv4X35rJ9BRzw9HAD4mNHYpkDZauIsIM4kyCWQSERy9S1/kapcQ0RR+f5AQEX7xfUMn6vRmGK0OTMzRAqY24MI3QPNpfu2u/pAlANlT+ToyWfQ2wA8FV4/LwKIJmX13UMB6UEiIiEHhOA5lte0AgKk5SojO7wLqj/FrdgF8AFaVyX/hZIl8+wu5GkhM47cPk5mxwei3zIOSGgeFhIgYlMYOC1qMNqTYGzCp4TPA5vpCpYwE8mYAyQXU4mIgKKlxUEiIiEE5VWdAVucJzHAcg1SZCCi0wNglQMrARcrxhsFsx54zTWA5DjdPy+veoUji7816IcyKCUiIiAGx222wffcRCjrOICNbA2RN5KffJdQFoTcihi/zEDG9yjyUSfy9xcDnU8XJUDUQSIiI/rGZ0PrlG0jqOAuZVALNpGv5oDN9kXySIJOAYQCW42C2O7sXE5Br+L8Z6+D7Vw/XTgNDgEo8CN+Y9cCxN5BgaYRWo4Z4ynIwupkkQgMgFjGe3kxGa49cIpGYFyOAhmf9QB4R0RdjM/DtdsBqhCYpFROuXM7PgBGDkiiXwGRzwmR1Aj0dH2USPzSz6AFQi+PekEdEeNPVAhzfBliNvPhMW0EiFACJch8eEUAB60EgISK6MbUBx9/kExTVmajKvxntzuHRKyhSJLriQl71ZkCPgLU+ovbECiREBI/DCpz8B+8JqdLBTlqOT88YUHqgCvV6s9DWxQyJcr7Mg+3d9I88ogGhGBHBTymf/ogflslVwOTlaLaKYbY5IZOIkKUhr8hfLh+ZijmjUvs2jCOPaEDIIyKAuiNAyzl+Da6JPwTkatS08fVjecnK/ksXiD6IRYzvrpVuj8hq5FuCEF6QEMU7pjag4t/841FXA5ocAECtS4jyU4Z3oWrEkCoBiYx/TF5RH0iI4hmOA858zP9CJxd4+gQ5nCzq2vm4EAlRYDhZDh+U1eGNg9WwOnoErBkGUCbzj01twhgXxQgqRPv27cMNN9yAnJwcMAyD999/X0hz4o+m04C+lu8gOHaJJ1mxwWCBg+WgkkuQkigT2MjYQixiUKc3o7nTCqOl1xAsIZW/N7VG3rAoR1Ah6urqwpQpU/DSSy8JaUZ84rR3D8nyZ3cHUwFPfEiXogx8lQ7Cs/x2BwmR3wg6a7ZkyRIsWbJESBPilwvf8I265GpAN8tr14yCZGRrFVDKqLVHMGgUErR0WtFpsXvvICHql5iavrdarbBarZ7nHR3U3yUonHbgwtf848Ir+6wsIZeIMTJ9eK2wEUk0Lo+ocyCPiKrwvYipYHVJSQm0Wq3nptNRzU5QNH7LZ08rNEDmJUJbM+xQK/jf9z4ekTKFFx+Hle/vTXiIKSFat24dDAaD51ZbWyu0SbEHywK1Lm9IN6tPZ8WjNe3Yf64FrUarjxcT/tBvjEgs4ZvKATQ860VMDc3kcjnkcmrINSSav+fLDKRKIHtKn90n6wxoNdqQqZEjVUV/62BQKySQihlIxT6GXgmp/N/f1Aokj4i4bdFKTAkRMUQ4Dqj5in+cN6NPbMhodaDVaAPDADrKHwqabK0CxQuKfM84JqYBreVAV3PkDYtiBBUio9GI8+fPe55XVlairKwMKSkpyM/PF9CyYUpbBWBs4gUo99I+u93Z1OlqeWDLSRNeDJjyoHItN2S8GBljYgRBheibb77BggULPM/XrFkDAFi5ciVKS0sFsmoYU3OQv8+Zyg/NekFlHRHAI0RNNHPWA0GFaP78+eB6t0sgwoPhAqCv4YPTeTP77OY4zpPISEI0dI7VtONkfQcuydFgen5y9w5lCl9c7LQD5nZagtpFTM2aEUPA7Q1lXtK94F8P2k12dFocEIsY5CT19ZaIwLA6WLR0WtHS2Wv2USQCVOn8YxqeeSAhige6Wvg2HwzTJ4vaTYfZDqVMjJwkJaRi+lgMleQEvkZPb7L33Ulxoj7QrFk84PaG0kb323+6IC0RP7lyJCx2NoKGDV+SE/gZyXaTre9OVQZ/30lC5IZ++oY7FgNw8Tv+se7yAQ9lGIbqy0JEkssjMtmcMNl6JTaq+Z5P6KjjA9YECdGwp/ZrgGOBpHxAm+vzEIeTpUmDECOTiJDk8opaOnt5RapMPoXCYeWHzQQJ0bDGagTqy/jHI+b0e9iR6nb89T+VOFbTHhm74oR0NZ+Z3my0eO8QiTydMGGgMiWAhGh4c+FrfpljTQ7fgbEfKlu6YLTyM2ZE6MjUKJCmkkEi8vE10+bx9x11kTUqSqFg9XDFbgbqjvKPR8zpN3Guy+pAYwf/i02tP0LLZQUpuKygnzwhtxAZLkTOoCiGPKLhSs1BPmlOlQ6kFvV7WGVLFzgOyNIqoJLT71LE0OQCjIgvgDXTkJiEaDhiMfAdGAGg8KoBywjKm40AgJFpiZGwLC5xshxsjl5pERJ59+RBW0XkjYoySIiGI5X/4WNDSboBvSGrw4maVr6sg4Zl4eGr8lZs2nMeZbX6vjtTRvH3rSREJETDDUMdcPEk/3jU1QN6Q+ebjHCwHJITpEhT0Wod4UAuFcHu5Hwv250ykr/XV/HD6DiGhGg4wTr5dco4Dsia2D1F3A/ZWiWmj0jG1PxkWq0jTOS56vbq9GawbK9cLVUG37HR6QBaz/t4dfxAQjScqD7AJ8hJlcCohYMenpIow1Vj0jFVlxR+2+KUNBXf28nmYNHQ0SufiGGAzAn8Y3f2e5xCQjRcaK8Cqr/kH4/+ASCjVh7RgEjEoDCN/1+UNxn7HpDhWrygrSKuG+qTEA0HzO3AqQ/5IVn25EFX5rA7WXxyogEX2k1U2hEBRrkmAsqbjX3/3qp0QJPND6vrjwlgXXRAQhTr2LqAb9/m71XpwOhrBn3JiToDvm/sxGffXaSaywiQn5oAqZiB3mRHvcHS94C8y/j7uiN8vCgOISGKZcx64NgbgKmND3pOXt6nIX5vLHYnDlW0AeBXdBVRWUfYkUvEuHRECq4ck47URB+zk+nj+GZ1NhNw4XDkDYwCSIhildZy4OhrLhHSAFN+zC8fPQgHyltgsTuRqpJhYo42AoYSADB7VCouHZHse1ECkZhfcRfg43yW+FvBmIQo1rB1AWc+dQ3HTPxwbNoKv3ofn2/qxPFaAwBg/pgM8oYEok+WNQBkutItnHbg1Ad8zCiOiAoheumll1BQUACFQoFZs2bh66+/Ftqk6MPaCVTuAw690h3UzJ0OTF/pswd1b2paTfjkRCMAYPqIZOSn0qyaENTpzXj9qyqcqu/l9TAMMP4GQCLjC2FPfxhXYiR4leNbb72FNWvW4OWXX8asWbOwYcMGLF68GGfOnEFGRobQ5gmLzQS0lQPNZ/jpXfcHU5UBFC0KaKXQOr0ZDpbDyPREzCvy3S6WCD81rSZ0WhzYdeoiWI7DJTma7mTShBRgwjLg5D+Apu/5IdqYxYA6S1CbIwHDCTx/O2vWLFx22WX485//DABgWRY6nQ4/+9nP8Pjjjw/42o6ODmi1WhgMBmg0g3sFUQfH8V36HBa+bYdF71qOuAXoqOfjPz3R5vIzLGlj+eZafU7HwepgYbI50dxphVgEFGWoPfuO1eoxKVdLzfEFhGU57PyuEd83dgIAcpOUmJCjQU6SEhqFBBKxiI//nfqA/2wAfHfNtDG8ICmTAWmCz/9/NOLvd1RQj8hms+HIkSNYt26dZ5tIJMKiRYvw1Vdf9TnearXCau1enqWjw8+gXlslUL7bd39gr21c/9uCPpa/P1lngNXRw9XmWIicNjDgIJeKMT6r+590urEDZht/rFmWAn3iSLQnFMJsTEVipQR3ZHR/CN87dgEXO6y8pjlZOHqUEagVEoxMU0EkYsAwjPf6WoQgiEQMrp2YheREGb6ubEOd3ow6Vx3arJEpmDMqDUgdhZZxd+HE/g+RbDwP5sK3AL71nIMDg8xkDbKTVYBIDJOdw8n6TnBeZTrdj7O1isHXqgumxGfSbX6FBfxBUCFqaWmB0+lEZmam1/bMzEx8//33fY4vKSnBk08+GfgbOayAUdi1xu1mo+8gJQCWkQByFSDXAMpk1JqsqHMmwSjLhEOs4A/iAFgdfT4vVjvrES03MokIyQkyZGnlsDlZKETUED+aYBgGl49MxSU5GnxX34GaVhOaOi1Qy7tTL6xSNcpUV0KumIYUUwU01gYk2lohc5oAcHDazICN/zBwNgecXYb+31CiBORhiAlyoVvxRfAYUSCsW7fOsyw1wHtEOp1u8Bcm6fjpbaCH8vf4Rvv6Jenn1yXYY7PHWuDs+X9jGECiAKQKSCRSQKPw7Jqms2Kyy7Nxn8J9pt4zXUsmZsPOsmAASMQiJMjENPSKEdQKKS4fmYrLR6aC4zgv5zo1UYYfXerq4ojx3Ts4FozdDI3UCchFAOuExG5D/hgfiZIAwHFQycVAgrTP9iEjC10PK0GFKC0tDWKxGBcveq/vdPHiRWRl9Q3QyeVyyOXywN9IlgikFAZrZkjICqDdj7vpuj9oe3/AiJiEYRiv3zOFVAxdv8Mp7w+THEBuathMiwiC/nTKZDJceuml2L17t2cby7LYvXs3Zs+eLaBlBEFEEsGHZmvWrMHKlSsxY8YMzJw5Exs2bEBXVxfuueceoU0jCCJCCC5Ey5cvR3NzM9avX4/GxkZMnToVn376aZ8ANkEQwxfB84iGQsznERHEMMff7yhNrxAEITgkRARBCA4JEUEQgiN4sHoouMNbfpd6EAQRUdzfzcFC0TEtRJ2dfOGgX9nVBEEIRmdnJ7Ta/hvxxfSsGcuyqK+vh1qtDtu6XO4yktra2riYmYu36wXomsN5zRzHobOzEzk5ORAN0DEgpj0ikUiEvLy8wQ8MARqNJm4+pED8XS9A1xwuBvKE3FCwmiAIwSEhIghCcEiIBkEul+OJJ54Iruo/Bom36wXomqOBmA5WEwQxPCCPiCAIwSEhIghCcEiICIIQHBIigiAEh4QIga00++qrr2LevHlITk5GcnIyFi1aFHMr0wa7su727dvBMAyWLVsWXgPDQKDXrNfrUVxcjOzsbMjlcowZMwYff/xxhKwNDYFe84YNGzB27FgolUrodDo8+uijsFj6acofarg4Z/v27ZxMJuM2b97Mfffdd9z999/PJSUlcRcvXvR5/B133MG99NJL3LFjx7jTp09zq1at4rRaLXfhwoUIWx4cgV6vm8rKSi43N5ebN28ed9NNN0XG2BAR6DVbrVZuxowZ3NKlS7n9+/dzlZWV3J49e7iysrIIWx48gV7z1q1bOblczm3dupWrrKzkdu7cyWVnZ3OPPvpoROyNeyGaOXMmV1xc7HnudDq5nJwcrqSkxK/XOxwOTq1Wc6+99lq4TAwpwVyvw+Hg5syZw/31r3/lVq5cGXNCFOg1b9q0iRs5ciRns9kiZWLICfSai4uLuauvvtpr25o1a7i5c+eG1U43cT00c680u2jRIs+2gVaa9YXJZILdbkdKSkq4zAwZwV7vU089hYyMDNx7772RMDOkBHPNH374IWbPno3i4mJkZmZi4sSJeOaZZ+B0On0eH20Ec81z5szBkSNHPMO3iooKfPzxx1i6dGlEbI7potehEuhKs7547LHHkJOT4/VPj1aCud79+/fjb3/7G8rKyiJgYegJ5porKirwxRdf4M4778THH3+M8+fP46GHHoLdbscTTzwRCbOHRDDXfMcdd6ClpQVXXHEFOI6Dw+HAgw8+iF/+8peRMJmC1UPh2Wefxfbt2/Hee+9BoVAM/oIYo7OzEytWrMCrr76KtLQ0oc2JGCzLIiMjA3/5y19w6aWXYvny5fjVr36Fl19+WWjTwsaePXvwzDPP4P/+7/9w9OhR7NixA//617/wu9/9LiLvH9ceUaArzfbk+eefx7PPPovPP/8ckydPDqeZISPQ6y0vL0dVVRVuuOEGzzaW5dfNlkgkOHPmDEaNGhVeo4dIMP/j7OxsSKVSiMViz7bx48ejsbERNpsNMpksrDYPlWCu+Te/+Q1WrFiB++67DwAwadIkdHV14YEHHsCvfvWrAXsJhYK49oiCXWn297//PX73u9/h008/xYwZMyJhakgI9HrHjRuHEydOoKyszHO78cYbsWDBApSVlcVEZ8xg/sdz587F+fPnPaILAGfPnkV2dnbUixAQ3DWbTKY+YuMWYi4S5agRCYlHMdu3b+fkcjlXWlrKnTp1invggQe4pKQkrrGxkeM4jluxYgX3+OOPe45/9tlnOZlMxr377rtcQ0OD59bZ2SnUJQREoNfbm1icNQv0mmtqaji1Ws09/PDD3JkzZ7h//vOfXEZGBvc///M/Ql1CwAR6zU888QSnVqu5N998k6uoqOA+++wzbtSoUdxtt90WEXvjXog4juP+9Kc/cfn5+ZxMJuNmzpzJHTx40LPvqquu4lauXOl5PmLECA5An9sTTzwRecODJJDr7U0sChHHBX7NBw4c4GbNmsXJ5XJu5MiR3NNPP805HI4IWz00Arlmu93O/fa3v+VGjRrFKRQKTqfTcQ899BDX3t4eEVupDQhBEIIT1zEigiCiAxIigiAEh4SIIAjBISEiCEJwSIgIghAcEiKCIASHhIggCMEhISJiitLSUiQlJXme//a3v8XUqVM9z1etWhWTHSTjHRIiwierVq0CwzB48MEH++wrLi4GwzBYtWqV1/GhFoCCggJs2LDBa9vy5ctx9uzZfl+zceNGlJaWep7Pnz8fjzzySEjtIkIPCRHRLzqdDtu3b4fZbPZss1gs2LZtG/Lz8wWxSalUIiMjo9/9Wq3Wy2MiYgMSIqJfpk+fDp1Ohx07dni27dixA/n5+Zg2bdqQzu3LU1m2bJnHy5o/fz6qq6vx6KOPgmEYMAwDoO/QrDc9PbNVq1Zh79692Lhxo+cclZWVKCoqwvPPP+/1urKyMjAMg/Pnzw/puojgICEiBmT16tXYsmWL5/nmzZtxzz33hP19d+zYgby8PDz11FNoaGhAQ0NDwOfYuHEjZs+ejfvvv99zjvz8/D7XBABbtmzBlVdeiaKiolBdAhEAJETEgNx1113Yv38/qqurUV1djS+//BJ33XVX2N83JSUFYrEYarUaWVlZgzaq84VWq4VMJkNCQoLnHGKxGKtWrcKZM2c8/Zntdju2bduG1atXh/oyCD+J6w6NxOCkp6fjuuuuQ2lpKTiOw3XXXRfzbWNzcnJw3XXXYfPmzZg5cyY++ugjWK1W3HrrrUKbFreQR0QMyurVq1FaWorXXnstZF6DSCTq0/nPbreH5Nz+cN9993kC8Vu2bMHy5cuRkJAQsfcnvCEhIgbl2muvhc1mg91ux+LFi0NyzvT0dK+4j9PpxMmTJ72OkclkQ17Cp79zLF26FImJidi0aRM+/fRTGpYJDA3NiEERi8U4ffq053F/GAyGPssOpaam+uxtffXVV2PNmjX417/+hVGjRuHFF1+EXq/3OqagoAD79u3Dj3/8Y8jl8qCGhAUFBTh06BCqqqqgUqmQkpICkUjkiRWtW7cOo0ePHrBHORF+yCMi/EKj0UCj0Qx4zJ49ezBt2jSv25NPPunz2NWrV2PlypW4++67cdVVV2HkyJFYsGCB1zFPPfUUqqqqMGrUKKSnpwdl99q1ayEWizFhwgSkp6ejpqbGs+/ee++FzWaLyCwgMTDUKpaIW/7zn/9g4cKFqK2t7bMYIRFZSIiIuMNqtaK5uRkrV65EVlYWtm7dKrRJcQ8NzYi4480338SIESOg1+vx+9//XmhzCJBHRBBEFEAeEUEQgkNCRBCE4JAQEQQhOCREBEEIDgkRQRCCQ0JEEITgkBARBCE4JEQEQQgOCRFBEILz/wFPCPvQaR/QDgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from ml_utility_loss.loss_learning.visualization import plot_density_3\n", "\n", "_ = plot_density_3(y2[\"pred\"], next(iter(y2[\"y\"].values())))" ] }, { "cell_type": "code", "execution_count": 36, "id": "745adde1", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T05:36:08.796581Z", "iopub.status.busy": "2024-02-29T05:36:08.796231Z", "iopub.status.idle": "2024-02-29T05:36:08.962034Z", "shell.execute_reply": "2024-02-29T05:36:08.961064Z" }, "papermill": { "duration": 0.194298, "end_time": "2024-02-29T05:36:08.965546", "exception": false, "start_time": "2024-02-29T05:36:08.771248", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from ml_utility_loss.loss_learning.visualization import plot_box_3\n", "\n", "_ = plot_box_3(y2[\"pred\"], next(iter(y2[\"y\"].values())))" ] }, { "cell_type": "code", "execution_count": 37, "id": "eabe1bab", "metadata": { "execution": { "iopub.execute_input": "2024-02-29T05:36:09.024114Z", "iopub.status.busy": "2024-02-29T05:36:09.023330Z", "iopub.status.idle": "2024-02-29T05:36:09.234183Z", "shell.execute_reply": "2024-02-29T05:36:09.233273Z" }, "papermill": { "duration": 0.236662, "end_time": "2024-02-29T05:36:09.236192", "exception": false, "start_time": "2024-02-29T05:36:08.999530", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#\"\"\"\n", "from ml_utility_loss.loss_learning.visualization import plot_grad, plot_grad_2, plot_grad_3\n", "import matplotlib.pyplot as plt\n", "\n", "#plot_grad_2(y, model.models)\n", "for m in model.models:\n", " ym = y[m]\n", " fig, ax = plt.subplots()\n", " plot_grad_3(ym[\"error\"], ym[\"grad\"], name=f\"{m}_grad\", fig=fig, ax=ax)\n", "#\"\"\"" ] }, { "cell_type": "code", "execution_count": null, "id": "54c0e9f3", "metadata": { "papermill": { "duration": 0.023029, "end_time": "2024-02-29T05:36:09.282713", "exception": false, "start_time": "2024-02-29T05:36:09.259684", "status": "completed" }, "tags": [] }, "outputs": [], "source": [] } ], "metadata": { "accelerator": "GPU", "celltoolbar": "Tags", "colab": { "authorship_tag": "ABX9TyOOVfelovKP9fLGU7SvvRie", "gpuType": "T4", "mount_file_id": "17POSGAvge8y9DW9WGs2jLkibaRjToayg", "provenance": [] }, "kaggle": { "accelerator": "gpu", "dataSources": [], "dockerImageVersionId": 30648, "isGpuEnabled": true, "isInternetEnabled": true, "language": "python", "sourceType": "notebook" }, "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.10.13" }, "papermill": { "default_parameters": {}, "duration": 4022.381901, "end_time": "2024-02-29T05:36:12.029238", "environment_variables": {}, "exception": null, "input_path": "eval/treatment/tvae/2/mlu-eval.ipynb", "output_path": "eval/treatment/tvae/2/mlu-eval.ipynb", "parameters": { "dataset": "treatment", "dataset_name": "treatment", "debug": false, "folder": "eval", "gp": false, "gp_multiply": false, "path": "eval/treatment/tvae/2", "path_prefix": "../../../../", "random_seed": 2, "single_model": "tvae" }, "start_time": "2024-02-29T04:29:09.647337", "version": "2.5.0" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 5 }