{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# QEP Regression with Grid Structured Training Data\n", "\n", "In this notebook, we demonstrate how to perform QEP regression when your training data lies on a regularly spaced grid. For this example, we'll be modeling a 2D function where the training data is on an evenly spaced grid on (0,1)x(0, 2) with 100 grid points in each dimension. \n", "\n", "In other words, we have 10000 training examples. However, the grid structure of the training data will allow us to perform inference very quickly anyways." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import qpytorch\n", "import torch\n", "import math" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Make the grid and training data\n", "\n", "In the next cell, we create the grid, along with the 10000 training examples and labels. After running this cell, we create three important tensors:\n", "\n", "- `grid` is a tensor that is `grid_size x 2` and contains the 1D grid for each dimension.\n", "- `train_x` is a tensor containing the full 10000 training examples.\n", "- `train_y` are the labels. For this, we're just using a simple sine function." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "grid_bounds = [(0, 1), (0, 2)]\n", "grid_size = 25\n", "grid = torch.zeros(grid_size, len(grid_bounds))\n", "for i in range(len(grid_bounds)):\n", " grid_diff = float(grid_bounds[i][1] - grid_bounds[i][0]) / (grid_size - 2)\n", " grid[:, i] = torch.linspace(grid_bounds[i][0] - grid_diff, grid_bounds[i][1] + grid_diff, grid_size)\n", "\n", "train_x = qpytorch.utils.grid.create_data_from_grid(grid)\n", "train_y = torch.sin((train_x[:, 0] + train_x[:, 1]) * (2 * math.pi)) + torch.randn_like(train_x[:, 0]).mul(0.01)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Creating the Grid QEP Model\n", "\n", "In the next cell we create our QEP model. Like other scalable QEP methods, we'll use a scalable kernel that wraps a base kernel. In this case, we create a `GridKernel` that wraps an `RBFKernel`." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "POWER = 1.0\n", "class GridQEPRegressionModel(qpytorch.models.ExactQEP):\n", " def __init__(self, grid, train_x, train_y, likelihood):\n", " super(GridQEPRegressionModel, self).__init__(train_x, train_y, likelihood)\n", " self.power = torch.tensor(POWER)\n", " num_dims = train_x.size(-1)\n", " self.mean_module = qpytorch.means.ConstantMean()\n", " self.covar_module = qpytorch.kernels.GridKernel(qpytorch.kernels.RBFKernel(), grid=grid)\n", " \n", " def forward(self, x):\n", " mean_x = self.mean_module(x)\n", " covar_x = self.covar_module(x)\n", " return qpytorch.distributions.MultivariateQExponential(mean_x, covar_x, power=self.power)\n", "\n", "likelihood = qpytorch.likelihoods.QExponentialLikelihood(power=torch.tensor(POWER))\n", "model = GridQEPRegressionModel(grid, train_x, train_y, likelihood)\n", " " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Iter 1/50 - Loss: 2.289 lengthscale: 0.693 noise: 0.693\n", "Iter 2/50 - Loss: 2.266 lengthscale: 0.644 noise: 0.644\n", "Iter 3/50 - Loss: 2.240 lengthscale: 0.599 noise: 0.598\n", "Iter 4/50 - Loss: 2.209 lengthscale: 0.556 noise: 0.554\n", "Iter 5/50 - Loss: 2.171 lengthscale: 0.517 noise: 0.513\n", "Iter 6/50 - Loss: 2.124 lengthscale: 0.480 noise: 0.474\n", "Iter 7/50 - Loss: 2.062 lengthscale: 0.446 noise: 0.437\n", "Iter 8/50 - Loss: 1.983 lengthscale: 0.414 noise: 0.402\n", "Iter 9/50 - Loss: 1.888 lengthscale: 0.383 noise: 0.369\n", "Iter 10/50 - Loss: 1.778 lengthscale: 0.354 noise: 0.338\n", "Iter 11/50 - Loss: 1.658 lengthscale: 0.326 noise: 0.310\n", "Iter 12/50 - Loss: 1.538 lengthscale: 0.300 noise: 0.283\n", "Iter 13/50 - Loss: 1.425 lengthscale: 0.274 noise: 0.258\n", "Iter 14/50 - Loss: 1.327 lengthscale: 0.251 noise: 0.235\n", "Iter 15/50 - Loss: 1.244 lengthscale: 0.229 noise: 0.213\n", "Iter 16/50 - Loss: 1.176 lengthscale: 0.210 noise: 0.193\n", "Iter 17/50 - Loss: 1.122 lengthscale: 0.193 noise: 0.175\n", "Iter 18/50 - Loss: 1.081 lengthscale: 0.178 noise: 0.158\n", "Iter 19/50 - Loss: 1.047 lengthscale: 0.166 noise: 0.143\n", "Iter 20/50 - Loss: 1.019 lengthscale: 0.157 noise: 0.129\n", "Iter 21/50 - Loss: 0.994 lengthscale: 0.149 noise: 0.117\n", "Iter 22/50 - Loss: 0.968 lengthscale: 0.143 noise: 0.105\n", "Iter 23/50 - Loss: 0.939 lengthscale: 0.140 noise: 0.095\n", "Iter 24/50 - Loss: 0.907 lengthscale: 0.138 noise: 0.086\n", "Iter 25/50 - Loss: 0.869 lengthscale: 0.138 noise: 0.077\n", "Iter 26/50 - Loss: 0.827 lengthscale: 0.139 noise: 0.070\n", "Iter 27/50 - Loss: 0.779 lengthscale: 0.141 noise: 0.063\n", "Iter 28/50 - Loss: 0.728 lengthscale: 0.145 noise: 0.056\n", "Iter 29/50 - Loss: 0.675 lengthscale: 0.150 noise: 0.051\n", "Iter 30/50 - Loss: 0.619 lengthscale: 0.155 noise: 0.046\n", "Iter 31/50 - Loss: 0.563 lengthscale: 0.162 noise: 0.041\n", "Iter 32/50 - Loss: 0.508 lengthscale: 0.169 noise: 0.037\n", "Iter 33/50 - Loss: 0.454 lengthscale: 0.177 noise: 0.033\n", "Iter 34/50 - Loss: 0.403 lengthscale: 0.186 noise: 0.030\n", "Iter 35/50 - Loss: 0.355 lengthscale: 0.194 noise: 0.027\n", "Iter 36/50 - Loss: 0.310 lengthscale: 0.203 noise: 0.024\n", "Iter 37/50 - Loss: 0.267 lengthscale: 0.211 noise: 0.022\n", "Iter 38/50 - Loss: 0.226 lengthscale: 0.219 noise: 0.020\n", "Iter 39/50 - Loss: 0.186 lengthscale: 0.226 noise: 0.018\n", "Iter 40/50 - Loss: 0.147 lengthscale: 0.231 noise: 0.016\n", "Iter 41/50 - Loss: 0.107 lengthscale: 0.235 noise: 0.014\n", "Iter 42/50 - Loss: 0.065 lengthscale: 0.238 noise: 0.013\n", "Iter 43/50 - Loss: 0.023 lengthscale: 0.239 noise: 0.011\n", "Iter 44/50 - Loss: -0.021 lengthscale: 0.239 noise: 0.010\n", "Iter 45/50 - Loss: -0.066 lengthscale: 0.238 noise: 0.009\n", "Iter 46/50 - Loss: -0.110 lengthscale: 0.236 noise: 0.008\n", "Iter 47/50 - Loss: -0.154 lengthscale: 0.233 noise: 0.007\n", "Iter 48/50 - Loss: -0.197 lengthscale: 0.230 noise: 0.007\n", "Iter 49/50 - Loss: -0.239 lengthscale: 0.227 noise: 0.006\n", "Iter 50/50 - Loss: -0.279 lengthscale: 0.224 noise: 0.005\n" ] } ], "source": [ "# this is for running the notebook in our testing framework\n", "import os\n", "smoke_test = ('CI' in os.environ)\n", "training_iter = 2 if smoke_test else 50\n", "\n", "\n", "# Find optimal model hyperparameters\n", "model.train()\n", "likelihood.train()\n", "\n", "# Use the adam optimizer\n", "optimizer = torch.optim.Adam(model.parameters(), lr=0.1) # Includes QExponentialLikelihood parameters\n", "\n", "# \"Loss\" for QEPs - the marginal log likelihood\n", "mll = qpytorch.mlls.ExactMarginalLogLikelihood(likelihood, model)\n", "\n", "for i in range(training_iter):\n", " # Zero gradients from previous iteration\n", " optimizer.zero_grad()\n", " # Output from model\n", " output = model(train_x)\n", " # Calc loss and backprop gradients\n", " loss = -mll(output, train_y)\n", " loss.backward()\n", " print('Iter %d/%d - Loss: %.3f lengthscale: %.3f noise: %.3f' % (\n", " i + 1, training_iter, loss.item(),\n", " model.covar_module.base_kernel.lengthscale.item(),\n", " model.likelihood.noise.item()\n", " ))\n", " optimizer.step()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the next cell, we create a set of 400 test examples and make predictions. Note that unlike other scalable QEP methods, testing is more complicated. Because our test data can be different from the training data, in general we may not be able to avoid creating a `num_train x num_test` (e.g., `10000 x 400`) kernel matrix between the training and test data.\n", "\n", "For this reason, if you have large numbers of test points, memory may become a concern. The time complexity should still be reasonable, however, because we will still exploit structure in the train-train covariance matrix." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "model.eval()\n", "likelihood.eval()\n", "n = 20\n", "test_x = torch.zeros(int(pow(n, 2)), 2)\n", "for i in range(n):\n", " for j in range(n):\n", " test_x[i * n + j][0] = float(i) / (n-1)\n", " test_x[i * n + j][1] = float(j) / (n-1)\n", "\n", "with torch.no_grad(), qpytorch.settings.fast_pred_var():\n", " observed_pred = likelihood(model(test_x))" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAW8AAAEpCAYAAABcPaNlAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAATQVJREFUeJzt3XtcVHX+P/DXmYGZAQVEkZsioKJ4hcREiPJGDmYqZaZsm8jPRdeHlkbpN10FFIs1b2iirD3CS6thlJJrSkt4qRbEUGnTktBAMBwQldsot5nz+8M4Oc4An2PMMgzvZ4/zsDnzns985sKbw+fK8TzPgxBCSKci6egKEEIIEY+SNyGEdEKUvAkhpBOi5E0IIZ0QJW9CCOmEKHkTQkgnRMmbEEI6IUrehBDSCVHyJoSQToiStxEUFRWB4zhs2rTpf/q88+bNg4eHx//0OUn7aGpqwooVK+Dm5gaJRILQ0NCOrhIxcZS8H8POnTvBcRz8/f07uirt5vjx44iNjW33cmNjY8FxXIuHSqVq9+dsD1qtFvv374e/vz969uwJGxsbDBo0CHPnzsXZs2fb/fmSk5OxceNGvPTSS9i3bx/eeOONdn8OYl4sOroCndGBAwfg4eGBc+fO4erVqxg4cGBHV+kPO378OBITE42SwAFg165d6N69u975Hj16GOX5/qjXX38diYmJmDFjBl555RVYWFggPz8fJ06cQP/+/TF27Nh2fb6TJ0+iT58+2Lp1a7uWS8wXJW+RCgsLkZWVhcOHD2PhwoU4cOAAYmJiOrpaJu+ll16Cg4ODqMfU1dVBJpNBItH/A1GtVqNbt26PXR+tVouGhgYoFAq9+8rKyrBz505ERkZi9+7dOvclJCTg1q1bj/28D+N5HnV1dbCyskJ5ebnJ/iIjpomaTUQ6cOAA7O3tMXXqVLz00ks4cOBAq/Fbt26Fu7s7rKysMG7cOFy6dEnnfpVKhYiICPTt2xdyuRwuLi6YMWMGioqKdOJ27tyJYcOGQS6Xw9XVFYsXL0ZlZWWrz3369GlwHIfTp0/rnG9uk9+7dy+AB23liYmJAKDTpNFMq9UiISEBw4YNg0KhgJOTExYuXIi7d++2+vxiNNc1JSUFq1evRp8+fWBtbY3q6mrMmzcP3bt3x7Vr1/Dcc8/BxsYGr7zyCoAHSfzNN9+Em5sb5HI5Bg8ejE2bNuHRxTI5jsOSJUtw4MAB4X1MT083WJfCwkLwPI+nnnpK7z6O4+Do6Cjcbm4WetTevXvBcZzO5+jh4YHnn38eX375JUaPHg0rKyv84x//AMdxOHXqFC5fviy8982f2aZNmxAYGIhevXrBysoKfn5++PTTTw3W+5///CfGjBkDa2tr2Nvb45lnnsG///1vnZgTJ07g6aefRrdu3WBjY4OpU6fi8uXLBssjpo2uvEU6cOAAXnzxRchkMoSFhWHXrl347rvv8OSTT+rF7t+/HzU1NVi8eDHq6uqwbds2TJw4ET/88AOcnJwAADNnzsTly5fx2muvwcPDA+Xl5cjIyEBxcbHQ+RgbG4u1a9ciODgYixYtQn5+vvC8//nPf2BpafmHXtPChQtRWlqKjIwMfPTRRwbv37t3LyIiIvD666+jsLAQO3bswMWLF5mf/86dO3rnLCws9K424+LiIJPJ8NZbb6G+vh4ymQzAgw49pVKJoKAgbNq0CdbW1uB5HtOnT8epU6cwf/58+Pr64ssvv8Ty5cvx66+/6jVBnDx5Ep988gmWLFkCBweHFjt33d3dAQCpqamYNWsWrK2t23x9rPLz8xEWFoaFCxciMjISffv2xUcffYR33nkHtbW1iI+PBwAMGTIEALBt2zZMnz4dr7zyChoaGpCSkoJZs2bh2LFjmDp1qlDu2rVrERsbi8DAQKxbtw4ymQw5OTk4efIkJk+eDAD46KOPEB4eDqVSiQ0bNuDevXvYtWsXgoKCcPHiRers7mx4wiw3N5cHwGdkZPA8z/NarZbv27cvv3TpUp24wsJCHgBvZWXF37hxQzifk5PDA+DfeOMNnud5/u7duzwAfuPGjS0+Z3l5OS+TyfjJkyfzGo1GOL9jxw4eAJ+cnCycCw8P593d3YXbp06d4gHwp06dMli/PXv2COcWL17MG/o6fPPNNzwA/sCBAzrn09PTDZ5/VExMDA/A4DF48GC9uvbv35+/d++eThnh4eE8AP7tt9/WOZ+WlsYD4NevX69z/qWXXuI5juOvXr0qnAPASyQS/vLly63Wt9ncuXN5ALy9vT3/wgsv8Js2beJ/+umnFl/fo/bs2cMD4AsLC4Vz7u7uPAA+PT1dL37cuHH8sGHD9M4/+l40NDTww4cP5ydOnCicKygo4CUSCf/CCy/ofEd4/sF3lOd5vqamhu/RowcfGRmpc79KpeLt7Oz0zhPTR80mIhw4cABOTk6YMGECgAd/Qs+ePRspKSnQaDR68aGhoejTp49we8yYMfD398fx48cBAFZWVpDJZDh9+nSLTRBfffUVGhoasGzZMp2238jISNja2uKLL75oz5eoJzU1FXZ2dnj22WdRUVEhHH5+fujevTtOnTrFVM5nn32GjIwMnWPPnj16ceHh4bCysjJYxqJFi3RuHz9+HFKpFK+//rrO+TfffBM8z+PEiRM658eNG4ehQ4cy1XfPnj3YsWMHPD09ceTIEbz11lsYMmQIJk2ahF9//ZWpDEM8PT2hVCqZ4x9+L+7evYuqqio8/fTTuHDhgnA+LS0NWq0W0dHRev0DzU06GRkZqKysRFhYmM7nKJVK4e/vz/w5EtNBzSaMNBoNUlJSMGHCBBQWFgrn/f39sXnzZmRmZgp/njbz8vLSK2fQoEH45JNPAAByuRwbNmzAm2++CScnJ4wdOxbPP/885s6dC2dnZwDA9evXAQCDBw/WKUcmk6F///7C/cZSUFCAqqoqnXbeh5WXlzOV88wzzzB1WHp6eho8b2Fhgb59++qcu379OlxdXWFjY6NzvrnJ4dH3pqWyDZFIJFi8eDEWL16M27dv4z//+Q+SkpJw4sQJzJkzB9988w1zWY9bBwA4duwY1q9fj7y8PNTX1wvnH25nv3btGiQSSau/mAoKCgAAEydONHi/ra2tqHqRjkfJm9HJkydx8+ZNpKSkICUlRe/+AwcO6CVvFsuWLcO0adOQlpaGL7/8EmvWrEF8fDxOnjyJJ5544g/V2VBHGgCDfyW0RKvVwtHRscWO2d69ez9W3VrS0lW3XC43OOqkPcpuS69evTB9+nRMnz4d48ePx5kzZ3D9+nW4u7uLfo/F1OGbb77B9OnT8cwzz2Dnzp1wcXGBpaUl9uzZg4MHD4p6DVqtFsCDdu/mC4OHWVhQKuhs6BNjdODAATg6OgqjMh52+PBhHDlyBElJSTo/nM1XOw/7+eef9TqGBgwYgDfffBNvvvkmCgoK4Ovri82bN+Of//yn0HmWn5+P/v37C49paGhAYWEhgoODW6yzvb09AOiNSjF0td5SEhowYAC++uorPPXUU4+d/IzF3d0dX331FWpqanSuvq9cuSLc395Gjx6NM2fO4ObNm3B3d9d5jx/ufG2Pv4g+++wzKBQKfPnll5DL5cL5R5ubBgwYAK1Wix9//BG+vr4GyxowYAAAwNHRsdXvDOk8qM2bwf3793H48GE8//zzeOmll/SOJUuWoKamBkePHtV5XFpamk776Llz55CTk4MpU6YAAO7du4e6ujqdxwwYMAA2NjbCn8jBwcGQyWTYvn27zvC3Dz/8EFVVVTojDh7l7u4OqVSKr7/+Wuf8zp079WKbx0w/muhffvllaDQaxMXF6T2mqampzeGKxvTcc89Bo9Fgx44dOue3bt0KjuOE91kslUqFH3/8Ue98Q0MDMjMzIZFIhIlZzUnx4fdYrVZj3759j/XcD5NKpeA4TucqvqioCGlpaTpxoaGhkEgkWLdunXCF3az5O6NUKmFra4t3330XjY2Nes/VXmPXyf8OXXkzOHr0KGpqajB9+nSD948dOxa9e/fGgQMHMHv2bOH8wIEDERQUhEWLFqG+vh4JCQno1asXVqxYAeDBVfikSZPw8ssvY+jQobCwsMCRI0dQVlaGOXPmAHjQLLFy5UqsXbsWISEhmD59OvLz87Fz5048+eST+POf/9xive3s7DBr1iy8//774DgOAwYMwLFjxwy2U/v5+QF4MLNQqVRCKpVizpw5GDduHBYuXIj4+Hjk5eVh8uTJsLS0REFBAVJTU7Ft2za89NJLbb6Hn376qcEZls8++6wwbFKsadOmYcKECfjb3/6GoqIi+Pj44N///jc+//xzLFu2TEisYt24cQNjxozBxIkTMWnSJDg7O6O8vBwff/wxvv/+eyxbtkxov588eTL69euH+fPnY/ny5ZBKpUhOTkbv3r1RXFz8WM/fbOrUqdiyZQtCQkLwpz/9CeXl5UhMTMTAgQPx3//+V4gbOHAg/va3vyEuLg5PP/00XnzxRcjlcnz33XdwdXVFfHw8bG1tsWvXLrz66qsYNWoU5syZI9Txiy++wFNPPaX3S5CYuA4e7dIpTJs2jVcoFLxarW4xZt68ebylpSVfUVEhDMXbuHEjv3nzZt7NzY2Xy+X8008/zX///ffCYyoqKvjFixfz3t7efLdu3Xg7Ozve39+f/+STT/TK37FjB+/t7c1bWlryTk5O/KJFi/i7d+/qxDw6VJDnef7WrVv8zJkzeWtra97e3p5fuHAhf+nSJb2hgk1NTfxrr73G9+7dm+c4Tm/42+7du3k/Pz/eysqKt7Gx4UeMGMGvWLGCLy0tbfW9a22oIB4axtg8VDA1NVWvjPDwcL5bt24Gy6+pqeHfeOMN3tXVlbe0tOS9vLz4jRs3CkPkmgHgFy9e3Gpdm1VXV/Pbtm3jlUol37dvX97S0pK3sbHhAwIC+A8++ECv7PPnz/P+/v68TCbj+/Xrx2/ZsqXFoYJTp041+JwtDRX88MMPeS8vL14ul/Pe3t78nj17WhyemJyczD/xxBO8XC7n7e3t+XHjxgnDWpudOnWKVyqVvJ2dHa9QKPgBAwbw8+bN43Nzc5neG2I6OJ5/ZCoaIYQQk0dt3oQQ0glR8iaEkE6IkjchhHRClLwJIV1aYmIiPDw8oFAo4O/vj3PnzrUan5qaCm9vbygUCowYMUJY7qLZ4cOHMXnyZPTq1QscxyEvL89gOdnZ2Zg4cSK6desGW1tbPPPMM7h//z5zvSl5E0K6rEOHDiEqKgoxMTG4cOECfHx8oFQqW1z2ISsrC2FhYZg/fz4uXryI0NBQhIaG6iz1rFarERQUhA0bNrT4vNnZ2QgJCcHkyZNx7tw5fPfdd1iyZImoWcQ02oQQ0mX5+/vjySefFMa4a7VauLm54bXXXsPbb7+tFz979myo1WocO3ZMODd27Fj4+voiKSlJJ7aoqAienp64ePGi3szXsWPH4tlnnzU4+Y2VWUzS0Wq1KC0thY2NTYvTvAkh/3s8z6Ompgaurq6PvTZNXV0dGhoaRD3no3lALpfrLDEAPJgxe/78eaxcuVI4J5FIEBwcjOzsbINlZ2dnIyoqSuecUqnUm/XamvLycuTk5OCVV15BYGAgrl27Bm9vb7zzzjsICgpiLscskndpaSnc3Nw6uhqEkBaUlJTorQrJoq6uDp7u3aEqZ19MrXv37qitrdU5FxMTo7c/a0VFBTQajd4MXycnJ2F9nEepVCqD8WI20v7ll18APNhkZdOmTfD19cX+/fsxadIkXLp0yeBqpIaYRfJuXpSo77YVkFjJ24h+QJ7PvsiSdbm4lqVGa/ar//vOIsu2Z/8Sw0Lbdsz/ShP7VZdcJe5r6XK2vu2gh8svUzPHFs60F1W2xZAa5tj7apmosnt+w/bdBgCHz38SVfbNMLZ1zgGgeqj+2igt0dbVofT/4vWW7WXV0NAAVbkGhefdYWvT9neoukYLT7/rKCkp0Vnm9tGr7o7UvP7MwoULERERAQB44oknkJmZieTkZGE3pbYYLXknJiZi48aNUKlU8PHxwfvvv48xY8a0GJ+amoo1a9agqKgIXl5e2LBhA5577jmm52r+E0liJYfEWn9DWUOkcrY4AJDKxCVYrZw9eUsU4sqWWJl/8pYqxH0tLSzENZVZSJuYYyUGNihujdSa/c97iVZcQpHK2OMtOHG/GMT8PEispKLKBlpetZJVt+4PjrZofvtxsrW1bXONcgcHB0ilUpSVlemcLysrM7hsLgA4OzuLijfExcUFAPTWXx8yZIio9XCMMtrEGD24hJCuSwue+WAlk8ng5+eHzMzM359Hq0VmZiYCAgIMPiYgIEAnHniwS1FL8YZ4eHjA1dUV+fn5Oud//vlnUcsYGyV5b9myBZGRkYiIiMDQoUORlJQEa2trJCcnG4zftm0bQkJCsHz5cgwZMgRxcXEYNWoUrXJGCAEAaEX8J0ZUVBQ++OAD7Nu3Dz/99BMWLVoEtVotNGfMnTtXp0Nz6dKlSE9Px+bNm3HlyhXExsYiNzcXS5YsEWLu3LmDvLw8YVnh/Px85OXlCe3iHMdh+fLl2L59Oz799FNcvXoVa9aswZUrVzB//nzmurd7s8n/oge3vr5eZ0uo6urqP15xQojJ0vA8NAyjmlliHjZ79mzcunUL0dHRUKlU8PX1RXp6utApWVxcrDNKJjAwEAcPHsTq1auxatUqeHl5IS0tDcOHDxdijh49KiR/AMLyzg93mi5btgx1dXV44403cOfOHfj4+CAjI0PUMsbtnrz/Fz248fHxWLt2bftUmBBi8libRMQ0mzRbsmSJzpXzw06fPq13btasWZg1a1aL5c2bNw/z5s1r83nffvttg2PJWXXKGZYrV65EVVWVcJSUlHR0lQghRtQELRoZjiaRzSadWbtfef8venANDbgnhJgvYzWbdGbtfuXdUT24hBDzpRVxdBVGGecdFRWF8PBwjB49GmPGjEFCQoJeD26fPn2EwehLly7FuHHjsHnzZkydOhUpKSnIzc3F7t27jVE9QkgnowEPDUN7NkuMuTBK8jZGDy4hpOvS8L9PwGkrrqsw2gzL9u7BZSG3boTUmq0lyFLNPj2+d84dUfXgblcyx2odxE2/bnSwZq+HyPY/qZp92jPXwD5LEQB4KfusPInIsjU//iwqXj31SebYhl4iZrQCeMLpJnOszEXc6/zmnjdzbI8C9iFnAOB44R5z7H1H9p8dbV37pBjWJhFqNiGEEBOiBQcN2p5ir2WIMReUvAkhJk/LPzhY4roKSt6EEJOnYbzyZokxF5S8CSEmj5K3PkrehBCT18hL0Mi3PRihkZpNCCHEdGgggYZhTqG4sUGdGyVvQojJ43kOWr7tJhGeIcZcUPImhJg8avPWR8mbEGLyNLwEGoY2b5phSQghJkQLDlqGNu/HWc+7szKr5N14zQYaxg1j++35gbncsj+JW2PlvkMv5tge18RN6O1x4RZzLH+Dfao2APAa9u4ebaO4qd1Su9Y3g9Xh6iiu7KGDRMUrvviOObYfxz6VHgAuVA9mjm1yEbfrveQ++yKgNf3ELZncM519iYEBd9i/302aevwiqiaGUbOJPrNK3oQQ88TebNJ1rrw75U46hJCu5UGzCdshVmJiIjw8PKBQKODv749z5861Gp+amgpvb28oFAqMGDECx48f17n/8OHDmDx5Mnr16gWO45CXl9diWTzPY8qUKeA4rsU9e1tCyZsQYvIaeQs0MByNvLjGhEOHDiEqKgoxMTG4cOECfHx8oFQqUV5ebjA+KysLYWFhmD9/Pi5evIjQ0FCEhobi0qVLQoxarUZQUBA2bNjQ5vMnJCSA4x6vqYeSNyHE5GkhYT7E2LJlCyIjIxEREYGhQ4ciKSkJ1tbWSE5ONhi/bds2hISEYPny5RgyZAji4uIwatQo7NixQ4h59dVXER0djeDg4FafOy8vD5s3b27xudpCyZsQYvI0PMd8AEB1dbXOUV+v3znc0NCA8+fP6yRZiUSC4OBgZGdnG6xHdna2XlJWKpUtxrfk3r17+NOf/oTExMQW9+ptCyVvQojJa54ez3IAgJubG+zs7ISjecvFh1VUVECj0Qg7fDVzcnKCSqUyWA+VSiUqviVvvPEGAgMDMWPGDFGPe1i7J+/4+Hg8+eSTsLGxgaOjI0JDQ5Gfn9/qY/bu3QuO43QOBeOQP0KI+dPyEuYDAEpKSlBVVSUcK1eu7OBX8LujR4/i5MmTSEhI+EPltHvyPnPmDBYvXoyzZ88iIyMDjY2NmDx5MtRqdauPs7W1xc2bN4Xj+vXr7V01QkgnJfbK29bWVueQy/XHvTs4OEAqlaKsrEznfFlZWYtNGc7OzqLiDTl58iSuXbuGHj16wMLCAhYWDzpZZ86cifHjxzOX0+7jvNPT03Vu7927F46Ojjh//jyeeeaZFh/Hcdxjt/0QQsybFhDas9uKYyWTyeDn54fMzEyEhoY+eLxWi8zMzBb33w0ICEBmZiaWLVsmnMvIyEBAQADz87799tv4y1/+onNuxIgR2Lp1K6ZNm8ZcjtEn6VRVVQEAevbs2WpcbW0t3N3dodVqMWrUKLz77rsYNmyYsatHCOkEWEeSiB1tEhUVhfDwcIwePRpjxoxBQkIC1Go1IiIiAABz585Fnz59hDbzpUuXYty4cdi8eTOmTp2KlJQU5ObmYvfu3UKZd+7cQXFxMUpLSwFAaDZ2dnbWOR7Vr18/eHp6MtfdqMlbq9Vi2bJleOqppzB8eMtTzAcPHozk5GSMHDkSVVVV2LRpEwIDA3H58mX07dtXL76+vl6n97i6utoo9SeEmAb2GZbikvfs2bNx69YtREdHQ6VSwdfXF+np6UKnZHFxMSSS38sMDAzEwYMHsXr1aqxatQpeXl5IS0vTyW9Hjx4Vkj8AzJkzBwAQExOD2NhYUfVrDcfzxptPumjRIpw4cQLffvutwSTcksbGRgwZMgRhYWGIi4vTuz82NhZr167VO99/1buQMnZ09v/kNnN9fnqrO3MsAMi7NTDHynJsRJXdN5293prLrXcUP4qzYP9dLulhJ6ps/n4dez2srcWV7eogKp6ra2Qv+/oNUWXXP8O+Dk7lAEtRZfNS9skc1uXi1szpduM+c6xUzf79btLU4+QP76Gqqgq2tiLWt/lNdXU17OzssDU3EFbd2/5+3q9twhujsx77+ToTow0VXLJkCY4dO4ZTp06JStwAYGlpiSeeeAJXr141eP/KlSt1epJLSkrao8qEEBMltsOyK2j3ZhOe5/Haa6/hyJEjOH36tKg2nGYajQY//PADnnvuOYP3y+Vyg73HhBDzpGXcSYclxly0e/JevHgxDh48iM8//xw2NjbC4HU7OztYWVkB0O8EWLduHcaOHYuBAweisrISGzduxPXr1/V6ZAkhXZOW8apabIdlZ9buyXvXrl0AoDdecc+ePZg3bx4A/U6Au3fvIjIyEiqVCvb29vDz80NWVhaGDh3a3tUjhHRCD0/AaSuuqzBKs0lbTp8+rXN769at2Lp1a3tXhRBiJmgzBn20GQMhxOTRlbc+St6EEJOnAdtVNftGfp0fJW9CiMmjK299lLwJISaviZeikZcyxImbnNSZUfImhJg8Y02P78zMKnk39GmAxIrxwyu5yVyupUrcAllaTsYc63iefdo4AHC195hj+ad8RZVt8YuIBeVl4qZ2awb2YY6V3mV/jQCg/f4nUfEWzk5tBzVTiJsMpjj/C3Os4y0XUWVrurN/rzityFUvROyjeK8f+5IOTY2WwA/iqmIITdLRZ1bJmxBinlinvtP0eEIIMSF05a2PkjchxOQZaz3vzoySNyHE5D28M3xbcV0FJW9CiMmjZhN9lLwJISaPZ5ykw9NQQUIIMR20MJW+rvNrihDSaTVpJWjSShkO8SktMTERHh4eUCgU8Pf3x7lz51qNT01Nhbe3NxQKBUaMGIHjx4/r3H/48GFMnjwZvXr1AsdxyMvL07n/zp07eO211zB48GBYWVmhX79+eP3114XN2llR8iaEmDwtOOZDjEOHDiEqKgoxMTG4cOECfHx8oFQqUV5ebjA+KysLYWFhmD9/Pi5evIjQ0FCEhobi0qVLQoxarUZQUBA2bNhgsIzS0lKUlpZi06ZNuHTpEvbu3Yv09HTMnz9fVN2p2YQQYvKMNdpky5YtiIyMFHZ7T0pKwhdffIHk5GS8/fbbevHbtm1DSEgIli9fDgCIi4tDRkYGduzYgaSkJADAq6++CgAoKioy+JzDhw/HZ599JtweMGAA3nnnHfz5z39GU1MTLBg3Aqcrb0KIyWteVZDlAB7sOv/wUV9fr1dmQ0MDzp8/j+DgYOGcRCJBcHAwsrOzDdYjOztbJx4AlEpli/Gsmne7Z03cgJldebv1uQ2LbmxrUWi93NjLzWgQVQ/p/SbmWItb1aLKvjmlL3OsVibuKsSRZ1/zw7L0rqiy1X2smGM5V/ZYALCxaHu1uYdp8q8xx0pdnEWVjcZG5lD++yuiirbs3o05lrOzFVW2xsGOOVbrxL7ei9hmjNbKYRoq+Nvzubnp/nzHxMQgNjZW51xFRQU0Gg2cnHS/905OTrhyxfBno1KpDMY379X7OCoqKhAXF4cFCxaIely7X3nHxsaC4zidw9vbu9XHtNUBQAjp2njG9m7+t+RdUlKCqqoq4Vi5cmUHvwLDqqurMXXqVAwdOlTvl0tbjNJsMmzYMNy8eVM4vv322xZjWToACCFdW/MkHZYDAGxtbXUOuVz/rwUHBwdIpVKUlZXpnC8rK4Ozs+G/uJydnUXFt6ampgYhISGwsbHBkSNHYGkpbqVOoyRvCwsLODs7C4eDg0OLsQ93AAwZMgRxcXEYNWoUduzYYYyqEUI6IbFt3ixkMhn8/PyQmZn5+/NotcjMzERAQIDBxwQEBOjEA0BGRkaL8S2prq7G5MmTIZPJcPToUSgUClGPB4yUvAsKCuDq6or+/fvjlVdeQXFxcYuxxuoAIISYD7FX3qyioqLwwQcfYN++ffjpp5+waNEiqNVqYfTJ3LlzdZpcli5divT0dGzevBlXrlxBbGwscnNzsWTJEiHmzp07yMvLw48//ggAyM/PR15entAu3py41Wo1PvzwQ1RXV0OlUkGlUkGjYd+Fs907LP39/bF3714MHjwYN2/exNq1a/H000/j0qVLsLHRX8T9cToA6uvrdXqPq6vFdfoRQjqXJl4CjuGquknk9PjZs2fj1q1biI6Ohkqlgq+vL9LT04WcVFxcDInk9zIDAwNx8OBBrF69GqtWrYKXlxfS0tIwfPhwIebo0aNC8geAOXPmAPi90/TChQvIyckBAAwcOFCnPoWFhfDw8GCqe7sn7ylTpgj/P3LkSPj7+8Pd3R2ffPKJ6EHoLYmPj8fatWvbpSxCiOkz5sJUS5Ys0blyftjp06f1zs2aNQuzZs1qsbx58+Zh3rx5Ld4/fvx48LzInY4MMPo47x49emDQoEG4evWqwfsfpwNg5cqVOj3JJSUl7VpnQohpMVazSWdm9ORdW1uLa9euwcXF8H59j9MBIJfL9XqTCSHmi5K3vnZP3m+99RbOnDmDoqIiZGVl4YUXXoBUKkVYWBiAx+sAIIR0bTzY1jf5440RnUe7t3nfuHEDYWFhuH37Nnr37o2goCCcPXsWvXv3BvB4HQCEkK6NNmPQ1+7JOyUlpdX7H6cDgJWYP5uqvfRHvrTELi1PVD0kvXoyx9561l1U2VWD2K8tJOyz9AEA6pvsY01tvhM3HVg2sDdzLG8h7g9CrvaeqHipM/syAA392esNALyEPXlYOtiLKhvFpez1qKkRVTTXi73pkdOyfwfFxLaGkrc+s1rbhBBinih566PkTQgxeZS89VHyJoSYPA3jJB0N7WFJCCGmg6689VHyJoSYPJ7nwDMkZpYYc0HJmxBi8ujKWx8lb0KIyaMrb32UvAkhJo9nvPKm5E0IISaEB8CyEB9NjyeEEBOiBQeOYTPj9trwuDOg5E0IMXnU5q3PrJJ36c+OkFixrc/h2ihifQZPN1H1aHDozhxbbyfuy8bLtMyxGpm4PyLVzlLmWNsh/UWVLfuGfUNpTspeDwBA716iwmv8+jDHqp3E1UXSyB5rK2IdFACQl+lvottyRcSVrZWxv05Jg4j1dUT8nLVGo+UAbduvScMQYy7MKnkTQswTXXnr6zpzSQkhnVZz8mY5xEpMTISHhwcUCgX8/f1x7ty5VuNTU1Ph7e0NhUKBESNG4Pjx4zr3Hz58GJMnT0avXr3AcRzy8vL0yqirq8PixYvRq1cvdO/eHTNnztTbUawtlLwJISbPWDvpHDp0CFFRUYiJicGFCxfg4+MDpVKJ8vJyg/FZWVkICwvD/PnzcfHiRYSGhiI0NBSXLv3eLKhWqxEUFIQNGza0+LxvvPEG/vWvfyE1NRVnzpxBaWkpXnzxRVF1p+RNCDF5PM9+iLFlyxZERkYiIiICQ4cORVJSEqytrZGcnGwwftu2bQgJCcHy5csxZMgQxMXFYdSoUdixY4cQ8+qrryI6OhrBwcEGy6iqqsKHH36ILVu2YOLEifDz88OePXuQlZWFs2fPMtedkjchxOQ9SMwszSYP4qurq3WO+vp6vTIbGhpw/vx5nSQrkUgQHByM7Oxsg/XIzs7WS8pKpbLFeEPOnz+PxsZGnXK8vb3Rr18/UeVQ8iaEmDyxbd5ubm6ws7MTjvj4eL0yKyoqoNFo4OSku7OSk5MTVCrDO0WpVCpR8S2VIZPJ0KNHjz9UTrsnbw8PD3Acp3csXrzYYPzevXv1YhUK9u24CCHmjxdxAEBJSQmqqqqE4+FNz81Fuw8V/O6776DRaITbly5dwrPPPtvqHpW2trbIz88XbnNc1xnuQwhpm9ihgra2trC1bX1fTgcHB0ilUr1RHmVlZXB2djb4GGdnZ1HxLZXR0NCAyspKnatvseW0+5V379694ezsLBzHjh3DgAEDMG7cuBYfw3GczmMe/bOEENLFib30ZiCTyeDn54fMzEzhnFarRWZmJgICAgw+JiAgQCceADIyMlqMN8TPzw+WlpY65eTn56O4uFhUOUadpNPQ0IB//vOfiIqKavVqura2Fu7u7tBqtRg1ahTeffddDBs2zJhVI4R0IryWg5Zh9iQvcoZlVFQUwsPDMXr0aIwZMwYJCQlQq9WIiIgAAMydOxd9+vQR2syXLl2KcePGYfPmzZg6dSpSUlKQm5uL3bt3C2XeuXMHxcXFKC0tBQChVaH54tTOzg7z589HVFQUevbsCVtbW7z22msICAjA2LFjmetu1OSdlpaGyspKzJs3r8WYwYMHIzk5GSNHjkRVVRU2bdqEwMBAXL58GX379jX4mPr6ep3e4+rqagBAv/RGWFiwTfNVlFQxvw6uvoE5FgC4JmvmWFmNuLFNllXsfyw1dhdXdl1v9vgKP3tRZdv27sYcK2liXwIAAO45ykTF1/ZlnwreyP5RAgDk7F8riJ1Pwt+7xxwrceotrnAR0+nlFXXMsdIm9tjWGGuG5ezZs3Hr1i1ER0dDpVLB19cX6enpwl//xcXFkEh+/5kLDAzEwYMHsXr1aqxatQpeXl5IS0vD8OHDhZijR48KyR8A5syZAwCIiYlBbGwsAGDr1q2QSCSYOXMm6uvroVQqsXPnTlF153he7MhIdkqlEjKZDP/617+YH9PY2IghQ4YgLCwMcXFxBmNiY2Oxdu1avfNPTYiBhQVbZ6cxk3ejC3tiuztEXHaoHiCiHiKTt6yK/YtvUyiqaNgWs7+HXSV521/RH77WatnZV5hjxSbvJsfW24d1aNm/V01NdTh9Ph5VVVVttkEbUl1dDTs7O3h8uAYS67Z/trX36lA0P+6xn68zMdpQwevXr+Orr77CX/7yF1GPs7S0xBNPPIGrV6+2GLNy5UqdnuSSkpI/Wl1CiAkz1iSdzsxozSZ79uyBo6Mjpk6dKupxGo0GP/zwA5577rkWY+RyOeRyESusEUI6N9bOSEref4xWq8WePXsQHh4OCwvdp3i0A2DdunUYO3YsBg4ciMrKSmzcuBHXr18XfcVOCDFftKqgPqMk76+++grFxcX4f//v/+nd92gHwN27dxEZGQmVSgV7e3v4+fkhKysLQ4cONUbVCCGdVRe6qmZhlOQ9efJktNQPevr0aZ3bW7duxdatW41RDUKImaArb320GQMhxPRRm7ceSt6EENPHc2wD4+nKmxBCTAhdeeuh5E0IMX105a2HkjchxOSxTsChSTqdlPx2HSykbJ8e19DIXG7TdXEzOC1FxHa3Eze1u7E7e+lakZ9uoy37N7/GU9wVTpM1+6Qqseu9iH2dXBN7rKxGXNmKO+xT++XlalFl803sFecV4r5Xklr25Qu4W3fY66EVt7REywWBmk0eYVbJmxBipqjZRA8lb0KIyeP4BwdLXFdByZsQYvqo2UQPJW9CiOmjZhM9lLwJIaZP+9vBEtdFUPImhJg+ajbRY7TNGAghpN00N5uwHCIlJibCw8MDCoUC/v7+OHfuXKvxqamp8Pb2hkKhwIgRI3D8+HHdqvI8oqOj4eLiAisrKwQHB6OgoEAn5ueff8aMGTPg4OAAW1tbBAUF4dSpU6LqTcmbEGLymkebsBxiHDp0CFFRUYiJicGFCxfg4+MDpVKJ8vJyg/FZWVkICwvD/PnzcfHiRYSGhiI0NBSXLl0SYt577z1s374dSUlJyMnJQbdu3aBUKlFX9/t+ns8//zyamppw8uRJnD9/Hj4+Pnj++eehUqmY607JmxBi+ngRhwhbtmxBZGQkIiIiMHToUCQlJcHa2hrJyckG47dt24aQkBAsX74cQ4YMQVxcHEaNGoUdO3Y8qCbPIyEhAatXr8aMGTMwcuRI7N+/H6WlpUhLSwMAVFRUoKCgAG+//TZGjhwJLy8v/P3vf8e9e/d0fgm0hZI3IaRLamhowPnz5xEcHCyck0gkCA4ORnZ2tsHHZGdn68QDDzZab44vLCyESqXSibGzs4O/v78Q06tXLwwePBj79++HWq1GU1MT/vGPf8DR0RF+fn7M9TerDsvCmbaQKNh2j+/xkx1zuQ5W4vbLbPqpoO2g31gx7Ij9sHq7nuyx9uJ+N9d3Z++qb7QRVTQsa9jbIhV3xF0+Wd3SiIqXaNjLlzSKG75geesecyyf/4uosqWuTsyxWgtxn72kmr3eTbduM8dqePZlKFrDgXGSzm//VldX65w3tO9tRUUFNBoNnJx031cnJydcuXLFYPkqlcpgfHNzR/O/rcVwHIevvvoKoaGhsLGxgUQigaOjI9LT02Fvb9/2i/wNXXkTQkyfyA5LNzc32NnZCUfznrmmgOd5LF68GI6Ojvjmm29w7tw5hIaGYtq0abh58yZzOaKT99dff41p06bB1dUVHMcJ7TgPV6ytnlZDxPb4EkK6EJFt3iUlJaiqqhKOlStX6hXp4OAAqVSKsrIynfNlZWVwdnY2WA1nZ+dW45v/bS3m5MmTOHbsGFJSUvDUU09h1KhR2LlzJ6ysrLBv3z7Wd0R88lar1fDx8UFiYqLB+1l6Wh8ltseXENK1cFr2AwBsbW11jkebTABAJpPBz88PmZmZwjmtVovMzEwEBAQYrEdAQIBOPABkZGQI8Z6ennB2dtaJqa6uRk5OjhBz796DJqqHN2Jvvq3VsjfTiU7eU6ZMwfr16/HCCy/o3cfS02qI2B5fQkgXY6TRJlFRUfjggw+wb98+/PTTT1i0aBHUajUiIiIAAHPnztW5al+6dCnS09OxefNmXLlyBbGxscjNzcWSJUsAPGjPXrZsGdavX4+jR4/ihx9+wNy5c+Hq6orQ0FAAD34B2NvbIzw8HN9//z1+/vlnLF++HIWFhZg6dSpz3du1zZulp/VRj9PjSwjpYoyUvGfPno1NmzYhOjoavr6+yMvLQ3p6utDhWFxcrNMOHRgYiIMHD2L37t3w8fHBp59+irS0NAwfPlyIWbFiBV577TUsWLAATz75JGpra5Geng7Fb4MpHBwckJ6ejtraWkycOBGjR4/Gt99+i88//xw+Pj7MdW/X0SYsPa2Pepwe3/r6etTX1wu3H+1ZJoSYF2MuCbtkyRLhyvlRp0+f1js3a9YszJo1q+U6cBzWrVuHdevWtRgzevRofPnll6Lr+rBOOdokPj5epyfZzc2to6tECDEmI06P76zaNXmz9LQ+6nF6fFeuXKnTk1xSIm6bMkJIJ2OkZpPOrF2TN0tP66Mep8dXLpfr9SYTQsyXsdY26cxEt3nX1tbi6tWrwu3CwkLk5eWhZ8+e6Nevn9DT6uXlBU9PT6xZs0anpxUAJk2ahBdeeEFoZ4qKikJ4eDhGjx6NMWPGICEhQafHlxDSxdGSsHpEJ+/c3FxMmDBBuB0VFQUACA8Px969e7FixQqo1WosWLAAlZWVCAoK0ulpBYBr166hoqJCuD179mzcunUL0dHRUKlU8PX11enxJYR0caxX1V0oeXM8z3f6l1tdXQ07OzuM/9ciWHRjW4ekKJu9k7PvqQZR9ZFfEtEGf7/lyUuGNIwayBx76wlx66bUurFPEBD752m3YvYWul4/iXu/ra5WtB30EP5uFXvs/fviytawv4dSZ0dRZWt7sTcP8py4jjvp3Rrm2KaiYvZYvhGn8Tmqqqoeq3mz+We7/+p3IWVYt0hTV4df1q967OfrTMxqYSpCiHl6ePZkW3FdRaccKkgIIV0dXXkTQkwfdVjqoeRNCDF5xpxh2VlR8iaEdA5dKDGzoORNCDF91Gyih5I3IcTkUbOJPkrehBDTR1feeih5E0JMHl1566PkTQgxfdrfDpa4LoKSNyHE5NGVtz6zSt59u1VC1l3GFPuLJfvaJloLcetEcNZW7GVXidsFSHbjLnOstau4hb0abNgn3Gotxf2USBrFxIq8fBK5PoymspK9LgY2rm01vmcP5ljeSlzZvFTE91Dk2iZi6mLhYnidfYO0DYDhTbTEoTZvPTQ9nhBi+oy4GUNiYiI8PDygUCjg7++Pc+fOtRqfmpoKb29vKBQKjBgxAsePH9etKs8jOjoaLi4usLKyQnBwMAoKCvTK+eKLL+Dv7w8rKyvY29vrLJvNgpI3IcTkGWszhkOHDiEqKgoxMTG4cOECfHx8oFQqUV5ebjA+KysLYWFhmD9/Pi5evIjQ0FCEhobi0qVLQsx7772H7du3IykpCTk5OejWrRuUSiXq6n7/C/Gzzz7Dq6++ioiICHz//ff4z3/+gz/96U+i6k7JmxBi+ox05b1lyxZERkYiIiICQ4cORVJSEqytrZGcnGwwftu2bQgJCcHy5csxZMgQxMXFYdSoUdixY8eDavI8EhISsHr1asyYMQMjR47E/v37UVpairS0NABAU1MTli5dio0bN+Kvf/0rBg0ahKFDh+Lll18WVXdK3oQQk2eMK++GhgacP38ewcHBwjmJRILg4GBkZ2cbfEx2drZOPAAolUohvrCwECqVSifGzs4O/v7+QsyFCxfw66+/QiKR4IknnoCLiwumTJmic/XOgpI3IcT0ibzyrq6u1jnq6+v1iqyoqIBGo9HbscvJyQkqleFeVpVK1Wp887+txfzyyy8AgNjYWKxevRrHjh2Dvb09xo8fjzt37jC9HQAlb0JIZyAyebu5ucHOzk444uPjO6LWBmm1D0ZT/e1vf8PMmTPh5+eHPXv2gOM4pKamMpcjOnl//fXXmDZtGlxdXcFxnNCOAwCNjY34v//7P4wYMQLdunWDq6sr5s6di9LS0lbLjI2NBcdxOoe3t7fYqhFCzJTYZpOSkhJUVVUJx8qVK/XKdHBwgFQqRVlZmc75srIyODsbHg7p7Ozcanzzv63FuLi4AACGDh0q3C+Xy9G/f38UF7NvMSc6eavVavj4+CAxMVHvvnv37uHChQtYs2YNLly4gMOHDyM/Px/Tp09vs9xhw4bh5s2bwvHtt9+KrRohxEyJTd62trY6h9zAeH2ZTAY/Pz9kZmYK57RaLTIzMxEQEGCwHgEBATrxAJCRkSHEe3p6wtnZWSemuroaOTk5Qoyfnx/kcjny8/OFmMbGRhQVFcHd3Z35PRE9SWfKlCmYMmWKwfvs7OyQkZGhc27Hjh0YM2YMiouL0a9fv5YrYmHR4m87QkgXZ6RJOlFRUQgPD8fo0aMxZswYJCQkQK1WIyIiAgAwd+5c9OnTR2h2Wbp0KcaNG4fNmzdj6tSpSElJQW5uLnbv3g0A4DgOy5Ytw/r16+Hl5QVPT0+sWbMGrq6uwjhuW1tb/PWvf0VMTAzc3Nzg7u6OjRs3AgBmzZrFXHejz7CsqqoCx3Ho0aNHq3EFBQVwdXWFQqFAQEAA4uPjW0z29fX1Oh0Q1dXiZikSQjohI8yenD17Nm7duoXo6GioVCr4+voiPT1d6HAsLi6GRPJ7A0VgYCAOHjyI1atXY9WqVfDy8kJaWhqGDx8uxKxYsQJqtRoLFixAZWUlgoKCkJ6eDoVCIcRs3LgRFhYWePXVV3H//n34+/vj5MmTsLe3Z647x/P8Y78lHMfhyJEjLc4Mqqurw1NPPQVvb28cOHCgxXJOnDiB2tpaDB48GDdv3sTatWvx66+/4tKlS7CxsdGLj42Nxdq1a/XOe3y4GhJrhd55Q2y+Zp/C7vQt+5R0AJBU1YqKF6Ppxq/MsZzfMFFl3xmu/163pK6nuOnXUhEz2LuVa0SVbaXSH0nQGsu795ljOZGfpbbiNnuwVCqqbElP9h9sXm4pqmxR0+lFxDZp6pF5NQFVVVWwtbUVVyc8uDCzs7PD8AXvQipr+2db01CHS7tXPfbzdSZGG23S2NiIl19+GTzPY9euXa3GTpkyBbNmzcLIkSOhVCpx/PhxVFZW4pNPPjEYv3LlSp3OiJKSEmO8BEKIqTDi9PjOyijNJs2J+/r16zh58qTo34A9evTAoEGDcPXqVYP3y+Vygx0QhBDzRKsK6mv3K+/mxF1QUICvvvoKvXr1El1GbW0trl27JgypIYR0cXTlrUd08q6trUVeXh7y8vIAPJgOmpeXh+LiYjQ2NuKll15Cbm4uDhw4AI1GA5VKBZVKhYaGBqGMSZMmCWsBAMBbb72FM2fOoKioCFlZWXjhhRcglUoRFhb2x18hIaTTM9bCVJ2Z6GaT3NxcTJgwQbgdFRUFAAgPD0dsbCyOHj0KAPD19dV53KlTpzB+/HgAwLVr11BRUSHcd+PGDYSFheH27dvo3bs3goKCcPbsWfTu3Vts9Qgh5oh20tEjOnmPHz8erQ1QYRm8UlRUpHM7JSVFbDUIIV0ItXnrM6uddAghZspIk3Q6M0rehBCTx/E8OIa/6llizAUlb0KI6aMrbz2UvAkhJo/avPVR8iaEmD668tZjVsm7V7oCUku2tU165txkLrfplyJR9eAc2Ccm8X2d2g56iMS+O3vZeVdEld2raRBzbM1A9nVQAKDOnn1KgdpR3JofakdrUfHSevZ1beTVPUSVbX2TfXirrLRSVNl8BfsuK9r7IhaTAcA3NTLHchbs66ZoefZyW31OuvLWY1bJmxBipujKWw8lb0KIyaMrb32UvAkhpo8HOJbZk5S8CSHEhPD8g4Mlroug5E0IMXnUbKKPkjchxPRRh6Ueo+2kQwgh7YXTsh9iJSYmwsPDAwqFAv7+/jh37lyr8ampqfD29oZCocCIESNw/Phxnft5nkd0dDRcXFxgZWWF4OBgFBQUGCyrvr4evr6+4DhOWGabFSVvQojpM9JmDIcOHUJUVBRiYmJw4cIF+Pj4QKlUory83GB8VlYWwsLCMH/+fFy8eBGhoaEIDQ3FpUuXhJj33nsP27dvR1JSEnJyctCtWzcolUrU1emPvV+xYgVcXV3FVfo3lLwJISbPWJsxbNmyBZGRkYiIiMDQoUORlJQEa2trJCcnG4zftm0bQkJCsHz5cgwZMgRxcXEYNWqUsLkMz/NISEjA6tWrMWPGDIwcORL79+9HaWkp0tLSdMo6ceIE/v3vf2PTpk2P85ZQ8iaEdALNo01YDkYNDQ04f/48goODhXMSiQTBwcHIzs42+Jjs7GydeABQKpVCfGFhIVQqlU6MnZ0d/P39dcosKytDZGQkPvroI1hbi5sh3MysOixtPrsAC45x6m4f9v0xpSJ39OFk7NOH60RO7W6yYv99a6UYIqps7r+G2+UMsW3oJ65sb3vm2Jq+4qbH17MX3Vwb5simu+LqImli3xhb0iBuiQGplYhNtxXifrS1VuzfWXDs75+mqQ7IElUVw08pcrRJdXW1znlDm5ZXVFRAo9HAyUl3iQonJydcuWJ4aQmVSmUwXqVSCfc3n2sphud5zJs3D3/9618xevRovc1pWNGVNyHE5IntsHRzc4OdnZ1wxMfHd+wLeMj777+PmpoarFy58g+VIzp5f/3115g2bRpcXV3BcZxeO868efPAcZzOERIS0ma5Ynt8CSFdiMhmk5KSElRVVQmHoUTp4OAAqVSKsrIynfNlZWVwdnY2WA1nZ+dW45v/bS3m5MmTyM7Ohlwuh4WFBQYOHAgAGD16NMLDw5nfEtHJW61Ww8fHB4mJiS3GhISE4ObNm8Lx8ccft1qm2B5fQkjXIrbD0tbWVud4tMkEAGQyGfz8/JCZmSmc02q1yMzMREBAgMF6BAQE6MQDQEZGhhDv6ekJZ2dnnZjq6mrk5OQIMdu3b8f333+PvLw85OXlCUMNDx06hHfeeYf5PRHd5j1lyhRMmTKl1Ri5XN7iby5DHu7xBYCkpCR88cUXSE5Oxttvvy22ioQQc2OkSTpRUVEIDw/H6NGjMWbMGCQkJECtVgu5aO7cuejTp4/Q7LJ06VKMGzcOmzdvxtSpU5GSkoLc3Fzs3r0bAMBxHJYtW4b169fDy8sLnp6eWLNmDVxdXREaGgoA6NdPt7+oe/cHyzwPGDAAffv2Za67UTosT58+DUdHR9jb22PixIlYv349evUyvMZ1c4/vw3/WtNXjW19fj/r6euH2o50ThBDzYqzp8bNnz8atW7cQHR0NlUoFX19fpKenCx2OxcXFkEh+b6AIDAzEwYMHsXr1aqxatQpeXl5IS0vD8OHDhZgVK1ZArVZjwYIFqKysRFBQENLT06FQsO01wKrdk3dISAhefPFFeHp64tq1a1i1ahWmTJmC7OxsSKX6PfeP0+MbHx+PtWvXtnfVCSGmSss/OFjiRFqyZAmWLFli8L7Tp0/rnZs1axZmzZrVYnkcx2HdunVYt24d0/N7eHiAf4wFtdo9ec+ZM0f4/xEjRmDkyJEYMGAATp8+jUmTJrXLc6xcuRJRUVHC7erqari5ubVL2YQQE0Rrm+gx+lDB/v37w8HBAVevXjV4/+P0+Mrlcr0OCUKI+eLA2GHZ0RX9HzJ68r5x4wZu374NFxfDk2Iep8eXENLFGGGGZWcnOnnX1tYKQ1yAB9NB8/LyUFxcjNraWixfvhxnz55FUVERMjMzMWPGDAwcOBBKpVIoY9KkScJaAMCDHt8PPvgA+/btw08//YRFixbp9PgSQro2Y64q2FmJbvPOzc3FhAkThNvNbc/h4eHYtWsX/vvf/2Lfvn2orKyEq6srJk+ejLi4OJ1xlteuXUNFRYVwu60eX0JI18bxPDiGq2qWGHMhOnmPHz++1Z7RL7/8ss0yDM3lb63Hl5WFowMsJDKmWP7ePfaCNRpR9Wgc1Ic5tsFG7NoZ7F9OscOmuG4i1lkpvy2qbCs7K+ZYjYw9FgAkjeJaOiVN7LHdb4gIBtDtp7K2g37TVPyrqLJ5BfvaJpyXu6iy77myD2O715v9D3ZNA9cua5tA+9vBEtdFmNXCVIQQ80RX3vooeRNCTB8NFdRDyZsQYvpo93g9lLwJISaPdo/XR8mbEGL66MpbDyVvQojJYx3DTeO8CSHElBhxYarOipI3IcTk0VBBfZS8CSGmj9q89VDyJoSYPh5ssye7Tu42r+StdbCDVso2hbjeuTtzubUulqLqwYuY8W57vUFU2bLsn5hjOXf2afoA0DikX9tBzWWL/CGR1LNPM7f7sVJU2fY190XFNxVeZw8eM0JU2eUT2d/zenv2La8AQFHB/qb3/uamqLJtCtinvNfbiViCuaF9sik1m+gzq+RNCDFTPBibTYxeE5Nh9PW8CSHkDzPiet6JiYnw8PCAQqGAv78/zp0712p8amoqvL29oVAoMGLECGH399+ryiM6OhouLi6wsrJCcHAwCgoKhPuLioowf/58eHp6wsrKCgMGDEBMTAwaGsT9FU7JmxBi+rQiDhEOHTqEqKgoxMTE4MKFC/Dx8YFSqUR5ebnB+KysLISFhWH+/Pm4ePEiQkNDERoaikuXLgkx7733HrZv346kpCTk5OSgW7duUCqVqKurAwBcuXIFWq0W//jHP3D58mVs3boVSUlJWLVqlai6U/ImhJi85jZvlkOMLVu2IDIyEhERERg6dCiSkpJgbW2N5ORkg/Hbtm1DSEgIli9fjiFDhiAuLg6jRo0SNpfheR4JCQlYvXo1ZsyYgZEjR2L//v0oLS1FWloagAebtO/ZsweTJ09G//79MX36dLz11ls4fPiwqLpT8iaEmD6RzSbV1dU6R319vV6RDQ0NOH/+PIKDg4VzEokEwcHByM7ONliN7OxsnXgAUCqVQnxhYSFUKpVOjJ2dHfz9/VssEwCqqqrQs2dP9vcDlLwJIZ2BVst+AHBzc4OdnZ1wxMfH6xVZUVEBjUajt2OXk5MTVCqVwWqoVKpW45v/FVPm1atX8f7772PhwoUMb8TvaLQJIcT0acG2Nfxvbd4lJSWwtf19SOPD2zCakl9//RUhISGYNWsWIiMjRT1W9JX3119/jWnTpsHV1RUcxwntOM04jjN4bNy4scUyY2Nj9eK9vb3FVo0QYqbEtnnb2trqHIaSt4ODA6RSKcrKdLeuKysrg7Ozs8F6ODs7txrf/C9LmaWlpZgwYQICAwOxe/duEe/GA6KTt1qtho+PDxITEw3ef/PmTZ0jOTkZHMdh5syZrZY7bNgwncd9++23YqtGCDFXRhgqKJPJ4Ofnh8zMTOGcVqtFZmYmAgICDD4mICBAJx4AMjIyhHhPT084OzvrxFRXVyMnJ0enzF9//RXjx4+Hn58f9uzZA4lEfAu26GaTKVOmYMqUKS3e/+hvl88//xwTJkxA//79W6+IhUWLv+0IIV2clnE3BpGrCkZFRSE8PByjR4/GmDFjkJCQALVajYiICADA3Llz0adPH6HNfOnSpRg3bhw2b96MqVOnIiUlBbm5ucKVM8dxWLZsGdavXw8vLy94enpizZo1cHV1RWhoKIDfE7e7uzs2bdqEW7duCfURkwON2uZdVlaGL774Avv27WsztqCgAK6urlAoFAgICEB8fDz69TM8Xbu+vl6n97i6urrd6kwIMUFGWphq9uzZuHXrFqKjo6FSqeDr64v09HShw7G4uFjnqjgwMBAHDx7E6tWrsWrVKnh5eSEtLQ3Dhw8XYlasWAG1Wo0FCxagsrISQUFBSE9Ph0KhAPDgSv3q1au4evUq+vbVXSKBF1F/jhcT/eiDOQ5HjhwRfqM86r333sPf//53lJaWChU35MSJE6itrcXgwYNx8+ZNrF27Fr/++isuXboEGxsbvfjY2FisXbtW7/zI8HcglbX8PA+r8WAKAwA02osb+W+bz764idP2LFFlly4PZI7lA6pElc2JWLCk4bKdqLL7nmKfPSb7z2VRZd+fIG79kVu+7GvVNI5Uiyr7Kc9fmGPtLMWtyXLmxkDmWO1pccPO+n5SxByrcbZnjm3S1OPUxb+jqqpKpwORVXV1Nezs7BDc/3VYSNrudGzS1uOrX7Y/9vN1JkYdKpicnIxXXnml1cQNPGiKmTVrFkaOHAmlUonjx4+jsrISn3zyicH4lStXoqqqSjhKSkqMUX1CiKkw4vT4zspozSbffPMN8vPzcejQIdGP7dGjBwYNGoSrV68avF8ul5vs0B9CiBFoeTCtOtWFdtIx2pX3hx9+CD8/P/j4+Ih+bG1tLa5duwYXFxcj1IwQ0uloNexHFyE6edfW1iIvLw95eXkAHkwHzcvLQ3FxsRBTXV2N1NRU/OUvfzFYxqRJk4S1AADgrbfewpkzZ1BUVISsrCy88MILkEqlCAsLE1s9Qog5at7DkuXoIkQ3m+Tm5mLChAnC7aioKABAeHg49u7dCwBISUkBz/MtJt9r166hoqJCuH3jxg2EhYXh9u3b6N27N4KCgnD27Fn07t1bbPUIIeaItkHTIzp5jx8/vs3hLAsWLMCCBQtavL+oqEjndkpKithqEEK6EtqMQQ+tbUIIMX105a2HkjchxPRpGXda0IrcjaETo+RNCDF9dOWth5I3IcT0UfLWY1bJu/e35bCQsk3esfuFfYpv+WhxE4J6FDQyx96fMUZU2T4v/Mgc+0+P06LK/k8d+5+cf74lbuF4efFd5tiqaeLmBqieYlno+XdW/diXDXC0FjeF/fJt9oWFbpWJW2LA9nsZc2yff99qO+hhluypQGPNXg9NUzs1Y9AkHT1mlbwJIeaJ12rA821PwGGJMReUvAkhpo9nvPKmZhNCCDEhWi3AMTTB8DTahBBCTAddeeuh5E0IMXm8Vgue4cqbpytvQggxIXTlrYeSNyHE9LHuYUnJmxBCTAjPg2l6PCVvQggxHbyWB89w5f0HtuTtdCh5E0JMHq/RgOfa3juGJul0Ms2/bZu09cyPaWqqY47V1Iv7bd7UyD49XsuJm9rdqGbfhb26RlzPu1rE9Hjtffb3D3iwizhzbKO4srV14t5DzT0RdeHZYwFAo5Uyx4p9DzX17J+PmPcbADgj/ew0NT0o949eETfx9UxjuJvA/rPX2XG8GfydcePGDbi5uXV0NQghLSgpKUHfvn1FP66urg6enp5QqVTMj3F2dkZhYSEUCoXo5+tMzCJ5a7ValJaWwsbGBtxDV7LV1dVwc3NDSUkJbG1tO7CGxkWv03yY22vkeR41NTVwdXWFRPJ4+53X1dWhoYH9L06ZTGb2iRswk2YTiUTS6m91W1tbs/hBaAu9TvNhTq/Rzk7c6omPUigUXSIZi/V4vwoJIYR0KErehBDSCZl18pbL5YiJiYFcLm4zhc6GXqf56AqvkbQPs+iwJISQrsasr7wJIcRcUfImhJBOiJI3IYR0QpS8CSGkEzLr5J2YmAgPDw8oFAr4+/vj3LlzHV2ldhUbGwuO43QOb2/vjq7WH/L1119j2rRpcHV1BcdxSEtL07mf53lER0fDxcUFVlZWCA4ORkFBQcdU9g9o63XOmzdP77MNCQnpmMoSk2S2yfvQoUOIiopCTEwMLly4AB8fHyiVSpSXl3d01drVsGHDcPPmTeH49ttvO7pKf4harYaPjw8SExMN3v/ee+9h+/btSEpKQk5ODrp16walUom6OnGLPHW0tl4nAISEhOh8th9//PH/sIbE5PFmasyYMfzixYuF2xqNhnd1deXj4+M7sFbtKyYmhvfx8enoahgNAP7IkSPCba1Wyzs7O/MbN24UzlVWVvJyuZz/+OOPO6CG7ePR18nzPB8eHs7PmDGjQ+pDOgezvPJuaGjA+fPnERwcLJyTSCQIDg5GdnZ2B9as/RUUFMDV1RX9+/fHK6+8guLi4o6uktEUFhZCpVLpfK52dnbw9/c3u88VAE6fPg1HR0cMHjwYixYtwu3btzu6SsSEmGXyrqiogEajgZOTk855JycnUUtLmjp/f3/s3bsX6enp2LVrFwoLC/H000+jpqamo6tmFM2fnbl/rsCDJpP9+/cjMzMTGzZswJkzZzBlyhRoNF1nswHSOrNYVbCrmjJlivD/I0eOhL+/P9zd3fHJJ59g/vz5HVgz8kfNmTNH+P8RI0Zg5MiRGDBgAE6fPo1JkyZ1YM2IqTDLK28HBwdIpVKUlZXpnC8rK4Ozs3MH1cr4evTogUGDBuHq1asdXRWjaP7sutrnCgD9+/eHg4OD2X62RDyzTN4ymQx+fn7IzMwUzmm1WmRmZiIgIKADa2ZctbW1uHbtGlxcXDq6Kkbh6ekJZ2dnnc+1uroaOTk5Zv25Ag92i7p9+7bZfrZEPLNtNomKikJ4eDhGjx6NMWPGICEhAWq1GhERER1dtXbz1ltvYdq0aXB3d0dpaSliYmIglUoRFhbW0VV7bLW1tTpXl4WFhcjLy0PPnj3Rr18/LFu2DOvXr4eXlxc8PT2xZs0auLq6IjQ0tOMq/Rhae509e/bE2rVrMXPmTDg7O+PatWtYsWIFBg4cCKVS2YG1Jialo4e7GNP777/P9+vXj5fJZPyYMWP4s2fPdnSV2tXs2bN5FxcXXiaT8X369OFnz57NX716taOr9YecOnWKB6B3hIeH8zz/YLjgmjVreCcnJ14ul/OTJk3i8/PzO7bSj6G113nv3j1+8uTJfO/evXlLS0ve3d2dj4yM5FUqVUdXm5gQWhKWEEI6IbNs8yaEEHNHyZsQQjohSt6EENIJUfImhJBOiJI3IYR0QpS8CSGkE6LkTQghnRAlb0II6YQoeRNCSCdEyZsQQjohSt6EENIJUfImhJBO6P8DIDvWUhMlHNkAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", "pred_labels = observed_pred.mean.view(n, n)\n", "\n", "# Calc abosolute error\n", "test_y_actual = torch.sin(((test_x[:, 0] + test_x[:, 1]) * (2 * math.pi))).view(n, n)\n", "delta_y = torch.abs(pred_labels - test_y_actual).detach().numpy()\n", "\n", "# Define a plotting function\n", "def ax_plot(f, ax, y_labels, title):\n", " if smoke_test: return # this is for running the notebook in our testing framework\n", " im = ax.imshow(y_labels)\n", " ax.set_title(title)\n", " f.colorbar(im)\n", "\n", "# Plot our predictive means\n", "f, observed_ax = plt.subplots(1, 1, figsize=(4, 3))\n", "ax_plot(f, observed_ax, pred_labels, 'Predicted Values (Likelihood)')\n", "\n", "# Plot the true values\n", "f, observed_ax2 = plt.subplots(1, 1, figsize=(4, 3))\n", "ax_plot(f, observed_ax2, test_y_actual, 'Actual Values (Likelihood)')\n", "\n", "# Plot the absolute errors\n", "f, observed_ax3 = plt.subplots(1, 1, figsize=(4, 3))\n", "ax_plot(f, observed_ax3, delta_y, 'Absolute Error Surface')" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.12" } }, "nbformat": 4, "nbformat_minor": 4 }