variational-autoencoder/VAE-Test.ipynb

1059 lines
773 KiB
Plaintext
Raw Normal View History

2023-08-21 15:13:45 +00:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Preparations"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'\\n*Uncomment if running on colab* \\nSet Runtime -> Change runtime type -> Under Hardware Accelerator select GPU in Google Colab \\n'"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\"\"\"\n",
"*Uncomment if running on colab* \n",
"Set Runtime -> Change runtime type -> Under Hardware Accelerator select GPU in Google Colab \n",
"\"\"\"\n",
"# !git clone https://codes.paul-corbalan.com/Paul-Corbalan/variational_autoencoder.git\n",
"# !mv Code-VAE/* ./"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Import libraries"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"import torch\n",
"import torchvision\n",
"from torch import nn\n",
"from torch.utils.data import DataLoader\n",
"from torchvision import transforms\n",
"from torchvision.datasets import MNIST\n",
"\n",
"import numpy as np\n",
"from sklearn.manifold import TSNE\n",
"from matplotlib import pyplot as plt\n",
"\n",
"from utils import *"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Set random seeds"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"torch.manual_seed(1)\n",
"torch.cuda.manual_seed(1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Define data loading step"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"batch_size = 256\n",
"\n",
"kwargs = {'num_workers': 1, 'pin_memory': True}\n",
"train_loader = torch.utils.data.DataLoader(\n",
" MNIST('./data', train=True, download=True,\n",
" transform=transforms.ToTensor()),\n",
" batch_size=batch_size, shuffle=True, **kwargs)\n",
"test_loader = torch.utils.data.DataLoader(\n",
" MNIST('./data', train=False, transform=transforms.ToTensor()),\n",
" batch_size=batch_size, shuffle=True, **kwargs)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Defining the device"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"device, list_ids_devices = prepare_device(1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Variational Autoencoder"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"from models import VAE as VAEm\n",
"from trainer import VAE as VAEt"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"# Defining the model\n",
"\n",
"d = 20\n",
"\n",
"model = VAEm.Model(d=d).to(device)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Model(\n",
" (encoder): Sequential(\n",
" (0): Linear(in_features=784, out_features=400, bias=True)\n",
" (1): ReLU()\n",
" (2): Linear(in_features=400, out_features=40, bias=True)\n",
" )\n",
" (decoder): Sequential(\n",
" (0): Linear(in_features=20, out_features=400, bias=True)\n",
" (1): ReLU()\n",
" (2): Linear(in_features=400, out_features=784, bias=True)\n",
" (3): Sigmoid()\n",
" )\n",
")\n"
]
}
],
"source": [
"print(model)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"# Setting the optimiser\n",
"\n",
"learning_rate = 1e-3\n",
"\n",
"optimizer = VAEm.optimizer(model, learning_rate=learning_rate)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"# Reconstruction + β * KL divergence losses summed over all elements and batch\n",
"\n",
"loss_function = VAEm.loss_function(f=nn.functional.binary_cross_entropy, β=1)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"scrolled": false,
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"====> Test set loss: 544.4362\n",
"---\n",
"====> Epoch: 1 Average loss: 190.7399\n",
"====> Test set loss: 138.4847\n",
"---\n",
"====> Epoch: 2 Average loss: 133.5370\n",
"====> Test set loss: 116.0096\n",
"---\n",
"====> Epoch: 3 Average loss: 120.8788\n",
"====> Test set loss: 108.4733\n",
"---\n",
"====> Epoch: 4 Average loss: 115.8060\n",
"====> Test set loss: 105.1933\n",
"---\n",
"====> Epoch: 5 Average loss: 113.1306\n",
"====> Test set loss: 103.5372\n",
"---\n",
"====> Epoch: 6 Average loss: 111.4213\n",
"====> Test set loss: 101.1358\n",
"---\n",
"====> Epoch: 7 Average loss: 110.1533\n",
"====> Test set loss: 100.2345\n",
"---\n",
"====> Epoch: 8 Average loss: 109.2291\n",
"====> Test set loss: 99.6173\n",
"---\n",
"====> Epoch: 9 Average loss: 108.4496\n",
"====> Test set loss: 98.4703\n",
"---\n",
"====> Epoch: 10 Average loss: 107.8486\n",
"====> Test set loss: 99.1964\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"c:\\Users\\Main-user\\Desktop\\Code\\utils\\plot_lib.py:18: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`).\n",
" plt.figure(figsize=(18, 4))\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x288 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x288 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA/kAAAEECAYAAABz1vTiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAkE0lEQVR4nO3deZhcVZk/8Lc7TQIECSSIEAg7IaAIgYExOLLIIiqy6OCAgqJgUAeVUXFU1AQVURxglMWRzaAiIm4oOCwiIAPEQABBdgjBhH1HIIQkfX9/nOpfOk3fU51e0p3D5/M89YSub517T92qutRb5957WqqqCgAAAGD51zrYHQAAAAD6hyIfAAAACqHIBwAAgEIo8gEAAKAQinwAAAAohCIfAAAACqHIB8g7JCKqmtuzg9arZFpEzO1l23+KiNMj4q6IeCki/h4R50bEhv3Ss8F1VeOWs0FETI2IjQawH0dGxHv7uIxpETG7F+22jvT8Rvdx/XV+GBGXD9Cyh6qtY2C3aV/WXzUyAFDkA/TQ/hExqcttt0HtUd8cEBFvjIjvR8Q7I+KLEbFNRNwYEeMGsV/LygYRMSWGfpHfW1tHen4DUZC2RMR7IuK3A7DsoWzrGLht2tf1T4qIM5dpbwAYstoGuwMAy4lbIuK+we5EP/pORDzR5b5rI+KBiPhYRHxtGfShJSJWiIhXlsG66D9viYi1I+LCpWw3IiLm9393hqRhkd7fC5fR+qYvo/UAsBwwkg/QPw6JdMjsjpFGOF+IiKci4tSIWKnLY9eOiB9HxJORip5bI+Kgbpa5YUT8JCIebTxuVkR8r5vHTYyIayIddn9vRHy8B/3tWuBHRDzYuH+dHrTvjdkR8dOI+Gik0wReiYh3N7KtIuJ3EfFMRMyL9IPD27q03y4ifhnpFIV5EXF3RHwrXr19m9k5Iq5s/Pflsfj0i507PeZjEfHXiHg50ut0Vrx6BPUzEXFnoy/PRDoKYr9Oz3X9iPhgp+VPa9KvXSPipsY674+Iw2sed0zjcc81+vanSIV3h0Mi4keN/7630/o3aNx3RERcHxFPRzrlZHosfh16Yt9IzzV3qsjUxjrfFBGXRvo8/KKRrRzpR6YHIr0HHoiIo+PV30leHxGnRcScSO//OZE+DyM6PWbPxnOZF2l7/DYiNuuynKsi4v8iHXlzU6TPyd8az6Oz8RHxm4h4PNJr8PeIuCDSgMghkd+mVUQcG+mImI7ntWUs3i90PK7D1Mb9nbVFxH9GxB2N9T8REZdExIQern9ql+Utq20DwBBj5wzQM8Pi1fvM9sats59GKmZOi4jtI42Ij4z0JT0a/311RKweEV+OVLgcFKl4WTnSefIRqcCfEelL95RIX+zHRcQeXda3akT8LCL+OyK+HhEfiYgfRCqAr4yls3lErBmpcB0ou0Q67PiYSAXD7EinCVwTETdHKq5fivRDxR8jYoeImNlou16kIyqmRcQ/Ip1u8LVIh9wfsBR9uCki/j3SDzCfjogbGvff0fj32xHxuUinMhwV6UePb0YqWHeIiEWRivcTIm3zayL90PDmWPxDwH4R8YdIPxRMbdzX3Q8rHTZvPP7GxnMZ0Wi3SmN9na0TESdFKrJHRnr//DnSdRZujYiLG/39SqTTTDqK8Uca/24Q6dDu2ZHe0++JiIsi4l0R8b+ZPnbYJ9L7tScujPQDyXcifVbaIhX9W0TENyLitkg/UHw10rb7XKPd6hFxXeO+bzae15qNdQ+PVPTv2Xiuf4qIf4u0rb4eqWjdOiIe6tSPjSP9QHZcpB9GPhfpB6MJsfgInYsi/ejxicZj1om0TVqj+TaNSJ/xWRHx+Yh4MSIejvTjVU/9PFJx/d+R3vsrRvrRcO0err+zZbltABhqqqpyc3Nzc6u/HVLVu6ibx/1Pl/ZHV1W1qKqq8Y2/j2g8bucuj/tjVVWPV1U1rPH3j6uqeqGqqrGZvk1rLGuXTveNqKrqyaqqTl/K59lWVdXVjT6sPkDbcnZVVS9VVbVWl/uvqKrqzqqqhne6b1jjvt/WLKul0eeDqqpqr6pqTKfsqsYt15edG9tuty73b9B4vb7W5f63Nh6/b+PvU6qquqkHz/enPdw25zZet5Gd7htXVdUrjeXUtRvW2A53V1X1vU73d7wfN2my3tZG+8uqqrqwB/2c0FjuG5s8bmrjcZ/pcv/Bjft37HL/0Y3numbj7683XoeJmXXcWFXVvY3+d9y3YVVVC6qqOrHTfVc17tu0031rNpb/5cbfazT6tXdmfbltWlVV9XBVVSvVtNmgZvt0/P32xt+f7sP6pw7itnFzc3NzG0I3v8AC9Mx+kQ4X73w7spvH/aLL3z+PNNq1fePvHSONol3V5XE/jXR48haNv/eINHr2cJN+vRRLjtjPjzTqv16Tdl2dEmmU+qBIh57ndBzV0PU2rAfrmR7p9IMOK0XETpEO/e0Y6W2LdD7zHyNtrw6rRhoRvj/S81wQaUS5JSI27cG6e2L3SK/XubHkc/tLRDzfqT83RBoRPTnSoc4r93G9kyKN5L/Y6b45kU5b6Gq3SK/5U5HO+V4Q6XDqrodi19k20nvrsU7td+9h+/0ije7e3sN1/abL33tGOi3kulhy+14W6foMHacd7BFpG99cs9yRkY4AOT+WPO/9gUjbbKcuj7+3cevweOPW8Tl5KtIo/LcjHU3Sm/fTJZEOje+NPSIdcn9GL9t3NhS3DQDLkCIfoGf+FulQ6s637i7E91jN3x3nuY+O7g+xfbRTHhExJno2PV53Bfn8SIf69tRxETE50rnyl/Xg8VdEKgy73q7oQduuz310pB8HvtrN8o6IdNh2x/+rfhTpMP7vRypKt4t02H3E0j3fnDUb/97XTX9WjfS6RKRrKnwiIv450uHnT0fEr+PV51731Nrx6vdOdHPfNpF+DHghIg6NVBRvF+m0gJ5sg3GRXqfREfGpSD/sbBepQO1J+31j6a6q3/X1XjPStQq6btsZjXxMp39z7//VI/24U/dZ6nr9hKe7eVznz0kV6T11Y6TPwz2RCttPZPrQVd2h8z0xptHH3v5I0NlQ3DYALEPOyQfoX2+IJUc539D4t+Mc2Kej+xHTtRr/PtX4t+O814F2dKSLhX06en6e9eER8bpu7v9HD9p2vdjYs5FG8E+NVDh3pz1SwbFPpPPUO198cMserHNpdGz/PaL7H1A68irSXPE/jFRU7RHpHP3zIxX+S+uRWPxe6azrfe+LNDr73kjFcYfVI23LZvaMiFER8f5YsojuyZEIa0f6QeCzPXhsh66v91ORRpTfX/P42Y1/m73/n2kse61usrVi8eu0NGZFxIciFchbRfqR6bRGn3pyrYKuzzUiXaQuIl1HoLMxXf5+MlLxvVL0vdAfitsGgGXISD5A/+pavBwQqUjtGKm8OiLWjYi3dnncByIdIttx0bvLImKvSIXVQPl0pIt5HR3psPOeujtefVTDjY37l9aLkS5ct1WkC+J1t9yIdCG6YbFkYRux+IKGS6tjKreuV+a/PNLrtV5NXx7oZlnPRCrufxHp4nyd19HTK/9fH+lCZiM73TcuXv0+WTnShfg6F5Rvj1efnlH3/DqK+c7bcXw36+nOvpEuHnh9Dx5b55JIz+uF6H77Ptl43GWRTnGpu3Ddi5EuyLh/LHmayPqRjk64ug99rCJd4LHjx4yO17Rum+Y82GUZEWmApesFNC+LVEAflllWT9c/GNsGgCHESD5Az2wdEWt0c/+NseR5r++KiO/G4iJlSqQR6nsa+bRIU6/9OlJxPTfSldp3jzRC3nEl9SmRpjW7LtI0cfdFGtncM7qfbm9pHRDpKt6XxKunYHs+Fl9pfln4bKSrw18a6Ursj0Ta1ttEKlK+GGkKsOmRrvz9SKRi8KPR+6Md7on0un000tEV8yP9SHF/pPP+T4l0xMXVkUZjx0V6jc6MdD786ZGOXLg+0o8z4yPi4FjydIc7Ik0DuFekw6SfjMUj1V19M1JRdlmk98/wSDMQdD1c/5JI14KYFun0hfGRTnV4qMvjOl6/f4+IcyIV9bdGus7BwkjvyRMi/Yh0TKQp0Zr98L9
"text/plain": [
"<Figure size 1296x288 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA/oAAADoCAYAAABfEJ+sAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAimklEQVR4nO3daZBd6V0e8HPv7Vav2lu7Rsvsa+zxPmMbD9gYg7ENTqDM6kAoKlSKYktCPlCVpCplCBRxUaQSEsrBYSkCZiuHYHtsjwHjbbxqxp6RZtFoNo2k0dJSt3q/9+RDPsXJeV7jHqmlM7/f10fvXc95z/n3rdLTqeu6AgAAANqhu9YvAAAAAHjhGPQBAACgRQz6AAAA0CIGfQAAAGgRgz4AAAC0yFAKv737ff5LfrgMPjr4QGetX8M3yr4Al4d9Afh69gXg6zXtC37RBwAAgBYx6AMAAECLGPQBAACgRQz6AAAA0CIGfQAAAGgRgz4AAAC0iEEfAAAAWsSgDwAAAC1i0AcAAIAWMegDAABAixj0AQAAoEUM+gAAANAiBn0AAABoEYM+AAAAtIhBHwAAAFpkaK1fAAAAAFVVdTqFPP9O2+n1vvnnrgeFuF7V+lWrC8+flD7X1Tz2Fcov+gAAANAiBn0AAABoEYM+AAAAtIhBHwAAAFrEoA8AAAAtYtAHAACAFlGvBwAA8I3q5gq77uhIY9Y5eE1ce+HmTTE/fzA/98pkjKuV8eYaub33rcS1o8dnYt45eTbm9ezFnC8t53wl5KV6vBbW55X4RR8AAABaxKAPAAAALWLQBwAAgBYx6AMAAECLGPQBAACgRQz6AAAA0CIGfQAAAGiRobV+AQAvmE5nrV9Bs07+u2qnl3txiw/fa378zrp1efFw4VJQ6AuulpdiXC/nXt56cbE56/fzc6/Wi7BXF74hpf30Uu9paV8qvLbinlcPYjyYX8jLl/KeZ1+5+vU2bYz5mbfdGvNTdzdfu972yi/HtW/YcCTm24YuxLxX5eP72ZXNjdnH78nv694Hbov51s80P3ZVVdX2vzkR8+rk6ZzPN7+34v3Ci/C89Is+AAAAtIhBHwAAAFrEoA8AAAAtYtAHAACAFjHoAwAAQIsY9AEAAKBFDPoAAADQIoXyZP6/VtnVXeqWLfW/dsbHmrOJ8fzk3fy3nbrUpz1UeO0zczEfTJ9vzi7mtdXgEvdpc+VbZa9z8eFL52boqq+Gh/Pa0dH85JvWx3hlW87ndjc//sw1+X31C5XTvUJldKdwao6dzp2+mx5q7gTuPnMyrh3MzMa8Xl6JeVXbV1hDq+yD705OxLzeu6MxO3dH7glf2Jz305lr83ldF7bj0T353F1abN5T+/N5T6uW8pNveDTf60w+k/eFjV87F/PBI0cbs3qlsCfxwiicW72NG2Je790V8+V86lWjU/ON2YmF/NxnJiZjvlDn+42zK3n9A7N7G7OjM1vj2vVTF2M+t3tzzJf3bIr58OmzMa9jytfziz4AAAC0iEEfAAAAWsSgDwAAAC1i0AcAAIAWMegDAABAixj0AQAAoEUM+gAAANAihdL0q1i31Ied8+7G0Fm9OXfPzt46FfMTr87PPXxTc6d0VVXVO659sDF76cSTce3x5dxv+cjczpifWsjdnA+dzOvnT+9uzK7949xbO/LAsZgPps/HXHdtC3Ty3yZL53XVzb263bHcdd8ZG2vMlm7MnbvnbsyPffYluZN6cm/eF75lz+HG7BXrn4hrRzvLMX9g7pqYT6+Mx/yhc3lfOHx0e2O27y/znjP5xadiPjifP7d6aSnn/bwvVbVW3xe91Ndd2LN623Jn9cId+dx7+k3rYv7P3vahxuzbJx6Oa0uGO3nPKunXeT+e6DY//nLhtJse5M/lz+9+ecz/4Euvzk/Q2RLjTWeb70dWTpzMj80LojOUu+ar4XyMdGfnYj5+Os8C/U83zxEPrr8prj18MeeTz+Rzb2gh5+nUnb4uj4YLO/LJ1yv8hNwfzv9geCg/fz0Iz+96/P/wiz4AAAC0iEEfAAAAWsSgDwAAAC1i0AcAAIAWMegDAABAixj0AQAAoEUM+gAAANAiuaxwLXVzH3an1Ic9ORHzwcG9MT/+uuZ+zM1vfzaufevOT8T8Oya/GvODw7n/crzT3P3ZrfLnslKdjvnMhq/F/Hg/fy9nd+c+7dTX/cg9O+Laf/PZd8T8+t/Ofdfd+x+Keb2c+7S5DFIfdVVV3XWFXtxu/ttlZ2Qk5vX+XTE/9YrmfWHxrc29yVVVVdvXn4n5m7cei3m/8HfZV00cbcxGu/nYnu7n/fItGx+I+YbOYszHt6/E/MEDzZ/7r+x9S1y7+IcHYr71vmMxry/mruTBXM7rfth3dPq2Q2Ff6vSar4u9nfm6dv41+V7k2l/IXffv3/NXMd/Ta74m9zpjce1yna+pjy3n8/7R5amY91KZd1VVe3rNe2rpPmnfUL5X2bHlMzFfvjOv/+tP3BXzuh9eX+F4sm+8QOp8jAwuXIh5dyVftzZ8ciHmG9c136uX1LMX8z8ozED1Qj43O2Ojjdn4U9vj2uPftjnms/vy574wle/jxoau3NH0auQXfQAAAGgRgz4AAAC0iEEfAAAAWsSgDwAAAC1i0AcAAIAWMegDAABAixj0AQAAoEWu2rLCTqmfcnvub52+bX3Me29u7pv/9h2H49q3rz8U8525nrUa7+Su727V3J85qHL/ar/Qz3q8n1/cseUtMd/Qzb2iu4fmG7MdvWNx7W++7g9i/tMX3x3zmw9Pxrx/9lzMddteBp3C3x67OU/dsFVVVZ3RnD/3uk0x3/99jzdmr936WFy7PMjb7Rem98X83GJzH3ZVVdWfPfzSxmzQL/SAFz7263edivmbt+eu79dNHIn5zetONmbff+CLce1/ev0bYz52OveUjx96OubVfN7Tqip0jevLbofCCdJd33w/MfvSPXHtvp97JObv2fNXMd/Vy/tCL7z20/3c1f2FxXy9/5kv/ljM1390IuaDXKdd7XvX0cbsVw/8WVx73VA+90qf253jT8b8r6u7Yt5ZF96c8/6yqAeFz3mwkuOZmby+dOFcjW7h2lF6bwWd4eb7kdnrNsS1K687H/NtY4sxn3l2e8w3j+T5rhM+m3oQl74o+UUfAAAAWsSgDwAAAC1i0AcAAIAWMegDAABAixj0AQAAoEUM+gAAANAiV269XqEjoTOUX3o9mntbFjfkv3H0Q83c3CBXPxxZztURn1/IFV8H1jVX+1VVVS3Xza/t0Pz+uPY/fumemE9+Jb+2kmvf0Vw/VlVV9cv7/7wx212ow7mjkz+X22/PdTjLu/L3UpXq9Vh7vVz/2FmfKxSfvydXXe14Zz6GfnbvRxuzEysb49o/PvmKmD/88Rtivu1QrgLaHVrehmfz2rpQ5XP8JXlf+a+vyTVc907dEvN37vpyY7Z7eDqufevLc53pvedeFvMDs7ti3puZjXm9vBRzrgKFGsRURVVVVdW/6ZrG7Kl35nuZ9+z6eMw3dfNzz9f5+PvcQnPF3Xue+IG49uL7d8f8+o8fi/ng/IWYd7dsjvmR7dc1Zv0fy99ZqhWsqqrqF+4xS/t5dyXXm9VLyzHnMlhl11pd+I6L9amrqN/r1IU9qVAx3pnI1ZZzrzzQmA1+8vm49hcP/G3Ml+u8Z71n9/fEvOoXvrd0H9gPN0JV9aKstvSLPgAAALSIQR8AAABaxKAPAAAALWLQBwAAgBYx6AMAAECLGPQBAACgRQz6AAAA0CK57PAKNlhcjHnvVO5En3wud6RO/11zv+uf3//6uPZP1+V87GTucRw5X+hnDfWao2dzh+TNj52JeXW60CW/fWuMp98yFvNN3eZ+zPFOXrvcWYj5zNJIzMcW8jHDZRK6ZzuFPvdOL/9tcvHgVMyXvzcf3z+772Mx3z0005g9tZy75I98+IaYH/jg2Zh3Zy7GvF43HPO4dix38u787ErMF47mc/fZ6/fH/Jdvae6yv/OGJ+Pab9n6aMwffdXTMT93pLkDvaqqaurUjphXjx7NOVe97thozM/vG2/M3nTbg3Ht/qG5mJ8s1EL//vSrYv7
"text/plain": [
"<Figure size 1296x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x288 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x288 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA/oAAADoCAYAAABfEJ+sAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAbU0lEQVR4nO3dedBdZ30f8HPvfXdLr3bJlmxLtixL2BiwAYOpWWMDAUKbYQgBUiAQUmhCwxSSdDrNlE6mw3QCTFMoLRMgAaYEChMWp2Xfw2aDiY3Bu2xJ3rRvr/Su957+0WmnZTjfE3glv/Ljz+ffr597z3t1z3PO754Zfzt1XVcAAABAGbpLfQAAAADAqWPQBwAAgIIY9AEAAKAgBn0AAAAoiEEfAAAACjKUwmu7L/W/5IeHwZcGn+gs9TH8Q9kX4OFhXwB+ln0B+FlN+4In+gAAAFAQgz4AAAAUxKAPAAAABTHoAwAAQEEM+gAAAFAQgz4AAAAUxKAPAAAABTHoAwAAQEEM+gAAAFAQgz4AAAAUxKAPAAAABTHoAwAAQEEM+gAAAFAQgz4AAAAUxKAPAAAABRla6gOgMJ1OjoeGm8N6sKi3rgd1/g8G/UW9PgAAwCOBJ/oAAABQEIM+AAAAFMSgDwAAAAUx6AMAAEBBDPoAAABQEIM+AAAAFES9Hv+/xdTjVVXVHR/L6yfGm8Ox0bi2np6JeTU7G+PB1In8+v2W+r26pb4PAH4Ri7zmtuo2v349v5DXtlXeuiYCnNE80QcAAICCGPQBAACgIAZ9AAAAKIhBHwAAAApi0AcAAICCGPQBAACgIAZ9AAAAKMjQUh8Ap1i3l+OWrvru6lUxn7tgfcxPrs6dvyfXNh/f0Gzu5O201NyvuvlwzLt7D8S8njoR88HMTD4A4Odr6QqPdHVzpgvf7+74eF66eVPMD1y5NubHLszn1uy5c43Z8p+OxLXnXrc35oN79sS8nm9+bwBOP0/0AQAAoCAGfQAAACiIQR8AAAAKYtAHAACAghj0AQAAoCAGfQAAACiIQR8AAAAKMrTUB8AvrjPU/M/WnZiIawfbN8d832XLYn704hhXCxODmHfXTjdmIyMLce3s9HDMp85bE/PzPzET88HxqZjzKNDS994Zae6d7p2zIa7tr1sR895Dh2M+2H8g53PzzWGdz8tOr5fz0dGYdyeXx7x/dj43uzPNfdv1fQ/FtYOplvO2rnMOLed9m+74eGM2/5Qdce3OV+f3fsnjvhfzl666PuYzdfN185tPzsf2gR1Pj/m2v8z3C53v3RLzatDPOfBL6Qw336tUVVV1x8cas7rlmllPN9/HV1VV1Qv5Xp6Hlyf6AAAAUBCDPgAAABTEoA8AAAAFMegDAABAQQz6AAAAUBCDPgAAABTEoA8AAAAFaS5kZ+m0dPp2JyYas+mrctH9rhflvuzh9SdiPn+8pZvzeP5KdbvNfd5XbLwvrr1icnfMr79wS8x37cmfzarPHYl5f66561tX9yNEN3//e5O5F/rE07c3ZnufnF97dm3ujD77W2fFfPX387nVOXy0MavTd7eqqk7YU6qqqgZbzo757mctj/mJzflvX/f95t+c1x4+FtcOpqZiDq3a9u+WfaO7fm1jdu8LRuPa9179wZhfNXYk5sNVPrapuvmafsmqH8a1L7n2xpi/csNvx/zst26Jef+Ou2MO/HzdsbH8H2y/IMYPPHNVY9abyfvhhm8diPlgZ75Xb7sfcT99anmiDwAAAAUx6AMAAEBBDPoAAABQEIM+AAAAFMSgDwAAAAUx6AMAAEBBDPoAAABQkFzMzJLo9HIvbnVuc6f1vb+ef7u56rI7Yn7Drs0xX3bbSMzP/v50zOdWNnd/fu/lW+La37ryuzF/7NiemP/zXzs/5qu/uyLm1dHc580ZoNPJccu5Nbjg3Jg/+LTm9Zue9EBcu+/YspgPzea8bvn+Daaa+7LbdEYWYj6/PJ/3U9tzL+7lF++K+e33b2vM1rb8m8Kite0bw/lW6eSODY3Zc5/1o7j2itFDMW97HnPLfD72dz3wa43ZhRO5D/sNa74T888+4QMxf8ab3hLz7X/8YMwHJ0/GHB6xWvac3sqVMT/0wu0xH7z8YMxff8F1jdnsYDiuffeTfyXmF39gPOa92/L9QP/YVMyrQT/nS2kx9yt1feqO4//hiT4AAAAUxKAPAAAABTHoAwAAQEEM+gAAAFAQgz4AAAAUxKAPAAAABTHoAwAAQEFyOSxLortiMua3/+7qxuztz/54XLt/Ib/29268OOabvnE85t17cpf4yFDzV27kcVvza185iPllI4dj/spLb4j59SsfH/Nqd/hdrD6Dez35vzq9/Nvm/IrRmPfPnWnMnrX+zrj2r+66OuZbbsyd0guHj8Z8Md2yg+P53Bqamov5Y7bmzt6N48difudCc1afaOnSPk3dszyKtHyHOi3dyId2NPdO/5NVP4xr51re++PHdsT8vR9/Ycw3fat5z7rrotzFvfVf7ov5y5bfG/Pff/aXYv6lbU+JeXXTrTmHM1nYN3orV8alB1+Uz/vJ19wX8zdvzufepl7z/cSxOt8Hbd/6mJg/+NTNMT9n/tyYd2+7N+aDk+Ge4HTfD7RcC9rXP/xzhCf6AAAAUBCDPgAAABTEoA8AAAAFMegDAABAQQz6AAAAUBCDPgAAABREvd4S6Izm6oqHXporb/718z7VmK0byjVWH30o19ls/h+5ZqvTVnsxPZ3Xj483ZqvuzO/90MKKmF89diLmv7r85ph/a+1TY95coMQjRd1SvdIf68X8oo3NFXg/PHJ+XLvxa/l31f6De2O+mPq8NnU/v3bvRK7Xu2j5/pg/ZfnOmH9p5RWNWduxwWnXy/vC1Jbma9dkt7nerqqq6pa5NTF/92deEPOL/vqhmFeHjjRG6+9fFZf+xxc8J+ZPvfwDMV/bcj9ydEe+pk/+dKQxq+fzngRLrRvu9RcuyRV0B5+f942rVuY63lumz4v5V+cuacxWDedK2weO5Zru6XPyfdbCZJ6BRoaNpqeSJ/oAAABQEIM+AAAAFMSgDwAAAAUx6AMAAEBBDPoAAABQEIM+AAAAFMSgDwAAAAVRVngadIbyx3rkpZfH/E/f+pcxf/LowcbsQ0cfF9cefE/u7lzxnVtj3j+R+zWrurlPuKqqqpqebozGDs7HpfN1/lxP1nn9Q/3VMR85Mhvzuu1v44zXaenDnl+Wf/tcMdT8HdtzLHdCr9rX0vs8yN2zS6rOx7ZlrHlPqqqqOm845wvj4fVb3htOt874WMy763PndfJ3UxfHfHxvJ7/A/nxuDaabj63bsueM/u2OmL9x4hUxn5odiflgfd5vV27e1Jj1d+6Oa6tBP+ewWJ18bnbGmvvij144HtduWLM35jcdaj43qqqqrrvlSTEfO/94Y7Z1bd5TNk4ei/ntK5fFvD+a78PquXwvv6T3BIt97/rh35c80QcAAICCGPQBAACgIAZ9AAAAKIhBHwAAAApi0AcAAICCGPQBAACgIAZ9AAAAKEguJufn6o7lTt0H3nBFzD/65nfGfPNQ7ua8aa65f/Ov3/PcuHbD52+JeX9qKuaL7pDsNP+2NDeZv45rhvKxzbcc28f2XRnz3sHmXtGqqqqFmHJGaPkO1P3cYVp387k3MTTXmK0cz13ag6HlMa9a3vu0CudlVVXV9PkrYn7Nsp/GfF03nz2DiUFjVs81f+bwcOgMD8f8iZubO93X9abj2nNGjsR8Yl/zuVFV/4DO6bDn1Qv5vJzclc+9vd84J+Ynt7Qc2yX5/WfWnd2Ybf1AXruw+7783kvZxc2jw/BIY3RyQ77eL6tzvufmfO6tui2vP9Rtvh859/y749rNYwdjvnPv2pgPTef7jXre3fap5Ik+AAAAFMSgDwAAAAUx6AMAAEBBDPoAAABQEIM+AAAAFMSgDwAAAAUx6AMAAEBBcnH5o1hvcrIxu+fNj41r3/ea98b8gqFezK+fHYv5773/DY3Z5o/fGtf2T5yMeatOS9d3Sx93d2VzH/f+y/Pafp3zQ4OWz/XOC2K+4/BdMde7W76F0fz93rZsX2O2ZSJ3y35
"text/plain": [
"<Figure size 1296x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x288 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x288 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x288 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x288 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA/oAAADoCAYAAABfEJ+sAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAc5ElEQVR4nO3dabBe910f8PM8z920XN+rxZIlb7IlWbKVOLFjnOAAccli2hAaaAmkNKWEspWmMCx9UZjJtEynHabANIWUYQqdIW06JQbsNIFshCxOYidKYie2vCi2bEuWZK33Sle66/Ocvkj7okzO9xhfO9L9+/N5+/X/2XTO/5zfPTP+duq6rgAAAIAydC/0BwAAAABeOAZ9AAAAKIhBHwAAAApi0AcAAICCGPQBAACgIEMpfGP3h/0v+eHb4OODD3Qu9Gd4ruwL8O1hXwD+JvsC8Dc17Que6AMAAEBBDPoAAABQEIM+AAAAFMSgDwAAAAUx6AMAAEBBDPoAAABQEIM+AAAAFMSgDwAAAAUx6AMAAEBBDPoAAABQEIM+AAAAFMSgDwAAAAUx6AMAAEBBDPoAAABQEIM+AAAAFMSgDwAAAAUx6AMAAEBBDPoAAABQEIM+AAAAFMSgDwAAAAUx6AMAAEBBDPoAAABQkKEL/QEAAC6UzvBIzLtr18S8Xlhofu1eL795a97yPGZhMcb10lJjNpibz6896OccuDh1877SGW4e/9r2rLTfPRd1/0XcV+r6xXvtFcoTfQAAACiIQR8AAAAKYtAHAACAghj0AQAAoCAGfQAAACiIQR8AAAAKYtAHAACAgjQXKQIAXOw6nRgPXbY55vO7t8b87BWjMT/22uZe6JF1c3Ht1vXTMZ+eHYv5UG8Q89PTaxqzka+vjmsv/8z5mPfu3x/zwblzMQe+tc5o3nO6114V82PftTHmJ1/1/LvsO2N5bX2+F/PJfXn0vOSppZivfupMY9Y5fDyuHUyfjXm9uBDzlcgTfQAAACiIQR8AAAAKYtAHAACAghj0AQAAoCAGfQAAACiIQR8AAAAKYtAHAACAguQyw5K19O52hoYbs+6q3GvbWTcR84Vtud9yYbz5vauqqsaOzTZmvdMtvbWnpmI8mMnr68Xcb1nVudO3quucA99ay54VOe9YyVqO/d6G9TGfuSV3Tj/9d/Pbv+07vxDzt0/e15htHcrXzKP93Dn9xGK+X3hyIefn+8193BOvPB/XfvANr4j57G/fEPOxjz0Q8xI7q+E56ebzvnf5lpg//LMbYv79r90b89n+SGP2mSe3x7ULZ5r3lKqqqsnLm3vuq6qq5i7NM86ZuTyajjzevN9f9ZHm71VVVdV96EDM66XFmK/EeylP9AEAAKAgBn0AAAAoiEEfAAAACmLQBwAAgIIY9AEAAKAgBn0AAAAoiEEfAAAACpLLCleyto7Klt7d2Vdta8ye+Z78s93yukdi/vNb7o75lUO523aubu4UnhrkDslPn9sd8/d+4Xtjftkn8++6/t4jMR8cO9GY1Qu5v7Lu92Pe6S6jZ7yqqnrQ0o9ZD0K28ro1uci0dIV3hnL3bNJ27lSDlnwlW+bvWmKv7krTHc29zZ2xsZif35ivW2941ddi/vbJ+2J+zXDzteELc/le47eeelPMH9+3NeajJ/J3m98+15j94J7749ofu/zemL/7h94a8xsezp996YknYw6l6k1cEvP9/2xLzH/7770vr5/fHPM//NM7GrNr7pqOa3vTx2Ner8r79fSeNTE/+p0xrhava56RnpldG9deOXN5fvF9+3Ner7x7JU/0AQAAoCAGfQAAACiIQR8AAAAKYtAHAACAghj0AQAAoCAGfQAAACiIQR8AAAAKkgvhV7DeJblL8dQd22O+8LbTjdl7brgrrr1l9FTM13VXxXypyh2Ui6HH8eqWf9GdQ1+P+a7bj8T8j6777pg/tj3/rlf81WRjNnzgaFxb9XJfcH/Tuph351v6sBeXYjx4+pnGrG5ZW3RPOc9NS597b30+fqv1kznvhr/bHjsZlw7ON/fSVtVzOL7r5h7xb+bL6Jrv5vO+O5b3y27L79rfPBnzoWO5U7h/9FhjVi8uxLU8N/VSPv7q2dmYrz6R99/PPnVtzIe7ef2nn26+7l36h6vj2jVfeTrmu88/HPNqOF/0B9c290b/2U+9Kq79jtcdyPmunJ++8qqYdw88FfNl7RtwgXWGms/NqTt2xbV///vujfm5Qb7u/dGdd8T82v/UvK/0p8/EtS13A1Wnm+91Jg7mPXH01M6YH3h78++68fWH49rThy6L+boDYzEfnDsX84uRJ/oAAABQEIM+AAAAFMSgDwAAAAUx6AMAAEBBDPoAAABQEIM+AAAAFMSgDwAAAAVpaV2/eKV+yqqqqvrqrTE/fsd8zH9z9182ZluHcq/yXEv36735rau7pm6N+dRicwfljWsPxbUTvdwB+dnp3O358NHNMR8/kr9771zzl6/H18S10zdtivmxV+XuzuGZlh7zuRhXV97dvL5++pm4djCXe5gpQKfl+Jq4JOaL1+fO6Sd/YFXMu4vN2ZpDl+a1LXXvI+fyeb3qeHjzqqp6Lcf/wiXDjdmztzZnVVVVwzedjvkrN+dzc66fT/wv7csd69f/VnPv7uDJg3FtPd9yMaCqqqqqBy196i3n3qoj52O+9uPjMX/oyI0x33Z/8zHWP/poXLu01NZK3aJt31lsfv3Nn7khrr1rz00xn+vnc3NxTb5PG+v1Yl4v97eBC6i7tvme9sgb87H9xksejPnvH7495tf8yYmY96emmsOWGaZNPch5fybPIaseORrz3ukrG7PvuOmpuPaul2+J+foPr9ixuJEn+gAAAFAQgz4AAAAUxKAPAAAABTHoAwAAQEEM+gAAAFAQgz4AAAAU5OLtEWipjOmMjsZ8YWNzBV1VVdXExMzf+iP9P3N1roT5l0++JeaP/+nOmK9/JHdddULzxQNbcw3QoOVffOMD+XfZcehYfv2W2oyqH2q2tl0Rlx55c/5d3nnT52P++PlcMXbPp14W88FEOKbUAL00hH2pt35dXHr2dfm8n/4nZ2L+a7v/IubXjjSfmwcXN8S1a7q55m3XcD7ve2lTqqpqsuVPyqs7zXvqaCdXeHWrfK1YqnK131ydz90HtuZawx8f/HRjdsNv5Fq3pWcOx5z/q62vqZMPsN6pfF3bdNez+e3P5eva0uxsWLy8qqpWLa8/mG2ujxw/mM/7h4/nOt3Vo/ma3F2T/13GWv7dYEXbuL4xeu3134hLRzr5uvXg53fEfMehh2L+ou9LySB/t8GpXJk7sb+5inj49fm16+GW791S+bkS2WUBAACgIAZ9AAAAKIhBHwAAAApi0AcAAICCGPQBAACgIAZ9AAAAKIhBHwAAAArS0qp+8eqMjca8dz53I88t5G7m4U7z+n3zl8e1D3xle8x33jMd8+6h4zGvFhYbo7G8sqpT329VVYPw2lVVVUst/ZdtOkPNh9zZG3IP+W+85s6Y7x45EvP3Ld4W85Y67qp7urmLud9f3u/CRaKTD4Lu2rWN2Ym37Ipr9/zsgzH/lcs+FvP13XyMDYfPfsNw7gEf747EvFvl/baty753AfuyBy19wYstHe0PzF4d87HDzXtafTb3t/MctXXFT+Vraufs2by+5brX1vt8UQvH99DUXFx65tSamK+7It9PzK7K532nl/O65Z8FLqhu7lyfvnlzY/ZPN34yrj1X52vy5MMxruqFhfwfpHudlv32xVa33E+vPta8pz15fkNcOxht+W4t94ArkSf6AAAAUBCDPgAAABTEoA8AAAAFMegDAABAQQz6AAAAUBCDPgAAABTEoA8AAAAFaS4AvsjVLb233aXcjby0fzzmZ1++qjFb38vdyHtuejLmx+/bFvP1z07FfDB9pjGrl5bi2rZ82Vo6KHtXXdGY7flXX4trbx49GPPPzu6I+Uc/eGvMd37gRMwHTz3THF7g3lFeGJ2R3F07/eY9jdlt7/pSXPtTGz4b84nu8rq6F8Mx2PbKi/35mI918t+ERzv5UjJc5b7hbtW8byy1fPq5Ou9pX5ibjPm7vvi
"text/plain": [
"<Figure size 1296x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA/kAAAEECAYAAABz1vTiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAjTUlEQVR4nO3dd5geZbk/8DvJQiABpBOaJAYiRRGliwUVlQuk2Q7Wg1hAEQ9iOQoq4LEdARVEKUcUFRURRaUKgqD0LkqHEER6b4FAkuf3x/Puj2XZuXezm81uhs/nuuYK+37nmXlm3sJ7z8w7z5hSSgAAAAALv7Ej3QEAAABg/lDkAwAAQEso8gEAAKAlFPkAAADQEop8AAAAaAlFPgAAALSEIh8gt0tElIbp4RHrVXVMRPx7CO2nRMQJUbfjiYj4S0RsNORejbxzOlNmckTsHxEvGcZ+7BURbx/iMo6JiBmDaLdB1O1bdojrb3JkRJw5TMserTaI4d2nQ1l/6WQAoMgHGKB3RcTmvaatRrRHQ7NcRJwXES+LiN0iYufO43+JiHVGqlML0OSI2C9Gf5E/WBtE3b7hKEjHRMR2EfH7YVj2aLZBDN8+Her6N4+IHy3Q3gAwanWNdAcAFhJXRcTNI92J+ejjEbFSRLw+nt2usyNiekQcEBHvXgB9GBMRi0TE0wtgXcw/m0XEyhHxh3lsNz4iZs3/7oxK46K+vmcvoPVdtIDWA8BCwJl8gPljl6iXzL4u6hnOxyPigYj4QUQs3mvelSPiZxFxf9Si5+qIeH8fy5wSET+PiLs7802PiEP6mO+VEfG3iJgZETdFxO4D6O9mnXl7Hrh4orOct8XwHASeERHHRsSuEXF91OJ+2072ioj4Y0Q8FBFPRsT5EfHaXu03jvrzgn935rkhIr4Rz9+//dky6hULEfWS8+6fX2zZY56PRsTfI+KpqM/T0fH8M6j/FRHXdfryUERcFhE79djWNSLifT2Wf0w//XpTRFzRWectUa+w6MsBnfke6fTt7KjPZ7ddIuInnf++qcf6J3ce+2REXBgRD0b9qcZF8ezzMBA7Rt3W7Kci+3fW+bKI+FPU98PxnWxCRPxvRNwa9TVwa0TsG8//TrJCRPwwIm6P+vq/Per7YXyPebbubMuTUffH7yPipb2Wc07Uq1a2irrfZkbEPzvb0dO0iDgxIu6N+hz8KyJ+E/W9sEvk+7RExNcj4gs9tuvl8eznQvd83fbvPN5TV0T8d0Rc21n/fRFxekSsPcD1799reQtq3wAwyvhwBhiYcfH8z8y5namnY6MWMz+MiE0i4isRMTHql/To/Pe5EbFMROwTtXB5f9TiZUJEHNWZb0pEXBL1S/d+Ub/Yrx4Rb+m1vqUi4pcR8b2I+GpEfCgiDo9aAP8lms2Jvs+gz4paNE/tLGN+e0PUy44PiFowzIiIV0U9uHBl1OJ6ZtQDFX+OiFdHxOWdti+OekXFMRHxWESsF3X/viSe/bnBQFwREXtEPQDzqYi4tPP4tZ1/vxURn4mIQyPicxGxakR8LWrB+uqo++59EXFw1H3+t6j7bP149kDAThFxatQDBft3Hrsv6dM6nfkv62zL+E67JTrr62nViPhu1CJ7YtTXz1+j3k/h6og4pdPfL0X9mUl3MX5X59/JUS/tnhH1Nb1dRJwcEdtExGlJH7vtEPX1OhB/iHqA5H+jvle6ohb960bE/0TEP6IeoPhy1H33mU67ZSLigs5jX+ts14qddS8a9XW6dWdbz46I/4i6r74atWjdICLu6NGPqVEPkH0z6oGRz0Q9YLR2PHug6+SoBz0+3pln1aj7ZGz0v08j6nt8ekR8NuoBszujHrwaqOOiFtffi/raXyzqQcOVB7j+nhbkvgFgtCmlmEwmk6l52qU0O7mP+Y7o1X7fUsqcUsq0zt+f7My3Za/5/lxKubeUMq7z989KKY+XUlZJ+nZMZ1lv6PHY+FLK/aWUo/rZrm+XUmaWUpbr8djYUspNnWVuPgz7ckZnnZN6PX5WKeW6UsqiPR4b13ns9w3LGlNK6SqlvL+UMrfXdpzTmbK+bNnZzq16PT6583x9pdfjW3Tm37Hz92GllCsGsL3HDnDf/KLzvE3s8djqpZSnO8tpajeusx9uKKUc0uPx7tfjmv2sd2yn/RmllD8MoJ9rd5a7Xj/z7d+Z7796Pf6BzuOv6/X4vp1tXbHz91c7z8Mrk3VcVurrtavHY1NKKc+UUr7T47FzOo+t1eOxFTvL36fz9/Kdfm2frC/bp6WUcmcpZfGGNpMb9k/332/s/P2pIax//xHcNyaTyWQaRZMjsAADs1PUy8V7Tnv1Md/xvf4+LurZrk06f78u6lm0c3rNd2zUy5PX7fz9lqhnz+7sp18z47ln7GdFPev/4n7aHdHp18+inslbOeqZ6ymdvPcVCj11X9XQexrXzzoj6qXhd/f4e/Go9wX4TTx7prcr6u+Z/xx1f3VbKuoZ4VuibuczUc8oj4mItQaw7oF4c9T98ot47rZdHBGP9ujPpVHPiH4/6qXOE4a43s2jnsl/osdjt0f92UJvW0V9zh+I+pvvZ6JeTt37UuwmG0Z9bd3To/2bB9h+p6hnd68Z4LpO7PX31hFxW9Sz9D337xlR78/Q/bODt0Tdx1c2LHdi1CtAfh3P/d37rVH32et7zX9TZ+p2b2fqfp88EPUs/LeiXk0ymNfT6VEvjR+Mt0S95P7/Btm+p9G4bwBYgBT5AAPzz6iXUvec+roR3z0Nf6/a+XfZ6PsS27t75BH17vcDGR7voT4emxX1Ut/M9KiXnG8YdTvujFpofreTN10GHBFxVtTCsPd01gD623u5y0Y9OPDlPpb3yaiXbXf/v+onUS/jPzRqUbpx1MvuI/rf3oFasfPvzX30Z6moz0tEPTjy8YjYNOrl5w9GxO/i+b+9HqiV4/mvnejjsVdFPRjweER8OGpRvHHUnwUMZB+sHvV5WjYi9oz684ONoxaoA2m/Y8zbXfV7P98rRr1XQe99e0knX67Hv9nrf5moB3ea3ku975/wYB/z9XyflKivqcuiXrZ+Y9T3yMeTPvSWvWf6s1ynj4M9SNDTaNw3ACxAfpMPMH+tFM89y7lS59/u38A+GH2fMZ3U+feBzr/dv3sdTr+NWrBNi/r7/Fui/p7/9qg31mqyW0Qs2cfjjw1gnb1vNvZw1DP4P4haOPdlbtSCY4eov1PvefPBlw9gnfOie/+/Jfo+gNKdl6hjxR8Ztah6S9Tf6P86auE/r+6KZ18rPfV+7B1Rz86+PWpx3G2ZqPuyP1tHxIuijp7Qs4geyJUIK0c9ILD3AObt1vv5fiDqGeWm0RtmdP7t7/X/UGfZk/rIJsWzz9O8mB4RH4xaIL8i6kGmH3b6NJB7FfTe1oh6k7qIeh+Bnpbr9ff9UYvvxWPohf5o3DcALEDO5APMX72Ll52jFqndZyrPjYjVImKLXvO9N+olstd1/j4j6l3uVx6ebv5/czrrvCUiVol6k67D+2lzQzz/qobLYnA36uu+o/8rot4Qr6/lRtQb0Y2L5xa2Ec/e0HBedQ/l1vvO/GdGfb5e3NCXW/tY1kNRi/vjo96cr+c6Bnrn/wuj3shsYo/HVo/nv04mRH3OehaUb4zn/zyjafu6i/me+3FaH+vpy45Rbx544QDmbXJ61O16PPrev/d35jsj6k9cmm5c90TUGzK+K577M5E1ol6dcO4Q+lii3uCx+2BG93PatE8zt/VaRkQ9wdL7BppnRC2gP5Isa6DrH4l9A8Ao4kw+wMBsEBHL9/H4ZfHc371uExEHxrNFyn5Rz1Df2MmPiTr02u+iDhv276iXzb856hny7jup7xd1WLMLog4Td3PUM5tbR9/D7c2rRSLi21G/8D8a9U71X4x6FcLB82H582LvqHeH/1PUO7HfFXVfvypqkfKFqEOAXRT1zt93RS0Gd43BX+1wY9TnbdeoV1fMinqQ4paov/s/LOoVF+dGPRu7etTn6EdRfw9/VNQrFy6MenBmWkR8IOrz3u3aqMMAvi3qZdL3x7Nnqnv7WtSi7Iyor59Fo45A0Pty/dOj3gvimKg/X5g
"text/plain": [
"<Figure size 1296x288 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x288 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Training and testing the VAE\n",
"\n",
"epochs = 10\n",
"Trainer = VAEt.Trainer(model, optimizer, loss_function, device, train_loader, test_loader, epochs = epochs)\n",
"_, codes = Trainer.train()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"for x, y in test_loader:\n",
" x = x.to(device)\n",
" x_hat, mu, logvar = model(x)\n",
" pass"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Generating a few samples\n",
"\n",
"N = 16\n",
"z = torch.randn((N, d)).to(device)\n",
"sample = model.decoder(z)\n",
"display_images(None, sample, N // 4, count=True)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA/oAAAD4CAYAAABcxp03AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAYEklEQVR4nO3deZRedZkn8Kc2KmwSEpaEGJasuMDIElYVoyLDMkCLNnszc0AMLQ40tDo9Q4PAaPeogGERpGEUkUGk0WmDA0I3uHQgCwGUgSwQbAgIQQJCQiBU6q35I3jOgN7nSr1Veat++XzOyQHOl9+9v/eF99b91q3kaevr6wsAAACgDO2t3gAAAAAwcBR9AAAAKIiiDwAAAAVR9AEAAKAgij4AAAAURNEHAACAgij6AAAAUBBFvzyTI+K1iPhuqzcCtNxPY931YNUbvxa3dDfAUHFMRCyMiFciYmlEfKC12wFabNVbfvVGxGUt3RFN62z1BhhwV0TE/FZvAhgyTo+Ia1q9CWDIODAi/kdEHB0R8yJibGu3AwwBm/1/f79pRCyPiJtbtBcGiKJflmMi4ncRcU9ETGrtVgCAIej8iLggIua88c9Pt3AvwNDziYh4LiJ+0eqN0Bw/ul+Od8S6L9xnt3ojwJDydxHxfETMjogPtXYrQIt1RMSeEbF1RDwWEU9FxOURsXErNwUMKSdFxHcioq/VG6E5in45LoyIayNiWas3AgwZX4iICRExLiKujohZETGxpTsCWmnbiOiKdU/sPhAR74uI3SLinBbuCRg6to+IAyLiulZvhOYp+mV4X0R8NCIuafE+gKFlbkSsjIg1se6L9uyIOKSlOwJa6dU3/npZRDwT637a5+JwXQDW+YuI+NeI+HWrN0Lz/B79MnwoInaMiCff+OfNYt2P5707InZvzZaAIagvItpavQmgZV6MdT+u70dygT/mLyLi71u9CQaGJ/pluDrW/Tju+974dVVE/DgiDmrdloAWGxnrrgEjYt03dY+PiA9GxE9auCeg9b4VEZ+NiG0iYsuIODMibm3lhoAhYb9Y91v9/Gn7hfBEvwyr3/j1e6ti3ezs37ZmO8AQ0BUR/z0ido5183AXRcSREbG4hXsCWu/CiNgqIpbEunuF70fEl1q6I2AoOCkifhDrfssfBWjr6/PTWwAAAFAKP7oPAAAABVH0AQAAoCCKPgAAABRE0QcAAICCpH/q/oHtn/Qn9cF6cGfj5mEz29x1AdYP1wXgrVwXgLequi54og8AAAAFUfQBAACgIIo+AAAAFETRBwAAgIIo+gAAAFAQRR8AAAAKougDAABAQRR9AAAAKIiiDwAAAAVR9AEAAKAgij4AAAAURNEHAACAgij6AAAAUBBFHwAAAAqi6AMAAEBBFH0AAAAoiKIPAAAABVH0AQAAoCCKPgAAABRE0QcAAICCKPoAAABQEEUfAAAACqLoAwAAQEEUfQAAACiIog8AAAAFUfQBAACgIIo+AAAAFETRBwAAgIIo+gAAAFAQRR8AAAAKougDAABAQRR9AAAAKIiiDwAAAAVR9AEAAKAgij4AAAAURNEHAACAgij6AAAAUBBFHwAAAArS2eoNlKhj663T/OkTJqf5yt1e6/e5H/3INWl+/coxaX7Dpw9N8/afPfC29wQAvH1PnL9fmn/7xMvSfFp3W2XWiL50bXtUr42I+Mbvdkrzmb+cnuZ1Jn69tzqc91BTx4bhrGPqpDRffkDeQ16YtrYyW3LIVenas5/ZJ81nX71nmm++rPrcERHdt81Pc94eT/QBAACgIIo+AAAAFETRBwAAgIIo+gAAAFAQRR8AAAAKougDAABAQRR9AAAAKEhnqzcwHHVsnc+nHHFLvn7exJlpPndNV5qf/cifV2Z1c3GP3fzpND/su5en+bSfnJHmU065L81hQ1V33Viz6/Zp/uuT8s92ZuTIV9L86J3uT/OzRi3q97kjIi5+Yec0/+bdH67Mdr5iRbq2d/Fj/doTDAUrTt43zR865bI0b0SjJq9+nlO3tu5Z0Kkj88/ejAMeT/O68y9//5rK7NAFp6Zrt/uzR9IchrPlB+T3E784N+8ZXW0dlVlPX2+69qKxc9K859zZaX7Agyekefdtaczb5Ik+AAAAFETRBwAAgIIo+gAAAFAQRR8AAAAKougDAABAQRR9AAAAKIiiDwAAAAXpbPUGhqNFF41P84UTv5nmD6zJv7/y2Uv/Ms3HfP2eyuzI8Ueka1e/Z2yad3/+N2k+/6B8NufixzdO8wsm7J7mMFz1Ts//3970/GVp/sOJVw3kdt6kveZ7uvWzuJtz5qh8pvVZRy2qzM7Yd/907a8P2CTNG6tXpzm00sdOz2dOt0dbzRHyz/Z5z+1Wmf3oe+9P15520qw0P3WLf0vzZvc+rqP6s33/Xtenaz9yxGlpvvE/zUtzGEwdUyel+fIDtk7zBV+8Ms17+jrSPPtsdrX1f+2fsn7Obt9L88bTfWl+4CkzKrPu2+anazdEnugDAABAQRR9AAAAKIiiDwAAAAVR9AEAAKAgij4AAAAURNEHAACAgij6AAAAUJDOVm9gqFp5zD6V2eKPXJGurZs5/akrP5vm2339npojVFu77Kk036gmb/t5PpP6sH88Kc1/9u9uTPNlf7tfZbbj1Y+la3uXP5fm0KyOrfPZtY/OHFeZ/fz9l6ZrR3V092tPG7pLtvtFmu9yzn9O853+670DuR1YrxqRz5S+4ncT0/yX/2F8ZTbuqfxe48dX7pTmP9zjwDSvc9jld6X5Z0YurcwaNXdaL+yc396O+6c0hkG1/ID8XuMX585M856+fFZ9T19vmmez7qfMOi1dG235NenhQ/OOlJ07on7vr3zmpcqs+7Z06QbJE30AAAAoiKIPAAAABVH0AQAAoCCKPgAAABRE0QcAAICCKPoAAABQEOP1Krznrx7q99rvvlw9ziYiYvw1C9M8HywxuBqrV6f5qON+m+Y3zqkePxYR8csZl1Vmx37soHTtK4dsnuaNlSvTHOrG5824Z3aaH7RJ9ViX9tg4XVs3DqrOwtfz9V/5zb+vzObOm5qu3fKRtn7t6fdefFc+bueRo6s/981qdOfnhlZa+5E90vz8ba5O8/bIP5uXPzg9zSc+9UCaZ3pffjnNO+6+P83Xfjh/7ftsXD0+L6LutefPqUY877rA0PXCtLVpXjeCri6vs8u1p1dmU85tbiTt7heckeYPn9zc+L05u32vMpv0zU+na6d8en6al8gTfQAAACiIog8AAAAFUfQBAACgIIo+AAAAFETRBwAAgIIo+gAAAFAQRR8AAAAK0tnqDbTKipP3TfNb33l5ZTb7ta507S2H75fmvS8+nuZD2crpO6f58ZvflebZXNwnXhqVrh21ckmaQ52XPzghzQ/a5P+sp538oXfdOSPNd/7KyjTvfaT68zEp5vRrT7/XOXZMmv/1X89t6vjNGPlIPmccWqpmnHsjGjUHGL7PY544pTfNd+vOX3sjee1179voa5ubBQ6DackhV6V5T1/+2akzZdZpeX7u4H0+dqg5duPk/KJY99q72joqs4cPvSJd+2exV5qXaPh+BQEAAAD+gKIPAAAABVH0AQAAoCCKPgAAABRE0QcAAICCKPoAAABQEEUfAAAACtLZ6g20SvvHn0/zbEbr2Y98Il271aPlznt/6rB8vmUzM4FfXDg6XTmq5shQZ4t7nkjzx3t60nxSV3dl9lLjtXTthy/5XJpPvvieNG9uqm6ud/ruab7rRQ+k+VGb5dfTuu8pt0dbZfaun56arp1oXjZDWOeq19N8ee+aNB/XsclAbme9GjPq5TRvb+K6MPWW09O1k2NumsNgW3PwtMqsq+3Bpo69/4PHpPmUGfOaOv5g2uf8/LM757zL0zy7LnS1daRrs/8mERHdt81P8+HIE30AAAAoiKIPAAAABVH0AQAAoCCKPgAAABRE0QcAAICCKPoAAABQEEUfAAAACtLZ6g0Mls53jkvzW3f9ds0RNqpMNr1m5Nvez1DRse02af7c4RPTfO7HvlZzhur3LSLiR69sWZlN+v6qdG1fzZmhztpnnk3zM4+Zkea
"text/plain": [
"<Figure size 1296x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Display last test batch\n",
"\n",
"display_images(None, x, 4, count=True)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Choose starting and ending point for the interpolation -> shows original and reconstructed\n",
"\n",
"A, B = 1, 14\n",
"sample = model.decoder(torch.stack((mu[A].data, mu[B].data), 0))\n",
"display_images(None, torch.stack(((\n",
" x[A].data.view(-1),\n",
" x[B].data.view(-1),\n",
" sample.data[0],\n",
" sample.data[1]\n",
")), 0))"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA/oAAAD4CAYAAABcxp03AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAhkklEQVR4nO3deZBl51kf4PfeXmfpmZ590zJaxlpsy5ZteYu8yAsQs9ihsLHZHMoQiq0CSaVwFVApQkwCoUwVBgKEgNmSMouTgI0xjh3hRZZkI8uSLWm0WLPvM92zdPf0cu/JH2OqYsJ5P3BrfFufnqdKBdSPr/tMzz3vPW9f2b9O0zQBAAAA1KE76AsAAAAAnjoWfQAAAKiIRR8AAAAqYtEHAACAilj0AQAAoCIWfQAAAKiIRR8AAAAqYtGvz56IuBgRfzDoCwEG7s64NA8ufPmfvQO9GmCleGtEPBwRMxHxRES8YrCXAwzYhb/zTy8i3jPQK2LZhgd9ATzlfjUiPjPoiwBWjB+JiN8a9EUAK8brI+LnI+LbI+LeiNgx2MsBVoC1/8//viYijkfEHw/oWniKWPTr8taImI6IuyLi+sFeCgCwAv1MRPy7iLj7y//34QFeC7DyfFtEnIiITwz6Qlge/+p+PdbFpTfufz3oCwFWlP8QEaci4lMR8erBXgowYEMR8aKI2BIRj0fEoYj4lYhYNciLAlaUt0fE70VEM+gLYXks+vX42Yj4rxFxcNAXAqwYPxER10bEroj4zYj484i4bqBXBAzStogYiUuf2L0iIp4fEbdGxE8N8JqAleOqiHhVRPzuoC+E5bPo1+H5EfG6iPilAV8HsLLcExHnI2I+Lr1pfyoi3jDQKwIGae7L//M9EXE0Lv3bPu8OcwG45Hsi4pMR8eSgL4Tl85/Rr8OrI2J3RBz48v+9Ni7963k3R8QLBnNJwArURERn0BcBDMxUXPrX9f0rucDf53si4j8O+iJ4avhEvw6/GZf+ddznf/mfX4+ID0bE1w/ukoABm4xLM2A8Lv1S9zsj4pUR8eEBXhMweL8TET8aEVsjYkNE/FhEfGCQFwSsCC+PS/9RP/9t+5XwiX4dZr/8z9+6EJe6s08O5nKAFWAkIv59RNwYl/pwH4mIN0XE3gFeEzB4PxsRmyPi0bj0rPBHEfGugV4RsBK8PSLeH5f+I39UoNM0/u0tAAAAqIV/dR8AAAAqYtEHAACAilj0AQAAoCIWfQAAAKhI+t+6//rum/039cHXwEf6f/y06TY3F+Brw1wA/i5zAfi72uaCT/QBAACgIhZ9AAAAqIhFHwAAACpi0QcAAICKWPQBAACgIhZ9AAAAqIhFHwAAACpi0QcAAICKWPQBAACgIhZ9AAAAqIhFHwAAACpi0QcAAICKWPQBAACgIhZ9AAAAqIhFHwAAACpi0QcAAICKWPQBAACgIhZ9AAAAqIhFHwAAACpi0QcAAICKWPQBAACgIhZ9AAAAqMjwoC+AZ5hO56s/2zRP3XUAK8dy5kKJuQH1We7MMBfgmac0NyqcCz7RBwAAgIpY9AEAAKAiFn0AAACoiEUfAAAAKmLRBwAAgIpY9AEAAKAiFn0AAACoyPCgL4Cvse5QHo+OpHlnYiL/+hvX5+cXl9rDuYvp2f6583leOB9Nv5DX158J/yCFbtnOUD43OmNjad6dzOdCjCRvRb38vm1mZ9O8f+5Cfr7XS/PoF/LsZ2emULPS3BjOnye6a1bl51cl+XD++NosLOT52XN5vpQ8q8Q/YG6kh80FnsGWu4esXdOejY9/VZf0t/qluVCaK9mOU/zmy5gpCZ/oAwAAQEUs+gAAAFARiz4AAABUxKIPAAAAFbHoAwAAQEUs+gAAAFARiz4AAABUJC8iZSA6I6NpnnbPbt6Ynj33vK1pPnVD3m85e81imm/bNZXmcwvt1958fGd6dvs9eV/28CMH0vyy92nD5bSM7tnOxER6tnfN9jSfumFtnt+UxjF209k0X7fqYmt2/MFt6dnN9+ed1Bs/czLN48SpNO7PzKV5s5TMxELPuD5tlq3UZT/UPjc6Y2Pp2e62LWl+cfemND91S/71L7wov7e2bmrvtD52IH/WmXg07+LeVnieGN1fmAvT+Uxr5tr/bE2/cN971uByS54nOiP5athdty7Nmx35XJi6ZTLNj9/eT/NtV51pzU5P588qcSjZnyJi62fze3PisfNpPnz0q58bzVI+y5ulpTRv4xN9AAAAqIhFHwAAACpi0QcAAICKWPQBAACgIhZ9AAAAqIhFHwAAACpi0QcAAICK5GWJfHUKfddDG9an+czLr0/zA9/S3vP4xhd8Lj376nUfSfNu5P2Vs/28F3e8m3RKF77+b06+Kj17fHp3mm/dN57mcWEmz0vVtVlfsT5sSgp9191Veb9rPGt3Gh9+7WRrNnZH3u36lt13pfnOkek0H+/k9/2W4fY+7IiINZ2F1uxDO29Jz/5uc0eaT+7Nf67dE2kc0c3/3qKT/L68yecplHRGRtN8aOe2ND/3wp2t2eHX5t/79hc8nOa3rcufN3aOTKX5ruE8X9+db83uuWZ3evZdE29I8/kn8p/r6MH8vu8U5nkzlPSUFx42jA2KSnvG+rzrvn9tMhdek+8o46/KnyfecOWDaX7r6v1pvnv4dJpvHGp/3nhoYVN69pe2vT7Njx+8Ks0nnkjjiOHCWj0y0hoVnjSiWVoq/H/8/XyiDwAAABWx6AMAAEBFLPoAAABQEYs+AAAAVMSiDwAAABWx6AMAAEBFLPoAAABQkULh3zNXJ+lC7Bb6Kc/dsSfNR37gWJr/8NXvS/OXjx9uzUYL3a4PLUyk+funXpjmX7qwOc2vWpP34r544kut2ZbxC/n33lFomRy5zC/nprm8X5+VL7m/umNj6dHmOden+SPfn/e9v+3F96T5L25ozzd2897mg7382u+azWfavov5XFg71N6HHRHxojVPtma9Jv999NLa/M8Wvfy+bXqF0up+4b5Xek0ie5aIiBjasT3ND7w173Xe/HXtzwMRET95zXtbs2tHzqRnZ/v5te9byjurDxY6rfcv5HPj+rH2Z6WTS/mzTL+fPy+MnC902c9ezPOFhTSPXvvXb0ozhfoVntWHCnvG+TtuTPNDb8jfl370ZR9tzW5fszc9u6aT97nPNPncONnL792/uXh1mm8ZPtea7V/Ykp49ej7/3uuO5nNh6PT5NG/OFfJsbiQzYzl8og8AAAAVsegDAABARSz6AAAAUBGLPgAAAFTEog8AAAAVsegDAABARSz6AAAAUJHLXDy+cnVGRtO8ufWG1uyRH8rPvveVv5HmN47MpPlI5P2ax3rtv5/5wIXnpmf/81+/Ls233pV/7zXHFtP87j270/yjdzyrNdu4Lv+5rDpV6J5dKvVpF3J92HSH0nh4147WrNR3/b1v/8s0/9WJB9J8Yzf/vex0v/31+5HZ3enZd33+DWk+ftfaNN/weD4XZrblbzV/ePtLWrOJjflcWPdooaf8bH6+d3E+zZvldNs2+rKrUOq8nmjvZp55Vd53PfpjR9P8Pbt/Pc1vHs17m2eSzvaHFvMe+/cceG2aP3FvPvO23J+//nsj+c/19C3J2Y35zFl/f/6cNv7kkTTvnWvv6o6IaBbzLnHPE3TGxtqzPdekZx/+4XVp/hOv+kCaf/2avWk+lNx6B5dWp2d/b/q2NP+TL96a5pMfH0/z0Qv53Di3u/1ZaGEyPzvxZBrHuvuPpXn/2Ik0b5byudAk8/hyzQyf6AMAAEBFLPoAAABQEYs+AAAAVMSiDwAAABWx6AMAAEBFLPoAAABQkadvvV6h7qYzPJLm/RffnOarf6698ubea9+fnl3fzasjHl/Mr/0nD7wxzR+68/rWbNu9eRXUTZ8/nOb96bNpXqqo2/FEXtdzcPUVrdmxm9qrSCIidp3Oqyeamdk8L9brqcKqXqk+76pdaf7QO7e3Zv/rG96dnr1hJP/eJwsvz/906qVp/t/vbs+33pV/7+vuyStj4sT+NG4W8qqr1WvWpPnYuWtbs1PP3ZCe3f5o/r2bM1N5XpoL/WXU6/H0UKrPW59XXR1
"text/plain": [
"<Figure size 1296x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1296x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Perform an interpolation between input A and B, in N steps\n",
"\n",
"N = 16\n",
"code = torch.Tensor(N, 20).to(device)\n",
"sample = torch.Tensor(N, 28, 28).to(device)\n",
"for i in range(N):\n",
" code[i] = i / (N - 1) * mu[B].data + (1 - i / (N - 1) ) * mu[A].data\n",
" # sample[i] = i / (N - 1) * x[B].data + (1 - i / (N - 1) ) * x[A].data\n",
"sample = model.decoder(code)\n",
"display_images(None, sample, N // 4, count=True)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"set_default(figsize=(15, 4))"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"X, Y, E, losses = list(), list(), list(), list() # input, classes, embeddings\n",
"N = 1000 # samples per epoch\n",
"epochs = (0, 5, 10)\n",
"for epoch in epochs:\n",
" X.append(codes['μ'][epoch][:N])\n",
" E.append(TSNE(n_components=2).fit_transform(X[-1]))\n",
" Y.append(codes['y'][epoch][:N])\n",
" losses.append(codes['loss'][epoch][:N])"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABL0AAAFsCAYAAAApG8uMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB52UlEQVR4nO3dd3xUVeL///ekkqH3sKCAAoqAwicgTSkq2D4Cqz9B+Kpg2bUuCn5AEVfWdZG1UhTsipUPuIqgiBQNyAcQNgiIgIDSJCZZILSQTs7vD8jAkJxDaLmX8Ho+HmdJ7tyZOUleXOLZe2cCkowAAAAAAACAMiTC6wkAAAAAAAAApxqLXgAAAAAAAChzWPQCAAAAAABAmcOiFwAAAAAAAMocFr0AAAAAAABQ5rDoBQAAAAAAgDKHRS8AAAAAAACUOSx6AQAAAAAAoMxh0QsAAAAAAABlDoteAAAAOGMkJibKGOP1NAAAwBmARS8AAOALxhgWMwAAAHDKsOgFAAAAAACAModFLwAAAAAAAJQ5LHoBAIAzTmxsrB577DH9+OOP2r9/v/bs2aPvvvtOffr0KXb/Xr166dtvv1VKSoqys7OVkpKiBQsW6P777w/b7/zzz9ebb76pX375RVlZWUpPT9eaNWv02muvqVq1aiWamzFGiYmJqlOnjt5//32lpaUpMzNTSUlJ6tu3r/V+3bt314wZM7R9+3ZlZ2frl19+0XPPPafKlSsX2XfTpk3atGmTKlWqpDFjxmjz5s3Kzc3ViBEjSjTHSy+9VJ988olSUlKUk5OjrVu36rXXXlOdOnWK7Fv4GloxMTF6+umntXHjxtD8nnzySUVHRxf7HFdddZW+/vpr7dy5U1lZWVq/fr3++c9/Fvv1SFLVqlX1j3/8Q6tWrdL+/fu1e/durVixQqNGjVIwGCyyf2RkpIYNG6b169crOztbW7du1XPPPaeYmJgSfQ8AAEDZF5DEi2cAAADPFb6eVyAQcO4XHR2tuXPnqlOnTlq9erW++uorBYNB3XzzzapVq5aeffZZPfbYY6H97733Xr366qtKSUnRF198oR07dqhWrVq6+OKLFQgEdOmll0qS6tSpo59++kkVK1bUV199pZ9//lnlypVTw4YNdeWVV6pt27ZavXp1ib6OlStXqlKlStqzZ49mzZqlKlWqqHfv3qpataqGDBmiF154Iew+f/3rX/X3v/9dO3bs0IwZM/Sf//xHF198sa6++mqtXr1aHTp00N69e0P7b9q0SbGxsfr9999VtWpVzZ07VxkZGfrxxx/13nvvOec3YMAAvfnmm8rOztb06dO1bds2NW7cWD169FBaWpratWun3377LbR/YmKiunTpomnTpqlNmzb617/+pby8PPXs2VONGjXSF198oR49eoQ9x3333adXXnlF+/fv15QpU7R9+3Z17dpVbdu21dq1a9WhQwft3r07tH+DBg2UmJioBg0aKCkpSfPnz1dERIQuuOACXXnllbrgggu0ZcuWsPlMmTJFl19+uWbOnKm9e/fquuuuU5MmTfTee+9pwIABx/w5AQCAs4NhMBgMBoPB8HoUOtZ+w4YNM8YYM336dBMZGRnaXqtWLbNlyxZjjDEdO3YMbV+2bJnJzs42NWvWLPJY1atXD338l7/8xRhjzEMPPVRkv2AwaMqVK3dcX8fkyZNNIBAIbW/QoIHZuXOnycnJMQ0bNgxt79KlizHGmAULFphKlSqFPVb//v2NMcaMHj06bPumTZuMMcbMmTPHBIPBEn+PGzdubHJycsy6detMfHx82G1du3Y1+fn5ZurUqWHbExMTjTHGrFu3zlSpUiW0PTY21ixatMgYY8ytt94a2l6/fn2Tk5Njdu/ebRo3bhz2WK+++qoxxpg33ngjbPv//d//GWOMeeyxx4r9GcXGxhaZT1JSkqlatWrYz2jDhg0mPz+/yNfGYDAYDAbjrB2eT4DBYDAYDAajxIteGzZsMAcOHCiyoCLJ3H333cYYY95+++3QtqSkJJORkRG2YFPcePDBB40xxvzpT3866a8jLy/PNGjQoMhtI0aMMMYY8+STT4a2ffbZZ8YYY5o2bVrs4/3www8mLS0tbFvhotcll1xyXHN76aWXjDHGXHvttcXe/tlnn5n8/HxTsWLF0LbCRaYjF7YKR+fOnY0xxnz77behbcOHDzfGGPP0008X2b9q1apm7969JjMz08TExBhJ5r/+67+MMcb88MMPYYuEtlE4nyuuuKLIbX/729+MMcZcf/31nvfMYDAYDAbD+xElAACAM0SFChXUqFEj/fbbb9qwYUOR2+fOnStJ+q//+q/Qto8++kgvvfSSVq9erf/93//Vd999p4ULF2rHjh1h950+fbqeeeYZjR8/Xt26ddOcOXO0cOFCrVmz5rjnuXXrVm3evLnI9nnz5kmSWrVqFdrWvn175ebmqnfv3sU+VkxMjGrVqqVq1aopPT09tD07O1srV648rnm1b99ektSlS5fQZZ1HqlWrliIjI9W4cWP98MMPYbfNnz+/yP4LFixQXl5e2NdT+HFiYmKR/Xft2qUffvhBnTt3VtOmTbVy5Uq1a9dOkjRr1qzQJa4lkZSUVGRb4WWZVatWLfHjAACAsotFLwAAcMYofBH01NTUYm9PSUkJ20+SRo8erR07duj+++/XQw89pMGDB6ugoECJiYkaMmSIli9fLungQtWll16qv/3tb7rmmmt08803h7Y/99xzGj9+fInnmZaWVuz2wnkfOb/q1asrOjpaf/vb35yPWaFChbBFL9tzuFSvXl2SNHTo0GM+19GKe76CggLt3LlTtWrVCm073p9RlSpVJEnJycnHmH24I1/jrFB+fr6kgy9yDwAAwLs3AgCAM8aePXskSfHx8cXeXvjug4X7Ffrggw/Uvn17Va9eXdddd53efvttdenSRbNnz1aNGjVC+/3888+65ZZbVL16dSUkJOjRRx9VRESEXnnlleN6cfTatWsXu71w3kfOb8+ePUpPT1cgEHCOrVu3hj3W8ZwVdeRzSVKlSpWcz/Xdd9+V6GuKiIhQ9erVwxagjvdnVPiC9nXr1j3urwcAAMCFRS8AAHDGyMjI0C+//KK6deuqUaNGRW7v2rWrJBW5NK/Qnj17NHPmTP35z3/WxIkTVaNGDV1++eVF9jtw4IB++OEHPffcc+rbt68k6Y9//GOJ53nuueeqfv36RbZ36dJFkkJnl0nS999/r2rVqumiiy4q8eOfqO+//16Siv2aj6Vz585Ftl1++eWKjo4O+3oKPy78Wo9UuXJltWzZUllZWVq7dm3YnLp163bccwIAAHBh0QsAAJxR3nnnHUVEROj5559XRMThX2WqV6+uv/71r6F9Cl199dXFXu5WeEledna2JKlNmzZhl+kVKjzDqXC/koiKitKzzz6rQCAQ2tagQQMNHDhQeXl5+vDDD0PbR48eLUl68803Q2dBHSkYDKpt27Ylfm6XV155Rbm5uRo9erQaN25c5Pbo6Ghddtllxd73r3/9a+hSREmKjY3VqFGjJEnvvvtuaPuHH36o3Nxc/eUvf9H5558f9hhPP/20KleuHNpHOrhAuXDhQiUkJOh//ud/ijxvtWrVFBsbe9xfKwAAAK/pBQAAfOXIBZSj3X///XrhhRd07bXXqlevXlq5cqW++uorBYNB3Xzzzapdu7aeffZZLVy4MHSf//3f/1V2drb+7//+T5s3b1YgENDll1+uSy+9VMuWLQu9+H2/fv30wAMPaP78+frll1+0a9cunX/++brhhhuUnZ2tsWPHlvhrWLlyZejxZ8+ercqVK6tPnz6qWrWqhgwZoo0bN4b2/fbbb/Xoo49q1KhR2rBhg7766itt2rRJFSpUUP369dW5c2f93//9n6699toT+G6GW7dune6880698847Wr16tb7++mutX79e0dHROvfcc3X55Zdr+/btatq0aZH7rlmzRqtXr9a//vUv5eXlqWfPnmrUqJG+/PJLffDBB6H9tmzZoocfflgTJkzQDz/8oClTpmj79u3q3LmzOnTooLVr1+rRRx8Ne+xbb71V8+bN0/PPP6/evXt
"text/plain": [
"<Figure size 1500x400 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for i, epoch in enumerate(epochs):\n",
"\tplt.plot(losses[i], label=f\"{epoch}th epoch\")\n",
"plt.legend()\n",
"plt.title(\"Loss per epoch\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.colorbar.Colorbar at 0x1d2b8d23808>"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABC8AAAFsCAYAAADsRZNYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd5gV1fnA8e+02+v2BksHAZFml2LDllijGIxiT4wajSYWNFHyCzFqEksCMYnRqLFFY0nsnVixggpKr9vYenfv3j5zfn8sLHvZvVtgl6Wcz/PMo8ydO3Pu3d0zM++85z0KIJAkSZIkSZIkSZIkSdpNqf3dAEmSJEmSJEmSJEmSpM7I4IUkSZIkSZIkSZIkSbs1GbyQJEmSJEmSJEmSJGm3JoMXkiRJkiRJkiRJkiTt1mTwQpIkSZIkSZIkSZKk3ZoMXkiSJEmSJEmSJEmStFuTwQtJkiRJkiRJkiRJknZrMnghSZIkSZIkSZIkSdJuTQYvJEmSJEmSJEmSJEnarcnghbTPuuWWWxBCMG3atP5uiiRJ0m5F9o+SJO3rZD8oSbsfGbyQdpgQosvlgAMO6O9m7lKHHnooL774IrW1tTQ3N7NkyRKuuuoqVFX+qUnSvkT2j9uUlpZ2+j08/vjj/d1ESZL6gOwHt9F1nZ/85Cc88MADfPHFF8TjcYQQXHTRRV2+97zzzmPRokU0NTXR0NDA22+/zUknnbQLWi1Jux+9vxsg7fluvfXWjK9VVlbuuob0s5NPPpl///vfxGIxnnzySerq6vjud7/L3XffzeGHH85ZZ53V302UJGkXk/3jNosXL+a5555rt/7rr7/e9Y2RJGmXkf0guN1u7rnnHqDlM1dWVjJw4MAu33fnnXfys5/9jI0bN/K3v/0Nm83G2WefzQsvvMAVV1zB/Pnz+7rpkrTbEXKRy44sW/V3O3Z0ueWWW4QQQkybNm2n9+X1esXmzZtFLBYTkyZNal1vt9vF+++/L4QQYubMmf3+meUiF7nsmkX2j9uW0tJSIYQQDz74YL9/LrnIRS67bpH94LbFMAxx/PHHi4KCgrR9X3TRRRnfc+ihhwohhFi5cqUIBAKt60tLS0VNTY2IRqOitLS0378nuchlVy4yl13aZdqOHTzvvPP4/PPPiUQiVFVV8fe//538/PwO3zd8+HAefvhhysrKiMfjlJWV8fDDDzN8+PAOt1dVlR/+8Ie89957NDQ0EIlEWLlyJX/7298YNmxYh+8544wzWLRoEc3NzdTW1vLEE09QXFzc7c925plnkpuby+OPP85nn33Wuj4ej3PzzTcD8OMf/7jb+5Mkad+yN/ePkiRJ3bE394PJZJJXXnmlR5kml112GQC//vWvaWhoaF2/fv165s+fj8Ph4MILL+z2/iRpb9HvERS57JlLTyPqW6PMzz33nIhEIuLBBx8Uv/nNb8T//vc/IYQQq1evFjk5OWnvOeigg0QoFBKmaYpnnnlGzJs3TzzzzDPCNE0RCoXEQQcdlLa9YRjitddeE0IIsX79ejF//nzx29/+VjzxxBOipqZGzJ49u117nnzySRGNRsWTTz4p7rjjDrFw4UIhhBDffvutsNls3fpsjzzySMbsCk3TRDgcFolEotv7k4tc5LJnL7J/3LZszbx49dVXxaWXXipuvPFGcemll4r999+/339OcpGLXPpukf1g15+1s8yLjRs3CiGEyM/Pb/faIYccIoQQ4n//+1+//5zlIpddvPR7A+Syhy5b3XLLLR0u119/fdr2WzvqeDwuxo8fn/baH/7wByGEEPfff3/rOkVRxDfffCOEEOKss85K2/7ss89uPXEoitK6ft68eUIIIZ5//vl2JxSbzZZ20tvanlAoJMaOHZu27aOPPtrhcTMtH3/8sRBCiIkTJ3b4+ldffSWEEGLUqFH9/nOTi1zk0veL7B+3LVuDFx156623xIABA/r95yUXucil9xfZD2ZeugpeuFwuIYQQjY2NHb6enZ0thBCisrKy33/OcpHLLl76vQFy2UOXrtTX16dtv7Wjbnvi2br4fD5RX18vIpFI68nk8MMPF0II8e6773Z4/Pfee08IIcSUKVMEIFRVFfX19aK5uVkUFhZ22f6t7fnVr37V7rXp06cLIYS48847u/VdLF++XAghxNChQztt6yGHHNLvPze5yEUufb/I/nHbkpubK+bOnSsmTJgg/H6/8Pv9YsqUKeLNN98UQgixYsUK4XK5+v1nJhe5yKV3F9kPdr3vTMGLwsJCIYQQGzdu7PB1XdeFEELEYrF+/znLRS67cpE1L6SdpihKh0swGOxw+4ULF7Zb19jYyOLFi3E6ney3334ATJgwAYC33367w/288cYbAEycOBGAUaNGEQgE+PLLL6moqOh2+z/99NN26zZu3AiQ8TP0lKIoAAghemV/kiTtGWT/CNXV1dxyyy188cUXhEIhQqEQ7777LjNmzOCjjz5i+PDhXHzxxd1ukyRJexbZD/YdeV0p7Wtk8ELa5aqqqjpcv7WIkd/vT/tvpuJGW088W7cLBAIAlJWV9ag9oVCo3bpUKgWApmk92sfWtmzP5/NlPJYkSdJWe2P/mIlpmtx///0ATJ06daf2JUnS3mNf6ge7Omam68qt6+V1pbSvkcELaZfLVC26oKAA2NYRb/3v1vXbKywsTNtuayXm/qiCv3z5cgBGjBjR7jVN0xg8eDDJZJI1a9bs6qZJkrQH2Rv7x85s3rwZALfb3c8tkSRpd7Gv9YMdiUQibNq0Ca/X2+Hn2zqTyooVK3Z10ySpX8nghbTLTZs2rd06n8/H+PHjiUajfPPNNwB88cUXAEyfPr3D/Wxd//nnnwPw7bffUl9fz7hx4zKeyPrKW2+9BcDxxx/f7rWpU6fidrv54IMPSCQSu7RdkiTtWfbG/rEzBx98MIAM7EqS1Gpf6wcz6eza8oQTTkjbRpL2FTJ4Ie1y5557LuPHj09bd+uttxIIBHj88cdbb/Dff/99vv32W6ZMmcIZZ5yRtv0ZZ5zBtGnTWL58Oe+99x4AlmWxYMECXC4XCxYswDCMtPcYhkFOTk6ffKann36a6upqzj77bCZNmtS63m638+tf/xqAP//5z31ybEmS9h57Y/940EEHtTsetAR2r7nmGgD++c9/9smxJUna8+yN/eCOuO+++wC46aabWoe8AJSWlnL55ZcTi8V48MEH+6l1ktQ/9P5ugLTnu+WWWzK+9txzz7FkyZK0dS+99BLvv/8+//rXv6ioqOCII45gypQprF27lhtuuCFt29mzZ/P666/z5JNP8vzzz/Ptt98ycuRITj31VBobGznvvPPSihXNnTuXgw8+mNNOO40VK1bw4osv0tTUxIABA5gxYwY///nPeeihh3r3CwCampq45JJLePrpp3nnnXd44oknqKur4+STT2bUqFE89dRTPPnkk71+XEmSdm+yf4Tbb7+dMWPG8M4777Bp0yYA9t9/f4455hgAbr75Zj788MNeP64kSbsH2Q+2uP766xk1ahRAa3Dmggsu4IgjjgDgvffe4+9//3vr9h9++CG///3vufbaa/nyyy95+umnsdlszJw5k+zsbK644grWr1/fJ22VpN1Zv095Ipc9c+mO2bNnt26/dVqoadOmifPOO0988cUXIhKJiM2bN4sHHnhAFBQUdHicESNGiIcffliUl5eLRCIhysvLxSOPPCJGjBjR4faaponLL79cLFq0SDQ1NYlwOCxWrFgh/vKXv6RNZdq2Pdvvo7S0VAghxIMPPtij7+Swww4TL774oqirqxORSER8+eWX4uqrrxaqqvb7z0sucpHLrltk/7htufDCC8V///tfsXbtWtHU1CRisZhYv369eOKJJ8QRRxzR7z8ruchFLn2zyH4wfXn77bc7/S4y7eu8884TH3/8sQiHw6KxsVG888474qSTTur3n69c5NJPS783QC77yNLZSUAucpGLXPblRfaPcpGLXPb1RfaDcpGLXLpaZM0LSZIkSZIkSZIkSZJ2azJ4IUmSJEmSJEmSJEnSbk0GLyRJkiRJkiRJkiRJ2q0ptIwfkSRJkiRJkiRJkiRJ2i3
"text/plain": [
"<Figure size 1500x400 with 4 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"f, a = plt.subplots(ncols=3)\n",
"for i, e in enumerate(epochs):\n",
" s = a[i].scatter(E[i][:,0], E[i][:,1], c=Y[i], cmap='tab10')\n",
" a[i].grid(False)\n",
" a[i].set_title(f'Epoch {e}')\n",
" a[i].axis('equal')\n",
"f.colorbar(s, ax=a[:], ticks=np.arange(10), boundaries=np.arange(11) - .5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Variational Autoencoder with dense decoder"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"from models import VAE_with_dense_decoder as VAE_ddm\n",
"from trainer import VAE_with_dense_decoder as VAE_ddt"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"d = 20\n",
"model_with_dense_decoder = VAE_ddm.Model(d=d, model=model).to(device)\n",
"\n",
"loss_function = VAE_ddm.loss_function(f=nn.functional.binary_cross_entropy, β=0)\n",
"\n",
"learning_rate = 1e-3\n",
"optimizer = VAE_ddm.optimizer(model_with_dense_decoder, learning_rate=learning_rate)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"====> Test set loss: 3.2647\t Accuracy rate: 2%\n",
"---\n",
"====> Epoch: 1 Average loss: 0.6177\t Accuracy rate: 89%\n",
"====> Test set loss: 0.2420\t Accuracy rate: 16%\n",
"---\n",
"====> Epoch: 2 Average loss: 0.2880\t Accuracy rate: 95%\n",
"====> Test set loss: 0.1803\t Accuracy rate: 16%\n",
"---\n",
"====> Epoch: 3 Average loss: 0.2422\t Accuracy rate: 96%\n",
"====> Test set loss: 0.1497\t Accuracy rate: 16%\n"
]
}
],
"source": [
"epochs = 3\n",
"Trainer_with_dense_decoder = VAE_ddt.Trainer(model_with_dense_decoder, optimizer, loss_function, device, train_loader, test_loader, epochs = epochs)\n",
"codes_with_dense_decoder = Trainer_with_dense_decoder.train()"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"tensor([5, 2, 0, 0, 9, 3, 8, 0, 6, 5, 5, 6, 5, 0, 5, 7])\n",
"tensor([5, 2, 0, 0, 9, 3, 8, 0, 6, 5, 5, 6, 5, 0, 5, 7], device='cuda:0')\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABYcAAAFaCAYAAABFZ+INAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAhfUlEQVR4nO3debjWdZ3/8c9ZkCOLHEA9COLCqhkuo2BKBIjb5JpLNWOao2VuZYk2djWllTM6ZZMbam4ziv7qZ5lkZWYmJomECo4Li4CiCAgKssiBA+fc3/nj92uuLEff9xlubjmfx+O6vn8Iz+tzPiLc5/DivrAmpVQkAAAAAACyUlvtCwAAAAAAsOUZhwEAAAAAMmQcBgAAAADIkHEYAAAAACBDxmEAAAAAgAwZhwEAAAAAMmQcBgAAAADIkHEYAAAAACBDxmEAAAAAgAwZhwEAAAAAMmQcpmr69euXbrvttrR48eK0YcOG9PLLL6cf/OAHqbGxsdpXAyCldOKJJ6Zrr702PfbYY2n16tWpKIo0ceLEal8LgL/Qq1evdOaZZ6af/exnad68eam5uTmtWrUqTZkyJZ1xxhmppqam2lcE4P+78sor08MPP5xeffXV1NzcnFasWJFmzJiRvvnNb6ZevXpV+3pkqCalVFT7EuRnwIABaerUqampqSlNmjQpzZkzJ40YMSIdcsghac6cOWnkyJFp5cqV1b4mQNZmzpyZ9t1337R27dr02muvpT333DPddddd6dRTT6321QD4M1/4whfSTTfdlJYuXZoeeeSR9Oqrr6ampqZ0wgknpMbGxnTvvfemk046qdrXBCCl1NLSkmbMmJFmzZqVli9fnrp27Zo+8pGPpOHDh6fFixengw46KC1atKja1yQzhcezpZ8HH3ywKIqiOP/889/x7d///veLoiiKG2+8sep39Hg8ntyfMWPGFIMGDSpSSsXo0aOLoiiKiRMnVv1eHo/H43nnM3bs2OLYY48tamtr3/HtTU1NxSuvvFIURVGceOKJVb+nx+PxeFLRuXPnd/32yy+/vCiKorjhhhuqfkdPXo+/VoItbsCAAemII45IL730UpowYcI7vu/SSy9Nb7/9djrttNNS165dq3RDAFJK6dFHH03z58+v9jUAeB+TJ09O999/fyqVSu/49mXLlqWbbroppZTSmDFjqnAzAP5SS0vLu377Pffck1JKaeDAgVvyOuDvHGbLGzt2bEoppYceeigVRfGO73v77bfT448/nrp06ZIOPPDAalwPAAA6jI0bN6aUUtq0aVOVbwLAeznmmGNSSik9++yzVb4Juamv9gXIz9ChQ1NKKc2bN+9dv3/evHnpiCOOSEOGDEmPPPLIlrwaAAB0GHV1demzn/1sSimlBx98sMq3AeDPjR8/PnXr1i316NEjHXDAAWnUqFFpxowZ6Yorrqj21ciMcZgtrkePHimllFavXv2u3/+nb29sbNxSVwIAgA7nyiuvTMOGDUsPPPBAeuihh6p9HQD+zEUXXZT69Onz3//8wAMPpNNPPz2tXLmyirciR/5aCT5wampqUkrpr/7KCQAAIOaCCy5IF110UZozZ0467bTTqn0dAP7CTjvtlGpqalJTU1P6xCc+kQYOHJieeeaZtN9++1X7amTGOMwW96d3Bv/pHcR/abvttntHBwAAxH3pS19KV199dZo1a1YaM2ZMWrFiRbWvBMD/YPny5WnSpEnpsMMOS71790533nlnta9EZozDbHFz585NKaU0ZMiQd/3+wYMHp5RSevHFF7fYnQAAoCMYP358uuaaa9Jzzz2XxowZk5YtW1btKwEQsGjRojRr1qz04Q9/OPXu3bva1yEjxmG2uMmTJ6eUUjr88MP/+6+Q+JNu3bqlkSNHpubm5jRt2rRqXA8AALZKl1xySbrqqqvSzJkz09ixY9Mbb7xR7SsBUIa+ffumlFJqa2ur8k3IiXGYLe6ll15Kv/nNb9Luu++ezjvvvHd837e+9a3UrVu3dOedd6bm5uYq3RAAALYu//RP/5SuuOKK9NRTT6Vx48b5qyQAPoCGDh2ampqa/urba2pq0uWXX56amprS448/nlatWrXlL0e2alJK/q9fbHEDBgxIU6dOTU1NTWnSpElp9uzZ6cADD0yHHHJImjt3bjr44IP9HzoBquy4445Lxx9/fEoppT59+qQjjzwyLViwIE2ZMiWllNKbb76ZLr744ireEICUUjrttNPSHXfckVpbW9N11133rv/vjoULF6Y77rijCrcD4E8uuOCC9L3vfS899thjacGCBWnFihWpqakpjR49Og0cODAtXbo0jRs3Ls2ePbvaVyUzhcdTjWfnnXcubr/99mLJkiVFS0tLsXDhwuLqq68uevbsWfW7eTwejycVl156afFeXn755arf0ePxeDzv/3pdFEUxefLkqt/T4/F4cn/22muv4vrrry9mzpxZvPHGG8WmTZuKVatWFdOnTy8uvfRSe4inKo93DgMAAAAAZMjfOQwAAAAAkCHjMAAAAABAhozDAAAAAAAZMg4DAAAAAGTIOAwAAAAAkCHjMAAAAABAhozDAAAAAAAZqo+Gh9acVMl7AFTMw8VPq32FLcrrNbC18noNsHXweg2wdYi8XnvnMAAAAABAhozDAAAAAAAZMg4DAAAAAGTIOAwAAAAAkCHjMAAAAABAhozDAAAAAAAZMg4DAAAAAGTIOAwAAAAAkCHjMAAAAABAhozDAAAAAAAZMg4DAAAAAGTIOAwAAAAAkCHjMAAAAABAhozDAAAAAAAZMg4DAAAAAGTIOAwAAAAAkCHjMAAAAABAhozDAAAAAAAZMg4DAAAAAGTIOAwAAAAAkCHjMAAAAABAhozDAAAAAAAZMg4DAAAAAGTIOAwAAAAAkCHjMAAAAABAhozDAAAAAAAZMg4DAAAAAGTIOAwAAAAAkCHjMAAAAABAhozDAAAAAAAZMg4DAAAAAGTIOAwAAAAAkCHjMAAAAABAhozDAAAAAAAZMg4DAAAAAGTIOAwAAAAAkCHjMAAAAABAhozDAAAAAAAZMg4DAAAAAGTIOAwAAAAAkCHjMAAAAABAhuqrfQEAAAA6ntKo/UJd3YbW8JnFk8+19zoAwLvwzmEAAAAAgAwZhwEAAAAAMmQcBgAAAADIkHEYAAAAACBDxmEAAAAAgAwZhwEAAAAAMmQcBgAAAADIkHEYAAAAACBDxmEAAAAAgAwZhwEAAAAAMlRf7QsAAFuPup49w+3if+8TbmcMvzvcXrDkoFC3YFRN+MzShg3hFmCrUFsXTlvH7htuWy5+K9z+Yq8JoW5VqRQ+8zMXjQ+33X7yx3AL8H5Ko/YLt6sGN4Tblsb416y95m4Kt4vGxT8P7LjnG6HuD3v/JHzmVSuHhttfXzIm3HadsSjcti59PdzmzDuHAQAAAAAyZBwGAAAAAMiQcRgAAAAAIEPGYQAAAACADBmHAQAAAAAyZBwGAAAAAMiQcRgAAAAAIEPGYQAAAACADBmHAQAAAAAyZBwGAAAAAMhQfbUvAADEHP3CW+H236YeHm6HDFgabicM+nG4PWfBp8LtpHWN4faavk+Eui9OOTh85m9/d1C4HXBJ7OMDbG71A3YLt8VtG8PtA0Nuacdt3t+jG7qHujENm8Jnvj6yJtwO+kk4BTI1f+J+4fbbI+4Pt/3q41+3j2poDbelVITbSiiV0V7Ua264vfDmOeH2giUjw+0rxzSF29bXl4XbjsY7hwEAAAAAMmQcBgAAAADIkHEYAAAAACBDxmEAAAAAgAwZhwEAAAAAMmQcBgAAAADIkHEYAAAAACBDxmEAAAAAgAwZhwEAAAAAMmQcBgAAAADIUH21L0B5lk7aM9zOHH53qLth1e7hM89tfDncllIRbs9eNDrc/v6lQeG2HDve3xDqtn1jU/zQ+A9BSjXxtPPSteG2bdaLZVwC2Fzqd9sl3O5x72uhrpzX4C8edUu4LUdb0SXcfnfAveG2VMRfBOdsKoW6bzQ9HD7zis9MDrcjh3wu3PY74YVwCzmq7d493H7mqVnhdmVrt3B73S8+Hm53mBH74m5dn/h7cFbv2Rpuf3T
"text/plain": [
"<Figure size 1800x600 with 4 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1800x600 with 4 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABYcAAAFaCAYAAABFZ+INAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAgK0lEQVR4nO3debjVdb0v8O/eewEKMgkoOUQQIeYQiKWoORy1B4dwHm6GHserGVGiZR3NW9e0wSyHRMXSsqMGpnkdwuGGmYLzFKKIgCIEMgoCm80efuePe/TJq0c/i7PXXrC/r9fzfJ9H13rz/X0Ww2+v/d5f2DUppSIBAAAAAJCV2moPAAAAAABA21MOAwAAAABkSDkMAAAAAJAh5TAAAAAAQIaUwwAAAAAAGVIOAwAAAABkSDkMAAAAAJAh5TAAAAAAQIaUwwAAAAAAGVIOAwAAAABkSDlM1Xz5y19ODz74YHrzzTfTmjVr0qxZs9KECRPS7rvvXu3RAPhPJ598cpo6dWpauXJlWr16dXr22WfT6NGjU22ttxAAbe2oo45KV155ZXrkkUfSihUrUlEU6eabb/7IHzN8+PB07733pqVLl6bVq1enF154IY0ZM8Z9HKCCyrlfl0ql9I1vfCP95je/Sc8991xqaGhIRVGkU089tY2nJmeFZbX1+tnPflYURVEsXry4GD9+fHHppZcWEydOLBoaGorm5uZi1KhRVZ/Rsiwr9/W73/2uKIqiWLhwYTF+/Pjil7/8ZTFt2rSiKIpi4sSJVZ/Psiwrt/Xcc88VRVEUK1euLKZPn14URVHcfPPN/2V+5MiRRWNjY/HOO+8UN9xwQ/HTn/60ePnll4uiKIoJEyZU/fVYlmW111XO/bp79+7FuxYsWFC88cYbRVEUxamnnlr112Fls6o+gJXZ2nLLLYumpqZiwYIFRZ8+fd733L777lsURVHMnj276nNalmXlvA477LCiKIpi1qxZRa9evd57vFQqFXfccUdRFEVx0kknVX1Oy7KsnNa+++5bDBw4sEgpFfvss89Hlg1du3YtFi1aVKxdu7YYNmzYe4936tSpeOyxx4qiKIrjjjuu6q/JsiyrPa5y7tcdOnQoRowYUfTt27dIKRUXXXSRcthq0+XvEtHm+vXrl+rq6tITTzyRFi9e/L7nHn744bRy5crUu3fvKk0HQEopHXnkkSmllH7+85+npUuXvvd4U1NTuvDCC1NKKY0ePboqswHk6uGHH06vvfZaKHvMMcekPn36pFtvvTU988wz7z3e0NCQLrjggpRSSl/72tcqMidA7sq5Xzc2NqZJkyalhQsXVngq+HDKYdrczJkz09q1a9Nuu+2W+vTp877n9t1339StW7f04IMPVmk6AFJKqW/fvimllGbPnv2B5959bNiwYalHjx5tORYAQfvtt19KKaVJkyZ94LlHHnkkrV69Og0fPjx17NixrUcDADYgymHa3PLly9N5552X+vTpk6ZPn56uv/76dMkll6QJEyakSZMmpfvvvz+deeaZ1R4TIGtLlixJKaXUv3//Dzw3YMCA9/57u+22a7OZAIh79/48c+bMDzzX3Nyc5syZkzp06PC+ezoAkB/lMFVx9dVXpyOOOCLV1tam008/PX33u99NxxxzTJo7d2767W9/+4F/bgKAtnXPPfeklFI655xzUs+ePd97vK6uLv3gBz947///+TkANhzdu3dPKaW0YsWKD33+3cf9DRAAyJtymKo4//zz05133pluuummNGDAgNS5c+e0yy67pNmzZ6dbbrkl/eQnP6n2iABZu+2229J9992XBg4cmKZPn56uu+669Itf/CI9//zz6eCDD06vvvpqSun/nT4DYONTU1OTUkqpKIoqTwIAVJNymDa33377pUsvvTTdddddaezYsWnOnDmpvr4+Pffcc+mII45I8+bNS2PHjvVX3ACqqCiKNHLkyDR27Ni0cOHCNGrUqHTKKaekefPmpb322uu9b1K3aNGiKk8KwId592TwuyeI/3/dunV7Xw4AyJNymDZ3yCGHpJRSmjx58geeq6+vT08++WSqq6tLQ4cObevRAPgnzc3N6fLLL09Dhw5NnTt3Tt27d08HHXRQmj59ehoyZEhas2ZNeumll6o9JgAfYsaMGSmllAYNGvSB5+rq6lL//v1TY2Pjh37jUQAgH8ph2ty73xG5T58+H/r8u483NDS02UwAxI0aNSptuummacKECampqana4wDwIf7yl7+klFIaMWLEB57be++9U5cuXdKUKVPSunXr2no0AGADohymzf3tb39LKaV0xhlnpK222up9z40YMSLtueeeqb6+Pk2ZMqUa4wHwn7p27fqBx3bdddf04x//OL3zzjvphz/8YRWmAiDi9ttvT4sXL07HH398GjZs2HuPd+rUKV188cUppZTGjRtXrfEAgA1ETUrJdyCgTdXU1KT7778/HXjggWnlypXpzjvvTAsXLkzbb799OvTQQ1NtbW0aM2ZMuvLKK6s9KkDWHn/88bRmzZo0bdq0tGrVqrTDDjukgw8+ODU0NKQjjzwyPfDAA9UeESArhx12WDr88MNTSin17ds3jRgxIs2aNeu9wxdLlixJ55133vvyt99+e1q7dm267bbb0rJly9LIkSPT4MGD08SJE9Oxxx5bjZcB0O6Ve7/+zne+kwYPHpxSSmnIkCFpyJAh6bHHHkszZ85MKaX06KOPpl//+tdt+yLISmFZbb1KpVIxZsyYYurUqcWKFSuKxsbG4q233iruvvvu4sADD6z6fJZlWVYqzj333OLpp58uli9fXqxdu7aYPXt2MW7cuKJfv35Vn82yLCvHddFFFxUfZc6cOR/4MXvssUdx7733FsuWLSvWrFlTvPjii8U3v/nNora2tuqvx7Isq72ucu/XkydP/sj8jTfeWPXXZLXf5eQwAAAAAECG/JvDAAAAAAAZUg4DAAAAAGRIOQwAAAAAkCHlMAAAAABAhpTDAAAAAAAZUg4DAAAAAGRIOQwAAAAAkKFSNHhAzdGVnAOgYh4qbq/2CG3K/RrYWLlfA2wc3K8BNg6R+7WTwwAAAAAAGVIOAwAAAABkSDkMAAAAAJAh5TAAAAAAQIaUwwAAAAAAGVIOAwAAAABkSDkMAAAAAJAh5TAAAAAAQIaUwwAAAAAAGSpVewAAAAAAyNH8O3YIZy/feUI4+8vDjgxnm1+aEc7S/jg5DAAAAACQIeUwAAAAAECGlMMAAAAAABlSDgMAAAAAZEg5DAAAAACQIeUwAAAAAECGlMMAAAAAABlSDgMAAAAAZEg5DAAAAACQIeUwAAAAAECGStUegMqpKcV+eVt22zG852k33hnOzlvXK5z9v4fGZ2h6fW44CwAAANCW6nbYLpw997MPhrP7b9oQzl7yqW7hbKeXwlHaISeHAQAAAAAypBwGAAAAAMiQchgAAAAAIEPKYQAAAACADCmHAQAAAAAypBwGAAAAAMiQchgAAAAAIEPKYQAAAACADCmHAQAAAAAypBwGAAAAAMhQqdoDUDktu+0Yyt09YXxlBuiyJBy96vwDwtlBZ85dn2kAAAAA1ktNp07h7LF/nBzOjuq6MJy9dkW/cLbL8/PD2aZwkvbIyWEAAAAAgAwphwEAAAAAMqQcBgAAAADIkHIYAAAAACBDymEAAAAAgAwphwEAAAAAMqQcBgAAAADIkHIYAAAAACBDymEAAAAAgAyVqj0AlbPy31ZV9fqT6zcLZwfe2ljBSQAAAAD+G3YeFI6O6jq1IiNcO+OL4exW86dXZAbaHyeHAQAAAAAypBwGAAAAAMiQchgAAAAAIEPKYQAAAACADCmHAQAAAAAypBwGAAAAAMiQchgAAAAAIEPKYQAAAACADCmHAQAAAAAypBwGAAAAAMhQqdoDUJ6F39wjnH36c1eFci1lXH9y/Wbh7GWnnxDO1v312TKmAID2p277z4SzRacO4WzL89PXZxwAAP7Ja8d3qci+s5rqw9ktr9ykIjOQNyeHAQAAAAAypBwGAAAAAMiQchgAAAAAIEPKYQAAAACADCmHAQAAAAAypBwGAAAAAMiQchgAAAAAIEP
"text/plain": [
"<Figure size 1800x600 with 4 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABYcAAAFaCAYAAABFZ+INAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAd/ElEQVR4nO3cfZRXdb0v8O8wPx6EJBEIFRFtBk05eTDPEUlD6ig+plIeyfKoaXroWnaodN283nBpT2b3lHQtTrEiH0glE80ss+MBpqsMdgrKpCgQEREJBQHleWbfPypX5dPnN2s2e5jv67XWXqum9/ru96DumXm3nYaUUpEAAAAAAMhKj6oLAAAAAACw6xmHAQAAAAAyZBwGAAAAAMiQcRgAAAAAIEPGYQAAAACADBmHAQAAAAAyZBwGAAAAAMiQcRgAAAAAIEPGYQAAAACADBmHAQAAAAAyZBymNO9973vT1KlTU0tLS9qwYUMqiiLdcsstr5htbm5OV1xxRXrwwQfTk08+mbZt25aeeeaZdM8996Rx48bt2uIAmanneb3//vunG2+8MbW2tqbVq1enrVu3plWrVqWWlpZ0wQUXpFqttovbA+Sjnuf1K5k+fXoqiiIVRZGamppKbAqQt3qe18OHD3/p2fxK12233baL25MbP8FRmquuuiqNGjUqbdq0KT311FOpf//+r5q99tpr0/ve9760ePHi9MMf/jCtW7cuHXLIIen0009Pp59+evrYxz6Wpk6dugvbA+Sjnud1U1NT+sAHPpAWLFiQ7r777rRu3bo0cODAdPLJJ6cZM2ak8847L51wwgmpra1tF34GAHmo53n9t0477bR00UUXpU2bNqU999yzxJYAdOR5vWjRonT33Xe/7OO//vWvS2gIf61wucq4xo0bVzQ3NxcppeK4444riqIobrnlllfMXnDBBcXb3va2l3187NixxbZt24pt27YV++yzT+Wfk8vlcnXHq57ndc+ePYuGhoaXfbxWqxVz5swpiqIozj777Mo/J5fL5eqOVz3P67+8Bg0aVKxevbq47bbbXnpWNzU1Vf75uFwuV3e96nleDx8+vCiKopgxY0blvV15Xn6tBKWZO3duWrp0aSj77W9/O/3iF7942cdbWlrS3LlzU69evdIxxxzT2RUBSPU9r3fs2JGKonjZx3fu3Jlmz56dUkr+VWWAktTzvP5L3/jGN1JKKV166aWdXQmAV9DR5zVUwa+VoMvbvn17SumPgwQAXVOPHj3SKaecklJK6Ve/+lXFbQD4s/PPPz9NmDAhnXnmmWndunVV1wHgVey3337pkksuSQMHDkzPPfdcmj9/fnr00UerrkUGjMN0aQcccEA6/vjj04svvphaWlqqrgPAnwwcODB95CMfSQ0NDWnw4MHphBNOSCNGjEg33XRTuu+++6quB0D64/fSN9xwQ7rlllvSPffcU3UdAF7D+PHj0/jx4//qY3PmzEnnn39+WrlyZUWtyIFxmC6rV69eaebMmalPnz7piiuuSM8//3zVlQD4k0GDBqWrr776pf/e3t6errvuunTVVVdVVwqAlzQ0NKSbbropvfDCC+myyy6rug4Ar2Lz5s3pmmuuSXfffXd6/PHHU0opHX744enqq69O73rXu9KDDz6YRo0alTZv3lxxU7orv3OYLqmxsTHNnDkzHXvssem73/1uuv7666uuBMBfWLJkSWpoaEiNjY3pgAMOSJMnT06TJk1KLS0tacCAAVXXA8je5MmT07hx49LFF1/sJQuALmzt2rVpypQpaeHChWnDhg1pw4YN6ac//WkaP358am1tTSNGjEgf+tCHqq5JN2YcpstpbGxM3/nOd9JZZ52VZs2alc4555yqKwHwKtrb29PKlSvT1KlT0yWXXJLGjBmTrrnmmqprAWStubk5ffazn03f+ta30o9+9KOq6wDQAW1tbWn69OkppZTGjh1bcRu6M+MwXUqtVkuzZs1KZ599dpo5c2Y655xzUltbW9W1AAi4//77U0opjRs3rtoiAJkbOXJk6tOnT7rwwgtTURR/df35Gb106dJUFEU644wzqi0LwKv6wx/+kFJKqV+/fhU3oTvzO4fpMnr27JnuvPPOdPrpp6ebbropffCDH0xFUVRdC4CgoUOHppRS2rlzZ8VNAPL2xBNPvPS22d869dRT07777ptmzZqVNm7cmJ544oldWw6AsNGjR6eU0ku/ixjKYBymS+jVq1e666670qmnnpqmT5+eLrnkEsMwQBd01FFHpUcffTRt2bLlrz7er1+/dMMNN6SUUrrvvvuqqAbAn/zyl79MF1988Sv+b3PmzEn77rtvuvLKK9OyZct2cTMA/tZRRx2VFi5cmHbs2PFXHx87dmz6+Mc/nlJK6dZbb62iGpkwDlOaM844I5155pkppZT22WeflFJKY8aMSTNmzEgppfTss8+myy+/PKWU0rRp09Kpp56a1q5dm1atWpU+/elPv+y8uXPnpnnz5u2a8gAZqed5/alPfSqNGzcuzZs3Lz355JNp8+bNadiwYenkk09OAwYMSA899FD6/Oc/X8nnAdDd1fO8BqA69Tyvr7vuujRy5Mg0d+7c9NRTT6WUUnrrW9+ajj/++JRSSldddVWaP3/+Lv4MyE3hcpVxTZkypXgty5cvfyk7Z86c18wWRVFMmTKl8s/J5XK5uuNVz/P6lFNOKW699dZiyZIlxfPPP19s3769WLNmTfGTn/ykuPjii4vGxsbKPx+Xy+Xqrlc9z+tXu/78fXdTU1Pln4/L5XJ116ue5/WFF15Y3HvvvcXy5cuLTZs2FVu3bi1WrFhR3H777cWxxx5b+efi6v5Xw5/+AwAAAAAAGelRdQEAAAAAAHY94zAAAAAAQIaMwwAAAAAAGTIOAwAAAABkyDgMAAAAAJAh4zAAAAAAQIaMwwAAAAAAGapFg8c3nFVmD4DS/GdxZ9UVdinPa2B35XkNsHvwvAbYPUSe194cBgAAAADIkHEYAAAAACBDxmEAAAAAgAwZhwEAAAAAMmQcBgAAAADIkHEYAAAAACBDxmEAAAAAgAwZhwEAAAAAMmQcBgAAAADIkHEYAAAAACBDxmEAAAAAgAwZhwEAAAAAMmQcBgAAAADIkHEYAAAAACBDxmEAAAAAgAwZhwEAAAAAMmQcBgAAAADIkHEYAAAAACBDxmEAAAAAgAwZhwEAAAAAMmQcBgAAAADIkHEYAAAAACBDxmEAAAAAgAwZhwEAAAAAMmQcBgAAAADIkHEYAAAAACBDxmEAAAAAgAwZhwEAAAAAMmQcBgAAAADIkHEYAAAAACBDxmEAAAAAgAzVqi4AAFCGHz+9KJxtumNSONs8ubUDbQAAALoebw4DAAAAAGTIOAwAAAAAkCHjMAAAAABAhozDAAAAAAAZMg4DAAAAAGTIOAwAAAAAkCHjMAAAAABAhozDAAAAAAAZMg4DAAAAAGSoVnUBAIAyNN0xKZxdNnFaOHvi5FEdaAMAAND1eHMYAAAAACBDxmEAAAAAgAwZhwEAAAAAMmQcBgAAAADIkHEYAAAAACBDxmEAAAAAgAwZhwEAAAAAMmQcBgAAAADIkHEYAAAAACBDxmEAAAAAgAzVqi4AAHS+zRNGl3Ju39kLSjkXgO6nNnS/UK59YP/wmb8/f69wtm3AznB20Js2hrOtR9weztbjnOUnhHLPTTkwfGbtwZ93sA0AufDmMAAAAABAhozDAAAAAAAZMg4DAAAAAGTIOAwAAAAAkCHjMAAAAABAhozDAAAAAAAZMg4DAAAAAGTIOAwAAAAAkCHjMAAAAABAhozDAAAAAAAZqlVdAMrUOOLN4eyOfd4Yyi39YGP4zB692sLZs0YuDGevG7IonD3s4XPD2WFn/TqcBbq2p8c2hLPLJk4LZ0+cPaoDbbqXzRNGh7N9Zy8osQmQm8aRh4SzGw/dq5QOG8/dGM5eeej9odx73/BsR+tUor2kc2ce9EAoN/5/vid+6IMdLANANrw5DAAAAACQIeMwAAAAAECGjMMAAAAAABkyDgMAAAAAZMg4DAAAAACQIeMwAAAAAECGjMMAAAAAABkyDgMAAAA
"text/plain": [
"<Figure size 1800x600 with 4 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display_images(None, x, 4, count=True)\n",
"print(y)\n",
"y_hat = model_with_dense_decoder(x)[0]\n",
"print(torch.argmax(y_hat, dim=1))"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"codes = codes_with_dense_decoder[1]\n",
"X, Y, E, losses, AR = list(), list(), list(), list(), list() # input, classes, embeddings\n",
"N = 1000 # samples per epoch\n",
"epochs = range(epochs)\n",
"for epoch in epochs:\n",
" X.append(codes['μ'][epoch][:N])\n",
" E.append(TSNE(n_components=2).fit_transform(X[-1]))\n",
" Y.append(codes['y'][epoch][:N])\n",
" losses.append(codes['loss'][epoch][:N])\n",
" AR.append(codes['AR'][epoch][:N])"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1500x400 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for i, epoch in enumerate(epochs):\n",
"\tplt.plot(losses[i], label=f\"{epoch}th epoch\")\n",
"plt.legend()\n",
"plt.title(\"Loss per epoch\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1500x400 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for i, epoch in enumerate(epochs):\n",
"\tplt.plot(AR[i], label=f\"{epoch}th epoch\")\n",
"plt.legend()\n",
"plt.title(\"Accuracy per epoch\")\n",
"plt.show()"
]
}
],
"metadata": {
"interpreter": {
"hash": "905fbff07f04ba78e3b93ef9539561fd1c6ae76c32e6111cf52f7c174132ed83"
},
"kernelspec": {
"display_name": "Python 3.7.9 64-bit ('3ma-stage': conda)",
"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.7.9"
}
},
"nbformat": 4,
"nbformat_minor": 4
}