From 64123837622d51549b411df864d15904fdb4ca00 Mon Sep 17 00:00:00 2001 From: Joerg Martin <joerg.martin@ptb.de> Date: Tue, 15 Feb 2022 10:08:39 +0000 Subject: [PATCH] Removed old files --- .../evaluate_mexican_including_vd.ipynb | 2415 ----------------- .../old_scripts/evaluate_multinomial.ipynb | 751 ----- .../evaluate_multinomial_including_vd.ipynb | 2155 --------------- Experiments/old_scripts/evaluate_wine.ipynb | 672 ----- .../old_scripts/generate_housing_data.py | 42 - .../old_scripts/generate_mexican_data.py | 88 - .../old_scripts/generate_multinomial_data.py | 61 - Experiments/old_scripts/generate_wine_data.py | 41 - .../old_scripts/get_multinomial_function.py | 76 - Experiments/old_scripts/train_eiv_housing.py | 166 -- Experiments/old_scripts/train_eiv_mexican.py | 170 -- .../train_eiv_mexican_fixed_std_x.py | 171 -- .../old_scripts/train_eiv_multinomial.py | 171 -- .../old_scripts/train_eiv_vd_mexican.py | 171 -- .../old_scripts/train_eiv_vd_multinomial.py | 171 -- Experiments/old_scripts/train_eiv_wine.py | 167 -- .../old_scripts/train_noneiv_housing.py | 124 - .../old_scripts/train_noneiv_mexican.py | 132 - .../train_noneiv_mexican_ensemble_seed.py | 131 - .../train_noneiv_mexican_fixed_std_x.py | 133 - .../old_scripts/train_noneiv_multinomial.py | 136 - .../train_noneiv_multinomial_ensemble_seed.py | 136 - .../old_scripts/train_noneiv_vd_mexican.py | 134 - .../train_noneiv_vd_multinomial.py | 136 - Experiments/old_scripts/train_noneiv_wine.py | 127 - Experiments/old_scripts/winequality-red.csv | 1600 ----------- 26 files changed, 10277 deletions(-) delete mode 100644 Experiments/old_scripts/evaluate_mexican_including_vd.ipynb delete mode 100644 Experiments/old_scripts/evaluate_multinomial.ipynb delete mode 100644 Experiments/old_scripts/evaluate_multinomial_including_vd.ipynb delete mode 100644 Experiments/old_scripts/evaluate_wine.ipynb delete mode 100644 Experiments/old_scripts/generate_housing_data.py delete mode 100644 Experiments/old_scripts/generate_mexican_data.py delete mode 100644 Experiments/old_scripts/generate_multinomial_data.py delete mode 100644 Experiments/old_scripts/generate_wine_data.py delete mode 100644 Experiments/old_scripts/get_multinomial_function.py delete mode 100644 Experiments/old_scripts/train_eiv_housing.py delete mode 100644 Experiments/old_scripts/train_eiv_mexican.py delete mode 100644 Experiments/old_scripts/train_eiv_mexican_fixed_std_x.py delete mode 100644 Experiments/old_scripts/train_eiv_multinomial.py delete mode 100644 Experiments/old_scripts/train_eiv_vd_mexican.py delete mode 100644 Experiments/old_scripts/train_eiv_vd_multinomial.py delete mode 100644 Experiments/old_scripts/train_eiv_wine.py delete mode 100644 Experiments/old_scripts/train_noneiv_housing.py delete mode 100644 Experiments/old_scripts/train_noneiv_mexican.py delete mode 100644 Experiments/old_scripts/train_noneiv_mexican_ensemble_seed.py delete mode 100644 Experiments/old_scripts/train_noneiv_mexican_fixed_std_x.py delete mode 100644 Experiments/old_scripts/train_noneiv_multinomial.py delete mode 100644 Experiments/old_scripts/train_noneiv_multinomial_ensemble_seed.py delete mode 100644 Experiments/old_scripts/train_noneiv_vd_mexican.py delete mode 100644 Experiments/old_scripts/train_noneiv_vd_multinomial.py delete mode 100644 Experiments/old_scripts/train_noneiv_wine.py delete mode 100644 Experiments/old_scripts/winequality-red.csv diff --git a/Experiments/old_scripts/evaluate_mexican_including_vd.ipynb b/Experiments/old_scripts/evaluate_mexican_including_vd.ipynb deleted file mode 100644 index 5fe23e3..0000000 --- a/Experiments/old_scripts/evaluate_mexican_including_vd.ipynb +++ /dev/null @@ -1,2415 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "charitable-joshua", - "metadata": {}, - "source": [ - "# Results for a 1D Mexican hat curve (incl. VD)\n", - "\n", - "This notebook produces the results of EiV and non-EiV models for data following a 1D Mexican hat curve as presented in the preprint \"Errors-in-Variables for deep learning: rethinking aleatoric uncertainty\" submitted to NeurIPS 2021.\n", - "\n", - "\n", - "This notebook produces Figures 1, 2, 3 and part of Table 1 of the preprint. \n", - "\n", - "How to use this notebook: \n", - "\n", - "+ This notebook assumes that the corresponding trained networks exist in `saved_networks`. To achieve this, either run the training scripts described in the `README` or load the pre-trained networks from the link in the `README` into the `saved_networks` folder. \n", - "\n", - "+ To run this notebook, click \"Run\" in the menu above. \n", - "\n", - "+ To consider different levels of input noise, change `std_x` in cell [2]\n", - "\n", - "+ To run this notebook with a GPU, set `use_gpu` to `True` in cell [2] (default is `False`)\n", - "\n", - "+ Plots will be displayed inline and, in addition, saved to `saved_images`\n", - "\n", - "+ The content of Table 1 is produced under \"Coverage\" below . To get the different columns of Table 1, change `std_x` as explained above." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "buried-recipe", - "metadata": {}, - "outputs": [], - "source": [ - "import random\n", - "import os\n", - "\n", - "import numpy as np\n", - "import torch\n", - "import torch.nn as nn\n", - "from torch.utils.data import DataLoader\n", - "import matplotlib\n", - "import matplotlib.pyplot as plt\n", - "from tqdm.notebook import tqdm\n", - "\n", - "from train_eiv_mexican import report_point, batch_size, seed_list\n", - "from train_noneiv_mexican_ensemble_seed import seed_list as ensemble_seed_list\n", - "from EIVArchitectures import Networks\n", - "import data_frameworks, generate_mexican_data\n", - "from EIVTrainingRoutines import train_and_store\n", - "from EIVGeneral.ensemble_handling import create_strings, Ensemble\n", - "\n", - "\n", - "%matplotlib inline" - ] - }, - { - "cell_type": "markdown", - "id": "4043eac9", - "metadata": {}, - "source": [ - "## Fix relevant hyperparameters" - ] - }, - { - "cell_type": "markdown", - "id": "4dd31b60", - "metadata": {}, - "source": [ - "### Values that can be changed" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "41ee1a77", - "metadata": {}, - "outputs": [], - "source": [ - "# The std_x used for data generation and model loading. \n", - "# Pick either 0.05, 0.07 or 0.10.\n", - "# For the figures in the preprint 0.07 was used.\n", - "std_x = 0.07\n", - "\n", - "# Switch to True if GPU should be used\n", - "use_gpu = False\n", - "\n", - "# Uncertainty coverage factor (1.96 taken from the standard normal)\n", - "k=1.96" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "bbc99f21", - "metadata": {}, - "outputs": [], - "source": [ - "# graphics\n", - "fontsize=15\n", - "matplotlib.rcParams.update({'font.size': fontsize})" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "007d7aac", - "metadata": {}, - "outputs": [], - "source": [ - "# Set device\n", - "if not use_gpu:\n", - " device = torch.device('cpu')\n", - "else:\n", - " device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')" - ] - }, - { - "cell_type": "markdown", - "id": "4c0c5646", - "metadata": {}, - "source": [ - "### Values to keep fixed\n", - "The following values assume the settings from the training scripts. To change the following values, these scripts must be adapted and rerun." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "45130d71", - "metadata": {}, - "outputs": [], - "source": [ - "# Set further hyperparameters\n", - "from train_eiv_mexican import std_y, init_std_y_list, std_x_list\n", - "from train_eiv_mexican_fixed_std_x import std_x_list as fixed_std_x_list\n", - "from train_eiv_mexican_fixed_std_x import deming_scale_list\n", - "init_std_y = init_std_y_list[0]\n", - "fixed_std_x = fixed_std_x_list[0] # used only for the plot of the std_y evolution" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "29e84920", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Choosing deming factor 0.2\n" - ] - } - ], - "source": [ - "# Fix the maximal Deming factor below std_x/std_y\n", - "def find_nearest(a, x):\n", - " idx = (np.abs(a - x)).argmin()\n", - " return a[idx]\n", - "\n", - "def find_min_max(a, x):\n", - " idx = np.argwhere(a<x).max()\n", - " return a[idx]\n", - "\n", - "deming = find_min_max(np.array(deming_scale_list), std_x/std_y)\n", - "print('Choosing deming factor', deming)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "nervous-restoration", - "metadata": {}, - "outputs": [], - "source": [ - "# Function to fix seeds (for reproducability)\n", - "def set_seeds(seed):\n", - " torch.backends.cudnn.benchmark = False \n", - " random.seed(seed)\n", - " np.random.seed(seed)\n", - " torch.manual_seed(seed)" - ] - }, - { - "cell_type": "markdown", - "id": "545190ff", - "metadata": {}, - "source": [ - "## Prediction (for a single seed)\n", - "Produces Figure 2 from the preprint (if `std_x` is set to 0.07 in cell [2]). The network trained with random seed 0 is used." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "91413ba9", - "metadata": {}, - "outputs": [], - "source": [ - "# Change this to take a different network\n", - "# Choose an integer between 0 and 19\n", - "single_seed = 0" - ] - }, - { - "cell_type": "markdown", - "id": "806e87b2", - "metadata": {}, - "source": [ - "### Load networks and data" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "instrumental-survey", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "FNNEIV(\n", - " (main): Sequential(\n", - " (0): EIVInput()\n", - " (1): Linear(in_features=1, out_features=50, bias=True)\n", - " (2): LeakyReLU(negative_slope=0.01)\n", - " (3): EIVDropout()\n", - " (4): Linear(in_features=50, out_features=100, bias=True)\n", - " (5): LeakyReLU(negative_slope=0.01)\n", - " (6): EIVDropout()\n", - " (7): Linear(in_features=100, out_features=50, bias=True)\n", - " (8): LeakyReLU(negative_slope=0.01)\n", - " (9): EIVDropout()\n", - " (10): Linear(in_features=50, out_features=1, bias=True)\n", - " )\n", - ")" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Load EiV model\n", - "net = Networks.FNNEIV(p=0.5, deming=deming)\n", - "saved_file = os.path.join('saved_networks',\n", - " 'eiv_mexican_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_deming_scale_%.3f_seed_%i.pkl'\\\n", - " %(std_x, std_y, init_std_y, deming, single_seed))\n", - "train_loss, test_loss, stored_std_x, stored_std_y, state_dict\\\n", - " = train_and_store.open_stored_training(saved_file, net=net, device=device)\n", - "net.to(device)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "lovely-register", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "FNNBer(\n", - " (main): Sequential(\n", - " (0): Linear(in_features=1, out_features=50, bias=True)\n", - " (1): LeakyReLU(negative_slope=0.01)\n", - " (2): Dropout(p=0.5, inplace=False)\n", - " (3): Linear(in_features=50, out_features=100, bias=True)\n", - " (4): LeakyReLU(negative_slope=0.01)\n", - " (5): Dropout(p=0.5, inplace=False)\n", - " (6): Linear(in_features=100, out_features=50, bias=True)\n", - " (7): LeakyReLU(negative_slope=0.01)\n", - " (8): Dropout(p=0.5, inplace=False)\n", - " (9): Linear(in_features=50, out_features=1, bias=True)\n", - " )\n", - ")" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Load non-EiV model\n", - "ber_net = Networks.FNNBer(p=0.5, init_std_y=init_std_y)\n", - "ber_saved_file = os.path.join('saved_networks', \n", - " 'noneiv_mexican_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_seed_%i.pkl'\n", - " % (std_x, std_y, init_std_y, single_seed))\n", - "ber_train_loss, ber_test_loss, ber_stored_std_x, ber_stored_std_y, ber_state_dict\\\n", - " = train_and_store.open_stored_training(ber_saved_file, net=ber_net, device=device)\n", - "ber_net.to(device)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "08892aaa", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " -- Generating Mexican hat data with std_x = 0.07 and std_y = 0.30 --\n", - " -- Generating Mexican hat data with std_x = 0.07 and std_y = 0.30 --\n", - " -- Generating Mexican hat data with std_x = 0.07 and std_y = 0.30 --\n" - ] - } - ], - "source": [ - "# Generate data\n", - "train_data_pure, train_data,\\\n", - " test_data_pure,test_data,\\\n", - " val_data_pure,val_data,(func, normean, norstd) = generate_mexican_data.get_data(std_x=std_x, std_y=std_y)\n", - "val_x, val_y = val_data[0].numpy().flatten(), val_data[1].numpy().flatten()\n", - "val_pure_x, val_pure_y = val_data_pure[0].numpy().flatten(), val_data_pure[1].numpy().flatten()\n", - "# Sort according to unnoisy data\n", - "val_pure_ind = np.argsort(val_pure_x)\n", - "val_pure_x = val_pure_x[val_pure_ind]\n", - "val_pure_y = val_pure_y[val_pure_ind]\n", - "val_x = val_x[val_pure_ind]\n", - "val_y = val_y[val_pure_ind]" - ] - }, - { - "cell_type": "markdown", - "id": "uniform-toolbox", - "metadata": {}, - "source": [ - "### Predictions for noisy input\n", - "Produces Figure 2b from the preprint" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "reserved-dispatch", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# The ground truth\n", - "plot_x = np.linspace(-1.1,1.1)\n", - "plot_y = func(plot_x)[1]\n", - "\n", - "# Fix seeds\n", - "set_seeds(0)\n", - "\n", - "\n", - "## EiV model\n", - "net_train_state = net.training\n", - "net_noise_state = net.noise_is_on\n", - "net.train()\n", - "net.noise_on()\n", - "# Collect predictions\n", - "pred, _= [t.cpu().detach().numpy()\n", - " for t in net.predict(torch.tensor(val_x, dtype=torch.float32)[:,None].to(device), number_of_draws=5000,\n", - " take_average_of_prediction=False)]\n", - "pred_mean = np.mean(pred, axis=1).flatten()\n", - "pred_std = np.std(pred, axis=1).flatten()\n", - "\n", - "plt.ylim([-1.5,1.5])\n", - "\n", - "if net_train_state:\n", - " net.train()\n", - "else:\n", - " net.eval()\n", - "if net_noise_state:\n", - " net.noise_on()\n", - "else:\n", - " net.noise_off()\n", - "\n", - "\n", - "## Non-EiV model\n", - "ber_net_state = ber_net.training\n", - "ber_net.train()\n", - "ber_net.to(device)\n", - "# Collect predictions\n", - "ber_pred, _ = [t.cpu().detach().numpy()\n", - " for t in ber_net.predict(torch.tensor(val_x, dtype=torch.float32)[:,None].to(device), number_of_draws=5000,\n", - " take_average_of_prediction=False)]\n", - "ber_pred_mean = np.mean(ber_pred, axis=1).flatten()\n", - "ber_pred_std = np.std(ber_pred, axis=1).flatten()\n", - "plt.plot(plot_x, plot_y, color='b', label='ground truth', linewidth=2)\n", - "plt.plot(val_pure_x, ber_pred_mean, color='k', label='No EiV', linewidth=2)\n", - "plt.fill_between(val_pure_x, ber_pred_mean-k*ber_pred_std, ber_pred_mean+k*ber_pred_std, color='k', alpha=0.2)\n", - "plt.plot(val_pure_x, pred_mean, color='r', label='EiV', linewidth=2)\n", - "plt.fill_between(val_pure_x, pred_mean-k*pred_std, pred_mean+k*pred_std, color='r', alpha=0.2)\n", - "plt.xlabel(r'$\\zeta$')\n", - "if ber_net_state:\n", - " ber_net.train()\n", - "else:\n", - " ber_net.eval()\n", - " \n", - " \n", - "## save result\n", - "plt.savefig(os.path.join('saved_images','mexican_noisy_prediction_std_x_%.3f_std_y_%.3f.pdf' % (std_x, std_y)) )" - ] - }, - { - "cell_type": "markdown", - "id": "corrected-broadcasting", - "metadata": {}, - "source": [ - "### Predictions for unnoisy input\n", - "Produces Figure 2a from the preprint" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "coupled-reputation", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plot_x = np.linspace(-1.1,1.1)\n", - "plot_y = func(plot_x)[1]\n", - "net_train_state = net.training\n", - "net_noise_state = net.noise_is_on\n", - "net.train()\n", - "net.noise_off()\n", - "net.to(device)\n", - "set_seeds(0)\n", - "pred, _= [t.cpu().detach().numpy()\n", - " for t in net.predict(torch.tensor(plot_x, dtype=torch.float32)[:,None].to(device), number_of_draws=5000,\n", - " take_average_of_prediction=False)]\n", - "pred_mean = np.mean(pred, axis=1).flatten()\n", - "pred_std = np.std(pred, axis=1).flatten()\n", - "\n", - "# plt.ylim([-0.5,1.5])\n", - "plt.ylim([-1.5,1.5])\n", - "#plt.show()\n", - "if net_train_state:\n", - " net.train()\n", - "else:\n", - " net.eval()\n", - "if net_noise_state:\n", - " net.noise_on()\n", - "else:\n", - " net.noise_off()\n", - "\n", - "ber_net_state = ber_net.training\n", - "ber_net.train()\n", - "ber_pred, _ = [t.cpu().detach().numpy()\n", - " for t in ber_net.predict(torch.tensor(plot_x, dtype=torch.float32)[:,None].to(device), number_of_draws=5000,\n", - " take_average_of_prediction=False)]\n", - "ber_pred_mean = np.mean(ber_pred, axis=1).flatten()\n", - "ber_pred_std = np.std(ber_pred, axis=1).flatten()\n", - "#plt.figure()\n", - "#plt.plot(plot_x, plot_y, color='b', label='ground truth', linewidth=1)\n", - "plt.plot(plot_x, plot_y, color='b', label='ground truth', linewidth=2)\n", - "plt.plot(plot_x, ber_pred_mean, color='k', label='No EiV', linewidth=2)\n", - "plt.fill_between(plot_x, ber_pred_mean-k*ber_pred_std, ber_pred_mean+k*ber_pred_std, color='k', alpha=0.2)\n", - "plt.plot(plot_x, pred_mean, color='r', label='EiV', linewidth=2)\n", - "plt.fill_between(plot_x, pred_mean-k*pred_std, pred_mean+k*pred_std, color='r', alpha=0.2)\n", - "plt.xlabel(r'$\\zeta$')\n", - "if ber_net_state:\n", - " ber_net.train()\n", - "else:\n", - " ber_net.eval()\n", - "plt.savefig(os.path.join('saved_images','mexican_non_noisy_prediction_std_x_%.3f_std_y_%.3f.pdf' % (std_x, std_y)) )" - ] - }, - { - "cell_type": "markdown", - "id": "baking-legislature", - "metadata": {}, - "source": [ - "## Coverage\n", - "Produces Figure 3 of the preprint (if `std_x` is set to 0.07 in cell [2]) and part of Table 1" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "de3878d0", - "metadata": {}, - "outputs": [], - "source": [ - "## Functions used to compute the RMSE and the coverage\n", - "\n", - "def inside_uncertainties(predictions, truth, k=1.96):\n", - " mean = np.mean(predictions, axis=1).flatten()\n", - " std = np.std(predictions, axis=1).flatten()\n", - " inside = np.logical_and(truth > mean-k*std, truth < mean+k*std).flatten()\n", - " return inside\n", - "\n", - "def inside_explicit_uncertainties(mean, std, truth, k=1.96):\n", - " mean = mean.flatten()\n", - " std = std.flatten()\n", - " truth = truth.flatten()\n", - " inside = np.logical_and(truth > mean-k*std, truth < mean+k*std).flatten()\n", - " return inside\n", - "\n", - "# Use quantiles instead of uncertainties (not used in preprint - for concistency reasons)\n", - "def inside_intervals(predictions, truth):\n", - " up_quantile = np.quantile(predictions, 0.975, axis=1).flatten()\n", - " low_quantile = np.quantile(predictions, 0.025, axis=1).flatten()\n", - " inside = np.logical_and(truth > low_quantile, truth < up_quantile).flatten()\n", - " return inside\n", - "\n", - "def compute_mse(predictions, noisy_truth):\n", - " pred = np.mean(predictions, axis=1).flatten()\n", - " y = noisy_truth.flatten()\n", - " assert pred.shape == y.shape\n", - " mse = np.mean((pred-y)**2)\n", - " return mse\n", - "\n", - "\n", - " " - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "southwest-english", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "8365440245794dedadcd5b1221e97286", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/20 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "abef68d623154578b34377db92a29b31", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "9a6aae6c63284cd585172afef38d2886", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "2786699400334384a23050dce515ac97", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "911d1d3855bc499c873d98d77536bc16", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "a5e5710b61394673afd9c64f7e249973", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "94d24947982c4690b893e099c0b3b580", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "4f3ca928cfae4cf2bca14fcc712e3595", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "e96dd712202a44e3bf61ca36ecbf915e", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "684395289f6b4be988be7ae9047fc503", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "abe46b872dab4cf094a3646b6adecfae", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "e5e490fecd704454a761c623430687be", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "7795eff751e24cfab5b1eb151520592c", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "c5d22b18629d40ed9b5add85aca4de5a", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "711dd0806baa45d1a8d96a74b456db0b", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "b28bec3581864e79b4e08e79ac534b41", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "f655d7af203b4c2d98d30cf4944ae7dc", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "f18f1ae342bc457d8d2abf77f0720725", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "888b5761162243158c04ae6bedd8b890", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "51e53f03504a4dd5a46161cfbd6405c0", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "0c17d8ddb5e1443c8563e1a143f5be08", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Collect coverage and RMSE given a seed\n", - "def coverage_computation(net, ber_net, seed):\n", - " set_seeds(seed)\n", - " coverage_x = np.linspace(-1.1,1.1, num=100)\n", - " coverage_y = func(coverage_x)[1]\n", - " net_train_state = net.training\n", - " net_noise_state = net.noise_is_on\n", - " ber_net_state = ber_net.training\n", - " number_of_repeated_draws = 100#0\n", - " net.train()\n", - " net.noise_on()\n", - " ber_net.train()\n", - " inside_map = inside_uncertainties\n", - " net_inside_list, ber_net_inside_list = [], []\n", - " mse_list, ber_mse_list = [], []\n", - " for _ in tqdm(range(number_of_repeated_draws)):\n", - " noisy_coverage_x = coverage_x + std_x * np.random.normal(0,1,size=coverage_x.size)\n", - " noisy_coverage_y = coverage_y + std_y * np.random.normal(0,1,size=coverage_y.size)\n", - " pred, _ = [t.cpu().detach().numpy()\n", - " for t in net.predict(torch.tensor(noisy_coverage_x, dtype=torch.float32)[:,None].to(device), number_of_draws=200,\n", - " take_average_of_prediction=False)]\n", - " ber_pred, _ = [t.cpu().detach().numpy()\n", - " for t in ber_net.predict(torch.tensor(noisy_coverage_x, dtype=torch.float32)[:,None].to(device), number_of_draws=200,\n", - " take_average_of_prediction=False)]\n", - " net_inside_list.append(inside_map(pred, coverage_y))\n", - " ber_net_inside_list.append(inside_map(ber_pred, coverage_y))\n", - " mse_list.append(compute_mse(pred, noisy_coverage_y))\n", - " ber_mse_list.append(compute_mse(ber_pred, noisy_coverage_y))\n", - " net_inside = np.mean(np.stack(net_inside_list), axis=0)\n", - " ber_net_inside = np.mean(np.stack(ber_net_inside_list), axis=0)\n", - " mse = np.mean(np.array(mse_list))\n", - " ber_mse = np.mean(np.array(ber_mse_list))\n", - " if net_train_state:\n", - " net.train()\n", - " else:\n", - " net.eval()\n", - " if net_noise_state:\n", - " net.noise_on()\n", - " else:\n", - " net.noise_off()\n", - " if ber_net_state:\n", - " ber_net.train()\n", - " else:\n", - " ber_net.eval()\n", - " return coverage_x, coverage_y, net_inside, ber_net_inside, np.sqrt(mse), np.sqrt(ber_mse)\n", - "\n", - "# Loop over seeds\n", - "net_inside_collection, ber_net_inside_collection, rmse_collection, ber_rmse_collection = [], [], [], []\n", - "for seed in tqdm(seed_list):\n", - " seed_net = Networks.FNNEIV(p=0.5, deming=deming).to(device)\n", - " seed_ber_net = Networks.FNNBer(p=0.5, init_std_y=init_std_y).to(device)\n", - " ber_saved_file = os.path.join('saved_networks', \n", - " 'noneiv_mexican_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_seed_%i.pkl'\n", - " % (std_x, std_y, init_std_y, seed))\n", - " ber_train_loss, ber_test_loss, ber_stored_std_x, ber_stored_std_y, ber_state_dict\\\n", - " = train_and_store.open_stored_training(ber_saved_file, net=seed_ber_net, device=device)\n", - " saved_file = os.path.join('saved_networks', 'eiv_mexican_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_deming_scale_%.3f_seed_%i.pkl'% (std_x, std_y, init_std_y, deming, seed))\n", - " train_loss, test_loss, stored_std_x, stored_std_y, state_dict\\\n", - " = train_and_store.open_stored_training(saved_file, net=seed_net, device=device)\n", - " coverage_x, coverage_y, net_inside, ber_net_inside, rmse, ber_rmse = coverage_computation(seed=seed, net=seed_net, ber_net=seed_ber_net)\n", - " net_inside_collection.append(net_inside)\n", - " ber_net_inside_collection.append(ber_net_inside)\n", - " rmse_collection.append(rmse)\n", - " ber_rmse_collection.append(ber_rmse)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "opening-thanks", - "metadata": {}, - "outputs": [], - "source": [ - "# Reshape and process results\n", - "net_inside_collection = np.stack(net_inside_collection)\n", - "rmse_collection = np.stack(rmse_collection)\n", - "ber_net_inside_collection= np.stack(ber_net_inside_collection)\n", - "number_of_draws = net_inside_collection.shape[0]\n", - "net_inside_mean = np.mean(net_inside_collection, axis=0)\n", - "net_inside_std = np.std(net_inside_collection, axis=0)/np.sqrt(number_of_draws)\n", - "ber_net_inside_mean = np.mean(ber_net_inside_collection, axis=0)\n", - "ber_net_inside_std = np.std(ber_net_inside_collection, axis=0)/np.sqrt(number_of_draws)" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "connected-rwanda", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Coverage plot (Figure 3 in preprint)\n", - "plt.plot(coverage_x, net_inside_mean, color='orange', linewidth=2,alpha=0.9)\n", - "plt.errorbar(coverage_x, net_inside_mean, net_inside_std, color='r', linewidth=3, alpha=0.9, ecolor='red',fmt='o', linestyle='None')\n", - "plt.axhline(0.95, color='b', linestyle='dashed',linewidth=2,alpha=0.9)\n", - "plt.plot(coverage_x, ber_net_inside_mean, color='gray',linewidth=2,alpha=0.9)\n", - "plt.errorbar(coverage_x, ber_net_inside_mean, ber_net_inside_std, color='k', linewidth=3,alpha=0.9,ecolor='k',fmt='o',linestyle='None')\n", - "plt.xlabel(r'$\\zeta$')\n", - "plt.ylabel(r'coverage')\n", - "plt.savefig(os.path.join('saved_images','mexican_coverage_std_x_%.3f_std_y_%.3f.pdf' % (std_x, std_y)) )" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "smart-turkey", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "RMSE\n", - "===========\n", - "EiV: Average 0.353582, Error 0.000571\n", - "non-EiV: Average 0.355463, Error 0.000507\n", - "\n", - "\n", - "Coverage\n", - "===========\n", - "EiV: Average 0.926340, Error 0.000322\n", - "non-EiV: Average 0.815800, Error 0.000417\n" - ] - } - ], - "source": [ - "# Results for Table 1 in preprint\n", - "print('RMSE\\n===========')\n", - "print('EiV: Average %.6f, Error %.6f' %( np.mean(rmse_collection),\n", - " np.std(rmse_collection)/np.sqrt(len(rmse_collection))))\n", - "print('non-EiV: Average %.6f, Error %.6f' % (np.mean(ber_rmse_collection), \n", - " np.std(ber_rmse_collection)/np.sqrt(len(ber_rmse_collection))))\n", - "print('\\n')\n", - "\n", - "print('Coverage\\n===========')\n", - "print('EiV: Average %.6f, Error %.6f' %(net_inside_collection.mean(), \n", - " net_inside_collection.mean(axis=1).std()/np.sqrt(net_inside_collection.size)))\n", - "print('non-EiV: Average %.6f, Error %.6f' % (ber_net_inside_collection.mean(),\n", - " ber_net_inside_collection.mean(axis=1).std()\n", - " /np.sqrt(net_inside_collection.size)))\n" - ] - }, - { - "cell_type": "markdown", - "id": "b489002d", - "metadata": {}, - "source": [ - "# Results for Variational Dropout" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "a7bd8c98", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "FNN_VD_EIV(\n", - " (main): Sequential(\n", - " (0): EIVInput()\n", - " (1): Linear(in_features=1, out_features=50, bias=True)\n", - " (2): LeakyReLU(negative_slope=0.01)\n", - " (3): EIVVariationalDropout()\n", - " (4): Linear(in_features=50, out_features=100, bias=True)\n", - " (5): LeakyReLU(negative_slope=0.01)\n", - " (6): EIVVariationalDropout()\n", - " (7): Linear(in_features=100, out_features=50, bias=True)\n", - " (8): LeakyReLU(negative_slope=0.01)\n", - " (9): EIVVariationalDropout()\n", - " (10): Linear(in_features=50, out_features=1, bias=True)\n", - " )\n", - ")" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Load EiV VD model\n", - "vd_net = Networks.FNN_VD_EIV(initial_alpha=0.5, deming=deming)\n", - "saved_file = os.path.join('saved_networks',\n", - " 'eiv_vd_mexican_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_deming_scale_%.3f_seed_%i.pkl'\\\n", - " %(std_x, std_y, init_std_y, deming, single_seed))\n", - "train_loss, test_loss, stored_std_x, stored_std_y, state_dict\\\n", - " = train_and_store.open_stored_training(saved_file, net=vd_net, device=device)\n", - "vd_net.to(device)" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "4443a7ea", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "tensor(0.0070, dtype=torch.float64, grad_fn=<SoftplusBackward>)" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "vd_net.main[9].alpha()" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "8d8f11df", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "FNN_VD_Ber(\n", - " (main): Sequential(\n", - " (0): Linear(in_features=1, out_features=50, bias=True)\n", - " (1): LeakyReLU(negative_slope=0.01)\n", - " (2): EIVVariationalDropout()\n", - " (3): Linear(in_features=50, out_features=100, bias=True)\n", - " (4): LeakyReLU(negative_slope=0.01)\n", - " (5): EIVVariationalDropout()\n", - " (6): Linear(in_features=100, out_features=50, bias=True)\n", - " (7): LeakyReLU(negative_slope=0.01)\n", - " (8): EIVVariationalDropout()\n", - " (9): Linear(in_features=50, out_features=1, bias=True)\n", - " )\n", - ")" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Load non-EiV VD model\n", - "vd_ber_net = Networks.FNN_VD_Ber(initial_alpha=0.5, init_std_y=init_std_y)\n", - "vd_ber_saved_file = os.path.join('saved_networks', \n", - " 'noneiv_vd_mexican_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_seed_%i.pkl'\n", - " % (std_x, std_y, init_std_y, single_seed))\n", - "vd_ber_train_loss, ber_test_loss, ber_stored_std_x, ber_stored_std_y, ber_state_dict\\\n", - " = train_and_store.open_stored_training(vd_ber_saved_file, net=vd_ber_net, device=device)\n", - "vd_ber_net.to(device)" - ] - }, - { - "cell_type": "markdown", - "id": "8fddd747", - "metadata": {}, - "source": [ - "### VD Predictions for noisy input" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "6696d9e0", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# The ground truth\n", - "plot_x = np.linspace(-1.1,1.1)\n", - "plot_y = func(plot_x)[1]\n", - "\n", - "# Fix seeds\n", - "set_seeds(0)\n", - "\n", - "\n", - "## EiV model\n", - "vd_net_train_state = vd_net.training\n", - "vd_net_noise_state = vd_net.noise_is_on\n", - "vd_net.train()\n", - "vd_net.noise_on()\n", - "# Collect predictions\n", - "vd_pred, _= [t.cpu().detach().numpy()\n", - " for t in vd_net.predict(torch.tensor(val_x, dtype=torch.float32)[:,None].to(device), number_of_draws=5000,\n", - " take_average_of_prediction=False)]\n", - "vd_pred_mean = np.mean(vd_pred, axis=1).flatten()\n", - "vd_pred_std = np.std(vd_pred, axis=1).flatten()\n", - "\n", - "plt.ylim([-1.5,1.5])\n", - "\n", - "if vd_net_train_state:\n", - " vd_net.train()\n", - "else:\n", - " vd_net.eval()\n", - "if vd_net_noise_state:\n", - " vd_net.noise_on()\n", - "else:\n", - " net.noise_off()\n", - "\n", - "\n", - "## Non-EiV model\n", - "vd_ber_net_state = vd_ber_net.training\n", - "vd_ber_net.train()\n", - "vd_ber_net.to(device)\n", - "# Collect predictions\n", - "vd_ber_pred, _ = [t.cpu().detach().numpy()\n", - " for t in vd_ber_net.predict(torch.tensor(val_x, dtype=torch.float32)[:,None].to(device), number_of_draws=5000,\n", - " take_average_of_prediction=False)]\n", - "vd_ber_pred_mean = np.mean(vd_ber_pred, axis=1).flatten()\n", - "vd_ber_pred_std = np.std(vd_ber_pred, axis=1).flatten()\n", - "plt.plot(plot_x, plot_y, color='b', label='ground truth', linewidth=2)\n", - "plt.plot(val_pure_x, vd_ber_pred_mean, color='k', label='No EiV', linewidth=2)\n", - "plt.fill_between(val_pure_x, vd_ber_pred_mean-k*vd_ber_pred_std, vd_ber_pred_mean+k*vd_ber_pred_std, color='k', alpha=0.2)\n", - "plt.plot(val_pure_x, vd_pred_mean, color='r', label='EiV', linewidth=2)\n", - "plt.fill_between(val_pure_x, vd_pred_mean-k*vd_pred_std, vd_pred_mean+k*vd_pred_std, color='r', alpha=0.2)\n", - "plt.xlabel(r'$\\zeta$')\n", - "if vd_ber_net_state:\n", - " vd_ber_net.train()\n", - "else:\n", - " vd_ber_net.eval()\n" - ] - }, - { - "cell_type": "markdown", - "id": "3625ca6c", - "metadata": {}, - "source": [ - "### VD Predictions for unnoisy input" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "0ba613ef", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plot_x = np.linspace(-1.1,1.1)\n", - "plot_y = func(plot_x)[1]\n", - "vd_net_train_state = vd_net.training\n", - "vd_net_noise_state = vd_net.noise_is_on\n", - "vd_net.train()\n", - "vd_net.noise_off()\n", - "vd_net.to(device)\n", - "set_seeds(0)\n", - "vd_pred, _= [t.cpu().detach().numpy()\n", - " for t in vd_net.predict(torch.tensor(plot_x, dtype=torch.float32)[:,None].to(device), number_of_draws=5000,\n", - " take_average_of_prediction=False)]\n", - "vd_pred_mean = np.mean(vd_pred, axis=1).flatten()\n", - "vd_pred_std = np.std(vd_pred, axis=1).flatten()\n", - "\n", - "# plt.ylim([-0.5,1.5])\n", - "plt.ylim([-1.5,1.5])\n", - "#plt.show()\n", - "if vd_net_train_state:\n", - " vd_net.train()\n", - "else:\n", - " vd_net.eval()\n", - "if vd_net_noise_state:\n", - " vd_net.noise_on()\n", - "else:\n", - " vd_net.noise_off()\n", - "\n", - "vd_ber_net_state = vd_ber_net.training\n", - "vd_ber_net.train()\n", - "vd_ber_pred, _ = [t.cpu().detach().numpy()\n", - " for t in vd_ber_net.predict(torch.tensor(plot_x, dtype=torch.float32)[:,None].to(device), number_of_draws=5000,\n", - " take_average_of_prediction=False)]\n", - "vd_ber_pred_mean = np.mean(vd_ber_pred, axis=1).flatten()\n", - "vd_ber_pred_std = np.std(vd_ber_pred, axis=1).flatten()\n", - "#plt.figure()\n", - "#plt.plot(plot_x, plot_y, color='b', label='ground truth', linewidth=1)\n", - "plt.plot(plot_x, plot_y, color='b', label='ground truth', linewidth=2)\n", - "plt.plot(plot_x, vd_ber_pred_mean, color='k', label='No EiV', linewidth=2)\n", - "plt.fill_between(plot_x, vd_ber_pred_mean-k*vd_ber_pred_std, vd_ber_pred_mean+k*vd_ber_pred_std, color='k', alpha=0.2)\n", - "plt.plot(plot_x, vd_pred_mean, color='r', label='EiV', linewidth=2)\n", - "plt.fill_between(plot_x, vd_pred_mean-k*vd_pred_std, vd_pred_mean+k*vd_pred_std, color='r', alpha=0.2)\n", - "plt.xlabel(r'$\\zeta$')\n", - "if vd_ber_net_state:\n", - " vd_ber_net.train()\n", - "else:\n", - " vd_ber_net.eval()" - ] - }, - { - "cell_type": "markdown", - "id": "c407df3b", - "metadata": {}, - "source": [ - "## VD Coverage" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "1f9dbd64", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "0d091cae337149858b16790a2fcb2660", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/20 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "ace93cad5bf347db8d510a299cc82f17", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "ace349462acf4bf6bad3d25fcf5666fb", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "f349825279164961a44f80ea85f62600", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "ed7a655c742c4eee841b3f88b7903652", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "4ea8d787e31d4f8092d22b7775b81e89", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "8d5ef6677c34499aade5cfd9f2a36c11", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "c9463d985ede4065aa71076edaff62cb", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "eb4d5495a35b4aa09db601095bfd5a68", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "bf589c77cc36497ba76516bf5349fed2", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "072183d014f34618a0e3afc635841eb4", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "260028ee55704513a7b93973c052c530", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "97c8118677bd4155bd36d07df82a73d4", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "838896a6f85f488e8de2e707a4f9a0de", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "9922729bc1ea496085c3a67e517e78fa", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "a2db6b50a0ba41059c9c7718177b1137", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "4d436aafbfa64dd2a0bd31d59563c865", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "0b35d684cc3949beb22cda1462c73ec9", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "a20ab2f8df264cfe8a44cda08972f6e7", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "24916b809c3a4405a5e9706f5ef65528", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "47af9668899b4c7a9349767ac549e19c", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Collect coverage and RMSE given a seed\n", - "## NOTE: the following function can be deleted later on\n", - "\n", - "def coverage_computation(net, ber_net, seed):\n", - " set_seeds(seed)\n", - " coverage_x = np.linspace(-1.1,1.1, num=100)\n", - " coverage_y = func(coverage_x)[1]\n", - " net_train_state = net.training\n", - " net_noise_state = net.noise_is_on\n", - " ber_net_state = ber_net.training\n", - " number_of_repeated_draws = 100#0\n", - " net.train()\n", - " net.noise_on()\n", - " ber_net.train()\n", - " inside_map = inside_uncertainties\n", - " net_inside_list, ber_net_inside_list = [], []\n", - " mse_list, ber_mse_list = [], []\n", - " for _ in tqdm(range(number_of_repeated_draws)):\n", - " noisy_coverage_x = coverage_x + std_x * np.random.normal(0,1,size=coverage_x.size)\n", - " noisy_coverage_y = coverage_y + std_y * np.random.normal(0,1,size=coverage_y.size)\n", - " pred, _ = [t.cpu().detach().numpy()\n", - " for t in net.predict(torch.tensor(noisy_coverage_x, dtype=torch.float32)[:,None].to(device), number_of_draws=200,\n", - " take_average_of_prediction=False)]\n", - " ber_pred, _ = [t.cpu().detach().numpy()\n", - " for t in ber_net.predict(torch.tensor(noisy_coverage_x, dtype=torch.float32)[:,None].to(device), number_of_draws=200,\n", - " take_average_of_prediction=False)]\n", - " net_inside_list.append(inside_map(pred, coverage_y))\n", - " ber_net_inside_list.append(inside_map(ber_pred, coverage_y))\n", - " mse_list.append(compute_mse(pred, noisy_coverage_y))\n", - " ber_mse_list.append(compute_mse(ber_pred, noisy_coverage_y))\n", - " net_inside = np.mean(np.stack(net_inside_list), axis=0)\n", - " ber_net_inside = np.mean(np.stack(ber_net_inside_list), axis=0)\n", - " mse = np.mean(np.array(mse_list))\n", - " ber_mse = np.mean(np.array(ber_mse_list))\n", - " if net_train_state:\n", - " net.train()\n", - " else:\n", - " net.eval()\n", - " if net_noise_state:\n", - " net.noise_on()\n", - " else:\n", - " net.noise_off()\n", - " if ber_net_state:\n", - " ber_net.train()\n", - " else:\n", - " ber_net.eval()\n", - " return coverage_x, coverage_y, net_inside, ber_net_inside, np.sqrt(mse), np.sqrt(ber_mse)\n", - "\n", - "# Loop over seeds\n", - "vd_net_inside_collection, vd_ber_net_inside_collection, vd_rmse_collection, vd_ber_rmse_collection = [], [], [], []\n", - "for seed in tqdm(seed_list):\n", - " seed_vd_net = Networks.FNN_VD_EIV(initial_alpha=0.5, deming=deming).to(device)\n", - " seed_vd_ber_net = Networks.FNN_VD_Ber(initial_alpha=0.5, init_std_y=init_std_y).to(device)\n", - " vd_ber_saved_file = os.path.join('saved_networks', \n", - " 'noneiv_vd_mexican_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_seed_%i.pkl'\n", - " % (std_x, std_y, init_std_y, seed))\n", - " vd_ber_train_loss, vd_ber_test_loss, vd_ber_stored_std_x, vd_ber_stored_std_y, vd_ber_state_dict\\\n", - " = train_and_store.open_stored_training(vd_ber_saved_file, net=seed_vd_ber_net, device=device)\n", - " vd_saved_file = os.path.join('saved_networks', 'eiv_vd_mexican_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_deming_scale_%.3f_seed_%i.pkl'% (std_x, std_y, init_std_y, deming, seed))\n", - " vd_train_loss, vd_test_loss, vd_stored_std_x, vd_stored_std_y, vd_state_dict\\\n", - " = train_and_store.open_stored_training(vd_saved_file, net=seed_vd_net, device=device)\n", - " vd_coverage_x, vd_coverage_y, vd_net_inside, vd_ber_net_inside, vd_rmse, vd_ber_rmse = coverage_computation(seed=seed, net=seed_vd_net, ber_net=seed_vd_ber_net)\n", - " vd_net_inside_collection.append(vd_net_inside)\n", - " vd_ber_net_inside_collection.append(vd_ber_net_inside)\n", - " vd_rmse_collection.append(vd_rmse)\n", - " vd_ber_rmse_collection.append(vd_ber_rmse)" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "9766873f", - "metadata": {}, - "outputs": [], - "source": [ - "# Reshape and process results\n", - "vd_net_inside_collection = np.stack(vd_net_inside_collection)\n", - "vd_rmse_collection = np.stack(vd_rmse_collection)\n", - "vd_ber_net_inside_collection= np.stack(vd_ber_net_inside_collection)\n", - "number_of_draws = vd_net_inside_collection.shape[0]\n", - "vd_net_inside_mean = np.mean(vd_net_inside_collection, axis=0)\n", - "vd_net_inside_std = np.std(vd_net_inside_collection, axis=0)/np.sqrt(number_of_draws)\n", - "vd_ber_net_inside_mean = np.mean(vd_ber_net_inside_collection, axis=0)\n", - "vd_ber_net_inside_std = np.std(vd_ber_net_inside_collection, axis=0)/np.sqrt(number_of_draws)" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "id": "396260b6", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0, 0.5, 'coverage')" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Coverage plot\n", - "plt.plot(vd_coverage_x, vd_net_inside_mean, color='orange', linewidth=2,alpha=0.9)\n", - "plt.errorbar(vd_coverage_x, vd_net_inside_mean, vd_net_inside_std, color='r', linewidth=3, alpha=0.9, ecolor='red',fmt='o', linestyle='None')\n", - "plt.axhline(0.95, color='b', linestyle='dashed',linewidth=2,alpha=0.9)\n", - "plt.plot(vd_coverage_x, vd_ber_net_inside_mean, color='gray',linewidth=2,alpha=0.9)\n", - "plt.errorbar(vd_coverage_x, vd_ber_net_inside_mean, vd_ber_net_inside_std, color='k', linewidth=3,alpha=0.9,ecolor='k',fmt='o',linestyle='None')\n", - "plt.xlabel(r'$\\zeta$')\n", - "plt.ylabel(r'coverage')" - ] - }, - { - "cell_type": "markdown", - "id": "42c60be6", - "metadata": {}, - "source": [ - "# Results for Ensemble" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "1cdcb410", - "metadata": {}, - "outputs": [], - "source": [ - "ensemble_files = create_strings('noneiv_mexican_std_x_%.3f'\\\n", - "'_std_y_%.3f_init_std_y_%.3f_ensemble_seed_%i.pkl', ensemble_seed_list, (std_x, std_y, init_std_y,), ())\n", - "ensemble_files = [os.path.join('saved_networks',s) for s in ensemble_files]\n", - "ensemble_size = 5\n", - "assert len(ensemble_files) % ensemble_size == 0\n", - "number_of_ensembles = int(len(ensemble_files) / ensemble_size)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "981ad23f", - "metadata": {}, - "outputs": [], - "source": [ - "plot_x = np.linspace(-1.1,1.1)\n", - "plot_y = func(plot_x)[1]" - ] - }, - { - "cell_type": "markdown", - "id": "df2124ef", - "metadata": {}, - "source": [ - "### loop through ensembles and collect prediction, unc,rmse and coverage" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "3d216d87", - "metadata": {}, - "outputs": [], - "source": [ - "# The ground truth\n", - "plot_x = np.linspace(-1.1,1.1)\n", - "plot_y = func(plot_x)[1]\n", - "\n", - "# Fix seeds\n", - "set_seeds(0)\n", - "\n", - "#mean_collection = [] \n", - "#unc_collection = []\n", - "#for i in tqdm(range(number_of_ensembles)):\n", - "# file_chunk = ensemble_files[i*ensemble_size: (i+1)*ensemble_size]\n", - "# ens = Ensemble(saved_files = file_chunk,\n", - "# architecture_class=Networks.FNNBer,\n", - "# device=device,\n", - "# p=0.5, init_std_y=init_std_y)\n", - "# mean, std = ens.mean_and_std(torch.tensor(val_x, dtype=torch.float32)[:,None].to(device))\n", - "# mean_collection.append(mean.flatten())\n", - "# unc_collection.append(std.flatten())\n", - "#mean_collection = np.stack(mean_collection)\n", - "\n", - "mean, std = ens.mean_and_std(torch.tensor(val_x, dtype=torch.float32)[:,None].to(device))\n", - "mean = mean.detach().cpu().numpy().flatten()\n", - "std = std.detach().cpu().numpy().flatten()" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "25303106", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(200,)" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "mean.shape" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "13bdbecd", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "<matplotlib.collections.PolyCollection at 0x7fe235fd00d0>" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.plot(plot_x, plot_y, color='b', label='ground truth', linewidth=2)\n", - "plt.plot(val_pure_x, mean, color='g', label='Ensemble', linewidth=2)\n", - "plt.fill_between(val_pure_x, mean-k*std,\n", - " mean+k*std, color='g', alpha=0.2)" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "id": "1f517745", - "metadata": {}, - "outputs": [], - "source": [ - "def ens_coverage_computation(ens, seed):\n", - " set_seeds(seed)\n", - " coverage_x = np.linspace(-1.1,1.1, num=100)\n", - " coverage_y = func(coverage_x)[1]\n", - " number_of_repeated_draws = 100#0\n", - " ens_inside_list = []\n", - " ens_mse_list = []\n", - " for _ in tqdm(range(number_of_repeated_draws)):\n", - " noisy_coverage_x = coverage_x + std_x * np.random.normal(0,1,size=coverage_x.size)\n", - " noisy_coverage_y = coverage_y + std_y * np.random.normal(0,1,size=coverage_y.size)\n", - " mean, std = [t.cpu().detach().numpy()\n", - " for t in ens.mean_and_std(torch.tensor(noisy_coverage_x, dtype=torch.float32)[:,None])]\n", - " ens_inside_list.append(inside_explicit_uncertainties(mean, std, coverage_y))\n", - " ens_mse_list.append(np.mean((mean.flatten()-noisy_coverage_y.flatten())**2))\n", - " ens_inside = np.mean(np.stack(ens_inside_list), axis=0)\n", - " mse = np.mean(np.array(ens_mse_list))\n", - " return coverage_x, coverage_y, ens_inside, np.sqrt(mse)" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "id": "f381570a", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "dd4b7a51aec1456f84e27485a040e335", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/20 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "07e30e8291d04add90d48f7d503d0354", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "f593a76c68ac4f1a8bfd85d71e12098c", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "7ec8e577b7f1417a9bfefd513386c206", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "1be1725b580642fa89a0f8210aadd273", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "4fb5374806604868ae2045dba4212649", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "d3b6d811f1104df5a60573c84a93e732", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "128dbf5eebab427e9ba9365e5695cb21", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "c1ef006def724ff4a7d0ee770f5b4bae", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "2fe8e01ae32f4b27910d5ab95c95d0dc", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "14fc39fbbbaf477d9592fd30cbff87ac", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "8dabab7d3789460bb7030fe372d0cd9c", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "0519917e872c42fbba452bd9538f2674", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "2abcc1e5e1d94710b45aa33fdbb5b7be", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "425d0345fcd94156b2b5a5ff66793843", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "675499fc83ec413bbebe18929ff50d19", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "43442a470dc343d38022f33ee2904ea5", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "2c1f11ba3d7544cb9cd503c77b41a933", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "cba3c620bdf44234932ffc9710929801", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "243f702210e34bdebe892f1e2ca5bfd7", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "db69c709717043daa1223d2f6b609244", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "ens_inside_collection = []\n", - "rmse_collection = []\n", - "for i in tqdm(range(number_of_ensembles)):\n", - " file_chunk = ensemble_files[i*ensemble_size: (i+1)*ensemble_size]\n", - " ens = Ensemble(saved_files = file_chunk,\n", - " architecture_class=Networks.FNNBer,\n", - " device=device,\n", - " p=0.5, init_std_y=init_std_y)\n", - " _,_, ens_inside, rmse = ens_coverage_computation(ens, seed=i*ensemble_size)\n", - " ens_inside_collection.append(ens_inside)\n", - " rmse_collection.append(rmse)\n", - "ens_inside_collection = np.stack(ens_inside_collection)\n", - "rmse_collection = np.stack(rmse_collection)" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "id": "94112e7e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(20, 100)" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ens_inside_collection.shape" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "id": "d2a1c07f", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "RMSE\n", - "===========\n", - "Average 0.358710, Error 0.000718\n", - "\n", - "\n", - "Coverage\n", - "===========\n", - "Average 0.323130, Error 0.011597\n" - ] - } - ], - "source": [ - "# Results for Table 1 in preprint\n", - "print('RMSE\\n===========')\n", - "print('Average %.6f, Error %.6f' %( np.mean(rmse_collection),\n", - " np.std(rmse_collection)/np.sqrt(len(rmse_collection))))\n", - "print(\"\\n\")\n", - "\n", - "print('Coverage\\n===========')\n", - "print('Average %.6f, Error %.6f' %(ens_inside_collection.mean(), \n", - " ens_inside_collection.mean(axis=1).std()/np.sqrt(ens_inside_collection.shape[0])))" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "id": "0670fdf3", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0, 0.5, 'coverage')" - ] - }, - "execution_count": 40, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Coverage plot\n", - "plt.plot(coverage_x, ens_inside_collection.mean(axis=0), color='cyan', linewidth=2,alpha=0.9)\n", - "plt.errorbar(coverage_x, ens_inside_collection.mean(axis=0), ens_inside_collection.std(axis=0)/np.sqrt(ens_inside_collection.shape[0]), color='g', linewidth=3, alpha=0.9, ecolor='green',fmt='o', linestyle='None')\n", - "plt.axhline(0.95, color='b', linestyle='dashed',linewidth=2,alpha=0.9)\n", - "plt.xlabel(r'$\\zeta$')\n", - "plt.ylabel(r'coverage')" - ] - }, - { - "cell_type": "markdown", - "id": "stable-playing", - "metadata": {}, - "source": [ - "## Evolution of $\\sigma_y$\n", - "\n", - "Produces Figure 1 from the preprint. In contrast to the plots above, this uses the results of the training scripts `train_eiv_mexican_fixed_std_x.py` and `train_noneiv_mexican_fixed_std_x.py` and `fixed_std_x` instead of `std_x`.\n", - "\n", - "(This distinction was only done for computational reasons.)" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "id": "5918ea1f", - "metadata": {}, - "outputs": [], - "source": [ - "# For scaling the x-axis\n", - "train_len = generate_mexican_data.n_train\n", - "epoch_scale = (report_point-1)*batch_size/train_len" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "id": "forbidden-armstrong", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "bc69118b2f9a4a2987d21953f3102ffd", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/9 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Load sigma_y evolution from files\n", - "stored_std_y_collection, ber_stored_std_y_collection = [], []\n", - "for i, deming_scale_test in enumerate(tqdm(deming_scale_list)):\n", - " fixed_deming_std_y_collection = []\n", - " for seed in seed_list:\n", - " saved_file = os.path.join('saved_networks', 'eiv_mexican_fixed_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_deming_scale_%.3f_seed_%i.pkl'% (fixed_std_x, std_y, init_std_y, deming_scale_test, seed))\n", - " _, _, _, stored_std_y, _ = train_and_store.open_stored_training(saved_file, net=None, device=device)\n", - " fixed_deming_std_y_collection.append(stored_std_y.cpu().numpy())\n", - " if i == 0:\n", - " ber_saved_file = os.path.join('saved_networks', 'noneiv_mexican_fixed_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_seed_%i.pkl'% (fixed_std_x, std_y, init_std_y, seed))\n", - " _, _, _, ber_stored_std_y, _ = train_and_store.open_stored_training(ber_saved_file, net=None, device=device)\n", - " ber_stored_std_y_collection.append(ber_stored_std_y.cpu().numpy())\n", - " stored_std_y_collection.append(np.stack(fixed_deming_std_y_collection, axis=0))\n", - "ber_sy = np.stack(ber_stored_std_y_collection, axis=0)" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "id": "palestinian-federation", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Create plots with standard errors (Figure 1 in the preprint)\n", - "plt.figure()\n", - "evol_x = np.arange(0, len(stored_std_y)) * epoch_scale\n", - "scale = 1/np.sqrt(len(seed_list))\n", - "for i, (sy, dem) in enumerate(zip(stored_std_y_collection, deming_scale_list)):\n", - " color = plt.get_cmap(\"tab20\")(i)\n", - " plt.plot(evol_x, np.mean(sy,axis=0), label=r'$\\delta$' + '=' + str(dem), linewidth=2, color=color)\n", - " plt.fill_between(evol_x, np.mean(sy,axis=0)-scale*np.std(sy, axis=0),\n", - " np.mean(sy,axis=0)+scale*np.std(sy, axis=0),\n", - " linewidth=2, color=color)\n", - " plt.ylabel(r'$\\sigma_y$')\n", - " plt.xlabel('epochs')\n", - "plt.plot(evol_x, np.mean(ber_sy, axis=0), color='k', label='non-EiV', linewidth=2)\n", - "plt.fill_between(evol_x, np.mean(ber_sy, axis=0)-\n", - " scale*np.std(ber_sy, axis=0), \n", - " np.mean(ber_sy, axis=0)+\n", - " scale*np.std(ber_sy, axis=0),\n", - " color='k', alpha=0.7)\n", - "plt.axhline(std_y, 0,1, color='blue', linestyle='dotted', linewidth=2)\n", - "plt.legend(loc=(1.04,0))\n", - "plt.tight_layout()\n", - "plt.savefig(os.path.join('saved_images','mexican_sigmay_evol_std_x_%.3f_std_y_%.3f.pdf' % (fixed_std_x, std_y)) )" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "fff4d432", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.5" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Experiments/old_scripts/evaluate_multinomial.ipynb b/Experiments/old_scripts/evaluate_multinomial.ipynb deleted file mode 100644 index 8f9a832..0000000 --- a/Experiments/old_scripts/evaluate_multinomial.ipynb +++ /dev/null @@ -1,751 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "canadian-hampton", - "metadata": {}, - "source": [ - "# Results for a 5D multinomial\n", - "\n", - "This notebook produces the results of EiV and non-EiV models for data following a modulated, 5 dimensional random multinomial as presented in the preprint \"Errors-in-Variables for deep learning: rethinking aleatoric uncertainty\" submitted to NeurIPS 2021.\n", - "\n", - "\n", - "This notebook produces Figures 4 and part of Table 1 of the preprint. \n", - "\n", - "How to use this notebook: \n", - "\n", - "+ This notebook assumes that the corresponding trained networks exist in `saved_networks`. To achieve this either run the training scripts described in the `README` or load the pre-trained networks from the link in the `README` into the `saved_networks` folder. \n", - "\n", - "+ To run this notebook click, \"Run\" in the menu above. \n", - "\n", - "+ To consider different levels of input noise, change `std_x` in cell [3]\n", - "\n", - "+ To run this notebook with a GPU, set `use_gpu` to `True` in cell [3] (default is `False`)\n", - "\n", - "+ Plots will be displayed inline and, in addition, saved to `saved_images`\n", - "\n", - "+ The content of Table 1 is produced under \"Coverage\" below . To get the different columns, change `std_x` as explained above.\n", - "\n", - "**Note**: Running the \"Coverage\" section below will take around 1h 45 min." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "higher-johnston", - "metadata": {}, - "outputs": [], - "source": [ - "import random\n", - "import os\n", - "\n", - "import numpy as np\n", - "import torch\n", - "import torch.nn as nn\n", - "from torch.utils.data import DataLoader, TensorDataset\n", - "import matplotlib\n", - "import matplotlib.pyplot as plt\n", - "from tqdm.notebook import tqdm\n", - "\n", - "from EIVArchitectures import Networks\n", - "import generate_multinomial_data\n", - "from EIVTrainingRoutines import train_and_store\n", - "\n", - "%matplotlib inline" - ] - }, - { - "cell_type": "markdown", - "id": "89700d89", - "metadata": {}, - "source": [ - "## Fix relevant hyperparameters" - ] - }, - { - "cell_type": "markdown", - "id": "70eabc92", - "metadata": {}, - "source": [ - "### Values that can be changed" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "4346c8f2", - "metadata": {}, - "outputs": [], - "source": [ - "# The std_x used for data generation and model loading. \n", - "# Pick either 0.05, 0.07 or 0.10\n", - "# For figure 4 in the preprint 0.07 was used\n", - "std_x = 0.07\n", - "\n", - "# Switch to True if GPU should be used\n", - "use_gpu = False\n", - "\n", - "# Uncertainty coverage factor (1.96 taken from the standard normal)\n", - "k=1.96" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "lesser-brave", - "metadata": {}, - "outputs": [], - "source": [ - "# graphics\n", - "fontsize=15\n", - "matplotlib.rcParams.update({'font.size': fontsize})" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "45e3d119", - "metadata": {}, - "outputs": [], - "source": [ - "# Set device\n", - "if not use_gpu:\n", - " device = torch.device('cpu')\n", - "else:\n", - " device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')" - ] - }, - { - "cell_type": "markdown", - "id": "e5ffa66f", - "metadata": {}, - "source": [ - "### Values to keep fixed\n", - "The following values assume the settings from the training scripts. To change the following values, these scripts must be adapted and rerun." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "d99d560d", - "metadata": {}, - "outputs": [], - "source": [ - "# Set further hyperparameters\n", - "from train_eiv_multinomial import std_y, init_std_y_list, \\\n", - " precision_prior_zeta, deming_scale_list, dim\n", - "init_std_y = init_std_y_list[0]" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "micro-chest", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Choosing deming 0.2\n" - ] - } - ], - "source": [ - "# Fix the maximal Deming factor below std_x/std_y\n", - "def find_nearest(a, x):\n", - " idx = (np.abs(a - x)).argmin()\n", - " return a[idx]\n", - "\n", - "\n", - "def find_min_max(a, x):\n", - " idx = np.argwhere(a<x).max()\n", - " return a[idx]\n", - "\n", - "deming = find_min_max(np.array(deming_scale_list), std_x/std_y)\n", - "print('Choosing deming ', deming)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "24199de2", - "metadata": {}, - "outputs": [], - "source": [ - "# function to fix seeds (for reproducability)\n", - "def set_seeds(seed):\n", - " torch.backends.cudnn.benchmark = False \n", - " random.seed(seed)\n", - " np.random.seed(seed)\n", - " torch.manual_seed(seed)" - ] - }, - { - "cell_type": "markdown", - "id": "specific-divide", - "metadata": {}, - "source": [ - "## Prediction (for a single seed)\n", - "Produces Figure 4 from the preprint" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "10b4adf8", - "metadata": {}, - "outputs": [], - "source": [ - "# Change this to take a different network\n", - "# Choose an integer between 0 and 19\n", - "single_seed = 0" - ] - }, - { - "cell_type": "markdown", - "id": "ec7a913c", - "metadata": {}, - "source": [ - "### Load networks and data" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "88ba4449", - "metadata": {}, - "outputs": [], - "source": [ - "# Load EiV model\n", - "net = Networks.FNNEIV(p=0.5, init_std_y=init_std_y,\n", - " precision_prior_zeta=precision_prior_zeta, deming=deming,\n", - " h=[dim, 500, 300, 100, 1])\n", - "saved_file = os.path.join('saved_networks', \n", - " 'eiv_multinomial_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_deming_scale_%.3f_seed_%i.pkl'\n", - " % (std_x, std_y, init_std_y, deming, single_seed))\n", - "net.to(device)\n", - "train_loss, test_loss, stored_std_x, stored_std_y, state_dict, extra_list\\\n", - " = train_and_store.open_stored_training(saved_file, net=net, extra_keys=['rmse'], device=device)\n", - "rmse = extra_list[0]" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "21ea183b", - "metadata": {}, - "outputs": [], - "source": [ - "# Load non-EiV model\n", - "ber_net = Networks.FNNBer(p=0.5, init_std_y=init_std_y, h=[dim,500,300,100,1])\n", - "ber_saved_file = os.path.join('saved_networks', \n", - " 'noneiv_multinomial_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_seed_%i.pkl'\n", - " % (std_x, std_y, init_std_y,single_seed))\n", - "ber_net.to(device)\n", - "ber_train_loss, ber_test_loss, ber_stored_std_x, ber_stored_std_y, ber_state_dict\\\n", - " = train_and_store.open_stored_training(ber_saved_file, net=ber_net, device=device)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "438a5389", - "metadata": {}, - "outputs": [], - "source": [ - "# Generate data\n", - "train_data_pure, train_data, test_data_pure, test_data, val_data_pure, val_data, func = generate_multinomial_data.get_data(std_x=std_x, std_y=std_y, dim=dim, n_train=10000)" - ] - }, - { - "cell_type": "markdown", - "id": "protective-warning", - "metadata": {}, - "source": [ - "Cycle through different dimensions and plot" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "progressive-wheat", - "metadata": {}, - "outputs": [], - "source": [ - "set_seeds(0)\n", - "\n", - "# will be taken for all coordinates\n", - "# except for the plot dimension\n", - "cut_offset = 0.0\n", - "\n", - "# Plot EiV along plot_dim\n", - "def plot_eiv_uncertainty(net, plot_dim, ax):\n", - " offset = cut_offset\n", - " steps = 50\n", - " x_slice = torch.linspace(-1, 1, steps=steps)\n", - " plot_x = torch.zeros((steps,dim)) + offset\n", - " plot_x[:,plot_dim] = x_slice\n", - " plot_y = func(plot_x)\n", - " net_train_state = net.training\n", - " net_noise_state = net.noise_is_on\n", - " net.train()\n", - " net.noise_on()\n", - " val_x = plot_x + std_x * torch.randn_like(plot_x)\n", - " pred, _ = [t.cpu().detach().numpy()\n", - " for t in net.predict(val_x.to(device), number_of_draws=5000,\n", - " take_average_of_prediction=False)]\n", - " pred_mean = np.mean(pred, axis=1).flatten()\n", - " pred_std = np.std(pred, axis=1).flatten()\n", - " print('RMSE: ', np.sqrt(np.mean( ((plot_y-pred_mean)**2).detach().cpu().numpy() )))\n", - "# ax.plot(x_slice, plot_y, color='b', label='ground truth', linewidth=2)\n", - " ax.plot(x_slice, pred_mean, color='r', label='EiV', linewidth=2)\n", - " ax.fill_between(x_slice, pred_mean-k*pred_std, pred_mean+k*pred_std, color='r', alpha=0.2)\n", - " ax.set_ylim([-2.5,2.5])\n", - "# ax.legend()\n", - " if net_train_state:\n", - " net.train()\n", - " else:\n", - " net.eval()\n", - " if net_noise_state:\n", - " net.noise_on()\n", - " else:\n", - " net.noise_off()\n", - " \n", - "# Plot non-EiV along plot_dim \n", - "def plot_ber_uncertainty(ber_net, plot_dim, ax):\n", - " offset = cut_offset\n", - " steps = 50\n", - " x_slice = torch.linspace(-1, 1, steps=steps)\n", - " plot_x = torch.zeros((steps,dim)) + offset\n", - " plot_x[:,plot_dim] = x_slice\n", - " plot_y = func(plot_x)\n", - " ber_net_train_state = ber_net.training\n", - " ber_net.train()\n", - " val_x = plot_x + std_x * torch.randn_like(plot_x)\n", - " ber_pred, _ = [t.cpu().detach().numpy()\n", - " for t in ber_net.predict(val_x.to(device), number_of_draws=5000,\n", - " take_average_of_prediction=False)]\n", - " ber_pred_mean = np.mean(ber_pred, axis=1).flatten()\n", - " ber_pred_std = np.std(ber_pred, axis=1).flatten()\n", - " print('RMSE: ', np.sqrt(np.mean( ((plot_y-ber_pred_mean)**2).detach().cpu().numpy() )))\n", - " ax.plot(x_slice, plot_y, color='b', label='ground truth', linewidth=2)\n", - " ax.plot(x_slice, ber_pred_mean, color='k', label='No EiV', linewidth=2)\n", - " ax.fill_between(x_slice, ber_pred_mean-k*ber_pred_std, ber_pred_mean+k*ber_pred_std, color='k', alpha=0.2)\n", - " ax.set_ylim([-2.7,2.7])\n", - "# ax.legend()\n", - " if ber_net_train_state:\n", - " ber_net.train()\n", - " else:\n", - " ber_net.eval()" - ] - }, - { - "cell_type": "markdown", - "id": "b08b228a", - "metadata": {}, - "source": [ - "The plot in Figure 4 is for `dim = 3`" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "neither-dryer", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "dim=0\n", - "RMSE: 0.23402432\n", - "RMSE: 0.31458178\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "dim=1\n", - "RMSE: 0.2635148\n", - "RMSE: 0.34235352\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "dim=2\n", - "RMSE: 0.20350547\n", - "RMSE: 0.29037118\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "dim=3\n", - "RMSE: 0.49944907\n", - "RMSE: 0.5371489\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAEUCAYAAAAlXv26AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAB6EklEQVR4nO29d3hkZ3mwf7/Tu3rfXUmr7d322l53bIwbvSSYkvI5tCSELyQQPkIKEEhIAQIEfoSOAUMwNRhscMEF97V3vb0XaVe9TO9zzu+P98xoNJqRRmUkrfa9r+tcM5o55Z2jc57zvE8Vuq6jUCgUiuWLabEHoFAoFIrKogS9QqFQLHOUoFcoFIpljhL0CoVCscxRgl6hUCiWOZbFHkAh9fX1ekdHx2IPQ6FQKC4oXnjhhWFd1xuKfbfkBH1HRwe7d+9e7GEoFArFBYUQ4myp75TpRqFQKJY5StArFArFMkcJeoVCoVjmKEGvUCgUyxwl6BUKhWKZowS9QqFQLHOUoFcoFIpljhL0CoVCscxRgl6hUCiWOUrQKxQKxTJHCXqFQqFY5ihBr1AoFMscJegVCoVimaMEvUKhUCxzlKBXKBSKZU5FBL0Q4veEEP8rhDgvhAgLIV4QQrylEsdSKBQKxdRUqvHIXwGngfcDw8AdwD1CiHpd179QoWMqFAqFogiVEvSv1nV9OO/vR4QQrcgHgBL0CoVCsYBUxHRTIOSz7AEaK3E8hUKhUJRmIZ2xVwOHFvB4CoVCoWCBBL0Q4uXAa4Evlvj+XUKI3UKI3UNDQwsxJIVCobhoqLigF0J0APcAP9d1/VvF1tF1/Su6ru/UdX1nQ0NDpYekUCgUFxUVFfRCiFrgfqAbeHslj6VQKBSK4lRM0AshXMB9gA14pa7rkUodS6FQKBSlqUh4pRDCAtwLrAWu0XV9sBLHUSgUCsX0VCqO/kvIJKn/C9QKIXblfbdH1/VEhY6rUCgUigIqJehvMV4/V+S7TuBMhY6rUCgUigIqIuh1Xe+oxH4VCoVCMXNU9UqFQqFY5ihBr1AoFMscJegVCoVimaMEvUKhUCxzlKBXKBSKZY4S9AqFQrHMUYJeoVAoljlK0CsUCsUyRwl6hUKhWOYoQa9QKBTLHCXoFQqFYpmjBL1CoVAsc5SgVygUimWOEvQKhUKxzFGCvtJoGoRC87OvcBj8fohGIZOZn30qFIplT6UajyiyjI7C3r1w9dXgcs18+2QSRkbg9GkIBECI8e9sNrlPtxtaW6Gubt6GrVBc8Og6DAyAxyOXixgl6CtNdzdEInD4MFx66URBXQpNk0L93Dk4f15esF4vNDZOXC+TgVQKhoZgeBhuuAFMapKmUJBIwKFD8v5btQouuWSxR7SoKEFfSeJxqVG0tcnXwUFoapp6m3QaXnxRavF2u9TSSwlvs1kuDofc99iY0uoVisFB2LdPvm9rg/5+qWy53Ys7rkVEqX+VZGhICmkhoLoa9u+XpphS6LrUQsbGpPZeVVW+hu5ySfOOQrHU6O2FYHBu+0ilpBm0u1veV5GInPkWrnPgADz/vLwfamrkvWe1Qk/P3I5/gaM0+kqh61LwZm2Ddrt0pp44AZs2Fd/m1Clprik00ZSD2z1+A1zEmotiiaFpcOSInGlu317+dqmUvF/GxqRGHgjIz00muU8h5HufD2pr5X129KjcrqlpoonU54OzZ6GzU96HFyFK0FeKUEgK3XyhXVsLZ85AS4vUNvLp75c3RGNjeXb8QoQAi0VqT2vXzmnoCsW8EQhIE2ZfH2zYUJ6gDYXgmWekGdNslopLMeVH16UtvqdHCniPRwr1Qsxm+drXBx0dc/o5FyrKdFMpenvllDEfIeSFuH//xPDIQAD27JnaHl8OPp+cRaTTs9+HQjGf9PWNC/fBwfK26e6W90Fjo7wnHI7i6wkhv6uuhoYGcDpL77OqSs6mL9KwZCXoS6Hrs982k5Fahtc7+TunU8bBnzkj/47FYPduuW7hg2GmWCzy2ENDc9uPQjEfZDLSFOn1yuX06envq3hcCvpimvlcsFqlf6zch00xXnrpgn1QKEFfioMHpellNoyOSq3aUsIyVlsr7YljYzLCRoiptZGZ4PPByZNze1ApFPPB2JgUjNnIsEhk3NZeit5euX4lwoSzWv1s7o1kUiYrThVMsYRRgr4UIyPyHzsburunTo4ym+X3zz0nL/6qqtkdpxgOh7RxTndDKRSV5ty5iQqMzSbzQkqRTkslZT7vh3wcjnEH70yJx+VMPJWa/3EtAErQF0PXpUmlt3fm28Zicno4XeSL1ytvgkrEvdtsF304mWKRSSbHs1Kz+HxS+JcSlkNDU8+E5wOXS0a3zZSsoL9A/V9K0BcjnZbCfmRk5k/wwcHx2PnpqFQYZPaGiscrs3+FYjpGRsbDILNkQyOHhyevr+tw/Pj82+YL8XjkA2Wm9afCYfnwUhr9MiKdHr9AZ5LooevSyVrMCbuQmExy6e9f3HEoLl66u4vXl/F6i2vUY2PSjFkqwmY+sdnk+GZCICDHdoEqT0rQFyP71LZaZ+alDwbl9G4pJGVUVckoh8LsQYWi0sRiMiChmJ/K6ZT3SaFGferU7Ir+zQafTwr6mQjtYFCOLxar3LgqiBL0xcja4TweqRWX66U/f15qC0sBq1VeyKOjiz0SxcXG8PDUUTPZxL4soZA0pyxUhUmTSQZElOuDy2TkvZQNjb4AqZigF0KsEUL8txDiJSFERgjxaKWONe9kNXqLRf6DywmzTKfHY4aXCi6XrP1x5Ih8CA0Py5sqkVDhl4rKcfbs1EI7W5Igq1D19Mw9h2SmuFzFfQXFiMfl/ZKVBxcglSyBsBm4A3gGWCJqbpkkk+M2epNJhllOp20MD4/HDC8VPB451Tx/ftzBnCWbVejxSKewxyNNTnb7uDO5cDGZ5MVehqM5k8kwODhIPB4nkUiQSqVIpVLE43EymQxNTU00NTXh8/kQsyn5MMVx0+k0mUwGi8WC1Wqdt/3ruk4sFiMUCjEyMkI0GqWtrY26ujpsFZjJZX+HfSmYAsslFJLLVPWasol9o6PSxNjdvfBVV+126RfQ9emv56xwt1jmr4nQAlNJQf8LXdd/DiCE+BFQX8FjzS+x2HiIl8sl07hXrCi9vq7LRIxKRwzMBqezeDKWrkvhH43KB1nhgyCLEOOfZ99bLFIDs9ulqcpulzMZhwNsNuKaxktHjjDi92O1WjGZTFgsFkwmEyaTCbPZzNmzZzl58iQOh4OVK1fS2NiI1+udUiin02kSiURuCYVChMPhCZ/Jnzb+O4QQ2Gw2nE5nbskfS3YRQuSOnX2fXZLJJENDQwwPD5MyZns2mw2LxcJLL70EQFNTEytXrqSmpgbzTB/22bA9qxWsViKJBL29vZw+fRpd11m3bh2rVq2a+X4Xg8HB8pQdt1v6kLIFyBa6j0I2AigWm943EInIMZrNcravaRdc34eKCXpd1y9cL2A8Pi7onU6pradSpaeXo6PSWTNdrfmlRLZ8q9U6cyeYpkmNLJORYWeBgJw1aBqhUIgTJ09i03XWVFWhWa1gNqMZDwfNYkG3WvHYbOhWK8lkku6DBzl58CAOjweX14sOaJqGZjiSdV0nkUiQNLISRSaDyGSwmUxYzWZMFgtumw2vx4Mwm9GNGYjIZCCdRksmyYyOEkkkCCUSZIRAM5nQLRY0kwnNbEYzmydodlmhn31oOBwOPB4PloIYb7fbja7rBAIBBs6fx5ZMsqKujobWVrwNDVjc7snXTSolr5ehIalExOPoQCgcpr+/H38ggHA6aa2pQbNY6D12jFGbja7Vq6n2+cYd7NkZWHbJ/386HLMrjjcXNE2aZMpReNxu+VAIBmWtmsVA1+VDdrrrPxCYGGCRSi2NgIsZoKpXFiMeH9dKslpsMFh6enny5MVVGjgbvpknwHRdp39ggJO9vXgaGrDb7WQ0DTQNoWmYkklEPI7Z+FtoGjrg1HWyeZDpdFoKd8NZpplMCIsF3WymCrBqGiKVmjjDkAdHAMW8DgKk4Nd1uZ7JlBPeWTGoC4HQdXSzWS7Z41ssYLGgWSxoiQR6IoFuseQWAFM8jjkYxDM2hikSQdM0IseO4U+lMJvNVPl81DY342ltxVZTA8Eg+sgIyVSKFJCwWIimUgwMDJBIJOQDZdUqeY7SaUQigc3pJJFIcGjPHuobGljV3o4jW/Y6GJQP3MIZmdUqr9eGhnHzHEizZDIp/TSxmNRWTSZZTdXlkkuxhKV0Wt4XsZjc3uGQSpDDMa7dBoNyv+VmtlqtlU+QmgqzWY65fhpjQzA4MchCCfplQjw+8R9rs0nto5igDwZlcshsashfIKTTafr6+ghHIlRXV+MyTCBZu3Q6nebMmTP09fdTXV2NJfuQNB4IWfEznftXAGbICWWzpiGM9wBatkdupTRVTZMPA+PVlEwiEgk5jnR6XJPOe8AA8qHgcJCprgYhcAAO5KwkEI8z0NOD6fRpvHY7msVCJJOZcC7MZjMOhwN3vrJgzDiy69kcDqw+H/5wmJFDh1i5ciUejwe73Y7N5Zps1kmnSY2MkDx1ikQ8TjQaRdN1zGZzbhEWCyarFZvVittmk+daCPlQqK2VgjwQkNd4qbBCk0k+SGprJ98301FYqnuhcTimL4eg6/JhWFs7/tkFmDS1JAS9EOJdwLsAVq1atcijYTyUKovHM15Pu1DInD69dEIqK0AgEODEiRMkEgnsdjv+sbGcRmy1WqmqqiIajRKLxairrZ0fx2ee83dBY4MMzVTPE5pzOb7JZMLlcuEyTAOJRAIhBFWzdBALIfB6vaQzGXp6eib4Iux2Oy63G5fTKR3G4TCpvAJcFosFIQS6MWvKbqvrOrqu43K7aW1pobamBquuS8UmnZbXdtZpX4xsTfisw3+xhfdMyAr6qRyy8fjkDF8l6GeHrutfAb4CsHPnzsWN+8tkJjtbLBY5XY1EJl7w0aiMxW1oWPhxlkEqnab3/HlWrFgxY0deKpWip6eH3t5e3B4PNcYN7MqzZ6YzGUKhEEIIqhfLznoBMV/RMxazedL5TmcyxKJRQsFgbobgmYE5MZFIcPLkSU6dOkV9fT1NTU14a2qmfyBlo7cWIqN1vjGb5cMpkSg9/sJwSiHk+hcYS0LQLylKPa2FkE//fEHf01N2uOFi4Pf7OXHiBJqm0dnZWdY2uq4zOjrKyZMnyWgatVNo6RazGctCZTMqpsRiNmOZQ6lru92O3W5H0zT8fj+Dg4OYzWbcbjcerxePx4PDbsdms2Gz2eY1JHbRiUbLF/QWywWZHasEfSGlqtNlwyxXrpR/J5MywmAJa7IDhs383PnzeDweGqaZeWQyGU6dOkX/wAA+r7ciseGKpY3JZMJjKDOappFKpRgaHKS/rw9N0xBC4HQ62bhxI44LUYsvRAjp1M63wecTCEyMmlKCfiJCCBcyYQqgDfAJId5k/P0rXdeXZi5xKY2+MMyyt1eaeJZobHM8HicQCFBbW4vNZuPYsWM4nc7cTVxIOp3m+PHjjI2NUb/QySuKJYnJZMpp+vmEIxEOHz7M5s2bL3xlwOGQwRSlfIPB4MQImwtU0Fcy6r8RuNdYdgGb8v5euiEqpTT6/DDLdFomSC1hx5Pf78dk+BksFgsul4vDR47kYtHzSaXTHDlyBL/fn7PFKxSl8LjdpFIpjhw5QuoCrc+eY7rIm8LQSiXoJ6Lr+hld10WJ5UyljjtnUqnSNvdsmOXgoFxvseJ/y6C/vx9nns3W4XCgZTI5m32WZDLJ4UOHCIfDyqGqKBuv10skGuXE8eNkLtA+qoC8hxOJ4g7WZFIqdfmz9mxgxgVWK+rCyuNdCOLx0unN2TDLhWiQMAei0SiRSGTSlNvn8zE2NkaP0X0qHo9z8OBB4vE4VZVq36ZYtlRXVTE2NsapU6cmKA8XJMWqUpYqYKbrF1yI5dJVSReL/PIHhWSf/rAkE6R0HQZGLDz3Euw5tB5/tJFwzEpGM5HJCNKaIJ0WRGMpams8mPUxvK7NNNSAz52kypOkxhOntSGC23GBT8kVC0JNTQ29fYMMjHkxO1YzFrQwFrIwGjAzFrIwFjQTipoxm3QsFh2LWcdiBotZx2bVaWtI0tmWpKMlQXtLEod9ETRlk0mGTheaLaeqVJlKXVD5M0rQF5Jf/qAYLtfCl1QtwfFuO/c/5ePh53wc67Zzps9OPDGTSVpHyW/qfDFWNIZZ0WAsjWHWrvCzdoUfp/0CnqorZoWuw/khN0d7ajjT7+P8kJtzg156hjycH3KTzsxPUEJrQ5LO1iSXb4pwxzUBrr80jN1WYeFvt8t6VYWFC8Ph0kqf0ugvcKbS6GHhmiMUIRYXPPail189WcX9T/k40TM5vK3Wl6KhapT25jhtDRGq3AnMZh2LSZvwmkqbCEZsBKI2AmG7fB+xMRJwcn7YzUjQyUjQyUsnJoZkCqHT3hRi/aox1q8cY90qP1s6R2isufAcVIriJJImjnTXcqS7hqPd1Rzrka+ReGkNtr4qSr0vRJU7jteVoNqbosaXob46Q7VXYLXawWRDCCsZY2YZS5g4N2jjdK+N0712uvtt9A7J5cmXPPzn95twOTLcdHmIO64JcPvVQTpaJwcTzBmHo3iDHr+/tNauBP0FTjy+5AqU9Q9b+OQ3Wvj6z+uJ5WnsNb40t+4KcvvVAXasj9HRkmB0+BT9/f1zsrlrGgz6XZzLam2DHroHvBzrqeZ0XxVn+n2c6ffx6+fac9s010bY1jXM1q4RtncNs6ljBJdDaf5LHV2HswNe9p2sZ9/JOvadaOBId3VRDb2uKsaGVWN0tgRZ2RjKzfTa6sOT/tfpTIZMOk3aWLI2fLPZjK+qiprqatxuN668Oj3pNJwfsnG8284ju73c/2QVe4+5uO+Jau57ohqAnZsifPzdvdx2dXD+8hStVinUCyvUBgKlK1sWiV5bygh9iXmPd+7cqe/evXtxDq7r8OtfL1hJg1A4jMftLpllOBY08+/faeJz328kGpc3w6UbItxxTZA7rglwxebIBCuTpmns3r0bp8s1XlhsnkmmTJzsreJYTzVHu2s40l3DgVN1hGMTNR+zSWP9qjEuXTfEpesGuWz9IA3VF2Z3noqhaVj8fixjY7IomtuN5najV9A0mEybOHiqlhePNcrleAOB8ESnvRA6Xa0BNneOsG6lPzdzq6+a+/8vk8nkSk5rmobb7Wb9+vUTIsTy6R2y8sBTPn71ZBUPPusjGJHX9XWXhPjnPz/PtTvK6P5WDkNDcNVV45U302l46KHismBsDDo6YM2a+Tn2PCGEeEHX9Z1Fv1OCPo9kEh55ZEEEfTgcZu/evXR0dLCiwDYYiZn43Pcb+be7mwiE5aTrdS8b45/e08uWNaVvtkAgwIEDB6gtleVXITQNTvf5DK1QLke7R9H0k0DaWFLU+UJ0tIyyfmWaW6+s47J1dkwmo9lHKoX97FlZQz5LtpywpmGORDAHg5hDISyhEOZQCHM4DCYTmsOBZrfLV+M9gCmRwBSPY0okEMZ7kcnIYmnZksTGgsUyvo+CfWV8PtLV1YzYbBwfGeFUby+n+/qor6riujVr2KxpuM6dw372LI7ubkzxOBmPh4zXS9rrzb3XTSZsQ0NYBwexDQ5iHRrCVMQEoNlschtD6OfGabGA8T5VX09szRpiXV2kGhpKhgRHYhb2HG/ghaONvHC0kf2n6kikJk7k66tibOsazi1bVo/icS6MaSISiZBKp9mwfv20ORyxuOCL9zbyL99qZjQgf8PtVwf45J+d55INczQdDg/D1q3Q2ir/Dofhd78rLgtCIVnJduvWuR1znlGCvlyiUXj88YoLel3XOXToEJFIhEQyyfp162g0onh+8Osa/vIzKxkYkVrdy68I8sk/O8+VW6ZPJD558iQjIyN4F7FvbTQe579+8hPufuABtGmuLSEaafRt5n3eDH829hLVkcACjXL2hIA+YABoAeaq06V9PtI1NYhkElM4jDkSwTTDUMW0z0esq4vYmjUMNa/nmdgOnji3gReONnPoTA2aPtFB39Xm57L1g+zs6mNXy3HqVtsQ5sWLtE4mkwRDIan0tLVNW0cnGDbxme818envNRGOSg3/LbeO8v99+CxVnonnLhKJkEql8Pl8uQTC4jsNyki6zZvl38PDsHt3cVkQi0nb/RVXzOh3VpqpBL2y0eezQA4WfyDA2NgYdXV1ODMZjh07htls4Sv/u4m//WIbAFdsjvDPf36el18x3qMyGAzmStUWkk6nGRwawruQzmJdx97djSmZJO318lRPD393zz30DA9jEoIrN27EbrNhNpsxCTOxhJNA2EX/aITR4H5u1wf5VGCQrYZ8Pwn0w4T69TqgAaPAsLEMGa8jyBr2noIle3bCxhLJe00iL3oLYM17tQHuvO2z+/IBTUih3mJ85wXWGcdIAAeBvcBLxqu5upor2trY3tDAhqoqWq1WLOEwIpUi1dBAqrGRUE0NxzWNE6OjHOvp4fkjR9g/NERK0/AANcZiN8bmtVq5euNGrt+8mdX19dj7+3GeOIH92ElswSDePXvw7tlDI7JZ8+up4QBbOMQmxuo78K5yssNzlDX6CTz+fmwHBrA+OozQNDIOB/HOTmJdXcRXrya2ejXp2toFK9Zns9moqa7m7JkzRMJhutaswTpFQITPo/HRd/fx578/xKe+1cwX723g+7+u5eApB/d//gStDeP38YkTJwiGQjgcDlqam6mvry9eo6fQIRuNlv79F2B2rNLo8xkZgeefr6hGr2ma7DMqhOwSBMQTaT757Uv48RPbEULnP/+6h79481DuOksmk3R3d9PX349JCGrr6li1cuWERhVjY2McOnSoImabdCbDsZ4eqj0emmtrZd/XYJDmb30L3/PPT1wX8JtMWOvqMDc3k2xqItncnFtS9fU4Tp+m8Qc/wH30KADnzR7+Xm/h21oQjRRMWKQpx+uqYVVjA52t9axsbGRlYyMrGhpwO52YjZ6vZpMJkxCYTCYymkY8mSSRTMrXVCr3dzKdJplKkUynSaRSsttTOi0rQOYtVosFq9lMa0MDXW1ttNTUYInHpV09ECDj8RBvaeHs8DBPHzzI0wcP8uyhQ4QKkm/cDgfb16xhRWMjPQMDnO7vp39kZNJ5FkKwYdUqLt+wgZ0bNrC5s5OnDhzgJ489xp7jx3Pr1Vd14nHdwrB/O+HYVlZjZxdH2cWzXCr2sFUcwKdNPzvSgYTDgaNIvHi6qopkUxPpqirS1dUTFs3hkF24TKYJr+maGrQ5BjIEAgFsNhurV69GB9JGQ/lYLEYsFsNsNrNhw4YJLR1PnbNxx/9dy9GzDtpbEvz6C8dZ35EgFA6z76WXqK2tJZ1OE45E0DIZamtraW5poapQyx8agptvloJ8/34pD4rNjnVdfnfLLUuqcq0y3ZRLfz/s3VtRQT84OMjx48dzAjmRNPGhL1/Db55vx2rJ8I2/P8rbXym1BV3XGRkZ4eTJk2i6TpXPhxCCcDhMMpmkqamJthUrcDocHDlyhHA4PLFL0Tyw59gxPv7tb3O0uxsAh83GO30+Pu73U51OE7dYOKBp1Gga9cB0sT662Zyzw6c9HkZe8xrGXv5ydJuN88Nu9hxr4MVjDbx4rJHj56oNM32G7OSzsSYqo3tWj7Cta5iN7aP43Esn1C2jaRzr6WHv8ePsOX6cPceOcX54eNJ6FrOZVU1NdDQ3s7q1lUvWruXS9eupMv5/6YzgTL+PA6fq2Heyjt1HRjnZ+2N0/TvA4KT9OWw+VjS0Uusz0zs0ACMjbNB1tiA1/CbgDHDCWE4Cp5EznDaTibetXMkdVVVsTSap6unBHJm5kzPjcHDyP/6DzByzrKPRaK7RuxBiQlescDjMmjVraG5unrDNsN/Mq/5yDc8e8FBblea+z56g3vUS/rGxCYX8dF3PPTRaW1tZvXr1+E4GB+Gaa2TW+5NPSiFeqofA0BC8/OVLJqcGlKAvn+5uOHKkdG/YOZJKp9nz4os4HA6sVivBiJX3fvZl7D7ahNeV5D/+9DdcsuYcWwwnz+lTpxgZHaXK58NacEHpuk4oFCKdTtPa2poLqZyvOuEjgQCf+eEP+enjjwNQ5/NRo2l8LBzmrcY6jwB3AWeBKzdt4qN33UV7XR3mcBhLKIR1eBhbf/+ExTo6imazMXrbbYy88pVoU9SzD0as7D3RwJ5jDew7Wc/+ItE9AK31Ydav9LN+1RjrVo6xYdUYK5vCmE1L49oeHBtjz/HjDI6NsbKxkY6WFlY0NOQio/xhWy5W/Wh3Dcd6ajh+rmqS01RGwwzRUP0zHLbn0fRjDPt7ONPfR6SIVt5UU0NbQwMrGhpoqK4mncmQTKVIGEsylWIkGGTv8eMT/ClbOzv5vQ0buKapiS6HA0cwiMXvxxwIYPH7pXM72w9Y10HTsI6OYo5E6H3nOwlcf/2058QyNkbjPfcw8spXkujoKPtcplIpEokEl1xyyaRG7ZGYiTv/tpP7nqjGac/wj3/4K159nb/oPZHJZAiHw1xxxRXjWv3QEOzYIW31Dz0kSxeXup+GhuD666dvLL6AKEFfLkeOyJZoFSrude7cObq7u6mpqaF/1MW7//1Gjp+robEmylc++AjrVvqJRCLoQCqZxGKxTOtY1TSNYCiESQh8BfV37n/2WVpqa9mxdm3ZY8xoGvc+8gj/ee+9BKNRrBYLd91xBx9ctYr273wHSyBA2mrlkSuu4Ke1tZwfHeXqLVt4zTXXlPWQEYkECIE+i/RxTYMz/T72n6pj34l69p+q59i5apKpyaGkNmuGFQ0h2ptDrGoK0d4kX1c2hmmsjmK3LVxtFk2DsZCd/lE3Z/u9dA94OTvg5Wy/j+4BL6Oh4nXdW+rCbOkcZWvXMNu6RtjcMYLbObk0ha7rDAcCnO7rI5FKsaKhgda6OuxlnuOxUIjH9u7l4Rde4Mn9+4nnxYjbrVY2d3ayrauLHWvXsmPNGhqLRMfUPPggzXffTeDKK+l973unPWbj979P3a9+RWTjRrr/9m/LGmeW0dFR1qxZQ1NT06Tv0ml4z7+08/Wf12MSGh+96zne9LITJfezdevW8fvG75dRNx0d8NhjU8/sC8MxlwBK0JfLSy/Jf3YFHJqJRIIXX3wRj9dLImnnDX/3SnoGvaxu9fOVDz5Ca/24XTcej2OxWucUC3+6r49X/s3f4LDZ+J+PfpS12YYpgDkQwJRIkKqrm1Du4VhPD3/7la9w6MwZnMCftbfz3hUraD1xAtvAAADR9evpfec7SRW5yRaDdEZwtt+bi+nPasYDY1ObsHyuBPXVMRqqYzRUx6mviuFxpnA7UrgcadyOFG5nGpc9hanIzEAHEkkL0biFSNxKJG4harz6w3aG/E6GxlwM+R2MBJ2kM6UjPhy2NGtXZGckfjasGmPtSj9V7oVPyoklEjx14ACP7tnDnuPHOdXbO2md67Zt4wvvfz+2PI3aOjDAmg98gIzbzbEvfal0YUCD1R/6EHZj3yc+/WlSM6gdlUqlSCSTXHrJJUVbZKZSad7zcRPfuP9yAD71nid5zTWnJ60XCoVobGykIzujiMelBr9xIzz77PSCfudOqK8ve9yVRkXdlEssVrHSw+fPn0cIgcVs5p/uuYyeQS/rV43yzQ8/RLVn4g09H517njt8GABPMsnPPv1pPnHddXh7enCcPo3ViC7QzWZSdXUkGxvx+3y8+MIL3JpI8F9WK9dpGpazZ2UXLSDjdjP82tcyeuut097EC4nFrNPVFqSrLcgdV53NfR6JW+geMLTnPC36/LCHYb+DYNROMGrnVG/1goyzypOgqSY6YXaRnW00VkeXzCl12u28/LLLePlllwHgD4fZd/IkL504wUsnTrDn+HGe2LePz/zgB/y/t789t12qqYlkYyO2wUEcp04RnyKZyDowkBPyAFVPPMHwG99Y9hitViuhUIjRsTEaighaf8DPXbcdpbFW8Knv7eSTd1/OFRsHaK6d6CR3ulwMDg6yatUqab6x26WTNRwubyAXUBkEJejzmapJ8ByIRqP09fVRXV3NE/tauPfRtVgtGf7tT5+cJOTni/2HDvEscAXIi/dnP8t9l3E40JxOrGNj2IzkHQ/wsewKxgUc6+wksm0b4W3biHV1LdluWsVwO9JsbB9jY/vkphKaBoGIoXUby0jAMUkzj8SsRBMWdL24ScpmzUjN35gBZGcCVZ6kMVOIyVlDVQyb9cIs41vt8XD99u1cv307AC+dOMEffOIT3P3rX3PZ+vW84vLLc+uGt26l9uGH8ezbN6Wg9+zZA5B7MFQ/8QTDr3/9jBQIj8fDmTNnqDOiwLLous65c+dwu938wa1HePZQM7/ds4K//9ouvvLBRyaY3C1mM6lUikg0KsOSs82FBgend7KazRdUiKUS9PlUqM7N2e5ubDYb4Zidf/jaLgD+4o0vsXZF5RKE3IcOcQWQMpt5TtN4TtdZe9NNbLzlFpItLWAyIZJJzIODfOMrXyFy+jSXut3csX07qa1biWzdOufoiaWKyQQ13gQ13gTrVvoXezgXFNvXrOEDd97Jp773PT7y1a+yftUqVhlmvMi2bdQ+/DDu/fsZfsMbSu7Du3cvAENveAMNP/4xtqEh3AcPEplBpqnNZiMcDjM6Okp9nlYfCoWIRiK5qLaP3vUML3741Ty5v5V7f7uG379por3ebDbjHxubmH8SCk2v8F1gsfRLZMK4BEin5dN8nuNiQ+EwI8PDeDwe/uW7OxkYc7N9zRD/547D83qcfHqHh9kVkolWY695DQ/98R/zV8Cbn3qKY0bcM4Bus/HJxx7jU6dP8x2Ph5aPfYyRP/1Tgtdeu2yFvGLu/MGtt3Lzzp2EYzHe/4UvkDCct9GNG9HNZpwnT2IqEZ5pisVwHTmCLgTh7dtzETpVjz0243G43W7Onj07oelJb28vtryQyIbqOH//h88B8G/fv4zzQ+5J++gfGCDnq7RaZW366TR6JegvUCrU+3Kgvx+bzcYjL67g57/rwm5N88/verqioX8vHDmS68oe2bGD37vxRm6/8kqi8Th/9cUv5m7M/3nkEb79wANYzGY+/3//b04zUyimQgjBJ97xDlY2NnL47Fk+9b3vAaA5nUTXrUPoOu4DB4pu6963D5HJEFu3Ds3jwX/ttehC4H3hBUzl2sYN7HY78XicMaPnayweZ2RkBHdByOPtu85yy+VnicatfOSrV5FfYcJisZBMJIhmk9wcDinApzNTKkF/gVIBx0oymWRwcJCUXss/fuNKAN7/+3vpbAnO+7Hy6d+7lw4gZLcT7+hACMHH/uRPWNnYyJGzZ/n373+fpw8e5BPf/jYAH7vrLnZu2FDRMSmWFz63m8/+xV9gtVj4n0ce4ZdPPw1I8w2AZ9++ott5DLNNaMcOANL19US2bMGUTlNl7GMmuN1uuru70TSNwYEBzGbzpDBfIeAf/vg5ar1xnjvczD0PrZ/wvclsJhAwzKgOB+RFqJVECfoLlApo9CMjIwgh+OTdVzIScLJz/QBvv+XIvB+nkAYj4mZo/fqcmcbjdPKZ974Xi9nMPQ89xHs/8xkymsY7XvUqXl9GgotCUcimjg4+/La3AfAPX/86p3p7CRt2dvf+/ZMbaGsanpdeAiB8ySW5j/1Z842RnDcT7HY70WiUkZERevv6JmTB5lPrS/DRu54F4DP/cwln+sfzU1xOJ/39/eMrlxN5ZzJJr36FLAHzjRL0WeZZo9c0jXPnz/PU4c3c/2wHTnuKT77r6YqH0flDIa4MyhmD6ZprJny3ubOTD77lLQDEkkleftll/OXv/V5lB6RY1rz55S/njl27iCUS/NlnPsPdJ06Q8Pmwjo1hP3duwrrOEyewhEIkGxtJZssBA+FLLyXjduM8cwb72bOFh5gWl9vN6dOn0TWtaFx9lpt39vCqq08TT1r4yFeuIqNJzd9ms+XKIsyYCyTEUgn6LKnUvDpiA8Egw6PwibuvAuCDb3mRlY0zs0HOhn3793MdsrhYwgiJy+ftt9zCXXfcwSuvuop/fc97pi7dqlBMgxCCj911F6tbW+keGOBj3/oWPzAUjYP/8z+c6evLrZs124R37Jhwr+k2G4Gr5H1SPQut3mG3k8lkSmrz+XzkD5+nsSbKnuON3PPgutznE8w3M+ECEfQqvDJLOQ6YGXD+3Dnu370Df9jBzvUDvPmm49NvNA+knn0WK3C8rq5oJUEhBB8wtPoLGk2TxdF0XVZQFEJOp8t9WOu6XDQtV7cFGK/IONP9ZclkEKUiuKbYV+6Y2eNeQLidTn7w0Y/ym+ef5+Hdu3lo3z7+KJPB8dJL3PLSS3S2tLCtq4v/z3DQDm3aNGkfgRtuoPahh/A99RSDd9454y5b1WWWLalyJ/n7P3qOv/jPl/GNX27izpcfw2rRcToc9Pf3TyqWNi3zKeiTSTh2DLZsmb99GihBnyWRmGCbC4XDuF2uWWm80WiU0bEgP35cNjH4k1cdWrBqpq1GOduxzZtZvPYjs0Nku0HpOpNKcxgnUBif62YzmtWKbrEgUilEVsDCRCGb7VJl7EbP259uscjuUmYzmlEXxpROT9ifKFIiRM9/CBgPm9x3Vut4Gd+88ZL3Ommfui6PqWnyVdfRjTHnvxaej0q3HZwJHqeTN1x/PW+4/noSQ0Pof/VXvEwImh0OTvf1kenrowXZuGXrf/4nLU1NbOns5M9e/3pWt7YSb28nvmoVju5uPHv2EKpgU48bLzlHZ0uA031VPPLiSm69ohu73c7o6CjxeHxmmenzKehDIblUACXosxRo9Od6eli1atWsyv4ODAzwzOEueoc9rGwMcd228/M50pJEY7Fc/LzrZS9bkGPOFyIex5RMEl+1CiyWovXO81vpldR6s1UVsxp6vokg+z4vl2BasjOHrODPLvE4pnQazeVCs9nQ7XY0q3V+SmgYMw10XT5wNE0eP++3iXgcW38/5lAIzGYyHs+SyVy2NzQQX70a56lTPPXud/NsVRXeBx6AZ5/laZcLkkm6BwboHhhgz/Hj3Pvxj1Pr8+G//nqav/tdqh97rKKC3mSCt77iKJ+8+wq+95v13HqFLMEthCBkNCkpe0dFqobOmrExqXBWgAtrjlhJ8jT6bAng5Cye1ql0mv7+fn7yux0AvOXmY0Vlyud/9CM+9d3vTtZc58C5p5+mFeg3mzEvgcbFZf+2dBpzNEp00yZSra2kGhtJ19eTrq0lU11NxudD83jQHQ6pwU4lpE0m+aCw2eRiteYWLBa5zGSWZjLJ7Y3m3QmPh7DHg7+mhpH6eiLV1WSqq9GczvmrkySEFNoWi3yAOJ1oHg8Zn49MdTXp2lpSra1ELrmEyPbtJFtaMEUiWEZHMYXDiGSSCcHihRgzCFM0ijkQwBwIIOLxyVEycyCb5Vp16BDb16zhBsPRueVtb2P3V7/KTz7xCbZ1ddE3MsJff/GLpDMZgldfjWax4N6/H0t+t6cK8NprT+NypNh9tImj3dUAOJ1O+o3ifZN+TyTC+fPnJ17T8x1iWeLY84HS6LPEYrLhALI6XjweJzGLp/XoyAin+6p59lArTluaN1w/uUTqucFBvvzznwOwa/NmXpYXajYXxLMyfOxwSwvNi9j5JpFIEIlEMJlME24MIcRk4a9p2AIBQuvWkUomMfv9mEymCYvZbEbTNFKpFKlUivQsQ9qyx5+qnHJ2fMXGKoTAZrNht9vxeDyYzWaCweAEJ57JZMJut2O32yf1EChGJpMhmUySTqfJZDK535Y9tq7rmEwmrFZrbr+58QuB5vGQ8HhIrFiB2egBYI5EZOP0TAaEGDd3GdsAsum510va45H15I1681nfhW40SJ/tLCG8bRv1P/857v37EfE4rkOHctmwVouFDe3tfO597+NN//APPHvoEJ/94Q/54FveQvjSS/E99xxVjz/OyOteN6tjl4PHmeJ1153kngc3cM+D6/nYnzyL3W5nbGyMZDKJzTDlhcNhzp07x8jICLquU19fjz2beTufgj6VkpVzK1CCBZSgl2TjYY2LOplMymJHM+yyky2o9POnrwPg1deeKtr96KEXXsi9/8KPf8wNO3bMS8OQ9jNnAAgXibZZCLIC3uFwsG79empranJCWtd1NF1Hz77XNCnUBgZIXH01qRUrSCQSOaGXFerJZJJkMonZbMbn8+H1evF4PDmBa7FYyGQyaJpGJpOZsAijrWD+a1aAa5o2Ycmub7FYcg+X/MVisWCxWEo2sci2uwuHw/j9fkKhEIFAYMKDw2Kx5I6VxWKx4PP5qKmpwW63Y7PZsNlsWCyWXKhgNBolGAwyNjaWEzhZrFZrbhuM2UUWPZVCTyTIxGJoiYQ0f9nt6HY7Ii+xyGq1klqxAjIZTPE4pmgUSyAgZwipFJrNJhvEzGAmFOvqIuNyYe/ro/rRRzGl00TXrJlQWqOptpbP/sVfcNe//Avf/NWv2NLZyZtuuAHfc8/R8LOfkfH58N90U9nHLCSRTPLMoUNcsXEjziKdot72imPc8+AGfvFUJ+9/855cgcFQKITNZqOnp4exsTHZ07amBr/fTzKVqoygD4fndUZViBL0MCnpIZVOYzKbx9OiyyQYDDI8pvGLp6TZ5K03Hyu63kNGvX2TEBw+e5aHX3iBm3cWLSNdNprfz5ZolCRQd+ONc9pXIbquEwwGczVFcgLQYsFiNpNOp4lGo7jcbjZs2EBNTc0EJ3b2/STdcHAQtm7Fu3Hjkuq9OVPMZjNutxu32z2hwJamacTj8dxDIGv/dbvd2O12HA5HTnOcipqaGtraZNN4Xddz+4zH44RCIYLBIKFQKNd+L4sQAofDgb26GqfdjslkGn/o5j0YQ6EQKcNMabPZcFVXY21oAE2Ts4ShIaxDQ+OavtMpfQWpFKZUClIp+dDIZEhXV0sBaDYT2bwZ3/PP0/DTnwJGWGUBO9ev52/e+lb++Tvf4e+++lW6/vEfcd92G3UPPEDLN7+J48wZ+v/wD0uaxUyRCLUPPIB1ZISBP/gDOTaDz/zwh3zn179mZWMjH7vrLnZt3jxh286WINds7eXJ/a385LEu7nrlYRwOB8eOHUPTNGx2+6QezKm8pixYLBCcpyz3sbGKRltdHII+FpNCpb29+PcFtvhEPI7Nap2xoO/t7eXBF7cSS1i5YmN/0cqIQ34/e44fx2qx8N43vIHP/vCH/NdPfsJNl146p5j2wKOPYgaettmom8eaNeFIhGQiQUtLCzVGk+VEPE4ikZAa+NgY9nSazrY22dNW02B0dFw7sVjA6ZxcDXB0VDZ2WL/+ghbyU2EymXC5XLjmsd2cEAKn04nTEGgtLS2579LpNMlkEpPJlJuBlEO2j2ooFGJkZITBwUH8fj+6rmO323F3dGDp6MASDGLt78fq96NZrWRcLtJ1dWRcLnS7HVt3N+ZEAs04bmTrVnzPP4/ZuI/CJUyUb3vFKzhw6hT/++ST/MXnPscPP/5xEu3tNH/jG9T89rfYz53j/PveJx8i2fOQSFD7m99Qd999uf1rNhsDf/zH8r2m8YBhyuwZHOSuT32KN73sZXzgzjvx5ZlH3vaKozy5v5UfPLyOP7r9CC6XC5PZjKPIDECYTBMfpmazVBI1be5CenBQmm0qpNVXTNALITYBXwCuAvzA14CP6bqemWq7ijA8DEePwooVxW2OBRp9LBbDZrNJ80E6jbWMGyYWjzM8PMqPHnsNIC+gYjzy4ovous7VW7bwR7fdxvcfeohjPT385vnnue3KK0vu/+T58/z08cd52y230FKkp63dMAedWLGC+eh4m0gkCIfD1NTUsHHDhuLJKOm01ER27QKbLRcpko18IZOR3w8OygXGI14cDti2bclEiiwHZiLc8xFC5B5ITU1NbNq0KTdbGBoaor+/n0Qigclkwtnejmv9ekSR/5vmdOaELpArhwCQqqsjUaKGjBCCj951F8fPnePw2bP8zZe+xJf++q9JtLay4nOfw3X8OKv+7u948Y/+CNvGjbQ98wz1P/sZFsM3El2/HueJE9Q+/DDBXbuIbdjA/lOnGPL7aa6r4/dvvJH/72c/40ePPspje/fy93/0R7kZ9HXbe1nREOLckJfH97Zy46Xniwr57PktqvylUqWbiJdDOg2BgGxLOJ9RPHlUZK4ghKgBHkL6f14LfBz4a/J6WywofX0QjZaeZhVo9LFYLHfDTJiqTUEkHOb5o+2cHfDRXBfhxkvPFV3vYcNsc/POndisVt792tcC8MWf/pSMpuE8coSGe+/FlHdBnR8a4v/8y7/wjV/9inf+278RLPQdaBpdRrp5wugMlCXfHlwO6UyG0dFRMpkMm7dsYdOmTaUzDkdGYPNm2WPX5ZItGL1eecHW1Mg2a2vXwjXXwM03ywfC+vWy+fJll8mHg2JJ4nA4aGhoYNOmTdx4441cd911bN68WUamDA4WdYhrDocMRTVI19eTMEodFGbDTjqezcbn//IvqfZ4eGLfPm75q7/i8s98hq5gkMcBeyDApZ//PI1//uc0f/vbWAIBYp2dnP3Qhzj7kY8w/OpXA9Dy9a8jkkkeefFFAG669FLe89rX8pNPfIJL1q5lyO/nfZ/7HO//whfwh2UD+bcYJtbvPbi+1PAAsE4l6OdCOCwVowrObCtlFHoP4ATeoOv6g7qufxkp5P9KCOGbetN5JpWSAsntHtcqCym4aCPRKBYjYiJRpqAPhcP85HfSCXrnTcewmCdPwYKRCM8cOoRJCG669FIAXn/99bTW13Py/HkeePZZmr/zHer/93/p+NjHsA4MEIhEePd//AfDgQAmITjV28tffuELpPLG7Dh1iup0mlNAR178cbZ6ZrLM35DJZAj4/XR1dbFjxw5qqqtLO4n9fmhqkrOkcrBapfDv6IDt2+WDQXFBIITA4/GwYsUKLr/8crZt28ZokfBH3WaTs7g8xm66Cc1qzRUum7DfVEqGdRq01dfzaaPwXt/ICCOBAD3pNLcKwVetVuzASk1jtLaWc+97H2c+9jGiW7aAEIy85jXE29qw9/dT/5Of8LAxw822ROxqa+M7f/d3fOQP/xCn3c6vn3uO//j+9wF4ww0ncdrSPHWglVO9pcXTlBr9XAgGKz6zrZSgvx34ta7r+Sr0D5DC/4YKHbM42dA3rxd6e4vbwOLxnI1N0zTSqRQWIyohWWYCw+GT8NTBdmzWDL93Y/Gu84/u3Us6k2Hnhg3UeGXeqs1i4U8Nrf6bP/oR9p4eAOy9vXT84z/yzU9+klO9vaxpa+NH//RP1FVV8czBg3z8W9/KRV+kfvc7AH5rs7Eyzz6fTCZpbGwkGAqVFdMeCARo7+igubl5yuJQJBLyPG7evGzt64rSrFixgurqakIFWZy61Trpehi79VaOfuMbxFevnrQfcySCqSBq5arNm/n1pz/NLz71KR79/OfZ/dWv8sK3v8213/gG37ruOu4E3tzeTujyyycmw1mt9L3jHehCUPerX1HT24vP5WLn+nEt3WQy8bZXvIJv/+3fAvDYSy+h6zpV7iSvMpqH3/PQOkphNgIPJs1m5iroBwakH6uCVErQbwAm1OPVdb0biBrfLRyDg9JEYLVKgV4sZDIez3n1k8lkTiiWfIIXoOs633mgC10X3LHrDDXe4g+HfLNNPq+59lpWNjZSNziI0HUSra2Etm/HEonwXz09/LXLxX9/8INsaG/ni+9/Pw6bjR8/9hhfu+8+ANxG6deznZ0TNPB0Ok1TczNtra0EpokOCEcieL1e2vKqCpb4sVKb3769Iv11FUsfk8nEli1biEajE0yD+gz9A6WUj5a6Orra2misqcHlcOSu6dW///v8yGTi0X37GC1yPcfXrGH0ttsQus43gJu2bSvqX9vc2UlDdTUjgQAnDJNn1qf2sye6CMdK5z8IIXIRSsYHc8tmzWRkYMIFKuhrkA7YQsaM7yYghHiXEGK3EGL30NDQ/I1C16V9PmtjNpulc7CQvPIHqXQ6dwFardayYulH/Wnue2YjUNoJG0skeMJoxvDyAju61WLhz17/erJGl/C6dfxlayv/DliB/4hG2fHLX0Imw7auLj71nvdgBn76wx9y/Pvfp214mBhgLtivpmk4HA5WrlqF1WIhXuKCTGcypJJJ1q5dO33kz+ioNL80NEy9nmJZ4/V6Wb9+PSMjI7nPdItlRlEjM50LNlRXc83WraQzmVyjk0KG3vhGeqxWtgF/U2IsQgiuMkItnz54EIB1K/1cvmGAaNzKz56YPPvIJ1kYYjmXWPpIpCItTAupZAmEYme5aH0mXde/ouv6Tl3XdzbMpwAJh2VFuOxT3eWCc0WcpHkafSqZzGkQFoulLEH/wwerCMfs7FgzxObO4qnbT+7fTzyZZOvq1UWjZl551VXcZHjuv3L8ON+4/37+1mzm8dtvR7NYqH3wQdr/5V9o+6//4t0//Skxs5nTwGt+9SsAHgG2FVQFFELgsNuxWiysX7+eSDg8ob9mlqxd3jmdVhGJSC1+XenpreLioaOjA6/Xm7tHdItl5gIr28CjTF57nUxG/LlhrixkKB7nDw2N+8rdu3Om0EKuMipEPpXX8vBtRlOge39bunzIJI2+lKDXdTh9urRfMEsgsCDmz0oJ+jGgusjnVRTX9Cs0ioIkBKdTnthCzTZP0CeSSUQ2wcdsJpPJTHB8FuP+p+Qk5dWGna8YD5Uw22SxmM1cYziAv3teFkH7+J/8CQ1vfSvdH/4waa8X19Gj+J59FkdPD9ZMhlGbjUeALwJ/Z7ezNi98LZ3JYLVac2n4Xq+XVatWTaq5HQwGqauvp7GxccrfSCYjBf2OHfNX00VxQWM2m9myZQvhrAJhVAItV3DryFIMYgYlLW665BJ8LheHzpzheBEh/tiePTwK/LyuDlMmQ8vXvlZ0PLsMpej5I0dIGse/8ZJzuB1Jjp+roXe4eLCA2Wye2KCkmKDPZODQITh4EA4cmLoL1dDQgphAKyXoj1BgixdCrATcFNjuK8r588VrR+QLO12XWn823TwSmRSLPFWIZToNj74os+eu3dZbdJ1UOs2je/YApQW92e+nKhwmLARHgPe98Y28ztBeYuvWcfoTn2DgrW/l/LvfzemPfYyjX/kK5/77v/n7LVt4L1C1cSPmvIdaKpnE451YqLitrQ2Xy5XzO2SnoKsLbPuTCIdlLsKmTbl6QAoFyDrwq1evzjXoLltwG+aKjNeLmIEz026zcduuXUBxrT4bbXPotttI1dbiPHUKXxEzT1NtLatbW4klEuw7eRIAq0Xnqi2ypeDv9hX3VZnN5omz/EJBn0rB3r3Q3Q3NzVK2FLMigHwADQ8vSARapQT9/cCtQoh8SfNmIAY8VqFjTiSZlE7DQnOEwyHt9lkKmkREY7FJDpypwhOfOeAmFLXR3uQv2UHq+cOHCUajdLW10ZmXyZiP89QpAFJr1vClD3wgF1+fG2ZtLaO3307w2muJr16N5nRitVj4z/e9j/e96U184M47J43ZWxD/bjabWbt2LfF4XFYLDIVYu3bteO2OQpJJOfW0WuHqq0tnFisuarq6urBarcTjcSnoy8jdEOm0LKzmcs1Iowd4rdEi8xdPPUU671iReJynDh5ECME1u3YxesstALiOF2/6c7Vhvnk6z3xz7VaprD1RQtBbrdbJGn0yKWVIPA7PPSfDuRsbpUypqZHNRIr5xyIRqf0vQKOZSh3hy0AC+IkQ4mYhxLuAjwKfKQi5rBylbF9utwxnyl4gBRdZPBbDnCfohRCTaojk86snZZGm67YX1+YBHjTMNq+Yop6N09AqMuvXc/327WUXOfM4nbznta+ly6iFkkXTtKK19N1uN6s7Oxk9e5YVtbXUFtPQNU1erFlTza5dMilKoSiC1Wpl27ZtBAIB0kVi6YuSycgGLQ7HjGz0ADvWrqW9uZkhvz/nTAV4av9+kqkU27q6aKiuJt7RAVCyD23WIftM3j6ys/JnDjaTTE8WjxaLhXg8PjFiSNdlkMLTT0thn++DyzqoTxcx64ZCC9ZNrCJH0XV9DHg5so7VL5DJUp8F/rESxyvKwEDxtGSTSV6I2fCsPEGfyWRIGTH0WaYLsXzgSTlpuX57X9HvNU3LTSenKlzmMAR9vKur5DozpWgDhWCQZrOZNZdcwoq1a6UwHxqauAwPy8ia66+HlpYLrrWdYuGpq6tj3bp1jMRihMfGijr98xHpNJrDITt7zdAZKYTIafU/f+KJ3OfZbNhsVFvcmIE6uruLPkwuN8yd+06eJGxo6a31Ubra/ETiNvYenxwYkq1+OsEhq+uwe7c0/xZTiGprpaAvDOwYHFywEOWKedV0XT8EzL7G6FzQNOjvL21PtlqlQKupmZDsUKzRiGWKEMv+YQt7jnmwWdPs3FDcu/7SiRMMBwK01tezsZTpQ9NwGk/8WJHEkpmS1TYmVEYMh+WF1tiIuOwy2vLPTTotNZFEQr5WVY2HpCoUZbJmzRraLBYGf/MbesbGsFqteL3eorNTkcmgOZ0yyWoWhbxefe21fP7HP+bhF14gFI3itNt51Gg+nhX0msdDsr4e2/Awtr4+kgWzXo/TybauLvYcP87zhw9zo5Gtft22Xk6er+aJl1q5YmPxZiD5NetxOGSuTimhbTLJ70+ckPknIH/z0JC81xaA5amqhcNSgJfK7vR4pKNW1ydo9Okigt5qsUy0yeXx62eksLxs7TkctuLT1Wzt+Zsvu6ykOcY2MIA5GiVVU0O6oCzqbEilUrhcLpndGo2Oz26uugp27pz8ALRY5Dmpq4O2NiXkFbPG6fPRvmoVl112GbV1dYyNjREKhSZr+JqW6wAmhJixsG+rr+fKjRtJpFI88OyzvHjsGIFwmM6Wlgl+sKz5xmH0aihkV0E8PYybYUs5ZIGJkXg+3/SaeVWVlDnZQJBoVFoWFqio3/IU9KOjU5/A/CzZZDI3dSzmdDWbzSW7Gj3wlHwaX721uFdd1/XxsMrLLy85nKx9PjZPZptkKoXX65UPu1gMrrxSLjWTctUUivnFCOd1Op2sXbOGHTt2UF1dnWuckl2i0SixTAZdCDJ2e3l2/QLyY+oLa9tkyZlvSgj6bDx9vqC/bN0gTnuKoz01DIxOzi0RQsy8+5wQ0j949Kh8qFWoCXgplqegLxVWmU82SzYWy8WFx+PxkpmhhQ+BTAZ+86zUjK/bVtw+f/zcOa4fHORlbjeXrF1bcig5+/w8mG1Azky8Xq98iNXXS01d1aRRLAQF7RPdbjfr1q1j165dXHbZZWzZsoW1a9dSU1ODsNkYHBxEczplA5MZ8oqdO3HabLx47Bi/ePJJgFyxwCw5jb6EQ3ZbVxdOu52T588zaISI2qwauzZJk00xrd4yxSx/Sjwe6f8aGVmw+Pksy0/QJxLS0TrdSXS55AMhHh+Poc8rT1xIoaB/7qCb0YCFtvoAa1cWf7qfeughvgv8KJXCPMXUNBtaOV8ava7r0hGbSqkqkYqFpUSfXCEEdrsdn89HQ0MD7atWccW111JTU0MIZhxiCeB2OnmFMVP2h8PUVVWxreAeSuSbboo4ZG0WC1dslOVLJphvtsmkxWJhllP57abF54PDh6Wgr3B9m3yWn6AvN6XY6ZQafTCY0+iLJUuBvEgLBf0DT0ttftfGMyVt73aj2FhdMonXSJjKJ53JIJJJHGfPogtBvLNz+nGXid1ul/4HJegVC4nZLO+nqUwxRt6KsNnYtGkTESFmXQEya74BmTVbOCNPV1eTrqrCHIvJdohFyNW9yY+nN8Isnz7YQjoz8f62WCzEZtsgxOmUPsREYkEzzJefoO/vn9mUKE+jj8fjRQV9sZo39xvx87s2dRfdrT8cZn1ewafqhx+e8L2mafT392M+dQqRyZBsbZ3Q73K2ZDIZTCaTjAjQNFVhUrHwOJ1Tp/1nMjI4QAiqqqpo7ewkNEsN+cqNG2k24tZvKrDPZ8nZ6aeJp3/64MFcxNqKxgidLQFCURt7T9RPWN9iNpNKJmfc1CdHbe2CK2DLS9BnwyrLPYnZp6vFQjqdJpPJFK3DXjhVGxqzsPuwC7s1w2Xrzhfd9TN793J1dlhWK54DB7D29+e+TyQSVFdXYzkqq13Ol9kmlUrh8/nkLEOIklNphaJiTCfoC0yKHevXg65PyHItF5PJxGff+14+/Pa3c302dLGA6SJv1qxYQV1VFUN+Pyd7xxMfr9s2dfRNsXDssshGuS0gy0vQh0IzC1nKOmxNpokJEAUUOl9+84wPXRdcvnEIj7u42Wbwd7/DCfRVVRE0anPUPPJI7vtEIkFdbS3ueYyfB6P0QbbGja6rdn2KhcflmlrQF5gUHT4fK9raCBYU3CuX7WvW8Ae33lrUhJrOZIiuWiWPU0Kjn1C2uIj55omX2opuV26b0aXA8hL08fjMoktMplwrvCkFfUGI5f1PjdvnbUU05oymUXVM9qGMb9nC2MtfDkDVE08gjItD13Xq6+vxGQWP5kujz2Qy46UPlEavWAymE/SFQQJWK/UtLThstinLjcyGYCBAvxFW7Dh9umS8frFyCJdvGMBhS3P4bC1D/skm0KlkxlJjeQn6OVBOX9VUKoWmwa8NR+yla07kygDns//kSa4yLgLLzp3EV68m1tGBJRzG99xzgBT0zlQKx8AAmtVKotzeq2Vgt9vHC7UpQa9YaOz2qevXaNok86rZ52P1ypWEw8ULA86FlVdcQdrpxBIKYSnWeIjxxKnnDh/OJUPZbVouM/bJ/RPNNyaTaXYhlouEEvQGsVhs6j6pSHPL7kMuhv1W2lvirGocKzpdfOqFF9gFaEB040YQAr+h1Vc//DDJZBKX243V0PrDK1bMqwc+F3HjcKj4ecXCM51yoeuT1/F6qXa5qK2tJTzb0MUCUqkUTqeTlpYWMHrHihKVLFvq6uhsaSESj3PACHeGcfON5zePUve//5v73Gq1ltVmdKmgBL1BbIoYehgPsXzgaRlt8/KdwyVlaPj557EDo42NaIYZJbBrFxmXC9eJE5hPnKC6ulo2JgCS69YRn224Vh7pdBq73S5/hwqtVCwW5cwiC31HRl36jo4OkonEtEXRyiEej1NjlBSxGBmwjjNnSj5IslmyT+zbRzQeJxqPc/mGk1gZ491nPkrjvfdi8fvl/srsJ71UUK2CDKLR6JSC3mw2E4lGc/b563b0FdXmB8fGWG20D9N27Mh9rjscBK65htoHH6T+8cex3Xij7D4D2C65hFgsVrzaZB6hUAiTyVS0/DBI85MvW8cmlVIlDxSLQzmCvnAdo1yxy+Wita2Nc+fOYS8SSGA2m3GVqcCkUimqs0XDNsg+SC2BAIMmE6FQaDxoweCqzZu558EH+fLPf86Xf/7z3OebgOxITP39UF2NxWIhGAyi63rZJcUXE6XRG8RKxNBnsdps9A6kefaAG5tVY0dXd1H7/OMvvcSNxvuEoSFkyTplG55/Hqeu5zR6h1G+WJ8ie1b6BzTZ3KGEtjMh4kZp9IrFYjYafV5J8RVtbbSvWkVDYyONjY00NTXR1NREc3MzmqaV7QQVQoz3QTZMN+bjx9myZQtOp5NQQb2ZqzZvZmN7O06bbcKyVYz/nohh1jGZTOi6XrQG1nQkEgkGBwenvN/nG6XRI4Wormm5rLrBsTGGAwE2GfG3IKdqjz5Vi64LrrskhJ4am1gG2OC5F1/kQ4AmBFHj4sqSbGsjsn497qNHcXz3uzIzt7oaW3s7NfE40UikpLYSDAZZv2EDkXCYvv7+cU0lD13Xxy/sTGZBU6wVihz52bGFfq90Wgr5wppSeYLearWyygiJLESYTJw7d67o9T/hMJkMVpttfJa8apWcNfT3Y4tG6erqYq9R1jiLy+Hgx5/4xKR9Rb74G3jmOwCkenrIf4wlk8miCt9UDAwMcOLECTo7O2lvby9ZX2s+URo9hqDPe7p+8Etf4s6PfpRzeR3cLWYzzxySnvdbrvQXzaJNplKIAwewIR2sWhGhPWCkbIt77pEfbN4MQtDc1FTSTh+ORKiurqa+ro7W1lYElEwumdAWUMXQKxaLUklTpWaa2QYk02i51VVVaGUkVsVjMWrzTZdmM6xbJ98fPYrD4UCYTGX5ArqS422u9d6JfSdmGmKZyWTo6+ujoaGB8+fPc+LEidln2M4AJeiRT+WsnU3XdQ6cOkU6k+FQQYLFgTPNAFy5ebSobW730aO5sMrU1q1FjzW4eTOZ6urxWiCGecfr9WIymyddeJlMhmQiwerVqxFCYLPZaG9vn5RcomkawmSaKOhVaKVisZhK0BebaZpM02fUIqthms3maYVjKpWSAQ/5ZGfYR45gMpmorqoqK27f1Tdehtw65M+9L1YDazqCwSDpdBqLxUJdXR3Dw8McPXp0Yn37CqAEPbKJQFZoD/n9xIx/3um8JuLhmJWzA7VYLRrrVhWPxX18796cfT6yaVPRdTSzmfSrXjX+gRG/a7FYaKivn+TJD4VCrFy5coJJp7GxEZvdPuEiTaVSeNzuiQ8fpdErFotSSVPpdOkS4h6PLK09BSaTibr6+rKKirkKj2M4ZDHKjlTX1Ewr6EUqhW1gvMtUXXS85XU2QGMmnD9/fkLQRU1NDcFgkIMHDsx7slg+StAjq1ZmY+jP5tWjOZMn6A+ckvb5zauDoEWLetpf2LOHnUj7fCw7Tcwjax4yv/GNcpoqBOQ9EBoaGiZoCIlEAovVSmvrxGQNs9nM6s7OCcklyWQST0EUgdLoFYuGy1W8ImUpjR6koC/DFFJfVzdl+YF0JoPFYsFR2DM6T6MH8Ljd0zpEbX19CE1jxFmLBrRk4rkHmNVqJTYDQR+LxQgEApP8cFVVVSSTSQ4cOEC0QklYyhnLxDr03QMDtAMrgVN5BY72n5IV7LauHiEUDE5yxJ4dGGDV4CAWILp6ddFKlMlkEpfLhWXlSvjkJ6X5Jm966fV6sVgs8kI1mwmHw2zatKloNFBtbS0+n49oNIrL5SKdTuPLj7gp5vBSKBaKbHZ2Ibo+wfE6gWxXtGnwGAXBSoU2JuJx2dik8LuuLukk7u6GSARHGcEK9vOyaGF01SqiR0dZCVhGRkk3NWKZYdLU8PAwphJJmV6vl2gwyIkTJ9hW9h7LR0kCpOMmK0zPDgxwD/AEUHP+fO6Jv++kLIW6qb2PUCg0SdDnm22iJcw2yWSSmqyD6JZb4PbbJ3xvMploamoiGokQCoWoq68fX78AIQSdnZ3EYjF0XUfX9XH7vAqtVCw2U80mS31nlC6eftdWvD5fSVNHKpWiuth9Y7VKYQ9w/DhWiwWXyzWlycRu1KKyr1vJaQzz7qFhYLwGVjkO3UwmQ29vb+4hVQyb3V4xx+xFL+h1XZ8QQdPT10e2GdmbEwlGgtIml9Xo17T0SJNKgZadHz8fNTrWFJJOp8cTmkpQV1+fK6DW0dExZTKG1+uloaGBcDgsO/hkbX9TTY8VioVgKkFfyndUahZQhIb6+pJRapqm4S6l6GTt9Ib5pqamZkqHalbQp1aupNskbf7n94+bd3VdL8shm3PCLlAz8EIuekGfDa3MCtRUby9ZV8lbgO6eHvpHXQyOufC5EjRXD0/aRyQe5+ihQ1yCdLZGi9jnszinEcAetxu32017ezvOMpqGrFq1Ssby2mxYsw+fVGr6nrkKRSWZrUZfJlVVVUU16WxPiZL3WYGg9/l8UyY9ZU03iRUrGHJUA5Ds7p2wTjkRM319fdNmvlcSJejzbIK6ruPKazdWA9iee479htlma9cIJtPkDNZnDx1iVyaDGYh3daEXuWCzDiL7NBezEIINGzbIQkxl4HQ6WbFiBVX5M4VMRpluFItLMWGuadJGXioDPftdGeYLh8OB3W6fJKSzDX1KzoSzDlkj8sbpdJZ0yIpkEuvgILrJRLK5mbjRycrt75uw3nR16WPxOGNjY2WXbqgEF72gz+8SM+T302FcOHHjYlx34AD7To47YjVNm+RQeenEiWnDKpPTXYB5OJ3OGWXLrVixYmImoWo4olhszGYp7POFdio1vUmxzMgbIQSNjY2TWnwmk0lqjUJmRVm7VgYpnDoFiQR2ux2bzVY0AdHW24vQdZLNzehWK/aOBgCaE4Ok0vI+FibTtAUJR4aHFyT7dSouekGfykuWOtvfT9bosn/7dpLAlqEheo9K4b+ta5iqqiq8BQ6Vw2fOTGufTyaTkxM45gmLxTJ5WqhCKxWLTWECVDlBAmVG3gBUV1dPcl5qRmG0KcfU0SEfQCdPIoy+tYkiwjprn0+0yQ5T3i7ZM6KDMY6fk85eq8UyZSy9pmnSCVsY+rzAXPSCPhKN5mLouwcGyFan0TZt4j7ADFxy5n4Atq4exmKxTKhbr+s6fWfOsB1pn4+tWVP0OLquL+zUTWn0isWmUNCXo9F7vdMmTWVxu92Y8rJks7Ptae+zgnj6mpqaoqUM8u3zANXt7SSAZhIcPip9YBaLhegU9fMDwSCpVGrRnLBZLgpBH4vHCQQCRb3jsWg0V5To7MBATqP3bdjAt433b0l/h7a6EHVVk8Owhvx+doVCmIDY2rXoRQRs1gY4nSN2XlEavWKxcTonaufp9PRNsZ3OqbtT5WE2m6mrrc2ZThKJBFU+3/RmkqygP3TIOGRxO32hRr+iqYlsUZT+Q1KLt1gsU5pu+hfZCZtl2SZMxWIx/IEAA/39OTueEAKHw0FtbS1VVVW4XC5isVguJr6vt5dVQMZkgtZW9tXXMzg8zBYO8Ybm3xY9zsnDh/l34322CXghyWQSj8czbQereSGTmdrhpVAsFIVlEMrxHc1wJlpfX8/w8DBut5tEIkFLQRZ5US41AqiffhqMiq9CiEkJWIUafZXHw1lhYp2uETt1HnDk6u6k0unxqDeDWDzO6OhoyVyYhWRZSYN0Os3wwAB9588TjUQwmc04DcGeJZVKMTg4SG9vL7quk0qlaGpqAsB0/jwmIFRTAxYLK1pb+d7wMO8H7kx+F3jNpGNuu+8+WoCjNTVoN9446XuQmkZhGYOKoWLoFUuFwrh4IaYX5DMIsQQmJCDpuj5lQlKOjRuhoQEGBuDIEcwbN+L1ekkkk7myCSIexzY0hG42kzTkgxCCEZcLImFc/iOEY5fjccrw7DOnT5POZEinUiSTyVwilcViWRKNSSpiuhFCvFkI8RMhRJ8QQhdC/HEljlPI2NgYp0+dQiBLBFRXVU0KZ7RarXi9XmpqaqitraWhQXrSdV3HMzICQNoQyqtbWviWsd1lPfcjCux43uefZ2dPDxHg0dtuK1lyIJ1OL5wzRmXFKpYKhebDYr1iCymzXPH46jY8Hk/OfOIqR8kRAq6/Xr5//HFAOnbzTTB2o/xJorl5wuw4VCXDmDs5woFTUoF0u934AwFi0SiZTAabzZaTMdMlSC4UlbLRvwnoAO6r0P5LUk6sej5Ze15+aKVmTNVa69vYB+yhFns8jCevUYE5GKT5m98E4ENAy7bSFSqEEOVdgPNBOQ4vhWIhKKa9T6fRm0ylK1+WoLGxkUAggNfnK988esMN8vWxxwCZZZ5f5z5nnzdkQZakoRh2ciYXdm232/G43TidzlzP5sUOpyykUqN5s67rlwLvr9D+552z/f25iJtks6w7j5CffM8sPexVxtMfoPnuu7GEQvwW+IbVSmeJBKd0JoPVap3Rw2dOTFUGVqFYSPK1d12XmnQ5viO3u+zIG5DZrTpQN1X8fCE7d8oHyrFj0NuLy+Uqap9PFgh6jPu8k/6coL8QqIig13V97i3cF5juvIibpPHPDISklv59/OhmM559+zD7/XiffRbfs8+Sslq5C1i7alXJ8KlEPF6x+PmiTFUdUKFYSPIFfdakWI69usykqSxOp5Pampry7PNZbDa46ir5/vHHc8pYNsyyMOImdyyjvWgnAfadqCvXwrToLK35xSJytoigP9m7AfDSmwkxunkzQtOofeABmr/1LQD+d/t2zsCE3rKFVDJRqiQqhl6xFDCZxrNjZ2JSnEHSFEjT6Jo1a2Ym6GHcfGPM1Gtra3OVLAsjbrLUr1xJCKgiTSYYp3/0wvCHKUFvMNbTQx2QtFpJG42HZcVKab7Zb8Te1v/yl1jCYcKbN/NNYxq6sb19yn0vaPw8qBh6xdIhmzQ1E5PiLGakbrd75nbxa66RpRpeeAFCIXw+H6lUClMshnVkBM1qJdnYOGGT1sZGThvvOznJ/lN1Mx7rYlDWmRFCVAkhNky3zHYQQoh3CSF2CyF2D+UVFVtIrEY3qXBDAwjBkN9B34gHs2ktAE+53aSNyJmMw0HfO97B4e5uoLSgz8blLrigVxq9YqmQTZqaiUbvcEgTZKXtIlVVsGOHnHE8+SQulwtd17Fl7fMtLfJBkIfb4eC8oeB18iL7TlwYdvpyH4G/BxwuY5kVuq5/Rdf1nbqu78yGOy4kuq7jM0IrNcMml60/31Irp24nBgfx33QTAAN/8AcEPR5O9/VhMZtZW+iwMUgsZKIUzMzhpVAsBFmNXtfLF/Qul3R6BgKVHRtMiL5xOGQClM1Q4Art81lGjPDlTl7KyYmlTlmCXtf1r+m6LqZbKj3YSjHk99NhhFbphtDOliZet0omS5zp62PoDW/g+Oc/T+D66znW04Ou63S1tmIvoUEn4vHinW4qRTZZagkkaCgUwHioZDkx9PmsXSsjb8oshzBrsvH0Tz2FSKepqq7GkhX0JRS4sHFPd3KUA6dryWhL/35TNnoKQisNR2w2dOryDfKferqvD0wm0sY/+dCZMwBsnMIRm8lkJlW6rCiplEqWUiwt8rNjZ2JSdLuhvR38/vLWn+0DYcUK2V4wEoEXXqCmunrcEVtCo08bdvu1pjPEElZOnq+a3bEXkEplxm4SQrwJeJ3x0U4hxJuEEDdU4nhzZUJoZXMzmgYHTkuN/qZLHQghODc0NKGTzOGzsrzRknLEqqxYxVIjX7jPNEhg9WppP5+uEUkyCb29UljPhjzzjdvjwWn460pp9Gbj804h/YkXQjx9pTT63wfuBb5j/P3nxt8fq9Dx5kR3fz/Z4sLJ5mbO9PsIRW001URY2aTRUldHOpPhXJ6jOCfoS2j06UwGm92+cIlSoDR6xdLDah33Hc00SMDhkCacsbHS62gajI5KrXyKuvBTklcOwZ1OYw8EyFitjNjtRdsVuox7fkUmjEBj38mlH3lTqYSpj5aw47+sEsebK/HubhxA2OVCczpzIVPbuqSDNpv1esqof5FMpznW0wPAxvzOTvn7XOhEKZAXvSp/oFhKZOPoszVsZsrKlTIev1RJhKEhWLdONhOZbZTOpk1QXw8DA5h+8xsARGcn9Y2N+P1+gsHgBIHf3NbGIOBAp4U+9l/EGv0Fhc2YqkUN21s2ZGprl2wEnhX0Z4z1Tp4/TzqTob25GXcJwZpKJqmuWgTbnYqhVywlrFYZojjbshw2mxTko6OTvxsdhaYmqc273XLdGdTIyWEyjWv1d98tP1qzhq6uLi697DIaGhoIBAIEg0EAWurqcrH0XRzh+LkqIvG5R7o1/exn+A4cmFGyWLlc9IJe13WqjKmhvnIlMB5auXX1RI3+tCHoy7XPL0ozYBVDr1hKmEzSITuXmWZbmzTjJPIa/4TD8lrfulUeQwgp9Odqvunvl69dXQA4HQ5Wr17NpZdeislkIm3Une837rMrqp9E000cPlNenZ1wLMYn7r6bXzz55IRmJ9bBQRrvu4+O7363IpFGF72gH/L76cw6e1auJJk2cbSnGoDNnVKL6Mhq9MZFkI24KVX6YNESpUBp9Iqlh8Mxt0J7Fgts2DAeV59MQiwmG4jkKzaNjTBNo+6SXH75xIeRIeizOBwO3G43aWPGMGZE022y7wHg4OnyBP03fvlL7nnwQT705S/zvs99jlFjluB58UUAghs3VqRW1UUv6AurVp48X0Uqbaa9OYjHKadQhTb6I9No9IlkEo/XuzilSpWgVyw1XK65+46ammSxs0hEmmwuuUTWxMnH6519DondDvkd4lavnrSK0+XKFT2LGpUyV2onATh0dnpBH4nFuOehh+S+bDYefuEFXvvhD/PIiy/ifeEFAPxbt85u/NNw0Qv6wtDKQ8YUbHPHuE2wqaYGp92OPxxmNBic1nSTiMepWWhHbDotL9YlVgdboaC2du6C3mSSnaHGxqTN3uj6NAGnUy4zKHE8gWyYpdMJ2VLlebiczvFG5MbxWxLZWf70gv7eRx8lGIlw6bp1/OJf/5UrN25kJBjko5/9LI4jR9DMZqnRV4CLXir09fbSDmSEINnQkLO1bcwT9EKInFb/2N69xBIJmmtrqS3RPSaTycy8kl4+s3EoqRaCiqXKqlUwH4pPXR1ceeUks8oEmpvnFk/f3g4lusXZ7PacXd1q+PMa4gHMJo3TvT6i8dKlTpLpNN++/34A/uSVr6S1vp6v/7//x4fe+lZeZzZjBh43mdhtWA3mm4tC0Nv6+hAlbHdpQzsPVFWBxcJBQ9Bv6pjo5c8K+vufeQaY2hErhJibI3ZwsHiUwVSkUqrhiGJ5I4QU5FPNWuvrZx+14vXCj38MH/lI0a/zm397OzvRgPpkkg2tw2i6iaPdpcud/PKppxgYG2NNWxs37NgByO52f3T77Xx8nbQp/CCV4s++/GX6jKCP+WTZC3rHiROs/tCHWPnpTxeNs3UMDAAQa2oinRG5f9a6tsEJ63UYU7mnDx4EpkiUSqex2mzY5hL9YrWO1wcpF6XRKxTg882o5+xMyL+nW5ubOQeYgeuaDwCl7fSapvH1X/4SgD951asm+O5EPE7TiRNy6DffzLtuvZWWEt3q5sKyF/S1v/kNQtdxHzmCd/fuCd/puk6NUUtDrFzJ6T4f8aSFFQ0hEtFzxPPCuVYbDcMzRuhTKY0+nkjMzT6vaTLKYOXKmVXvUy0EFQqpJFVVTQzFnLddWxFCoOs6DdXVnDEcv5d4ZeRNKTv9b/fs4VRvL811ddyR7/AFPAcOYEqliHV18Qd33sldN9887+OGZS7ozcEg3uefz/3d+IMfTLB/54dWilWrcv+oje2j2Ox2UnlOnY6Cp2wpQZ9OpeaWEZtMyiiFjg75fiaaiYq4UShkiePZ2umnQAiBw+Egk8lgMpkYNMIgV2UmC3qz30/1ww8jolG+dt99APyf22+fYP4B8BjRNqGdO+d9vPks68LlVY8/jimdJrxtG9bhYey9vdQ8/DBjt94KTA6tPPSC/EetXzmE0+EgmSfo2/O8/NUeDy11xetbaJo2t/j5dFo6rjwemSgyNFSeI0vXVbKUQgHyfqlQeWOH00ksGsVisRDw+SAepzZyHCF0Tp6vJpE04fH3s+pTn8I2NET8+ed56cQJqjwe3nhDQU3HTAbvHvmQCF12WUXGm2X5avSaRs1vfwvA2CteweCb3wxA/c9+hsl42nfnCfpES0vuiby2bQCHwzFhdy6Hg2ZDuG9sb5/QMT6LruuYzOa5Cfp8p2pnZ/lavRBKo1coYDyevgLC3uFw5JKm4oY8sA8P0NkSIJ0x0f9iiPZ/+idsRgHEzoMH2QW89eabcRXKlKNHMUciJFpbc+XRK8WyFfTuAwewDQ6SrK8nvG0b4UsuIbJxI5ZwmPr//V8ARnp6qAFiFgspbxWHDWdKV0sfNUUahqw2/hmlMmITySRej2duiVKZjNTmQV6w5XbaURq9QiExm2X0zWzLIUyB2+XKxdLrhjxw+/1s7hzlUl7g+q99CKvfT2TDBk5efTUAnxOCtxexvWeTpEKXXjrv4yxk2Qr6mkceAcB/4425WhiDb3mL/O43v8E6NIRudJIJ1NRwdrCKaNxKc22EGm8Mr9eL2WzO/VMBrtm6FSEEN1xySdFjzkvFykKBvXr19Fp9JjNePEqhUMgwzNmWQ5gCq82Wi6W3G366ukiEO5wP8wg34UoECG/fTs8HP8j/y2ToA67QddqNaL0cuj4u6CtstoFlKugto6N4XnwR3WzGf/31pDMZkuk0sY4OAldfjSmdpuHee3ENyhDKRF5GbDZRymaz4fV6cynPAH9022088+Uvs3P9+skHBXRNw1uYlj0b8gW9zyezAI2aGEVRDUcUiolUVVXEdGPLM4/WtLcTB2rSad7x6F9QRZAH3K+l5y//kpPDw/z0+ef5O8PE2/g//4PIiwRynD2LdWSEVHU18SLlFuabZemM9T3yCELXebGlhfd88YvsPXEi1x1qtcnEQaDq6ae5yVjf1N6eE/SbOkYQQmC323G73YTD4Zy93mQy4Z1CoOq6Pj+FzApNMGvWwJNPll4/lZIPBIVCIckvW2yZPzFnzRP0bU1NnAXWA5Z0gq/zf/jT6Gu59guf4PG9L5LRNIavvpr4+fM4zp6l7le/Yvj1rwfGo23Cl122IGVLlo1Gf+zYMb5899184DvfIfPznwPw1+fO8fyRI6TSaSyGWeOUpvGfxjZZq5lp1SoOGdXn1rUN4nK5EELg8XhyjpfpSKfT2O32uSVKZTvxFDpVfT5oaJis1cfjMionkQAjzl+hUCDvo8bGebfT58fSV7ndHDDkykOdnbxHPEhKfx2/fXE3QghuufxyPvjWtzLwtrcBUHfffViMjPeFNNvAMtLo7777bj757//O64BW4KTZTPMNN/CfW7ZwxcaNVHs86LpOKp1GCwZJfeQjWI3om0RzSy6rbU3bQK5OjW0G5ULjiQS1RRy4MyLbCrBYBb61a6VW7/XKWtyxmNRatm+XD4F51FoUimVBYyMYjb7ni2wsfTqdxmq18m/NzXz6/HmePp1tRbKaV1x+C3/3h5tpMPx10aoqgjt34tu9m4Z772X4da/D0dNDxukkUqEiZoUsG+nwyle+kmP79vHPzz4Lg4O477yTf7jttgnrCCGkja2ujpE3vIHm78iWtqctXYSiNuqqYlS7Ang80mbmyCtiNB2pZJKquXaUSqUml17NUlUlL9yBAelo2rYNampmX5ZVoVju+HwVKYXgdDqJRqNYrVYuu/xyvjE4yG2XXorH+cf86NF3Ue87TkP18xO2GbzzTjx791L9u98hjACP8I4dC6agLRtBf9VVV7HuPe+h7he/QLNaCVx33ZTrj910E+79+8n4fOzvawNkaWJd13I2eavVisViIZPJYC4jomXOHaWmK0y2ZYss1apKHSgU05NftngeQ4+dTmeureBfvPGNvPcNb0AIwdMHm/nRo6aiNW9STU2M3XILdb/6FVVPPw0snNkGlpGNHsD5ox8BENy1C206YWixcO6v/5q+d74z1x1mU8eo1PrzTDYej2dC5E0xNE1DmEyTkqxmzHT1aubaqUehuNhobp53O70rL5YeyCVPbmyX9vej3TWkM5Nn2sOvfS1pY8auWSxEtm2b13FNxfIR9IkEjp/+FJDa+kzIJkptbDcibvKe/uUI+mQyiW8+OkrpekXaiCkUFy1VVfPebNtqtRY16VZ7krTVh4knLZzumxwFp7lcDL3pTQBEtm1DW8Bqs8vGdMOPfoTJ7yfS0kJ8qsYEBej6eDGidSsGcTgcEwR2fp/IUsTjcZqKdbyZDUrQKxTzRwXuJ+sUpUY2dYxyftjDoTO1rF0xOaPdf+ONpOrriZfIrq8Uy0ej7+tDdzgYuvzyGTko+0ZcjIUcVHvi1Pv8kzpD2cswx+i6jnu+TCqqjIFCMX9U4H6aKoR6U+cIMEVrQSGIbNtGZoHzXpaPoP/ABxh5+GGGt2+f0WaH8jpKpVKyqXc+5UbezNkRm42hV4JeoZg/KnA/WSyWXCx9IdnOdOX0kF1Ilo+gB3SfD32GFRyz9vlNHaPouj7JoZofeVOMVCqF3W6fcjpXFum0dLaqcEmFYv6wWue9kqUQAqfTWdSku8lwyB4+W1upSsmzYlkJ+tlw8LQsNZp9EtuLaAAejydXQqGQRCJBbe08PL1Vz1eFYv4RQlaDLTPDvVwcDkfRII26qgTNtRGicStnB5ZOWZKLXtDnm26yNW4K8Xg8E7pN5ZNKpfDNh71NCXqFojK4XDKWfh5xu90lZ/kbl6D55qIW9EN+J8MBJ15XkpZaPzabrWhi1HSRN3O2z4MU9AWOYIVCMQ+43fOv0Zcw3cC4+UYJ+iVCfo/YVCpZMnKmVOTNvCVKgXTGzsd+FArFRLzeeRf0tmlCLAEOnZlj7at55KIW9PkZsalUalJoZRZ7XrOBfBKJBNVVVUXbCs4KFXGjUMw/Ntu817yZKvhic6fhkD1TW4lSO7Ni3gW9EMInhPiYEOI5IURACNEvhPipEGLdfB9rruTb5zOZTEmN3mazFY28SSSTVM+1YuXEA83fvhQKhaQC95V1in02VMeoq4oRjNo5N7Q0zLGV0OhXAe8Efg28CXg30AI8K4RYWYHjzZpDZwtq3Ezxz3O73ZMib7RMBvd8dnZSWbEKxfxTiexYiwVhMqEViaEUYunZ6Ssh6E8DXbqu/72u6w/quv5z4A7ACtxVgePNiv5RF/0jblyOFO3NIWDq+vNer3dS5I0QAud8CPp0Wl6MC9BpRqG46MjG0s+zHcVp1KUvxpbVMkN27/GGeT3mbJl3yaLrekTX9VjBZ6PAWaBxvo83W5460AzAlRsH0HXZRMA6RW3ownCqZDKJ0+mccpuyUaGVCkXlEEKGWM5zcTOXy1VS0F+5aQAYlzP5xBMJRkdHSeT1kK00C6JCCiEagDXAoYU4Xjk8faAFgKu29JFKJks6YrPYHY4JDtlEIkG10UFmzihBr1BUFrd73gV9qexYgB1rhnDa0hw/V8OQf2KVykg4THt7O5lMhtHRUeILIPAXylbwaSAM/KDYl0KIdwkhdgshdg8NDVV8MJoGTxmC/pqtfVNG3GQpjLxJpVLldZRKp8HoE1kSJegVisri8VRE0Bez0QPYrBqXb5ys1YfDYerq61mxYgWXXHIJGzZsAKi4hl+WoBdCVAkhNky3lNj2T4G3A+/QdX2k2Dq6rn9F1/Wduq7vbGiovE3rSHcNYyEHzXUROpqDZDKZaZOeCiNvsvUupiUalUuJLDpAPnnm06mrUCgmUoGkqVJ16bNcvaUPGFcqNU0jmUzSvmoVACaTibq6OnZs386mzZuxWixzr5lVgnINzL8HfLWM9SYElAshXgN8AfiQrus/neHYKkZOm9/Sl6shVk4j8PzIG1O5iVLJJNTVQSQie1iWQoVWKhSVw+GYd2fsVFF6AFdvHRf0ug7BUIjWtrZJSqUQgprqaqq3bSMdCs3rGLOUpdHruv41XdfFdEvB4K9Gmmq+rOv6v1di8LMlK+izT1yQ5YinIxt5k0gkqKquLi9RStehqQmmm5YpQa9QVI5KlCueRvvuag3QWBNlJODk8FkfAmhrbS25vhCiYhp9RWz0QojNwH3AA8D7KnGM2RJLmHnhaCNC6Oza3J9r/F3OCc5G3iSTSWpm4ohtkQ+WKTUKJegVispRiaQpiwVTiVh6kME+WWXyt7trae/omHYWUCkqkRnbiBTwYeDzwBVCiF3Gsmm+jzdTXjjaSCptZlPHKDXeBKl0uuzuUNnIG03TytsmnZYXmMcDtbUQi01eJ5MBi0UuCoWiMthslYmldzqn7CmdFfQvHG+ncQH8j6WohHTZBKww3v+24LvHgJdV4Jhl82Q2rHKz/AekksmywySzkTdlO2LjcciWSGhrg/37JztdUynliFUoKk02lj6dlglU84TT6SQ0hV09K2f2nmgllR7CbF6c4jeVSJh6dAo7/svm+3gz5em8sEqAdDqNt8zywNnIG5fLhaUcDTwel5o8SIFfTJtIp2V1PYVCUVnc7nmvS+9yuabU6B2WUTasGiGeNPO7vYtX9+aiyrkf8js51lOD05bmkrXj8frFmo2Uwu12l58opWnjNeZdLnmhFTplk0kVQ69QLARzzY4Nhyd95HA4StrodV0nHo9z69VRAB58dvE6Tl1Ugv5pI3Fh54YBbNbxf85MHCQ1NTXlC/rsdDHLihWTL5ZMRpluFIqFYC516TUNBgYmKWqlZIeu6/j9fpqbm3nVddI395tnFk/QX1QewGxY5c51Z/H7/blm4DMR9G1tbeWtqGlgNk9sJlJXB0ePTl5XRdwoFJXHbp+9MzaRgKoqaY7NswAUi9ZLp9P4AwGam5tp7+hgxcowDrvG3mMuBkctNNbOb+JWOSxrQZ9KpUgkk6RTKTRN58n9TQDcfGWArq4unE4nDqdz/hqH5JN1xObv2+uVjqB0emKUjSpPrFBUnrkoVImETHgMBid8XCjoI5EIqVSKDevXU19fL2PjLTrXXxLiN89U8dBzXt5629jsxzFLlp3pJplMMjY2xtjYGJlMhtqaGtasWYPZs4uRoJvWhiS3v6yRxsZGvF7v/FSfLEY8DoUmHpMJWltllmwWXVcavUKxEMxFoUql5Iy8YEZgsVgwm82kjQJlNpuNHTt20NDQMEGBfMWVMjJnsez0y0qj93g8bNy4EVtbGw6HY0JkzN2/lhWSX3FlkEoo8JPIZORUr5DGRjh7Vr7PmncqlA2nUCjyyK9LPxshUFcHp05N+tjhcDA6MkJHRwcrVqzAbDZPWueWXUE++Dlpp5/t4efCshL0TqcTZ23teKRLHtknafbJuiAUc7JWVUnNXtdV1UqFYiExmaTPbLax9FVV49vnKZGtra20t7dPGaSxdU2MproUvUM2Dp92sGl1fBY/YPYsO9NNMeIJwWMvylj1m68ITrP2PKDr8qIqllRltUJ9vTTfqGQphWJhmU1d+lRK3ssWi/S7xScK6YaGhmkj8YSAVxiyZzGiby4KQf/kSx7iCRPb10VpqlsAj3ciIWcVpVoDtrbKcgjptNLoFYqFZDZ16ROJcX9bbe0kQV8ur7hSCvrFsNNfFIJ+3GyzANo8TMyILUZ1tdT6VVasQrGwzEbQ55cy8XhmHaJ5s2E2fvQFD4nkwhrpLwpBn50q3bJQgj6VGr8wiuF0ylCteFxF3CgUC8lsYunzM9ydzlkL+taGFFu6YkTjZp7et7Az+WUt6HuHrPz3j+vZc9SF3aZx7Y7JKcwVQdeL2+fzaWuTF5AS9ArFwjGbEEshxu9nh0P62abqGDcFWavCf3y3iSf3ume7mxmzrKJudB32nPDxi5+28Isnqnjh8PhT8xVXBnE6FqhyXGHpg2LU1UmtXgl6hWLhmOn9pmnj0TpZamtlKZNZ+Ndec72fz97TxC9/V80vf1dNfXWKO64J8urr/Nxy+Ri+Cqney0bQf/nL8ImP13O+ryn3mdOucfMVQV59fYA3v2KaBt3zRbZI2XSJWB4PrFqlBL1CsZDM9H5LJqVClh/4XlMDw8OzEvQv2xnmia8d4ccP1/CLJ6o4ec7B3b+s4+5f1mG1aLxsh5+fPjr/MRpiqua2i4EQYgg4O5ttrVK8tpihaBPyhcAM5hSkorCwgbKzpx4YXuxBXECo8zUzltz5qgKvBpoO0wo/M5iTkIxBrpqZBSwecKVhXkP4BIgU1MTh3Cx30a7retHuJktO0M8VIcRuXdd3LvY4LhTU+ZoZ6nzNDHW+ZkalzteydsYqFAqFQgl6hUKhWPYsR0H/lcUewAWGOl8zQ52vmaHO18yoyPladjZ6hUKhUExkOWr0CoVCochDCXqFQqFY5lzQgl4I8WYhxE+EEH1CCF0I8ccz2PYaIcSzQoiYEOK0EOJ9FRzqkkEI8U4hxHEhRFwI8YIQ4uVlbPNR4/wWLrctxJgXAiHEJiHEw0KIqBCiVwjxcSHE5A4Sk7erEkJ8UwgxJoQICCG+J4SoW4gxLyazOV9CiI4S19EPFmrci4UQYo0Q4r+FEC8JITJCiEfL3G5erq8LPTP2TUAHcB/wjnI3EkKsAX5tbPdh4ArgM0KIqK7rX6vAOJcEQog7gS8DHwV+B/wf4D4hxOW6rh+YZvMAUCjYD8/7IBcBIUQN8BBwCHgt0AV8GqkI/d00m/8PsB55/WnAvwI/A66r0HAXnTmeL4APAE/m/b2kEqoqxGbgDuAZYCbpufNzfem6fsEugMl49SCz3P64zO3+GzgGWPI++xLQg+GgXo4LcBT4Rv75A/YD351mu48Cw4s9/gqelw8DY4Av77O/AaL5nxXZ7irjurs+77MrjM9uXuzftQTPV4dxbl612L9hEc6ZKe/9j4BHy9hm3q6vC9p0o+u6NstNbwd+out6fgrzD4AVwJY5D2wJIoRYDawDfpj9zDh/9yLPx8XM7cCvdV3Pr2P9A8AJ3DDNdgO6rj+e/UDX9eeA0yzvczrb83XRMktZNW/X1wUt6GeDEMINrASOFHyVNUNsWNgRLRjZ31Xsd9cKIYrWyMijWggxLIRICSH2CCHeMP9DXDQ2UHBedF3vRmqoU10Pk7YzODzNdhc6sz1fWb5p2Kn7hBCfEUJMU9P7omXerq+LTtAD1carv+DzMeN1io4hFzTZ3+Uv+Lyc330COTX/feCNQC/w42Uk7GuYfF5Anpupzstst7vQme3vTgBfBP4EeDnShPqnyNmAYjLzdn0tKWesEKIKaJluPV3Xiz3lZkqpTLELJoNsluer8PeJEp/nb//dguP+AngK+AfgJ2UNdulT7PeLEp/Px3YXOjP+3bqu9wHvzfvoUSHEAPAlIcQOXdf3zu8QlwXzcn0tKUEP/B7w1TLWm0vDRb/xWl3weSmNdykzk/OV1dyrkRE05P0NM/jduq7rQoifAP8qhDDrur5AfXIqxhiTrweAKqY+L2NAMZNX9TTbXejM9nwV40fIQIhLgb1zGdQyZN6uryVlutF1/Wu6rovpljkeI4KMrim0cZWyYS9ZZni+sr+r2O8e1XV9aDZDmPXglxZHKDgvQoiVgJupr4dJ2xmUsq0uF2Z7voqhF7wqxpm362tJCfoF5H7g9QUJHm9GPgCmiye/INF1/RQypPT3sp8JIUzG3/fPZF9CCAG8HnhpGWjzIH//rUIIb95nbwZiwGPTbNcshLg2+4EQYiewmhme0wuM2Z6vYrzJeH1hPga2zJi/62ux40vnGJu6CXmhvB2pEfyX8fcNeevcgOwEk//ZGiAM3APciHQ0poB3LPZvqvD5eguQQSa13Ah8C3lzbpnmfD0GvA+4BSngf4VM3njNYv+meTovNUAf8CBwM/Au4/r4RMF6J4CvF3z2AHAKeAPwOmSuwhOL/ZuW4vlC5mN82jhXNwMfN66/Hy/2b1qAc+YyZNObgKeBg3l/uyp9fS36CZjjyfuoIeALl0fz1nmZ8dnLCra9FngO2fLvDPC+xf49C3TO3mlcUAngReDlBd9POl/A142LLQZEgCeA2xf7t8zzedkEPGL8xj7gnwBzwTpngG8VfFYNfBNpMw0ilYf6xf49S/F8AXcCu5E+oqRxHX4csC/271mA89VRQlbpQEelry9VplihUCiWORerjV6hUCguGpSgVygUimWOEvQKhUKxzFGCXqFQKJY5StArFArFMkcJeoVCoVjmKEGvUCgUyxwl6BUKhWKZowS9QjENQohvlWhq/cRij02hKAcl6BWK6fk3ZP/Oq5DN1XVgAPjCYg5KoSgXVQJBoSgDIUQN8B1kYbf/AD6py5LXCsWSZ6k1HlEolhxCiHpkpcZq4Gpd13cv7ogUipmhNHqFYgqMmv1PIkvz3qDr+sAiD0mhmDFKo1copuYvgS3ADiXkFRcqyhmrUEzN/wU+o+v6ycUeiEIxW5SgVyhKIIS4DFgF/GCxx6JQzAUl6BWK0qw3Xs8v6igUijmiBL1CUZqo8bpxUUehUMwRFXWjUJRACFGF7GsaBT6JbOi8X9f14KIOTKGYIUrQKxRTIITYCvwzcA0yjt4P7NR1/dQiDkuhmBHKdKNQTIGu6/t1XX+1ruu1QC3gAa5b5GEpFDNCCXqFogyEEBbgVmSdmycXeTgKxYxQgl6hKI+rgH8C3qLr+onFHoxCMROUjV6hUCiWOUqjVygUimWOEvQKhUKxzFGCXqFQKJY5StArFArFMkcJeoVCoVjmKEGvUCgUyxwl6BUKhWKZ8/8D37CBTpZZa50AAAAASUVORK5CYII=\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "dim=4\n", - "RMSE: 0.258193\n", - "RMSE: 0.31805345\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Cycle through plot dimensions\n", - "for plot_dim in range(0,dim):\n", - " f = plt.figure()\n", - " ax = plt.gca()\n", - " print('dim=%i' % (plot_dim,)) \n", - " plot_ber_uncertainty(ber_net, plot_dim, ax)\n", - " plot_eiv_uncertainty(net, plot_dim, ax)\n", - " plt.xlabel(r'$\\zeta$')\n", - " plt.savefig(os.path.join('saved_images','multinomial_noisy_prediction_std_x_%.3f_dim_%i.pdf' % (std_x, plot_dim)))\n", - " plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "velvet-patrick", - "metadata": {}, - "source": [ - "## Coverage\n", - "Produces part of Table 1. Running this section takes around 1h 45 min" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "treated-respondent", - "metadata": {}, - "outputs": [], - "source": [ - "def inside_uncertainties(predictions, truth, k=1.96):\n", - " mean = np.mean(predictions, axis=1).flatten()\n", - " std = np.std(predictions, axis=1).flatten()\n", - " inside = np.logical_and(truth.flatten() > mean-k*std, truth < mean+k*std).flatten()\n", - " return inside\n", - "\n", - "# Use quantiles instead of uncertainties (not used in preprint - for concistency reasons)\n", - "def inside_intervals(predictions, truth):\n", - " up_quantile = np.quantile(predictions, 0.975, axis=1).flatten()\n", - " low_quantile = np.quantile(predictions, 0.025, axis=1).flatten()\n", - " inside = np.logical_and(truth > low_quantile, truth < up_quantile).flatten()\n", - " return inside\n", - "\n", - "def compute_mse(predictions, noisy_truth):\n", - " pred = np.mean(predictions, axis=1).flatten()\n", - " y = noisy_truth.flatten()\n", - " assert pred.shape == y.shape\n", - " mse = np.mean((pred-y)**2)\n", - " return mse" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "welcome-bread", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "fa8415ec4f064a62b619e6a577c196e5", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/20 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "ef37e32b45474cdabb9273a67eaf262b", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "466b35f5fcbe463bacab6d5217db665b", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "0c078d7469664f75a4e40f105e89d76f", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "9875c6b4a1a44bd2891a08f3f208007a", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Collect coverage and RMSE given a seed\n", - "def coverage_computation(net, ber_net, seed):\n", - " set_seeds(seed)\n", - " coverage_x = torch.tensor(np.random.uniform(low=-1.0,high=1.0, size=(1000,5)), dtype=torch.float32)\n", - " coverage_y = func(coverage_x)\n", - " net_train_state = net.training\n", - " net_noise_state = net.noise_is_on\n", - " ber_net_state = ber_net.training\n", - " number_of_repeated_draws = 100\n", - " net.train()\n", - " net.noise_on()\n", - " ber_net.train()\n", - " inside_map = inside_uncertainties\n", - " net_inside_list, ber_net_inside_list = [], []\n", - " mse_list, ber_mse_list = [], []\n", - " for _ in tqdm(range(number_of_repeated_draws)):\n", - " noisy_coverage_x = coverage_x + std_x * torch.randn_like(coverage_x)\n", - " noisy_coverage_y = coverage_y + std_y * torch.randn_like(coverage_y)\n", - " pred, _ = [t.cpu().detach().numpy()\n", - " for t in net.predict(noisy_coverage_x.to(device), number_of_draws=100,\n", - " take_average_of_prediction=False)]\n", - " ber_pred, _ = [t.cpu().detach().numpy()\n", - " for t in ber_net.predict(noisy_coverage_x.to(device), number_of_draws=100,\n", - " take_average_of_prediction=False)]\n", - " net_inside_list.append(inside_map(pred, coverage_y.numpy()))\n", - " ber_net_inside_list.append(inside_map(ber_pred, coverage_y.numpy()))\n", - " mse_list.append(compute_mse(pred, noisy_coverage_y.numpy()))\n", - " ber_mse_list.append(compute_mse(ber_pred, noisy_coverage_y.numpy()))\n", - " net_inside = np.mean(np.stack(net_inside_list), axis=0)\n", - " ber_net_inside = np.mean(np.stack(ber_net_inside_list), axis=0)\n", - " mse = np.mean(np.array(mse_list))\n", - " ber_mse = np.mean(np.array(ber_mse_list))\n", - " if net_train_state:\n", - " net.train()\n", - " else:\n", - " net.eval()\n", - " if net_noise_state:\n", - " net.noise_on()\n", - " else:\n", - " net.noise_off()\n", - " if ber_net_state:\n", - " ber_net.train()\n", - " else:\n", - " ber_net.eval()\n", - " return coverage_x.numpy(), coverage_y.numpy(), net_inside, ber_net_inside, np.sqrt(mse), np.sqrt(ber_mse)\n", - "\n", - "# Loop over seeds\n", - "net_inside_collection, ber_net_inside_collection, rmse_collection, ber_rmse_collection = [], [], [], []\n", - "for seed in tqdm(range(0,20)):\n", - " seed_net = Networks.FNNEIV(p=0.5, init_std_y=init_std_y,\n", - " precision_prior_zeta=precision_prior_zeta, deming=deming,\n", - " h=[dim, 500, 300, 100, 1]).to(device)\n", - " seed_ber_net = Networks.FNNBer(p=0.5, init_std_y=init_std_y, h=[dim,500,300,100,1]).to(device)\n", - " ber_saved_file = os.path.join('saved_networks', \n", - " 'noneiv_multinomial_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_seed_%i.pkl'\n", - " % (std_x, std_y, init_std_y, seed))\n", - " ber_train_loss, ber_test_loss, ber_stored_std_x, ber_stored_std_y, ber_state_dict\\\n", - " = train_and_store.open_stored_training(ber_saved_file, net=seed_ber_net, device=device)\n", - " saved_file = os.path.join('saved_networks', 'eiv_multinomial_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_deming_scale_%.3f_seed_%i.pkl'% (std_x, std_y, init_std_y, deming, seed))\n", - " train_loss, test_loss, stored_std_x, stored_std_y, state_dict\\\n", - " = train_and_store.open_stored_training(saved_file, net=seed_net, device=device)\n", - " coverage_x, coverage_y, net_inside, ber_net_inside, rmse, ber_rmse = coverage_computation(seed=seed, net=seed_net, ber_net=seed_ber_net)\n", - " net_inside_collection.append(net_inside)\n", - " ber_net_inside_collection.append(ber_net_inside)\n", - " rmse_collection.append(rmse)\n", - " ber_rmse_collection.append(ber_rmse)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "initial-schedule", - "metadata": {}, - "outputs": [], - "source": [ - "# Reshape and process results\n", - "net_inside_collection = np.stack(net_inside_collection)\n", - "rmse_collection = np.stack(rmse_collection)\n", - "ber_net_inside_collection= np.stack(ber_net_inside_collection)\n", - "number_of_draws = net_inside_collection.shape[0]\n", - "net_inside_mean = np.mean(net_inside_collection, axis=0)\n", - "net_inside_std = np.std(net_inside_collection, axis=0)/np.sqrt(number_of_draws)\n", - "ber_net_inside_mean = np.mean(ber_net_inside_collection, axis=0)\n", - "ber_net_inside_std = np.std(ber_net_inside_collection, axis=0)/np.sqrt(number_of_draws)" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "3f7de695", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "RMSE\n", - "===========\n", - "EiV: Average 0.759610, Error 0.004554\n", - "non-EiV: Average 0.713852, Error 0.004002\n", - "\n", - "\n", - "Coverage\n", - "===========\n", - "EiV: Average 0.916824, Error 0.000044\n", - "non-EiV: Average 0.628260, Error 0.000090\n" - ] - } - ], - "source": [ - "# Results for Table 1 in preprint\n", - "print('RMSE\\n===========')\n", - "print('EiV: Average %.6f, Error %.6f' %( np.mean(rmse_collection),\n", - " np.std(rmse_collection)/np.sqrt(len(rmse_collection))))\n", - "print('non-EiV: Average %.6f, Error %.6f' % (np.mean(ber_rmse_collection), \n", - " np.std(ber_rmse_collection)/np.sqrt(len(ber_rmse_collection))))\n", - "print('\\n')\n", - "\n", - "print('Coverage\\n===========')\n", - "print('EiV: Average %.6f, Error %.6f' %(net_inside_collection.mean(), \n", - " net_inside_collection.mean(axis=1).std()/np.sqrt(net_inside_collection.size)))\n", - "print('non-EiV: Average %.6f, Error %.6f' % (ber_net_inside_collection.mean(),\n", - " ber_net_inside_collection.mean(axis=1).std()\n", - " /np.sqrt(net_inside_collection.size)))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "601e4a82", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "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.8.5" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Experiments/old_scripts/evaluate_multinomial_including_vd.ipynb b/Experiments/old_scripts/evaluate_multinomial_including_vd.ipynb deleted file mode 100644 index a2b2d68..0000000 --- a/Experiments/old_scripts/evaluate_multinomial_including_vd.ipynb +++ /dev/null @@ -1,2155 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "canadian-hampton", - "metadata": {}, - "source": [ - "# Results for a 5D multinomial (incl. VD)\n", - "\n", - "This notebook produces the results of EiV and non-EiV models for data following a modulated, 5 dimensional random multinomial as presented in the preprint \"Errors-in-Variables for deep learning: rethinking aleatoric uncertainty\" submitted to NeurIPS 2021.\n", - "\n", - "\n", - "This notebook produces Figures 4 and part of Table 1 of the preprint. \n", - "\n", - "How to use this notebook: \n", - "\n", - "+ This notebook assumes that the corresponding trained networks exist in `saved_networks`. To achieve this either run the training scripts described in the `README` or load the pre-trained networks from the link in the `README` into the `saved_networks` folder. \n", - "\n", - "+ To run this notebook click, \"Run\" in the menu above. \n", - "\n", - "+ To consider different levels of input noise, change `std_x` in cell [3]\n", - "\n", - "+ To run this notebook with a GPU, set `use_gpu` to `True` in cell [3] (default is `False`)\n", - "\n", - "+ Plots will be displayed inline and, in addition, saved to `saved_images`\n", - "\n", - "+ The content of Table 1 is produced under \"Coverage\" below . To get the different columns, change `std_x` as explained above.\n", - "\n", - "**Note**: Running the \"Coverage\" section below will take around 1h 45 min." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "higher-johnston", - "metadata": {}, - "outputs": [], - "source": [ - "import random\n", - "import os\n", - "\n", - "import numpy as np\n", - "import torch\n", - "import torch.nn as nn\n", - "from torch.utils.data import DataLoader, TensorDataset\n", - "import matplotlib\n", - "import matplotlib.pyplot as plt\n", - "from tqdm.notebook import tqdm\n", - "\n", - "from train_noneiv_multinomial_ensemble_seed import seed_list as ensemble_seed_list\n", - "\n", - "from EIVArchitectures import Networks\n", - "import generate_multinomial_data\n", - "from EIVTrainingRoutines import train_and_store\n", - "from EIVGeneral.ensemble_handling import create_strings, Ensemble\n", - "\n", - "\n", - "%matplotlib inline" - ] - }, - { - "cell_type": "markdown", - "id": "89700d89", - "metadata": {}, - "source": [ - "## Fix relevant hyperparameters" - ] - }, - { - "cell_type": "markdown", - "id": "70eabc92", - "metadata": {}, - "source": [ - "### Values that can be changed" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "4346c8f2", - "metadata": {}, - "outputs": [], - "source": [ - "# The std_x used for data generation and model loading. \n", - "# Pick either 0.05, 0.07 or 0.10\n", - "# For figure 4 in the preprint 0.07 was used\n", - "std_x = 0.07\n", - "\n", - "# Switch to True if GPU should be used\n", - "use_gpu = False\n", - "\n", - "# Uncertainty coverage factor (1.96 taken from the standard normal)\n", - "k=1.96" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "lesser-brave", - "metadata": {}, - "outputs": [], - "source": [ - "# graphics\n", - "fontsize=15\n", - "matplotlib.rcParams.update({'font.size': fontsize})" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "45e3d119", - "metadata": {}, - "outputs": [], - "source": [ - "# Set device\n", - "if not use_gpu:\n", - " device = torch.device('cpu')\n", - "else:\n", - " device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')" - ] - }, - { - "cell_type": "markdown", - "id": "e5ffa66f", - "metadata": {}, - "source": [ - "### Values to keep fixed\n", - "The following values assume the settings from the training scripts. To change the following values, these scripts must be adapted and rerun." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "d99d560d", - "metadata": {}, - "outputs": [], - "source": [ - "# Set further hyperparameters\n", - "from train_eiv_multinomial import std_y, init_std_y_list, \\\n", - " precision_prior_zeta, deming_scale_list, dim\n", - "init_std_y = init_std_y_list[0]" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "micro-chest", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Choosing deming 0.2\n" - ] - } - ], - "source": [ - "# Fix the maximal Deming factor below std_x/std_y\n", - "def find_nearest(a, x):\n", - " idx = (np.abs(a - x)).argmin()\n", - " return a[idx]\n", - "\n", - "\n", - "def find_min_max(a, x):\n", - " idx = np.argwhere(a<x).max()\n", - " return a[idx]\n", - "\n", - "deming = find_min_max(np.array(deming_scale_list), std_x/std_y)\n", - "print('Choosing deming ', deming)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "24199de2", - "metadata": {}, - "outputs": [], - "source": [ - "# function to fix seeds (for reproducability)\n", - "def set_seeds(seed):\n", - " torch.backends.cudnn.benchmark = False \n", - " random.seed(seed)\n", - " np.random.seed(seed)\n", - " torch.manual_seed(seed)" - ] - }, - { - "cell_type": "markdown", - "id": "specific-divide", - "metadata": {}, - "source": [ - "## Prediction (for a single seed)\n", - "Produces Figure 4 from the preprint" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "10b4adf8", - "metadata": {}, - "outputs": [], - "source": [ - "# Change this to take a different network\n", - "# Choose an integer between 0 and 19\n", - "single_seed = 0" - ] - }, - { - "cell_type": "markdown", - "id": "ec7a913c", - "metadata": {}, - "source": [ - "### Load networks and data" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "88ba4449", - "metadata": {}, - "outputs": [], - "source": [ - "# Load EiV model\n", - "net = Networks.FNNEIV(p=0.5, init_std_y=init_std_y,\n", - " precision_prior_zeta=precision_prior_zeta, deming=deming,\n", - " h=[dim, 500, 300, 100, 1])\n", - "saved_file = os.path.join('saved_networks', \n", - " 'eiv_multinomial_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_deming_scale_%.3f_seed_%i.pkl'\n", - " % (std_x, std_y, init_std_y, deming, single_seed))\n", - "net.to(device)\n", - "train_loss, test_loss, stored_std_x, stored_std_y, state_dict, extra_list\\\n", - " = train_and_store.open_stored_training(saved_file, net=net, extra_keys=['rmse'], device=device)\n", - "rmse = extra_list[0]" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "21ea183b", - "metadata": {}, - "outputs": [], - "source": [ - "# Load non-EiV model\n", - "ber_net = Networks.FNNBer(p=0.5, init_std_y=init_std_y, h=[dim,500,300,100,1])\n", - "ber_saved_file = os.path.join('saved_networks', \n", - " 'noneiv_multinomial_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_seed_%i.pkl'\n", - " % (std_x, std_y, init_std_y,single_seed))\n", - "ber_net.to(device)\n", - "ber_train_loss, ber_test_loss, ber_stored_std_x, ber_stored_std_y, ber_state_dict\\\n", - " = train_and_store.open_stored_training(ber_saved_file, net=ber_net, device=device)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "438a5389", - "metadata": {}, - "outputs": [], - "source": [ - "# Generate data\n", - "train_data_pure, train_data, test_data_pure, test_data, val_data_pure, val_data, func = generate_multinomial_data.get_data(std_x=std_x, std_y=std_y, dim=dim, n_train=10000)" - ] - }, - { - "cell_type": "markdown", - "id": "protective-warning", - "metadata": {}, - "source": [ - "Cycle through different dimensions and plot" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "progressive-wheat", - "metadata": {}, - "outputs": [], - "source": [ - "set_seeds(0)\n", - "\n", - "# will be taken for all coordinates\n", - "# except for the plot dimension\n", - "cut_offset = 0.0\n", - "\n", - "# Plot EiV along plot_dim\n", - "def plot_eiv_uncertainty(net, plot_dim, ax):\n", - " offset = cut_offset\n", - " steps = 50\n", - " x_slice = torch.linspace(-1, 1, steps=steps)\n", - " plot_x = torch.zeros((steps,dim)) + offset\n", - " plot_x[:,plot_dim] = x_slice\n", - " plot_y = func(plot_x)\n", - " net_train_state = net.training\n", - " net_noise_state = net.noise_is_on\n", - " net.train()\n", - " net.noise_on()\n", - " val_x = plot_x + std_x * torch.randn_like(plot_x)\n", - " pred, _ = [t.cpu().detach().numpy()\n", - " for t in net.predict(val_x.to(device), number_of_draws=5000,\n", - " take_average_of_prediction=False)]\n", - " pred_mean = np.mean(pred, axis=1).flatten()\n", - " pred_std = np.std(pred, axis=1).flatten()\n", - " print('RMSE: ', np.sqrt(np.mean( ((plot_y-pred_mean)**2).detach().cpu().numpy() )))\n", - "# ax.plot(x_slice, plot_y, color='b', label='ground truth', linewidth=2)\n", - " ax.plot(x_slice, pred_mean, color='r', label='EiV', linewidth=2)\n", - " ax.fill_between(x_slice, pred_mean-k*pred_std, pred_mean+k*pred_std, color='r', alpha=0.2)\n", - " ax.set_ylim([-2.5,2.5])\n", - "# ax.legend()\n", - " if net_train_state:\n", - " net.train()\n", - " else:\n", - " net.eval()\n", - " if net_noise_state:\n", - " net.noise_on()\n", - " else:\n", - " net.noise_off()\n", - " \n", - "# Plot non-EiV along plot_dim \n", - "def plot_ber_uncertainty(ber_net, plot_dim, ax):\n", - " offset = cut_offset\n", - " steps = 50\n", - " x_slice = torch.linspace(-1, 1, steps=steps)\n", - " plot_x = torch.zeros((steps,dim)) + offset\n", - " plot_x[:,plot_dim] = x_slice\n", - " plot_y = func(plot_x)\n", - " ber_net_train_state = ber_net.training\n", - " ber_net.train()\n", - " val_x = plot_x + std_x * torch.randn_like(plot_x)\n", - " ber_pred, _ = [t.cpu().detach().numpy()\n", - " for t in ber_net.predict(val_x.to(device), number_of_draws=5000,\n", - " take_average_of_prediction=False)]\n", - " ber_pred_mean = np.mean(ber_pred, axis=1).flatten()\n", - " ber_pred_std = np.std(ber_pred, axis=1).flatten()\n", - " print('RMSE: ', np.sqrt(np.mean( ((plot_y-ber_pred_mean)**2).detach().cpu().numpy() )))\n", - " ax.plot(x_slice, plot_y, color='b', label='ground truth', linewidth=2)\n", - " ax.plot(x_slice, ber_pred_mean, color='k', label='No EiV', linewidth=2)\n", - " ax.fill_between(x_slice, ber_pred_mean-k*ber_pred_std, ber_pred_mean+k*ber_pred_std, color='k', alpha=0.2)\n", - " ax.set_ylim([-2.7,2.7])\n", - "# ax.legend()\n", - " if ber_net_train_state:\n", - " ber_net.train()\n", - " else:\n", - " ber_net.eval()" - ] - }, - { - "cell_type": "markdown", - "id": "b08b228a", - "metadata": {}, - "source": [ - "The plot in Figure 4 is for `dim = 3`" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "neither-dryer", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "dim=0\n", - "RMSE: 0.23739706\n", - "RMSE: 0.28432894\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "dim=1\n", - "RMSE: 0.26377413\n", - "RMSE: 0.3419102\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "dim=2\n", - "RMSE: 0.20732372\n", - "RMSE: 0.28300324\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "dim=3\n", - "RMSE: 0.4968499\n", - "RMSE: 0.53823453\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "dim=4\n", - "RMSE: 0.251314\n", - "RMSE: 0.31473282\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Cycle through plot dimensions\n", - "for plot_dim in range(0,dim):\n", - " f = plt.figure()\n", - " ax = plt.gca()\n", - " print('dim=%i' % (plot_dim,)) \n", - " plot_ber_uncertainty(ber_net, plot_dim, ax)\n", - " plot_eiv_uncertainty(net, plot_dim, ax)\n", - " plt.xlabel(r'$\\zeta$')\n", - " plt.savefig(os.path.join('saved_images','multinomial_noisy_prediction_std_x_%.3f_dim_%i.pdf' % (std_x, plot_dim)))\n", - " plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "velvet-patrick", - "metadata": {}, - "source": [ - "## Coverage\n", - "Produces part of Table 1. Running this section takes around 1h 45 min" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "id": "treated-respondent", - "metadata": {}, - "outputs": [], - "source": [ - "def inside_uncertainties(predictions, truth, k=1.96):\n", - " mean = np.mean(predictions, axis=1).flatten()\n", - " std = np.std(predictions, axis=1).flatten()\n", - " inside = np.logical_and(truth.flatten() > mean-k*std, truth < mean+k*std).flatten()\n", - " return inside\n", - "\n", - "# Use quantiles instead of uncertainties (not used in preprint - for concistency reasons)\n", - "def inside_intervals(predictions, truth):\n", - " up_quantile = np.quantile(predictions, 0.975, axis=1).flatten()\n", - " low_quantile = np.quantile(predictions, 0.025, axis=1).flatten()\n", - " inside = np.logical_and(truth > low_quantile, truth < up_quantile).flatten()\n", - " return inside\n", - "\n", - "def inside_explicit_uncertainties(mean, std, truth, k=1.96):\n", - " mean = mean.flatten()\n", - " std = std.flatten()\n", - " truth = truth.flatten()\n", - " inside = np.logical_and(truth > mean-k*std, truth < mean+k*std).flatten()\n", - " return inside\n", - "\n", - "def compute_mse(predictions, noisy_truth):\n", - " pred = np.mean(predictions, axis=1).flatten()\n", - " y = noisy_truth.flatten()\n", - " assert pred.shape == y.shape\n", - " mse = np.mean((pred-y)**2)\n", - " return mse" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "welcome-bread", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "fda84e4057884af88de357739b5cd22a", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/20 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "9a7d2a4b78ce45bcb31d6927c1c8c4c0", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "72e5879f097a4c17a935ff9c4675d64a", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "02478cdaac93417c8cea0287a7114da5", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "b58bbb6add9c4fa2986ef46621e6fdd7", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "27d051e2323d4eed9c21f3a6e736abf3", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "0d0bb91d7f9c47f3af40a464518bd9fb", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "2bed0e23ccf349c3863058b1be245383", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "0710847cbdf240538e1a48c33d9f2d8d", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "1b0f022cae4744d8a91e1364804c4152", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "39af91c0817b40e68038c31e61b9249a", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "3b659979aea1430b946fa72d2b2ac3e6", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "5fef9a203c2b43538fe97ca167efe6d9", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "6fc10b304e4e4c72b4efc76484807b1d", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "95cb0d46eb7c4846b6408590060aa200", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "a1d0895ed2ac43a380f9e2ccc2774f10", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "f0f3f5fc1af34ac3a6b2634209c814f5", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "892273814976499abac66d55ff1cef62", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "3c120ae1fbd04f858a91f944b353680e", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "5278954aba4342c7899bfd042397fbc8", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "c45c520ab0d64175a266cb53fe94421c", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Collect coverage and RMSE given a seed\n", - "def coverage_computation(net, ber_net, seed):\n", - " set_seeds(seed)\n", - " coverage_x = torch.tensor(np.random.uniform(low=-1.0,high=1.0, size=(1000,5)), dtype=torch.float32)\n", - " coverage_y = func(coverage_x)\n", - " net_train_state = net.training\n", - " net_noise_state = net.noise_is_on\n", - " ber_net_state = ber_net.training\n", - " number_of_repeated_draws = 100\n", - " net.train()\n", - " net.noise_on()\n", - " ber_net.train()\n", - " inside_map = inside_uncertainties\n", - " net_inside_list, ber_net_inside_list = [], []\n", - " mse_list, ber_mse_list = [], []\n", - " for _ in tqdm(range(number_of_repeated_draws)):\n", - " noisy_coverage_x = coverage_x + std_x * torch.randn_like(coverage_x)\n", - " noisy_coverage_y = coverage_y + std_y * torch.randn_like(coverage_y)\n", - " pred, _ = [t.cpu().detach().numpy()\n", - " for t in net.predict(noisy_coverage_x.to(device), number_of_draws=100,\n", - " take_average_of_prediction=False)]\n", - " ber_pred, _ = [t.cpu().detach().numpy()\n", - " for t in ber_net.predict(noisy_coverage_x.to(device), number_of_draws=100,\n", - " take_average_of_prediction=False)]\n", - " net_inside_list.append(inside_map(pred, coverage_y.numpy()))\n", - " ber_net_inside_list.append(inside_map(ber_pred, coverage_y.numpy()))\n", - " mse_list.append(compute_mse(pred, noisy_coverage_y.numpy()))\n", - " ber_mse_list.append(compute_mse(ber_pred, noisy_coverage_y.numpy()))\n", - " net_inside = np.mean(np.stack(net_inside_list), axis=0)\n", - " ber_net_inside = np.mean(np.stack(ber_net_inside_list), axis=0)\n", - " mse = np.mean(np.array(mse_list))\n", - " ber_mse = np.mean(np.array(ber_mse_list))\n", - " if net_train_state:\n", - " net.train()\n", - " else:\n", - " net.eval()\n", - " if net_noise_state:\n", - " net.noise_on()\n", - " else:\n", - " net.noise_off()\n", - " if ber_net_state:\n", - " ber_net.train()\n", - " else:\n", - " ber_net.eval()\n", - " return coverage_x.numpy(), coverage_y.numpy(), net_inside, ber_net_inside, np.sqrt(mse), np.sqrt(ber_mse)\n", - "\n", - "# Loop over seeds\n", - "net_inside_collection, ber_net_inside_collection, rmse_collection, ber_rmse_collection = [], [], [], []\n", - "for seed in tqdm(range(0,20)):\n", - " seed_net = Networks.FNNEIV(p=0.5, init_std_y=init_std_y,\n", - " precision_prior_zeta=precision_prior_zeta, deming=deming,\n", - " h=[dim, 500, 300, 100, 1]).to(device)\n", - " seed_ber_net = Networks.FNNBer(p=0.5, init_std_y=init_std_y, h=[dim,500,300,100,1]).to(device)\n", - " ber_saved_file = os.path.join('saved_networks', \n", - " 'noneiv_multinomial_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_seed_%i.pkl'\n", - " % (std_x, std_y, init_std_y, seed))\n", - " ber_train_loss, ber_test_loss, ber_stored_std_x, ber_stored_std_y, ber_state_dict\\\n", - " = train_and_store.open_stored_training(ber_saved_file, net=seed_ber_net, device=device)\n", - " saved_file = os.path.join('saved_networks', 'eiv_multinomial_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_deming_scale_%.3f_seed_%i.pkl'% (std_x, std_y, init_std_y, deming, seed))\n", - " train_loss, test_loss, stored_std_x, stored_std_y, state_dict\\\n", - " = train_and_store.open_stored_training(saved_file, net=seed_net, device=device)\n", - " coverage_x, coverage_y, net_inside, ber_net_inside, rmse, ber_rmse = coverage_computation(seed=seed, net=seed_net, ber_net=seed_ber_net)\n", - " net_inside_collection.append(net_inside)\n", - " ber_net_inside_collection.append(ber_net_inside)\n", - " rmse_collection.append(rmse)\n", - " ber_rmse_collection.append(ber_rmse)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "initial-schedule", - "metadata": {}, - "outputs": [], - "source": [ - "# Reshape and process results\n", - "net_inside_collection = np.stack(net_inside_collection)\n", - "rmse_collection = np.stack(rmse_collection)\n", - "ber_net_inside_collection= np.stack(ber_net_inside_collection)\n", - "number_of_draws = net_inside_collection.shape[0]\n", - "net_inside_mean = np.mean(net_inside_collection, axis=0)\n", - "net_inside_std = np.std(net_inside_collection, axis=0)/np.sqrt(number_of_draws)\n", - "ber_net_inside_mean = np.mean(ber_net_inside_collection, axis=0)\n", - "ber_net_inside_std = np.std(ber_net_inside_collection, axis=0)/np.sqrt(number_of_draws)" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "3f7de695", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "RMSE\n", - "===========\n", - "EiV: Average 0.759893, Error 0.004582\n", - "non-EiV: Average 0.712723, Error 0.004070\n", - "\n", - "\n", - "Coverage\n", - "===========\n", - "EiV: Average 0.916003, Error 0.000054\n", - "non-EiV: Average 0.639944, Error 0.000110\n" - ] - } - ], - "source": [ - "# Results for Table 1 in preprint\n", - "print('RMSE\\n===========')\n", - "print('EiV: Average %.6f, Error %.6f' %( np.mean(rmse_collection),\n", - " np.std(rmse_collection)/np.sqrt(len(rmse_collection))))\n", - "print('non-EiV: Average %.6f, Error %.6f' % (np.mean(ber_rmse_collection), \n", - " np.std(ber_rmse_collection)/np.sqrt(len(ber_rmse_collection))))\n", - "print('\\n')\n", - "\n", - "print('Coverage\\n===========')\n", - "print('EiV: Average %.6f, Error %.6f' %(net_inside_collection.mean(), \n", - " net_inside_collection.mean(axis=1).std()/np.sqrt(net_inside_collection.size)))\n", - "print('non-EiV: Average %.6f, Error %.6f' % (ber_net_inside_collection.mean(),\n", - " ber_net_inside_collection.mean(axis=1).std()\n", - " /np.sqrt(net_inside_collection.size)))" - ] - }, - { - "cell_type": "markdown", - "id": "fe4575c0", - "metadata": {}, - "source": [ - "# Results for Variational Dropout" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "5c518121", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "FNN_VD_EIV(\n", - " (main): Sequential(\n", - " (0): EIVInput()\n", - " (1): Linear(in_features=5, out_features=500, bias=True)\n", - " (2): LeakyReLU(negative_slope=0.01)\n", - " (3): EIVVariationalDropout()\n", - " (4): Linear(in_features=500, out_features=300, bias=True)\n", - " (5): LeakyReLU(negative_slope=0.01)\n", - " (6): EIVVariationalDropout()\n", - " (7): Linear(in_features=300, out_features=100, bias=True)\n", - " (8): LeakyReLU(negative_slope=0.01)\n", - " (9): EIVVariationalDropout()\n", - " (10): Linear(in_features=100, out_features=1, bias=True)\n", - " )\n", - ")" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Load EiV VD model\n", - "vd_net = Networks.FNN_VD_EIV(initial_alpha=0.5, deming=deming,\n", - " h=[dim, 500, 300, 100, 1])\n", - "saved_file = os.path.join('saved_networks', \n", - " 'eiv_vd_multinomial_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_deming_scale_%.3f_seed_%i.pkl'\n", - " % (std_x, std_y, init_std_y, deming, single_seed))\n", - "train_loss, test_loss, stored_std_x, stored_std_y, state_dict\\\n", - " = train_and_store.open_stored_training(saved_file, net=vd_net, device=device)\n", - "vd_net.to(device)" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "b278a0b8", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "tensor(2.0671e-06, dtype=torch.float64, grad_fn=<SoftplusBackward>)" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "vd_net.main[9].alpha()" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "f8cce563", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "FNN_VD_Ber(\n", - " (main): Sequential(\n", - " (0): Linear(in_features=5, out_features=500, bias=True)\n", - " (1): LeakyReLU(negative_slope=0.01)\n", - " (2): EIVVariationalDropout()\n", - " (3): Linear(in_features=500, out_features=300, bias=True)\n", - " (4): LeakyReLU(negative_slope=0.01)\n", - " (5): EIVVariationalDropout()\n", - " (6): Linear(in_features=300, out_features=100, bias=True)\n", - " (7): LeakyReLU(negative_slope=0.01)\n", - " (8): EIVVariationalDropout()\n", - " (9): Linear(in_features=100, out_features=1, bias=True)\n", - " )\n", - ")" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Load non-EiV VD model\n", - "vd_ber_net = Networks.FNN_VD_Ber(initial_alpha=0.5, init_std_y=init_std_y, h=[dim, 500, 300, 100, 1])\n", - "vd_ber_saved_file = os.path.join('saved_networks', \n", - " 'noneiv_vd_multinomial_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_seed_%i.pkl'\n", - " % (std_x, std_y, init_std_y, single_seed))\n", - "vd_ber_train_loss, ber_test_loss, ber_stored_std_x, ber_stored_std_y, ber_state_dict\\\n", - " = train_and_store.open_stored_training(vd_ber_saved_file, net=vd_ber_net, device=device)\n", - "vd_ber_net.to(device)" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "d35a165e", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "dim=0\n", - "RMSE: 0.23865137\n", - "RMSE: 0.24064223\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "dim=1\n", - "RMSE: 0.23949231\n", - "RMSE: 0.27066055\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "dim=2\n", - "RMSE: 0.2618301\n", - "RMSE: 0.25091672\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "dim=3\n", - "RMSE: 0.5101809\n", - "RMSE: 0.57865644\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "dim=4\n", - "RMSE: 0.25385875\n", - "RMSE: 0.31200337\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Cycle through plot dimensions\n", - "for plot_dim in range(0,dim):\n", - " f = plt.figure()\n", - " ax = plt.gca()\n", - " print('dim=%i' % (plot_dim,)) \n", - " plot_ber_uncertainty(vd_ber_net, plot_dim, ax)\n", - " plot_eiv_uncertainty(vd_net, plot_dim, ax)\n", - " plt.xlabel(r'$\\zeta$')\n", - " plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "29c8d081", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "fbbfe538000548fb85ce5329c8082f75", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/20 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "053c87c4aed4450782e89d0cfd03e669", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "956bbf93f60a4bac92edfaa64997bbc7", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "b3590cb16fc947a0bc5f78bec91acb50", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "0fd00dbd8a984dacabd82d83890a8487", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "591ceb3238474c26a8894487277bb258", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "e5bdca1c61f34a659271d96ce14923c4", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "797e2affddab4f408dd56956aa72825d", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "7dab164736004e3993fcd266f8cd3ace", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "854f4cac57fe42dfbc1a4c1ab5e6a2fc", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "5cd17b6430764034ad23883419038fb6", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "a2245f3af8cc4ff78c3dadffe9576e4e", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "033489bfde394fb3af08681bba888e48", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "c1163361705043cc85054ba595f687b7", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "1e93ad862ced43d98bd1bdad7b82b363", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "45b61e95281f4030bf4ce9edb4c7817f", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "370a1fc8c32b4842b19aa28daf13c517", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "4a50dc77497a48b09fd5646d4a22df86", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "8c6b1e5ddfa948f8bf8c4575354260bb", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "f629e484c34e4107bfcd4d36a26e03e3", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "62781284878a4b9388195268e4cb0183", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "net_inside_collection, ber_net_inside_collection, rmse_collection, ber_rmse_collection = [], [], [], []\n", - "\n", - "for seed in tqdm(range(0,20)):\n", - " seed_net = Networks.FNN_VD_EIV(initial_alpha=0.5, init_std_y=init_std_y,\n", - " precision_prior_zeta=precision_prior_zeta, deming=deming,\n", - " h=[dim, 500, 300, 100, 1]).to(device)\n", - " seed_ber_net = Networks.FNN_VD_Ber(initial_alpha=0.5, init_std_y=init_std_y, h=[dim,500,300,100,1]).to(device)\n", - " ber_saved_file = os.path.join('saved_networks', \n", - " 'noneiv_vd_multinomial_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_seed_%i.pkl'\n", - " % (std_x, std_y, init_std_y, seed))\n", - " ber_train_loss, ber_test_loss, ber_stored_std_x, ber_stored_std_y, ber_state_dict\\\n", - " = train_and_store.open_stored_training(ber_saved_file, net=seed_ber_net, device=device)\n", - " saved_file = os.path.join('saved_networks', 'eiv_vd_multinomial_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_deming_scale_%.3f_seed_%i.pkl'% (std_x, std_y, init_std_y, deming, seed))\n", - " train_loss, test_loss, stored_std_x, stored_std_y, state_dict\\\n", - " = train_and_store.open_stored_training(saved_file, net=seed_net, device=device)\n", - " coverage_x, coverage_y, net_inside, ber_net_inside, rmse, ber_rmse = coverage_computation(seed=seed, net=seed_net, ber_net=seed_ber_net)\n", - " net_inside_collection.append(net_inside)\n", - " ber_net_inside_collection.append(ber_net_inside)\n", - " rmse_collection.append(rmse)\n", - " ber_rmse_collection.append(ber_rmse)" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "ab62a608", - "metadata": {}, - "outputs": [], - "source": [ - "# Reshape and process results\n", - "net_inside_collection = np.stack(net_inside_collection)\n", - "rmse_collection = np.stack(rmse_collection)\n", - "ber_net_inside_collection= np.stack(ber_net_inside_collection)\n", - "number_of_draws = net_inside_collection.shape[0]\n", - "net_inside_mean = np.mean(net_inside_collection, axis=0)\n", - "net_inside_std = np.std(net_inside_collection, axis=0)/np.sqrt(number_of_draws)\n", - "ber_net_inside_mean = np.mean(ber_net_inside_collection, axis=0)\n", - "ber_net_inside_std = np.std(ber_net_inside_collection, axis=0)/np.sqrt(number_of_draws)" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "id": "e5621322", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "RMSE\n", - "===========\n", - "EiV: Average 0.701436, Error 0.003883\n", - "non-EiV: Average 0.772000, Error 0.004710\n", - "\n", - "\n", - "Coverage\n", - "===========\n", - "EiV: Average 0.927530, Error 0.000031\n", - "non-EiV: Average 0.001110, Error 0.000002\n" - ] - } - ], - "source": [ - "# Results for Table 1 in preprint\n", - "print('RMSE\\n===========')\n", - "print('EiV: Average %.6f, Error %.6f' %( np.mean(rmse_collection),\n", - " np.std(rmse_collection)/np.sqrt(len(rmse_collection))))\n", - "print('non-EiV: Average %.6f, Error %.6f' % (np.mean(ber_rmse_collection), \n", - " np.std(ber_rmse_collection)/np.sqrt(len(ber_rmse_collection))))\n", - "print('\\n')\n", - "\n", - "print('Coverage\\n===========')\n", - "print('EiV: Average %.6f, Error %.6f' %(net_inside_collection.mean(), \n", - " net_inside_collection.mean(axis=1).std()/np.sqrt(net_inside_collection.size)))\n", - "print('non-EiV: Average %.6f, Error %.6f' % (ber_net_inside_collection.mean(),\n", - " ber_net_inside_collection.mean(axis=1).std()\n", - " /np.sqrt(net_inside_collection.size)))" - ] - }, - { - "cell_type": "markdown", - "id": "5dfe4eb6", - "metadata": {}, - "source": [ - "## Results for Ensemble" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "id": "dceb666f", - "metadata": {}, - "outputs": [], - "source": [ - "ensemble_files = create_strings('noneiv_multinomial_std_x_%.3f'\\\n", - "'_std_y_%.3f_init_std_y_%.3f_ensemble_seed_%i.pkl', ensemble_seed_list, (std_x, std_y, init_std_y,), ())\n", - "ensemble_files = [os.path.join('saved_networks',s) for s in ensemble_files]\n", - "ensemble_size = 5\n", - "assert len(ensemble_files) % ensemble_size == 0\n", - "number_of_ensembles = int(len(ensemble_files) / ensemble_size)" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "id": "94df1d1a", - "metadata": {}, - "outputs": [], - "source": [ - "# Plot non-EiV along plot_dim \n", - "def plot_ens_uncertainty(ens_net, plot_dim, ax):\n", - " offset = cut_offset\n", - " steps = 50\n", - " x_slice = torch.linspace(-1, 1, steps=steps)\n", - " plot_x = torch.zeros((steps,dim)) + offset\n", - " plot_x[:,plot_dim] = x_slice\n", - " plot_y = func(plot_x)\n", - " val_x = plot_x + std_x * torch.randn_like(plot_x)\n", - " ens_pred_mean, ens_pred_std = ens_net.mean_and_std(val_x)\n", - " ens_pred_mean = ens_pred_mean.detach().cpu().numpy().flatten()\n", - " ens_pred_std = ens_pred_std.detach().cpu().numpy().flatten()\n", - " print('RMSE: ', np.sqrt(np.mean( ((plot_y-ens_pred_mean)**2).detach().cpu().numpy() )))\n", - " ax.plot(x_slice, plot_y, color='b', label='ground truth', linewidth=2)\n", - " ax.plot(x_slice, ens_pred_mean, color='k', label='No EiV', linewidth=2)\n", - " ax.fill_between(x_slice, ens_pred_mean-k*ens_pred_std, ens_pred_mean+k*ens_pred_std, color='k', alpha=0.2)\n", - " ax.set_ylim([-2.7,2.7])" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "id": "e944f274", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "dim=0\n", - "RMSE: 0.2825916\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "dim=1\n", - "RMSE: 0.25714526\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "dim=2\n", - "RMSE: 0.2792112\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAEUCAYAAAAlXv26AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAzBklEQVR4nO3deXxU9b3/8dc3k2SykX0jGwkJa1gSCBgEZBHhqqWu1BZrb7Wt1utef6LeUmrVauva1qsVipZab9Wr0Gv1iqgsQpBFtigBDIQlkASTELLvyff3xzcZspIEMkk4fJ6Px3nM5MycOd9zMvOeM9/z/X6P0lojhBDCulz6uwBCCCGcS4JeCCEsToJeCCEsToJeCCEsToJeCCEszrW/C9BWcHCwjo2N7e9iCCHEBWXnzp2FWuuQjh4bcEEfGxvLjh07+rsYQghxQVFKHevsMam6EUIIi5OgF0IIi5OgF0IIi5OgF0IIi5OgF0IIi5OgF0IIi5OgF0IIi5OgF0IIi5OgF0IIi5OgF0IIi5OgF0IIi5OgF0IIi5OgF0IIi5OgF0IIi5OgF0IIi5OgF0IIi5OgF0IIi5OgF0IIi5OgF0IIi5OgF0IIi5OgF0IIi3NK0CulFiil/qWUylFKlSuldiqlfuCMdQkhhDg7Vye97i+AI8ADQCFwFfAPpVSw1volJ61TCCFEB5wV9PO11oUt/l6nlIrAfAFI0AshRB9yStVNm5BvthsIdcb6hBBCdK4vT8ZeCuzrw/UJIYTAeVU3rSilLgeuAW7ri/UJIYQ4w+lH9EqpWOAfwPta6xWdPOd2pdQOpdSOgoICZxdJCCEuKk4NeqVUILAayAZ+2NnztNbLtNYpWuuUkJAQZxZJCCEuOk4LeqWUF/Ah4A5crbWucNa6hBBCdM4pdfRKKVfgXWAYMFVrne+M9QghhOias07GvoLpJHUfEKiUSm3x2G6tdY2T1iuEEKINZwX93KbbP3bwWBxw1EnrFUII0YZTgl5rHeuM1xVCCNFzMnqlEEJYnAS9EEJYnAS9EEJYnAS9EEJYnAS9EEJYnAS9EEJYnAS9EEJYnAS9EEJYnAS9EEJYnAS9EEJYnAS9EEJYnAS9EEJYnAS9EEJYnAS9EEJYnAS9EEJYnAS9EEJYnAS9EEJYnAS9EEJYnAS9EEJYnAS9EEJYnAS9EEJYnAS9EEJYnAS9EEJYnAS9EEJYnAS9EEJYnAS9EEJYnAS9EEJYnAS9EEJYnNOCXimVoJRaqpRKV0o1KKU2OGtdQgghOufqxNdOBK4CtgLuTlyPEEKIs3Bm1c0HWutorfUCIMOJ6xFCCHEWTgt6rXWjs15bCCFE98nJWCGEsLgBEfRKqduVUjuUUjsKCgr6uzhCCGEpAyLotdbLtNYpWuuUkJCQ/i6OEEJYijNb3QghRKe07vwxpfquHBcDCXohRK9oaICTJ+HECTh+3NyeOAF5eVBcbKaSkjNTWVnnr+XlBYGBEBR05jYoCKKiIDHRTPHxYLP11dZd2CTohRA9cvo07N8PBw60vj161IR9b6isNNOJE50/x26HkSNN6Ccnw1VXwahR8mugI0qf7ffT+bywUl6YDlMADwK+wK+b/v5Ia13Z0XIpKSl6x44dTinTxUBrqK42H5KKCnPE4+VlJnd3+RCInsnLg507zbRjh7nNy+v8+WFh5qg7Kgqio81tRAQEBICfX+tp0KCOj8i1hvJyKCqCU6fO3J46BYcPQ0aGmY4fb79sfDx897swfz5MmwZubr23LwY6pdROrXVKh485MehjgSOdPByntT7a0QMS9J1rbIScHMjMNNM335jbrCzzU7iiwgR8Yyc9GFqGvr8/REa2n2JiYPhw8yEUF5faWti1CzZtgs2b4csvITe3/fO8vMyR9KhRrW8TEsxRdl8pLYV9+0zob9oEH35ovgya+fvD1VfDfffBpEl9V67+0i9Bf64k6Fs7cQL+7//ggw9gwwYT5l2x282H0dvbhH7z0X1dXffXGx1tPsDN0+jRkJQkXwBWUllpAn3TJjNt2wZVVa2f4+sLEyZASgpMnGim+HhwGRDt9VpraICtW+Ff/zLTgQNnHrvqKvj1r2Hy5P4rn7NJ0F9AtDY/jz/4wEy7d7d+PDTUHHGPGGFuhw83R1JBQSbYvbzAtZMzL3V15oNcWWmOfHJyzBdJTs6Z6ehR8yuhtrb98kqZI7dJk8wHf9IkE/4eHr29F4Qz1Neb99Znn5npiy/a/59HjoTp082UmjpwQ707Dh6E5cvh5ZfPHCBdeaUJ/Esu6d+yOYME/QVAa/PTc/Fi+OqrM/O9vGDuXFPneNVVEB7u/LLU18ORI+Zn8f79Ztq7F77+uv2vAldXcyLssstMOEybZr50hHNprVHdOOFy5Ah8/DF88gmsX2+q+JopZY7WZ8ww/7upU8GK3VgKC+H55+G//svU/QPMm2fmJSb2b9l6kwT9ALd+Pfznf5qfnWDC/LrrTLjPmjVwjpirq03Yf/mlmXbsMF8Gbc8JJCaa4JgxA2bPNr9CROeaP4NdBffJkyd54403+J//+R+Kiorw9vZm0KBB+Pj44Ofnh5+fH/7+oSg1npyccXz5ZQKHDrU+Gxkf30By8j4CA7dTVbWdY8cO4O3tTXh4OJGRkURHRxMZGUlUVBS+vr64ubnh7u7e6tbW4gxq2/xw7eznpJPU1taybNkysrKyeOqpp/D09Oz0uYWF8MIL8NJLJvA9PeHVV+FHP+rDAjuRBP0AtX07/PKX5mc0mKOpxYvh9tsHTrh3pazMfEFt3GjqebduhZqa1s8ZO9YE/uWXm/D39e2fsp6LvLw8PDw88PPzw6WX6jCKiopYu3Yt69evJy0tjaysLKKjo0lKSuLSSy9l2rRpjB07Fjc3N8rLy3nnnXd44403SEtLo7GzM+0dsqPUMEJC4omJGUR5+dccPfoN1dXV51V+FxcXXF1d2012ux0/Pz+Cg4MJDQ0lLCyMsLAwoqKiGDVqFKNHj8bHx+e81t1Ma83KlStZtGgRR46YNh+LFy/miSee6HLZU6fgwQfhb38zf//sZ/CnP104n7nOSNAPMBUV5s311lvmbz8/eOgh0zqglz4H/aamxhzpb9xofqmkpbU+wWezmbr9OXPMlJrady01tNZUVVVht9tbHZW2lZGRwX//93/z3nvvcfDgQVxcXAgLC2PIkCEkJCQ4Qsvf35/a2lpqa2upqalpddtyqqmpoaamhry8PLZs2cLBgwe7DOxBgwYxdOhQDhw4QE3TN6fNZiM1NZXU1JmUl4/iq69c2b/fheLiGqCkacrByysDOEBl5bcdvnZ4eDjDhw9n6NChREREUFlZSXFxMUVFRY6psLCQ2tpaGhoaHFN9fT0N59lQPiIigoSEBIYPH87IkSOZPXs2Q4cOxcvLC7dutIVsbGzk888/Z9GiRTTnRHBwMIWFhfj6+pKRkUFUVFSXr6M1vP463HWXec8mJcF775lzEhcqCfoBJDfXVMns2mV+Ot53nwn5wMD+Lplz1NTAli2wbh2sXWt+xdTXA2jgIO7uWwkO3kx9/RbKy4/i5+dDYGAgwcHBhISEOI4KXVxcHIFTV1fnuO/j48PgwYMJCwsjPDycwYMHExISQmVlJXv27GH37t3s2bOHffv2cfDgQaqqqggPDyc2NpZhw4YxevRoxowZQ1BQEO+//z4rV64kMzPTUX4PDw9qa2t7eCR9djabzbHe0aNHExcXR3Z2Nt988w2ZmZl88803FBUVOZ4/btw4Ro+eh1LXs3//cDIy/KmrO/PrIiCgkcsuq+Kyyyq45JIS7PYSysrKOH36NCdOnODEiROUlpYSExNDQkICvr6+eHp64u/vT0BAAK6urlRVVVFdXU1VVZXjfkNDA0qpVtUzWmsaGxsd/4f6+nrHVF1dTVlZGSUlJZSWljqmwsJCjh07Rk5ODvXmn++glGLUqFFMmzaNWbNmkZiYSGBgIB4eHo7XrKqqoqysjEOHDrFixQo+/fRTtNb4+vpy8803c+ONN7Jo0SJ27tzJbbfdxtKlS7tdhbRnD9x4o2mi7OcHK1bAtdeez3+3/0jQDxDp6fCd75iWLkOHmmaTI0f2d6l6RmtNZmYmGzduJC0tjd27d1NbW4u7uzt2u90xeXh4OD5sLeue6+tdOHy4iKysdGpri51SRpvNdl5Hnt7e3kyfPp0pU6aQlJQEmCqc48ePk5OTQ25uriO03NzccHV1xc3NzXHfZrO1qtJo/tvHx4cRI0YwYsQIvL29CQ4OJiwsDF9fX1xcXKioqOD06dMUFhayffsJNm7M5+TJSRw4MIHi4jMXaVPK/Cq68kozpaR03PGooaGB6upqxy8Km82Gp6cnnp6e3QrCll9uHYV9c+C3vK+UwsXFxXHbfL+qqorc3Fx27txJZmYmx44dIysri127dlHbounP8OHDmTJlCna7nby8PMd08uRJx//U1dWVBQsWcM0115CYmMiIESPYvHkzs2bNwsvLi08//ZRLL7202//v4mK49Vb43/81f//qV/Cb31x4nQsl6AeA1avhe98zJ4EuvdS8qfqrhUNjYyOnT58mKyuLgwcPcvDgQQ4fPsyRI0coKirCy8sLX1/fVpObmxtff/01u3fv5lTLXinnISgoiGHDxuDhkUxZ2aUcPTqZU6dqgHzgW+BbPDxyCArKJTCwluDgevz9G3B1PRMgzdUOzVNRURHl5eW4ubkxdOhQ4uLiGDJkCNHR0cTFxeHj40NOTg7Hjx/n+PHj5Obmkp2dTXFxMSkpKY5w9/f3JyYmhpCQEDw8PBxhWV1dTWlpKWVlZVRWVmKz2XBxcXGEefN9MIHY/Plqvh8QEEBAQAA+Pj6tqo+ys+Hzz01fiQ0bTA/QlqKiTEuRuXPNuY4LuWVTZWUlJSUl5OXlcfToUXbs2MH27dv54osvqGrbkL+F0NBQkpKSuOWWWwgODmb8+PEMHjzY8fiMGTPYuHEjN9xwA3/+85/pyUi4WsOLL8KiRaY9/lNPwaOPntdm9jkJ+n72yitwzz2mdcoPfmDqBvvyxI/WmlOnTrF27Vo++ugj0tLSOHr06DlXR/j6+pKYmMioUaNISEjA09OT2tpa6urqqKurc9RNN79+y7ADc8Q8fPhwQkND8fHxISQkhKCgILy8vDl2zMa6dZoNG1zYtMlGfn7rQ1Vv7wbGj68iKamKCROqGD26Anf3SseRa/O6XVxccHd3x8fHVAX5+/s7jmbr6+upqqpyfEmUlpZSXl6Oh4eHI9x766RhR6qrTZXB9u2mk9KWLaYZZEt+fqbl0pw5JuBHjLjwjjC7o7q6mtzcXLKysqisrGT//v1s374dV1dXRyugqKgowsLCAPMl4evrS1JSEt7e3q1e64svvmDq1Km4u7vzt7/9jeuuuw57D08AvfOO+YxqbVrk3HFHr22q00nQ9xOtzdn9F180f/f1T8IDBw6wYsUK1q9fT3p6uuOkHpjqlPDwcKKiooiIiCAsLIzQ0FACAgIcIVhRUUFFRQWVlZXU1dUxZMgQhg8fTmRkJG5ubgQFBRESEoKXl1fT9uoOpzP748zfXl5eeHt74+7e+XXjtTa9GzdsMD04N282Hbraio01bfmTk2H8eM3YsfWEhzdgt7t3u6VMY2MjSqlutU3viaIi0wR13z5Tdbd9u7lt2x/Bz8/0RZg500zjx19cIzPW19eTn5/PwYMHqaysxM3NrVV9vru7OwEBAQQGBhIVFdXpyfQrrriCzz77jPnz5/PYY4+RnJzc7n9aXV1NUVERtbW1hIaGOt6/zV59Fe6803xO337b/BK/EEjQ95MXX4Rf/MIMrLR8ed+213355Ze5//77W31YEhISSE1NJSkpiYSEBOx2O0opvLy8CAwMJCAgwPGmbz7BVltbS2VlJTU1Nbi7uxMUFISPjw+enp69HordkZtrenQ2T+np5gi5LT8/04IiIcFMzfdjY02V2VmaW/dIff2ZoXmbexkfOmTGX9m3D77toOGLUqavweTJpofm5MmmCerFFOydaWxspKioiFOnTuHn5+f4FXa2A4KWtm7dytSpU1FKsXTpUubNm0dUVBS1tbUUFRWRnZ3NypUree+995g+fToLFiwgNDSU2NhYAgMDHV8gv/2taers5mZ6qM+b58yt7h0S9P1g2zbTS7S+HlauhOuv75v1NjQ0cPfdd/Pqq68Cpt5y+vTpJCYm4ufnh81mIzg4mMGDB+Pj44OXl9dZmxoOdPX1ZnC3PXvMcBHNty0arXTI2xuCg03oBwebOm93d/PBdnU9c+vqapqHlpe3n7791ozkeLYaMC8vM07Q6NFnwn3iRBkzyFm01lx11VV8/PHHXHnlldx7772EhIRQUFBAQUEBr776Kl988YXj+VOmTOGRRx5xnEiPiYkhMjISb28fx69xLy/T12XKlH7csG6QoO9jRUWma/mxY3D//WeqbpytpKSE66+/nnXr1mGz2XjggQeYPXs2Hh4eREREEBISgq+vb5/3XuxrWptekIcOmWZzhw6dmbKzzWM9GeDtbJQyQ/NGRp4Znjc29ky4x8RcuGPFXKi2bt3K9OnTaWhoYMWKFcTExPDZZ5/xxz/+kfLycry9vbnppptYuXIlJSUlhIWF8fvf/56RI0dSWlpKfX09ycnJhIaGc9ttpmNVQIDpGzJmTH9vXeck6PuQ1qYd7r/+ZZrApaWZI8XuSktL47XXXmPYsGHMmDGDyMhIvLy8sNvtrbqgt602yczM5Dvf+Q4HDx5k0KBBPPbYY4wdO5aJEycSEBDQL9UsA5XWpkdvQYGZCgvNl3NdnfmF0PbWy8t0ZGs5eXuboR0GD764xjy/ENTV1XHDDTfwwQcfMLlpuMrt27cDMH36dB5++GFcXFw4efIkzz//PBkZGbi6uvKLX/yCBQsWUF9fz6lTpxg1ahTR0XEsWKB4/30zrv7OnX0z3tS5kKDvQ8318v7+plNUXFzPlk9OTmbPnj2A6Wo+YsQIJkyYwMSJExk+fLijmqU59N3c3MjMzOT+++/n9OnTxMTE8PjjjxMbG0tKSkq7lglCXAzS0tKYM2eOowGCn58fDz30EFdccQWFhYXExcXh4eFBeno6b7/9Nu+88w4Ac+fOZfHixdjtdgoLC4mNjSU2diTz5rmQlmaatq5ZMzDPp0jQ95GW9fL//GfPe9hVVVUxaNAgtNaMHz+er776qlXHH7vdjpubm6NzSvPU/D+cNGkSixYtIioqiuTk5B43LRPCKsrLy7n77rv529/+xhVXXMFDDz2Ev78/+fn5DBs2jGHDhgGmZdrRo0dJT0/niSeeoLKykrCwMG699Vbmz59PSUkJoaGhBAePY9IkNwoK4LHHzFDHA40EfR84fdo07zufevlt27aRmppKTEwMy5cvp7S0lMzMTHbv3s2WLVs40ckFNG02GzfccAM333wzMTExjBkzxvL18EJ0Zfv27eTn5zN48GAaGhooKChgxIgRxMfHO6oyGxsbSU9Pp6CggLKyMhYvXsyBpiuWhIeH85Of/ISpU6fi6+tLcXEK8+ebg6dPPzVH9wOJBL2TaW2GFX7//XOrl2/28ssvc/fddzNnzhw++ugjioqKyMrKoqSkxNG8rLlbeXOQN3c/Ly8vJz4+nuHDh/faKItCXMgKCwv58ssvCQwM5NSpU4wcOZKhQ4e2e15dXR07duxw/KJet24dy5Yt43BT9+TIyEgWLlzI3LlzWbduBk8/7UZoqGnh1aJjbr87W9BLIvSCN94wIe/vb3rWnUvIA47R+BITE3FzcyMsLIxLL72UqVOnEh4eTl1dHTU1NY5BnprHLxk0aBBJSUmMHDlSQl6IJs2DoxUUFJCYmNhhyAO4ubk5OlZVVlYyZ84c3n77bZ566iliY2PJycnh2Wef5fbbb2fq1LXMnNlIfj4sXGiGS7gQyBH9eaqpMd3Tjx0zzbDOp1PU2LFj2bt3L2+++SY333xzu8ebhxlobvMroS7E2eXk5ADmqLwr5eXlfPHFF3h7e+PRNEZJQ0MDn3zyCa+++io5OTmMGzeO5577O7fcMpZvv1X86lfw+ONO3YRuk6obJ3r5Zbj7btMZJj393M/GN/9sbGxsJDMzk4SEhN4tqBCiS0VFRezYscMxTpNSCjc3N06fPs0dd9zBqVOnmDdvHj/60QpuuSUcrc2lGufO7eeCI1U3TlNZCU8+ae4/8UTHIV9eXs7Bgwe7fK309HQaGhqIjo4m0KqD0wsxwAUGBnL55Zczffp0Jk+ezJgxY4iIiCA6OpolS5bg7u7OmjVr+PzzX7NoURVaww9/aIa+GMgk6M/DK6+YcU4mTuy4KWVDQwO7du3iwIEDZx1+FeDLL78EzHjcZ7vupRDCuWw2G97e3gQGBhIZGcnIkSOZPHkyt912Gw8++CAAy5cvx9v7RWbPbqCgwFy8pMWw+gOOBP05Ki2F3/3O3H/yyY5HpNywYQPz58/nxRdfJD8//6yvt23bNsAEvbR/F2Lg8fHx4aGHHuIHP/gBjY2N/O53T3HDDe8SHa3ZuhUeeKC/S9g5Cfpz9Ic/mIsMT5vW8ch2xcXF/OY3v6G0tJRNmzaRkZHB2c6H7Ny5EzCXjZOTrEIMTAEBATz33HNMmzaNiooKnnzyF/zyl1/i7q555RXTAm8gkkTpxL59+6juaPxbzLgozz9v7v/2t+2P5uvq6njrrbfYtGkTYIb83bJlC6WlpR2+XlVVleMi1BMnTuy1bRBC9L6IiAiWLl1KQkICeXl5vPTSbfz856YByR13mNFTO9PQ0EBeXh7Z2dm9eh3irkjQd6C+vp6cnBzKy8s7fPyZZ0zVzdy55mIRbWVmZvLKK68A5gr1YI7Yc3NzO3y9Xbt20dDQQExMDOEDdcQkIYTDqFGjWLZsGUFBQWRkZLB8+Uzi4/8f1dXlXHddY7thsmtqajh69Cjr169n+/bt7N27l/T0dOp6axjVLjgt6JVSo5VSa5VSlUqpXKXU40qpATgUUHvl5eWOK9m3dfIk/OlP5v4TT7RfNj8/n7fffpu9e/fi7+/PI488ApjOUNnZ2a0uBNKseXzsYcOGtbvajRBi4FFKMWPGDJYtW8akSZOorKwkK+t5bLahHDv2CldfXUBxcRkVFRXs27eP1157jSVLlnDPPfdw7bXXsmTJEjIyMti6dSsVFRVOL69TBkRRSgUAnwH7gGuAeOB5zBfLYmesszeVlJTg6upKUVFRu950Tz9tLkRxzTXmIhItVVdXs2vXLt5oqqj76U9/ysiRIwkKCqKgoIBDhw4xYcKEdhctbm5x03z9VSHEwOfi4sL8+fMJDw8nLS2NN954g4yMDOAetm59kTlzfsjgwbvYtm0bBQUFrZbduXMnd955Jw888ABVVVUkJyf36GLmPeWska9+DngC12utS4FPlVK+wGNKqWea5g1Yy5cvZ+fOndxzzz1orR0DIGVnm+tJKtX+aF5rzb59+1i9ejXZ2dlER0czb948/Pz8mDlzJitXriQ9PZ3U1NR2/9DdTZV60uJGiAuLm5sbkydPJjIykqSkJDZv3szSpW/y7beH2bnzTJfZ4OBgpk+fzmWXXcawYcN45pln2LhxI0888QT/9m//xk9+8hMmTpxIbGysU64d4ayqmyuBNW0C/W1M+M9w0jp7RV1dHX/4wx9YvXo1u3fvbnVC9plnTFvZm24y1/hs6dSpU2RlZfHmm28CcNddd1FXV0d8fDxXX301YI7c8/PzW71mWVkZhw8fxmazSYsbIS5Arq6uDBkyhBkzZrBw4UKWL/8jl132FDAf+BUjRmzgL3/5jIcffpiJEydit9tZsmQJjz76KHa7nY8//pj77ruPd9/9J2vXHnJKGZ2VKiOBAy1naK2zgcqmxwastLQ0x0nY/fv3U1lZCZhrhDY3nfrlL9svV1hYyAcffEBRURFjx45l6tSpDBo0iICAAK666ipsNhtfffUVFRUVrX7Gbd26lcbGRoYMGUJYWJjTt08I4Rx2u50RI0Ywe/ZsXnrpahYv/jX+/r/km29msHBhIu+844enp5fjQuTTpk3j9ddfJzZ2FLm5uTz88CK+//2/dnge73w5K+gDgOIO5p9ueqwVpdTtSqkdSqkdbeuy+tqaNWsc9w8cOEBZWRkA//iHufzc9OkdXzdy//79vPvuuwDcd999lJWVkZCQgFKK0NBQxo4dS2NjI/v27ePIkSOONvVbtmwBTP28n5+fk7dOCOFsXl5ejBs3joceGsYXX5Rx7bV1VFW58uKLI1m8eCKenglERCSza9dlLFkyn6NH9wCLgEZOn17OsWOne71Mzrw6RUe9g1RH87XWy4BlYAY1c2KZurR27VrH/QMHDlBYWMiQIbH8+c9m3s9/3n6Z2tpali5dSnV1NbNmzSIxMZGKigpHXbxSitmzZ7Nnzx62bdvGpEmTKCsrw9fX13Ety4SEBGlxI4SF+Pr64usLq1aZ4cv/4z/MZQhHjjQNOhoafADw929g2rQ7iYsbQnR0JfHxvX9S1llH9KcB/w7m+9Hxkf6AUFFRQXp6Okop/Pz8KC8vJz09nW3bNHv2QHAw3HBD++V27tzJp59+is1m46677qKkpISEhATH9V0Bvvvd7wKmKaXNZiM3N5eGhoams/Qm6JuHRhVCWIdS8P3vQ0YGfOc7phoYYP58WLkSTp608dZbwdxyyySmTr3UKWVw1hH9AdrUxSulogFv2tTdDyRr166lrq6OUaNGERwczKZNm9i7dy+ff94AuHLrrdBRo5g333yTxsZGrrnmGqKjozl9+jSD21x6ZsKECYSGhpKfn8+JEydQSuHt7U12djY2m02CXgiLGzwY/vUvc23puDhoeUrObvchJSWl097458tZR/SrgXlKqUEt5t0EVAGfO2md5+3jjz8GzEW2my8e/NVX3/Duu+bI/I47Ol5uw4YNAMyaNYuSkhJiY2Mdl/5r5u3tzeSmhvdbt26lvr6etWvX0tjYSFxcHIGBgdLiRgiLUwpSU1uH/JnHlNP60TgrWV4FaoBVSqk5SqnbgceAFwZyG/r169cDZmCx5lDevfsg1dWKuXMhPr79MgUFBezfvx9XV1cmTJhAfX090dHR7Z7n4uLCnDlzANi8eTNeXl6OESsTEhLw9/d3zkYJIS56Tgl6rfVp4HLABnwA/AZ4Efi1M9bXGwoKCjhw4AB2u52EhARmzZqFq6srp09nASUdnoQFWL16NVprxo8fT11dHREREZ2eVL3yyitxc3NzDJjWfEGSoUOHSosbIYTTOK2uQGu9T2s9W2vtqbUerLX+ldZ6wF5Kd/Xq1QCMHz8eDw8PYmNjiYgYCWgGDdrE/PkdL9dc3ZOamkp1dTWxsbGdriMsLIxx48YBpvrm6NGjgIxxI4RwLqkUbvLJJ58AkJycTGBgIO7u7ihlhqaMjf2UhoaadstorR318+PGjSMwMPCsR+Y+Pj5MmjQJMCd+jxw5gs1mIy4uTk7ECiGc5qII+pKSEvbs2dPphT+01qxbtw6AMWPGEBkZybffwvHjJuiV6niEuczMTPLy8vDz8yMiIqLdAGht2Ww2Zs+eDcCmTZtobGxk6NCheHp6StALIZzmogj6Q4cOcfjwYfLy8jp8PCsri7y8PHx9fYmLi8Pf35/XXoPGRtOm9fDhfR0OWfzRRx8BppWOq6trt06oTpw4kaioKMffI0aMwNvbW1rcCCGcxvLpUlZWRn5+PoMHDyYjI4OamvZVMM318ykpKfj6+mK3e7FsGUA0fn6hlJeXOy7111LzcAkTJkwgKCioXZPKjvj7+5OSkuL4Oz4+XlrcCCGcyvJBn52djbu7uyOEs7Ky2j2nuX5+7NixREZGsmYNHDtmOjVcckkyYE6etlRXV8fmzZsBSExMbHWUfjYt6+kB4uLipMWNEMKpLB30VVVVZGdn4+vrC5gL+x49epTi4mLHcxoaGti4cSNgWtwEBwc7xrW54w6YNm0qAHv37m31a2D79u2Ul5cTExNDSEgIAQHtxmrrkLu7O6mpqfj7++Pr60tsbKy0uBFCOJWlg/748eOcPHmShQsX8txzz6G1xsfHh4yMDMeFeXft2kVpaSkRERHExMRQXDyIjz4CNze49Va4rOmisC2HLIYz9fMpKSkEBAT06GRqZGQkf/rTn1ixYgV2u11OxAohnMqZo1f2q9raWg4dOsSzzz7LoUOHOHToELW1tTz66KPk5+eTk5NDdHS0o549OTmZiIgIXntN0dgICxZAaCj4+aXi5uZGdnY2ubm5jiP3Tz/9FDDVPd2ttmkWFBRESEgIwcHBFBUVSdALIZzKskf0ubm5/P3vf2f//v0EBwdjt9tZtWoVL7zwAoGBgezfv5/q6mpH/fz48eMJDAxl+XKzfPO4Nna7ncTERLTWjiqekpISdu3ahc1mY+zYsQQGBvaobD4+ZnjS2tpaaXEjhHA6SyZMfX09q1at4p133sHFxYWnn36aZ555BldXV9566y2WLVuGi4tL0xDE21BKkZSURFqaP7m5MHw4zJx55vVSU1MBHGPTrF+/noaGBkaPHk14eHiP69g9PDyw2+1UVFRIixshhNNZMugPHjzI73//e7TW/PjHPyY5OZmpU6fy9NNPY7PZ+Otf/8qqVav45JNPqK2tJT4+nvj4eJYvPzNKZcvr8zbX0+/du5fa2lpHc8ykpKQOBzDrjtDQUIqLi6XFjRDC6SwX9A0NDdx9993k5+czevRobr/9dsdjs2bN4vHHH0cpxZ///GeWN9XTJCUl0dAQzZo1Zrz5f//31q85ffp0wJyQLS8v57PPPgNMvX5QUNA5lTM4OBgXFxdpcSOEcDrLBf3SpUtZt24dnp6ePPnkk7i6tj7fPG/ePJYsWQKYNvZgOjy9914AWsONN0Lb7I6KiiI8PJzKyko+/PBDDh8+jLe3N+PHj8fb2/ucyunj44O/v7+ciBVCOJ2lgv7w4cMsWrQIgAcffJCYmBi01pw6dYr8/HyKi4tpbGxk/vz5PPLIIwB4enoycWIqb7xhvhA6u7jIJZdcAsCzzz4LmNY2ZxupsiteXl6Eh4dL0AshnM4yzSvr6+tZuHAhFRUVzJo1i2uuuYbq6mrHFZ8iIiLIycnh+PHjuLi4cO211xIREUFtbS2HD4/h5EkYNQqmTev49adNm8b777/P3r17ATNmTfPFv8+FUorExMRzXl4IIbrLMkH/9NNPs23bNoKCgnj00Uc5deqUoxdqc/NHf39/4uPjyc3N5fDhw8Q3XTLq+edN2/i2J2FbmtbmG2DKlCmOZpJCCDGQWSboU1NTCQ8P584776Suro64uDgSEhJwc3Nr9TwPDw+GDh3KkCFDyM/PZ8+eMtatc8XDA370o85fPzk5GXd3d2prawkNDWXy5Mmozr4VhBBiALFMHf0VV1zB1q1bmTlzJlOmTGHUqFHtQr4lm83G4MGD+fzz4QB873twtuFq7HY748ePB8zJ29DQ0F4tvxBCOItlgh4gOjqaqVOndnuAsdpaeP11c7+zk7AtLVy4EJvNxpVXXsmgQYPOo6RCCNF3LFN1A/R4KIF//hMKCmDMGJgypevn33fffUyePJmAgAAZtkAIccGwVND31NKl5vbnP+/8JGxLSimGDRsmTSKFEBeUizbo16yB9evBywt++MPuL3c+TSqFEKI/XJT1D2Vl0DwywpIlIMPNCCGs7KIM+v/8T8jOhgkT4MEH+7s0QgjhXBdd0Kelwcsvg6uraXHjetFWXgkhLhYXVdBXV8NPfwpawyOPQFOzeCGEsLSLKugffxy++QZGjoTFi/u7NEII0TecEvRKqZuUUquUUnlKKa2U+rEz1tNSWRkcPNj547t3wzPPmGaUr79uxp0XQoiLgbOO6G8EYoEPnfT67axaZS4BmJQEv/0tZGaeeayuDm67DRoa4N57u9c5SgghrMJZpyJv0lo3KqV8gJ86aR2tFBWBry+kp5tp8WIYNw4WLIDiYtizB2Jj4ckn+6I0QggxcDgl6LXWjc543bN54AH4j/+ATz6B996D99+Hr74yU7O//AVkZGEhxMXGUo0L7XaYP99MNTXw2Wfw7rvw8cem9+ucOf1dQiGE6HsDIuiVUrcDtwPExMT0ymva7XD11WYSQoiLWbeCXinlBwzu6nla6wPnUgit9TJgGUBKSoo+l9cQQgjRse4e0S8A/tKN58kll4QQYoDpVvNKrfVyrbXqanJ2YYUQQvTcRdUzVgghLkZOORmrlBoNjAaar9CRopQqBwq01p87Y51CCCE65qxWN98Dft3i77uaps+BmU5apxBCiA44pepGa/1YJ/X4M52xPiGEEJ2TOnohhLA4CXohhLA4CXohhLA4CXohhLA4CXohhLA4CXohhLA4CXohhLA4CXohhLA4CXohhLA4CXohhLA4CXohhLA4CXohhLA4CXohhLA4CXohhLA4CXohhLA4CXohhLA4CXohhLA4CXohhLA4CXohhLA4CXohhLA4CXohhLA4CXohhLA4CXohhLA4CXohhLA4CXohhLA4CXohhLA4CXohhLC4Xg96pZSvUuo3SqntSqkSpdRJpdQ/lVLDe3tdQgghuuaMI/oY4GfAGuBG4A5gMLBNKRXthPUJIYQ4C1cnvOYRIF5rXdU8Qym1CcgGbgN+44R1CiGE6ESvB73WuqKDeUVKqWNAaG+vTwghxNn1yclYpVQIkADs64v1CSGEOKOvWt08D5QDb/fR+oQQQjTpVtWNUsoPc0L1rLTWBzpY9k7gh8ANWutTnbz+7cDtADExMd0pkhBCiG7qbh39AuAv3XieavWHUt8FXgIe1lr/s7OFtNbLgGUAKSkpuptlEkII0Q3dqrrRWi/XWquuppbLKKUuxVTVvKq1ftYZhRdCCNE1p9TRK6USgQ+Bj4F7nbEOIYQQ3dPrzSuVUqGYgC8H/gRMVspxsF+qtZaWN0II0Yec0WFqNBDVdH99m8c+B2Y6YZ1CCCE64YwOUxtoc1JWCCFE/5HRK4UQwuIk6IUQwuIk6IUQwuIk6IUQwuIk6IUQwuIk6IUQwuIk6IUQwuIk6IUQwuIk6IUQwuIk6IUQwuIk6IUQwuIk6IUQwuIk6IUQwuIk6IUQwuIk6IUQwuIk6IUQwuIk6IUQwuIk6IUQwuIk6IUQwuIk6IUQwuIk6IUQwuKU1rq/y9CKUqoAOHYeLxEMFPZScS4Gsr96RvZXz8j+6pnz2V9DtNYhHT0w4IL+fCmldmitU/q7HBcK2V89I/urZ2R/9Yyz9pdU3QghhMVJ0AshhMVZMeiX9XcBLjCyv3pG9lfPyP7qGafsL8vV0QshhGjNikf0QgghWpCgF0IIi7ugg14pdZNSapVSKk8ppZVSP+7BslOVUtuUUlVKqSNKqXudWNQBQyn1M6XUQaVUtVJqp1Lq8m4s81jT/m07/VtflLkvKKVGK6XWKqUqlVK5SqnHlVK2biznp5T6q1LqtFKqRCn130qpoL4oc386l/2llIrt5H30dl+Vu78opRKUUkuVUulKqQal1IZuLtcr7y/XHpd4YLkRiAU+BH7a3YWUUgnAmqblHgUmAy8opSq11sudUM4BQSn1feBV4DEgDbgV+FApNUlrvbeLxUuAtsG+v9cL2Q+UUgHAZ8A+4BogHngecyC0uIvF3wFGYN5/jcDvgf8FpjupuP3uPPcXwP8DNrf4+2LoUJUIXAVsBdx7sFzvvL+01hfsBLg03foAGvhxN5dbCmQCri3mvQIcp+kEtRUn4Bvg9Zb7D/gaeLOL5R4DCvu7/E7cL48CpwHfFvMWAZUt53Ww3JSm991lLeZNbpo3p7+3awDur9imffOd/t6GfthnLi3uvwds6MYyvfb+uqCrbrTWjee46JXAKq11fYt5bwNRwJjzLtgApJQaCgwH/qd5XtP+exezPy5mVwJrtNalLea9DXgCM7pY7lut9cbmGVrr7cARrL1Pz3V/XbTOMat67f11QQf9uVBKeQPRwIE2DzVXQ4zs2xL1mebt6mi7A5VSHY6R0YK/UqpQKVWnlNqtlLq+94vYb0bSZr9orbMxR6hnez+0W67J/i6Wu9Cd6/5q9temeuo8pdQLSilPZxTSAnrt/XXRBT3g33Rb3Gb+6abbgD4rSd9q3q7iNvO7s92HMD/NvwfcAOQCKy0U9gG03y9g9s3Z9su5LnehO9ftrgFeBn4CXI6pQr0T82tAtNdr768BdTJWKeUHDO7qeVrrjr7leqqznmIXTA+yc9xfbbdPdTK/5fJvtlnvB8AXwBJgVbcKO/B1tP2qk/m9sdyFrsfbrbXOA+5uMWuDUupb4BWlVJLWek/vFtESeuX9NaCCHlgA/KUbz1NdP6VTxU23/m3md3bEO5D1ZH81H7n7Y1rQ0OJv6MF2a621UmoV8HullE1r3dDdZQeo07R/PwD4cfb9chroqMrLv4vlLnTnur868h6mIcQEYM/5FMqCeu39NaCqbrTWy7XWqqvpPNdRgWld07aOq7M67AGrh/urebs62u4irXXBuRThnAs/sBygzX5RSkUD3pz9/dBuuSad1a1axbnur47oNrfijF57fw2ooO9Dq4Hr2nTwuAnzBdBVe/ILktb6MKZJ6YLmeUopl6a/V/fktZRSCrgOSLfA0TyY7Z+nlBrUYt5NQBXweRfLhSulpjXPUEqlAEPp4T69wJzr/urIjU23O3ujYBbTe++v/m5fep5tU0dj3ig/xBwR/FfT3zNaPGcGUN9mXgJQDvwDmIU50VgH/LS/t8nJ++sHQAOmU8ssYAXmwzmmi/31OXAvMBcT8B9hOm98t7+3qZf2SwCQB3wKzAFub3p/PNnmeYeA19rM+xg4DFwPXIvpq7Cpv7dpIO4vTH+M55v21Rzg8ab338r+3qY+2GdeTdl0I7AFyGjxt5ez31/9vgPOc+c91hTwbacNLZ4zs2nezDbLTgO2A9XAUeDe/t6ePtpnP2t6Q9UAu4DL2zzebn8BrzW92aqACmATcGV/b0sv75fRwLqmbcwDngBsbZ5zFFjRZp4/8FdMnWkp5uAhuL+3ZyDuL+D7wA7MOaLapvfh44C9v7enD/ZXbCdZpYFYZ7+/ZJhiIYSwuIu1jl4IIS4aEvRCCGFxEvRCCGFxEvRCCGFxEvRCCGFxEvRCCGFxEvRCCGFxEvRCCGFxEvRCdEEptaKTi1pv6u+yCdEdEvRCdO0ZzPU7p2Aurq6Bb4GX+rNQQnSXDIEgRDcopQKAv2MGdnsO+K02Q14LMeANtAuPCDHgKKWCMSM1+gOXaq139G+JhOgZOaIX4iyaxuzfjBmad4bW+tt+LpIQPSZH9EKc3f3AGCBJQl5cqORkrBBndx/wgtY6q78LIsS5kqAXohNKqYlADPB2f5dFiPMhQS9E50Y03eb0aymEOE8S9EJ0rrLpdlS/lkKI8yStboTohFLKD3Nd00rgt5gLOn+ttS7t14IJ0UMS9EKchVJqLPAUMBXTjr4YSNFaH+7HYgnRI1J1I8RZaK2/1lrP11oHAoGADzC9n4slRI9I0AvRDUopV2AeZpybzf1cHCF6RIJeiO6ZAjwB/EBrfai/CyNET0gdvRBCWJwc0QshhMVJ0AshhMVJ0AshhMVJ0AshhMVJ0AshhMVJ0AshhMVJ0AshhMX9f0B2jgjgHYGBAAAAAElFTkSuQmCC\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "dim=3\n", - "RMSE: 0.4986663\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "dim=4\n", - "RMSE: 0.28111818\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAEUCAYAAAAlXv26AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAA1gElEQVR4nO3deXhU1d3A8e+Z7PsOCUsSAgmRNZiwrwIu2LpQQV6qVUHFpW9trVa7WIuIVVuL1Le1VIvaViraKi4IFJDFoIBEZQeRfUkgCYTsy2Ry3j9OZkhCVsgk4fL7PM99htw7d+65hzu/OffcsyitNUIIIazL1t4JEEII4V4S6IUQwuIk0AshhMVJoBdCCIuTQC+EEBbn2d4JqCsyMlLHx8e3dzKEEOKS8uWXX+ZqraPq29bhAn18fDwZGRntnQwhhLikKKWONLRNqm6EEMLiJNALIYTFSaAXQgiLk0AvhBAWJ4FeCCEsTgK9EEJYnAR6IYSwOAn0QghhcRLohRDC4iTQCyGExUmgF0IIi5NAL4QQFieBXgghLE4CvRBCWJwEeiGEsDgJ9EIIYXES6IUQwuIk0AshhMVJoBdCCIuTQC+EEBYngV4IISzOLYFeKTVVKfWhUuqEUqpIKfWlUmq6O44lhBCicZ5u+tyfAoeAh4Fc4HrgX0qpSK31/7npmEIIIerhrkB/g9Y6t8bfa5RSXTA/ABLohRCiDbml6qZOkHf6GujkjuMJIYRoWFs+jB0B7G7D4wkhhMB9VTe1KKUmADcBM9vieEIIIc5xe4leKRUP/Av4QGv9RgPvmaWUylBKZeTk5Lg7SUIIcVlxa6BXSoUDy4GjwO0NvU9r/YrWOk1rnRYVFeXOJAkhxGXHbYFeKeUPLAW8ge9orYvddSwhhBANc0sdvVLKE/g3kAiM1Fpnu+M4Qgghmuauh7EvYzpJ/RgIV0oNq7Hta611uZuOK4QQog53Bfprql//WM+2HsBhNx1XCCFEHW4J9FrreHd8rhBCiJaT0SuFEMLiJNALIYTFSaAXQgiLk0AvhBAWJ4FeCCEsTgK9EEJYnAR6IYSwOAn0QghhcRLohRDC4iTQCyGExUmgF0IIi5NAL4QQFieBXgghLE4CvRBCWJwEeiGEsDgJ9EIIYXES6IUQwuIk0AshhMVJoBdCCIuTQC+EEBYngV4IISxOAr0QQlicBHohhLA4CfRCCGFxEuiFEMLiJNALIYTFSaAXQgiLk0AvhBAW57ZAr5TqpZT6q1Jqm1LKoZRa565jCSGEaJinGz+7L3A9sAnwduNxhBBCNMKdVTcfaa27a62nArvceBwhhBCNcFug11pXueuzhRBCNJ88jBVCCIvrEIFeKTVLKZWhlMrIyclp7+QIIYSldIhAr7V+RWudprVOi4qKau/kCCGEpXSIQC+EEMJ9JNALIYTFubMdvXCTqirIzoZjx+D4cThxAkpLoaIC7HazOP/t7Q1BQRAYWPs1PBy6dYPoaPDyau8zElajNZw9a67PkyehsNAsRUXnXouLwWYz15+3t3l1/jsyErp3N9dot27g59feZ3Rpc1ugV0r5YzpMAXQFgpVSU6r/Xqa1LnHXsa3k1Cn47DPYsAEyMuDoURPYKytb5/OVMsHe+YWKjYXeveGKK8zSqZN5jxB1lZXBvn2wZ49ZDh48V/A4fhxKWvEbHhFhrs/evWHUKLMMGAAeHq13DCtTWmv3fLBS8cChBjb30Fofrm9DWlqazsjIcEuaLgUnT8KyZSawb9gA335b//siI82F3707dO0KAQHnSkU1S0cVFbVLUs5/5+SYL+TJk6b01ZCwsHNB/8orIS3NfMF8fd1z/qLj0doUMDIyzLJzpwnshw6Zu8uGBAaaazQmBoKDzZ2kcwkMNNdsVdX5d6Hl5eaO9fjxc4vdfv7nBwXB8OEm6F91FYwceXkXSpRSX2qt0+rd5q5Af6Eux0CvNXz6Kbz8Mrz3Xu3Sur//uYt5+HDo2dME9ta6lbXbISvrXEns0KFzJbQ9e6Cg4Px9PD2hf38T9NPSTLr69jW34eLSd/q0uYvcsuVccM/NPf99Npu5Hp0FgcTE2tUtwcGtk56qKlMwOXYMvv76XCHo4MHa70tOhgcegDvugNDQ1jn2pUQCfQeVnw///Cf85S+we7dZZ7PBpEkwcaIJ7gMHtl8dutamxL9njynFffml+dLv2XP+XUBYmClRjR5tltRUc2chOr6jRyE9/dzivBZriog498M+cOC5wO7j0/bpdcrMND9I6enw7rvmbzCFo+9/Hx58EAYNar/0tTUJ9B1MURE8+SS88op5IAWmnnzWLLj3XlMa6siKikzJKiPDlPo2bDClrZr8/ExJf+JEmDDBBH6pT+0YsrJgzRr45BPzeuRI7e2+vjB0KAwbdi64x8V17GoRux0++sjcFX/yybn1w4bBiy+aV6uTQN+BpKfDXXedu+0cN86UPG6++dJu/XLkyLkS4aefwt69tbeHhJh61AkTTPDv3Rvs9gpycnI4efIkp06dwm63M27cOEJCQtrnJCyqoADWrTMBcPXq80vsISHn7sbGjDE/yu1ZUr9Ye/fCggXwxhvmrtlmg5/9DJ566tI+r6ZIoO8ASkvhiSdM6UJr80Dz9dfNA86LkZ+fz9dff42vry/R0dF07twZvxZW4FdVVZGTk8Phw4fJyckhMDCQ0NBQQkNDCQsLIygoCFsLK+Czs01wWbo0l9Wrd5GVtRfYXb0cRqkctM4/bz8fHx/GjBnDrbfeyve+9z3Cw8NbdNyWcDgcbNy4kaVLl/LVV18RFhZGbGwsCQkJxMfH06NHD2JjY/Hz80O1oDirtW7R+1ubw2HutlauNMvGjWadk7+/CegTJpjFqq1Xiovh6afh97839fz9+sHf/37x37mOSgJ9O/viC7jzTlPS8PCAX/wCfv3rC6vDPnXqFOnp6Xz66aekp6ezfft2quo0fQgODqZz585ER0cTFBSEl5cXnp6eeHp6YrPZ8PDwoKioiOPHj5OVlUV2djb2+po11ODv7090dDRxcXEkJCTQs2dPevXqRUJCAqWlpRw5coSjR49y7Ngxjh07xokTJzh8+DB5eXmNfKoNiACi8PMLx8+vgDNntru2+vr6MnLkSG655RYSEhLw9fXF29vb9erj44Ovry8BAQH4+vq6zs9ms9UKtFprnNf58ePH+eijj1i+fDkbNmwgP//8H5taKbTZiIyMpHPnznTp0oXY2Fji4+OJj4+noqKCo0ePus77xIkTnDx5kpCQEGbMmMEDDzxAREREo58PUFxcTHZ2NmfPniU/P9/1WlhYiL+/P1FRUURERBAVFUVkZCR+fn6uc3Quhw8rVq2CTz5RrF6tOHv23Od7eJiqC2c12tChl9fzk40bzffv229NQ4InnoBf/vLSvoOujwT6dlJVBb/5DTz7rClRXXGFKVEMHtz4flprHA4HDoeD0tJS0tPT+fjjj1m9ejUHDhyo9V4PDw8SEhIAOHv2LHl5eVReQCP74OBgOnXqRFBQEGVlZRQXF1NaWkpxcTElF9Eg2s/Pj7i4OOLi4ujatSvdu3cnOroL+fnd+OabHmzb1pkdO0Kx2513DEfw9HwHH5/FFBd/1ezjKKXw9vZ2/QAopVx5WHOpqKiotV+XLl1IS0sjMTGRwsJCTp8+TU5ODjk5OZw6dYozZ85c8LmHhYUxffp0HnnkEXr06OH68dFa8/XXX/Puu+/y0UcfsXPnTlryPfT398fT05vKSrDbFZWVCjMquMZ0jQnA0zOAwEBvwsN9iIryJiTE33WHFhERQUREBOHh4YSEhGC32ykoKKCoqKjWUlhYSGFhoevvkpISiouLSU5O5rnnniM5ORmPFt4KVFVV4XA4KCkpITMzEx8fH8LCwvD398fDw8P1Q93Szzx27BidO3fGt4F2vyUlpoD10kvm7yuvhLfegqSkFh2qQ5NA3w60hh/+0LSoUQoeecTcRjbV/txut7NmzRo++eQTvvjiC7Zs2VIr0Pr4+JCUlMTAgQMZNWoUEydOJCYmBj8/PyorK7Hb7eTm5pKZmUlWVhZnz56t9aUtKyujsrISb29vIiMjXaXE4OBg/P39XdU+zqDocDgoKysjPz/fVWLNysoiKyuLU6dOcerUKVepMzIykvDwcCIjI4mMjCQmJoaoqCiCgoIIDg4mNDTUVfr29vbGy8sLpRTFxaZef+VKWLUKdrmmqTkM/Acvr+X4+5/F17cUL69yoAK73U5FRQUVFRWUl5c3+8fN19eXK6+8kkGDBjFw4EC6detGREQE0dHReHt7u4KZ8weuqKiI06dPk52dTXZ2Njk5OeTm5pKbm4uPj4+rtB0REeHKz127dvHee++5fpR9fHz4zne+w80338y6detYsWIFmc4mIpgf66CgIAICAggMDMTf39+VT2VlZRQUFHD2bAFnzuRTXJxPR5jqISQkhIcffpi77rqLmJgYvOvcImitKSoqcv2gHTt2jFOnTrl+RM/WvOUAPD09CQgIcOXB1KlT+eUvf4m/v3+j6aioqGDSpEls3ryZp556ilmzZhEUFNTg+9etgxkz4PBh077/00+hV68LzIQORgJ9G9MaHnsMXngBfHw0r79+hv/5n/Am620rKyuZOXMmixYtqlUd07NnTwYPHszw4cO55pprXFUyLS1NOY9RVlZGRUUFnp6eroDbnM+qrKykvLycsrIySkpKKCgoID8/H7vdjp+fn+uL6ufn5ypd+/r6tjidmZnmoeGqVZqVKzXZ2bVLeFFRpQwYcIYBA87Qt28eXbqUUFXlqHVuWms8PDxci7PKytPTk6CgIGJiYoiMjHRVbTWkqqrK9YPi/FFx/hDUPO+a56yUIjMzkyVLlvCf//yH+q7nsLAwRowYQVpaGgMHDnT9wDrvTOx2P775JpSvvw5hy5YA9uwJxOGwAVVAPjZbGUlJBfTvf5YBA/JITCzCZjN3guXl5ZSWllJaWkpZWZnr/6uoqMiVdmcpvbS01FUFVt/i5+fnWnx9fVFK8Y9//IPt200V21VXXcWDDz5I37596dq1K3a7nVOnTrFy5UreeecdNm3aVO/dioeHBxEREVRWVlJYWFhv1eGTTz7Jgw8+SOfOnev9v6moqGDWrFn8/e9/B8yP+Ny5c5kxY0ajz3YKC+Gmm2DtWtMTPD3dvF7qJNC3sTlzTJWNpye88cZZ/P3X0rNnT/r27dtg0KuqquKRRx5h/vz5eHh4kJqayujRo0lJSSEyMpKePXsSHx/faFCyIq1NCX/tWlMaW7cO6tamRERohgypci1XXukgKMhc1zXrsZVS2Gy2NsvDiooKsrKyWL16NW+//TYnTpxg0KBBpKamkpSURFBQEF27diU8PJKjR/3YssWTzZttbNpkzrnmV9Nmg9RUzZgxDkaOrGTw4HKCg9V5dfVKKaqqqlxVJA6Ho9a/nT9YzjsiZ4D18vJy/eg7f7Bq/kA6q1Q8PDwoKCjg6aef5vXXX6esrIyIiAh+/OMfk5KSwmeffcaSJUvYt2+f63MnTpxIr169iIiIcFUdhYSEuAoYlZWVVFRUuH6E1q1bx6JFi/Dz8+P3v/89EyZMIDExsdZ3p7i4mBdffJFf//rXeHh4MGjQIDIyMvDz82Pu3LlMnz6dmJiYBv9vCgvhmmtg0ybTH+DTT00T50tZY4He9aCqoyypqan6UvbCC1qD1jab1gsX5uqYmBg9dOhQ/c477+jNmzfr8vLy8/apqqrS8+bN05hKVv3cc8/ptWvX6mXLlunt27frkpKSdjiTjsnh0HrbNq3nz9f65pu17tzZ5HfNRSmtk5O1njpV6zlztF6yROv9+82+7aGyslJnZmbq9PR0vXbtV3rJkhw9f365fvBBrUeP1jok5Pxz8PLSesgQrR99VOulS7XOz2+ftDfkzJkz+rXXXtP9+/d3XbehoaGuf4eEhOh77rlHf/jhh3rZsmV61apVesuWLfrAgQM6OztbFxUVaUf1f4jD4dDl5eW6uLhY5+fn69zcXH311VdrQHfp0kUvXrxYf/7557q4uFhrrXVeXp5euHCh9vf314D+4Q9/qFeuXKnHjRunAR0QEKDnzZunDxw4oKuqqho5B61TUkx+9+undW5um2Sd2wAZuoG4KiX6VrRggemCDaYNr8PxGnfffTcA8fHxPPXUU/To0YPU1NRadY/vvPMOt99+O3a7nYceeojrrruOiIgIkpOTCW6tfuQWpbVpw79pk2ldsWmT6cxVXyOigADTTT4+3ixxcWaJjze37sHBFz+MQ3m56ZB05IipBz5y5Ny/v/32/I5lTt27m5Yxw4eb10GDOv54QoWFhWzatIklS5bw2muvUV5eTlxcHLfddhvXXHMNpaWl+Pn50a9fP8LDm666rOnEiRNcddVVfPvtt6SmpvLss8+itaZnz55s3bqVRx99lMOHD3P11Vfz0EMPMXz4cHJzc7n33ntJT08nKCiIZ555hgkTJpCcnNzgA96cHBg71vT2TkszfQ0u1a+cVN1cgH379hEaGkqnTp2a9f5//tM04dIa/vxn0wlq8uTJvP/++/j5+VFaWkpISAhz5syhT58+DB48mJCQENavX8+NN95IQUEBU6ZMYebMmcTFxXHFFVe0a1vsS1lZmekUtGNH7SUrq/H9bDbTeSg09NwSEmKq4OrS2rTTPnu29lJW1vgxfH2hTx8zVlDNpZFahg6tpKSEjIwMjh49SnFxMVdeeSUFBQXY7XaSkpKIjY3Fs74MbIaVK1cyffp0zpw5w9SpU3n44Yc5c+YM8+bNY82aNSQkJPDHP/6Rbt26kZKSgtaarVu38r//+798/vnnhISEMHfuXG6++Wa6NdLd/MQJ06/g4EEz7MiKFaZQcKmRQN9CWmtWr15NRUUFCQkJJCYmNnqxrl4N115rmlM+/7x5EFtZWUl4eDiFhYUsXLiQhQsX8vnnn+Pl5cVjjz3GqFGjCA8P5+abbyYrK4uRI0fy5JNPEhoaSmpq6gU9aBWNy801w+rWLW0fOWJK2kVFF38MLy8ztLPzbsF5xxAXBz16mBYeVvuvLS8v56uvvuLs2bNorYmOjiY5ObnJFjNNKS0tZcGCBTz++OPY7XZ++ctfUlJSwvz58wkICOD1118nKCiIMWPGuI7lcDjYtGkTjzzyCJs3byY0NJRXXnmFqVOnNnqsw4dNz+Djx+GGG+CDDzr2kA/1kUDfQqdPn2blypUkJiaSm5tLUFAQAwcOJDAw8Lz3FhSYHnfHjsHjj8Nzz5n16enpjBkzhm7durFw4ULsdjv//Oc/efvttwG444472LJlC3v27KF3797Mnz8fX19fhg8fjo+V+2l3YJWVpst83VJ6Q0PxBgTULv2Hhpoxfi61ANEa7HY7Bw4ccDWtbS0HDx7kz3/+M/PmzXMVfhwOBy+88AL9+vUjMTHR1Y/EqaKigvXr1/Pzn/+cr776iqlTp/Laa6/V+/2t6ZtvTNVZXh4sXAgzZ7baabQJeRjbQpMmTdKAvuaaa/T777+v161bp1esWKGPHz9+3sOdWbPMw5y0NK3t9nPrH330UQ3oyZMn68zMTL1z5069dOlS/eijj2oPDw/XQ6vOnTvrDz74QK9YsUIXFBS08ZkK0bHZ7Xa9du1aPW3aNNd3ZsaMGXrDhg16zZo12l7zS1dDUVGRfuaZZzSgk5KS9IEDB5p1vDffNN/n4GCtjx1rzTNxPxp5GCsjiNfhcDhYu3YtYOoIp0yZwl//+lcAtm3bxo4dO1ydc1atMiNQenubcWtq1u4sX74cgNTUVMLCwujTpw/9+vXjqquu4ne/+52rY8i8efPw9PTkyiuvbLSjhxCXI09PT/r168dtt93G9OnTmT59Ovfffz9nz56lb9++DVapBgQEcMcdd+Dp6cm3337b7N7HN9xQyOjRZygoMKPJtmWFR0VFBbvO9RZsVRLo6zh06BBlZWWEhoby3e9+F4fDwVtvvcUtt9zCxx9/zP79+zly5AgFBXDPPWaf3/zGVN84nThxgl27duHj48OIESNcHU3i4uIYNmwY/fv3Z/HixSxZsoTQ0FD69OlDVFRU+5ywEB1cREQEMTEx3HPPPTzyyCMUFRXRuXPnJr8z3bp1IzU1Fa01X3zxRZPjGgEcPnyIO+7YSHCwg+XLzZAlbcXZAdEdJNDXsWPHDgCSkpKYPXs2ixYtYsSIERQXF/Pyyy/zwAMP8Omnn/Loow6OHjVDuj72WO3PWLZsGQApKSnExcXV2hYeHs6IESMICQmhuLiY2NjY894jhDhHKcUVV1zhGr6jrKyM5OTkZrVKmzhxIgDbt28nq4lmV4WFhTz33HPk5Gxn1ixTsv7JT0yrHHfTWjNt2jReffVVSktLW/3zJdDX4Qz0sbGxFBYWkpiYyEsvvcTLL79MUlIS2dnZzJ+/mFdf9cDLy7SXr3v3uHTpUgDS0tLqHb0wICCAYcOGkZKSIs0ohWiGgIAAEhMTOX78OImJiU0+WHW67rrrANi6dSvHjx/HUXO85joWL17MW2+9xdy5cxk79hijR+eTnw/33ef+KpydO3eyZs0aPvjgA7c0xpBAX4dzDI/Y2FhCQkLIzc0lJyeHfv36VT/592T79k+AQ/z611W1qmzAtD5w1vEPGTKkwXp3Ly8v4uLipBmlEM0UHx9PUlIS8fHxzd5n2LBhBAQEuIaRbmjY7LKyMv79738Dpm/A9u3buOeeLYSEVPHxx/CPf7TGGTRsyZIlAAwdOrTFo3c2x2UR6LXWlJeXN+u9zhJ97969GTRoEOPHj2fgwIF4e3tjs9mIjr4RcBAS8hx33HHyvP0///xzCgsLiY2NJSUlxS3/aUJcjry8vOjfv3+Lxiry9PRk6NChAOzevZvjx4/X+76DBw+yceNG19/Lli0jIcGXBx80Y/b8+MfurcJxVvcOc9Och5dFFPr2229dJfXGlJeXc+DAAZRSDBw4EABvb29iYmKqL5bxnDgxG4DS0n/w9ddfnDfpx4cffgiY1jYNjbonhGg7EyZMAMzd+qlTp86bk8But/Puu+9SVFRE165d8fDwYNOmTZSUlDBq1CHGjy8hPx/uv989VThnzpxhy5YtrsEM3cHygX7Lli1MmzaNRYsWNTlm+d69e3E4HERHR5838l1VFTz+uA/Qn65dx1JRUca7775LTk5Orfc5m1U6hzgQQrSva6+9FoAvvvgCh8PB6dOna23PzMxk/fr1AEyaNImUlBQcDgerVq0iIiKcu+/eQkiIZulS06S6tS1fvpyqqioGDBjQrBnJLoSlA31WVhbf//732bp1K++88w7FxcWNvn/nzp0AxMXFEVBnsIu33jLjpXTvDnPnzgLgo48+YseOHbWmqduzZw++vr4MHTq0wdluhBBtZ+DAgURGRpKXl0d2djZHjhxxbausrGT37t1s2rQJgOHDh7se4C5btgxPT0+ioiqYMeMUYKYgbKin9IVy1gKkpaU1OibPxbBsoC8tLeW2225j//79gAn6dafhq8tZP5+QkFBrgu2KCjPHK5iZ5KdNm0xSUhL5+fm8//77runmPv74Y8A0q2zJAyMhhPt4enoyuHr+zm3btpGXl+eatS07O5uNGzdSXFxM79696dKlCzfccAP+/v7s3r2bw4cPExYWxujRW4mOruLLL+Hdd1svbc47BzCBvrEJUy6GJQO9w+HgkUceYe3atfj7+7uCrrM1TEO2bdsGQI8ePWqVxv/2Nzh0yAxx+4MfmHlQ77vvPsA8Ld+7dy9Qu1mlu/7DhBAtd9VVVwGm+sbDw4OcnByqqqr45ptvXKX5iRMnYrPZSExMZNSoUYAp1SuliIjw4/bbDwGm0HcB0zLXa/PmzeTl5RETE8MVV1xxXk1Ca7FcoNdas2DBAhYsWADAnDlzXE+yN2/e3Gg3aGf34759+7payxQXm7leAebOPddmfubMmURHR5OZmcnSpUvJzs52/ZAMHTpUxpEXogOZNGkSAF999RU+Pj4cOXKEnJwc8vPz2bBhAwAjR46kU6dOBAcHux7gOuvPAwMDGT16H/HxDr75pvV6zH700UeAeabXvXv31vnQergt0Cul+iilPlFKlSilMpVSc5RSbm80vmbNGn72s5+hteb++++nX79+jB49GjB18DUn2q6poKCAY8eOucbWcHrpJTh50kxK8L3vnXt/aGgod955JwDvvfceS5Ysobi4mLi4OPr16yfNKoXoQBISEoiLi6OsrIx9+/ZRXFzM3r172blzJ6WlpfTp04ewsDA6d+6Mp6cnY8eOpVOnTmRlZbnu9MPCArnzTlMVPHt203MPNIezFmDw4MGtOupnXW6JRkqpMGA1ZrS5m4A5wCPAU+44ntORI0e44447KC0tZeLEidxyyy0EBwe7xqLev3//eU/cnZyl+a5du7oyPC8Pfvc7s/3ZZ88ffvZHP/oRISEh7Nu3j/nz5wOm2qaxuSqFEG3Pz8+PQYMGAab6xsvLi+LiYldrm2uuuQattaulXExMDOPGjQPOtXH39/cnLe0A/fpVcvw4vPzyxaXp+PHj7Ny5Ex8fH4YMGeK2ahtwX4n+fsAP+J7WepXWegEmyP9UKeWWOo3KykruuusuMjMzSUpK4rHHHkMpRUpKClFRUSQlJWG32/nss8/q3d/Z4qZHjx6uB7G/+50Zj3z8eKgeMqOWLl26MGXKFABXPX1qaqpU2wjRwSilGDNmDGACfVhYGEFBQaSnpwMwbtw4fH19Xd/90NBQV73+qlWrXB0ug4ICmDnTlOp/+1szH8WFqjkmVs+ePd06FIq7Av0k4L9a65rZsBgT/Me644C/+tWvWLduHcHBwTz//PPY7XZSU1Nd/3HOenpnfVxdzg5VzkCflQV//KPZ9tvf1n9MpRQ//elPXWNT+Pn5MWzYsFotdoQQHcPVV1+NzWZj165dFBUVsWHDBsrLyxkwYABBQUFER0e7gm1gYCAJCQn07t3b9V7n+qSkgwwbVsnp0/CHP1x4epz180OGDHH76LXuCvTJwN6aK7TWR4GS6m2tbvLkyXTt2pVf/epXeHl5MXDgQEJDQ13bnfX027Ztq3c4BGeg79WrFz4+Pjz9NJSWwuTJUN2Dul69e/fm+uuvB2DQoEHExsa23kkJIVpNTEwMycnJOBwOvvzyS1ezxokTJ1JRUVGrjtxmsxEZGeka/dJZ+gYICPDnnntMqX7ePMjObnlaysrKWLNmDQCjRo1y+1wU7gr0YcDZetbnVW+rRSk1SymVoZTKqNvTtLmGDRvG559/Tnx8PD179qRr1661tjubS+3evZvCwsJa27TWrjr6AQMGcOAAvPqqmSx67tzGj+vh4cHs2bOZMmUKM2bMcFvPNiHExQkICHDV069bt47PPvsMpRQTJ05Ea31elWt0dDQjRozAZrPx2WefcfbsWQCCgoKIiTnItdfaKSpq+I6/MevXr6ekpIT4+HgGDRrk9hFs3dk0pL52jKq+9VrrV7TWaVrrtIu5hfH19aVXr14kJSWdty0pKYnQ0FDy8vLYvXt3rW3Z2dmcPn0aPz8/kpOTefJJ0072Bz+APn2aPm5ycjL33HMPsbGxMkuUEB2Ur6+vq+PU0qVLqaioICUlhZCQEIKCgs4bHjg4OJjw8HCGDh1KZWUlq1evdm3z8fFh5syDAPzlL2aC+Zao2dqmLSYdclegzwNC61kfQv0l/VYRGRnZ4IiRNpvN9Z9ct+OU80FsbGwsR4+G869/mekBZ89u3nG9vb2Jj4+nc+fOMuywEB3YyJEj8fPzc/WnmThxIsXFxURHR5/33oCAALy8vFxj5dSsvjE/Dge59VY7FRXNjxVgahCcvehHjRrVJo033BXo91KnLl4p1R0IoE7dfWuy2WyNtl93Vt98+eWXtSYgcA59EB8fz/PPm0x/4AFoySgGCQkJ9d5JCCE6jujoaPr37w+YeDFhwgQqKyvr7cmulKJTp04MHjwYf39/tm/fzttvv+3a5uXlxV13HcLT04xX39zpXr/55hsOHTpEUFAQ48ePb5M+N+46wnLgWqVUzXqMaUApsN5Nx2ySs3nV7t27aw1w5gz0vr79WLnSk8BA+NWvWvbZXl5e0tpGiA4uMDCQlJQUwDSeiIiIQCnVYJVrp06dsNlsPFY9X+gLL7zgqhEwbe4PMHOmnaoqeOKJ5qXBWZofOHDgec8S3cVdgX4BUA68p5SaqJSaBcwG5tVpctmmBg8ejIeHB4cOHeLkyXOThjhb3GzbZtrNPvooyFzdQlhPQEAAkyZN4s477+Txxx+nrKyMsLCwBiczcf4AfPe73+X+++9Ha80TTzzB9u3bsdlseHp6cvvth/H3h/ffhxpzlzTIGehHjhzZZn1u3BLotdZ5wATAA/gI01nqReA37jhecwUEBNC3b1+qqqpYt24dAFVVVa6Hs4cPDyUqCn7603ZMpBDCbby8vIiIiOC+++4jISGhwfp5J39/f3x8fLDb7dx9991MnjyZ8vJyHn74YY4cOUJoaCjFxQf40Y/MKGc//3njk5Pk5+eTnp6OzWbjhhtuaLNnem6rHNJa79Zaj9da+2mtY7TWv9ZaNzwzbxsZPnw4ABs3bkRrzZEjRygpKcFm6wxE8sQTIA1nhLCu8PBwSktLAfNgtGZ/m/pER0dTXFyMUorHH3+ckSNHkp+fz0MPPUReXh5KKX7wg5OEh8Onn8J//9vwZ61YsYLKykqSkpJITnZLl6J6XXYjbznr6Xft2kVpaamrfr6qqj/duzuoHn1YCGFRERER2O12qqqqsNlsTTaJjoyMxG63A2Zs+2effZY+ffpw4sQJHn74YTw9PTl9+iA//7kpyv/iFw1PTvLWW28BJg615Qx0l12gd7a82bNnDwUFBWzdurN6S3+efNJBnaa0QgiLCQgIQGtNSUkJkZGRTbZ6CQ4OrjW8ub+/Py+++CJdu3Zl9+7dzJ49m4KCAn7wgwK6dYOtW6G6cU4t+fn5LF++HKUUU6dOxdM55nkbuOwCfffu3encuTNFRUVkZGSwZIl5EBsR0Yu77mr+7PJCiEuTv78/SilKSkoarZ938vHxITAwsNbQKREREbz00kuEhISwYcMGNm7cyJkzJ1zt6Z94wsxMV9OSJUuoqKigT58+DBw4sBXPqGmXXaBXSrkGOPvkk8/YscM0fp0+PRJPT/d2QxZCtD8PDw+CgoKw2+3NbvUSHR193lwWcXFxPPjgg4BpSXP8+HFuu62S5GQ4eBAWLqz9Gf/6178AGD9+fJPPBVrbZRfowTRrAvjgg904HKb/1l139WrPJAkh2lBkZCT+/v7NHgPeWa9f16RJkwgICGDbtm3s37+fgoIzPPOM2TZnjpmhDiAnJ4c1a9bg4eHBzTff3GBzTne5LAP92LFmpORDh1YDlYSFxdC1a5f2TZQQos2EhYXRrVu3Zg8m5nxgW1hYSEWNOhl/f3/X6LX//e9/OXz4MJMnw+DBZma6hx82zS3//e9/43A4SElJoW/fvq1/Qk24LAN9YGAK4IsZNRl69eomvVqFuIxERkaSmJjY7Pd7eXmRkpJCREQElZWV5OTkuJarr74agNWrV3Ps2DFKS0v405/A19eMgjtnDixatAgw1TZhYecN4Ot2bffYt4M4eRJuuMEbGAyY2WVqziolhLA+pVSLOyvFxMS4pgl1OByUlpZSWlpK165dGTBgANu3b2ft2rWkpqYyZEg8ixebeaZnzz4OfI63tzfXX3893t7ebjijxl1WJfqCArj+evOgpFOnYa71iYmJ7ZL5QohLk4eHB4GBgURFRZGYmOiqvlm2bBkHDx5Ea81NN8GCBQCmrWVCwmh69+7dLum1TKDfuRNmzIDVq8FRT//b8nLz6/r119CrFzz//AjXtrZu6iSEsA5fX1+mTZtGWFgYhw4dIiMjwzVJyb33QnS0aW3z7bf3sWvX+aNkAhw9auaofuop96TRMoH+zTfhjTfg6quhWzf4yU/giy/Mg5CqKrjzTvjkE+jc2XRR/s53RmKz2fD29nYNWyqEEBeiZ8+ernHrV6xYwYkTJwDYv38/J09+hadnIA7Hd5k61Yfq6S/IzTUl/jFjIC4OHn8cXnjBTGHa2ixTR3/33ebhx6JFsH+/mdj7j3+Enj0hMRFWrDBj2CxfDgkJAFH86U9/4ujRozL9nxDiogQFBXHbbbfxzjvvkJ6ezo4dO+jduzdvvvkmAKNHD8HXV7N8OVx7LVx5pYlJlWYsNHx94cYb4fvfB3d0mLVMiT4x0czysm+fKcn/5CcQHQ0HDpgM9fY2w4hWTxkJwK233sqoUaPw9/dvp1QLIaxixIgRDBkyhMrKSlasWEFubq5rbJtx48by5pum9J6ZCUuXmtqG664zk5ZkZ5thE266CdzRxN4yJXonpUwb1sGDzW3QunXw4YfmIez48bXfGxgYSGhoKL6+vu2SViGEdYSFhXHrrbeyadMmVqxYwfjx49m3bx/BwcGMHTuW8HB/PvgA5s41s9fdeit06tQ2aVO6scGT20FaWprOyMhos+MVFBS02eD/Qghry8rKIi0tjczMTHr16sX+/fu5/vrr+ctf/kJsbKxbj62U+lJrnVbfNstU3VwoCfJCiNbSqVMnbrzxRsA8iAUzJHF7Pwe87AO9EEK0Fg8PDx544AFXv5zIyEiGDBnS7DF13EUCvRBCtKIrrrjCNZ7WmDFjiIuLa+cUWfBhrBBCtCcvLy+eeeYZ4uLiuPbaa4mKimrvJEmgF0KI1tavXz8mT56Mn58fgYGB7Z0cCfRCCNHa/Pz86N69O76+vs0eCtmdJNALIYQbJCcnd4ggDxLohRDCLdp6FqnGSKsbIYSwOAn0QghhcRLohRDC4iTQCyGExbkl0Culpiml3lNKZSmltFLqLnccRwghRNPcVaKfAsQDS930+UIIIZrJXc0rp2mtq5RSgcA9bjqGEEKIZnBLiV5rXeWOzxVCCNFy8jBWCCEsrkMEeqXULKVUhlIqIycnp72TI4QQltKsOnqlVAgQ09T7tNZ7LyQRWutXgFfATCV4IZ8hhBCifs19GDsVeLUZ7+sYI/gIIYRwaVbVjdb6b1pr1dTi7sQKIYRouQ5RRy+EEMJ93NKOXinVB+gD+FavSlNKFQE5Wuv17jimEEKI+rmrw9StwG9q/P3D6mU9MM5NxxRCCFEPd3WYmt1APf44dxxPCCFEw6SOXgghLE4CvRBCWJwEeiGEsDgJ9EIIYXES6IUQwuIk0AshhMVJoBdCCIuTQC+EEBYngV4IISxOAr0QQlicBHohhLA4CfRCCGFxEuiFEMLiJNALIYTFSaAXQgiLk0AvhBAWJ4FeCCEsTgK9EEJYnAR6IYSwOAn0QghhcRLohRDC4iTQCyGExUmgF0IIi5NAL4QQFieBXgghLE4CvRBCWJwEeiGEsLhWD/RKqWCl1FNKqS+UUvlKqZNKqSVKqaTWPpYQQoimuaNEHwvcC/wXmALcB8QAm5VS3d1wPCGEEI3wdMNnHgJ6aq1LnSuUUunAUWAm8JQbjimEEKIBrR7otdbF9aw7o5Q6AnRq7eMJIYRoXJs8jFVKRQG9gN1tcTwhhBDntFWrmz8ARcDiNjqeEEKIas2qulFKhWAeqDZKa723nn0fAG4HbtFan27g82cBswBiY2ObkyQhhBDN1Nw6+qnAq814n6r1h1I3Av8HPK61XtLQTlrrV4BXANLS0nQz0ySEEKIZmlV1o7X+m9ZaNbXU3EcpNQJTVbNAa/17dyReCCFE09xSR6+U6gssBVYAD7njGEIIIZqn1ZtXKqU6YQJ8EfASMEQpV2G/QGstLW+EEKINuaPDVB+gW/W/19bZth4Y54ZjCiGEaIA7Okyto85DWSGEEO1HRq8UQgiLk0AvhBAWJ4FeCCEsTgK9EEJYnAR6IYSwOAn0QghhcRLohRDC4iTQCyGExUmgF0IIi5NAL4QQFieBXgghLE4CvRBCWJwEeiGEsDgJ9EIIYXES6IUQwuIk0AshhMVJoBdCCIuTQC+EEBYngV4IISxOAr0QQlicBHohhLA4pbVu7zTUopTKAY5cxEdEArmtlJzLgeRXy0h+tYzkV8tcTH7Faa2j6tvQ4QL9xVJKZWit09o7HZcKya+WkfxqGcmvlnFXfknVjRBCWJwEeiGEsDgrBvpX2jsBlxjJr5aR/GoZya+WcUt+Wa6OXgghRG1WLNELIYSoQQK9EEJY3CUd6JVS05RS7ymlspRSWil1Vwv2HamU2qyUKlVKHVJKPeTGpHYYSql7lVLfKqXKlFJfKqUmNGOf2dX5W3e5ri3S3BaUUn2UUp8opUqUUplKqTlKKY9m7BeilHpdKZWnlMpXSi1SSkW0RZrb04Xkl1IqvoHraHFbpbu9KKV6KaX+qpTappRyKKXWNXO/Vrm+PFuc4o5lChAPLAXuae5OSqlewH+r9/sFMASYp5Qq0Vr/zQ3p7BCUUv8DLABmAxuAGcBSpdRgrfXOJnbPB+oG9j2tnsh2oJQKA1YDu4GbgJ7AHzAFoSea2P1toDfm+qsCngfeB0a7Kbnt7iLzC+BR4LMaf18OHar6AtcDmwDvFuzXOteX1vqSXQBb9WsgoIG7mrnfX4F9gGeNdS8Dx6h+QG3FBfgGeK1m/gE7gDeb2G82kNve6XdjvvwCyAOCa6x7DCipua6e/YZXX3djaqwbUr1uYnufVwfMr/jqvPlue59DO+SZrca//wOsa8Y+rXZ9XdJVN1rrqgvcdRLwnta6ssa6xUA3oN9FJ6wDUkolAEnAO8511fn3b0x+XM4mAf/VWhfUWLcY8APGNrHfKa31p84VWusvgENYO08vNL8uWxcYq1rt+rqkA/2FUEoFAN2BvXU2Oashkts2RW3GeV71nXe4UqreMTJqCFVK5Sql7Eqpr5VS32v9JLabZOrki9b6KKaE2tj1cN5+1fY0sd+l7kLzy+n16nrqLKXUPKWUnzsSaQGtdn1ddoEeCK1+PVtnfV71a1ibpaRtOc/rbJ31zTnv/Zhb81uBW4BM4F0LBfswzs8XMHnTWL5c6H6Xugs973Lgz8DdwARMFeoDmLsBcb5Wu7461MNYpVQIENPU+7TW9f3KtVRDPcUumR5kF5hfdc9PNbC+5v5v1jnuR8DnwJPAe81KbMdX3/mrBta3xn6Xuhaft9Y6C/jfGqvWKaVOAS8rpVK01ltbN4mW0CrXV4cK9MBU4NVmvE81/ZYGna1+Da2zvqESb0fWkvxyltxDMS1oqPE3tOC8tdZaKfUe8LxSykNr7Wjuvh1UHudfDwAhNJ4veUB9VV6hTex3qbvQ/KrPfzANIa4Etl5Moiyo1a6vDlV1o7X+m9ZaNbVc5DGKMa1r6tZxNVSH3WG1ML+c51XfeZ/RWudcSBIuOPEdy17q5ItSqjsQQOPXw3n7VWuobtUqLjS/6qPrvIpzWu366lCBvg0tBybX6eAxDfMD0FR78kuS1vogpknpVOc6pZSt+u/lLfkspZQCJgPbLFCaB3P+1yqlgmqsmwaUAuub2C9aKTXKuUIplQYk0MI8vcRcaH7VZ0r165etkTCLab3rq73bl15k29Q+mAvldkyJ4E/Vf4+t8Z6xQGWddb2AIuBfwFWYB4124J72Pic359d0wIHp1HIV8Abmy9mvifxaDzwEXIMJ8MswnTdubO9zaqV8CQOygFXARGBW9fUxt8779gML66xbARwEvgfcjOmrkN7e59QR8wvTH+MP1Xk1EZhTff29297n1AZ55l8dm6YAG4FdNf72d/f11e4ZcJGZN7s6wNdd1tV4z7jqdePq7DsK+AIoAw4DD7X3+bRRnt1bfUGVA18BE+psPy+/gIXVF1spUAykA5Pa+1xaOV/6AGuqzzELeBrwqPOew8AbddaFAq9j6kwLMIWHyPY+n46YX8D/ABmYZ0QV1dfhHMCnvc+nDfIrvoFYpYF4d19fMkyxEEJY3OVaRy+EEJcNCfRCCGFxEuiFEMLiJNALIYTFSaAXQgiLk0AvhBAWJ4FeCCEsTgK9EEJYnAR6IZqglHqjgUmt09s7bUI0hwR6IZr2O8z8ncMxk6tr4BTwf+2ZKCGaS4ZAEKIZlFJhwD8xA7u9ADyjzZDXQnR4HW3iESE6HKVUJGakxlBghNY6o31TJETLSIleiEZUj9n/GWZo3rFa61PtnCQhWkxK9EI07idAPyBFgry4VMnDWCEa92Ngntb6QHsnRIgLJYFeiAYopVKBWGBxe6dFiIshgV6IhvWufj3RrqkQ4iJJoBeiYSXVr1e0ayqEuEjS6kaIBiilQjDzmpYAz2AmdN6htS5o14QJ0UIS6IVohFKqP/BbYCSmHf1ZIE1rfbAdkyVEi0jVjRCN0Frv0FrfoLUOB8KBQGB0OydLiBaRQC9EMyilPIFrMePcfNbOyRGiRSTQC9E8w4Gngela6/3tnRghWkLq6IUQwuKkRC+EEBYngV4IISxOAr0QQlicBHohhLA4CfRCCGFxEuiFEMLiJNALIYTF/T+EOMpJRdvI6wAAAABJRU5ErkJggg==\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "file_chunk = ensemble_files[0:ensemble_size]\n", - "ens = Ensemble(saved_files = file_chunk,\n", - " architecture_class=Networks.FNNBer,\n", - " device=device,\n", - " p=0.5, init_std_y=init_std_y,\n", - " h=[dim,500,300,100,1])\n", - "\n", - "# Cycle through plot dimensions\n", - "for plot_dim in range(0,dim):\n", - " f = plt.figure()\n", - " ax = plt.gca()\n", - " print('dim=%i' % (plot_dim,)) \n", - " plot_ens_uncertainty(ens, plot_dim, ax)\n", - " plt.xlabel(r'$\\zeta$')\n", - " plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 54, - "id": "f40d8346", - "metadata": {}, - "outputs": [], - "source": [ - "def ens_coverage_computation(ens, seed):\n", - " set_seeds(seed)\n", - " coverage_x = torch.tensor(np.random.uniform(low=-1.0,high=1.0, size=(1000,5)), dtype=torch.float32)\n", - " coverage_y = func(coverage_x)\n", - " number_of_repeated_draws = 100#0\n", - " ens_inside_list = []\n", - " ens_mse_list = []\n", - " for _ in tqdm(range(number_of_repeated_draws)):\n", - " noisy_coverage_x = coverage_x + std_x * torch.randn_like(coverage_x)\n", - " noisy_coverage_y = coverage_y + std_y * torch.randn_like(coverage_y)\n", - " mean, std = [t.cpu().detach().numpy()\n", - " for t in ens.mean_and_std(noisy_coverage_x)]\n", - " ens_inside_list.append(inside_explicit_uncertainties(mean, std, coverage_y.cpu().detach().numpy()))\n", - " ens_mse_list.append(np.mean((mean.flatten()-noisy_coverage_y.cpu().detach().numpy().flatten())**2))\n", - " ens_inside = np.mean(np.stack(ens_inside_list), axis=0)\n", - " mse = np.mean(np.array(ens_mse_list))\n", - " return coverage_x, coverage_y, ens_inside, np.sqrt(mse)" - ] - }, - { - "cell_type": "code", - "execution_count": 55, - "id": "e5927fa2", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "4251863ff2c64b9c8a7e0554efdff7f6", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/20 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "a0221bc9020946daafa18196bc73fe2f", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "cdd2922a17a54ef4bdd590cbb673264f", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "d533c44e9c724a2d8eea55fe46d3166e", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "03f7f38aeab44ebc8ce19a884fbc4558", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "f4d35621093746ab98c48d3bb92f0444", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "686fcee775714638bbf103479cd85bd2", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "ec7c4bda94e64fccaf5fe844cfc8feb1", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "33323e358c2d49ec8401ef52a30cbbaf", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "bc7bce2cad2f44ebbd4eaf84fed2337b", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "eb429f62f3674df8ba0b823c38220d13", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "64e9fb103f7f43f29251bebf70e149ba", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "724d62b92fff430683cc64354965d18c", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "f4a48cdd88b443239bad77cb2de94bf8", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "88e6b0ba1e554ca8b8aac744591456ea", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "c3f2a922fe504934822e97fb999d7b2c", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "b9a9e1f21c394f74a79efaf6b5d92ed2", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "7cffd96f28dc45eba9b27e6425a61ec3", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "a38b67390e9f4e7c8b28ba0342270c34", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "0a0c56171ccd4695b3b3f21109c589ff", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "fcd05496be95407e9ef1bfb35ba63579", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/100 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "ens_inside_collection = []\n", - "rmse_collection = []\n", - "for i in tqdm(range(number_of_ensembles)):\n", - " file_chunk = ensemble_files[i*ensemble_size: (i+1)*ensemble_size]\n", - " ens = Ensemble(saved_files = file_chunk,\n", - " architecture_class=Networks.FNNBer,\n", - " device=device,\n", - " p=0.5, init_std_y=init_std_y,h=[dim, 500, 300, 100, 1] )\n", - " _,_, ens_inside, rmse = ens_coverage_computation(ens, seed=i*ensemble_size)\n", - " ens_inside_collection.append(ens_inside)\n", - " rmse_collection.append(rmse)\n", - "ens_inside_collection = np.stack(ens_inside_collection)\n", - "rmse_collection = np.stack(rmse_collection)" - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "id": "b474e3c4", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "RMSE\n", - "===========\n", - "Average 0.700719, Error 0.005241\n", - "\n", - "\n", - "Coverage\n", - "===========\n", - "Average 0.045273, Error 0.010158\n" - ] - } - ], - "source": [ - "# Results for Table 1 in preprint\n", - "print('RMSE\\n===========')\n", - "print('Average %.6f, Error %.6f' %( np.mean(rmse_collection),\n", - " np.std(rmse_collection)/np.sqrt(len(rmse_collection))))\n", - "print(\"\\n\")\n", - "\n", - "print('Coverage\\n===========')\n", - "print('Average %.6f, Error %.6f' %(ens_inside_collection.mean(), \n", - " ens_inside_collection.mean(axis=1).std()/np.sqrt(ens_inside_collection.shape[0])))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "1210bba7", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.5" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Experiments/old_scripts/evaluate_wine.ipynb b/Experiments/old_scripts/evaluate_wine.ipynb deleted file mode 100644 index 71aa05b..0000000 --- a/Experiments/old_scripts/evaluate_wine.ipynb +++ /dev/null @@ -1,672 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "rocky-imaging", - "metadata": {}, - "source": [ - "# Results for the wine quality dataset\n", - "\n", - "\n", - "\n", - "This notebook produces the results of EiV and non-EiV models for \n", - "the wine quality dataset (taken from https://archive.ics.uci.edu/ml/datasets/wine+quality) as presented in the preprint \"Errors-in-Variables for deep learning: rethinking aleatoric uncertainty\" submitted to NeurIPS 2021.\n", - "\n", - "\n", - "This notebook produces Figures 5a and 6 of the preprint. \n", - "\n", - "How to use this notebook: \n", - "\n", - "+ This notebook assumes that the corresponding trained networks exist in `saved_networks`. To achieve this, either run the training scripts described in the `README` or load the pre-trained networks from the link in the `README` into the `saved_networks` folder. \n", - "\n", - "+ To run this notebook, click \"Run\" in the menu above. \n", - "\n", - "+ To run this notebook with a GPU, set `use_gpu` to `True` in cell [2] (default is `False`)\n", - "\n", - "+ Plots will be displayed inline and, in addition, saved to `saved_images`\n" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "id": "attractive-punch", - "metadata": {}, - "outputs": [], - "source": [ - "import random\n", - "import os\n", - "\n", - "import numpy as np\n", - "import torch\n", - "import torch.nn as nn\n", - "from torch.utils.data import DataLoader, TensorDataset\n", - "import matplotlib.pyplot as plt\n", - "import matplotlib\n", - "from tqdm.notebook import tqdm\n", - "\n", - "from EIVArchitectures import Networks\n", - "from generate_wine_data import test_x, test_y, train_x, train_y\n", - "from EIVTrainingRoutines import train_and_store\n", - "\n", - "%matplotlib inline" - ] - }, - { - "cell_type": "markdown", - "id": "92190849", - "metadata": {}, - "source": [ - "## Fix relevant hyperparameters" - ] - }, - { - "cell_type": "markdown", - "id": "7f0337bf", - "metadata": {}, - "source": [ - "### Values that can be changed" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "id": "2a8a4fbc", - "metadata": {}, - "outputs": [], - "source": [ - "# the Deming factor to use for the scatter plots (Figure 5)\n", - "# Choose one of 0.01,0.1, 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6 and 2.0\n", - "deming = 1.0\n", - "\n", - "# Switch to True if GPU should be used\n", - "use_gpu = False\n", - "\n", - "# Uncertainty coverage factor (1.96 taken from the standard normal)\n", - "k=1.96" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "id": "copyrighted-taxation", - "metadata": {}, - "outputs": [], - "source": [ - "# graphics\n", - "fontsize=15\n", - "matplotlib.rcParams.update({'font.size': fontsize})" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "id": "3f5515e7", - "metadata": {}, - "outputs": [], - "source": [ - "# Set device\n", - "if not use_gpu:\n", - " device = torch.device('cpu')\n", - "else:\n", - " device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')" - ] - }, - { - "cell_type": "markdown", - "id": "d6ee9d43", - "metadata": {}, - "source": [ - "### Values to keep fixed\n", - "The following values assume the settings from the training scripts. To change the following values, these scripts must be adapted and rerun." - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "id": "564904dc", - "metadata": {}, - "outputs": [], - "source": [ - "from train_eiv_wine import dim, init_std_y_list, precision_prior_zeta, deming_factor_list, seed_list\n", - "init_std_y = init_std_y_list[0]" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "id": "auburn-immune", - "metadata": {}, - "outputs": [], - "source": [ - "# function to fix seeds (for reproducability)\n", - "def set_seeds(seed):\n", - " torch.backends.cudnn.benchmark = False \n", - " random.seed(seed)\n", - " np.random.seed(seed)\n", - " torch.manual_seed(seed)" - ] - }, - { - "cell_type": "markdown", - "id": "extraordinary-suspension", - "metadata": {}, - "source": [ - "## Comparison EiV and non-EiV for one deming factor\n", - "Produces Figure 6 of the preprint" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "id": "daily-draft", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "FNNEIV(\n", - " (main): Sequential(\n", - " (0): EIVInput()\n", - " (1): Linear(in_features=11, out_features=200, bias=True)\n", - " (2): LeakyReLU(negative_slope=0.01)\n", - " (3): EIVDropout()\n", - " (4): Linear(in_features=200, out_features=100, bias=True)\n", - " (5): LeakyReLU(negative_slope=0.01)\n", - " (6): EIVDropout()\n", - " (7): Linear(in_features=100, out_features=50, bias=True)\n", - " (8): LeakyReLU(negative_slope=0.01)\n", - " (9): EIVDropout()\n", - " (10): Linear(in_features=50, out_features=1, bias=True)\n", - " )\n", - ")" - ] - }, - "execution_count": 37, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Load EiV model\n", - "net = Networks.FNNEIV(p=0.5, init_std_y=init_std_y,\n", - " precision_prior_zeta=precision_prior_zeta, deming=deming,\n", - " h=[dim, 200,100,50,1])\n", - "saved_file = os.path.join('saved_networks', \n", - " 'eiv_wine_init_std_y_%.3f_deming_factor_%.3f_seed_%i.pkl'\n", - " % (init_std_y, deming, 0))\n", - "train_loss, test_loss, stored_std_x, stored_std_y, state_dict, extra_list = train_and_store.open_stored_training(saved_file, \n", - " net=net, extra_keys=['rmse'], device=device)\n", - "rmse = extra_list[0]\n", - "net.to(device)" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "id": "swiss-paris", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "FNNBer(\n", - " (main): Sequential(\n", - " (0): Linear(in_features=11, out_features=200, bias=True)\n", - " (1): LeakyReLU(negative_slope=0.01)\n", - " (2): Dropout(p=0.5, inplace=False)\n", - " (3): Linear(in_features=200, out_features=100, bias=True)\n", - " (4): LeakyReLU(negative_slope=0.01)\n", - " (5): Dropout(p=0.5, inplace=False)\n", - " (6): Linear(in_features=100, out_features=50, bias=True)\n", - " (7): LeakyReLU(negative_slope=0.01)\n", - " (8): Dropout(p=0.5, inplace=False)\n", - " (9): Linear(in_features=50, out_features=1, bias=True)\n", - " )\n", - ")" - ] - }, - "execution_count": 38, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Load non-EiV model\n", - "ber_net = Networks.FNNBer(p=0.5, init_std_y=init_std_y,\n", - " h=[dim, 200,100,50,1])\n", - "ber_saved_file = os.path.join('saved_networks', \n", - " 'noneiv_wine_init_std_y_%.3f_seed_%i.pkl'\n", - " % (init_std_y, 0))\n", - "ber_train_loss, ber_test_loss, ber_stored_std_x,\\\n", - " ber_stored_std_y, ber_state_dict, ber_extra_list\\\n", - " = train_and_store.open_stored_training(ber_saved_file, net=ber_net, extra_keys=['rmse'], device=device)\n", - "ber_rmse = ber_extra_list[0]\n", - "ber_net.to(device)" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "id": "91a110fd", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "std_y for EiV: 0.593\n", - "std_y for non-EiV: 0.587\n" - ] - } - ], - "source": [ - "# print std_y for EiV and non-EiV\n", - "print('std_y for EiV: %.3f' % (stored_std_y[-1]))\n", - "print('std_y for non-EiV: %.3f' % (ber_stored_std_y[-1]))" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "id": "brave-fiction", - "metadata": {}, - "outputs": [], - "source": [ - "# Collect predictions for test data\n", - "\n", - "set_seeds(0)\n", - "\n", - "# Save network state\n", - "ber_net_train_state = ber_net.training\n", - "net_train_state = net.training\n", - "net_noise_state = net.noise_is_on\n", - "\n", - "# Switch on Dropout and input noise\n", - "ber_net.train()\n", - "net.train()\n", - "net.noise_on()\n", - "\n", - "# Collect predictions and compute errors and uncertainties\n", - "pred, _ = [t.cpu().detach().numpy()\n", - " for t in net.predict(test_x.to(device), number_of_draws=1000,\n", - " take_average_of_prediction=False)]\n", - "ber_pred, _ = [t.cpu().detach().numpy()\n", - " for t in ber_net.predict(test_x.to(device), number_of_draws=1000,\n", - " take_average_of_prediction=False)]\n", - "val_y = test_y.detach().cpu().numpy()\n", - "err = np.mean(pred, axis=1).flatten()-val_y\n", - "unc = np.std(pred, axis=1).flatten()\n", - "ber_err = np.mean(ber_pred, axis=1).flatten()-val_y\n", - "ber_unc = np.std(ber_pred, axis=1).flatten()\n", - "\n", - "# Restore networks\n", - "if net_train_state:\n", - " net.train()\n", - "else:\n", - " net.eval()\n", - "if net_noise_state:\n", - " net.noise_on()\n", - "else:\n", - " net.noise_off()\n", - "if ber_net_train_state:\n", - " ber_net.train()\n", - "else:\n", - " ber_net.eval()" - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "id": "descending-newark", - "metadata": {}, - "outputs": [], - "source": [ - "def diagonal(x_array, eps=0.1):\n", - " min_x = np.min(x_array)\n", - " max_x = np.max(x_array)\n", - " x = np.linspace(min_x-eps, max_x+eps)\n", - " return x,x" - ] - }, - { - "cell_type": "markdown", - "id": "e770c860", - "metadata": {}, - "source": [ - "Figure 6 in the preprint" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "id": "mobile-consumption", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# plot and save figures\n", - "plt.figure(1)\n", - "plt.clf()\n", - "plt.scatter(ber_unc, unc, color='r')\n", - "plt.plot(*diagonal(unc), color='k', linestyle='dashed')\n", - "plt.xlabel('uncertainty - non-EiV')\n", - "plt.ylabel('uncertainty - EiV')\n", - "plt.axis('square')\n", - "plt.gca().set_aspect('equal','box')\n", - "plt.tight_layout()\n", - "plt.savefig(os.path.join('saved_images', 'wine_unc_scatter.pdf'))\n", - "\n", - "plt.figure(2)\n", - "plt.clf()\n", - "plt.scatter(ber_err, err, color='r')\n", - "plt.plot(*diagonal(ber_err), color='k', linestyle='dashed')\n", - "plt.xlabel('error - non-EiV')\n", - "plt.ylabel('error - EiV')\n", - "plt.axis('square')\n", - "plt.gca().set_aspect('equal','box')\n", - "plt.tight_layout()\n", - "plt.savefig(os.path.join('saved_images', 'wine_error_scatter.pdf'))" - ] - }, - { - "cell_type": "code", - "execution_count": 83, - "id": "4c5e40a4", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.95228493\n", - "1.0843716\n", - "1.6982132\n", - "2.5368009\n" - ] - } - ], - "source": [ - "last_std_y = stored_std_y[-1].item()\n", - "ber_last_std_y = ber_stored_std_y[-1].item()\n", - "print(np.sqrt(np.mean(np.abs(err)**2/(unc**2 + last_std_y**2))))\n", - "print(np.sqrt(np.mean(np.abs(ber_err)**2/(ber_unc**2 + ber_last_std_y**2))))\n", - "print(np.sqrt(np.mean(np.abs(err)**2/np.abs(unc)**2)))\n", - "print(np.sqrt(np.mean(np.abs(ber_err)**2/np.abs(ber_unc)**2)))\n", - "#print(np.corrcoef(np.abs(err),unc)[0,1])\n", - "# print(np.corrcoef(np.abs(ber_err),ber_unc)[0,1])\n" - ] - }, - { - "cell_type": "markdown", - "id": "statewide-aurora", - "metadata": {}, - "source": [ - "## Deming vs RMSE\n", - "Produces Figure 5a of the preprint" - ] - }, - { - "cell_type": "code", - "execution_count": 84, - "id": "smart-polls", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "b23ed94b293e4a7da02cb3ab583524a1", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/11 [00:00<?, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Cycle through seeds and deming factors\n", - "# and collect the RMSE\n", - "\n", - "set_seeds(0)\n", - "\n", - "# This deming factor will be considered for error/unc quotient and coverage\n", - "deming_for_quotient = 1.0\n", - "\n", - "rmse_list = []\n", - "\n", - "# quotient error vs uncertainty/uncertainty+noise\n", - "unc_q = []\n", - "full_q = []\n", - "ber_unc_q = []\n", - "ber_full_q = []\n", - "ber_rmse_fixed_seed_list = []\n", - "\n", - "# coverage of noisy labels by uncertainty/uncertainty+noise\n", - "unc_cov = []\n", - "full_cov = []\n", - "ber_unc_cov = []\n", - "ber_full_cov = []\n", - "def compute_coverage(errors, uncertainties, k=1.96):\n", - " return np.mean(np.abs(errors) <= k*uncertainties)\n", - "\n", - "\n", - "for i, deming_scale_test in enumerate(tqdm(deming_factor_list)):\n", - " rmse_fixed_seed_list = []\n", - " for seed in seed_list:\n", - " net = Networks.FNNEIV(p=0.5, init_std_y=init_std_y, \n", - " precision_prior_zeta=precision_prior_zeta,\n", - " h=[dim, 200,100,50,1],\n", - " deming=deming_scale_test)\n", - " saved_file = os.path.join('saved_networks', \n", - " 'eiv_wine_init_std_y_%.3f_deming_factor_%.3f_seed_%i.pkl'\n", - " % (init_std_y, deming_scale_test, seed))\n", - " net.to(device)\n", - " train_and_store.open_stored_training(saved_file, net=net, device=device)\n", - " net_train_state = net.training\n", - " net_noise_state = net.noise_is_on\n", - " net.train()\n", - " net.noise_on()\n", - " pred, _ = [t.cpu().detach().numpy()\n", - " for t in net.predict(test_x.to(device), number_of_draws=300,\n", - " take_average_of_prediction=False)]\n", - " val_y = test_y.detach().cpu().numpy()\n", - " if deming_scale_test == deming_for_quotient:\n", - " err = np.abs(np.mean(pred, axis=1).flatten()-val_y.flatten())\n", - " unc = np.std(pred, axis=1).flatten()\n", - " last_std_y = stored_std_y[-1].item()\n", - " unc_q.append(np.sqrt(np.mean(err**2/unc**2)))\n", - " full_q.append(np.sqrt(np.mean(err**2/(unc**2+last_std_y**2))))\n", - " unc_cov.append(compute_coverage(err, unc))\n", - " full_cov.append(compute_coverage(err, np.sqrt(unc**2 + last_std_y**2)))\n", - " r = np.sqrt(np.mean((np.mean(pred, axis=1).flatten()-val_y.flatten())**2))\n", - " rmse_fixed_seed_list.append(r)\n", - " if i==0:\n", - " # non-EiV\n", - " ber_net = Networks.FNNBer(p=0.5, init_std_y=init_std_y, h=[dim, 200,100,50,1])\n", - " ber_saved_file = os.path.join('saved_networks',\n", - " 'noneiv_wine_init_std_y_%.3f_seed_%i.pkl' % (init_std_y, seed))\n", - " ber_net.to(device)\n", - " train_and_store.open_stored_training(ber_saved_file, net=ber_net, device=device)\n", - " ber_net_train_state = ber_net.training\n", - " ber_pred, _ = [t.cpu().detach().numpy()\n", - " for t in ber_net.predict(test_x.to(device), number_of_draws=300,\n", - " take_average_of_prediction=False)]\n", - " ber_r = np.sqrt(np.mean((np.mean(ber_pred, axis=1).flatten()-val_y.flatten())**2))\n", - " ber_err = np.abs(np.mean(ber_pred, axis=1).flatten()-val_y.flatten())\n", - " ber_unc = np.std(ber_pred, axis=1).flatten()\n", - " ber_last_std_y = ber_stored_std_y[-1].item()\n", - " ber_rmse_fixed_seed_list.append(ber_r)\n", - " ber_unc_q.append(np.sqrt(np.mean(ber_err**2/ber_unc**2)))\n", - " ber_full_q.append(np.sqrt(np.mean(ber_err**2/(ber_unc**2+ber_last_std_y**2))))\n", - " ber_unc_cov.append(compute_coverage(ber_err, ber_unc))\n", - " ber_full_cov.append(compute_coverage(ber_err, np.sqrt(ber_unc**2 + ber_last_std_y**2)))\n", - " rmse_list.append(np.array(rmse_fixed_seed_list))\n", - "\n", - "# convert list to an array \n", - "rmse_list = np.stack(rmse_list, axis=0)\n", - "ber_rmse_list = np.stack(ber_rmse_fixed_seed_list, axis=0)\n", - "\n", - "# restore settings of last loaded networks\n", - "if net_train_state:\n", - " net.train()\n", - "else:\n", - " net.eval()\n", - "if net_noise_state:\n", - " net.noise_on()\n", - "else:\n", - " net.noise_off()\n", - "if ber_net_train_state:\n", - " ber_net.train()\n", - "else:\n", - " ber_net.eval()" - ] - }, - { - "cell_type": "code", - "execution_count": 85, - "id": "amino-expression", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# plot and save figure\n", - "plt.figure()\n", - "plt.plot(deming_factor_list, np.mean(rmse_list,axis=1), linewidth=2, color='orange')\n", - "plt.errorbar(deming_factor_list, np.mean(rmse_list,axis=1), np.std(rmse_list,axis=1)/np.sqrt(rmse_list.shape[1]), color='r', linewidth=3,alpha=0.9,ecolor='r',fmt='o',linestyle='None')\n", - "plt.fill_between(deming_factor_list, np.mean(ber_rmse_list)+ np.std(ber_rmse_list)/np.sqrt(len(ber_rmse_list)), np.mean(ber_rmse_list)- np.std(ber_rmse_list)/np.sqrt(len(ber_rmse_list)), color='k', alpha=0.4)\n", - "plt.xlabel(r'$\\delta$')\n", - "plt.ylabel('RMSE')\n", - "plt.tight_layout()\n", - "plt.savefig(os.path.join('saved_images','wine_deming_rmse.pdf'))" - ] - }, - { - "cell_type": "code", - "execution_count": 88, - "id": "d502a44f", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "EiV: 1.716 (0.009)\n", - "non-EiV: 2.545 (0.026)\n", - "EiV: 0.960 (0.009)\n", - "non-EiV: 1.085 (0.002)\n" - ] - } - ], - "source": [ - "# Error vs. Uncertainty\n", - "print('EiV: %.3f (%.3f)' % (np.mean(unc_q), np.std(unc_q)/np.sqrt(len(unc_q))))\n", - "print('non-EiV: %.3f (%.3f)' % (np.mean(ber_unc_q), np.std(ber_unc_q)/np.sqrt(len(ber_unc_q))))\n", - "print('EiV: %.3f (%.3f)' % (np.mean(full_q), np.std(unc_q)/np.sqrt(len(full_q))))\n", - "print('non-EiV: %.3f (%.3f)' % (np.mean(ber_full_q), np.std(ber_full_q)/np.sqrt(len(ber_full_q))))" - ] - }, - { - "cell_type": "code", - "execution_count": 89, - "id": "df5e5040", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Uncertainty only \n", - "--------\n", - "EiV: 0.842 (0.002)\n", - "non-EiV: 0.674 (0.003)\n", - "Uncertainty + Noise \n", - "--------\n", - "EiV: 0.958 (0.002)\n", - "non-EiV: 0.931 (0.001)\n" - ] - } - ], - "source": [ - "# Coverage\n", - "print('Uncertainty only \\n--------')\n", - "print('EiV: %.3f (%.3f)' % (np.mean(unc_cov), np.std(unc_cov)/np.sqrt(len(unc_cov))))\n", - "print('non-EiV: %.3f (%.3f)' % (np.mean(ber_unc_cov), np.std(ber_unc_cov)/np.sqrt(len(ber_unc_cov))))\n", - "print('Uncertainty + Noise \\n--------')\n", - "print('EiV: %.3f (%.3f)' % (np.mean(full_cov), np.std(unc_cov)/np.sqrt(len(full_cov))))\n", - "print('non-EiV: %.3f (%.3f)' % (np.mean(ber_full_cov), np.std(ber_full_cov)/np.sqrt(len(ber_full_cov))))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "607b92ac", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "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.8.5" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Experiments/old_scripts/generate_housing_data.py b/Experiments/old_scripts/generate_housing_data.py deleted file mode 100644 index eecf0d3..0000000 --- a/Experiments/old_scripts/generate_housing_data.py +++ /dev/null @@ -1,42 +0,0 @@ -import torch -import numpy as np -from torch.utils.data import TensorDataset -from sklearn.datasets import load_boston - -## Load data in a numpy array -# load data in bunch object -data_bunch = load_boston() -# get input data -x = data_bunch['data'] -# cut out 'B' column -cut_x = np.concatenate((x[...,0:-2],x[...,-1][...,None]), axis=1) -x = cut_x -# get output data -y = data_bunch['target'] - - -# normalize data -y_mean = np.mean(y) -y_std = np.std(y) -y = (y-y_mean)/y_std -x_mean = np.mean(x, axis=0, keepdims=True) -x_std = np.std(x, axis=0, keepdims=True) -x = (x-x_mean)/x_std - -# randomly split for training and testing -length_data = y.shape[0] -test_percentage = 0.2 -length_test_data = int(length_data * test_percentage) -full_indices = np.arange(0, length_data) -np.random.seed(0) -test_indices = np.random.choice(full_indices, - size=length_test_data, replace=False) -train_indices = np.setdiff1d(full_indices, test_indices) -train_x, train_y = [torch.tensor(t[train_indices,...], - dtype=torch.float32) for t in (x,y)] -test_x, test_y = [torch.tensor(t[test_indices,...], - dtype=torch.float32) for t in (x,y)] - -# create datasets -train_data = TensorDataset(train_x, train_y.view((-1,1))) -test_data = TensorDataset(test_x, test_y.view((-1,1))) diff --git a/Experiments/old_scripts/generate_mexican_data.py b/Experiments/old_scripts/generate_mexican_data.py deleted file mode 100644 index 469bd06..0000000 --- a/Experiments/old_scripts/generate_mexican_data.py +++ /dev/null @@ -1,88 +0,0 @@ -import os -import torch -import numpy as np -import csv -from scipy import signal - -# function to model -a=0.25 -func = lambda x: (1 - (x/a)**2) * np.exp(-0.5*(x/a)**2) -# standard deviation of input and out output noise -n_train = 300 - -def normalize(*args,tuple_for_normalization): - """ - returns a list of normalized args, - where each arg is expected to be a tuple. - The mean and std will be taken from `tuple_for_normalization` and - will be returned as last arguments - """ - return_list = [] - assert len(tuple_for_normalization) == 2 - mean =[np.mean(a) for a in tuple_for_normalization] - std = [np.std(a) for a in tuple_for_normalization] - for xy in args: - x,y = xy - assert len(xy) == 2 - normalized_x = (x-mean[0])/std[0] - normalized_y = (y-mean[1])/std[1] - return_list.append((normalized_x, normalized_y)) - return return_list, (mean, std) - -def get_data(std_x, std_y, seed = 1, n_train=n_train, - n_test=200, n_val=200, post_normalize=False): - """ - Returns Mexican hat data in 1 dimension, perturbed - by input and output noise with standard deviation `std_x` and `std_y`. - :param std_x: A positive float - :param std_y: A positive float - :param seed: The seed for random number generation, defaults to 1. - :param n_train: Number of training points, defaults to 1e4 - :param n_test: Number of test points, defaults to 1e2 - :param n_val: Number of validation points, defaults to 1e2 - :param n_offset: Number of points for scaling purposes, defaults to 5e4. - :returns: train_data_pure, train_data, - :post_normalize: If True the data will be "normlalized" - by the mean and std of the noisy train before returned - test_data_pure, test_data, val_data_pure, val_data, func - """ - # Fix a seed - np.random.seed(seed) - def gen_data(zeta, std_x=std_x, std_y=std_y, func=func): - print(' -- Generating Mexican hat data with std_x = %.2f and std_y = %.2f --' % (std_x, std_y,)) - true_y = func(zeta) - x = zeta + std_x * np.random.normal(size=zeta.shape) - y = true_y + std_y * np.random.normal(size=zeta.shape) - return (zeta, true_y), (x,y) - # Generate zeta - train_zeta = np.random.uniform(low=-1.0, high=1.0, size=n_train) - test_zeta = np.random.uniform(low=-1.0, high=1.0, size=n_test) - val_zeta = np.random.uniform(low=-1.0, high=1.0, size=n_val) - # Generate data - train_data_pure, train_data = gen_data(train_zeta) - test_data_pure, test_data = gen_data(test_zeta) - val_data_pure, val_data = gen_data(val_zeta) - if post_normalize: - data_list, (mean, std) = normalize(train_data_pure, train_data, - test_data_pure, test_data, - val_data_pure, val_data, - tuple_for_normalization=train_data) - else: - data_list = [train_data_pure, train_data, - test_data_pure, test_data, - val_data_pure, val_data] - mean=[0, 0]; std= [1, 1] - train_data_pure, train_data,\ - test_data_pure,test_data,\ - val_data_pure,val_data = \ - [(torch.tensor(a[0], dtype=torch.float32)[:,None], - torch.tensor(a[1], dtype=torch.float32)[:,None]) - for a in data_list] - def normalized_func(x): - normalized_x = (x-mean[0])/std[0] - y = func(x) - normalized_y = (y-mean[1])/std[1] - return normalized_x, normalized_y - return train_data_pure, train_data,\ - test_data_pure,test_data,\ - val_data_pure,val_data,(normalized_func, mean, std) diff --git a/Experiments/old_scripts/generate_multinomial_data.py b/Experiments/old_scripts/generate_multinomial_data.py deleted file mode 100644 index d1b482a..0000000 --- a/Experiments/old_scripts/generate_multinomial_data.py +++ /dev/null @@ -1,61 +0,0 @@ -import numpy as np -import torch -from get_multinomial_function import draw_polynomial - -def get_data(std_x, std_y, dim=10, degree=5, - seed = 1, n_train=10000, - n_test=200, n_val=200, n_offset=50000): - """ - Returns modulated multinomial data in dimension `dim`, perturbed - by input and output noise with standard deviation `std_x` and `std_y`. - :param std_x: A positive float - :param std_y: A positive float - :param dim: The input dimension, default to 10. - :param degree: The degree of the multinomial, defaults to 5. - :param seed: The seed for random number generation, defaults to 1. - :param n_train: Number of training points, defaults to 1e4 - :param n_test: Number of test points, defaults to 1e2 - :param n_val: Number of validation points, defaults to 1e2 - :param n_offset: Number of points for scaling purposes, defaults to 5e4. - :returns: train_data_pure, train_data, - test_data_pure, test_data, val_data_pure, val_data, func - """ - # draw the polynomial to use - pol = draw_polynomial(dim=dim, degree=degree, number_of_terms=dim*2, seed=seed) - # modulated polynomial, will be scaled below by offset - def unscaled_func(x, freq=5): - return pol(x) * torch.exp(-torch.sin(freq*torch.sum(x**2, dim=1))) - # compute offset to scale function - np.random.seed(seed) - offset_input = torch.tensor(np.random.uniform(low=-1.0, - high=1.0, size=(n_offset, dim)), dtype=torch.float32) - offset_values = unscaled_func(offset_input) - offset_mean = torch.mean(offset_values).item() - offset_std = torch.std(offset_values).item() - # actual function that will be used. - def func(x): - return (unscaled_func(x)-offset_mean)/offset_std - - # map to generate arrays using func - def gen_data(zeta, std_x, std_y): - true_y = func(zeta)[...,None] - x = zeta + std_x * torch.randn_like(zeta) - y = true_y + std_y * torch.randn_like(true_y) - return (zeta, true_y), (x,y) - - # Generate zeta - np.random.seed(seed) - train_zeta = torch.tensor(np.random.uniform(low=-1.0, - high=1.0, size=(n_train, dim)), dtype=torch.float32) - test_zeta = torch.tensor(np.random.uniform(low=-1.0, - high=1.0, size=(n_test, dim)), dtype=torch.float32) - val_zeta = torch.tensor(np.random.uniform(low=-1.0, - high=1.0, size=(n_val, dim)), dtype=torch.float32) - # Generate data - train_data_pure, train_data = gen_data(zeta=train_zeta, std_x=std_x, std_y=std_y) - test_data_pure, test_data = gen_data(zeta=test_zeta, std_x=std_x, std_y=std_y) - val_data_pure, val_data = gen_data(val_zeta, std_x=std_x, std_y=std_y) - return train_data_pure, train_data,\ - test_data_pure, test_data,\ - val_data_pure, val_data, func - diff --git a/Experiments/old_scripts/generate_wine_data.py b/Experiments/old_scripts/generate_wine_data.py deleted file mode 100644 index 9b93524..0000000 --- a/Experiments/old_scripts/generate_wine_data.py +++ /dev/null @@ -1,41 +0,0 @@ -import torch -from torch.utils.data import TensorDataset -import pandas as pd -import numpy as np -from data_frameworks import CSVData - -data_name='winequality-red.csv' - -wine_data = np.array(pd.read_csv(data_name, delimiter=',', header=0)) -x = wine_data[:,:-1] -# log transform to account for log normal distribution -log_indices = [0, 1, 3, 4, 5, 6, 9, 10] -for i in log_indices: - x[:,i] = np.log(x[:,i]) -y = wine_data[:,-1] - -# normalize data -y_mean = np.mean(y) -y_std = np.std(y) -y = (y-y_mean)/y_std -x_mean = np.mean(x, axis=0, keepdims=True) -x_std = np.std(x, axis=0, keepdims=True) -x = (x-x_mean)/x_std - -# randomly split for training and testing -length_data = y.shape[0] -test_percentage = 0.2 -length_test_data = int(length_data * test_percentage) -full_indices = np.arange(0, length_data) -np.random.seed(0) -test_indices = np.random.choice(full_indices, - size=length_test_data, replace=False) -train_indices = np.setdiff1d(full_indices, test_indices) -train_x, train_y = [torch.tensor(t[train_indices,...], - dtype=torch.float32) for t in (x,y)] -test_x, test_y = [torch.tensor(t[test_indices,...], - dtype=torch.float32) for t in (x,y)] - -# create datasets -train_data = TensorDataset(train_x, train_y.view((-1,1))) -test_data = TensorDataset(test_x, test_y.view((-1,1))) diff --git a/Experiments/old_scripts/get_multinomial_function.py b/Experiments/old_scripts/get_multinomial_function.py deleted file mode 100644 index c18dc9b..0000000 --- a/Experiments/old_scripts/get_multinomial_function.py +++ /dev/null @@ -1,76 +0,0 @@ -import numpy as np -import torch - -def partition(n, max_number_of_terms = np.inf): - assert max_number_of_terms > 0 - list_of_numbers = [] - while n>0: - if len(list_of_numbers) >= max_number_of_terms -1 and n>0: - list_of_numbers.append(n) - n = 0 - else: - k = np.random.randint(1,n+1) - n -= k - list_of_numbers.append(k) - return list_of_numbers - - -class Polynomial(): - def __init__(self, terms, coefficients): - self.terms = terms - self.coefficients = coefficients - - def degree(self): - return max([sum(term).item() - for term in self.terms]) - - def __call__(self, x): - assert len(x.shape) == 2 and x.shape[1] == self.terms[0].shape[0] - result = 0 - for coefficient, term in zip(self.coefficients, self.terms): - term = term[None,:] - result += coefficient * torch.prod(x**term, dim=1) - return result - - -def draw_polynomial_term(dim, degree): - term = torch.zeros((dim,)) - # - powers = torch.tensor(partition(degree, max_number_of_terms=dim), dtype=torch.float32) - variables = torch.tensor( - np.random.choice(dim, size=len(powers), replace=False)) - term[variables] = powers - return term - - -def normal_coefficient_sampler(): - coefficient = torch.tensor([0.0]) - while coefficient.item() == 0.0: - coefficient = torch.randn(1) - return coefficient - - -def draw_polynomial(dim, degree, number_of_terms=None, - coefficient_sampler = normal_coefficient_sampler, - include_bias = True, seed=None): - if number_of_terms is None: - number_of_terms = degree - if seed is not None: - torch.manual_seed(seed) - np.random.seed(seed) - assert number_of_terms > 0 and degree > 0 and dim > 0 - coefficients, terms = [], [] - # add a random term to assure that - # the polynomial has the right degree - coefficients.append(normal_coefficient_sampler()) - terms.append(draw_polynomial_term(dim, degree)) - for _ in range(number_of_terms-1): - deg = np.random.randint(degree) + 1 - coefficients.append(normal_coefficient_sampler()) - terms.append(draw_polynomial_term(dim, deg)) - if include_bias: - coefficients.append(normal_coefficient_sampler()) - terms.append(torch.zeros(dim)) - return Polynomial(terms, coefficients) - - diff --git a/Experiments/old_scripts/train_eiv_housing.py b/Experiments/old_scripts/train_eiv_housing.py deleted file mode 100644 index b5815a1..0000000 --- a/Experiments/old_scripts/train_eiv_housing.py +++ /dev/null @@ -1,166 +0,0 @@ -import random -import os - -import numpy as np -import torch -import torch.nn as nn -from torch.utils.data import DataLoader, TensorDataset - -from EIVArchitectures import Networks -from generate_housing_data import train_x, train_y,\ - test_x, test_y, train_data, test_data -from EIVTrainingRoutines import train_and_store, loss_functions - -# hyperparameters -lr = 1e-3 -batch_size = 16 -number_of_epochs = 1000 -reg = 1e-2 -report_point = 20 -precision_prior_zeta=0.0 -dim = train_x.shape[-1] -p = 0.5 -lr_update = 950 -pretraining = 300 -epoch_offset = pretraining -deming_factor_list = [0.01, 0.05, 0.1, 0.2, 0.25, 0.3, 0.4, 0.5, 0.6, 0.7] -init_std_y_list = [0.15] -device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') - -# for reproducability -torch.backends.cudnn.benchmark = False -def set_seeds(seed): - np.random.seed(seed) - random.seed(seed) - torch.manual_seed(seed) -seed_list = range(20) - - -# to store the RMSE -rmse_chain = [] - - -def mse(net, x, y, reg): - """ - Computes the mean squared error + regularization - """ - out = net(x)[0] - regularization = 0 - for p in net.parameters(): - regularization += reg * torch.sum(p**2) - return nn.MSELoss()(out, y) + regularization - -def deming_gen(deming, initial_deming = 0.0, stepsize = 1/20): - """ - Yields a generator to update the deming factor - """ - updated_deming = initial_deming - while True: - updated_deming += stepsize * deming - yield min(updated_deming, deming) - -class UpdatedTrainEpoch(train_and_store.TrainEpoch): - def pre_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - """ - if epoch == 0: - self.lr = self.initial_lr - self.optimizer = torch.optim.Adam(net.parameters(), lr=self.lr) - self.lr_scheduler = torch.optim.lr_scheduler.StepLR( - self.optimizer, lr_update, 0.1 - ) - if epoch >= pretraining: - self.criterion = loss_functions.nll_eiv_no_jensen - - - def post_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - **Note**: self.deming_updater has to be defined explicitely - and fed after initialiaztion of this class - """ - if epoch >= pretraining: - net.change_deming(next(self.deming_updater)) - if epoch >= epoch_offset: - net.std_y_par.requires_grad = True - self.lr_scheduler.step() - - def extra_report(self, net, i): - """ - Overwrites the corresponding method - **Note**: self.test_couple has to be defined explicitely - and fed after initialiaztion of this class - """ - rmse = self.rmse(net).item() - rmse_chain.append(rmse) - print('RMSE %.2f', rmse) - - def rmse(self, net): - """ - Compute the root mean squared error for `net` - """ - mse = 0 - net_train_state = net.training - net_noise_state = net.noise_is_on - net.eval() - net.noise_off() - x, y = self.test_couple - out = net(x.to(device))[0].detach().cpu().view((-1,)) - y = y.view((-1,)) - if net_train_state: - net.train() - if net_noise_state: - net.noise_on() - return torch.sqrt(torch.mean((out-y)**2)) - - -def train_on_data(init_std_y, deming_factor, seed): - """ - Trains an EIV model - """ - set_seeds(seed) - deming = deming_factor - # load Datasets - # make to dataloader - train_dataloader = DataLoader(train_data, batch_size=batch_size, - shuffle=True) - test_dataloader = DataLoader(test_data, batch_size=batch_size, - shuffle=True) - # Create a net - net = Networks.FNNEIV(p=p, init_std_y=init_std_y, - precision_prior_zeta=precision_prior_zeta, deming=0.0, - h=[dim,200,100,50,1]) - net = net.to(device) - net.std_y_par.requires_grad = False - std_x_map = lambda: net.get_std_x().detach().cpu().item() - std_y_map = lambda: net.get_std_y().detach().cpu().item() - # Create epoch_map - criterion = mse - # criterion = loss_functions.nll_eiv_no_jensen - epoch_map = UpdatedTrainEpoch(train_dataloader=train_dataloader, - test_dataloader=test_dataloader, - criterion=criterion, std_y_map=std_y_map, std_x_map=std_x_map, - lr=lr, reg=reg,report_point=report_point, device=device) - epoch_map.deming_updater = iter(deming_gen(deming=deming)) - epoch_map.test_couple = (test_x, test_y) - # run and save - save_file = os.path.join('saved_networks', - 'eiv_housing_init_std_y_%.3f_deming'\ - '_factor_%.3f_seed_%i.pkl' % (init_std_y, deming_factor, seed)) - train_and_store.train_and_store(net=net, - epoch_map=epoch_map, - number_of_epochs=number_of_epochs, - save_file=save_file, - rmse=rmse_chain) - - -if __name__ == '__main__': - for seed in seed_list: - for init_std_y in init_std_y_list: - for deming_factor in deming_factor_list: - rmse_chain.clear() - print('->->Using init_std_y=%.2f'\ - 'and deming_factor %.2f<-<-<-<-' - %(init_std_y, deming_factor)) - train_on_data(init_std_y, deming_factor, seed) diff --git a/Experiments/old_scripts/train_eiv_mexican.py b/Experiments/old_scripts/train_eiv_mexican.py deleted file mode 100644 index f22d1fa..0000000 --- a/Experiments/old_scripts/train_eiv_mexican.py +++ /dev/null @@ -1,170 +0,0 @@ -import random -import os - -import numpy as np -import torch -import torch.nn as nn -from torch.utils.data import TensorDataset, DataLoader - -from EIVArchitectures import Networks -import generate_mexican_data -from EIVTrainingRoutines import train_and_store, loss_functions - -# hyperparameters -lr = 1e-3 -batch_size = 25 -number_of_epochs = 1000 -reg = 1e-7 -report_point = 5 -precision_prior_zeta=0.0 -p = 0.5 -lr_update = 950 -pretraining = 300 -epoch_offset = pretraining -std_x_list = [0.05, 0.07, 0.10] -deming_scale_list = [0.15, 0.20, 0.30] -init_std_y_list = [0.15] -std_y = 0.3 -device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') - -# reproducability -torch.backends.cudnn.benchmark = False -def set_seeds(seed): - np.random.seed(seed) - random.seed(seed) - torch.manual_seed(seed) -seed_list = range(20) - -# to store the RMSE -rmse_chain = [] - -def mse(net, x, y, reg): - """ - Computes the mean squared error + regularization - """ - out = net(x)[0] - regularization = 0 - for p in net.parameters(): - regularization += reg * torch.sum(p**2) - return nn.MSELoss()(out, y) + regularization - -def deming_gen(deming, initial_deming = 0.0, stepsize = 1/20): - """ - Yields a generator to update the deming factor - """ - updated_deming = initial_deming - while True: - updated_deming += stepsize * deming - yield min(updated_deming, deming) - -class UpdatedTrainEpoch(train_and_store.TrainEpoch): - def pre_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - """ - if epoch == 0: - self.lr = self.initial_lr - self.optimizer = torch.optim.Adam(net.parameters(), lr=self.lr) - self.lr_scheduler = torch.optim.lr_scheduler.StepLR( - self.optimizer, lr_update, 0.1 - ) - if epoch >= pretraining: - self.criterion = loss_functions.nll_eiv_no_jensen - - - def post_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - **Note**: self.deming_updater has to be defined explicitely - and fed after initialiaztion of this class - """ - if epoch >= pretraining: - net.change_deming(next(self.deming_updater)) - if epoch >= epoch_offset: - net.std_y_par.requires_grad = True - self.lr_scheduler.step() - - def extra_report(self, net, i): - """ - Overwrites the corresponding method - **Note**: self.val_data_pure has to be defined explicitely - and fed after initialiaztion of this class - """ - rmse = self.rmse(net).item() - rmse_chain.append(rmse) - print('RMSE %.2f', rmse) - - def rmse(self, net): - """ - Compute the root mean squared error for `net` - """ - mse = 0 - net_train_state = net.training - net_noise_state = net.noise_is_on - net.eval() - net.noise_off() - x, y = self.val_data_pure - out = net(x.to(device))[0].detach().cpu() - if net_train_state: - net.train() - if net_noise_state: - net.noise_on() - return torch.sqrt(torch.mean((out-y)**2)) - - -def train_on_data(std_x, init_std_y, deming_scale, seed): - """ - Loads data associated with `std_x` and trains an EIV Modell - """ - deming = deming_scale - # load Datasets - train_data_pure, train_data,\ - test_data_pure,test_data,\ - val_data_pure,val_data = \ - generate_mexican_data.get_data(std_x=std_x, - std_y=std_y)[:-1] - train_data = TensorDataset(*train_data) - test_data = TensorDataset(*test_data) - set_seeds(seed) - # make to dataloader - train_dataloader = DataLoader(train_data, batch_size=batch_size, - shuffle=True) - test_dataloader = DataLoader(test_data, batch_size=batch_size, - shuffle=True) - # Create a net - net = Networks.FNNEIV(p=p, init_std_y=init_std_y, - precision_prior_zeta=precision_prior_zeta, deming=0.0) - net = net.to(device) - net.std_y_par.requires_grad = False - std_x_map = lambda: net.get_std_x().detach().cpu().item() - std_y_map = lambda: net.get_std_y().detach().cpu().item() - # Create epoch_map - criterion = mse - # criterion = loss_functions.nll_eiv_no_jensen - epoch_map = UpdatedTrainEpoch(train_dataloader=train_dataloader, - test_dataloader=test_dataloader, - criterion=criterion, std_y_map=std_y_map, std_x_map=std_x_map, - lr=lr, reg=reg,report_point=report_point, device=device) - epoch_map.deming_updater = iter(deming_gen(deming=deming)) - epoch_map.val_data_pure = val_data_pure - # run and save - save_file = os.path.join('saved_networks','eiv_mexican_std_x_%.3f_'\ - 'std_y_%.3f_init_std_y_%.3f_deming_scale_%.3f_seed_%i.pkl'\ - % (std_x, std_y, init_std_y, deming_scale, seed)) - train_and_store.train_and_store(net=net, - epoch_map=epoch_map, - number_of_epochs=number_of_epochs, - save_file=save_file, - rmse=rmse_chain) - - -if __name__ == '__main__': - for seed in seed_list: - print('SEED: %i' % (seed,)) - for init_std_y in init_std_y_list: - for std_x, deming_scale in zip(std_x_list, deming_scale_list): - rmse_chain.clear() - print('->->Using std_x=%.2f and init_std_y=%.2f'\ - 'and deming_scale %.2f<-<-<-<-' - %(std_x, init_std_y, deming_scale)) - train_on_data(std_x, init_std_y, deming_scale, seed) diff --git a/Experiments/old_scripts/train_eiv_mexican_fixed_std_x.py b/Experiments/old_scripts/train_eiv_mexican_fixed_std_x.py deleted file mode 100644 index 6eea50b..0000000 --- a/Experiments/old_scripts/train_eiv_mexican_fixed_std_x.py +++ /dev/null @@ -1,171 +0,0 @@ -import random -import os - -import numpy as np -import torch -import torch.nn as nn -from torch.utils.data import TensorDataset, DataLoader - -from EIVArchitectures import Networks -import generate_mexican_data -from EIVTrainingRoutines import train_and_store, loss_functions - -# hyperparameters -lr = 1e-3 -batch_size = 25 -number_of_epochs = 1000 -reg = 1e-7 -report_point = 5 -precision_prior_zeta=0.0 -p = 0.5 -lr_update = 950 -pretraining = 300 -epoch_offset = pretraining -std_x_list = [0.07] -deming_scale_list = [0.01, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.4, 0.5] -init_std_y_list = [0.15] -std_y = 0.3 -device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') - -# reproducability -torch.backends.cudnn.benchmark = False -def set_seeds(seed): - np.random.seed(seed) - random.seed(seed) - torch.manual_seed(seed) -seed_list = range(20) - -# To store the RMSE -rmse_chain = [] - -def mse(net, x, y, reg): - out = net(x)[0] - regularization = 0 - for p in net.parameters(): - regularization += reg * torch.sum(p**2) - return nn.MSELoss()(out, y) + regularization - -def deming_gen(deming, initial_deming = 0.0, stepsize = 1/20): - """ - Yields a generator to update the deming factor - """ - updated_deming = initial_deming - while True: - updated_deming += stepsize * deming - yield min(updated_deming, deming) - -class UpdatedTrainEpoch(train_and_store.TrainEpoch): - def pre_epoch_update(self, net, epoch): - if epoch == 0: - self.lr = self.initial_lr - self.optimizer = torch.optim.Adam(net.parameters(), lr=self.lr) - self.lr_scheduler = torch.optim.lr_scheduler.StepLR( - self.optimizer, lr_update, 0.1 - ) - if epoch >= pretraining: - self.criterion = loss_functions.nll_eiv_no_jensen - - - def post_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - **Note**: self.deming_updater has to be defined explicitely - and fed after initialiaztion of this class - """ - if epoch >= pretraining: - net.change_deming(next(self.deming_updater)) - if epoch >= epoch_offset: - net.std_y_par.requires_grad = True - self.lr_scheduler.step() - - def extra_report(self, net, i): - """ - Overwrites the corresponding method - **Note**: self.val_data_pure has to be defined explicitely - and fed after initialiaztion of this class - """ - rmse = self.rmse(net).item() - rmse_chain.append(rmse) - print('RMSE %.2f', rmse) - - def rmse(self, net): - """ - Compute the root mean squared error for `net` - """ - mse = 0 - net_train_state = net.training - net_noise_state = net.noise_is_on - net.eval() - net.noise_off() - x, y = self.val_data_pure - out = net(x.to(device))[0].detach().cpu() - if net_train_state: - net.train() - if net_noise_state: - net.noise_on() - return torch.sqrt(torch.mean((out-y)**2)) - - -def train_on_data(std_x, init_std_y, deming_scale, seed): - """ - Loads data associated with `std_x` and trains an EIV Modell, - with its associated std_x starting from `init_std_x` - :param std_x: A positivefloat - :param init_std_x: A positive float - :deming_scale: A positive float - factor - """ - deming = deming_scale - # load Datasets - train_data_pure, train_data,\ - test_data_pure,test_data,\ - val_data_pure,val_data = \ - generate_mexican_data.get_data(std_x=std_x, - std_y=std_y)[:-1] - train_data = TensorDataset(*train_data) - test_data = TensorDataset(*test_data) - set_seeds(seed) - # make to dataloader - train_dataloader = DataLoader(train_data, batch_size=batch_size, - shuffle=True) - test_dataloader = DataLoader(test_data, batch_size=batch_size, - shuffle=True) - # Create a net - net = Networks.FNNEIV(p=p, init_std_y=init_std_y, - precision_prior_zeta=precision_prior_zeta, deming=0.0) - net = net.to(device) - net.std_y_par.requires_grad = False - std_x_map = lambda: net.get_std_x().detach().cpu().item() - std_y_map = lambda: net.get_std_y().detach().cpu().item() - # Create epoch_map - criterion = mse - # criterion = loss_functions.nll_eiv_no_jensen - epoch_map = UpdatedTrainEpoch(train_dataloader=train_dataloader, - test_dataloader=test_dataloader, - criterion=criterion, std_y_map=std_y_map, std_x_map=std_x_map, - lr=lr, reg=reg,report_point=report_point, device=device) - epoch_map.deming_updater = iter(deming_gen(deming=deming)) - epoch_map.val_data_pure = val_data_pure - # run and save - save_file = os.path.join('saved_networks', - 'eiv_mexican_fixed_std_x_%.3f_std_y_%.3f_init_std_y_%.3f'\ - '_deming_scale_%.3f'\ - '_seed_%i.pkl' % (std_x, std_y, init_std_y, deming_scale, seed)) - train_and_store.train_and_store(net=net, - epoch_map=epoch_map, - number_of_epochs=number_of_epochs, - save_file=save_file, - rmse=rmse_chain) - - -if __name__ == '__main__': - std_x = std_x_list[0] - for seed in seed_list: - print('SEED: %i' % (seed,)) - for init_std_y in init_std_y_list: - for deming_scale in deming_scale_list: - rmse_chain.clear() - print('->->Using std_x=%.2f and init_std_y=%.2f'\ - 'and deming_scale %.2f<-<-<-<-' - %(std_x, init_std_y, deming_scale)) - train_on_data(std_x, init_std_y, deming_scale, seed) diff --git a/Experiments/old_scripts/train_eiv_multinomial.py b/Experiments/old_scripts/train_eiv_multinomial.py deleted file mode 100644 index e74d132..0000000 --- a/Experiments/old_scripts/train_eiv_multinomial.py +++ /dev/null @@ -1,171 +0,0 @@ -import random -import os - -import numpy as np -import torch -import torch.nn as nn -from torch.utils.data import DataLoader, TensorDataset - -from EIVArchitectures import Networks -from generate_multinomial_data import get_data -from EIVTrainingRoutines import train_and_store, loss_functions - -# hyperparameters -lr = 1e-3 -batch_size = 200 -number_of_epochs = 350 -reg = 1e-6 -report_point = 40 -precision_prior_zeta=0.0 -n_train = 100000 -dim = 5 -p = 0.5 -lr_update = 300 -pretraining = 200 -epoch_offset = pretraining -std_x_list = [0.05,0.07,0.10] -deming_scale_list = [0.15, 0.2, 0.3] -init_std_y_list = [0.15] -std_y = 0.30 -device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') - -# reproducability -torch.backends.cudnn.benchmark = False -def set_seeds(seed): - np.random.seed(seed) - random.seed(seed) - torch.manual_seed(seed) -seed_list = range(20) - -# to store the RMSE -rmse_chain = [] - - -def mse(net, x, y, reg): - """ - Computes the mean squared error + regularization - """ - out = net(x)[0] - regularization = 0 - for p in net.parameters(): - regularization += reg * torch.sum(p**2) - return nn.MSELoss()(out, y) + regularization - -def deming_gen(deming, initial_deming = 0.0, stepsize = 1/20): - """ - Yields a generator to update the deming factor - """ - updated_deming = initial_deming - while True: - updated_deming += stepsize * deming - yield min(updated_deming, deming) - -class UpdatedTrainEpoch(train_and_store.TrainEpoch): - def pre_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - """ - if epoch == 0: - self.lr = self.initial_lr - self.optimizer = torch.optim.Adam(net.parameters(), lr=self.lr) - self.lr_scheduler = torch.optim.lr_scheduler.StepLR( - self.optimizer, lr_update, 0.1 - ) - if epoch >= pretraining: - self.criterion = loss_functions.nll_eiv_no_jensen - - - def post_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - **Note**: self.deming_updater has to be defined explicitely - and fed after initialiaztion of this class - """ - if epoch >= pretraining: - net.change_deming(next(self.deming_updater)) - if epoch >= epoch_offset: - net.std_y_par.requires_grad = True - self.lr_scheduler.step() - - def extra_report(self, net, i): - """ - Overwrites the corresponding method - **Note**: self.val_data_pure has to be defined explicitely - and fed after initialiaztion of this class - """ - rmse = self.rmse(net).item() - rmse_chain.append(rmse) - print('RMSE %.2f', rmse) - - def rmse(self, net): - """ - Compute the root mean squared error for `net` - """ - mse = 0 - net_train_state = net.training - net_noise_state = net.noise_is_on - net.eval() - net.noise_off() - x, y = self.val_data_pure - out = net(x.to(device))[0].detach().cpu() - if net_train_state: - net.train() - if net_noise_state: - net.noise_on() - return torch.sqrt(torch.mean((out-y)**2)) - - -def train_on_data(std_x, init_std_y, deming_scale, seed): - """ - Loads data associated with `std_x` and trains an EIV Modell, - """ - deming = deming_scale - # load Datasets - _, train_data, _, test_data, val_data_pure, _, _ =\ - get_data(std_x=std_x, std_y=std_y, dim=dim, n_train=n_train) - train_data = TensorDataset(*train_data ) - test_data = TensorDataset(*test_data ) - set_seeds(seed) - # make to dataloader - train_dataloader = DataLoader(train_data, batch_size=batch_size, - shuffle=True) - test_dataloader = DataLoader(test_data, batch_size=batch_size, - shuffle=True) - # Create a net - net = Networks.FNNEIV(p=p, init_std_y=init_std_y, - precision_prior_zeta=precision_prior_zeta, deming=0.0, - h=[dim,500,300,100,1]) - net = net.to(device) - net.std_y_par.requires_grad = False - std_x_map = lambda: net.get_std_x().detach().cpu().item() - std_y_map = lambda: net.get_std_y().detach().cpu().item() - # Create epoch_map - criterion = mse - # criterion = loss_functions.nll_eiv_no_jensen - epoch_map = UpdatedTrainEpoch(train_dataloader=train_dataloader, - test_dataloader=test_dataloader, - criterion=criterion, std_y_map=std_y_map, std_x_map=std_x_map, - lr=lr, reg=reg,report_point=report_point, device=device) - epoch_map.deming_updater = iter(deming_gen(deming=deming)) - epoch_map.val_data_pure = val_data_pure - # run and save - save_file = os.path.join('saved_networks','eiv_multinomial_std_x_%.3f'\ - '_std_y_%.3f_init_std_y_%.3f_deming_scale_%.3f_seed_%i.pkl'\ - % (std_x, std_y, init_std_y, deming_scale, seed)) - train_and_store.train_and_store(net=net, - epoch_map=epoch_map, - number_of_epochs=number_of_epochs, - save_file=save_file, - rmse=rmse_chain) - - -if __name__ == '__main__': - for seed in seed_list: - print('SEED: %i' % (seed,)) - for init_std_y in init_std_y_list: - for std_x, deming_scale in zip(std_x_list, deming_scale_list): - rmse_chain.clear() - print('->->Using std_x=%.2f and init_std_y=%.2f'\ - 'and deming_scale %.2f<-<-<-<-' - %(std_x, init_std_y, deming_scale)) - train_on_data(std_x, init_std_y, deming_scale, seed) diff --git a/Experiments/old_scripts/train_eiv_vd_mexican.py b/Experiments/old_scripts/train_eiv_vd_mexican.py deleted file mode 100644 index 6a48514..0000000 --- a/Experiments/old_scripts/train_eiv_vd_mexican.py +++ /dev/null @@ -1,171 +0,0 @@ -import random -import os - -import numpy as np -import torch -import torch.nn as nn -from torch.utils.data import TensorDataset, DataLoader - -from EIVArchitectures import Networks -import generate_mexican_data -from EIVTrainingRoutines import train_and_store, loss_functions - -# hyperparameters -lr = 1e-3 -batch_size = 25 -number_of_epochs = 1000 -reg = [1e-7, 1/generate_mexican_data.n_train] -report_point = 5 -precision_prior_zeta=0.0 -initial_alpha = 0.5 -lr_update = 950 -pretraining = 300 -epoch_offset = pretraining -std_x_list = [0.05, 0.07, 0.10] -deming_scale_list = [0.15, 0.20, 0.30] -init_std_y_list = [0.15] -std_y = 0.3 -device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') - -# reproducability -torch.backends.cudnn.benchmark = False -def set_seeds(seed): - np.random.seed(seed) - random.seed(seed) - torch.manual_seed(seed) -seed_list = range(20) - -# to store the RMSE -rmse_chain = [] - -def mse(net, x, y, reg): - """ - Computes the mean squared error + regularization - """ - out = net(x)[0] - regularization = 0 - for p in net.parameters(): - regularization += reg[0] * torch.sum(p**2) - return nn.MSELoss()(out, y) + regularization - -def deming_gen(deming, initial_deming = 0.0, stepsize = 1/20): - """ - Yields a generator to update the deming factor - """ - updated_deming = initial_deming - while True: - updated_deming += stepsize * deming - yield min(updated_deming, deming) - -class UpdatedTrainEpoch(train_and_store.TrainEpoch): - def pre_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - """ - if epoch == 0: - self.lr = self.initial_lr - self.optimizer = torch.optim.Adam(net.parameters(), lr=self.lr) - self.lr_scheduler = torch.optim.lr_scheduler.StepLR( - self.optimizer, lr_update, 0.1 - ) - if epoch >= pretraining: - self.criterion = loss_functions.nll_eiv_no_jensen - - - def post_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - **Note**: self.deming_updater has to be defined explicitely - and fed after initialiaztion of this class - """ - if epoch >= pretraining: - net.change_deming(next(self.deming_updater)) - if epoch >= epoch_offset: - net.std_y_par.requires_grad = True - self.lr_scheduler.step() - - def extra_report(self, net, i): - """ - Overwrites the corresponding method - **Note**: self.val_data_pure has to be defined explicitely - and fed after initialiaztion of this class - """ - rmse = self.rmse(net).item() - rmse_chain.append(rmse) - print('RMSE %.2f', rmse) - - def rmse(self, net): - """ - Compute the root mean squared error for `net` - """ - mse = 0 - net_train_state = net.training - net_noise_state = net.noise_is_on - net.eval() - net.noise_off() - x, y = self.val_data_pure - out = net(x.to(device))[0].detach().cpu() - if net_train_state: - net.train() - if net_noise_state: - net.noise_on() - return torch.sqrt(torch.mean((out-y)**2)) - - -def train_on_data(std_x, init_std_y, deming_scale, seed): - """ - Loads data associated with `std_x` and trains an EIV Modell - """ - deming = deming_scale - # load Datasets - train_data_pure, train_data,\ - test_data_pure,test_data,\ - val_data_pure,val_data = \ - generate_mexican_data.get_data(std_x=std_x, - std_y=std_y)[:-1] - train_data = TensorDataset(*train_data) - test_data = TensorDataset(*test_data) - set_seeds(seed) - # make to dataloader - train_dataloader = DataLoader(train_data, batch_size=batch_size, - shuffle=True) - test_dataloader = DataLoader(test_data, batch_size=batch_size, - shuffle=True) - # Create a net - net = Networks.FNN_VD_EIV(initial_alpha=initial_alpha, - init_std_y=init_std_y, - precision_prior_zeta=precision_prior_zeta, deming=0.0) - net = net.to(device) - net.std_y_par.requires_grad = False - std_x_map = lambda: net.get_std_x().detach().cpu().item() - std_y_map = lambda: net.get_std_y().detach().cpu().item() - # Create epoch_map - criterion = mse - # criterion = loss_functions.nll_eiv_no_jensen - epoch_map = UpdatedTrainEpoch(train_dataloader=train_dataloader, - test_dataloader=test_dataloader, - criterion=criterion, std_y_map=std_y_map, std_x_map=std_x_map, - lr=lr, reg=reg,report_point=report_point, device=device) - epoch_map.deming_updater = iter(deming_gen(deming=deming)) - epoch_map.val_data_pure = val_data_pure - # run and save - save_file = os.path.join('saved_networks','eiv_vd_mexican_std_x_%.3f_'\ - 'std_y_%.3f_init_std_y_%.3f_deming_scale_%.3f_seed_%i.pkl'\ - % (std_x, std_y, init_std_y, deming_scale, seed)) - train_and_store.train_and_store(net=net, - epoch_map=epoch_map, - number_of_epochs=number_of_epochs, - save_file=save_file, - rmse=rmse_chain) - - -if __name__ == '__main__': - for seed in seed_list: - print('SEED: %i' % (seed,)) - for init_std_y in init_std_y_list: - for std_x, deming_scale in zip(std_x_list, deming_scale_list): - rmse_chain.clear() - print('->->Using std_x=%.2f and init_std_y=%.2f'\ - 'and deming_scale %.2f<-<-<-<-' - %(std_x, init_std_y, deming_scale)) - train_on_data(std_x, init_std_y, deming_scale, seed) diff --git a/Experiments/old_scripts/train_eiv_vd_multinomial.py b/Experiments/old_scripts/train_eiv_vd_multinomial.py deleted file mode 100644 index 2f9e6fd..0000000 --- a/Experiments/old_scripts/train_eiv_vd_multinomial.py +++ /dev/null @@ -1,171 +0,0 @@ -import random -import os - -import numpy as np -import torch -import torch.nn as nn -from torch.utils.data import DataLoader, TensorDataset - -from EIVArchitectures import Networks -from generate_multinomial_data import get_data -from EIVTrainingRoutines import train_and_store, loss_functions - -# hyperparameters -lr = 1e-3 -batch_size = 200 -number_of_epochs = 350 -n_train = 100000 -reg = [1e-6, 1/n_train] -report_point = 40 -precision_prior_zeta=0.0 -dim = 5 -initial_alpha = 0.5 -lr_update = 300 -pretraining = 200 -epoch_offset = pretraining -std_x_list = [0.05, 0.07, 0.10] -deming_scale_list = [0.15, 0.20, 0.30] -init_std_y_list = [0.15] -std_y = 0.3 -device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') - -# reproducability -torch.backends.cudnn.benchmark = False -def set_seeds(seed): - np.random.seed(seed) - random.seed(seed) - torch.manual_seed(seed) -seed_list = range(20) - -# to store the RMSE -rmse_chain = [] - -def mse(net, x, y, reg): - """ - Computes the mean squared error + regularization - """ - out = net(x)[0] - regularization = 0 - for p in net.parameters(): - regularization += reg[0] * torch.sum(p**2) - return nn.MSELoss()(out, y) + regularization - -def deming_gen(deming, initial_deming = 0.0, stepsize = 1/20): - """ - Yields a generator to update the deming factor - """ - updated_deming = initial_deming - while True: - updated_deming += stepsize * deming - yield min(updated_deming, deming) - -class UpdatedTrainEpoch(train_and_store.TrainEpoch): - def pre_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - """ - if epoch == 0: - self.lr = self.initial_lr - self.optimizer = torch.optim.Adam(net.parameters(), lr=self.lr) - self.lr_scheduler = torch.optim.lr_scheduler.StepLR( - self.optimizer, lr_update, 0.1 - ) - if epoch >= pretraining: - self.criterion = loss_functions.nll_eiv_no_jensen - - - def post_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - **Note**: self.deming_updater has to be defined explicitely - and fed after initialiaztion of this class - """ - if epoch >= pretraining: - net.change_deming(next(self.deming_updater)) - if epoch >= epoch_offset: - net.std_y_par.requires_grad = True - self.lr_scheduler.step() - - def extra_report(self, net, i): - """ - Overwrites the corresponding method - **Note**: self.val_data_pure has to be defined explicitely - and fed after initialiaztion of this class - """ - rmse = self.rmse(net).item() - rmse_chain.append(rmse) - print('RMSE %.2f', rmse) - - def rmse(self, net): - """ - Compute the root mean squared error for `net` - """ - mse = 0 - net_train_state = net.training - net_noise_state = net.noise_is_on - net.eval() - net.noise_off() - x, y = self.val_data_pure - out = net(x.to(device))[0].detach().cpu() - if net_train_state: - net.train() - if net_noise_state: - net.noise_on() - return torch.sqrt(torch.mean((out-y)**2)) - - -def train_on_data(std_x, init_std_y, deming_scale, seed): - """ - Loads data associated with `std_x` and trains an EIV Modell - """ - deming = deming_scale - # load Datasets - _, train_data, _, test_data, val_data_pure, _, _ =\ - get_data(std_x=std_x, std_y=std_y, dim=dim, n_train=n_train) - train_data = TensorDataset(*train_data ) - test_data = TensorDataset(*test_data ) - set_seeds(seed) - # make to dataloader - train_dataloader = DataLoader(train_data, batch_size=batch_size, - shuffle=True) - test_dataloader = DataLoader(test_data, batch_size=batch_size, - shuffle=True) - # Create a net - net = Networks.FNN_VD_EIV(initial_alpha=initial_alpha, - init_std_y=init_std_y, - precision_prior_zeta=precision_prior_zeta, deming=0.0, - h=[dim,500,300,100,1]) - net = net.to(device) - net.std_y_par.requires_grad = False - std_x_map = lambda: net.get_std_x().detach().cpu().item() - std_y_map = lambda: net.get_std_y().detach().cpu().item() - # Create epoch_map - criterion = mse - # criterion = loss_functions.nll_eiv_no_jensen - epoch_map = UpdatedTrainEpoch(train_dataloader=train_dataloader, - test_dataloader=test_dataloader, - criterion=criterion, std_y_map=std_y_map, std_x_map=std_x_map, - lr=lr, reg=reg,report_point=report_point, device=device) - epoch_map.deming_updater = iter(deming_gen(deming=deming)) - epoch_map.val_data_pure = val_data_pure - # run and save - save_file = os.path.join('saved_networks','eiv_vd_multinomial_std_x_%.3f'\ - '_std_y_%.3f_init_std_y_%.3f_deming_scale_%.3f_seed_%i.pkl'\ - % (std_x, std_y, init_std_y, deming_scale, seed)) - train_and_store.train_and_store(net=net, - epoch_map=epoch_map, - number_of_epochs=number_of_epochs, - save_file=save_file, - rmse=rmse_chain) - - -if __name__ == '__main__': - for seed in seed_list: - print('SEED: %i' % (seed,)) - for init_std_y in init_std_y_list: - for std_x, deming_scale in zip(std_x_list, deming_scale_list): - rmse_chain.clear() - print('->->Using std_x=%.2f and init_std_y=%.2f'\ - 'and deming_scale %.2f<-<-<-<-' - %(std_x, init_std_y, deming_scale)) - train_on_data(std_x, init_std_y, deming_scale, seed) diff --git a/Experiments/old_scripts/train_eiv_wine.py b/Experiments/old_scripts/train_eiv_wine.py deleted file mode 100644 index 291a993..0000000 --- a/Experiments/old_scripts/train_eiv_wine.py +++ /dev/null @@ -1,167 +0,0 @@ -import random -import os - -import numpy as np -import torch -import torch.nn as nn -from torch.utils.data import DataLoader, TensorDataset - -from EIVArchitectures import Networks -from generate_wine_data import train_x, train_y,\ - test_x, test_y, train_data, test_data -from EIVTrainingRoutines import train_and_store, loss_functions - -# hyperparameters -lr = 1e-3 -batch_size = 16 -number_of_epochs = 400 -reg = 1e-9 -report_point = 20 -precision_prior_zeta=0.0 -dim = train_x.shape[1] -train_len = train_x.shape[0] -p = 0.5 -lr_update = 250 -pretraining = 50 -epoch_offset = pretraining -deming_train_time = 20 -deming_factor_list = [0.01,0.1, 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 2.0] -init_std_y_list = [0.15] -device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') - -# reproducability -torch.backends.cudnn.benchmark = False -def set_seeds(seed): - np.random.seed(seed) - random.seed(seed) - torch.manual_seed(seed) -seed_list = range(20) - -# To store the RMSE -rmse_chain = [] - - -def mse(net, x, y, reg): - """ - Computes the mean squared error + regularization - """ - out = net(x)[0] - regularization = 0 - for p in net.parameters(): - regularization += reg * torch.sum(p**2) - return nn.MSELoss()(out, y) + regularization - -def deming_gen(deming, initial_deming = 0.0, stepsize = 1/deming_train_time): - """ - Yields a generator to update the deming factor - """ - updated_deming = initial_deming - while True: - updated_deming += stepsize * deming - yield min(updated_deming, deming) - -class UpdatedTrainEpoch(train_and_store.TrainEpoch): - def pre_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - """ - if epoch == 0: - self.lr = self.initial_lr - self.optimizer = torch.optim.Adam(net.parameters(), lr=self.lr) - self.lr_scheduler = torch.optim.lr_scheduler.StepLR( - self.optimizer, lr_update, 0.1 - ) - if epoch >= pretraining: - self.criterion = loss_functions.nll_eiv_no_jensen - - - def post_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - **Note**: self.deming_updater has to be defined explicitely - and fed after initialiaztion of this class - """ - if epoch >= pretraining: - net.change_deming(next(self.deming_updater)) - if epoch >= epoch_offset: - net.std_y_par.requires_grad = True - self.lr_scheduler.step() - - def extra_report(self, net, i): - """ - Overwrites the corresponding method - **Note**: self.test_couple has to be defined explicitely - and fed after initialiaztion of this class - """ - rmse = self.rmse(net).item() - rmse_chain.append(rmse) - print('RMSE %.2f', rmse) - - def rmse(self, net): - """ - Compute the root mean squared error for `net` - """ - mse = 0 - net_train_state = net.training - net_noise_state = net.noise_is_on - net.eval() - net.noise_off() - x, y = self.test_couple - out = net(x.to(device))[0].detach().cpu().view((-1,)) - y = y.view((-1,)) - if net_train_state: - net.train() - if net_noise_state: - net.noise_on() - return torch.sqrt(torch.mean((out-y)**2)) - - -def train_on_data(init_std_y, deming_factor, seed): - """ - Trains an EIV Modell - """ - deming = deming_factor - # load Datasets - # make to dataloader - train_dataloader = DataLoader(train_data, batch_size=batch_size, - shuffle=True) - test_dataloader = DataLoader(test_data, batch_size=batch_size, - shuffle=True) - set_seeds(seed) - # Create a net - net = Networks.FNNEIV(p=p, init_std_y=init_std_y, - precision_prior_zeta=precision_prior_zeta, deming=0.0, - h=[dim,200,100,50,1]) - net = net.to(device) - net.std_y_par.requires_grad = False - std_x_map = lambda: net.get_std_x().detach().cpu().item() - std_y_map = lambda: net.get_std_y().detach().cpu().item() - # Create epoch_map - criterion = mse - # criterion = loss_functions.nll_eiv_no_jensen - epoch_map = UpdatedTrainEpoch(train_dataloader=train_dataloader, - test_dataloader=test_dataloader, - criterion=criterion, std_y_map=std_y_map, std_x_map=std_x_map, - lr=lr, reg=reg,report_point=report_point, device=device) - epoch_map.deming_updater = iter(deming_gen(deming=deming)) - epoch_map.test_couple = (test_x, test_y) - # run and save - save_file = os.path.join('saved_networks', - 'eiv_wine_init_std_y_%.3f_deming'\ - '_factor_%.3f_seed_%i.pkl' % (init_std_y, deming_factor, seed)) - train_and_store.train_and_store(net=net, - epoch_map=epoch_map, - number_of_epochs=number_of_epochs, - save_file=save_file, - rmse=rmse_chain) - - -if __name__ == '__main__': - for seed in seed_list: - for init_std_y in init_std_y_list: - for deming_factor in deming_factor_list: - rmse_chain.clear() - print('->->Using init_std_y=%.2f'\ - 'and deming_factor %.2f<-<-<-<-' - %(init_std_y, deming_factor)) - train_on_data(init_std_y, deming_factor, seed) diff --git a/Experiments/old_scripts/train_noneiv_housing.py b/Experiments/old_scripts/train_noneiv_housing.py deleted file mode 100644 index 094f85e..0000000 --- a/Experiments/old_scripts/train_noneiv_housing.py +++ /dev/null @@ -1,124 +0,0 @@ -import random -import os - -import numpy as np -import torch -import torch.nn as nn -from torch.utils.data import DataLoader, TensorDataset - -from EIVArchitectures import Networks -from generate_housing_data import train_x, train_y,\ - test_x, test_y, train_data, test_data -from EIVTrainingRoutines import train_and_store, loss_functions - -# hyperparameters -lr = 1e-3 -batch_size = 16 -number_of_epochs = 1000 -reg = 1e-2 -report_point = 20 -dim = train_x.shape[-1] -p = 0.5 -lr_update = 950 -pretraining = 300 -epoch_offset = pretraining -init_std_y_list = [0.15] -device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') - -# reproducability -torch.backends.cudnn.benchmark = False -def set_seeds(seed): - np.random.seed(seed) - random.seed(seed) - torch.manual_seed(seed) -seed_list = range(20) - -# To store the RMSE -rmse_chain = [] - - -class UpdatedTrainEpoch(train_and_store.TrainEpoch): - def pre_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - """ - if epoch == 0: - self.lr = self.initial_lr - self.optimizer = torch.optim.Adam(net.parameters(), lr=self.lr) - self.lr_scheduler = torch.optim.lr_scheduler.StepLR( - self.optimizer, lr_update, 0.1 - ) - - - def post_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - """ - if epoch >= epoch_offset: - net.std_y_par.requires_grad = True - self.lr_scheduler.step() - - def extra_report(self, net, i): - """ - Overwrites the corresponding method - **Note**: self.val_data_pure has to be defined explicitely - and fed after initialiaztion of this class - """ - rmse = self.rmse(net).item() - rmse_chain.append(rmse) - print('RMSE %.2f', rmse) - - def rmse(self, net): - """ - Compute the root mean squared error for `net` - """ - mse = 0 - net_train_state = net.training - net.eval() - x, y = self.val_data_pure - out = net(x.to(device))[0].detach().cpu() - if net_train_state: - net.train() - return torch.sqrt(torch.mean((out-y)**2)) - - -def train_on_data(init_std_y, seed): - """ - Trains a BD Modell - """ - # make to dataloader - train_dataloader = DataLoader(train_data, batch_size=batch_size, - shuffle=True) - test_dataloader = DataLoader(test_data, batch_size=batch_size, - shuffle=True) - set_seeds(seed) - # Create a net - net = Networks.FNNBer(p=p, init_std_y=init_std_y, - h=[dim,200,100,50,1]) - net = net.to(device) - net.std_y_par.requires_grad = False - std_x_map = lambda: 0.0 - std_y_map = lambda: net.get_std_y().detach().cpu().item() - # Create epoch_map - criterion = loss_functions.nll_reg_loss - epoch_map = UpdatedTrainEpoch(train_dataloader=train_dataloader, - test_dataloader=test_dataloader, - criterion=criterion, std_y_map=std_y_map, std_x_map=std_x_map, - lr=lr, reg=reg,report_point=report_point, device=device) - epoch_map.val_data_pure = (test_x, test_y) - # run and save - save_file = os.path.join('saved_networks','noneiv_housing'\ - '_init_std_y_%.3f_seed_%i.pkl' % (init_std_y,seed)) - train_and_store.train_and_store(net=net, - epoch_map=epoch_map, - number_of_epochs=number_of_epochs, - save_file=save_file, - rmse=rmse_chain) - - -if __name__ == '__main__': - for seed in seed_list: - for init_std_y in init_std_y_list: - print('->->Using init_std_y=%.2f<-<-<-<-' - %(init_std_y)) - train_on_data(init_std_y, seed) diff --git a/Experiments/old_scripts/train_noneiv_mexican.py b/Experiments/old_scripts/train_noneiv_mexican.py deleted file mode 100644 index 1d7f8f5..0000000 --- a/Experiments/old_scripts/train_noneiv_mexican.py +++ /dev/null @@ -1,132 +0,0 @@ -import random -import os - -import numpy as np -import torch -import torch.nn as nn -from torch.utils.data import DataLoader, TensorDataset - -from EIVArchitectures import Networks -import generate_mexican_data -from EIVTrainingRoutines import train_and_store, loss_functions - -# hyperparameters -lr = 1e-3 -batch_size = 25 -number_of_epochs = 1000 -reg = 1e-7 -report_point = 5 -p = 0.5 -lr_update = 950 -pretraining = 300 -epoch_offset = pretraining -std_x_list = [0.05, 0.07, 0.10] -init_std_y_list = [0.15] -std_y = 0.3 -device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') - -# reproducability -torch.backends.cudnn.benchmark = False -def set_seeds(seed): - np.random.seed(seed) - random.seed(seed) - torch.manual_seed(seed) -seed_list = range(20) - -# to store the RMSE -rmse_chain = [] - -class UpdatedTrainEpoch(train_and_store.TrainEpoch): - def pre_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - """ - if epoch == 0: - self.lr = self.initial_lr - self.optimizer = torch.optim.Adam(net.parameters(), lr=self.lr) - self.lr_scheduler = torch.optim.lr_scheduler.StepLR( - self.optimizer, lr_update, 0.1 - ) - - - def post_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - """ - if epoch >= epoch_offset: - net.std_y_par.requires_grad = True - self.lr_scheduler.step() - - def extra_report(self, net, i): - """ - Overwrites the corresponding method - **Note**: self.val_data_pure has to be defined explicitely - and fed after initialiaztion of this class - """ - rmse = self.rmse(net).item() - rmse_chain.append(rmse) - print('RMSE %.2f', rmse) - - def rmse(self, net): - """ - Compute the root mean squared error for `net` - """ - mse = 0 - net_train_state = net.training - net.eval() - x, y = self.val_data_pure - out = net(x.to(device))[0].detach().cpu() - if net_train_state: - net.train() - return torch.sqrt(torch.mean((out-y)**2)) - - -def train_on_data(std_x, init_std_y, seed): - """ - Loads data associated with `std_x` and trains an Bernoulli Modell. - """ - # load Datasets - train_data_pure, train_data,\ - test_data_pure,test_data,\ - val_data_pure,val_data = \ - generate_mexican_data.get_data(std_x=std_x, - std_y=std_y)[:-1] - train_data = TensorDataset(*train_data) - test_data = TensorDataset(*test_data) - set_seeds(seed) - # make to dataloader - train_dataloader = DataLoader(train_data, batch_size=batch_size, - shuffle=True) - test_dataloader = DataLoader(test_data, batch_size=batch_size, - shuffle=True) - # Create a net - net = Networks.FNNBer(init_std_y=init_std_y) - net = net.to(device) - net.std_y_par.requires_grad = False - std_x_map = lambda: 0.0 - std_y_map = lambda: net.get_std_y().detach().cpu().item() - # Create epoch_map - criterion = loss_functions.nll_reg_loss - epoch_map = UpdatedTrainEpoch(train_dataloader=train_dataloader, - test_dataloader=test_dataloader, - criterion=criterion, std_y_map=std_y_map, std_x_map=std_x_map, - lr=lr, reg=reg,report_point=report_point, device=device) - epoch_map.val_data_pure = val_data_pure - # run and save - save_file = os.path.join('saved_networks','noneiv_mexican_std_x_%.3f'\ - '_std_y_%.3f_init_std_y_%.3f_seed_%i.pkl'\ - % (std_x, std_y, init_std_y, int(seed))) - train_and_store.train_and_store(net=net, - epoch_map=epoch_map, - number_of_epochs=number_of_epochs, - save_file=save_file) - - -if __name__ == '__main__': - for seed in seed_list: - print('SEED: %i' % (seed,)) - for init_std_y in init_std_y_list: - for std_x in std_x_list: - print('->->Using std_x=%.2f and init_std_y=%.2f<-<-<-<-' - %(std_x, init_std_y)) - train_on_data(std_x, init_std_y, seed) diff --git a/Experiments/old_scripts/train_noneiv_mexican_ensemble_seed.py b/Experiments/old_scripts/train_noneiv_mexican_ensemble_seed.py deleted file mode 100644 index 85f95a8..0000000 --- a/Experiments/old_scripts/train_noneiv_mexican_ensemble_seed.py +++ /dev/null @@ -1,131 +0,0 @@ -import random -import os - -import numpy as np -import torch -from torch.utils.data import DataLoader, TensorDataset - -from EIVArchitectures import Networks -import generate_mexican_data -from EIVTrainingRoutines import train_and_store, loss_functions - -# hyperparameters -lr = 1e-3 -batch_size = 25 -number_of_epochs = 1000 -reg = 1e-7 -report_point = 5 -p = 0.5 -lr_update = 950 -pretraining = 300 -epoch_offset = pretraining -std_x_list = [0.05, 0.07, 0.10] -init_std_y_list = [0.15] -std_y = 0.3 -device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') - -# reproducability -torch.backends.cudnn.benchmark = False -def set_seeds(seed): - np.random.seed(seed) - random.seed(seed) - torch.manual_seed(seed) -seed_list = range(20, 20+5*20) - -# to store the RMSE -rmse_chain = [] - -class UpdatedTrainEpoch(train_and_store.TrainEpoch): - def pre_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - """ - if epoch == 0: - self.lr = self.initial_lr - self.optimizer = torch.optim.Adam(net.parameters(), lr=self.lr) - self.lr_scheduler = torch.optim.lr_scheduler.StepLR( - self.optimizer, lr_update, 0.1 - ) - - - def post_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - """ - if epoch >= epoch_offset: - net.std_y_par.requires_grad = True - self.lr_scheduler.step() - - def extra_report(self, net, i): - """ - Overwrites the corresponding method - **Note**: self.val_data_pure has to be defined explicitely - and fed after initialiaztion of this class - """ - rmse = self.rmse(net).item() - rmse_chain.append(rmse) - print('RMSE %.2f', rmse) - - def rmse(self, net): - """ - Compute the root mean squared error for `net` - """ - mse = 0 - net_train_state = net.training - net.eval() - x, y = self.val_data_pure - out = net(x.to(device))[0].detach().cpu() - if net_train_state: - net.train() - return torch.sqrt(torch.mean((out-y)**2)) - - -def train_on_data(std_x, init_std_y, seed): - """ - Loads data associated with `std_x` and trains an Bernoulli Modell. - """ - # load Datasets - train_data_pure, train_data,\ - test_data_pure,test_data,\ - val_data_pure,val_data = \ - generate_mexican_data.get_data(std_x=std_x, - std_y=std_y)[:-1] - train_data = TensorDataset(*train_data) - test_data = TensorDataset(*test_data) - set_seeds(seed) - # make to dataloader - train_dataloader = DataLoader(train_data, batch_size=batch_size, - shuffle=True) - test_dataloader = DataLoader(test_data, batch_size=batch_size, - shuffle=True) - # Create a net - net = Networks.FNNBer(init_std_y=init_std_y) - net = net.to(device) - net.std_y_par.requires_grad = False - std_x_map = lambda: 0.0 - std_y_map = lambda: net.get_std_y().detach().cpu().item() - # Create epoch_map - criterion = loss_functions.nll_reg_loss - epoch_map = UpdatedTrainEpoch(train_dataloader=train_dataloader, - test_dataloader=test_dataloader, - criterion=criterion, std_y_map=std_y_map, std_x_map=std_x_map, - lr=lr, reg=reg,report_point=report_point, device=device) - epoch_map.val_data_pure = val_data_pure - # run and save - save_file = os.path.join('saved_networks','noneiv_mexican_std_x_%.3f'\ - '_std_y_%.3f_init_std_y_%.3f_ensemble_seed_%i.pkl'\ - % (std_x, std_y, init_std_y, int(seed))) - train_and_store.train_and_store(net=net, - epoch_map=epoch_map, - number_of_epochs=number_of_epochs, - save_file=save_file) - - -if __name__ == '__main__': - for seed in seed_list: - print('SEED: %i' % (seed,)) - for init_std_y in init_std_y_list: - for std_x in std_x_list: - print('->->Using std_x=%.2f and init_std_y=%.2f<-<-<-<-' - %(std_x, init_std_y)) - train_on_data(std_x, init_std_y, seed) diff --git a/Experiments/old_scripts/train_noneiv_mexican_fixed_std_x.py b/Experiments/old_scripts/train_noneiv_mexican_fixed_std_x.py deleted file mode 100644 index 8044383..0000000 --- a/Experiments/old_scripts/train_noneiv_mexican_fixed_std_x.py +++ /dev/null @@ -1,133 +0,0 @@ -import random -import os - -import numpy as np -import torch -import torch.nn as nn -from torch.utils.data import DataLoader, TensorDataset - -from EIVArchitectures import Networks -import generate_mexican_data -from EIVTrainingRoutines import train_and_store, loss_functions - -# hyperparameters -lr = 1e-3 -batch_size = 25 -number_of_epochs = 1000 -reg = 1e-7 -report_point = 5 -p = 0.5 -lr_update = 950 -pretraining = 300 -epoch_offset = pretraining -std_x_list = [0.07] -init_std_y_list = [0.15] -std_y = 0.3 -device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') - -# reproducability -torch.backends.cudnn.benchmark = False -def set_seeds(seed): - np.random.seed(seed) - random.seed(seed) - torch.manual_seed(seed) -seed_list = range(20) - -# To store the RMSE -rmse_chain = [] - -class UpdatedTrainEpoch(train_and_store.TrainEpoch): - def pre_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - """ - if epoch == 0: - self.lr = self.initial_lr - self.optimizer = torch.optim.Adam(net.parameters(), lr=self.lr) - self.lr_scheduler = torch.optim.lr_scheduler.StepLR( - self.optimizer, lr_update, 0.1 - ) - - - def post_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - """ - if epoch >= epoch_offset: - net.std_y_par.requires_grad = True - self.lr_scheduler.step() - - def extra_report(self, net, i): - """ - Overwrites the corresponding method - **Note**: self.val_data_pure has to be defined explicitely - and fed after initialiaztion of this class - """ - rmse = self.rmse(net).item() - rmse_chain.append(rmse) - print('RMSE %.2f', rmse) - - def rmse(self, net): - """ - Compute the root mean squared error for `net` - """ - mse = 0 - net_train_state = net.training - net.eval() - x, y = self.val_data_pure - out = net(x.to(device))[0].detach().cpu() - if net_train_state: - net.train() - return torch.sqrt(torch.mean((out-y)**2)) - - -def train_on_data(std_x, init_std_y, seed): - """ - Loads data associated with `std_x` and trains an Bernoulli Modell. - """ - # load Datasets - train_data_pure, train_data,\ - test_data_pure,test_data,\ - val_data_pure,val_data = \ - generate_mexican_data.get_data(std_x=std_x, - std_y=std_y)[:-1] - train_data = TensorDataset(*train_data) - test_data = TensorDataset(*test_data) - set_seeds(seed) - # make to dataloader - train_dataloader = DataLoader(train_data, batch_size=batch_size, - shuffle=True) - test_dataloader = DataLoader(test_data, batch_size=batch_size, - shuffle=True) - # Create a net - net = Networks.FNNBer(init_std_y=init_std_y) - net = net.to(device) - net.std_y_par.requires_grad = False - std_x_map = lambda: 0.0 - std_y_map = lambda: net.get_std_y().detach().cpu().item() - # Create epoch_map - criterion = loss_functions.nll_reg_loss - epoch_map = UpdatedTrainEpoch(train_dataloader=train_dataloader, - test_dataloader=test_dataloader, - criterion=criterion, std_y_map=std_y_map, std_x_map=std_x_map, - lr=lr, reg=reg,report_point=report_point, device=device) - epoch_map.val_data_pure = val_data_pure - # run and save - save_file = os.path.join('saved_networks', - 'noneiv_mexican_fixed_std_x_%.3f_std_y_%.3f'\ - '_init_std_y_%.3f_seed_%i.pkl'\ - % (std_x, std_y, init_std_y, int(seed))) - train_and_store.train_and_store(net=net, - epoch_map=epoch_map, - number_of_epochs=number_of_epochs, - save_file=save_file) - - -if __name__ == '__main__': - std_x = std_x_list[0] - for seed in seed_list: - print('SEED: %i' % (seed,)) - for init_std_y in init_std_y_list: - print('->->Using std_x=%.2f and init_std_y=%.2f<-<-<-<-' - %(std_x, init_std_y)) - train_on_data(std_x, init_std_y, seed) diff --git a/Experiments/old_scripts/train_noneiv_multinomial.py b/Experiments/old_scripts/train_noneiv_multinomial.py deleted file mode 100644 index 7385621..0000000 --- a/Experiments/old_scripts/train_noneiv_multinomial.py +++ /dev/null @@ -1,136 +0,0 @@ -import random -import os - -import numpy as np -import torch -import torch.nn as nn -from torch.utils.data import DataLoader, TensorDataset - -from EIVArchitectures import Networks -from generate_multinomial_data import get_data -from EIVTrainingRoutines import train_and_store, loss_functions - -# hyperparameters -lr = 1e-3 -batch_size = 200 -number_of_epochs = 350 -reg = 1e-6 -report_point = 40 -precision_prior_zeta=0.0 -n_train = 100000 -dim = 5 -p = 0.5 -lr_update = 300 -pretraining = 200 -epoch_offset = pretraining -std_x_list = [0.05,0.07,0.10] -deming_scale_list = [0.01, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.4, 0.5] -init_std_y_list = [0.15] -std_y = 0.30 -device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') - -# reproducability -torch.backends.cudnn.benchmark = False -def set_seeds(seed): - np.random.seed(seed) - random.seed(seed) - torch.manual_seed(seed) -seed_list = range(20) - -# To store the RMSE -rmse_chain = [] - -class UpdatedTrainEpoch(train_and_store.TrainEpoch): - def pre_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - """ - if epoch == 0: - self.lr = self.initial_lr - self.optimizer = torch.optim.Adam(net.parameters(), lr=self.lr) - self.lr_scheduler = torch.optim.lr_scheduler.StepLR( - self.optimizer, lr_update, 0.1 - ) - - - def post_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - """ - if epoch >= epoch_offset: - net.std_y_par.requires_grad = True - self.lr_scheduler.step() - - def extra_report(self, net, i): - """ - Overwrites the corresponding method - **Note**: self.val_data_pure has to be defined explicitely - and fed after initialiaztion of this class - """ - rmse = self.rmse(net).item() - rmse_chain.append(rmse) - print('RMSE %.2f', rmse) - - def rmse(self, net): - """ - Compute the root mean squared error for `net` - """ - mse = 0 - net_train_state = net.training - net.eval() - x, y = self.val_data_pure - out = net(x.to(device))[0].detach().cpu() - if net_train_state: - net.train() - return torch.sqrt(torch.mean((out-y)**2)) - - -def train_on_data(std_x, init_std_y, seed): - """ - Loads data associated with `std_x` and trains an Bernoulli Modell. - """ - # load Datasets - _, train_data, _, test_data, val_data_pure, _, _ =\ - get_data(std_x=std_x, std_y=std_y, dim=dim, n_train=n_train) - train_data = TensorDataset(*train_data ) - test_data = TensorDataset(*test_data ) - set_seeds(seed) - # make to dataloader - train_dataloader = DataLoader(train_data, batch_size=batch_size, - shuffle=True) - test_dataloader = DataLoader(test_data, batch_size=batch_size, - shuffle=True) - # Create a net - net = Networks.FNNBer(p=p, init_std_y=init_std_y, - h=[dim,500,300,100,1]) - net = net.to(device) - net.std_y_par.requires_grad = False - std_x_map = lambda: 0.0 - std_y_map = lambda: net.get_std_y().detach().cpu().item() - # Create epoch_map - criterion = loss_functions.nll_reg_loss - epoch_map = UpdatedTrainEpoch(train_dataloader=train_dataloader, - test_dataloader=test_dataloader, - criterion=criterion, std_y_map=std_y_map, std_x_map=std_x_map, - lr=lr, reg=reg,report_point=report_point, device=device) - epoch_map.val_data_pure = val_data_pure - # run and save - save_file = os.path.join('saved_networks','noneiv_multinomial_std_x_%.3f'\ - '_std_y_%.3f_init_std_y_%.3f_seed_%i.pkl'\ - % (std_x, std_y, init_std_y, seed)) - train_and_store.train_and_store(net=net, - epoch_map=epoch_map, - number_of_epochs=number_of_epochs, - save_file=save_file, - rmse=rmse_chain) - - -if __name__ == '__main__': - for seed in seed_list: - print('SEED: %i' % (seed,)) - for init_std_y in init_std_y_list: - for std_x in std_x_list: - print('->->Using std_x=%.2f and init_std_y=%.2f<-<-<-<-' - %(std_x, init_std_y)) - rmse_chain.clear() - train_on_data(std_x, init_std_y, seed) diff --git a/Experiments/old_scripts/train_noneiv_multinomial_ensemble_seed.py b/Experiments/old_scripts/train_noneiv_multinomial_ensemble_seed.py deleted file mode 100644 index 54eb8e2..0000000 --- a/Experiments/old_scripts/train_noneiv_multinomial_ensemble_seed.py +++ /dev/null @@ -1,136 +0,0 @@ -import random -import os - -import numpy as np -import torch -import torch.nn as nn -from torch.utils.data import DataLoader, TensorDataset - -from EIVArchitectures import Networks -from generate_multinomial_data import get_data -from EIVTrainingRoutines import train_and_store, loss_functions - -# hyperparameters -lr = 1e-3 -batch_size = 200 -number_of_epochs = 350 -reg = 1e-6 -report_point = 40 -precision_prior_zeta=0.0 -n_train = 100000 -dim = 5 -p = 0.5 -lr_update = 300 -pretraining = 200 -epoch_offset = pretraining -std_x_list = [0.05,0.07,0.10] -deming_scale_list = [0.01, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.4, 0.5] -init_std_y_list = [0.15] -std_y = 0.30 -device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') - -# reproducability -torch.backends.cudnn.benchmark = False -def set_seeds(seed): - np.random.seed(seed) - random.seed(seed) - torch.manual_seed(seed) -seed_list = range(20, 20+ 20*5) - -# To store the RMSE -rmse_chain = [] - -class UpdatedTrainEpoch(train_and_store.TrainEpoch): - def pre_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - """ - if epoch == 0: - self.lr = self.initial_lr - self.optimizer = torch.optim.Adam(net.parameters(), lr=self.lr) - self.lr_scheduler = torch.optim.lr_scheduler.StepLR( - self.optimizer, lr_update, 0.1 - ) - - - def post_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - """ - if epoch >= epoch_offset: - net.std_y_par.requires_grad = True - self.lr_scheduler.step() - - def extra_report(self, net, i): - """ - Overwrites the corresponding method - **Note**: self.val_data_pure has to be defined explicitely - and fed after initialiaztion of this class - """ - rmse = self.rmse(net).item() - rmse_chain.append(rmse) - print('RMSE %.2f', rmse) - - def rmse(self, net): - """ - Compute the root mean squared error for `net` - """ - mse = 0 - net_train_state = net.training - net.eval() - x, y = self.val_data_pure - out = net(x.to(device))[0].detach().cpu() - if net_train_state: - net.train() - return torch.sqrt(torch.mean((out-y)**2)) - - -def train_on_data(std_x, init_std_y, seed): - """ - Loads data associated with `std_x` and trains an Bernoulli Modell. - """ - # load Datasets - _, train_data, _, test_data, val_data_pure, _, _ =\ - get_data(std_x=std_x, std_y=std_y, dim=dim, n_train=n_train) - train_data = TensorDataset(*train_data ) - test_data = TensorDataset(*test_data ) - set_seeds(seed) - # make to dataloader - train_dataloader = DataLoader(train_data, batch_size=batch_size, - shuffle=True) - test_dataloader = DataLoader(test_data, batch_size=batch_size, - shuffle=True) - # Create a net - net = Networks.FNNBer(p=p, init_std_y=init_std_y, - h=[dim,500,300,100,1]) - net = net.to(device) - net.std_y_par.requires_grad = False - std_x_map = lambda: 0.0 - std_y_map = lambda: net.get_std_y().detach().cpu().item() - # Create epoch_map - criterion = loss_functions.nll_reg_loss - epoch_map = UpdatedTrainEpoch(train_dataloader=train_dataloader, - test_dataloader=test_dataloader, - criterion=criterion, std_y_map=std_y_map, std_x_map=std_x_map, - lr=lr, reg=reg,report_point=report_point, device=device) - epoch_map.val_data_pure = val_data_pure - # run and save - save_file = os.path.join('saved_networks','noneiv_multinomial_std_x_%.3f'\ - '_std_y_%.3f_init_std_y_%.3f_ensemble_seed_%i.pkl'\ - % (std_x, std_y, init_std_y, seed)) - train_and_store.train_and_store(net=net, - epoch_map=epoch_map, - number_of_epochs=number_of_epochs, - save_file=save_file, - rmse=rmse_chain) - - -if __name__ == '__main__': - for seed in seed_list: - print('SEED: %i' % (seed,)) - for init_std_y in init_std_y_list: - for std_x in std_x_list: - print('->->Using std_x=%.2f and init_std_y=%.2f<-<-<-<-' - %(std_x, init_std_y)) - rmse_chain.clear() - train_on_data(std_x, init_std_y, seed) diff --git a/Experiments/old_scripts/train_noneiv_vd_mexican.py b/Experiments/old_scripts/train_noneiv_vd_mexican.py deleted file mode 100644 index 0089d40..0000000 --- a/Experiments/old_scripts/train_noneiv_vd_mexican.py +++ /dev/null @@ -1,134 +0,0 @@ -import random -import os - -import numpy as np -import torch -import torch.nn as nn -from torch.utils.data import DataLoader, TensorDataset - -from EIVArchitectures import Networks -import generate_mexican_data -from EIVTrainingRoutines import train_and_store, loss_functions - -# hyperparameters -lr = 1e-3 -batch_size = 25 -number_of_epochs = 1000 -reg = [1e-7, 1/generate_mexican_data.n_train] -report_point = 5 -precision_prior_zeta=0.0 -initial_alpha = 0.5 -lr_update = 950 -pretraining = 300 -epoch_offset = pretraining -std_x_list = [0.05, 0.07, 0.10] -init_std_y_list = [0.15] -std_y = 0.3 -device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') - -# reproducability -torch.backends.cudnn.benchmark = False -def set_seeds(seed): - np.random.seed(seed) - random.seed(seed) - torch.manual_seed(seed) -seed_list = range(20) - -# to store the RMSE -rmse_chain = [] - -class UpdatedTrainEpoch(train_and_store.TrainEpoch): - def pre_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - """ - if epoch == 0: - self.lr = self.initial_lr - self.optimizer = torch.optim.Adam(net.parameters(), lr=self.lr) - self.lr_scheduler = torch.optim.lr_scheduler.StepLR( - self.optimizer, lr_update, 0.1 - ) - - - def post_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - """ - if epoch >= epoch_offset: - net.std_y_par.requires_grad = True - self.lr_scheduler.step() - - def extra_report(self, net, i): - """ - Overwrites the corresponding method - **Note**: self.val_data_pure has to be defined explicitely - and fed after initialiaztion of this class - """ - rmse = self.rmse(net).item() - rmse_chain.append(rmse) - print('RMSE %.2f', rmse) - - def rmse(self, net): - """ - Compute the root mean squared error for `net` - """ - mse = 0 - net_train_state = net.training - net.eval() - x, y = self.val_data_pure - out = net(x.to(device))[0].detach().cpu() - if net_train_state: - net.train() - return torch.sqrt(torch.mean((out-y)**2)) - - -def train_on_data(std_x, init_std_y, seed): - """ - Loads data associated with `std_x` and trains a VD model - """ - # load Datasets - train_data_pure, train_data,\ - test_data_pure,test_data,\ - val_data_pure,val_data = \ - generate_mexican_data.get_data(std_x=std_x, - std_y=std_y)[:-1] - train_data = TensorDataset(*train_data) - test_data = TensorDataset(*test_data) - set_seeds(seed) - # make to dataloader - train_dataloader = DataLoader(train_data, batch_size=batch_size, - shuffle=True) - test_dataloader = DataLoader(test_data, batch_size=batch_size, - shuffle=True) - # Create a net - net = Networks.FNN_VD_Ber(initial_alpha=initial_alpha, - init_std_y=init_std_y) - net = net.to(device) - net.std_y_par.requires_grad = False - std_x_map = lambda: 0.0 - std_y_map = lambda: net.get_std_y().detach().cpu().item() - # Create epoch_map - criterion = loss_functions.nll_reg_loss - epoch_map = UpdatedTrainEpoch(train_dataloader=train_dataloader, - test_dataloader=test_dataloader, - criterion=criterion, std_y_map=std_y_map, std_x_map=std_x_map, - lr=lr, reg=reg,report_point=report_point, device=device) - epoch_map.val_data_pure = val_data_pure - # run and save - save_file = os.path.join('saved_networks','noneiv_vd_mexican_std_x_%.3f'\ - '_std_y_%.3f_init_std_y_%.3f_seed_%i.pkl'\ - % (std_x, std_y, init_std_y, int(seed))) - train_and_store.train_and_store(net=net, - epoch_map=epoch_map, - number_of_epochs=number_of_epochs, - save_file=save_file) - - -if __name__ == '__main__': - for seed in seed_list: - print('SEED: %i' % (seed,)) - for init_std_y in init_std_y_list: - for std_x in std_x_list: - print('->->Using std_x=%.2f and init_std_y=%.2f<-<-<-<-' - %(std_x, init_std_y)) - train_on_data(std_x, init_std_y, seed) diff --git a/Experiments/old_scripts/train_noneiv_vd_multinomial.py b/Experiments/old_scripts/train_noneiv_vd_multinomial.py deleted file mode 100644 index 21da0f1..0000000 --- a/Experiments/old_scripts/train_noneiv_vd_multinomial.py +++ /dev/null @@ -1,136 +0,0 @@ -import random -import os - -import numpy as np -import torch -import torch.nn as nn -from torch.utils.data import DataLoader, TensorDataset - -from EIVArchitectures import Networks -from generate_multinomial_data import get_data -from EIVTrainingRoutines import train_and_store, loss_functions - -# hyperparameters -lr = 1e-3 -batch_size = 200 -number_of_epochs = 350 -n_train = 100000 -reg = [1e-6, 1/n_train] -report_point = 40 -precision_prior_zeta=0.0 -dim = 5 -initial_alpha = 0.5 -lr_update = 300 -pretraining = 200 -epoch_offset = pretraining -std_x_list = [0.05,0.07,0.10] -deming_scale_list = [0.01, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.4, 0.5] -init_std_y_list = [0.15] -std_y = 0.30 -device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') - -# reproducability -torch.backends.cudnn.benchmark = False -def set_seeds(seed): - np.random.seed(seed) - random.seed(seed) - torch.manual_seed(seed) -seed_list = range(20) - -# To store the RMSE -rmse_chain = [] - -class UpdatedTrainEpoch(train_and_store.TrainEpoch): - def pre_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - """ - if epoch == 0: - self.lr = self.initial_lr - self.optimizer = torch.optim.Adam(net.parameters(), lr=self.lr) - self.lr_scheduler = torch.optim.lr_scheduler.StepLR( - self.optimizer, lr_update, 0.1 - ) - - - def post_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - """ - if epoch >= epoch_offset: - net.std_y_par.requires_grad = True - self.lr_scheduler.step() - - def extra_report(self, net, i): - """ - Overwrites the corresponding method - **Note**: self.val_data_pure has to be defined explicitely - and fed after initialiaztion of this class - """ - rmse = self.rmse(net).item() - rmse_chain.append(rmse) - print('RMSE %.2f', rmse) - - def rmse(self, net): - """ - Compute the root mean squared error for `net` - """ - mse = 0 - net_train_state = net.training - net.eval() - x, y = self.val_data_pure - out = net(x.to(device))[0].detach().cpu() - if net_train_state: - net.train() - return torch.sqrt(torch.mean((out-y)**2)) - - -def train_on_data(std_x, init_std_y, seed): - """ - Loads data associated with `std_x` and trains an Bernoulli Modell. - """ - # load Datasets - _, train_data, _, test_data, val_data_pure, _, _ =\ - get_data(std_x=std_x, std_y=std_y, dim=dim, n_train=n_train) - train_data = TensorDataset(*train_data ) - test_data = TensorDataset(*test_data ) - set_seeds(seed) - # make to dataloader - train_dataloader = DataLoader(train_data, batch_size=batch_size, - shuffle=True) - test_dataloader = DataLoader(test_data, batch_size=batch_size, - shuffle=True) - # Create a net - net = Networks.FNN_VD_Ber(initial_alpha=initial_alpha, init_std_y=init_std_y, - h=[dim,500,300,100,1]) - net = net.to(device) - net.std_y_par.requires_grad = False - std_x_map = lambda: 0.0 - std_y_map = lambda: net.get_std_y().detach().cpu().item() - # Create epoch_map - criterion = loss_functions.nll_reg_loss - epoch_map = UpdatedTrainEpoch(train_dataloader=train_dataloader, - test_dataloader=test_dataloader, - criterion=criterion, std_y_map=std_y_map, std_x_map=std_x_map, - lr=lr, reg=reg,report_point=report_point, device=device) - epoch_map.val_data_pure = val_data_pure - # run and save - save_file = os.path.join('saved_networks','noneiv_vd_multinomial_std_x_%.3f'\ - '_std_y_%.3f_init_std_y_%.3f_seed_%i.pkl'\ - % (std_x, std_y, init_std_y, seed)) - train_and_store.train_and_store(net=net, - epoch_map=epoch_map, - number_of_epochs=number_of_epochs, - save_file=save_file, - rmse=rmse_chain) - - -if __name__ == '__main__': - for seed in seed_list: - print('SEED: %i' % (seed,)) - for init_std_y in init_std_y_list: - for std_x in std_x_list: - print('->->Using std_x=%.2f and init_std_y=%.2f<-<-<-<-' - %(std_x, init_std_y)) - rmse_chain.clear() - train_on_data(std_x, init_std_y, seed) diff --git a/Experiments/old_scripts/train_noneiv_wine.py b/Experiments/old_scripts/train_noneiv_wine.py deleted file mode 100644 index f57bc9b..0000000 --- a/Experiments/old_scripts/train_noneiv_wine.py +++ /dev/null @@ -1,127 +0,0 @@ -import random -import os - -import numpy as np -import torch -import torch.nn as nn -from torch.utils.data import DataLoader, TensorDataset - -from EIVArchitectures import Networks -from generate_wine_data import train_x, train_y,\ - test_x, test_y, train_data, test_data -from EIVTrainingRoutines import train_and_store, loss_functions - -# hyperparameters -lr = 1e-3 -batch_size = 16 -number_of_epochs = 400 -reg = 1e-9 -report_point = 20 -precision_prior_zeta=0.0 -dim = train_x.shape[-1] -train_len = train_x.shape[0] -p = 0.5 -lr_update = 250 -pretraining = 50 -epoch_offset = pretraining -init_std_y_list = [0.15] -device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') - -# reproducability -torch.backends.cudnn.benchmark = False -def set_seeds(seed): - np.random.seed(seed) - random.seed(seed) - torch.manual_seed(seed) -seed_list = range(20) - -rmse_chain = [] - - -class UpdatedTrainEpoch(train_and_store.TrainEpoch): - def pre_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method. - """ - if epoch == 0: - self.lr = self.initial_lr - self.optimizer = torch.optim.Adam(net.parameters(), lr=self.lr) - self.lr_scheduler = torch.optim.lr_scheduler.StepLR( - self.optimizer, lr_update, 0.1 - ) - - - def post_epoch_update(self, net, epoch): - """ - Overwrites the corresponding method - """ - if epoch >= epoch_offset: - net.std_y_par.requires_grad = True - self.lr_scheduler.step() - - def extra_report(self, net, i): - """ - Overwrites the corresponding method - **Note**: self.test_couple has to be defined explicitely - and fed after initialiaztion of this class - """ - rmse = self.rmse(net).item() - rmse_chain.append(rmse) - print('RMSE %.2f', rmse) - - def rmse(self, net): - """ - Compute the root mean squared error for `net` - """ - mse = 0 - net_train_state = net.training - net.eval() - x, y = self.test_couple - out = net(x.to(device))[0].detach().cpu().view((-1,)) - y = y.view((-1,)) - if net_train_state: - net.train() - return torch.sqrt(torch.mean((out-y)**2)) - - -def train_on_data(init_std_y, seed): - """ - Trains a Bernoulli Modell - """ - set_seeds(seed) - # make to dataloader - train_dataloader = DataLoader(train_data, batch_size=batch_size, - shuffle=True) - test_dataloader = DataLoader(test_data, batch_size=batch_size, - shuffle=True) - # Create a net - net = Networks.FNNBer(init_std_y=init_std_y, h=[dim,200,100,50,1]) - net = net.to(device) - net.std_y_par.requires_grad = False - std_x_map = lambda: 0.0 - std_y_map = lambda: net.get_std_y().detach().cpu().item() - # Create epoch_map - criterion = loss_functions.nll_reg_loss - epoch_map = UpdatedTrainEpoch( - train_dataloader=train_dataloader, - test_dataloader=test_dataloader, - criterion=criterion, std_y_map=std_y_map, std_x_map=std_x_map, - lr=lr, reg=reg,report_point=report_point, device=device) - epoch_map.test_couple = (test_x, test_y) - # run and save - save_file = os.path.join('saved_networks', - 'noneiv_wine_init_std_y_%.3f_seed_%i.pkl'\ - % (init_std_y,seed)) - train_and_store.train_and_store(net=net, - epoch_map=epoch_map, - number_of_epochs=number_of_epochs, - save_file=save_file, - rmse=rmse_chain) - - -if __name__ == '__main__': - for seed in seed_list: - for init_std_y in init_std_y_list: - print('->->Using init_std_y=%.2f<-<-<-<-' - %(init_std_y)) - train_on_data(init_std_y, seed) diff --git a/Experiments/old_scripts/winequality-red.csv b/Experiments/old_scripts/winequality-red.csv deleted file mode 100644 index 62e674c..0000000 --- a/Experiments/old_scripts/winequality-red.csv +++ /dev/null @@ -1,1600 +0,0 @@ -fixed acidity,volatile acidity,citric acid,residual sugar,chlorides,free sulfur dioxide,total sulfur dioxide,density,pH,sulphates,alcohol,quality -7.4,0.7,0.0,1.9,0.076,11.0,34.0,0.9978,3.51,0.56,9.4,5 -7.8,0.88,0.0,2.6,0.098,25.0,67.0,0.9968,3.2,0.68,9.8,5 -7.8,0.76,0.04,2.3,0.092,15.0,54.0,0.997,3.26,0.65,9.8,5 -11.2,0.28,0.56,1.9,0.075,17.0,60.0,0.998,3.16,0.58,9.8,6 -7.4,0.7,0.0,1.9,0.076,11.0,34.0,0.9978,3.51,0.56,9.4,5 -7.4,0.66,0.0,1.8,0.075,13.0,40.0,0.9978,3.51,0.56,9.4,5 -7.9,0.6,0.06,1.6,0.069,15.0,59.0,0.9964,3.3,0.46,9.4,5 -7.3,0.65,0.0,1.2,0.065,15.0,21.0,0.9946,3.39,0.47,10.0,7 -7.8,0.58,0.02,2.0,0.073,9.0,18.0,0.9968,3.36,0.57,9.5,7 -7.5,0.5,0.36,6.1,0.071,17.0,102.0,0.9978,3.35,0.8,10.5,5 -6.7,0.58,0.08,1.8,0.09699999999999999,15.0,65.0,0.9959,3.28,0.54,9.2,5 -7.5,0.5,0.36,6.1,0.071,17.0,102.0,0.9978,3.35,0.8,10.5,5 -5.6,0.615,0.0,1.6,0.08900000000000001,16.0,59.0,0.9943,3.58,0.52,9.9,5 -7.8,0.61,0.29,1.6,0.114,9.0,29.0,0.9974,3.26,1.56,9.1,5 -8.9,0.62,0.18,3.8,0.17600000000000002,52.0,145.0,0.9986,3.16,0.88,9.2,5 -8.9,0.62,0.19,3.9,0.17,51.0,148.0,0.9986,3.17,0.93,9.2,5 -8.5,0.28,0.56,1.8,0.092,35.0,103.0,0.9969,3.3,0.75,10.5,7 -8.1,0.56,0.28,1.7,0.368,16.0,56.0,0.9968,3.11,1.28,9.3,5 -7.4,0.59,0.08,4.4,0.086,6.0,29.0,0.9974,3.38,0.5,9.0,4 -7.9,0.32,0.51,1.8,0.341,17.0,56.0,0.9969,3.04,1.08,9.2,6 -8.9,0.22,0.48,1.8,0.077,29.0,60.0,0.9968,3.39,0.53,9.4,6 -7.6,0.39,0.31,2.3,0.08199999999999999,23.0,71.0,0.9982,3.52,0.65,9.7,5 -7.9,0.43,0.21,1.6,0.106,10.0,37.0,0.9966,3.17,0.91,9.5,5 -8.5,0.49,0.11,2.3,0.084,9.0,67.0,0.9968,3.17,0.53,9.4,5 -6.9,0.4,0.14,2.4,0.085,21.0,40.0,0.9968,3.43,0.63,9.7,6 -6.3,0.39,0.16,1.4,0.08,11.0,23.0,0.9955,3.34,0.56,9.3,5 -7.6,0.41,0.24,1.8,0.08,4.0,11.0,0.9962,3.28,0.59,9.5,5 -7.9,0.43,0.21,1.6,0.106,10.0,37.0,0.9966,3.17,0.91,9.5,5 -7.1,0.71,0.0,1.9,0.08,14.0,35.0,0.9972,3.47,0.55,9.4,5 -7.8,0.645,0.0,2.0,0.08199999999999999,8.0,16.0,0.9964,3.38,0.59,9.8,6 -6.7,0.675,0.07,2.4,0.08900000000000001,17.0,82.0,0.9958,3.35,0.54,10.1,5 -6.9,0.685,0.0,2.5,0.105,22.0,37.0,0.9966,3.46,0.57,10.6,6 -8.3,0.655,0.12,2.3,0.083,15.0,113.0,0.9966,3.17,0.66,9.8,5 -6.9,0.605,0.12,10.7,0.073,40.0,83.0,0.9993,3.45,0.52,9.4,6 -5.2,0.32,0.25,1.8,0.10300000000000001,13.0,50.0,0.9957,3.38,0.55,9.2,5 -7.8,0.645,0.0,5.5,0.086,5.0,18.0,0.9986,3.4,0.55,9.6,6 -7.8,0.6,0.14,2.4,0.086,3.0,15.0,0.9975,3.42,0.6,10.8,6 -8.1,0.38,0.28,2.1,0.066,13.0,30.0,0.9968,3.23,0.73,9.7,7 -5.7,1.13,0.09,1.5,0.172,7.0,19.0,0.9940000000000001,3.5,0.48,9.8,4 -7.3,0.45,0.36,5.9,0.07400000000000001,12.0,87.0,0.9978,3.33,0.83,10.5,5 -7.3,0.45,0.36,5.9,0.07400000000000001,12.0,87.0,0.9978,3.33,0.83,10.5,5 -8.8,0.61,0.3,2.8,0.08800000000000001,17.0,46.0,0.9976,3.26,0.51,9.3,4 -7.5,0.49,0.2,2.6,0.332,8.0,14.0,0.9968,3.21,0.9,10.5,6 -8.1,0.66,0.22,2.2,0.069,9.0,23.0,0.9968,3.3,1.2,10.3,5 -6.8,0.67,0.02,1.8,0.05,5.0,11.0,0.9962,3.48,0.52,9.5,5 -4.6,0.52,0.15,2.1,0.054000000000000006,8.0,65.0,0.9934,3.9,0.56,13.1,4 -7.7,0.935,0.43,2.2,0.114,22.0,114.0,0.997,3.25,0.73,9.2,5 -8.7,0.29,0.52,1.6,0.113,12.0,37.0,0.9969,3.25,0.58,9.5,5 -6.4,0.4,0.23,1.6,0.066,5.0,12.0,0.9958,3.34,0.56,9.2,5 -5.6,0.31,0.37,1.4,0.07400000000000001,12.0,96.0,0.9954,3.32,0.58,9.2,5 -8.8,0.66,0.26,1.7,0.07400000000000001,4.0,23.0,0.9971,3.15,0.74,9.2,5 -6.6,0.52,0.04,2.2,0.069,8.0,15.0,0.9956,3.4,0.63,9.4,6 -6.6,0.5,0.04,2.1,0.068,6.0,14.0,0.9955,3.39,0.64,9.4,6 -8.6,0.38,0.36,3.0,0.081,30.0,119.0,0.997,3.2,0.56,9.4,5 -7.6,0.51,0.15,2.8,0.11,33.0,73.0,0.9955,3.17,0.63,10.2,6 -7.7,0.62,0.04,3.8,0.084,25.0,45.0,0.9978,3.34,0.53,9.5,5 -10.2,0.42,0.57,3.4,0.07,4.0,10.0,0.9971,3.04,0.63,9.6,5 -7.5,0.63,0.12,5.1,0.111,50.0,110.0,0.9983,3.26,0.77,9.4,5 -7.8,0.59,0.18,2.3,0.076,17.0,54.0,0.9975,3.43,0.59,10.0,5 -7.3,0.39,0.31,2.4,0.07400000000000001,9.0,46.0,0.9962,3.41,0.54,9.4,6 -8.8,0.4,0.4,2.2,0.079,19.0,52.0,0.998,3.44,0.64,9.2,5 -7.7,0.69,0.49,1.8,0.115,20.0,112.0,0.9968,3.21,0.71,9.3,5 -7.5,0.52,0.16,1.9,0.085,12.0,35.0,0.9968,3.38,0.62,9.5,7 -7.0,0.735,0.05,2.0,0.081,13.0,54.0,0.9966,3.39,0.57,9.8,5 -7.2,0.725,0.05,4.65,0.086,4.0,11.0,0.9962,3.41,0.39,10.9,5 -7.2,0.725,0.05,4.65,0.086,4.0,11.0,0.9962,3.41,0.39,10.9,5 -7.5,0.52,0.11,1.5,0.079,11.0,39.0,0.9968,3.42,0.58,9.6,5 -6.6,0.705,0.07,1.6,0.076,6.0,15.0,0.9962,3.44,0.58,10.7,5 -9.3,0.32,0.57,2.0,0.07400000000000001,27.0,65.0,0.9969,3.28,0.79,10.7,5 -8.0,0.705,0.05,1.9,0.07400000000000001,8.0,19.0,0.9962,3.34,0.95,10.5,6 -7.7,0.63,0.08,1.9,0.076,15.0,27.0,0.9967,3.32,0.54,9.5,6 -7.7,0.67,0.23,2.1,0.08800000000000001,17.0,96.0,0.9962,3.32,0.48,9.5,5 -7.7,0.69,0.22,1.9,0.084,18.0,94.0,0.9961,3.31,0.48,9.5,5 -8.3,0.675,0.26,2.1,0.084,11.0,43.0,0.9976,3.31,0.53,9.2,4 -9.7,0.32,0.54,2.5,0.094,28.0,83.0,0.9984,3.28,0.82,9.6,5 -8.8,0.41,0.64,2.2,0.09300000000000001,9.0,42.0,0.9986,3.54,0.66,10.5,5 -8.8,0.41,0.64,2.2,0.09300000000000001,9.0,42.0,0.9986,3.54,0.66,10.5,5 -6.8,0.785,0.0,2.4,0.10400000000000001,14.0,30.0,0.9966,3.52,0.55,10.7,6 -6.7,0.75,0.12,2.0,0.086,12.0,80.0,0.9958,3.38,0.52,10.1,5 -8.3,0.625,0.2,1.5,0.08,27.0,119.0,0.9972,3.16,1.12,9.1,4 -6.2,0.45,0.2,1.6,0.069,3.0,15.0,0.9958,3.41,0.56,9.2,5 -7.8,0.43,0.7,1.9,0.46399999999999997,22.0,67.0,0.9974,3.13,1.28,9.4,5 -7.4,0.5,0.47,2.0,0.086,21.0,73.0,0.997,3.36,0.57,9.1,5 -7.3,0.67,0.26,1.8,0.401,16.0,51.0,0.9969,3.16,1.14,9.4,5 -6.3,0.3,0.48,1.8,0.069,18.0,61.0,0.9959,3.44,0.78,10.3,6 -6.9,0.55,0.15,2.2,0.076,19.0,40.0,0.9961,3.41,0.59,10.1,5 -8.6,0.49,0.28,1.9,0.11,20.0,136.0,0.9972,2.93,1.95,9.9,6 -7.7,0.49,0.26,1.9,0.062,9.0,31.0,0.9966,3.39,0.64,9.6,5 -9.3,0.39,0.44,2.1,0.107,34.0,125.0,0.9978,3.14,1.22,9.5,5 -7.0,0.62,0.08,1.8,0.076,8.0,24.0,0.9978,3.48,0.53,9.0,5 -7.9,0.52,0.26,1.9,0.079,42.0,140.0,0.9964,3.23,0.54,9.5,5 -8.6,0.49,0.28,1.9,0.11,20.0,136.0,0.9972,2.93,1.95,9.9,6 -8.6,0.49,0.29,2.0,0.11,19.0,133.0,0.9972,2.93,1.98,9.8,5 -7.7,0.49,0.26,1.9,0.062,9.0,31.0,0.9966,3.39,0.64,9.6,5 -5.0,1.02,0.04,1.4,0.045,41.0,85.0,0.9938,3.75,0.48,10.5,4 -4.7,0.6,0.17,2.3,0.057999999999999996,17.0,106.0,0.9932,3.85,0.6,12.9,6 -6.8,0.775,0.0,3.0,0.102,8.0,23.0,0.9965,3.45,0.56,10.7,5 -7.0,0.5,0.25,2.0,0.07,3.0,22.0,0.9963,3.25,0.63,9.2,5 -7.6,0.9,0.06,2.5,0.079,5.0,10.0,0.9967,3.39,0.56,9.8,5 -8.1,0.545,0.18,1.9,0.08,13.0,35.0,0.9972,3.3,0.59,9.0,6 -8.3,0.61,0.3,2.1,0.084,11.0,50.0,0.9972,3.4,0.61,10.2,6 -7.8,0.5,0.3,1.9,0.075,8.0,22.0,0.9959,3.31,0.56,10.4,6 -8.1,0.545,0.18,1.9,0.08,13.0,35.0,0.9972,3.3,0.59,9.0,6 -8.1,0.575,0.22,2.1,0.077,12.0,65.0,0.9967,3.29,0.51,9.2,5 -7.2,0.49,0.24,2.2,0.07,5.0,36.0,0.996,3.33,0.48,9.4,5 -8.1,0.575,0.22,2.1,0.077,12.0,65.0,0.9967,3.29,0.51,9.2,5 -7.8,0.41,0.68,1.7,0.467,18.0,69.0,0.9973,3.08,1.31,9.3,5 -6.2,0.63,0.31,1.7,0.08800000000000001,15.0,64.0,0.9969,3.46,0.79,9.3,5 -8.0,0.33,0.53,2.5,0.091,18.0,80.0,0.9976,3.37,0.8,9.6,6 -8.1,0.785,0.52,2.0,0.122,37.0,153.0,0.9969,3.21,0.69,9.3,5 -7.8,0.56,0.19,1.8,0.10400000000000001,12.0,47.0,0.9964,3.19,0.93,9.5,5 -8.4,0.62,0.09,2.2,0.084,11.0,108.0,0.9964,3.15,0.66,9.8,5 -8.4,0.6,0.1,2.2,0.085,14.0,111.0,0.9964,3.15,0.66,9.8,5 -10.1,0.31,0.44,2.3,0.08,22.0,46.0,0.9988,3.32,0.67,9.7,6 -7.8,0.56,0.19,1.8,0.10400000000000001,12.0,47.0,0.9964,3.19,0.93,9.5,5 -9.4,0.4,0.31,2.2,0.09,13.0,62.0,0.9966,3.07,0.63,10.5,6 -8.3,0.54,0.28,1.9,0.077,11.0,40.0,0.9978,3.39,0.61,10.0,6 -7.8,0.56,0.12,2.0,0.08199999999999999,7.0,28.0,0.997,3.37,0.5,9.4,6 -8.8,0.55,0.04,2.2,0.11900000000000001,14.0,56.0,0.9962,3.21,0.6,10.9,6 -7.0,0.69,0.08,1.8,0.09699999999999999,22.0,89.0,0.9959,3.34,0.54,9.2,6 -7.3,1.07,0.09,1.7,0.17800000000000002,10.0,89.0,0.9962,3.3,0.57,9.0,5 -8.8,0.55,0.04,2.2,0.11900000000000001,14.0,56.0,0.9962,3.21,0.6,10.9,6 -7.3,0.695,0.0,2.5,0.075,3.0,13.0,0.998,3.49,0.52,9.2,5 -8.0,0.71,0.0,2.6,0.08,11.0,34.0,0.9976,3.44,0.53,9.5,5 -7.8,0.5,0.17,1.6,0.08199999999999999,21.0,102.0,0.996,3.39,0.48,9.5,5 -9.0,0.62,0.04,1.9,0.146,27.0,90.0,0.9984,3.16,0.7,9.4,5 -8.2,1.33,0.0,1.7,0.081,3.0,12.0,0.9964,3.53,0.49,10.9,5 -8.1,1.33,0.0,1.8,0.08199999999999999,3.0,12.0,0.9964,3.54,0.48,10.9,5 -8.0,0.59,0.16,1.8,0.065,3.0,16.0,0.9962,3.42,0.92,10.5,7 -6.1,0.38,0.15,1.8,0.07200000000000001,6.0,19.0,0.9955,3.42,0.57,9.4,5 -8.0,0.745,0.56,2.0,0.11800000000000001,30.0,134.0,0.9968,3.24,0.66,9.4,5 -5.6,0.5,0.09,2.3,0.049,17.0,99.0,0.9937,3.63,0.63,13.0,5 -5.6,0.5,0.09,2.3,0.049,17.0,99.0,0.9937,3.63,0.63,13.0,5 -6.6,0.5,0.01,1.5,0.06,17.0,26.0,0.9952,3.4,0.58,9.8,6 -7.9,1.04,0.05,2.2,0.084,13.0,29.0,0.9959,3.22,0.55,9.9,6 -8.4,0.745,0.11,1.9,0.09,16.0,63.0,0.9965,3.19,0.82,9.6,5 -8.3,0.715,0.15,1.8,0.08900000000000001,10.0,52.0,0.9968,3.23,0.77,9.5,5 -7.2,0.415,0.36,2.0,0.081,13.0,45.0,0.9972,3.48,0.64,9.2,5 -7.8,0.56,0.19,2.1,0.081,15.0,105.0,0.9962,3.33,0.54,9.5,5 -7.8,0.56,0.19,2.0,0.081,17.0,108.0,0.9962,3.32,0.54,9.5,5 -8.4,0.745,0.11,1.9,0.09,16.0,63.0,0.9965,3.19,0.82,9.6,5 -8.3,0.715,0.15,1.8,0.08900000000000001,10.0,52.0,0.9968,3.23,0.77,9.5,5 -5.2,0.34,0.0,1.8,0.05,27.0,63.0,0.9916,3.68,0.79,14.0,6 -6.3,0.39,0.08,1.7,0.066,3.0,20.0,0.9954,3.34,0.58,9.4,5 -5.2,0.34,0.0,1.8,0.05,27.0,63.0,0.9916,3.68,0.79,14.0,6 -8.1,0.67,0.55,1.8,0.11699999999999999,32.0,141.0,0.9968,3.17,0.62,9.4,5 -5.8,0.68,0.02,1.8,0.087,21.0,94.0,0.9944,3.54,0.52,10.0,5 -7.6,0.49,0.26,1.6,0.23600000000000002,10.0,88.0,0.9968,3.11,0.8,9.3,5 -6.9,0.49,0.1,2.3,0.07400000000000001,12.0,30.0,0.9959,3.42,0.58,10.2,6 -8.2,0.4,0.44,2.8,0.08900000000000001,11.0,43.0,0.9975,3.53,0.61,10.5,6 -7.3,0.33,0.47,2.1,0.077,5.0,11.0,0.9958,3.33,0.53,10.3,6 -9.2,0.52,1.0,3.4,0.61,32.0,69.0,0.9996,2.74,2.0,9.4,4 -7.5,0.6,0.03,1.8,0.095,25.0,99.0,0.995,3.35,0.54,10.1,5 -7.5,0.6,0.03,1.8,0.095,25.0,99.0,0.995,3.35,0.54,10.1,5 -7.1,0.43,0.42,5.5,0.07,29.0,129.0,0.9973,3.42,0.72,10.5,5 -7.1,0.43,0.42,5.5,0.071,28.0,128.0,0.9973,3.42,0.71,10.5,5 -7.1,0.43,0.42,5.5,0.07,29.0,129.0,0.9973,3.42,0.72,10.5,5 -7.1,0.43,0.42,5.5,0.071,28.0,128.0,0.9973,3.42,0.71,10.5,5 -7.1,0.68,0.0,2.2,0.073,12.0,22.0,0.9969,3.48,0.5,9.3,5 -6.8,0.6,0.18,1.9,0.079,18.0,86.0,0.9968,3.59,0.57,9.3,6 -7.6,0.95,0.03,2.0,0.09,7.0,20.0,0.9959,3.2,0.56,9.6,5 -7.6,0.68,0.02,1.3,0.07200000000000001,9.0,20.0,0.9965,3.17,1.08,9.2,4 -7.8,0.53,0.04,1.7,0.076,17.0,31.0,0.9964,3.33,0.56,10.0,6 -7.4,0.6,0.26,7.3,0.07,36.0,121.0,0.9982,3.37,0.49,9.4,5 -7.3,0.59,0.26,7.2,0.07,35.0,121.0,0.9981,3.37,0.49,9.4,5 -7.8,0.63,0.48,1.7,0.1,14.0,96.0,0.9961,3.19,0.62,9.5,5 -6.8,0.64,0.1,2.1,0.085,18.0,101.0,0.9956,3.34,0.52,10.2,5 -7.3,0.55,0.03,1.6,0.07200000000000001,17.0,42.0,0.9956,3.37,0.48,9.0,4 -6.8,0.63,0.07,2.1,0.08900000000000001,11.0,44.0,0.9953,3.47,0.55,10.4,6 -7.5,0.705,0.24,1.8,0.36,15.0,63.0,0.9964,3.0,1.59,9.5,5 -7.9,0.885,0.03,1.8,0.057999999999999996,4.0,8.0,0.9972,3.36,0.33,9.1,4 -8.0,0.42,0.17,2.0,0.073,6.0,18.0,0.9972,3.29,0.61,9.2,6 -8.0,0.42,0.17,2.0,0.073,6.0,18.0,0.9972,3.29,0.61,9.2,6 -7.4,0.62,0.05,1.9,0.068,24.0,42.0,0.9961,3.42,0.57,11.5,6 -7.3,0.38,0.21,2.0,0.08,7.0,35.0,0.9961,3.33,0.47,9.5,5 -6.9,0.5,0.04,1.5,0.085,19.0,49.0,0.9958,3.35,0.78,9.5,5 -7.3,0.38,0.21,2.0,0.08,7.0,35.0,0.9961,3.33,0.47,9.5,5 -7.5,0.52,0.42,2.3,0.087,8.0,38.0,0.9972,3.58,0.61,10.5,6 -7.0,0.805,0.0,2.5,0.068,7.0,20.0,0.9969,3.48,0.56,9.6,5 -8.8,0.61,0.14,2.4,0.067,10.0,42.0,0.9969,3.19,0.59,9.5,5 -8.8,0.61,0.14,2.4,0.067,10.0,42.0,0.9969,3.19,0.59,9.5,5 -8.9,0.61,0.49,2.0,0.27,23.0,110.0,0.9972,3.12,1.02,9.3,5 -7.2,0.73,0.02,2.5,0.076,16.0,42.0,0.9972,3.44,0.52,9.3,5 -6.8,0.61,0.2,1.8,0.077,11.0,65.0,0.9971,3.54,0.58,9.3,5 -6.7,0.62,0.21,1.9,0.079,8.0,62.0,0.997,3.52,0.58,9.3,6 -8.9,0.31,0.57,2.0,0.111,26.0,85.0,0.9971,3.26,0.53,9.7,5 -7.4,0.39,0.48,2.0,0.08199999999999999,14.0,67.0,0.9972,3.34,0.55,9.2,5 -7.7,0.705,0.1,2.6,0.084,9.0,26.0,0.9976,3.39,0.49,9.7,5 -7.9,0.5,0.33,2.0,0.084,15.0,143.0,0.9968,3.2,0.55,9.5,5 -7.9,0.49,0.32,1.9,0.08199999999999999,17.0,144.0,0.9968,3.2,0.55,9.5,5 -8.2,0.5,0.35,2.9,0.077,21.0,127.0,0.9976,3.23,0.62,9.4,5 -6.4,0.37,0.25,1.9,0.07400000000000001,21.0,49.0,0.9974,3.57,0.62,9.8,6 -6.8,0.63,0.12,3.8,0.099,16.0,126.0,0.9969,3.28,0.61,9.5,5 -7.6,0.55,0.21,2.2,0.071,7.0,28.0,0.9964,3.28,0.55,9.7,5 -7.6,0.55,0.21,2.2,0.071,7.0,28.0,0.9964,3.28,0.55,9.7,5 -7.8,0.59,0.33,2.0,0.07400000000000001,24.0,120.0,0.9968,3.25,0.54,9.4,5 -7.3,0.58,0.3,2.4,0.07400000000000001,15.0,55.0,0.9968,3.46,0.59,10.2,5 -11.5,0.3,0.6,2.0,0.067,12.0,27.0,0.9981,3.11,0.97,10.1,6 -5.4,0.835,0.08,1.2,0.046,13.0,93.0,0.9924,3.57,0.85,13.0,7 -6.9,1.09,0.06,2.1,0.061,12.0,31.0,0.9948,3.51,0.43,11.4,4 -9.6,0.32,0.47,1.4,0.055999999999999994,9.0,24.0,0.99695,3.22,0.82,10.3,7 -8.8,0.37,0.48,2.1,0.09699999999999999,39.0,145.0,0.9975,3.04,1.03,9.3,5 -6.8,0.5,0.11,1.5,0.075,16.0,49.0,0.99545,3.36,0.79,9.5,5 -7.0,0.42,0.35,1.6,0.08800000000000001,16.0,39.0,0.9961,3.34,0.55,9.2,5 -7.0,0.43,0.36,1.6,0.08900000000000001,14.0,37.0,0.99615,3.34,0.56,9.2,6 -12.8,0.3,0.74,2.6,0.095,9.0,28.0,0.9994,3.2,0.77,10.8,7 -12.8,0.3,0.74,2.6,0.095,9.0,28.0,0.9994,3.2,0.77,10.8,7 -7.8,0.57,0.31,1.8,0.069,26.0,120.0,0.99625,3.29,0.53,9.3,5 -7.8,0.44,0.28,2.7,0.1,18.0,95.0,0.9966,3.22,0.67,9.4,5 -11.0,0.3,0.58,2.1,0.054000000000000006,7.0,19.0,0.998,3.31,0.88,10.5,7 -9.7,0.53,0.6,2.0,0.039,5.0,19.0,0.99585,3.3,0.86,12.4,6 -8.0,0.725,0.24,2.8,0.083,10.0,62.0,0.99685,3.35,0.56,10.0,6 -11.6,0.44,0.64,2.1,0.059000000000000004,5.0,15.0,0.998,3.21,0.67,10.2,6 -8.2,0.57,0.26,2.2,0.06,28.0,65.0,0.9959,3.3,0.43,10.1,5 -7.8,0.735,0.08,2.4,0.092,10.0,41.0,0.9974,3.24,0.71,9.8,6 -7.0,0.49,0.49,5.6,0.06,26.0,121.0,0.9974,3.34,0.76,10.5,5 -8.7,0.625,0.16,2.0,0.10099999999999999,13.0,49.0,0.9962,3.14,0.57,11.0,5 -8.1,0.725,0.22,2.2,0.07200000000000001,11.0,41.0,0.9967,3.36,0.55,9.1,5 -7.5,0.49,0.19,1.9,0.076,10.0,44.0,0.9957,3.39,0.54,9.7,5 -7.8,0.53,0.33,2.4,0.08,24.0,144.0,0.99655,3.3,0.6,9.5,5 -7.8,0.34,0.37,2.0,0.08199999999999999,24.0,58.0,0.9964,3.34,0.59,9.4,6 -7.4,0.53,0.26,2.0,0.10099999999999999,16.0,72.0,0.9957,3.15,0.57,9.4,5 -6.8,0.61,0.04,1.5,0.057,5.0,10.0,0.99525,3.42,0.6,9.5,5 -8.6,0.645,0.25,2.0,0.083,8.0,28.0,0.99815,3.28,0.6,10.0,6 -8.4,0.635,0.36,2.0,0.08900000000000001,15.0,55.0,0.99745,3.31,0.57,10.4,4 -7.7,0.43,0.25,2.6,0.073,29.0,63.0,0.99615,3.37,0.58,10.5,6 -8.9,0.59,0.5,2.0,0.337,27.0,81.0,0.9964,3.04,1.61,9.5,6 -9.0,0.82,0.14,2.6,0.08900000000000001,9.0,23.0,0.9984,3.39,0.63,9.8,5 -7.7,0.43,0.25,2.6,0.073,29.0,63.0,0.99615,3.37,0.58,10.5,6 -6.9,0.52,0.25,2.6,0.081,10.0,37.0,0.99685,3.46,0.5,11.0,5 -5.2,0.48,0.04,1.6,0.054000000000000006,19.0,106.0,0.9927,3.54,0.62,12.2,7 -8.0,0.38,0.06,1.8,0.078,12.0,49.0,0.99625,3.37,0.52,9.9,6 -8.5,0.37,0.2,2.8,0.09,18.0,58.0,0.998,3.34,0.7,9.6,6 -6.9,0.52,0.25,2.6,0.081,10.0,37.0,0.99685,3.46,0.5,11.0,5 -8.2,1.0,0.09,2.3,0.065,7.0,37.0,0.99685,3.32,0.55,9.0,6 -7.2,0.63,0.0,1.9,0.09699999999999999,14.0,38.0,0.99675,3.37,0.58,9.0,6 -7.2,0.63,0.0,1.9,0.09699999999999999,14.0,38.0,0.99675,3.37,0.58,9.0,6 -7.2,0.645,0.0,1.9,0.09699999999999999,15.0,39.0,0.99675,3.37,0.58,9.2,6 -7.2,0.63,0.0,1.9,0.09699999999999999,14.0,38.0,0.99675,3.37,0.58,9.0,6 -8.2,1.0,0.09,2.3,0.065,7.0,37.0,0.99685,3.32,0.55,9.0,6 -8.9,0.635,0.37,1.7,0.263,5.0,62.0,0.9971,3.0,1.09,9.3,5 -12.0,0.38,0.56,2.1,0.09300000000000001,6.0,24.0,0.99925,3.14,0.71,10.9,6 -7.7,0.58,0.1,1.8,0.102,28.0,109.0,0.99565,3.08,0.49,9.8,6 -15.0,0.21,0.44,2.2,0.075,10.0,24.0,1.00005,3.07,0.84,9.2,7 -15.0,0.21,0.44,2.2,0.075,10.0,24.0,1.00005,3.07,0.84,9.2,7 -7.3,0.66,0.0,2.0,0.084,6.0,23.0,0.9983,3.61,0.96,9.9,6 -7.1,0.68,0.07,1.9,0.075,16.0,51.0,0.99685,3.38,0.52,9.5,5 -8.2,0.6,0.17,2.3,0.07200000000000001,11.0,73.0,0.9963,3.2,0.45,9.3,5 -7.7,0.53,0.06,1.7,0.07400000000000001,9.0,39.0,0.99615,3.35,0.48,9.8,6 -7.3,0.66,0.0,2.0,0.084,6.0,23.0,0.9983,3.61,0.96,9.9,6 -10.8,0.32,0.44,1.6,0.063,16.0,37.0,0.9985,3.22,0.78,10.0,6 -7.1,0.6,0.0,1.8,0.07400000000000001,16.0,34.0,0.9972,3.47,0.7,9.9,6 -11.1,0.35,0.48,3.1,0.09,5.0,21.0,0.9986,3.17,0.53,10.5,5 -7.7,0.775,0.42,1.9,0.092,8.0,86.0,0.9959,3.23,0.59,9.5,5 -7.1,0.6,0.0,1.8,0.07400000000000001,16.0,34.0,0.9972,3.47,0.7,9.9,6 -8.0,0.57,0.23,3.2,0.073,17.0,119.0,0.99675,3.26,0.57,9.3,5 -9.4,0.34,0.37,2.2,0.075,5.0,13.0,0.998,3.22,0.62,9.2,5 -6.6,0.695,0.0,2.1,0.075,12.0,56.0,0.9968,3.49,0.67,9.2,5 -7.7,0.41,0.76,1.8,0.611,8.0,45.0,0.9968,3.06,1.26,9.4,5 -10.0,0.31,0.47,2.6,0.085,14.0,33.0,0.99965,3.36,0.8,10.5,7 -7.9,0.33,0.23,1.7,0.077,18.0,45.0,0.99625,3.29,0.65,9.3,5 -7.0,0.975,0.04,2.0,0.087,12.0,67.0,0.99565,3.35,0.6,9.4,4 -8.0,0.52,0.03,1.7,0.07,10.0,35.0,0.99575,3.34,0.57,10.0,5 -7.9,0.37,0.23,1.8,0.077,23.0,49.0,0.9963,3.28,0.67,9.3,5 -12.5,0.56,0.49,2.4,0.064,5.0,27.0,0.9999,3.08,0.87,10.9,5 -11.8,0.26,0.52,1.8,0.071,6.0,10.0,0.9968,3.2,0.72,10.2,7 -8.1,0.87,0.0,3.3,0.096,26.0,61.0,1.00025,3.6,0.72,9.8,4 -7.9,0.35,0.46,3.6,0.078,15.0,37.0,0.9973,3.35,0.86,12.8,8 -6.9,0.54,0.04,3.0,0.077,7.0,27.0,0.9987,3.69,0.91,9.4,6 -11.5,0.18,0.51,4.0,0.10400000000000001,4.0,23.0,0.9996,3.28,0.97,10.1,6 -7.9,0.545,0.06,4.0,0.087,27.0,61.0,0.9965,3.36,0.67,10.7,6 -11.5,0.18,0.51,4.0,0.10400000000000001,4.0,23.0,0.9996,3.28,0.97,10.1,6 -10.9,0.37,0.58,4.0,0.071,17.0,65.0,0.99935,3.22,0.78,10.1,5 -8.4,0.715,0.2,2.4,0.076,10.0,38.0,0.99735,3.31,0.64,9.4,5 -7.5,0.65,0.18,7.0,0.08800000000000001,27.0,94.0,0.99915,3.38,0.77,9.4,5 -7.9,0.545,0.06,4.0,0.087,27.0,61.0,0.9965,3.36,0.67,10.7,6 -6.9,0.54,0.04,3.0,0.077,7.0,27.0,0.9987,3.69,0.91,9.4,6 -11.5,0.18,0.51,4.0,0.10400000000000001,4.0,23.0,0.9996,3.28,0.97,10.1,6 -10.3,0.32,0.45,6.4,0.073,5.0,13.0,0.9976,3.23,0.82,12.6,8 -8.9,0.4,0.32,5.6,0.087,10.0,47.0,0.9991,3.38,0.77,10.5,7 -11.4,0.26,0.44,3.6,0.071,6.0,19.0,0.9986,3.12,0.82,9.3,6 -7.7,0.27,0.68,3.5,0.358,5.0,10.0,0.9972,3.25,1.08,9.9,7 -7.6,0.52,0.12,3.0,0.067,12.0,53.0,0.9971,3.36,0.57,9.1,5 -8.9,0.4,0.32,5.6,0.087,10.0,47.0,0.9991,3.38,0.77,10.5,7 -9.9,0.59,0.07,3.4,0.102,32.0,71.0,1.00015,3.31,0.71,9.8,5 -9.9,0.59,0.07,3.4,0.102,32.0,71.0,1.00015,3.31,0.71,9.8,5 -12.0,0.45,0.55,2.0,0.073,25.0,49.0,0.9997,3.1,0.76,10.3,6 -7.5,0.4,0.12,3.0,0.092,29.0,53.0,0.9967,3.37,0.7,10.3,6 -8.7,0.52,0.09,2.5,0.091,20.0,49.0,0.9976,3.34,0.86,10.6,7 -11.6,0.42,0.53,3.3,0.105,33.0,98.0,1.001,3.2,0.95,9.2,5 -8.7,0.52,0.09,2.5,0.091,20.0,49.0,0.9976,3.34,0.86,10.6,7 -11.0,0.2,0.48,2.0,0.34299999999999997,6.0,18.0,0.9979,3.3,0.71,10.5,5 -10.4,0.55,0.23,2.7,0.091,18.0,48.0,0.9994,3.22,0.64,10.3,6 -6.9,0.36,0.25,2.4,0.098,5.0,16.0,0.9964,3.41,0.6,10.1,6 -13.3,0.34,0.52,3.2,0.094,17.0,53.0,1.0014,3.05,0.81,9.5,6 -10.8,0.5,0.46,2.5,0.073,5.0,27.0,1.0001,3.05,0.64,9.5,5 -10.6,0.83,0.37,2.6,0.086,26.0,70.0,0.9981,3.16,0.52,9.9,5 -7.1,0.63,0.06,2.0,0.083,8.0,29.0,0.99855,3.67,0.73,9.6,5 -7.2,0.65,0.02,2.3,0.094,5.0,31.0,0.9993,3.67,0.8,9.7,5 -6.9,0.67,0.06,2.1,0.08,8.0,33.0,0.99845,3.68,0.71,9.6,5 -7.5,0.53,0.06,2.6,0.086,20.0,44.0,0.9965,3.38,0.59,10.7,6 -11.1,0.18,0.48,1.5,0.068,7.0,15.0,0.9973,3.22,0.64,10.1,6 -8.3,0.705,0.12,2.6,0.092,12.0,28.0,0.9994,3.51,0.72,10.0,5 -7.4,0.67,0.12,1.6,0.18600000000000003,5.0,21.0,0.996,3.39,0.54,9.5,5 -8.4,0.65,0.6,2.1,0.11199999999999999,12.0,90.0,0.9973,3.2,0.52,9.2,5 -10.3,0.53,0.48,2.5,0.063,6.0,25.0,0.9998,3.12,0.59,9.3,6 -7.6,0.62,0.32,2.2,0.08199999999999999,7.0,54.0,0.9966,3.36,0.52,9.4,5 -10.3,0.41,0.42,2.4,0.213,6.0,14.0,0.9994,3.19,0.62,9.5,6 -10.3,0.43,0.44,2.4,0.214,5.0,12.0,0.9994,3.19,0.63,9.5,6 -7.4,0.29,0.38,1.7,0.062,9.0,30.0,0.9968,3.41,0.53,9.5,6 -10.3,0.53,0.48,2.5,0.063,6.0,25.0,0.9998,3.12,0.59,9.3,6 -7.9,0.53,0.24,2.0,0.07200000000000001,15.0,105.0,0.996,3.27,0.54,9.4,6 -9.0,0.46,0.31,2.8,0.09300000000000001,19.0,98.0,0.99815,3.32,0.63,9.5,6 -8.6,0.47,0.3,3.0,0.076,30.0,135.0,0.9976,3.3,0.53,9.4,5 -7.4,0.36,0.29,2.6,0.087,26.0,72.0,0.99645,3.39,0.68,11.0,5 -7.1,0.35,0.29,2.5,0.096,20.0,53.0,0.9962,3.42,0.65,11.0,6 -9.6,0.56,0.23,3.4,0.102,37.0,92.0,0.9996,3.3,0.65,10.1,5 -9.6,0.77,0.12,2.9,0.08199999999999999,30.0,74.0,0.99865,3.3,0.64,10.4,6 -9.8,0.66,0.39,3.2,0.083,21.0,59.0,0.9989,3.37,0.71,11.5,7 -9.6,0.77,0.12,2.9,0.08199999999999999,30.0,74.0,0.99865,3.3,0.64,10.4,6 -9.8,0.66,0.39,3.2,0.083,21.0,59.0,0.9989,3.37,0.71,11.5,7 -9.3,0.61,0.26,3.4,0.09,25.0,87.0,0.99975,3.24,0.62,9.7,5 -7.8,0.62,0.05,2.3,0.079,6.0,18.0,0.99735,3.29,0.63,9.3,5 -10.3,0.59,0.42,2.8,0.09,35.0,73.0,0.9990000000000001,3.28,0.7,9.5,6 -10.0,0.49,0.2,11.0,0.071,13.0,50.0,1.0015,3.16,0.69,9.2,6 -10.0,0.49,0.2,11.0,0.071,13.0,50.0,1.0015,3.16,0.69,9.2,6 -11.6,0.53,0.66,3.65,0.121,6.0,14.0,0.9978,3.05,0.74,11.5,7 -10.3,0.44,0.5,4.5,0.107,5.0,13.0,0.998,3.28,0.83,11.5,5 -13.4,0.27,0.62,2.6,0.08199999999999999,6.0,21.0,1.0002,3.16,0.67,9.7,6 -10.7,0.46,0.39,2.0,0.061,7.0,15.0,0.9981,3.18,0.62,9.5,5 -10.2,0.36,0.64,2.9,0.122,10.0,41.0,0.998,3.23,0.66,12.5,6 -10.2,0.36,0.64,2.9,0.122,10.0,41.0,0.998,3.23,0.66,12.5,6 -8.0,0.58,0.28,3.2,0.066,21.0,114.0,0.9973,3.22,0.54,9.4,6 -8.4,0.56,0.08,2.1,0.105,16.0,44.0,0.9958,3.13,0.52,11.0,5 -7.9,0.65,0.01,2.5,0.078,17.0,38.0,0.9963,3.34,0.74,11.7,7 -11.9,0.695,0.53,3.4,0.128,7.0,21.0,0.9992,3.17,0.84,12.2,7 -8.9,0.43,0.45,1.9,0.052000000000000005,6.0,16.0,0.9948,3.35,0.7,12.5,6 -7.8,0.43,0.32,2.8,0.08,29.0,58.0,0.9974,3.31,0.64,10.3,5 -12.4,0.49,0.58,3.0,0.10300000000000001,28.0,99.0,1.0008,3.16,1.0,11.5,6 -12.5,0.28,0.54,2.3,0.08199999999999999,12.0,29.0,0.9997,3.11,1.36,9.8,7 -12.2,0.34,0.5,2.4,0.066,10.0,21.0,1.0,3.12,1.18,9.2,6 -10.6,0.42,0.48,2.7,0.065,5.0,18.0,0.9972,3.21,0.87,11.3,6 -10.9,0.39,0.47,1.8,0.11800000000000001,6.0,14.0,0.9982,3.3,0.75,9.8,6 -10.9,0.39,0.47,1.8,0.11800000000000001,6.0,14.0,0.9982,3.3,0.75,9.8,6 -11.9,0.57,0.5,2.6,0.08199999999999999,6.0,32.0,1.0006,3.12,0.78,10.7,6 -7.0,0.685,0.0,1.9,0.067,40.0,63.0,0.9979,3.6,0.81,9.9,5 -6.6,0.815,0.02,2.7,0.07200000000000001,17.0,34.0,0.9955,3.58,0.89,12.3,7 -13.8,0.49,0.67,3.0,0.09300000000000001,6.0,15.0,0.9986,3.02,0.93,12.0,6 -9.6,0.56,0.31,2.8,0.08900000000000001,15.0,46.0,0.9979,3.11,0.92,10.0,6 -9.1,0.785,0.0,2.6,0.09300000000000001,11.0,28.0,0.9994,3.36,0.86,9.4,6 -10.7,0.67,0.22,2.7,0.107,17.0,34.0,1.0004,3.28,0.98,9.9,6 -9.1,0.795,0.0,2.6,0.096,11.0,26.0,0.9994,3.35,0.83,9.4,6 -7.7,0.665,0.0,2.4,0.09,8.0,19.0,0.9974,3.27,0.73,9.3,5 -13.5,0.53,0.79,4.8,0.12,23.0,77.0,1.0018,3.18,0.77,13.0,5 -6.1,0.21,0.4,1.4,0.066,40.5,165.0,0.9912,3.25,0.59,11.9,6 -6.7,0.75,0.01,2.4,0.078,17.0,32.0,0.9955,3.55,0.61,12.8,6 -11.5,0.41,0.52,3.0,0.08,29.0,55.0,1.0001,3.26,0.88,11.0,5 -10.5,0.42,0.66,2.95,0.11599999999999999,12.0,29.0,0.997,3.24,0.75,11.7,7 -11.9,0.43,0.66,3.1,0.109,10.0,23.0,1.0,3.15,0.85,10.4,7 -12.6,0.38,0.66,2.6,0.08800000000000001,10.0,41.0,1.001,3.17,0.68,9.8,6 -8.2,0.7,0.23,2.0,0.099,14.0,81.0,0.9973,3.19,0.7,9.4,5 -8.6,0.45,0.31,2.6,0.086,21.0,50.0,0.9982,3.37,0.91,9.9,6 -11.9,0.58,0.66,2.5,0.07200000000000001,6.0,37.0,0.9992,3.05,0.56,10.0,5 -12.5,0.46,0.63,2.0,0.071,6.0,15.0,0.9988,2.99,0.87,10.2,5 -12.8,0.615,0.66,5.8,0.083,7.0,42.0,1.0022,3.07,0.73,10.0,7 -10.0,0.42,0.5,3.4,0.107,7.0,21.0,0.9979,3.26,0.93,11.8,6 -12.8,0.615,0.66,5.8,0.083,7.0,42.0,1.0022,3.07,0.73,10.0,7 -10.4,0.575,0.61,2.6,0.076,11.0,24.0,1.0,3.16,0.69,9.0,5 -10.3,0.34,0.52,2.8,0.159,15.0,75.0,0.9998,3.18,0.64,9.4,5 -9.4,0.27,0.53,2.4,0.07400000000000001,6.0,18.0,0.9962,3.2,1.13,12.0,7 -6.9,0.765,0.02,2.3,0.063,35.0,63.0,0.9975,3.57,0.78,9.9,5 -7.9,0.24,0.4,1.6,0.055999999999999994,11.0,25.0,0.9967,3.32,0.87,8.7,6 -9.1,0.28,0.48,1.8,0.067,26.0,46.0,0.9967,3.32,1.04,10.6,6 -7.4,0.55,0.22,2.2,0.106,12.0,72.0,0.9959,3.05,0.63,9.2,5 -14.0,0.41,0.63,3.8,0.08900000000000001,6.0,47.0,1.0014,3.01,0.81,10.8,6 -11.5,0.54,0.71,4.4,0.124,6.0,15.0,0.9984,3.01,0.83,11.8,7 -11.5,0.45,0.5,3.0,0.078,19.0,47.0,1.0003,3.26,1.11,11.0,6 -9.4,0.27,0.53,2.4,0.07400000000000001,6.0,18.0,0.9962,3.2,1.13,12.0,7 -11.4,0.625,0.66,6.2,0.08800000000000001,6.0,24.0,0.9988,3.11,0.99,13.3,6 -8.3,0.42,0.38,2.5,0.094,24.0,60.0,0.9979,3.31,0.7,10.8,6 -8.3,0.26,0.42,2.0,0.08,11.0,27.0,0.9974,3.21,0.8,9.4,6 -13.7,0.415,0.68,2.9,0.085,17.0,43.0,1.0014,3.06,0.8,10.0,6 -8.3,0.26,0.42,2.0,0.08,11.0,27.0,0.9974,3.21,0.8,9.4,6 -8.3,0.26,0.42,2.0,0.08,11.0,27.0,0.9974,3.21,0.8,9.4,6 -7.7,0.51,0.28,2.1,0.087,23.0,54.0,0.998,3.42,0.74,9.2,5 -7.4,0.63,0.07,2.4,0.09,11.0,37.0,0.9979,3.43,0.76,9.7,6 -7.8,0.54,0.26,2.0,0.08800000000000001,23.0,48.0,0.9981,3.41,0.74,9.2,6 -8.3,0.66,0.15,1.9,0.079,17.0,42.0,0.9972,3.31,0.54,9.6,6 -7.8,0.46,0.26,1.9,0.08800000000000001,23.0,53.0,0.9981,3.43,0.74,9.2,6 -9.6,0.38,0.31,2.5,0.096,16.0,49.0,0.9982,3.19,0.7,10.0,7 -5.6,0.85,0.05,1.4,0.045,12.0,88.0,0.9924,3.56,0.82,12.9,8 -13.7,0.415,0.68,2.9,0.085,17.0,43.0,1.0014,3.06,0.8,10.0,6 -9.5,0.37,0.52,2.0,0.08199999999999999,6.0,26.0,0.998,3.18,0.51,9.5,5 -8.4,0.665,0.61,2.0,0.11199999999999999,13.0,95.0,0.997,3.16,0.54,9.1,5 -12.7,0.6,0.65,2.3,0.063,6.0,25.0,0.9997,3.03,0.57,9.9,5 -12.0,0.37,0.76,4.2,0.066,7.0,38.0,1.0004,3.22,0.6,13.0,7 -6.6,0.735,0.02,7.9,0.122,68.0,124.0,0.9994,3.47,0.53,9.9,5 -11.5,0.59,0.59,2.6,0.087,13.0,49.0,0.9988,3.18,0.65,11.0,6 -11.5,0.59,0.59,2.6,0.087,13.0,49.0,0.9988,3.18,0.65,11.0,6 -8.7,0.765,0.22,2.3,0.064,9.0,42.0,0.9963,3.1,0.55,9.4,5 -6.6,0.735,0.02,7.9,0.122,68.0,124.0,0.9994,3.47,0.53,9.9,5 -7.7,0.26,0.3,1.7,0.059000000000000004,20.0,38.0,0.9949,3.29,0.47,10.8,6 -12.2,0.48,0.54,2.6,0.085,19.0,64.0,1.0,3.1,0.61,10.5,6 -11.4,0.6,0.49,2.7,0.085,10.0,41.0,0.9994,3.15,0.63,10.5,6 -7.7,0.69,0.05,2.7,0.075,15.0,27.0,0.9974,3.26,0.61,9.1,5 -8.7,0.31,0.46,1.4,0.059000000000000004,11.0,25.0,0.9966,3.36,0.76,10.1,6 -9.8,0.44,0.47,2.5,0.063,9.0,28.0,0.9981,3.24,0.65,10.8,6 -12.0,0.39,0.66,3.0,0.09300000000000001,12.0,30.0,0.9996,3.18,0.63,10.8,7 -10.4,0.34,0.58,3.7,0.174,6.0,16.0,0.997,3.19,0.7,11.3,6 -12.5,0.46,0.49,4.5,0.07,26.0,49.0,0.9981,3.05,0.57,9.6,4 -9.0,0.43,0.34,2.5,0.08,26.0,86.0,0.9987,3.38,0.62,9.5,6 -9.1,0.45,0.35,2.4,0.08,23.0,78.0,0.9987,3.38,0.62,9.5,5 -7.1,0.735,0.16,1.9,0.1,15.0,77.0,0.9966,3.27,0.64,9.3,5 -9.9,0.4,0.53,6.7,0.09699999999999999,6.0,19.0,0.9986,3.27,0.82,11.7,7 -8.8,0.52,0.34,2.7,0.087,24.0,122.0,0.9982,3.26,0.61,9.5,5 -8.6,0.725,0.24,6.6,0.11699999999999999,31.0,134.0,1.0014,3.32,1.07,9.3,5 -10.6,0.48,0.64,2.2,0.111,6.0,20.0,0.997,3.26,0.66,11.7,6 -7.0,0.58,0.12,1.9,0.091,34.0,124.0,0.9956,3.44,0.48,10.5,5 -11.9,0.38,0.51,2.0,0.121,7.0,20.0,0.9996,3.24,0.76,10.4,6 -6.8,0.77,0.0,1.8,0.066,34.0,52.0,0.9976,3.62,0.68,9.9,5 -9.5,0.56,0.33,2.4,0.08900000000000001,35.0,67.0,0.9972,3.28,0.73,11.8,7 -6.6,0.84,0.03,2.3,0.059000000000000004,32.0,48.0,0.9952,3.52,0.56,12.3,7 -7.7,0.96,0.2,2.0,0.047,15.0,60.0,0.9955,3.36,0.44,10.9,5 -10.5,0.24,0.47,2.1,0.066,6.0,24.0,0.9978,3.15,0.9,11.0,7 -7.7,0.96,0.2,2.0,0.047,15.0,60.0,0.9955,3.36,0.44,10.9,5 -6.6,0.84,0.03,2.3,0.059000000000000004,32.0,48.0,0.9952,3.52,0.56,12.3,7 -6.4,0.67,0.08,2.1,0.045,19.0,48.0,0.9949,3.49,0.49,11.4,6 -9.5,0.78,0.22,1.9,0.077,6.0,32.0,0.9988,3.26,0.56,10.6,6 -9.1,0.52,0.33,1.3,0.07,9.0,30.0,0.9978,3.24,0.6,9.3,5 -12.8,0.84,0.63,2.4,0.08800000000000001,13.0,35.0,0.9997,3.1,0.6,10.4,6 -10.5,0.24,0.47,2.1,0.066,6.0,24.0,0.9978,3.15,0.9,11.0,7 -7.8,0.55,0.35,2.2,0.07400000000000001,21.0,66.0,0.9974,3.25,0.56,9.2,5 -11.9,0.37,0.69,2.3,0.078,12.0,24.0,0.9958,3.0,0.65,12.8,6 -12.3,0.39,0.63,2.3,0.091,6.0,18.0,1.0004,3.16,0.49,9.5,5 -10.4,0.41,0.55,3.2,0.076,22.0,54.0,0.9996,3.15,0.89,9.9,6 -12.3,0.39,0.63,2.3,0.091,6.0,18.0,1.0004,3.16,0.49,9.5,5 -8.0,0.67,0.3,2.0,0.06,38.0,62.0,0.9958,3.26,0.56,10.2,6 -11.1,0.45,0.73,3.2,0.066,6.0,22.0,0.9986,3.17,0.66,11.2,6 -10.4,0.41,0.55,3.2,0.076,22.0,54.0,0.9996,3.15,0.89,9.9,6 -7.0,0.62,0.18,1.5,0.062,7.0,50.0,0.9951,3.08,0.6,9.3,5 -12.6,0.31,0.72,2.2,0.07200000000000001,6.0,29.0,0.9987,2.88,0.82,9.8,8 -11.9,0.4,0.65,2.15,0.068,7.0,27.0,0.9988,3.06,0.68,11.3,6 -15.6,0.685,0.76,3.7,0.1,6.0,43.0,1.0032,2.95,0.68,11.2,7 -10.0,0.44,0.49,2.7,0.077,11.0,19.0,0.9963,3.23,0.63,11.6,7 -5.3,0.57,0.01,1.7,0.054000000000000006,5.0,27.0,0.9934,3.57,0.84,12.5,7 -9.5,0.735,0.1,2.1,0.079,6.0,31.0,0.9986,3.23,0.56,10.1,6 -12.5,0.38,0.6,2.6,0.081,31.0,72.0,0.9996,3.1,0.73,10.5,5 -9.3,0.48,0.29,2.1,0.127,6.0,16.0,0.9968,3.22,0.72,11.2,5 -8.6,0.53,0.22,2.0,0.1,7.0,27.0,0.9967,3.2,0.56,10.2,6 -11.9,0.39,0.69,2.8,0.095,17.0,35.0,0.9994,3.1,0.61,10.8,6 -11.9,0.39,0.69,2.8,0.095,17.0,35.0,0.9994,3.1,0.61,10.8,6 -8.4,0.37,0.53,1.8,0.413,9.0,26.0,0.9979,3.06,1.06,9.1,6 -6.8,0.56,0.03,1.7,0.084,18.0,35.0,0.9968,3.44,0.63,10.0,6 -10.4,0.33,0.63,2.8,0.084,5.0,22.0,0.9998,3.26,0.74,11.2,7 -7.0,0.23,0.4,1.6,0.063,21.0,67.0,0.9952,3.5,0.63,11.1,5 -11.3,0.62,0.67,5.2,0.086,6.0,19.0,0.9988,3.22,0.69,13.4,8 -8.9,0.59,0.39,2.3,0.095,5.0,22.0,0.9986,3.37,0.58,10.3,5 -9.2,0.63,0.21,2.7,0.09699999999999999,29.0,65.0,0.9988,3.28,0.58,9.6,5 -10.4,0.33,0.63,2.8,0.084,5.0,22.0,0.9998,3.26,0.74,11.2,7 -11.6,0.58,0.66,2.2,0.07400000000000001,10.0,47.0,1.0008,3.25,0.57,9.0,3 -9.2,0.43,0.52,2.3,0.083,14.0,23.0,0.9976,3.35,0.61,11.3,6 -8.3,0.615,0.22,2.6,0.087,6.0,19.0,0.9982,3.26,0.61,9.3,5 -11.0,0.26,0.68,2.55,0.085,10.0,25.0,0.997,3.18,0.61,11.8,5 -8.1,0.66,0.7,2.2,0.098,25.0,129.0,0.9972,3.08,0.53,9.0,5 -11.5,0.315,0.54,2.1,0.084,5.0,15.0,0.9987,2.98,0.7,9.2,6 -10.0,0.29,0.4,2.9,0.098,10.0,26.0,1.0006,3.48,0.91,9.7,5 -10.3,0.5,0.42,2.0,0.069,21.0,51.0,0.9982,3.16,0.72,11.5,6 -8.8,0.46,0.45,2.6,0.065,7.0,18.0,0.9947,3.32,0.79,14.0,6 -11.4,0.36,0.69,2.1,0.09,6.0,21.0,1.0,3.17,0.62,9.2,6 -8.7,0.82,0.02,1.2,0.07,36.0,48.0,0.9952,3.2,0.58,9.8,5 -13.0,0.32,0.65,2.6,0.09300000000000001,15.0,47.0,0.9996,3.05,0.61,10.6,5 -9.6,0.54,0.42,2.4,0.081,25.0,52.0,0.997,3.2,0.71,11.4,6 -12.5,0.37,0.55,2.6,0.083,25.0,68.0,0.9995,3.15,0.82,10.4,6 -9.9,0.35,0.55,2.1,0.062,5.0,14.0,0.9971,3.26,0.79,10.6,5 -10.5,0.28,0.51,1.7,0.08,10.0,24.0,0.9982,3.2,0.89,9.4,6 -9.6,0.68,0.24,2.2,0.087,5.0,28.0,0.9988,3.14,0.6,10.2,5 -9.3,0.27,0.41,2.0,0.091,6.0,16.0,0.998,3.28,0.7,9.7,5 -10.4,0.24,0.49,1.8,0.075,6.0,20.0,0.9977,3.18,1.06,11.0,6 -9.6,0.68,0.24,2.2,0.087,5.0,28.0,0.9988,3.14,0.6,10.2,5 -9.4,0.685,0.11,2.7,0.077,6.0,31.0,0.9984,3.19,0.7,10.1,6 -10.6,0.28,0.39,15.5,0.069,6.0,23.0,1.0026,3.12,0.66,9.2,5 -9.4,0.3,0.56,2.8,0.08,6.0,17.0,0.9964,3.15,0.92,11.7,8 -10.6,0.36,0.59,2.2,0.152,6.0,18.0,0.9986,3.04,1.05,9.4,5 -10.6,0.36,0.6,2.2,0.152,7.0,18.0,0.9986,3.04,1.06,9.4,5 -10.6,0.44,0.68,4.1,0.114,6.0,24.0,0.997,3.06,0.66,13.4,6 -10.2,0.67,0.39,1.9,0.054000000000000006,6.0,17.0,0.9976,3.17,0.47,10.0,5 -10.2,0.67,0.39,1.9,0.054000000000000006,6.0,17.0,0.9976,3.17,0.47,10.0,5 -10.2,0.645,0.36,1.8,0.053,5.0,14.0,0.9982,3.17,0.42,10.0,6 -11.6,0.32,0.55,2.8,0.081,35.0,67.0,1.0002,3.32,0.92,10.8,7 -9.3,0.39,0.4,2.6,0.073,10.0,26.0,0.9984,3.34,0.75,10.2,6 -9.3,0.775,0.27,2.8,0.078,24.0,56.0,0.9984,3.31,0.67,10.6,6 -9.2,0.41,0.5,2.5,0.055,12.0,25.0,0.9952,3.34,0.79,13.3,7 -8.9,0.4,0.51,2.6,0.052000000000000005,13.0,27.0,0.995,3.32,0.9,13.4,7 -8.7,0.69,0.31,3.0,0.086,23.0,81.0,1.0002,3.48,0.74,11.6,6 -6.5,0.39,0.23,8.3,0.051,28.0,91.0,0.9952,3.44,0.55,12.1,6 -10.7,0.35,0.53,2.6,0.07,5.0,16.0,0.9972,3.15,0.65,11.0,8 -7.8,0.52,0.25,1.9,0.081,14.0,38.0,0.9984,3.43,0.65,9.0,6 -7.2,0.34,0.32,2.5,0.09,43.0,113.0,0.9966,3.32,0.79,11.1,5 -10.7,0.35,0.53,2.6,0.07,5.0,16.0,0.9972,3.15,0.65,11.0,8 -8.7,0.69,0.31,3.0,0.086,23.0,81.0,1.0002,3.48,0.74,11.6,6 -7.8,0.52,0.25,1.9,0.081,14.0,38.0,0.9984,3.43,0.65,9.0,6 -10.4,0.44,0.73,6.55,0.07400000000000001,38.0,76.0,0.9990000000000001,3.17,0.85,12.0,7 -10.4,0.44,0.73,6.55,0.07400000000000001,38.0,76.0,0.9990000000000001,3.17,0.85,12.0,7 -10.5,0.26,0.47,1.9,0.078,6.0,24.0,0.9976,3.18,1.04,10.9,7 -10.5,0.24,0.42,1.8,0.077,6.0,22.0,0.9976,3.21,1.05,10.8,7 -10.2,0.49,0.63,2.9,0.07200000000000001,10.0,26.0,0.9968,3.16,0.78,12.5,7 -10.4,0.24,0.46,1.8,0.075,6.0,21.0,0.9976,3.25,1.02,10.8,7 -11.2,0.67,0.55,2.3,0.084,6.0,13.0,1.0,3.17,0.71,9.5,6 -10.0,0.59,0.31,2.2,0.09,26.0,62.0,0.9994,3.18,0.63,10.2,6 -13.3,0.29,0.75,2.8,0.084,23.0,43.0,0.9986,3.04,0.68,11.4,7 -12.4,0.42,0.49,4.6,0.073,19.0,43.0,0.9978,3.02,0.61,9.5,5 -10.0,0.59,0.31,2.2,0.09,26.0,62.0,0.9994,3.18,0.63,10.2,6 -10.7,0.4,0.48,2.1,0.125,15.0,49.0,0.998,3.03,0.81,9.7,6 -10.5,0.51,0.64,2.4,0.107,6.0,15.0,0.9973,3.09,0.66,11.8,7 -10.5,0.51,0.64,2.4,0.107,6.0,15.0,0.9973,3.09,0.66,11.8,7 -8.5,0.655,0.49,6.1,0.122,34.0,151.0,1.001,3.31,1.14,9.3,5 -12.5,0.6,0.49,4.3,0.1,5.0,14.0,1.001,3.25,0.74,11.9,6 -10.4,0.61,0.49,2.1,0.2,5.0,16.0,0.9994,3.16,0.63,8.4,3 -10.9,0.21,0.49,2.8,0.08800000000000001,11.0,32.0,0.9972,3.22,0.68,11.7,6 -7.3,0.365,0.49,2.5,0.08800000000000001,39.0,106.0,0.9966,3.36,0.78,11.0,5 -9.8,0.25,0.49,2.7,0.08800000000000001,15.0,33.0,0.9982,3.42,0.9,10.0,6 -7.6,0.41,0.49,2.0,0.08800000000000001,16.0,43.0,0.998,3.48,0.64,9.1,5 -8.2,0.39,0.49,2.3,0.099,47.0,133.0,0.9979,3.38,0.99,9.8,5 -9.3,0.4,0.49,2.5,0.085,38.0,142.0,0.9978,3.22,0.55,9.4,5 -9.2,0.43,0.49,2.4,0.086,23.0,116.0,0.9976,3.23,0.64,9.5,5 -10.4,0.64,0.24,2.8,0.105,29.0,53.0,0.9998,3.24,0.67,9.9,5 -7.3,0.365,0.49,2.5,0.08800000000000001,39.0,106.0,0.9966,3.36,0.78,11.0,5 -7.0,0.38,0.49,2.5,0.09699999999999999,33.0,85.0,0.9962,3.39,0.77,11.4,6 -8.2,0.42,0.49,2.6,0.084,32.0,55.0,0.9988,3.34,0.75,8.7,6 -9.9,0.63,0.24,2.4,0.077,6.0,33.0,0.9974,3.09,0.57,9.4,5 -9.1,0.22,0.24,2.1,0.078,1.0,28.0,0.9990000000000001,3.41,0.87,10.3,6 -11.9,0.38,0.49,2.7,0.098,12.0,42.0,1.0004,3.16,0.61,10.3,5 -11.9,0.38,0.49,2.7,0.098,12.0,42.0,1.0004,3.16,0.61,10.3,5 -10.3,0.27,0.24,2.1,0.07200000000000001,15.0,33.0,0.9956,3.22,0.66,12.8,6 -10.0,0.48,0.24,2.7,0.102,13.0,32.0,1.0,3.28,0.56,10.0,6 -9.1,0.22,0.24,2.1,0.078,1.0,28.0,0.9990000000000001,3.41,0.87,10.3,6 -9.9,0.63,0.24,2.4,0.077,6.0,33.0,0.9974,3.09,0.57,9.4,5 -8.1,0.825,0.24,2.1,0.084,5.0,13.0,0.9972,3.37,0.77,10.7,6 -12.9,0.35,0.49,5.8,0.066,5.0,35.0,1.0014,3.2,0.66,12.0,7 -11.2,0.5,0.74,5.15,0.1,5.0,17.0,0.9996,3.22,0.62,11.2,5 -9.2,0.59,0.24,3.3,0.10099999999999999,20.0,47.0,0.9988,3.26,0.67,9.6,5 -9.5,0.46,0.49,6.3,0.064,5.0,17.0,0.9988,3.21,0.73,11.0,6 -9.3,0.715,0.24,2.1,0.07,5.0,20.0,0.9966,3.12,0.59,9.9,5 -11.2,0.66,0.24,2.5,0.085,16.0,53.0,0.9993,3.06,0.72,11.0,6 -14.3,0.31,0.74,1.8,0.075,6.0,15.0,1.0008,2.86,0.79,8.4,6 -9.1,0.47,0.49,2.6,0.094,38.0,106.0,0.9982,3.08,0.59,9.1,5 -7.5,0.55,0.24,2.0,0.078,10.0,28.0,0.9983,3.45,0.78,9.5,6 -10.6,0.31,0.49,2.5,0.067,6.0,21.0,0.9987,3.26,0.86,10.7,6 -12.4,0.35,0.49,2.6,0.079,27.0,69.0,0.9994,3.12,0.75,10.4,6 -9.0,0.53,0.49,1.9,0.171,6.0,25.0,0.9975,3.27,0.61,9.4,6 -6.8,0.51,0.01,2.1,0.07400000000000001,9.0,25.0,0.9958,3.33,0.56,9.5,6 -9.4,0.43,0.24,2.8,0.092,14.0,45.0,0.998,3.19,0.73,10.0,6 -9.5,0.46,0.24,2.7,0.092,14.0,44.0,0.998,3.12,0.74,10.0,6 -5.0,1.04,0.24,1.6,0.05,32.0,96.0,0.9934,3.74,0.62,11.5,5 -15.5,0.645,0.49,4.2,0.095,10.0,23.0,1.00315,2.92,0.74,11.1,5 -15.5,0.645,0.49,4.2,0.095,10.0,23.0,1.00315,2.92,0.74,11.1,5 -10.9,0.53,0.49,4.6,0.11800000000000001,10.0,17.0,1.0002,3.07,0.56,11.7,6 -15.6,0.645,0.49,4.2,0.095,10.0,23.0,1.00315,2.92,0.74,11.1,5 -10.9,0.53,0.49,4.6,0.11800000000000001,10.0,17.0,1.0002,3.07,0.56,11.7,6 -13.0,0.47,0.49,4.3,0.085,6.0,47.0,1.0021,3.3,0.68,12.7,6 -12.7,0.6,0.49,2.8,0.075,5.0,19.0,0.9994,3.14,0.57,11.4,5 -9.0,0.44,0.49,2.4,0.078,26.0,121.0,0.9978,3.23,0.58,9.2,5 -9.0,0.54,0.49,2.9,0.094,41.0,110.0,0.9982,3.08,0.61,9.2,5 -7.6,0.29,0.49,2.7,0.092,25.0,60.0,0.9971,3.31,0.61,10.1,6 -13.0,0.47,0.49,4.3,0.085,6.0,47.0,1.0021,3.3,0.68,12.7,6 -12.7,0.6,0.49,2.8,0.075,5.0,19.0,0.9994,3.14,0.57,11.4,5 -8.7,0.7,0.24,2.5,0.226,5.0,15.0,0.9991,3.32,0.6,9.0,6 -8.7,0.7,0.24,2.5,0.226,5.0,15.0,0.9991,3.32,0.6,9.0,6 -9.8,0.5,0.49,2.6,0.25,5.0,20.0,0.9990000000000001,3.31,0.79,10.7,6 -6.2,0.36,0.24,2.2,0.095,19.0,42.0,0.9946,3.57,0.57,11.7,6 -11.5,0.35,0.49,3.3,0.07,10.0,37.0,1.0003,3.32,0.91,11.0,6 -6.2,0.36,0.24,2.2,0.095,19.0,42.0,0.9946,3.57,0.57,11.7,6 -10.2,0.24,0.49,2.4,0.075,10.0,28.0,0.9978,3.14,0.61,10.4,5 -10.5,0.59,0.49,2.1,0.07,14.0,47.0,0.9991,3.3,0.56,9.6,4 -10.6,0.34,0.49,3.2,0.078,20.0,78.0,0.9992,3.19,0.7,10.0,6 -12.3,0.27,0.49,3.1,0.079,28.0,46.0,0.9993,3.2,0.8,10.2,6 -9.9,0.5,0.24,2.3,0.10300000000000001,6.0,14.0,0.9978,3.34,0.52,10.0,4 -8.8,0.44,0.49,2.8,0.083,18.0,111.0,0.9982,3.3,0.6,9.5,5 -8.8,0.47,0.49,2.9,0.085,17.0,110.0,0.9982,3.29,0.6,9.8,5 -10.6,0.31,0.49,2.2,0.063,18.0,40.0,0.9976,3.14,0.51,9.8,6 -12.3,0.5,0.49,2.2,0.08900000000000001,5.0,14.0,1.0002,3.19,0.44,9.6,5 -12.3,0.5,0.49,2.2,0.08900000000000001,5.0,14.0,1.0002,3.19,0.44,9.6,5 -11.7,0.49,0.49,2.2,0.083,5.0,15.0,1.0,3.19,0.43,9.2,5 -12.0,0.28,0.49,1.9,0.07400000000000001,10.0,21.0,0.9976,2.98,0.66,9.9,7 -11.8,0.33,0.49,3.4,0.09300000000000001,54.0,80.0,1.0002,3.3,0.76,10.7,7 -7.6,0.51,0.24,2.4,0.091,8.0,38.0,0.998,3.47,0.66,9.6,6 -11.1,0.31,0.49,2.7,0.094,16.0,47.0,0.9986,3.12,1.02,10.6,7 -7.3,0.73,0.24,1.9,0.10800000000000001,18.0,102.0,0.9967,3.26,0.59,9.3,5 -5.0,0.42,0.24,2.0,0.06,19.0,50.0,0.9917,3.72,0.74,14.0,8 -10.2,0.29,0.49,2.6,0.059000000000000004,5.0,13.0,0.9976,3.05,0.74,10.5,7 -9.0,0.45,0.49,2.6,0.084,21.0,75.0,0.9987,3.35,0.57,9.7,5 -6.6,0.39,0.49,1.7,0.07,23.0,149.0,0.9922,3.12,0.5,11.5,6 -9.0,0.45,0.49,2.6,0.084,21.0,75.0,0.9987,3.35,0.57,9.7,5 -9.9,0.49,0.58,3.5,0.094,9.0,43.0,1.0004,3.29,0.58,9.0,5 -7.9,0.72,0.17,2.6,0.096,20.0,38.0,0.9978,3.4,0.53,9.5,5 -8.9,0.595,0.41,7.9,0.086,30.0,109.0,0.9998,3.27,0.57,9.3,5 -12.4,0.4,0.51,2.0,0.059000000000000004,6.0,24.0,0.9994,3.04,0.6,9.3,6 -11.9,0.58,0.58,1.9,0.071,5.0,18.0,0.998,3.09,0.63,10.0,6 -8.5,0.585,0.18,2.1,0.078,5.0,30.0,0.9967,3.2,0.48,9.8,6 -12.7,0.59,0.45,2.3,0.08199999999999999,11.0,22.0,1.0,3.0,0.7,9.3,6 -8.2,0.915,0.27,2.1,0.08800000000000001,7.0,23.0,0.9962,3.26,0.47,10.0,4 -13.2,0.46,0.52,2.2,0.071,12.0,35.0,1.0006,3.1,0.56,9.0,6 -7.7,0.835,0.0,2.6,0.081,6.0,14.0,0.9975,3.3,0.52,9.3,5 -13.2,0.46,0.52,2.2,0.071,12.0,35.0,1.0006,3.1,0.56,9.0,6 -8.3,0.58,0.13,2.9,0.096,14.0,63.0,0.9984,3.17,0.62,9.1,6 -8.3,0.6,0.13,2.6,0.085,6.0,24.0,0.9984,3.31,0.59,9.2,6 -9.4,0.41,0.48,4.6,0.07200000000000001,10.0,20.0,0.9973,3.34,0.79,12.2,7 -8.8,0.48,0.41,3.3,0.092,26.0,52.0,0.9982,3.31,0.53,10.5,6 -10.1,0.65,0.37,5.1,0.11,11.0,65.0,1.0026,3.32,0.64,10.4,6 -6.3,0.36,0.19,3.2,0.075,15.0,39.0,0.9956,3.56,0.52,12.7,6 -8.8,0.24,0.54,2.5,0.083,25.0,57.0,0.9983,3.39,0.54,9.2,5 -13.2,0.38,0.55,2.7,0.081,5.0,16.0,1.0006,2.98,0.54,9.4,5 -7.5,0.64,0.0,2.4,0.077,18.0,29.0,0.9965,3.32,0.6,10.0,6 -8.2,0.39,0.38,1.5,0.057999999999999996,10.0,29.0,0.9962,3.26,0.74,9.8,5 -9.2,0.755,0.18,2.2,0.14800000000000002,10.0,103.0,0.9969,2.87,1.36,10.2,6 -9.6,0.6,0.5,2.3,0.079,28.0,71.0,0.9997,3.5,0.57,9.7,5 -9.6,0.6,0.5,2.3,0.079,28.0,71.0,0.9997,3.5,0.57,9.7,5 -11.5,0.31,0.51,2.2,0.079,14.0,28.0,0.9982,3.03,0.93,9.8,6 -11.4,0.46,0.5,2.7,0.122,4.0,17.0,1.0006,3.13,0.7,10.2,5 -11.3,0.37,0.41,2.3,0.08800000000000001,6.0,16.0,0.9988,3.09,0.8,9.3,5 -8.3,0.54,0.24,3.4,0.076,16.0,112.0,0.9976,3.27,0.61,9.4,5 -8.2,0.56,0.23,3.4,0.078,14.0,104.0,0.9976,3.28,0.62,9.4,5 -10.0,0.58,0.22,1.9,0.08,9.0,32.0,0.9974,3.13,0.55,9.5,5 -7.9,0.51,0.25,2.9,0.077,21.0,45.0,0.9974,3.49,0.96,12.1,6 -6.8,0.69,0.0,5.6,0.124,21.0,58.0,0.9997,3.46,0.72,10.2,5 -6.8,0.69,0.0,5.6,0.124,21.0,58.0,0.9997,3.46,0.72,10.2,5 -8.8,0.6,0.29,2.2,0.098,5.0,15.0,0.9988,3.36,0.49,9.1,5 -8.8,0.6,0.29,2.2,0.098,5.0,15.0,0.9988,3.36,0.49,9.1,5 -8.7,0.54,0.26,2.5,0.09699999999999999,7.0,31.0,0.9976,3.27,0.6,9.3,6 -7.6,0.685,0.23,2.3,0.111,20.0,84.0,0.9964,3.21,0.61,9.3,5 -8.7,0.54,0.26,2.5,0.09699999999999999,7.0,31.0,0.9976,3.27,0.6,9.3,6 -10.4,0.28,0.54,2.7,0.105,5.0,19.0,0.9988,3.25,0.63,9.5,5 -7.6,0.41,0.14,3.0,0.087,21.0,43.0,0.9964,3.32,0.57,10.5,6 -10.1,0.935,0.22,3.4,0.105,11.0,86.0,1.001,3.43,0.64,11.3,4 -7.9,0.35,0.21,1.9,0.073,46.0,102.0,0.9964,3.27,0.58,9.5,5 -8.7,0.84,0.0,1.4,0.065,24.0,33.0,0.9954,3.27,0.55,9.7,5 -9.6,0.88,0.28,2.4,0.086,30.0,147.0,0.9979,3.24,0.53,9.4,5 -9.5,0.885,0.27,2.3,0.084,31.0,145.0,0.9978,3.24,0.53,9.4,5 -7.7,0.915,0.12,2.2,0.14300000000000002,7.0,23.0,0.9964,3.35,0.65,10.2,7 -8.9,0.29,0.35,1.9,0.067,25.0,57.0,0.997,3.18,1.36,10.3,6 -9.9,0.54,0.45,2.3,0.071,16.0,40.0,0.9991,3.39,0.62,9.4,5 -9.5,0.59,0.44,2.3,0.071,21.0,68.0,0.9992,3.46,0.63,9.5,5 -9.9,0.54,0.45,2.3,0.071,16.0,40.0,0.9991,3.39,0.62,9.4,5 -9.5,0.59,0.44,2.3,0.071,21.0,68.0,0.9992,3.46,0.63,9.5,5 -9.9,0.54,0.45,2.3,0.071,16.0,40.0,0.9991,3.39,0.62,9.4,5 -7.8,0.64,0.1,6.0,0.115,5.0,11.0,0.9984,3.37,0.69,10.1,7 -7.3,0.67,0.05,3.6,0.107,6.0,20.0,0.9972,3.4,0.63,10.1,5 -8.3,0.845,0.01,2.2,0.07,5.0,14.0,0.9967,3.32,0.58,11.0,4 -8.7,0.48,0.3,2.8,0.066,10.0,28.0,0.9964,3.33,0.67,11.2,7 -6.7,0.42,0.27,8.6,0.068,24.0,148.0,0.9948,3.16,0.57,11.3,6 -10.7,0.43,0.39,2.2,0.106,8.0,32.0,0.9986,2.89,0.5,9.6,5 -9.8,0.88,0.25,2.5,0.10400000000000001,35.0,155.0,1.001,3.41,0.67,11.2,5 -15.9,0.36,0.65,7.5,0.096,22.0,71.0,0.9976,2.98,0.84,14.9,5 -9.4,0.33,0.59,2.8,0.079,9.0,30.0,0.9976,3.12,0.54,12.0,6 -8.6,0.47,0.47,2.4,0.07400000000000001,7.0,29.0,0.9979,3.08,0.46,9.5,5 -9.7,0.55,0.17,2.9,0.087,20.0,53.0,1.0004,3.14,0.61,9.4,5 -10.7,0.43,0.39,2.2,0.106,8.0,32.0,0.9986,2.89,0.5,9.6,5 -12.0,0.5,0.59,1.4,0.073,23.0,42.0,0.998,2.92,0.68,10.5,7 -7.2,0.52,0.07,1.4,0.07400000000000001,5.0,20.0,0.9973,3.32,0.81,9.6,6 -7.1,0.84,0.02,4.4,0.096,5.0,13.0,0.997,3.41,0.57,11.0,4 -7.2,0.52,0.07,1.4,0.07400000000000001,5.0,20.0,0.9973,3.32,0.81,9.6,6 -7.5,0.42,0.31,1.6,0.08,15.0,42.0,0.9978,3.31,0.64,9.0,5 -7.2,0.57,0.06,1.6,0.076,9.0,27.0,0.9972,3.36,0.7,9.6,6 -10.1,0.28,0.46,1.8,0.05,5.0,13.0,0.9974,3.04,0.79,10.2,6 -12.1,0.4,0.52,2.0,0.092,15.0,54.0,1.0,3.03,0.66,10.2,5 -9.4,0.59,0.14,2.0,0.084,25.0,48.0,0.9981,3.14,0.56,9.7,5 -8.3,0.49,0.36,1.8,0.222,6.0,16.0,0.998,3.18,0.6,9.5,6 -11.3,0.34,0.45,2.0,0.08199999999999999,6.0,15.0,0.9988,2.94,0.66,9.2,6 -10.0,0.73,0.43,2.3,0.059000000000000004,15.0,31.0,0.9966,3.15,0.57,11.0,5 -11.3,0.34,0.45,2.0,0.08199999999999999,6.0,15.0,0.9988,2.94,0.66,9.2,6 -6.9,0.4,0.24,2.5,0.083,30.0,45.0,0.9959,3.26,0.58,10.0,5 -8.2,0.73,0.21,1.7,0.07400000000000001,5.0,13.0,0.9968,3.2,0.52,9.5,5 -9.8,1.24,0.34,2.0,0.079,32.0,151.0,0.998,3.15,0.53,9.5,5 -8.2,0.73,0.21,1.7,0.07400000000000001,5.0,13.0,0.9968,3.2,0.52,9.5,5 -10.8,0.4,0.41,2.2,0.084,7.0,17.0,0.9984,3.08,0.67,9.3,6 -9.3,0.41,0.39,2.2,0.064,12.0,31.0,0.9984,3.26,0.65,10.2,5 -10.8,0.4,0.41,2.2,0.084,7.0,17.0,0.9984,3.08,0.67,9.3,6 -8.6,0.8,0.11,2.3,0.084,12.0,31.0,0.9979,3.4,0.48,9.9,5 -8.3,0.78,0.1,2.6,0.081,45.0,87.0,0.9983,3.48,0.53,10.0,5 -10.8,0.26,0.45,3.3,0.06,20.0,49.0,0.9972,3.13,0.54,9.6,5 -13.3,0.43,0.58,1.9,0.07,15.0,40.0,1.0004,3.06,0.49,9.0,5 -8.0,0.45,0.23,2.2,0.094,16.0,29.0,0.9962,3.21,0.49,10.2,6 -8.5,0.46,0.31,2.25,0.078,32.0,58.0,0.998,3.33,0.54,9.8,5 -8.1,0.78,0.23,2.6,0.059000000000000004,5.0,15.0,0.997,3.37,0.56,11.3,5 -9.8,0.98,0.32,2.3,0.078,35.0,152.0,0.998,3.25,0.48,9.4,5 -8.1,0.78,0.23,2.6,0.059000000000000004,5.0,15.0,0.997,3.37,0.56,11.3,5 -7.1,0.65,0.18,1.8,0.07,13.0,40.0,0.997,3.44,0.6,9.1,5 -9.1,0.64,0.23,3.1,0.095,13.0,38.0,0.9998,3.28,0.59,9.7,5 -7.7,0.66,0.04,1.6,0.039,4.0,9.0,0.9962,3.4,0.47,9.4,5 -8.1,0.38,0.48,1.8,0.157,5.0,17.0,0.9976,3.3,1.05,9.4,5 -7.4,1.185,0.0,4.25,0.09699999999999999,5.0,14.0,0.9966,3.63,0.54,10.7,3 -9.2,0.92,0.24,2.6,0.087,12.0,93.0,0.9998,3.48,0.54,9.8,5 -8.6,0.49,0.51,2.0,0.42200000000000004,16.0,62.0,0.9979,3.03,1.17,9.0,5 -9.0,0.48,0.32,2.8,0.084,21.0,122.0,0.9984,3.32,0.62,9.4,5 -9.0,0.47,0.31,2.7,0.084,24.0,125.0,0.9984,3.31,0.61,9.4,5 -5.1,0.47,0.02,1.3,0.034,18.0,44.0,0.9921,3.9,0.62,12.8,6 -7.0,0.65,0.02,2.1,0.066,8.0,25.0,0.9972,3.47,0.67,9.5,6 -7.0,0.65,0.02,2.1,0.066,8.0,25.0,0.9972,3.47,0.67,9.5,6 -9.4,0.615,0.28,3.2,0.087,18.0,72.0,1.0001,3.31,0.53,9.7,5 -11.8,0.38,0.55,2.1,0.071,5.0,19.0,0.9986,3.11,0.62,10.8,6 -10.6,1.02,0.43,2.9,0.076,26.0,88.0,0.9984,3.08,0.57,10.1,6 -7.0,0.65,0.02,2.1,0.066,8.0,25.0,0.9972,3.47,0.67,9.5,6 -7.0,0.64,0.02,2.1,0.067,9.0,23.0,0.997,3.47,0.67,9.4,6 -7.5,0.38,0.48,2.6,0.073,22.0,84.0,0.9972,3.32,0.7,9.6,4 -9.1,0.765,0.04,1.6,0.078,4.0,14.0,0.998,3.29,0.54,9.7,4 -8.4,1.035,0.15,6.0,0.073,11.0,54.0,0.9990000000000001,3.37,0.49,9.9,5 -7.0,0.78,0.08,2.0,0.09300000000000001,10.0,19.0,0.9956,3.4,0.47,10.0,5 -7.4,0.49,0.19,3.0,0.077,16.0,37.0,0.9966,3.37,0.51,10.5,5 -7.8,0.545,0.12,2.5,0.068,11.0,35.0,0.996,3.34,0.61,11.6,6 -9.7,0.31,0.47,1.6,0.062,13.0,33.0,0.9983,3.27,0.66,10.0,6 -10.6,1.025,0.43,2.8,0.08,21.0,84.0,0.9985,3.06,0.57,10.1,5 -8.9,0.565,0.34,3.0,0.09300000000000001,16.0,112.0,0.9998,3.38,0.61,9.5,5 -8.7,0.69,0.0,3.2,0.084,13.0,33.0,0.9992,3.36,0.45,9.4,5 -8.0,0.43,0.36,2.3,0.075,10.0,48.0,0.9976,3.34,0.46,9.4,5 -9.9,0.74,0.28,2.6,0.078,21.0,77.0,0.998,3.28,0.51,9.8,5 -7.2,0.49,0.18,2.7,0.069,13.0,34.0,0.9967,3.29,0.48,9.2,6 -8.0,0.43,0.36,2.3,0.075,10.0,48.0,0.9976,3.34,0.46,9.4,5 -7.6,0.46,0.11,2.6,0.079,12.0,49.0,0.9968,3.21,0.57,10.0,5 -8.4,0.56,0.04,2.0,0.08199999999999999,10.0,22.0,0.9976,3.22,0.44,9.6,5 -7.1,0.66,0.0,3.9,0.086,17.0,45.0,0.9976,3.46,0.54,9.5,5 -8.4,0.56,0.04,2.0,0.08199999999999999,10.0,22.0,0.9976,3.22,0.44,9.6,5 -8.9,0.48,0.24,2.85,0.094,35.0,106.0,0.9982,3.1,0.53,9.2,5 -7.6,0.42,0.08,2.7,0.084,15.0,48.0,0.9968,3.21,0.59,10.0,5 -7.1,0.31,0.3,2.2,0.053,36.0,127.0,0.9965,2.94,1.62,9.5,5 -7.5,1.115,0.1,3.1,0.086,5.0,12.0,0.9958,3.54,0.6,11.2,4 -9.0,0.66,0.17,3.0,0.077,5.0,13.0,0.9976,3.29,0.55,10.4,5 -8.1,0.72,0.09,2.8,0.084,18.0,49.0,0.9994,3.43,0.72,11.1,6 -6.4,0.57,0.02,1.8,0.067,4.0,11.0,0.997,3.46,0.68,9.5,5 -6.4,0.57,0.02,1.8,0.067,4.0,11.0,0.997,3.46,0.68,9.5,5 -6.4,0.865,0.03,3.2,0.071,27.0,58.0,0.995,3.61,0.49,12.7,6 -9.5,0.55,0.66,2.3,0.387,12.0,37.0,0.9982,3.17,0.67,9.6,5 -8.9,0.875,0.13,3.45,0.08800000000000001,4.0,14.0,0.9994,3.44,0.52,11.5,5 -7.3,0.835,0.03,2.1,0.092,10.0,19.0,0.9966,3.39,0.47,9.6,5 -7.0,0.45,0.34,2.7,0.08199999999999999,16.0,72.0,0.998,3.55,0.6,9.5,5 -7.7,0.56,0.2,2.0,0.075,9.0,39.0,0.9987,3.48,0.62,9.3,5 -7.7,0.965,0.1,2.1,0.11199999999999999,11.0,22.0,0.9963,3.26,0.5,9.5,5 -7.7,0.965,0.1,2.1,0.11199999999999999,11.0,22.0,0.9963,3.26,0.5,9.5,5 -8.2,0.59,0.0,2.5,0.09300000000000001,19.0,58.0,1.0002,3.5,0.65,9.3,6 -9.0,0.46,0.23,2.8,0.092,28.0,104.0,0.9983,3.1,0.56,9.2,5 -9.0,0.69,0.0,2.4,0.08800000000000001,19.0,38.0,0.9990000000000001,3.35,0.6,9.3,5 -8.3,0.76,0.29,4.2,0.075,12.0,16.0,0.9965,3.45,0.68,11.5,6 -9.2,0.53,0.24,2.6,0.078,28.0,139.0,0.9978799999999999,3.21,0.57,9.5,5 -6.5,0.615,0.0,1.9,0.065,9.0,18.0,0.9972,3.46,0.65,9.2,5 -11.6,0.41,0.58,2.8,0.096,25.0,101.0,1.00024,3.13,0.53,10.0,5 -11.1,0.39,0.54,2.7,0.095,21.0,101.0,1.0001,3.13,0.51,9.5,5 -7.3,0.51,0.18,2.1,0.07,12.0,28.0,0.9976799999999999,3.52,0.73,9.5,6 -8.2,0.34,0.38,2.5,0.08,12.0,57.0,0.9978,3.3,0.47,9.0,6 -8.6,0.33,0.4,2.6,0.083,16.0,68.0,0.99782,3.3,0.48,9.4,5 -7.2,0.5,0.18,2.1,0.071,12.0,31.0,0.99761,3.52,0.72,9.6,6 -7.3,0.51,0.18,2.1,0.07,12.0,28.0,0.9976799999999999,3.52,0.73,9.5,6 -8.3,0.65,0.1,2.9,0.08900000000000001,17.0,40.0,0.99803,3.29,0.55,9.5,5 -8.3,0.65,0.1,2.9,0.08900000000000001,17.0,40.0,0.99803,3.29,0.55,9.5,5 -7.6,0.54,0.13,2.5,0.09699999999999999,24.0,66.0,0.99785,3.39,0.61,9.4,5 -8.3,0.65,0.1,2.9,0.08900000000000001,17.0,40.0,0.99803,3.29,0.55,9.5,5 -7.8,0.48,0.68,1.7,0.415,14.0,32.0,0.99656,3.09,1.06,9.1,6 -7.8,0.91,0.07,1.9,0.057999999999999996,22.0,47.0,0.99525,3.51,0.43,10.7,6 -6.3,0.98,0.01,2.0,0.057,15.0,33.0,0.9948799999999999,3.6,0.46,11.2,6 -8.1,0.87,0.0,2.2,0.084,10.0,31.0,0.99656,3.25,0.5,9.8,5 -8.1,0.87,0.0,2.2,0.084,10.0,31.0,0.99656,3.25,0.5,9.8,5 -8.8,0.42,0.21,2.5,0.092,33.0,88.0,0.99823,3.19,0.52,9.2,5 -9.0,0.58,0.25,2.8,0.075,9.0,104.0,0.99779,3.23,0.57,9.7,5 -9.3,0.655,0.26,2.0,0.096,5.0,35.0,0.9973799999999999,3.25,0.42,9.6,5 -8.8,0.7,0.0,1.7,0.069,8.0,19.0,0.9970100000000001,3.31,0.53,10.0,6 -9.3,0.655,0.26,2.0,0.096,5.0,35.0,0.9973799999999999,3.25,0.42,9.6,5 -9.1,0.68,0.11,2.8,0.09300000000000001,11.0,44.0,0.9988799999999999,3.31,0.55,9.5,6 -9.2,0.67,0.1,3.0,0.091,12.0,48.0,0.9988799999999999,3.31,0.54,9.5,6 -8.8,0.59,0.18,2.9,0.08900000000000001,12.0,74.0,0.9973799999999999,3.14,0.54,9.4,5 -7.5,0.6,0.32,2.7,0.10300000000000001,13.0,98.0,0.9993799999999999,3.45,0.62,9.5,5 -7.1,0.59,0.02,2.3,0.08199999999999999,24.0,94.0,0.99744,3.55,0.53,9.7,6 -7.9,0.72,0.01,1.9,0.076,7.0,32.0,0.9966799999999999,3.39,0.54,9.6,5 -7.1,0.59,0.02,2.3,0.08199999999999999,24.0,94.0,0.99744,3.55,0.53,9.7,6 -9.4,0.685,0.26,2.4,0.08199999999999999,23.0,143.0,0.9978,3.28,0.55,9.4,5 -9.5,0.57,0.27,2.3,0.08199999999999999,23.0,144.0,0.99782,3.27,0.55,9.4,5 -7.9,0.4,0.29,1.8,0.157,1.0,44.0,0.9973,3.3,0.92,9.5,6 -7.9,0.4,0.3,1.8,0.157,2.0,45.0,0.9972700000000001,3.31,0.91,9.5,6 -7.2,1.0,0.0,3.0,0.102,7.0,16.0,0.9958600000000001,3.43,0.46,10.0,5 -6.9,0.765,0.18,2.4,0.243,5.5,48.0,0.9961200000000001,3.4,0.6,10.3,6 -6.9,0.635,0.17,2.4,0.24100000000000002,6.0,18.0,0.9961,3.4,0.59,10.3,6 -8.3,0.43,0.3,3.4,0.079,7.0,34.0,0.9978799999999999,3.36,0.61,10.5,5 -7.1,0.52,0.03,2.6,0.076,21.0,92.0,0.99745,3.5,0.6,9.8,5 -7.0,0.57,0.0,2.0,0.19,12.0,45.0,0.9967600000000001,3.31,0.6,9.4,6 -6.5,0.46,0.14,2.4,0.114,9.0,37.0,0.9973200000000001,3.66,0.65,9.8,5 -9.0,0.82,0.05,2.4,0.081,26.0,96.0,0.9981399999999999,3.36,0.53,10.0,5 -6.5,0.46,0.14,2.4,0.114,9.0,37.0,0.9973200000000001,3.66,0.65,9.8,5 -7.1,0.59,0.01,2.5,0.077,20.0,85.0,0.99746,3.55,0.59,9.8,5 -9.9,0.35,0.41,2.3,0.083,11.0,61.0,0.9982,3.21,0.5,9.5,5 -9.9,0.35,0.41,2.3,0.083,11.0,61.0,0.9982,3.21,0.5,9.5,5 -10.0,0.56,0.24,2.2,0.079,19.0,58.0,0.9991,3.18,0.56,10.1,6 -10.0,0.56,0.24,2.2,0.079,19.0,58.0,0.9991,3.18,0.56,10.1,6 -8.6,0.63,0.17,2.9,0.099,21.0,119.0,0.998,3.09,0.52,9.3,5 -7.4,0.37,0.43,2.6,0.08199999999999999,18.0,82.0,0.99708,3.33,0.68,9.7,6 -8.8,0.64,0.17,2.9,0.084,25.0,130.0,0.99818,3.23,0.54,9.6,5 -7.1,0.61,0.02,2.5,0.081,17.0,87.0,0.99745,3.48,0.6,9.7,6 -7.7,0.6,0.0,2.6,0.055,7.0,13.0,0.99639,3.38,0.56,10.8,5 -10.1,0.27,0.54,2.3,0.065,7.0,26.0,0.99531,3.17,0.53,12.5,6 -10.8,0.89,0.3,2.6,0.132,7.0,60.0,0.9978600000000001,2.99,1.18,10.2,5 -8.7,0.46,0.31,2.5,0.126,24.0,64.0,0.99746,3.1,0.74,9.6,5 -9.3,0.37,0.44,1.6,0.038,21.0,42.0,0.99526,3.24,0.81,10.8,7 -9.4,0.5,0.34,3.6,0.08199999999999999,5.0,14.0,0.9987,3.29,0.52,10.7,6 -9.4,0.5,0.34,3.6,0.08199999999999999,5.0,14.0,0.9987,3.29,0.52,10.7,6 -7.2,0.61,0.08,4.0,0.08199999999999999,26.0,108.0,0.99641,3.25,0.51,9.4,5 -8.6,0.55,0.09,3.3,0.068,8.0,17.0,0.99735,3.23,0.44,10.0,5 -5.1,0.585,0.0,1.7,0.044000000000000004,14.0,86.0,0.99264,3.56,0.94,12.9,7 -7.7,0.56,0.08,2.5,0.114,14.0,46.0,0.9971,3.24,0.66,9.6,6 -8.4,0.52,0.22,2.7,0.084,4.0,18.0,0.99682,3.26,0.57,9.9,6 -8.2,0.28,0.4,2.4,0.052000000000000005,4.0,10.0,0.99356,3.33,0.7,12.8,7 -8.4,0.25,0.39,2.0,0.040999999999999995,4.0,10.0,0.9938600000000001,3.27,0.71,12.5,7 -8.2,0.28,0.4,2.4,0.052000000000000005,4.0,10.0,0.99356,3.33,0.7,12.8,7 -7.4,0.53,0.12,1.9,0.165,4.0,12.0,0.99702,3.26,0.86,9.2,5 -7.6,0.48,0.31,2.8,0.07,4.0,15.0,0.9969299999999999,3.22,0.55,10.3,6 -7.3,0.49,0.1,2.6,0.068,4.0,14.0,0.9956200000000001,3.3,0.47,10.5,5 -12.9,0.5,0.55,2.8,0.07200000000000001,7.0,24.0,1.0001200000000001,3.09,0.68,10.9,6 -10.8,0.45,0.33,2.5,0.099,20.0,38.0,0.99818,3.24,0.71,10.8,5 -6.9,0.39,0.24,2.1,0.102,4.0,7.0,0.9946200000000001,3.44,0.58,11.4,4 -12.6,0.41,0.54,2.8,0.10300000000000001,19.0,41.0,0.99939,3.21,0.76,11.3,6 -10.8,0.45,0.33,2.5,0.099,20.0,38.0,0.99818,3.24,0.71,10.8,5 -9.8,0.51,0.19,3.2,0.081,8.0,30.0,0.9984,3.23,0.58,10.5,6 -10.8,0.29,0.42,1.6,0.084,19.0,27.0,0.99545,3.28,0.73,11.9,6 -7.1,0.715,0.0,2.35,0.071,21.0,47.0,0.9963200000000001,3.29,0.45,9.4,5 -9.1,0.66,0.15,3.2,0.09699999999999999,9.0,59.0,0.99976,3.28,0.54,9.6,5 -7.0,0.685,0.0,1.9,0.099,9.0,22.0,0.9960600000000001,3.34,0.6,9.7,5 -4.9,0.42,0.0,2.1,0.048,16.0,42.0,0.99154,3.71,0.74,14.0,7 -6.7,0.54,0.13,2.0,0.076,15.0,36.0,0.9973,3.61,0.64,9.8,5 -6.7,0.54,0.13,2.0,0.076,15.0,36.0,0.9973,3.61,0.64,9.8,5 -7.1,0.48,0.28,2.8,0.068,6.0,16.0,0.99682,3.24,0.53,10.3,5 -7.1,0.46,0.14,2.8,0.076,15.0,37.0,0.99624,3.36,0.49,10.7,5 -7.5,0.27,0.34,2.3,0.05,4.0,8.0,0.9951,3.4,0.64,11.0,7 -7.1,0.46,0.14,2.8,0.076,15.0,37.0,0.99624,3.36,0.49,10.7,5 -7.8,0.57,0.09,2.3,0.065,34.0,45.0,0.9941700000000001,3.46,0.74,12.7,8 -5.9,0.61,0.08,2.1,0.071,16.0,24.0,0.9937600000000001,3.56,0.77,11.1,6 -7.5,0.685,0.07,2.5,0.057999999999999996,5.0,9.0,0.9963200000000001,3.38,0.55,10.9,4 -5.9,0.61,0.08,2.1,0.071,16.0,24.0,0.9937600000000001,3.56,0.77,11.1,6 -10.4,0.44,0.42,1.5,0.145,34.0,48.0,0.9983200000000001,3.38,0.86,9.9,3 -11.6,0.47,0.44,1.6,0.147,36.0,51.0,0.99836,3.38,0.86,9.9,4 -8.8,0.685,0.26,1.6,0.08800000000000001,16.0,23.0,0.9969399999999999,3.32,0.47,9.4,5 -7.6,0.665,0.1,1.5,0.066,27.0,55.0,0.99655,3.39,0.51,9.3,5 -6.7,0.28,0.28,2.4,0.012,36.0,100.0,0.99064,3.26,0.39,11.7,7 -6.7,0.28,0.28,2.4,0.012,36.0,100.0,0.99064,3.26,0.39,11.7,7 -10.1,0.31,0.35,1.6,0.075,9.0,28.0,0.99672,3.24,0.83,11.2,7 -6.0,0.5,0.04,2.2,0.092,13.0,26.0,0.9964700000000001,3.46,0.47,10.0,5 -11.1,0.42,0.47,2.65,0.085,9.0,34.0,0.99736,3.24,0.77,12.1,7 -6.6,0.66,0.0,3.0,0.115,21.0,31.0,0.99629,3.45,0.63,10.3,5 -10.6,0.5,0.45,2.6,0.11900000000000001,34.0,68.0,0.99708,3.23,0.72,10.9,6 -7.1,0.685,0.35,2.0,0.08800000000000001,9.0,92.0,0.9963,3.28,0.62,9.4,5 -9.9,0.25,0.46,1.7,0.062,26.0,42.0,0.9959,3.18,0.83,10.6,6 -6.4,0.64,0.21,1.8,0.081,14.0,31.0,0.9968899999999999,3.59,0.66,9.8,5 -6.4,0.64,0.21,1.8,0.081,14.0,31.0,0.9968899999999999,3.59,0.66,9.8,5 -7.4,0.68,0.16,1.8,0.078,12.0,39.0,0.9977,3.5,0.7,9.9,6 -6.4,0.64,0.21,1.8,0.081,14.0,31.0,0.9968899999999999,3.59,0.66,9.8,5 -6.4,0.63,0.21,1.6,0.08,12.0,32.0,0.9968899999999999,3.58,0.66,9.8,5 -9.3,0.43,0.44,1.9,0.085,9.0,22.0,0.99708,3.28,0.55,9.5,5 -9.3,0.43,0.44,1.9,0.085,9.0,22.0,0.99708,3.28,0.55,9.5,5 -8.0,0.42,0.32,2.5,0.08,26.0,122.0,0.9980100000000001,3.22,1.07,9.7,5 -9.3,0.36,0.39,1.5,0.08,41.0,55.0,0.9965200000000001,3.47,0.73,10.9,6 -9.3,0.36,0.39,1.5,0.08,41.0,55.0,0.9965200000000001,3.47,0.73,10.9,6 -7.6,0.735,0.02,2.5,0.071,10.0,14.0,0.9953799999999999,3.51,0.71,11.7,7 -9.3,0.36,0.39,1.5,0.08,41.0,55.0,0.9965200000000001,3.47,0.73,10.9,6 -8.2,0.26,0.34,2.5,0.073,16.0,47.0,0.9959399999999999,3.4,0.78,11.3,7 -11.7,0.28,0.47,1.7,0.054000000000000006,17.0,32.0,0.9968600000000001,3.15,0.67,10.6,7 -6.8,0.56,0.22,1.8,0.07400000000000001,15.0,24.0,0.9943799999999999,3.4,0.82,11.2,6 -7.2,0.62,0.06,2.7,0.077,15.0,85.0,0.99746,3.51,0.54,9.5,5 -5.8,1.01,0.66,2.0,0.039,15.0,88.0,0.9935700000000001,3.66,0.6,11.5,6 -7.5,0.42,0.32,2.7,0.067,7.0,25.0,0.9962799999999999,3.24,0.44,10.4,5 -7.2,0.62,0.06,2.5,0.078,17.0,84.0,0.99746,3.51,0.53,9.7,5 -7.2,0.62,0.06,2.7,0.077,15.0,85.0,0.99746,3.51,0.54,9.5,5 -7.2,0.635,0.07,2.6,0.077,16.0,86.0,0.9974799999999999,3.51,0.54,9.7,5 -6.8,0.49,0.22,2.3,0.071,13.0,24.0,0.9943799999999999,3.41,0.83,11.3,6 -6.9,0.51,0.23,2.0,0.07200000000000001,13.0,22.0,0.9943799999999999,3.4,0.84,11.2,6 -6.8,0.56,0.22,1.8,0.07400000000000001,15.0,24.0,0.9943799999999999,3.4,0.82,11.2,6 -7.6,0.63,0.03,2.0,0.08,27.0,43.0,0.9957799999999999,3.44,0.64,10.9,6 -7.7,0.715,0.01,2.1,0.064,31.0,43.0,0.99371,3.41,0.57,11.8,6 -6.9,0.56,0.03,1.5,0.086,36.0,46.0,0.9952200000000001,3.53,0.57,10.6,5 -7.3,0.35,0.24,2.0,0.067,28.0,48.0,0.9957600000000001,3.43,0.54,10.0,4 -9.1,0.21,0.37,1.6,0.067,6.0,10.0,0.9955200000000001,3.23,0.58,11.1,7 -10.4,0.38,0.46,2.1,0.10400000000000001,6.0,10.0,0.99664,3.12,0.65,11.8,7 -8.8,0.31,0.4,2.8,0.109,7.0,16.0,0.9961399999999999,3.31,0.79,11.8,7 -7.1,0.47,0.0,2.2,0.067,7.0,14.0,0.9951700000000001,3.4,0.58,10.9,4 -7.7,0.715,0.01,2.1,0.064,31.0,43.0,0.99371,3.41,0.57,11.8,6 -8.8,0.61,0.19,4.0,0.094,30.0,69.0,0.99787,3.22,0.5,10.0,6 -7.2,0.6,0.04,2.5,0.076,18.0,88.0,0.99745,3.53,0.55,9.5,5 -9.2,0.56,0.18,1.6,0.078,10.0,21.0,0.9957600000000001,3.15,0.49,9.9,5 -7.6,0.715,0.0,2.1,0.068,30.0,35.0,0.9953299999999999,3.48,0.65,11.4,6 -8.4,0.31,0.29,3.1,0.19399999999999998,14.0,26.0,0.99536,3.22,0.78,12.0,6 -7.2,0.6,0.04,2.5,0.076,18.0,88.0,0.99745,3.53,0.55,9.5,5 -8.8,0.61,0.19,4.0,0.094,30.0,69.0,0.99787,3.22,0.5,10.0,6 -8.9,0.75,0.14,2.5,0.086,9.0,30.0,0.99824,3.34,0.64,10.5,5 -9.0,0.8,0.12,2.4,0.083,8.0,28.0,0.99836,3.33,0.65,10.4,6 -10.7,0.52,0.38,2.6,0.066,29.0,56.0,0.99577,3.15,0.79,12.1,7 -6.8,0.57,0.0,2.5,0.07200000000000001,32.0,64.0,0.9949100000000001,3.43,0.56,11.2,6 -10.7,0.9,0.34,6.6,0.11199999999999999,23.0,99.0,1.00289,3.22,0.68,9.3,5 -7.2,0.34,0.24,2.0,0.071,30.0,52.0,0.9957600000000001,3.44,0.58,10.1,5 -7.2,0.66,0.03,2.3,0.078,16.0,86.0,0.9974299999999999,3.53,0.57,9.7,5 -10.1,0.45,0.23,1.9,0.08199999999999999,10.0,18.0,0.99774,3.22,0.65,9.3,6 -7.2,0.66,0.03,2.3,0.078,16.0,86.0,0.9974299999999999,3.53,0.57,9.7,5 -7.2,0.63,0.03,2.2,0.08,17.0,88.0,0.99745,3.53,0.58,9.8,6 -7.1,0.59,0.01,2.3,0.08,27.0,43.0,0.9955,3.42,0.58,10.7,6 -8.3,0.31,0.39,2.4,0.078,17.0,43.0,0.99444,3.31,0.77,12.5,7 -7.1,0.59,0.01,2.3,0.08,27.0,43.0,0.9955,3.42,0.58,10.7,6 -8.3,0.31,0.39,2.4,0.078,17.0,43.0,0.99444,3.31,0.77,12.5,7 -8.3,1.02,0.02,3.4,0.084,6.0,11.0,0.99892,3.48,0.49,11.0,3 -8.9,0.31,0.36,2.6,0.055999999999999994,10.0,39.0,0.9956200000000001,3.4,0.69,11.8,5 -7.4,0.635,0.1,2.4,0.08,16.0,33.0,0.99736,3.58,0.69,10.8,7 -7.4,0.635,0.1,2.4,0.08,16.0,33.0,0.99736,3.58,0.69,10.8,7 -6.8,0.59,0.06,6.0,0.06,11.0,18.0,0.9962,3.41,0.59,10.8,7 -6.8,0.59,0.06,6.0,0.06,11.0,18.0,0.9962,3.41,0.59,10.8,7 -9.2,0.58,0.2,3.0,0.081,15.0,115.0,0.998,3.23,0.59,9.5,5 -7.2,0.54,0.27,2.6,0.084,12.0,78.0,0.9964,3.39,0.71,11.0,5 -6.1,0.56,0.0,2.2,0.079,6.0,9.0,0.9948,3.59,0.54,11.5,6 -7.4,0.52,0.13,2.4,0.078,34.0,61.0,0.9952799999999999,3.43,0.59,10.8,6 -7.3,0.305,0.39,1.2,0.059000000000000004,7.0,11.0,0.99331,3.29,0.52,11.5,6 -9.3,0.38,0.48,3.8,0.132,3.0,11.0,0.99577,3.23,0.57,13.2,6 -9.1,0.28,0.46,9.0,0.114,3.0,9.0,0.9990100000000001,3.18,0.6,10.9,6 -10.0,0.46,0.44,2.9,0.065,4.0,8.0,0.99674,3.33,0.62,12.2,6 -9.4,0.395,0.46,4.6,0.094,3.0,10.0,0.99639,3.27,0.64,12.2,7 -7.3,0.305,0.39,1.2,0.059000000000000004,7.0,11.0,0.99331,3.29,0.52,11.5,6 -8.6,0.315,0.4,2.2,0.079,3.0,6.0,0.9951200000000001,3.27,0.67,11.9,6 -5.3,0.715,0.19,1.5,0.161,7.0,62.0,0.99395,3.62,0.61,11.0,5 -6.8,0.41,0.31,8.8,0.084,26.0,45.0,0.99824,3.38,0.64,10.1,6 -8.4,0.36,0.32,2.2,0.081,32.0,79.0,0.9964,3.3,0.72,11.0,6 -8.4,0.62,0.12,1.8,0.07200000000000001,38.0,46.0,0.9950399999999999,3.38,0.89,11.8,6 -9.6,0.41,0.37,2.3,0.091,10.0,23.0,0.9978600000000001,3.24,0.56,10.5,5 -8.4,0.36,0.32,2.2,0.081,32.0,79.0,0.9964,3.3,0.72,11.0,6 -8.4,0.62,0.12,1.8,0.07200000000000001,38.0,46.0,0.9950399999999999,3.38,0.89,11.8,6 -6.8,0.41,0.31,8.8,0.084,26.0,45.0,0.99824,3.38,0.64,10.1,6 -8.6,0.47,0.27,2.3,0.055,14.0,28.0,0.99516,3.18,0.8,11.2,5 -8.6,0.22,0.36,1.9,0.064,53.0,77.0,0.9960399999999999,3.47,0.87,11.0,7 -9.4,0.24,0.33,2.3,0.061,52.0,73.0,0.9978600000000001,3.47,0.9,10.2,6 -8.4,0.67,0.19,2.2,0.09300000000000001,11.0,75.0,0.99736,3.2,0.59,9.2,4 -8.6,0.47,0.27,2.3,0.055,14.0,28.0,0.99516,3.18,0.8,11.2,5 -8.7,0.33,0.38,3.3,0.063,10.0,19.0,0.9946799999999999,3.3,0.73,12.0,7 -6.6,0.61,0.01,1.9,0.08,8.0,25.0,0.99746,3.69,0.73,10.5,5 -7.4,0.61,0.01,2.0,0.07400000000000001,13.0,38.0,0.9974799999999999,3.48,0.65,9.8,5 -7.6,0.4,0.29,1.9,0.078,29.0,66.0,0.9971,3.45,0.59,9.5,6 -7.4,0.61,0.01,2.0,0.07400000000000001,13.0,38.0,0.9974799999999999,3.48,0.65,9.8,5 -6.6,0.61,0.01,1.9,0.08,8.0,25.0,0.99746,3.69,0.73,10.5,5 -8.8,0.3,0.38,2.3,0.06,19.0,72.0,0.9954299999999999,3.39,0.72,11.8,6 -8.8,0.3,0.38,2.3,0.06,19.0,72.0,0.9954299999999999,3.39,0.72,11.8,6 -12.0,0.63,0.5,1.4,0.071,6.0,26.0,0.9979100000000001,3.07,0.6,10.4,4 -7.2,0.38,0.38,2.8,0.068,23.0,42.0,0.99356,3.34,0.72,12.9,7 -6.2,0.46,0.17,1.6,0.073,7.0,11.0,0.99425,3.61,0.54,11.4,5 -9.6,0.33,0.52,2.2,0.07400000000000001,13.0,25.0,0.9950899999999999,3.36,0.76,12.4,7 -9.9,0.27,0.49,5.0,0.08199999999999999,9.0,17.0,0.99484,3.19,0.52,12.5,7 -10.1,0.43,0.4,2.6,0.092,13.0,52.0,0.99834,3.22,0.64,10.0,7 -9.8,0.5,0.34,2.3,0.094,10.0,45.0,0.99864,3.24,0.6,9.7,7 -8.3,0.3,0.49,3.8,0.09,11.0,24.0,0.99498,3.27,0.64,12.1,7 -10.2,0.44,0.42,2.0,0.071,7.0,20.0,0.99566,3.14,0.79,11.1,7 -10.2,0.44,0.58,4.1,0.092,11.0,24.0,0.99745,3.29,0.99,12.0,7 -8.3,0.28,0.48,2.1,0.09300000000000001,6.0,12.0,0.99408,3.26,0.62,12.4,7 -8.9,0.12,0.45,1.8,0.075,10.0,21.0,0.9955200000000001,3.41,0.76,11.9,7 -8.9,0.12,0.45,1.8,0.075,10.0,21.0,0.9955200000000001,3.41,0.76,11.9,7 -8.9,0.12,0.45,1.8,0.075,10.0,21.0,0.9955200000000001,3.41,0.76,11.9,7 -8.3,0.28,0.48,2.1,0.09300000000000001,6.0,12.0,0.99408,3.26,0.62,12.4,7 -8.2,0.31,0.4,2.2,0.057999999999999996,6.0,10.0,0.99536,3.31,0.68,11.2,7 -10.2,0.34,0.48,2.1,0.052000000000000005,5.0,9.0,0.9945799999999999,3.2,0.69,12.1,7 -7.6,0.43,0.4,2.7,0.08199999999999999,6.0,11.0,0.9953799999999999,3.44,0.54,12.2,6 -8.5,0.21,0.52,1.9,0.09,9.0,23.0,0.9964799999999999,3.36,0.67,10.4,5 -9.0,0.36,0.52,2.1,0.111,5.0,10.0,0.9956799999999999,3.31,0.62,11.3,6 -9.5,0.37,0.52,2.0,0.08800000000000001,12.0,51.0,0.99613,3.29,0.58,11.1,6 -6.4,0.57,0.12,2.3,0.12,25.0,36.0,0.99519,3.47,0.71,11.3,7 -8.0,0.59,0.05,2.0,0.08900000000000001,12.0,32.0,0.99735,3.36,0.61,10.0,5 -8.5,0.47,0.27,1.9,0.057999999999999996,18.0,38.0,0.99518,3.16,0.85,11.1,6 -7.1,0.56,0.14,1.6,0.078,7.0,18.0,0.99592,3.27,0.62,9.3,5 -6.6,0.57,0.02,2.1,0.115,6.0,16.0,0.99654,3.38,0.69,9.5,5 -8.8,0.27,0.39,2.0,0.1,20.0,27.0,0.99546,3.15,0.69,11.2,6 -8.5,0.47,0.27,1.9,0.057999999999999996,18.0,38.0,0.99518,3.16,0.85,11.1,6 -8.3,0.34,0.4,2.4,0.065,24.0,48.0,0.99554,3.34,0.86,11.0,6 -9.0,0.38,0.41,2.4,0.10300000000000001,6.0,10.0,0.9960399999999999,3.13,0.58,11.9,7 -8.5,0.66,0.2,2.1,0.09699999999999999,23.0,113.0,0.9973299999999999,3.13,0.48,9.2,5 -9.0,0.4,0.43,2.4,0.068,29.0,46.0,0.9943,3.2,0.6,12.2,6 -6.7,0.56,0.09,2.9,0.079,7.0,22.0,0.99669,3.46,0.61,10.2,5 -10.4,0.26,0.48,1.9,0.066,6.0,10.0,0.99724,3.33,0.87,10.9,6 -10.4,0.26,0.48,1.9,0.066,6.0,10.0,0.99724,3.33,0.87,10.9,6 -10.1,0.38,0.5,2.4,0.10400000000000001,6.0,13.0,0.9964299999999999,3.22,0.65,11.6,7 -8.5,0.34,0.44,1.7,0.079,6.0,12.0,0.99605,3.52,0.63,10.7,5 -8.8,0.33,0.41,5.9,0.073,7.0,13.0,0.9965799999999999,3.3,0.62,12.1,7 -7.2,0.41,0.3,2.1,0.083,35.0,72.0,0.997,3.44,0.52,9.4,5 -7.2,0.41,0.3,2.1,0.083,35.0,72.0,0.997,3.44,0.52,9.4,5 -8.4,0.59,0.29,2.6,0.109,31.0,119.0,0.9980100000000001,3.15,0.5,9.1,5 -7.0,0.4,0.32,3.6,0.061,9.0,29.0,0.99416,3.28,0.49,11.3,7 -12.2,0.45,0.49,1.4,0.075,3.0,6.0,0.9969,3.13,0.63,10.4,5 -9.1,0.5,0.3,1.9,0.065,8.0,17.0,0.99774,3.32,0.71,10.5,6 -9.5,0.86,0.26,1.9,0.079,13.0,28.0,0.9971200000000001,3.25,0.62,10.0,5 -7.3,0.52,0.32,2.1,0.07,51.0,70.0,0.99418,3.34,0.82,12.9,6 -9.1,0.5,0.3,1.9,0.065,8.0,17.0,0.99774,3.32,0.71,10.5,6 -12.2,0.45,0.49,1.4,0.075,3.0,6.0,0.9969,3.13,0.63,10.4,5 -7.4,0.58,0.0,2.0,0.064,7.0,11.0,0.9956200000000001,3.45,0.58,11.3,6 -9.8,0.34,0.39,1.4,0.066,3.0,7.0,0.9947,3.19,0.55,11.4,7 -7.1,0.36,0.3,1.6,0.08,35.0,70.0,0.9969299999999999,3.44,0.5,9.4,5 -7.7,0.39,0.12,1.7,0.09699999999999999,19.0,27.0,0.9959600000000001,3.16,0.49,9.4,5 -9.7,0.295,0.4,1.5,0.073,14.0,21.0,0.99556,3.14,0.51,10.9,6 -7.7,0.39,0.12,1.7,0.09699999999999999,19.0,27.0,0.9959600000000001,3.16,0.49,9.4,5 -7.1,0.34,0.28,2.0,0.08199999999999999,31.0,68.0,0.9969399999999999,3.45,0.48,9.4,5 -6.5,0.4,0.1,2.0,0.076,30.0,47.0,0.99554,3.36,0.48,9.4,6 -7.1,0.34,0.28,2.0,0.08199999999999999,31.0,68.0,0.9969399999999999,3.45,0.48,9.4,5 -10.0,0.35,0.45,2.5,0.092,20.0,88.0,0.99918,3.15,0.43,9.4,5 -7.7,0.6,0.06,2.0,0.079,19.0,41.0,0.99697,3.39,0.62,10.1,6 -5.6,0.66,0.0,2.2,0.087,3.0,11.0,0.9937799999999999,3.71,0.63,12.8,7 -5.6,0.66,0.0,2.2,0.087,3.0,11.0,0.9937799999999999,3.71,0.63,12.8,7 -8.9,0.84,0.34,1.4,0.05,4.0,10.0,0.99554,3.12,0.48,9.1,6 -6.4,0.69,0.0,1.65,0.055,7.0,12.0,0.9916200000000001,3.47,0.53,12.9,6 -7.5,0.43,0.3,2.2,0.062,6.0,12.0,0.99495,3.44,0.72,11.5,7 -9.9,0.35,0.38,1.5,0.057999999999999996,31.0,47.0,0.9967600000000001,3.26,0.82,10.6,7 -9.1,0.29,0.33,2.05,0.063,13.0,27.0,0.99516,3.26,0.84,11.7,7 -6.8,0.36,0.32,1.8,0.067,4.0,8.0,0.9928,3.36,0.55,12.8,7 -8.2,0.43,0.29,1.6,0.081,27.0,45.0,0.99603,3.25,0.54,10.3,5 -6.8,0.36,0.32,1.8,0.067,4.0,8.0,0.9928,3.36,0.55,12.8,7 -9.1,0.29,0.33,2.05,0.063,13.0,27.0,0.99516,3.26,0.84,11.7,7 -9.1,0.3,0.34,2.0,0.064,12.0,25.0,0.99516,3.26,0.84,11.7,7 -8.9,0.35,0.4,3.6,0.11,12.0,24.0,0.99549,3.23,0.7,12.0,7 -9.6,0.5,0.36,2.8,0.11599999999999999,26.0,55.0,0.9972200000000001,3.18,0.68,10.9,5 -8.9,0.28,0.45,1.7,0.067,7.0,12.0,0.99354,3.25,0.55,12.3,7 -8.9,0.32,0.31,2.0,0.08800000000000001,12.0,19.0,0.9957,3.17,0.55,10.4,6 -7.7,1.005,0.15,2.1,0.102,11.0,32.0,0.9960399999999999,3.23,0.48,10.0,5 -7.5,0.71,0.0,1.6,0.092,22.0,31.0,0.99635,3.38,0.58,10.0,6 -8.0,0.58,0.16,2.0,0.12,3.0,7.0,0.99454,3.22,0.58,11.2,6 -10.5,0.39,0.46,2.2,0.075,14.0,27.0,0.99598,3.06,0.84,11.4,6 -8.9,0.38,0.4,2.2,0.068,12.0,28.0,0.9948600000000001,3.27,0.75,12.6,7 -8.0,0.18,0.37,0.9,0.049,36.0,109.0,0.9900700000000001,2.89,0.44,12.7,6 -8.0,0.18,0.37,0.9,0.049,36.0,109.0,0.9900700000000001,2.89,0.44,12.7,6 -7.0,0.5,0.14,1.8,0.078,10.0,23.0,0.99636,3.53,0.61,10.4,5 -11.3,0.36,0.66,2.4,0.12300000000000001,3.0,8.0,0.9964200000000001,3.2,0.53,11.9,6 -11.3,0.36,0.66,2.4,0.12300000000000001,3.0,8.0,0.9964200000000001,3.2,0.53,11.9,6 -7.0,0.51,0.09,2.1,0.062,4.0,9.0,0.99584,3.35,0.54,10.5,5 -8.2,0.32,0.42,2.3,0.098,3.0,9.0,0.9950600000000001,3.27,0.55,12.3,6 -7.7,0.58,0.01,1.8,0.08800000000000001,12.0,18.0,0.9956799999999999,3.32,0.56,10.5,7 -8.6,0.83,0.0,2.8,0.095,17.0,43.0,0.9982200000000001,3.33,0.6,10.4,6 -7.9,0.31,0.32,1.9,0.066,14.0,36.0,0.99364,3.41,0.56,12.6,6 -6.4,0.795,0.0,2.2,0.065,28.0,52.0,0.9937799999999999,3.49,0.52,11.6,5 -7.2,0.34,0.21,2.5,0.075,41.0,68.0,0.9958600000000001,3.37,0.54,10.1,6 -7.7,0.58,0.01,1.8,0.08800000000000001,12.0,18.0,0.9956799999999999,3.32,0.56,10.5,7 -7.1,0.59,0.0,2.1,0.091,9.0,14.0,0.9948799999999999,3.42,0.55,11.5,7 -7.3,0.55,0.01,1.8,0.09300000000000001,9.0,15.0,0.9951399999999999,3.35,0.58,11.0,7 -8.1,0.82,0.0,4.1,0.095,5.0,14.0,0.99854,3.36,0.53,9.6,5 -7.5,0.57,0.08,2.6,0.08900000000000001,14.0,27.0,0.99592,3.3,0.59,10.4,6 -8.9,0.745,0.18,2.5,0.077,15.0,48.0,0.99739,3.2,0.47,9.7,6 -10.1,0.37,0.34,2.4,0.085,5.0,17.0,0.9968299999999999,3.17,0.65,10.6,7 -7.6,0.31,0.34,2.5,0.08199999999999999,26.0,35.0,0.99356,3.22,0.59,12.5,7 -7.3,0.91,0.1,1.8,0.07400000000000001,20.0,56.0,0.99672,3.35,0.56,9.2,5 -8.7,0.41,0.41,6.2,0.078,25.0,42.0,0.9953,3.24,0.77,12.6,7 -8.9,0.5,0.21,2.2,0.08800000000000001,21.0,39.0,0.99692,3.33,0.83,11.1,6 -7.4,0.965,0.0,2.2,0.08800000000000001,16.0,32.0,0.99756,3.58,0.67,10.2,5 -6.9,0.49,0.19,1.7,0.079,13.0,26.0,0.9954700000000001,3.38,0.64,9.8,6 -8.9,0.5,0.21,2.2,0.08800000000000001,21.0,39.0,0.99692,3.33,0.83,11.1,6 -9.5,0.39,0.41,8.9,0.069,18.0,39.0,0.99859,3.29,0.81,10.9,7 -6.4,0.39,0.33,3.3,0.046,12.0,53.0,0.9929399999999999,3.36,0.62,12.2,6 -6.9,0.44,0.0,1.4,0.07,32.0,38.0,0.9943799999999999,3.32,0.58,11.4,6 -7.6,0.78,0.0,1.7,0.076,33.0,45.0,0.9961200000000001,3.31,0.62,10.7,6 -7.1,0.43,0.17,1.8,0.08199999999999999,27.0,51.0,0.99634,3.49,0.64,10.4,5 -9.3,0.49,0.36,1.7,0.081,3.0,14.0,0.99702,3.27,0.78,10.9,6 -9.3,0.5,0.36,1.8,0.084,6.0,17.0,0.9970399999999999,3.27,0.77,10.8,6 -7.1,0.43,0.17,1.8,0.08199999999999999,27.0,51.0,0.99634,3.49,0.64,10.4,5 -8.5,0.46,0.59,1.4,0.414,16.0,45.0,0.99702,3.03,1.34,9.2,5 -5.6,0.605,0.05,2.4,0.073,19.0,25.0,0.9925799999999999,3.56,0.55,12.9,5 -8.3,0.33,0.42,2.3,0.07,9.0,20.0,0.99426,3.38,0.77,12.7,7 -8.2,0.64,0.27,2.0,0.095,5.0,77.0,0.9974700000000001,3.13,0.62,9.1,6 -8.2,0.64,0.27,2.0,0.095,5.0,77.0,0.9974700000000001,3.13,0.62,9.1,6 -8.9,0.48,0.53,4.0,0.10099999999999999,3.0,10.0,0.9958600000000001,3.21,0.59,12.1,7 -7.6,0.42,0.25,3.9,0.10400000000000001,28.0,90.0,0.99784,3.15,0.57,9.1,5 -9.9,0.53,0.57,2.4,0.09300000000000001,30.0,52.0,0.9971,3.19,0.76,11.6,7 -8.9,0.48,0.53,4.0,0.10099999999999999,3.0,10.0,0.9958600000000001,3.21,0.59,12.1,7 -11.6,0.23,0.57,1.8,0.07400000000000001,3.0,8.0,0.9981,3.14,0.7,9.9,6 -9.1,0.4,0.5,1.8,0.071,7.0,16.0,0.9946200000000001,3.21,0.69,12.5,8 -8.0,0.38,0.44,1.9,0.098,6.0,15.0,0.9956,3.3,0.64,11.4,6 -10.2,0.29,0.65,2.4,0.075,6.0,17.0,0.99565,3.22,0.63,11.8,6 -8.2,0.74,0.09,2.0,0.067,5.0,10.0,0.99418,3.28,0.57,11.8,6 -7.7,0.61,0.18,2.4,0.083,6.0,20.0,0.9963,3.29,0.6,10.2,6 -6.6,0.52,0.08,2.4,0.07,13.0,26.0,0.9935799999999999,3.4,0.72,12.5,7 -11.1,0.31,0.53,2.2,0.06,3.0,10.0,0.99572,3.02,0.83,10.9,7 -11.1,0.31,0.53,2.2,0.06,3.0,10.0,0.99572,3.02,0.83,10.9,7 -8.0,0.62,0.35,2.8,0.086,28.0,52.0,0.997,3.31,0.62,10.8,5 -9.3,0.33,0.45,1.5,0.057,19.0,37.0,0.99498,3.18,0.89,11.1,7 -7.5,0.77,0.2,8.1,0.098,30.0,92.0,0.99892,3.2,0.58,9.2,5 -7.2,0.35,0.26,1.8,0.083,33.0,75.0,0.9968,3.4,0.58,9.5,6 -8.0,0.62,0.33,2.7,0.08800000000000001,16.0,37.0,0.9972,3.31,0.58,10.7,6 -7.5,0.77,0.2,8.1,0.098,30.0,92.0,0.99892,3.2,0.58,9.2,5 -9.1,0.25,0.34,2.0,0.071,45.0,67.0,0.99769,3.44,0.86,10.2,7 -9.9,0.32,0.56,2.0,0.073,3.0,8.0,0.99534,3.15,0.73,11.4,6 -8.6,0.37,0.65,6.4,0.08,3.0,8.0,0.9981700000000001,3.27,0.58,11.0,5 -8.6,0.37,0.65,6.4,0.08,3.0,8.0,0.9981700000000001,3.27,0.58,11.0,5 -7.9,0.3,0.68,8.3,0.05,37.5,278.0,0.99316,3.01,0.51,12.3,7 -10.3,0.27,0.56,1.4,0.047,3.0,8.0,0.99471,3.16,0.51,11.8,6 -7.9,0.3,0.68,8.3,0.05,37.5,289.0,0.99316,3.01,0.51,12.3,7 -7.2,0.38,0.3,1.8,0.073,31.0,70.0,0.99685,3.42,0.59,9.5,6 -8.7,0.42,0.45,2.4,0.07200000000000001,32.0,59.0,0.9961700000000001,3.33,0.77,12.0,6 -7.2,0.38,0.3,1.8,0.073,31.0,70.0,0.99685,3.42,0.59,9.5,6 -6.8,0.48,0.08,1.8,0.07400000000000001,40.0,64.0,0.99529,3.12,0.49,9.6,5 -8.5,0.34,0.4,4.7,0.055,3.0,9.0,0.9973799999999999,3.38,0.66,11.6,7 -7.9,0.19,0.42,1.6,0.057,18.0,30.0,0.9940000000000001,3.29,0.69,11.2,6 -11.6,0.41,0.54,1.5,0.095,22.0,41.0,0.99735,3.02,0.76,9.9,7 -11.6,0.41,0.54,1.5,0.095,22.0,41.0,0.99735,3.02,0.76,9.9,7 -10.0,0.26,0.54,1.9,0.083,42.0,74.0,0.99451,2.98,0.63,11.8,8 -7.9,0.34,0.42,2.0,0.086,8.0,19.0,0.99546,3.35,0.6,11.4,6 -7.0,0.54,0.09,2.0,0.081,10.0,16.0,0.99479,3.43,0.59,11.5,6 -9.2,0.31,0.36,2.2,0.079,11.0,31.0,0.99615,3.33,0.86,12.0,7 -6.6,0.725,0.09,5.5,0.11699999999999999,9.0,17.0,0.99655,3.35,0.49,10.8,6 -9.4,0.4,0.47,2.5,0.087,6.0,20.0,0.99772,3.15,0.5,10.5,5 -6.6,0.725,0.09,5.5,0.11699999999999999,9.0,17.0,0.99655,3.35,0.49,10.8,6 -8.6,0.52,0.38,1.5,0.096,5.0,18.0,0.99666,3.2,0.52,9.4,5 -8.0,0.31,0.45,2.1,0.21600000000000003,5.0,16.0,0.9935799999999999,3.15,0.81,12.5,7 -8.6,0.52,0.38,1.5,0.096,5.0,18.0,0.99666,3.2,0.52,9.4,5 -8.4,0.34,0.42,2.1,0.07200000000000001,23.0,36.0,0.99392,3.11,0.78,12.4,6 -7.4,0.49,0.27,2.1,0.071,14.0,25.0,0.9938799999999999,3.35,0.63,12.0,6 -6.1,0.48,0.09,1.7,0.078,18.0,30.0,0.9940200000000001,3.45,0.54,11.2,6 -7.4,0.49,0.27,2.1,0.071,14.0,25.0,0.9938799999999999,3.35,0.63,12.0,6 -8.0,0.48,0.34,2.2,0.073,16.0,25.0,0.9936,3.28,0.66,12.4,6 -6.3,0.57,0.28,2.1,0.048,13.0,49.0,0.99374,3.41,0.6,12.8,5 -8.2,0.23,0.42,1.9,0.069,9.0,17.0,0.9937600000000001,3.21,0.54,12.3,6 -9.1,0.3,0.41,2.0,0.068,10.0,24.0,0.99523,3.27,0.85,11.7,7 -8.1,0.78,0.1,3.3,0.09,4.0,13.0,0.99855,3.36,0.49,9.5,5 -10.8,0.47,0.43,2.1,0.171,27.0,66.0,0.9982,3.17,0.76,10.8,6 -8.3,0.53,0.0,1.4,0.07,6.0,14.0,0.99593,3.25,0.64,10.0,6 -5.4,0.42,0.27,2.0,0.092,23.0,55.0,0.99471,3.78,0.64,12.3,7 -7.9,0.33,0.41,1.5,0.055999999999999994,6.0,35.0,0.9939600000000001,3.29,0.71,11.0,6 -8.9,0.24,0.39,1.6,0.07400000000000001,3.0,10.0,0.99698,3.12,0.59,9.5,6 -5.0,0.4,0.5,4.3,0.046,29.0,80.0,0.9902,3.49,0.66,13.6,6 -7.0,0.69,0.07,2.5,0.091,15.0,21.0,0.99572,3.38,0.6,11.3,6 -7.0,0.69,0.07,2.5,0.091,15.0,21.0,0.99572,3.38,0.6,11.3,6 -7.0,0.69,0.07,2.5,0.091,15.0,21.0,0.99572,3.38,0.6,11.3,6 -7.1,0.39,0.12,2.1,0.065,14.0,24.0,0.9925200000000001,3.3,0.53,13.3,6 -5.6,0.66,0.0,2.5,0.066,7.0,15.0,0.99256,3.52,0.58,12.9,5 -7.9,0.54,0.34,2.5,0.076,8.0,17.0,0.99235,3.2,0.72,13.1,8 -6.6,0.5,0.0,1.8,0.062,21.0,28.0,0.9935200000000001,3.44,0.55,12.3,6 -6.3,0.47,0.0,1.4,0.055,27.0,33.0,0.9922,3.45,0.48,12.3,6 -10.7,0.4,0.37,1.9,0.081,17.0,29.0,0.99674,3.12,0.65,11.2,6 -6.5,0.58,0.0,2.2,0.096,3.0,13.0,0.9955700000000001,3.62,0.62,11.5,4 -8.8,0.24,0.35,1.7,0.055,13.0,27.0,0.9939399999999999,3.14,0.59,11.3,7 -5.8,0.29,0.26,1.7,0.063,3.0,11.0,0.9915,3.39,0.54,13.5,6 -6.3,0.76,0.0,2.9,0.07200000000000001,26.0,52.0,0.99379,3.51,0.6,11.5,6 -10.0,0.43,0.33,2.7,0.095,28.0,89.0,0.9984,3.22,0.68,10.0,5 -10.5,0.43,0.35,3.3,0.092,24.0,70.0,0.99798,3.21,0.69,10.5,6 -9.1,0.6,0.0,1.9,0.057999999999999996,5.0,10.0,0.9977,3.18,0.63,10.4,6 -5.9,0.19,0.21,1.7,0.045,57.0,135.0,0.99341,3.32,0.44,9.5,5 -7.4,0.36,0.34,1.8,0.075,18.0,38.0,0.9933,3.38,0.88,13.6,7 -7.2,0.48,0.07,5.5,0.08900000000000001,10.0,18.0,0.99684,3.37,0.68,11.2,7 -8.5,0.28,0.35,1.7,0.061,6.0,15.0,0.99524,3.3,0.74,11.8,7 -8.0,0.25,0.43,1.7,0.067,22.0,50.0,0.9946,3.38,0.6,11.9,6 -10.4,0.52,0.45,2.0,0.08,6.0,13.0,0.99774,3.22,0.76,11.4,6 -10.4,0.52,0.45,2.0,0.08,6.0,13.0,0.99774,3.22,0.76,11.4,6 -7.5,0.41,0.15,3.7,0.10400000000000001,29.0,94.0,0.9978600000000001,3.14,0.58,9.1,5 -8.2,0.51,0.24,2.0,0.079,16.0,86.0,0.99764,3.34,0.64,9.5,6 -7.3,0.4,0.3,1.7,0.08,33.0,79.0,0.9969,3.41,0.65,9.5,6 -8.2,0.38,0.32,2.5,0.08,24.0,71.0,0.99624,3.27,0.85,11.0,6 -6.9,0.45,0.11,2.4,0.043,6.0,12.0,0.99354,3.3,0.65,11.4,6 -7.0,0.22,0.3,1.8,0.065,16.0,20.0,0.99672,3.61,0.82,10.0,6 -7.3,0.32,0.23,2.3,0.066,35.0,70.0,0.9958799999999999,3.43,0.62,10.1,5 -8.2,0.2,0.43,2.5,0.076,31.0,51.0,0.99672,3.53,0.81,10.4,6 -7.8,0.5,0.12,1.8,0.17800000000000002,6.0,21.0,0.996,3.28,0.87,9.8,6 -10.0,0.41,0.45,6.2,0.071,6.0,14.0,0.99702,3.21,0.49,11.8,7 -7.8,0.39,0.42,2.0,0.086,9.0,21.0,0.99526,3.39,0.66,11.6,6 -10.0,0.35,0.47,2.0,0.061,6.0,11.0,0.99585,3.23,0.52,12.0,6 -8.2,0.33,0.32,2.8,0.067,4.0,12.0,0.9947299999999999,3.3,0.76,12.8,7 -6.1,0.58,0.23,2.5,0.044000000000000004,16.0,70.0,0.9935200000000001,3.46,0.65,12.5,6 -8.3,0.6,0.25,2.2,0.11800000000000001,9.0,38.0,0.99616,3.15,0.53,9.8,5 -9.6,0.42,0.35,2.1,0.083,17.0,38.0,0.9962200000000001,3.23,0.66,11.1,6 -6.6,0.58,0.0,2.2,0.1,50.0,63.0,0.99544,3.59,0.68,11.4,6 -8.3,0.6,0.25,2.2,0.11800000000000001,9.0,38.0,0.99616,3.15,0.53,9.8,5 -8.5,0.18,0.51,1.75,0.071,45.0,88.0,0.99524,3.33,0.76,11.8,7 -5.1,0.51,0.18,2.1,0.042,16.0,101.0,0.9924,3.46,0.87,12.9,7 -6.7,0.41,0.43,2.8,0.076,22.0,54.0,0.99572,3.42,1.16,10.6,6 -10.2,0.41,0.43,2.2,0.11,11.0,37.0,0.9972799999999999,3.16,0.67,10.8,5 -10.6,0.36,0.57,2.3,0.087,6.0,20.0,0.9967600000000001,3.14,0.72,11.1,7 -8.8,0.45,0.43,1.4,0.076,12.0,21.0,0.99551,3.21,0.75,10.2,6 -8.5,0.32,0.42,2.3,0.075,12.0,19.0,0.99434,3.14,0.71,11.8,7 -9.0,0.785,0.24,1.7,0.078,10.0,21.0,0.99692,3.29,0.67,10.0,5 -9.0,0.785,0.24,1.7,0.078,10.0,21.0,0.99692,3.29,0.67,10.0,5 -8.5,0.44,0.5,1.9,0.369,15.0,38.0,0.99634,3.01,1.1,9.4,5 -9.9,0.54,0.26,2.0,0.111,7.0,60.0,0.9970899999999999,2.94,0.98,10.2,5 -8.2,0.33,0.39,2.5,0.07400000000000001,29.0,48.0,0.9952799999999999,3.32,0.88,12.4,7 -6.5,0.34,0.27,2.8,0.067,8.0,44.0,0.99384,3.21,0.56,12.0,6 -7.6,0.5,0.29,2.3,0.086,5.0,14.0,0.9950200000000001,3.32,0.62,11.5,6 -9.2,0.36,0.34,1.6,0.062,5.0,12.0,0.9966700000000001,3.2,0.67,10.5,6 -7.1,0.59,0.0,2.2,0.078,26.0,44.0,0.9952200000000001,3.42,0.68,10.8,6 -9.7,0.42,0.46,2.1,0.07400000000000001,5.0,16.0,0.99649,3.27,0.74,12.3,6 -7.6,0.36,0.31,1.7,0.079,26.0,65.0,0.99716,3.46,0.62,9.5,6 -7.6,0.36,0.31,1.7,0.079,26.0,65.0,0.99716,3.46,0.62,9.5,6 -6.5,0.61,0.0,2.2,0.095,48.0,59.0,0.99541,3.61,0.7,11.5,6 -6.5,0.88,0.03,5.6,0.079,23.0,47.0,0.99572,3.58,0.5,11.2,4 -7.1,0.66,0.0,2.4,0.052000000000000005,6.0,11.0,0.99318,3.35,0.66,12.7,7 -5.6,0.915,0.0,2.1,0.040999999999999995,17.0,78.0,0.99346,3.68,0.73,11.4,5 -8.2,0.35,0.33,2.4,0.076,11.0,47.0,0.9959899999999999,3.27,0.81,11.0,6 -8.2,0.35,0.33,2.4,0.076,11.0,47.0,0.9959899999999999,3.27,0.81,11.0,6 -9.8,0.39,0.43,1.65,0.068,5.0,11.0,0.9947799999999999,3.19,0.46,11.4,5 -10.2,0.4,0.4,2.5,0.068,41.0,54.0,0.99754,3.38,0.86,10.5,6 -6.8,0.66,0.07,1.6,0.07,16.0,61.0,0.99572,3.29,0.6,9.3,5 -6.7,0.64,0.23,2.1,0.08,11.0,119.0,0.9953799999999999,3.36,0.7,10.9,5 -7.0,0.43,0.3,2.0,0.085,6.0,39.0,0.99346,3.33,0.46,11.9,6 -6.6,0.8,0.03,7.8,0.079,6.0,12.0,0.9963,3.52,0.5,12.2,5 -7.0,0.43,0.3,2.0,0.085,6.0,39.0,0.99346,3.33,0.46,11.9,6 -6.7,0.64,0.23,2.1,0.08,11.0,119.0,0.9953799999999999,3.36,0.7,10.9,5 -8.8,0.955,0.05,1.8,0.075,5.0,19.0,0.99616,3.3,0.44,9.6,4 -9.1,0.4,0.57,4.6,0.08,6.0,20.0,0.9965200000000001,3.28,0.57,12.5,6 -6.5,0.885,0.0,2.3,0.166,6.0,12.0,0.99551,3.56,0.51,10.8,5 -7.2,0.25,0.37,2.5,0.063,11.0,41.0,0.99439,3.52,0.8,12.4,7 -6.4,0.885,0.0,2.3,0.166,6.0,12.0,0.99551,3.56,0.51,10.8,5 -7.0,0.745,0.12,1.8,0.114,15.0,64.0,0.9958799999999999,3.22,0.59,9.5,6 -6.2,0.43,0.22,1.8,0.078,21.0,56.0,0.9963299999999999,3.52,0.6,9.5,6 -7.9,0.58,0.23,2.3,0.076,23.0,94.0,0.9968600000000001,3.21,0.58,9.5,6 -7.7,0.57,0.21,1.5,0.069,4.0,9.0,0.9945799999999999,3.16,0.54,9.8,6 -7.7,0.26,0.26,2.0,0.052000000000000005,19.0,77.0,0.9951,3.15,0.79,10.9,6 -7.9,0.58,0.23,2.3,0.076,23.0,94.0,0.9968600000000001,3.21,0.58,9.5,6 -7.7,0.57,0.21,1.5,0.069,4.0,9.0,0.9945799999999999,3.16,0.54,9.8,6 -7.9,0.34,0.36,1.9,0.065,5.0,10.0,0.99419,3.27,0.54,11.2,7 -8.6,0.42,0.39,1.8,0.068,6.0,12.0,0.99516,3.35,0.69,11.7,8 -9.9,0.74,0.19,5.8,0.111,33.0,76.0,0.9987799999999999,3.14,0.55,9.4,5 -7.2,0.36,0.46,2.1,0.07400000000000001,24.0,44.0,0.99534,3.4,0.85,11.0,7 -7.2,0.36,0.46,2.1,0.07400000000000001,24.0,44.0,0.99534,3.4,0.85,11.0,7 -7.2,0.36,0.46,2.1,0.07400000000000001,24.0,44.0,0.99534,3.4,0.85,11.0,7 -9.9,0.72,0.55,1.7,0.136,24.0,52.0,0.9975200000000001,3.35,0.94,10.0,5 -7.2,0.36,0.46,2.1,0.07400000000000001,24.0,44.0,0.99534,3.4,0.85,11.0,7 -6.2,0.39,0.43,2.0,0.071,14.0,24.0,0.9942799999999999,3.45,0.87,11.2,7 -6.8,0.65,0.02,2.1,0.078,8.0,15.0,0.99498,3.35,0.62,10.4,6 -6.6,0.44,0.15,2.1,0.076,22.0,53.0,0.9957,3.32,0.62,9.3,5 -6.8,0.65,0.02,2.1,0.078,8.0,15.0,0.99498,3.35,0.62,10.4,6 -9.6,0.38,0.42,1.9,0.071,5.0,13.0,0.99659,3.15,0.75,10.5,6 -10.2,0.33,0.46,1.9,0.081,6.0,9.0,0.9962799999999999,3.1,0.48,10.4,6 -8.8,0.27,0.46,2.1,0.095,20.0,29.0,0.9948799999999999,3.26,0.56,11.3,6 -7.9,0.57,0.31,2.0,0.079,10.0,79.0,0.99677,3.29,0.69,9.5,6 -8.2,0.34,0.37,1.9,0.057,43.0,74.0,0.99408,3.23,0.81,12.0,6 -8.2,0.4,0.31,1.9,0.08199999999999999,8.0,24.0,0.996,3.24,0.69,10.6,6 -9.0,0.39,0.4,1.3,0.044000000000000004,25.0,50.0,0.9947799999999999,3.2,0.83,10.9,6 -10.9,0.32,0.52,1.8,0.132,17.0,44.0,0.99734,3.28,0.77,11.5,6 -10.9,0.32,0.52,1.8,0.132,17.0,44.0,0.99734,3.28,0.77,11.5,6 -8.1,0.53,0.22,2.2,0.078,33.0,89.0,0.9967799999999999,3.26,0.46,9.6,6 -10.5,0.36,0.47,2.2,0.07400000000000001,9.0,23.0,0.9963799999999999,3.23,0.76,12.0,6 -12.6,0.39,0.49,2.5,0.08,8.0,20.0,0.9992,3.07,0.82,10.3,6 -9.2,0.46,0.23,2.6,0.091,18.0,77.0,0.9992200000000001,3.15,0.51,9.4,5 -7.5,0.58,0.03,4.1,0.08,27.0,46.0,0.99592,3.02,0.47,9.2,5 -9.0,0.58,0.25,2.0,0.10400000000000001,8.0,21.0,0.99769,3.27,0.72,9.6,5 -5.1,0.42,0.0,1.8,0.044000000000000004,18.0,88.0,0.9915700000000001,3.68,0.73,13.6,7 -7.6,0.43,0.29,2.1,0.075,19.0,66.0,0.99718,3.4,0.64,9.5,5 -7.7,0.18,0.34,2.7,0.066,15.0,58.0,0.9947,3.37,0.78,11.8,6 -7.8,0.815,0.01,2.6,0.07400000000000001,48.0,90.0,0.99621,3.38,0.62,10.8,5 -7.6,0.43,0.29,2.1,0.075,19.0,66.0,0.99718,3.4,0.64,9.5,5 -10.2,0.23,0.37,2.2,0.057,14.0,36.0,0.9961399999999999,3.23,0.49,9.3,4 -7.1,0.75,0.01,2.2,0.059000000000000004,11.0,18.0,0.9924200000000001,3.39,0.4,12.8,6 -6.0,0.33,0.32,12.9,0.054000000000000006,6.0,113.0,0.99572,3.3,0.56,11.5,4 -7.8,0.55,0.0,1.7,0.07,7.0,17.0,0.99659,3.26,0.64,9.4,6 -7.1,0.75,0.01,2.2,0.059000000000000004,11.0,18.0,0.9924200000000001,3.39,0.4,12.8,6 -8.1,0.73,0.0,2.5,0.081,12.0,24.0,0.99798,3.38,0.46,9.6,4 -6.5,0.67,0.0,4.3,0.057,11.0,20.0,0.9948799999999999,3.45,0.56,11.8,4 -7.5,0.61,0.2,1.7,0.076,36.0,60.0,0.9949399999999999,3.1,0.4,9.3,5 -9.8,0.37,0.39,2.5,0.079,28.0,65.0,0.99729,3.16,0.59,9.8,5 -9.0,0.4,0.41,2.0,0.057999999999999996,15.0,40.0,0.9941399999999999,3.22,0.6,12.2,6 -8.3,0.56,0.22,2.4,0.08199999999999999,10.0,86.0,0.9983,3.37,0.62,9.5,5 -5.9,0.29,0.25,13.4,0.067,72.0,160.0,0.99721,3.33,0.54,10.3,6 -7.4,0.55,0.19,1.8,0.08199999999999999,15.0,34.0,0.99655,3.49,0.68,10.5,5 -7.4,0.74,0.07,1.7,0.086,15.0,48.0,0.9950200000000001,3.12,0.48,10.0,5 -7.4,0.55,0.19,1.8,0.08199999999999999,15.0,34.0,0.99655,3.49,0.68,10.5,5 -6.9,0.41,0.33,2.2,0.081,22.0,36.0,0.9949,3.41,0.75,11.1,6 -7.1,0.6,0.01,2.3,0.079,24.0,37.0,0.9951399999999999,3.4,0.61,10.9,6 -7.1,0.6,0.01,2.3,0.079,24.0,37.0,0.9951399999999999,3.4,0.61,10.9,6 -7.5,0.58,0.14,2.2,0.077,27.0,60.0,0.9963,3.28,0.59,9.8,5 -7.1,0.72,0.0,1.8,0.12300000000000001,6.0,14.0,0.9962700000000001,3.45,0.58,9.8,5 -7.9,0.66,0.0,1.4,0.096,6.0,13.0,0.99569,3.43,0.58,9.5,5 -7.8,0.7,0.06,1.9,0.079,20.0,35.0,0.9962799999999999,3.4,0.69,10.9,5 -6.1,0.64,0.02,2.4,0.069,26.0,46.0,0.9935799999999999,3.47,0.45,11.0,5 -7.5,0.59,0.22,1.8,0.08199999999999999,43.0,60.0,0.9949899999999999,3.1,0.42,9.2,5 -7.0,0.58,0.28,4.8,0.085,12.0,69.0,0.9963299999999999,3.32,0.7,11.0,6 -6.8,0.64,0.0,2.7,0.12300000000000001,15.0,33.0,0.9953799999999999,3.44,0.63,11.3,6 -6.8,0.64,0.0,2.7,0.12300000000000001,15.0,33.0,0.9953799999999999,3.44,0.63,11.3,6 -8.6,0.635,0.68,1.8,0.40299999999999997,19.0,56.0,0.9963200000000001,3.02,1.15,9.3,5 -6.3,1.02,0.0,2.0,0.083,17.0,24.0,0.9943700000000001,3.59,0.55,11.2,4 -9.8,0.45,0.38,2.5,0.081,34.0,66.0,0.99726,3.15,0.58,9.8,5 -8.2,0.78,0.0,2.2,0.08900000000000001,13.0,26.0,0.9978,3.37,0.46,9.6,4 -8.5,0.37,0.32,1.8,0.066,26.0,51.0,0.99456,3.38,0.72,11.8,6 -7.2,0.57,0.05,2.3,0.081,16.0,36.0,0.99564,3.38,0.6,10.3,6 -7.2,0.57,0.05,2.3,0.081,16.0,36.0,0.99564,3.38,0.6,10.3,6 -10.4,0.43,0.5,2.3,0.068,13.0,19.0,0.996,3.1,0.87,11.4,6 -6.9,0.41,0.31,2.0,0.079,21.0,51.0,0.9966799999999999,3.47,0.55,9.5,6 -5.5,0.49,0.03,1.8,0.044000000000000004,28.0,87.0,0.9908,3.5,0.82,14.0,8 -5.0,0.38,0.01,1.6,0.048,26.0,60.0,0.9908399999999999,3.7,0.75,14.0,6 -7.3,0.44,0.2,1.6,0.049,24.0,64.0,0.9935,3.38,0.57,11.7,6 -5.9,0.46,0.0,1.9,0.077,25.0,44.0,0.99385,3.5,0.53,11.2,5 -7.5,0.58,0.2,2.0,0.073,34.0,44.0,0.9949399999999999,3.1,0.43,9.3,5 -7.8,0.58,0.13,2.1,0.102,17.0,36.0,0.9944,3.24,0.53,11.2,6 -8.0,0.715,0.22,2.3,0.075,13.0,81.0,0.9968799999999999,3.24,0.54,9.5,6 -8.5,0.4,0.4,6.3,0.05,3.0,10.0,0.99566,3.28,0.56,12.0,4 -7.0,0.69,0.0,1.9,0.114,3.0,10.0,0.99636,3.35,0.6,9.7,6 -8.0,0.715,0.22,2.3,0.075,13.0,81.0,0.9968799999999999,3.24,0.54,9.5,6 -9.8,0.3,0.39,1.7,0.062,3.0,9.0,0.9948,3.14,0.57,11.5,7 -7.1,0.46,0.2,1.9,0.077,28.0,54.0,0.9956,3.37,0.64,10.4,6 -7.1,0.46,0.2,1.9,0.077,28.0,54.0,0.9956,3.37,0.64,10.4,6 -7.9,0.765,0.0,2.0,0.084,9.0,22.0,0.9961899999999999,3.33,0.68,10.9,6 -8.7,0.63,0.28,2.7,0.096,17.0,69.0,0.99734,3.26,0.63,10.2,6 -7.0,0.42,0.19,2.3,0.071,18.0,36.0,0.9947600000000001,3.39,0.56,10.9,5 -11.3,0.37,0.5,1.8,0.09,20.0,47.0,0.99734,3.15,0.57,10.5,5 -7.1,0.16,0.44,2.5,0.068,17.0,31.0,0.9932799999999999,3.35,0.54,12.4,6 -8.0,0.6,0.08,2.6,0.055999999999999994,3.0,7.0,0.9928600000000001,3.22,0.37,13.0,5 -7.0,0.6,0.3,4.5,0.068,20.0,110.0,0.9991399999999999,3.3,1.17,10.2,5 -7.0,0.6,0.3,4.5,0.068,20.0,110.0,0.9991399999999999,3.3,1.17,10.2,5 -7.6,0.74,0.0,1.9,0.1,6.0,12.0,0.99521,3.36,0.59,11.0,5 -8.2,0.635,0.1,2.1,0.073,25.0,60.0,0.9963799999999999,3.29,0.75,10.9,6 -5.9,0.395,0.13,2.4,0.055999999999999994,14.0,28.0,0.9936200000000001,3.62,0.67,12.4,6 -7.5,0.755,0.0,1.9,0.084,6.0,12.0,0.99672,3.34,0.49,9.7,4 -8.2,0.635,0.1,2.1,0.073,25.0,60.0,0.9963799999999999,3.29,0.75,10.9,6 -6.6,0.63,0.0,4.3,0.09300000000000001,51.0,77.5,0.9955799999999999,3.2,0.45,9.5,5 -6.6,0.63,0.0,4.3,0.09300000000000001,51.0,77.5,0.9955799999999999,3.2,0.45,9.5,5 -7.2,0.53,0.14,2.1,0.064,15.0,29.0,0.99323,3.35,0.61,12.1,6 -5.7,0.6,0.0,1.4,0.063,11.0,18.0,0.9919100000000001,3.45,0.56,12.2,6 -7.6,1.58,0.0,2.1,0.13699999999999998,5.0,9.0,0.9947600000000001,3.5,0.4,10.9,3 -5.2,0.645,0.0,2.15,0.08,15.0,28.0,0.99444,3.78,0.61,12.5,6 -6.7,0.86,0.07,2.0,0.1,20.0,57.0,0.99598,3.6,0.74,11.7,6 -9.1,0.37,0.32,2.1,0.064,4.0,15.0,0.9957600000000001,3.3,0.8,11.2,6 -8.0,0.28,0.44,1.8,0.081,28.0,68.0,0.9950100000000001,3.36,0.66,11.2,5 -7.6,0.79,0.21,2.3,0.087,21.0,68.0,0.9955,3.12,0.44,9.2,5 -7.5,0.61,0.26,1.9,0.073,24.0,88.0,0.9961200000000001,3.3,0.53,9.8,5 -9.7,0.69,0.32,2.5,0.08800000000000001,22.0,91.0,0.9979,3.29,0.62,10.1,5 -6.8,0.68,0.09,3.9,0.068,15.0,29.0,0.99524,3.41,0.52,11.1,4 -9.7,0.69,0.32,2.5,0.08800000000000001,22.0,91.0,0.9979,3.29,0.62,10.1,5 -7.0,0.62,0.1,1.4,0.071,27.0,63.0,0.996,3.28,0.61,9.2,5 -7.5,0.61,0.26,1.9,0.073,24.0,88.0,0.9961200000000001,3.3,0.53,9.8,5 -6.5,0.51,0.15,3.0,0.064,12.0,27.0,0.9929,3.33,0.59,12.8,6 -8.0,1.18,0.21,1.9,0.083,14.0,41.0,0.9953200000000001,3.34,0.47,10.5,5 -7.0,0.36,0.21,2.3,0.086,20.0,65.0,0.9955799999999999,3.4,0.54,10.1,6 -7.0,0.36,0.21,2.4,0.086,24.0,69.0,0.99556,3.4,0.53,10.1,6 -7.5,0.63,0.27,2.0,0.083,17.0,91.0,0.99616,3.26,0.58,9.8,6 -5.4,0.74,0.0,1.2,0.040999999999999995,16.0,46.0,0.9925799999999999,4.01,0.59,12.5,6 -9.9,0.44,0.46,2.2,0.091,10.0,41.0,0.9963799999999999,3.18,0.69,11.9,6 -7.5,0.63,0.27,2.0,0.083,17.0,91.0,0.99616,3.26,0.58,9.8,6 -9.1,0.76,0.68,1.7,0.414,18.0,64.0,0.9965200000000001,2.9,1.33,9.1,6 -9.7,0.66,0.34,2.6,0.094,12.0,88.0,0.9979600000000001,3.26,0.66,10.1,5 -5.0,0.74,0.0,1.2,0.040999999999999995,16.0,46.0,0.9925799999999999,4.01,0.59,12.5,6 -9.1,0.34,0.42,1.8,0.057999999999999996,9.0,18.0,0.99392,3.18,0.55,11.4,5 -9.1,0.36,0.39,1.8,0.06,21.0,55.0,0.99495,3.18,0.82,11.0,7 -6.7,0.46,0.24,1.7,0.077,18.0,34.0,0.9948,3.39,0.6,10.6,6 -6.7,0.46,0.24,1.7,0.077,18.0,34.0,0.9948,3.39,0.6,10.6,6 -6.7,0.46,0.24,1.7,0.077,18.0,34.0,0.9948,3.39,0.6,10.6,6 -6.7,0.46,0.24,1.7,0.077,18.0,34.0,0.9948,3.39,0.6,10.6,6 -6.5,0.52,0.11,1.8,0.073,13.0,38.0,0.9955,3.34,0.52,9.3,5 -7.4,0.6,0.26,2.1,0.083,17.0,91.0,0.99616,3.29,0.56,9.8,6 -7.4,0.6,0.26,2.1,0.083,17.0,91.0,0.99616,3.29,0.56,9.8,6 -7.8,0.87,0.26,3.8,0.107,31.0,67.0,0.9966799999999999,3.26,0.46,9.2,5 -8.4,0.39,0.1,1.7,0.075,6.0,25.0,0.9958100000000001,3.09,0.43,9.7,6 -9.1,0.775,0.22,2.2,0.079,12.0,48.0,0.9976,3.18,0.51,9.6,5 -7.2,0.835,0.0,2.0,0.166,4.0,11.0,0.99608,3.39,0.52,10.0,5 -6.6,0.58,0.02,2.4,0.069,19.0,40.0,0.99387,3.38,0.66,12.6,6 -6.0,0.5,0.0,1.4,0.057,15.0,26.0,0.9944799999999999,3.36,0.45,9.5,5 -6.0,0.5,0.0,1.4,0.057,15.0,26.0,0.9944799999999999,3.36,0.45,9.5,5 -6.0,0.5,0.0,1.4,0.057,15.0,26.0,0.9944799999999999,3.36,0.45,9.5,5 -7.5,0.51,0.02,1.7,0.084,13.0,31.0,0.9953799999999999,3.36,0.54,10.5,6 -7.5,0.51,0.02,1.7,0.084,13.0,31.0,0.9953799999999999,3.36,0.54,10.5,6 -7.5,0.51,0.02,1.7,0.084,13.0,31.0,0.9953799999999999,3.36,0.54,10.5,6 -7.6,0.54,0.02,1.7,0.085,17.0,31.0,0.9958899999999999,3.37,0.51,10.4,6 -7.5,0.51,0.02,1.7,0.084,13.0,31.0,0.9953799999999999,3.36,0.54,10.5,6 -11.5,0.42,0.48,2.6,0.077,8.0,20.0,0.9985200000000001,3.09,0.53,11.0,5 -8.2,0.44,0.24,2.3,0.063,10.0,28.0,0.99613,3.25,0.53,10.2,6 -6.1,0.59,0.01,2.1,0.055999999999999994,5.0,13.0,0.99472,3.52,0.56,11.4,5 -7.2,0.655,0.03,1.8,0.078,7.0,12.0,0.99587,3.34,0.39,9.5,5 -7.2,0.655,0.03,1.8,0.078,7.0,12.0,0.99587,3.34,0.39,9.5,5 -6.9,0.57,0.0,2.8,0.081,21.0,41.0,0.99518,3.41,0.52,10.8,5 -9.0,0.6,0.29,2.0,0.069,32.0,73.0,0.99654,3.34,0.57,10.0,5 -7.2,0.62,0.01,2.3,0.065,8.0,46.0,0.9933200000000001,3.32,0.51,11.8,6 -7.6,0.645,0.03,1.9,0.086,14.0,57.0,0.9969,3.37,0.46,10.3,5 -7.6,0.645,0.03,1.9,0.086,14.0,57.0,0.9969,3.37,0.46,10.3,5 -7.2,0.58,0.03,2.3,0.077,7.0,28.0,0.9956799999999999,3.35,0.52,10.0,5 -6.1,0.32,0.25,1.8,0.086,5.0,32.0,0.99464,3.36,0.44,10.1,5 -6.1,0.34,0.25,1.8,0.084,4.0,28.0,0.99464,3.36,0.44,10.1,5 -7.3,0.43,0.24,2.5,0.078,27.0,67.0,0.9964799999999999,3.6,0.59,11.1,6 -7.4,0.64,0.17,5.4,0.168,52.0,98.0,0.99736,3.28,0.5,9.5,5 -11.6,0.475,0.4,1.4,0.091,6.0,28.0,0.9970399999999999,3.07,0.65,10.0333333333333,6 -9.2,0.54,0.31,2.3,0.11199999999999999,11.0,38.0,0.9969899999999999,3.24,0.56,10.9,5 -8.3,0.85,0.14,2.5,0.09300000000000001,13.0,54.0,0.99724,3.36,0.54,10.1,5 -11.6,0.475,0.4,1.4,0.091,6.0,28.0,0.9970399999999999,3.07,0.65,10.0333333333333,6 -8.0,0.83,0.27,2.0,0.08,11.0,63.0,0.9965200000000001,3.29,0.48,9.8,4 -7.2,0.605,0.02,1.9,0.096,10.0,31.0,0.995,3.46,0.53,11.8,6 -7.8,0.5,0.09,2.2,0.115,10.0,42.0,0.9971,3.18,0.62,9.5,5 -7.3,0.74,0.08,1.7,0.094,10.0,45.0,0.9957600000000001,3.24,0.5,9.8,5 -6.9,0.54,0.3,2.2,0.08800000000000001,9.0,105.0,0.99725,3.25,1.18,10.5,6 -8.0,0.77,0.32,2.1,0.079,16.0,74.0,0.99656,3.27,0.5,9.8,6 -6.6,0.61,0.0,1.6,0.069,4.0,8.0,0.9939600000000001,3.33,0.37,10.4,4 -8.7,0.78,0.51,1.7,0.415,12.0,66.0,0.99623,3.0,1.17,9.2,5 -7.5,0.58,0.56,3.1,0.153,5.0,14.0,0.9947600000000001,3.21,1.03,11.6,6 -8.7,0.78,0.51,1.7,0.415,12.0,66.0,0.99623,3.0,1.17,9.2,5 -7.7,0.75,0.27,3.8,0.11,34.0,89.0,0.99664,3.24,0.45,9.3,5 -6.8,0.815,0.0,1.2,0.267,16.0,29.0,0.99471,3.32,0.51,9.8,3 -7.2,0.56,0.26,2.0,0.083,13.0,100.0,0.9958600000000001,3.26,0.52,9.9,5 -8.2,0.885,0.2,1.4,0.086,7.0,31.0,0.9946,3.11,0.46,10.0,5 -5.2,0.49,0.26,2.3,0.09,23.0,74.0,0.9953,3.71,0.62,12.2,6 -7.2,0.45,0.15,2.0,0.078,10.0,28.0,0.9960899999999999,3.29,0.51,9.9,6 -7.5,0.57,0.02,2.6,0.077,11.0,35.0,0.9955700000000001,3.36,0.62,10.8,6 -7.5,0.57,0.02,2.6,0.077,11.0,35.0,0.9955700000000001,3.36,0.62,10.8,6 -6.8,0.83,0.09,1.8,0.07400000000000001,4.0,25.0,0.99534,3.38,0.45,9.6,5 -8.0,0.6,0.22,2.1,0.08,25.0,105.0,0.99613,3.3,0.49,9.9,5 -8.0,0.6,0.22,2.1,0.08,25.0,105.0,0.99613,3.3,0.49,9.9,5 -7.1,0.755,0.15,1.8,0.107,20.0,84.0,0.99593,3.19,0.5,9.5,5 -8.0,0.81,0.25,3.4,0.076,34.0,85.0,0.9966799999999999,3.19,0.42,9.2,5 -7.4,0.64,0.07,1.8,0.1,8.0,23.0,0.9961,3.3,0.58,9.6,5 -7.4,0.64,0.07,1.8,0.1,8.0,23.0,0.9961,3.3,0.58,9.6,5 -6.6,0.64,0.31,6.1,0.083,7.0,49.0,0.99718,3.35,0.68,10.3,5 -6.7,0.48,0.02,2.2,0.08,36.0,111.0,0.99524,3.1,0.53,9.7,5 -6.0,0.49,0.0,2.3,0.068,15.0,33.0,0.99292,3.58,0.59,12.5,6 -8.0,0.64,0.22,2.4,0.094,5.0,33.0,0.9961200000000001,3.37,0.58,11.0,5 -7.1,0.62,0.06,1.3,0.07,5.0,12.0,0.9942,3.17,0.48,9.8,5 -8.0,0.52,0.25,2.0,0.078,19.0,59.0,0.9961200000000001,3.3,0.48,10.2,5 -6.4,0.57,0.14,3.9,0.07,27.0,73.0,0.99669,3.32,0.48,9.2,5 -8.6,0.685,0.1,1.6,0.092,3.0,12.0,0.99745,3.31,0.65,9.55,6 -8.7,0.675,0.1,1.6,0.09,4.0,11.0,0.99745,3.31,0.65,9.55,5 -7.3,0.59,0.26,2.0,0.08,17.0,104.0,0.99584,3.28,0.52,9.9,5 -7.0,0.6,0.12,2.2,0.083,13.0,28.0,0.9966,3.52,0.62,10.2,7 -7.2,0.67,0.0,2.2,0.068,10.0,24.0,0.9956,3.42,0.72,11.1,6 -7.9,0.69,0.21,2.1,0.08,33.0,141.0,0.9962,3.25,0.51,9.9,5 -7.9,0.69,0.21,2.1,0.08,33.0,141.0,0.9962,3.25,0.51,9.9,5 -7.6,0.3,0.42,2.0,0.052000000000000005,6.0,24.0,0.9963,3.44,0.82,11.9,6 -7.2,0.33,0.33,1.7,0.061,3.0,13.0,0.996,3.23,1.1,10.0,8 -8.0,0.5,0.39,2.6,0.08199999999999999,12.0,46.0,0.9985,3.43,0.62,10.7,6 -7.7,0.28,0.3,2.0,0.062,18.0,34.0,0.9952,3.28,0.9,11.3,7 -8.2,0.24,0.34,5.1,0.062,8.0,22.0,0.9974,3.22,0.94,10.9,6 -6.0,0.51,0.0,2.1,0.064,40.0,54.0,0.995,3.54,0.93,10.7,6 -8.1,0.29,0.36,2.2,0.048,35.0,53.0,0.995,3.27,1.01,12.4,7 -6.0,0.51,0.0,2.1,0.064,40.0,54.0,0.995,3.54,0.93,10.7,6 -6.6,0.96,0.0,1.8,0.08199999999999999,5.0,16.0,0.9936,3.5,0.44,11.9,6 -6.4,0.47,0.4,2.4,0.071,8.0,19.0,0.9963,3.56,0.73,10.6,6 -8.2,0.24,0.34,5.1,0.062,8.0,22.0,0.9974,3.22,0.94,10.9,6 -9.9,0.57,0.25,2.0,0.10400000000000001,12.0,89.0,0.9963,3.04,0.9,10.1,5 -10.0,0.32,0.59,2.2,0.077,3.0,15.0,0.9994,3.2,0.78,9.6,5 -6.2,0.58,0.0,1.6,0.065,8.0,18.0,0.9966,3.56,0.84,9.4,5 -10.0,0.32,0.59,2.2,0.077,3.0,15.0,0.9994,3.2,0.78,9.6,5 -7.3,0.34,0.33,2.5,0.064,21.0,37.0,0.9952,3.35,0.77,12.1,7 -7.8,0.53,0.01,1.6,0.077,3.0,19.0,0.995,3.16,0.46,9.8,5 -7.7,0.64,0.21,2.2,0.077,32.0,133.0,0.9956,3.27,0.45,9.9,5 -7.8,0.53,0.01,1.6,0.077,3.0,19.0,0.995,3.16,0.46,9.8,5 -7.5,0.4,0.18,1.6,0.079,24.0,58.0,0.9965,3.34,0.58,9.4,5 -7.0,0.54,0.0,2.1,0.079,39.0,55.0,0.9956,3.39,0.84,11.4,6 -6.4,0.53,0.09,3.9,0.12300000000000001,14.0,31.0,0.9968,3.5,0.67,11.0,4 -8.3,0.26,0.37,1.4,0.076,8.0,23.0,0.9974,3.26,0.7,9.6,6 -8.3,0.26,0.37,1.4,0.076,8.0,23.0,0.9974,3.26,0.7,9.6,6 -7.7,0.23,0.37,1.8,0.046,23.0,60.0,0.9971,3.41,0.71,12.1,6 -7.6,0.41,0.33,2.5,0.078,6.0,23.0,0.9957,3.3,0.58,11.2,5 -7.8,0.64,0.0,1.9,0.07200000000000001,27.0,55.0,0.9962,3.31,0.63,11.0,5 -7.9,0.18,0.4,2.2,0.049,38.0,67.0,0.996,3.33,0.93,11.3,5 -7.4,0.41,0.24,1.8,0.066,18.0,47.0,0.9956,3.37,0.62,10.4,5 -7.6,0.43,0.31,2.1,0.069,13.0,74.0,0.9958,3.26,0.54,9.9,6 -5.9,0.44,0.0,1.6,0.042,3.0,11.0,0.9944,3.48,0.85,11.7,6 -6.1,0.4,0.16,1.8,0.069,11.0,25.0,0.9955,3.42,0.74,10.1,7 -10.2,0.54,0.37,15.4,0.214,55.0,95.0,1.00369,3.18,0.77,9.0,6 -10.2,0.54,0.37,15.4,0.214,55.0,95.0,1.00369,3.18,0.77,9.0,6 -10.0,0.38,0.38,1.6,0.16899999999999998,27.0,90.0,0.9991399999999999,3.15,0.65,8.5,5 -6.8,0.915,0.29,4.8,0.07,15.0,39.0,0.99577,3.53,0.54,11.1,5 -7.0,0.59,0.0,1.7,0.052000000000000005,3.0,8.0,0.996,3.41,0.47,10.3,5 -7.3,0.67,0.02,2.2,0.07200000000000001,31.0,92.0,0.99566,3.32,0.68,11.066666666666698,6 -7.2,0.37,0.32,2.0,0.062,15.0,28.0,0.9947,3.23,0.73,11.3,7 -7.4,0.785,0.19,5.2,0.094,19.0,98.0,0.99713,3.16,0.52,9.56666666666667,6 -6.9,0.63,0.02,1.9,0.078,18.0,30.0,0.9971200000000001,3.4,0.75,9.8,5 -6.9,0.58,0.2,1.75,0.057999999999999996,8.0,22.0,0.9932200000000001,3.38,0.49,11.7,5 -7.3,0.67,0.02,2.2,0.07200000000000001,31.0,92.0,0.99566,3.32,0.68,11.1,6 -7.4,0.785,0.19,5.2,0.094,19.0,98.0,0.99713,3.16,0.52,9.6,6 -6.9,0.63,0.02,1.9,0.078,18.0,30.0,0.9971200000000001,3.4,0.75,9.8,5 -6.8,0.67,0.0,1.9,0.08,22.0,39.0,0.9970100000000001,3.4,0.74,9.7,5 -6.9,0.58,0.01,1.9,0.08,40.0,54.0,0.9968299999999999,3.4,0.73,9.7,5 -7.2,0.38,0.31,2.0,0.055999999999999994,15.0,29.0,0.99472,3.23,0.76,11.3,8 -7.2,0.37,0.32,2.0,0.062,15.0,28.0,0.9947,3.23,0.73,11.3,7 -7.8,0.32,0.44,2.7,0.10400000000000001,8.0,17.0,0.9973200000000001,3.33,0.78,11.0,7 -6.6,0.58,0.02,2.0,0.062,37.0,53.0,0.99374,3.35,0.76,11.6,7 -7.6,0.49,0.33,1.9,0.07400000000000001,27.0,85.0,0.9970600000000001,3.41,0.58,9.0,5 -11.7,0.45,0.63,2.2,0.073,7.0,23.0,0.99974,3.21,0.69,10.9,6 -6.5,0.9,0.0,1.6,0.052000000000000005,9.0,17.0,0.99467,3.5,0.63,10.9,6 -6.0,0.54,0.06,1.8,0.05,38.0,89.0,0.99236,3.3,0.5,10.55,6 -7.6,0.49,0.33,1.9,0.07400000000000001,27.0,85.0,0.9970600000000001,3.41,0.58,9.0,5 -8.4,0.29,0.4,1.7,0.067,8.0,20.0,0.99603,3.39,0.6,10.5,5 -7.9,0.2,0.35,1.7,0.054000000000000006,7.0,15.0,0.9945799999999999,3.32,0.8,11.9,7 -6.4,0.42,0.09,2.3,0.054000000000000006,34.0,64.0,0.99724,3.41,0.68,10.4,6 -6.2,0.785,0.0,2.1,0.06,6.0,13.0,0.99664,3.59,0.61,10.0,4 -6.8,0.64,0.03,2.3,0.075,14.0,31.0,0.99545,3.36,0.58,10.4,6 -6.9,0.63,0.01,2.4,0.076,14.0,39.0,0.9952200000000001,3.34,0.53,10.8,6 -6.8,0.59,0.1,1.7,0.063,34.0,53.0,0.9958,3.41,0.67,9.7,5 -6.8,0.59,0.1,1.7,0.063,34.0,53.0,0.9958,3.41,0.67,9.7,5 -7.3,0.48,0.32,2.1,0.062,31.0,54.0,0.9972799999999999,3.3,0.65,10.0,7 -6.7,1.04,0.08,2.3,0.067,19.0,32.0,0.9964799999999999,3.52,0.57,11.0,4 -7.3,0.48,0.32,2.1,0.062,31.0,54.0,0.9972799999999999,3.3,0.65,10.0,7 -7.3,0.98,0.05,2.1,0.061,20.0,49.0,0.99705,3.31,0.55,9.7,3 -10.0,0.69,0.11,1.4,0.084,8.0,24.0,0.9957799999999999,2.88,0.47,9.7,5 -6.7,0.7,0.08,3.75,0.067,8.0,16.0,0.99334,3.43,0.52,12.6,5 -7.6,0.35,0.6,2.6,0.073,23.0,44.0,0.99656,3.38,0.79,11.1,6 -6.1,0.6,0.08,1.8,0.071,14.0,45.0,0.99336,3.38,0.54,11.0,5 -9.9,0.5,0.5,13.8,0.205,48.0,82.0,1.00242,3.16,0.75,8.8,5 -5.3,0.47,0.11,2.2,0.048,16.0,89.0,0.99182,3.54,0.88,13.566666666666698,7 -9.9,0.5,0.5,13.8,0.205,48.0,82.0,1.00242,3.16,0.75,8.8,5 -5.3,0.47,0.11,2.2,0.048,16.0,89.0,0.99182,3.54,0.88,13.6,7 -7.1,0.875,0.05,5.7,0.08199999999999999,3.0,14.0,0.99808,3.4,0.52,10.2,3 -8.2,0.28,0.6,3.0,0.10400000000000001,10.0,22.0,0.99828,3.39,0.68,10.6,5 -5.6,0.62,0.03,1.5,0.08,6.0,13.0,0.99498,3.66,0.62,10.1,4 -8.2,0.28,0.6,3.0,0.10400000000000001,10.0,22.0,0.99828,3.39,0.68,10.6,5 -7.2,0.58,0.54,2.1,0.114,3.0,9.0,0.9971899999999999,3.33,0.57,10.3,4 -8.1,0.33,0.44,1.5,0.042,6.0,12.0,0.9954200000000001,3.35,0.61,10.7,5 -6.8,0.91,0.06,2.0,0.06,4.0,11.0,0.99592,3.53,0.64,10.9,4 -7.0,0.655,0.16,2.1,0.07400000000000001,8.0,25.0,0.9960600000000001,3.37,0.55,9.7,5 -6.8,0.68,0.21,2.1,0.07,9.0,23.0,0.99546,3.38,0.6,10.3,5 -6.0,0.64,0.05,1.9,0.066,9.0,17.0,0.9949600000000001,3.52,0.78,10.6,5 -5.6,0.54,0.04,1.7,0.049,5.0,13.0,0.9942,3.72,0.58,11.4,5 -6.2,0.57,0.1,2.1,0.048,4.0,11.0,0.9944799999999999,3.44,0.76,10.8,6 -7.1,0.22,0.49,1.8,0.039,8.0,18.0,0.99344,3.39,0.56,12.4,6 -5.6,0.54,0.04,1.7,0.049,5.0,13.0,0.9942,3.72,0.58,11.4,5 -6.2,0.65,0.06,1.6,0.05,6.0,18.0,0.9934799999999999,3.57,0.54,11.95,5 -7.7,0.54,0.26,1.9,0.08900000000000001,23.0,147.0,0.99636,3.26,0.59,9.7,5 -6.4,0.31,0.09,1.4,0.066,15.0,28.0,0.99459,3.42,0.7,10.0,7 -7.0,0.43,0.02,1.9,0.08,15.0,28.0,0.99492,3.35,0.81,10.6,6 -7.7,0.54,0.26,1.9,0.08900000000000001,23.0,147.0,0.99636,3.26,0.59,9.7,5 -6.9,0.74,0.03,2.3,0.054000000000000006,7.0,16.0,0.99508,3.45,0.63,11.5,6 -6.6,0.895,0.04,2.3,0.068,7.0,13.0,0.99582,3.53,0.58,10.8,6 -6.9,0.74,0.03,2.3,0.054000000000000006,7.0,16.0,0.99508,3.45,0.63,11.5,6 -7.5,0.725,0.04,1.5,0.076,8.0,15.0,0.99508,3.26,0.53,9.6,5 -7.8,0.82,0.29,4.3,0.083,21.0,64.0,0.9964200000000001,3.16,0.53,9.4,5 -7.3,0.585,0.18,2.4,0.078,15.0,60.0,0.9963799999999999,3.31,0.54,9.8,5 -6.2,0.44,0.39,2.5,0.077,6.0,14.0,0.99555,3.51,0.69,11.0,6 -7.5,0.38,0.57,2.3,0.106,5.0,12.0,0.99605,3.36,0.55,11.4,6 -6.7,0.76,0.02,1.8,0.078,6.0,12.0,0.996,3.55,0.63,9.95,3 -6.8,0.81,0.05,2.0,0.07,6.0,14.0,0.9956200000000001,3.51,0.66,10.8,6 -7.5,0.38,0.57,2.3,0.106,5.0,12.0,0.99605,3.36,0.55,11.4,6 -7.1,0.27,0.6,2.1,0.07400000000000001,17.0,25.0,0.9981399999999999,3.38,0.72,10.6,6 -7.9,0.18,0.4,1.8,0.062,7.0,20.0,0.9941,3.28,0.7,11.1,5 -6.4,0.36,0.21,2.2,0.047,26.0,48.0,0.99661,3.47,0.77,9.7,6 -7.1,0.69,0.04,2.1,0.068,19.0,27.0,0.9971200000000001,3.44,0.67,9.8,5 -6.4,0.79,0.04,2.2,0.061,11.0,17.0,0.9958799999999999,3.53,0.65,10.4,6 -6.4,0.56,0.15,1.8,0.078,17.0,65.0,0.9929399999999999,3.33,0.6,10.5,6 -6.9,0.84,0.21,4.1,0.07400000000000001,16.0,65.0,0.9984200000000001,3.53,0.72,9.23333333333333,6 -6.9,0.84,0.21,4.1,0.07400000000000001,16.0,65.0,0.9984200000000001,3.53,0.72,9.25,6 -6.1,0.32,0.25,2.3,0.071,23.0,58.0,0.9963299999999999,3.42,0.97,10.6,5 -6.5,0.53,0.06,2.0,0.063,29.0,44.0,0.9948899999999999,3.38,0.83,10.3,6 -7.4,0.47,0.46,2.2,0.114,7.0,20.0,0.9964700000000001,3.32,0.63,10.5,5 -6.6,0.7,0.08,2.6,0.106,14.0,27.0,0.99665,3.44,0.58,10.2,5 -6.5,0.53,0.06,2.0,0.063,29.0,44.0,0.9948899999999999,3.38,0.83,10.3,6 -6.9,0.48,0.2,1.9,0.08199999999999999,9.0,23.0,0.99585,3.39,0.43,9.05,4 -6.1,0.32,0.25,2.3,0.071,23.0,58.0,0.9963299999999999,3.42,0.97,10.6,5 -6.8,0.48,0.25,2.0,0.076,29.0,61.0,0.9953,3.34,0.6,10.4,5 -6.0,0.42,0.19,2.0,0.075,22.0,47.0,0.9952200000000001,3.39,0.78,10.0,6 -6.7,0.48,0.08,2.1,0.064,18.0,34.0,0.9955200000000001,3.33,0.64,9.7,5 -6.8,0.47,0.08,2.2,0.064,18.0,38.0,0.9955299999999999,3.3,0.65,9.6,6 -7.1,0.53,0.07,1.7,0.071,15.0,24.0,0.9951,3.29,0.66,10.8,6 -7.9,0.29,0.49,2.2,0.096,21.0,59.0,0.9971399999999999,3.31,0.67,10.1,6 -7.1,0.69,0.08,2.1,0.063,42.0,52.0,0.99608,3.42,0.6,10.2,6 -6.6,0.44,0.09,2.2,0.063,9.0,18.0,0.99444,3.42,0.69,11.3,6 -6.1,0.705,0.1,2.8,0.081,13.0,28.0,0.99631,3.6,0.66,10.2,5 -7.2,0.53,0.13,2.0,0.057999999999999996,18.0,22.0,0.9957299999999999,3.21,0.68,9.9,6 -8.0,0.39,0.3,1.9,0.07400000000000001,32.0,84.0,0.9971700000000001,3.39,0.61,9.0,5 -6.6,0.56,0.14,2.4,0.064,13.0,29.0,0.99397,3.42,0.62,11.7,7 -7.0,0.55,0.13,2.2,0.075,15.0,35.0,0.9959,3.36,0.59,9.7,6 -6.1,0.53,0.08,1.9,0.077,24.0,45.0,0.9952799999999999,3.6,0.68,10.3,6 -5.4,0.58,0.08,1.9,0.059000000000000004,20.0,31.0,0.99484,3.5,0.64,10.2,6 -6.2,0.64,0.09,2.5,0.081,15.0,26.0,0.9953799999999999,3.57,0.63,12.0,5 -7.2,0.39,0.32,1.8,0.065,34.0,60.0,0.9971399999999999,3.46,0.78,9.9,5 -6.2,0.52,0.08,4.4,0.071,11.0,32.0,0.99646,3.56,0.63,11.6,6 -7.4,0.25,0.29,2.2,0.054000000000000006,19.0,49.0,0.99666,3.4,0.76,10.9,7 -6.7,0.855,0.02,1.9,0.064,29.0,38.0,0.99472,3.3,0.56,10.75,6 -11.1,0.44,0.42,2.2,0.064,14.0,19.0,0.9975799999999999,3.25,0.57,10.4,6 -8.4,0.37,0.43,2.3,0.063,12.0,19.0,0.9955,3.17,0.81,11.2,7 -6.5,0.63,0.33,1.8,0.059000000000000004,16.0,28.0,0.99531,3.36,0.64,10.1,6 -7.0,0.57,0.02,2.0,0.07200000000000001,17.0,26.0,0.99575,3.36,0.61,10.2,5 -6.3,0.6,0.1,1.6,0.048,12.0,26.0,0.99306,3.55,0.51,12.1,5 -11.2,0.4,0.5,2.0,0.099,19.0,50.0,0.9978299999999999,3.1,0.58,10.4,5 -7.4,0.36,0.3,1.8,0.07400000000000001,17.0,24.0,0.99419,3.24,0.7,11.4,8 -7.1,0.68,0.0,2.3,0.087,17.0,26.0,0.9978299999999999,3.45,0.53,9.5,5 -7.1,0.67,0.0,2.3,0.083,18.0,27.0,0.9976799999999999,3.44,0.54,9.4,5 -6.3,0.68,0.01,3.7,0.10300000000000001,32.0,54.0,0.9958600000000001,3.51,0.66,11.3,6 -7.3,0.735,0.0,2.2,0.08,18.0,28.0,0.99765,3.41,0.6,9.4,5 -6.6,0.855,0.02,2.4,0.062,15.0,23.0,0.9962700000000001,3.54,0.6,11.0,6 -7.0,0.56,0.17,1.7,0.065,15.0,24.0,0.9951399999999999,3.44,0.68,10.55,7 -6.6,0.88,0.04,2.2,0.066,12.0,20.0,0.99636,3.53,0.56,9.9,5 -6.6,0.855,0.02,2.4,0.062,15.0,23.0,0.9962700000000001,3.54,0.6,11.0,6 -6.9,0.63,0.33,6.7,0.235,66.0,115.0,0.99787,3.22,0.56,9.5,5 -7.8,0.6,0.26,2.0,0.08,31.0,131.0,0.9962200000000001,3.21,0.52,9.9,5 -7.8,0.6,0.26,2.0,0.08,31.0,131.0,0.9962200000000001,3.21,0.52,9.9,5 -7.8,0.6,0.26,2.0,0.08,31.0,131.0,0.9962200000000001,3.21,0.52,9.9,5 -7.2,0.695,0.13,2.0,0.076,12.0,20.0,0.99546,3.29,0.54,10.1,5 -7.2,0.695,0.13,2.0,0.076,12.0,20.0,0.99546,3.29,0.54,10.1,5 -7.2,0.695,0.13,2.0,0.076,12.0,20.0,0.99546,3.29,0.54,10.1,5 -6.7,0.67,0.02,1.9,0.061,26.0,42.0,0.9948899999999999,3.39,0.82,10.9,6 -6.7,0.16,0.64,2.1,0.059000000000000004,24.0,52.0,0.9949399999999999,3.34,0.71,11.2,6 -7.2,0.695,0.13,2.0,0.076,12.0,20.0,0.99546,3.29,0.54,10.1,5 -7.0,0.56,0.13,1.6,0.077,25.0,42.0,0.99629,3.34,0.59,9.2,5 -6.2,0.51,0.14,1.9,0.055999999999999994,15.0,34.0,0.9939600000000001,3.48,0.57,11.5,6 -6.4,0.36,0.53,2.2,0.23,19.0,35.0,0.9934,3.37,0.93,12.4,6 -6.4,0.38,0.14,2.2,0.038,15.0,25.0,0.9951399999999999,3.44,0.65,11.1,6 -7.3,0.69,0.32,2.2,0.069,35.0,104.0,0.9963200000000001,3.33,0.51,9.5,5 -6.0,0.58,0.2,2.4,0.075,15.0,50.0,0.99467,3.58,0.67,12.5,6 -5.6,0.31,0.78,13.9,0.07400000000000001,23.0,92.0,0.99677,3.39,0.48,10.5,6 -7.5,0.52,0.4,2.2,0.06,12.0,20.0,0.99474,3.26,0.64,11.8,6 -8.0,0.3,0.63,1.6,0.081,16.0,29.0,0.9958799999999999,3.3,0.78,10.8,6 -6.2,0.7,0.15,5.1,0.076,13.0,27.0,0.9962200000000001,3.54,0.6,11.9,6 -6.8,0.67,0.15,1.8,0.11800000000000001,13.0,20.0,0.9954,3.42,0.67,11.3,6 -6.2,0.56,0.09,1.7,0.053,24.0,32.0,0.9940200000000001,3.54,0.6,11.3,5 -7.4,0.35,0.33,2.4,0.068,9.0,26.0,0.9947,3.36,0.6,11.9,6 -6.2,0.56,0.09,1.7,0.053,24.0,32.0,0.9940200000000001,3.54,0.6,11.3,5 -6.1,0.715,0.1,2.6,0.053,13.0,27.0,0.9936200000000001,3.57,0.5,11.9,5 -6.2,0.46,0.29,2.1,0.07400000000000001,32.0,98.0,0.9957799999999999,3.33,0.62,9.8,5 -6.7,0.32,0.44,2.4,0.061,24.0,34.0,0.99484,3.29,0.8,11.6,7 -7.2,0.39,0.44,2.6,0.066,22.0,48.0,0.9949399999999999,3.3,0.84,11.5,6 -7.5,0.31,0.41,2.4,0.065,34.0,60.0,0.99492,3.34,0.85,11.4,6 -5.8,0.61,0.11,1.8,0.066,18.0,28.0,0.9948299999999999,3.55,0.66,10.9,6 -7.2,0.66,0.33,2.5,0.068,34.0,102.0,0.9941399999999999,3.27,0.78,12.8,6 -6.6,0.725,0.2,7.8,0.073,29.0,79.0,0.9977,3.29,0.54,9.2,5 -6.3,0.55,0.15,1.8,0.077,26.0,35.0,0.9931399999999999,3.32,0.82,11.6,6 -5.4,0.74,0.09,1.7,0.08900000000000001,16.0,26.0,0.9940200000000001,3.67,0.56,11.6,6 -6.3,0.51,0.13,2.3,0.076,29.0,40.0,0.99574,3.42,0.75,11.0,6 -6.8,0.62,0.08,1.9,0.068,28.0,38.0,0.99651,3.42,0.82,9.5,6 -6.2,0.6,0.08,2.0,0.09,32.0,44.0,0.9949,3.45,0.58,10.5,5 -5.9,0.55,0.1,2.2,0.062,39.0,51.0,0.9951200000000001,3.52,0.76,11.2,6 -6.3,0.51,0.13,2.3,0.076,29.0,40.0,0.99574,3.42,0.75,11.0,6 -5.9,0.645,0.12,2.0,0.075,32.0,44.0,0.9954700000000001,3.57,0.71,10.2,5 -6.0,0.31,0.47,3.6,0.067,18.0,42.0,0.99549,3.39,0.66,11.0,6 -- GitLab