diff --git a/notebooks/score_based_modeling_1D.ipynb b/notebooks/score_based_modeling_1D.ipynb new file mode 100644 index 0000000..9a0372a --- /dev/null +++ b/notebooks/score_based_modeling_1D.ipynb @@ -0,0 +1,321 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook provides a minimal working example to training a score-based model on a simple 1D Gaussian distribution." + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "metadata": { + "id": "S77DUAOeJj5w" + }, + "outputs": [], + "source": [ + "#@title Install necessary libraries and set up plotting defaults\n", + "!pip install torchquad --quiet\n", + "!pip install score_models\n", + "\n", + "%matplotlib inline\n", + "\n", + "from score_models import ScoreModel, MLP\n", + "from torch.utils.data import Dataset\n", + "\n", + "import torch\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import matplotlib.pylab as pylab\n", + "plt.style.use(\"seaborn-v0_8\")\n", + "\n", + "params = {\n", + " 'legend.fontsize': 20,\n", + " 'figure.figsize': (5, 5),\n", + " 'axes.labelsize': 20,\n", + " 'axes.titlesize': 25,\n", + " 'xtick.labelsize': 18,\n", + " 'ytick.labelsize': 18,\n", + " 'figure.titlesize': 25,\n", + " 'xtick.major.size': 8,\n", + " 'xtick.minor.size': 4,\n", + " 'xtick.major.width': 1,\n", + " 'xtick.minor.width': 1,\n", + " 'ytick.major.size': 8,\n", + " 'ytick.minor.size': 4,\n", + " 'ytick.major.width': 1,\n", + " 'ytick.minor.width': 1,\n", + " 'font.size': 20 # for annotate\n", + "}\n", + "pylab.rcParams.update(params)\n", + "DEVICE = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "metadata": { + "id": "8W7gZVWCONKo" + }, + "outputs": [], + "source": [ + "#@title Create 1D Gaussian Distribution\n", + "mu = 0 # mean centered at 0\n", + "sigma = 1 # unit standard deviation\n", + "num_points = 2000\n", + "\n", + "class GaussianDataset(Dataset):\n", + " def __init__(self, data):\n", + " self.data = torch.tensor(data, dtype=torch.float32).view(-1, 1)\n", + "\n", + " def __len__(self):\n", + " return len(self.data)\n", + "\n", + " def __getitem__(self, idx):\n", + " return self.data[idx]\n", + "\n", + "dist = np.random.normal(mu, sigma, num_points)\n", + "dataset = GaussianDataset(dist)\n", + "dimensions = 1\n", + "bins = np.linspace(mu - 3 * sigma, mu + 3 * sigma, 20)" + ] + }, + { + "cell_type": "code", + "execution_count": 115, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "s8d6QY-frT4n", + "outputId": "4c96f57e-5f60-4ab8-ebf1-a679933075e2" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "torch.Size([2000, 1])" + ] + }, + "execution_count": 115, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dataset.data.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 763 + }, + "id": "fjrUCB-IPLhh", + "outputId": "7e10d14b-b3e2-43ae-cf74-a4eb57340aac" + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Plot the training set\n", + "figure = plt.figure(figsize=(10, 8))\n", + "plt.hist(dist, bins=bins, density=True)\n", + "plt.title(\"Training set\")\n", + "plt.xlabel(\"x\")\n", + "plt.ylabel(\"Density\")\n", + "plt.xlim(mu - 3 * sigma, mu + 3 * sigma)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 117, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "vE-h__HgGBh9", + "outputId": "1a1a5b9c-d137-4ed7-c137-633fb94d5b85" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Using the Variance Exploding SDE\n" + ] + } + ], + "source": [ + "C = 1 # one channel 1D distribution\n", + "B = 128 # batch size\n", + "checkpoints_directory = \"checkpoints\"\n", + "net = MLP(channels=C, dimensions=dimensions, units=50, layers=4)\n", + "model = ScoreModel(model=net, sigma_min=1e-2, sigma_max=10, device=DEVICE)" + ] + }, + { + "cell_type": "code", + "execution_count": 118, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "8Uhllz86QWGY", + "outputId": "3f76f682-25c8-443c-9a3c-a7ce9540259f" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Epoch 200 | Cost: 6.9e-01 |: 100%|██████████| 200/200 [00:25<00:00, 7.84it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Finished training after 0.007 hours.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "losses = model.fit(dataset, epochs=200, batch_size=B, learning_rate=1e-3, checkpoints_directory=None)" + ] + }, + { + "cell_type": "code", + "execution_count": 119, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 498 + }, + "id": "wAhy_uCtrlnT", + "outputId": "b9758f4c-a500-422d-c093-635c6d146fd8" + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(losses)\n", + "plt.xlabel(\"Epoch\")\n", + "plt.ylabel(\"Loss\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 120, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "3E-a-dRKL5Tb", + "outputId": "70e4f25b-e33e-4090-c837-5d030f699c9b" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Sampling from the prior | t = 0.0 | sigma = 1.0e-02| scale ~ 1.0e+00: 100%|██████████| 1000/1000 [00:08<00:00, 117.35it/s]\n" + ] + } + ], + "source": [ + "#Takes about 10 seconds to sample using 1000 steps\n", + "num_samples = 1000\n", + "num_steps = 1000\n", + "samples = model.sample(shape=[1000, 1], steps=num_steps)" + ] + }, + { + "cell_type": "code", + "execution_count": 121, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 729 + }, + "id": "c5boq5RGS3IT", + "outputId": "62f83c21-54a1-4c65-c13e-99d1c94cfeb2" + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#@title Plot the generated samples\n", + "\n", + "figure = plt.figure(figsize=(10, 8))\n", + "plt.hist(dist, bins=bins, density=True, alpha=0.5, label=\"Training set\")\n", + "plt.hist(samples.squeeze().cpu(), bins=bins, alpha=0.3, density=True, label=\"Generated Samples\")\n", + "plt.xlabel(\"x\")\n", + "plt.ylabel(\"Density\")\n", + "plt.xlim(mu - 3 * sigma, mu + 3 * sigma)\n", + "plt.legend(frameon=False)\n", + "plt.show()" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.10.6" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/notebooks/score_based_modeling_MNIST.ipynb b/notebooks/score_based_modeling_MNIST.ipynb new file mode 100644 index 0000000..5929fd6 --- /dev/null +++ b/notebooks/score_based_modeling_MNIST.ipynb @@ -0,0 +1,377 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "S77DUAOeJj5w", + "outputId": "13790957-461a-44b9-f716-a5394de4e79b" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m57.8/57.8 kB\u001b[0m \u001b[31m788.6 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m62.5/62.5 kB\u001b[0m \u001b[31m3.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m51.0/51.0 kB\u001b[0m \u001b[31m2.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25h" + ] + } + ], + "source": [ + "#@title Utility functions\n", + "!pip install torchquad --quiet\n", + "!pip install score_models\n", + "\n", + "%matplotlib inline\n", + "\n", + "import torchvision.transforms as transforms\n", + "from torchvision.datasets import MNIST\n", + "from score_models import ScoreModel, NCSNpp\n", + "from torch.utils.data import Dataset\n", + "\n", + "import torch\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import matplotlib.pylab as pylab\n", + "plt.style.use(\"dark_background\")\n", + "params = {\n", + " 'legend.fontsize': 20,\n", + " 'figure.figsize': (5, 5),\n", + " 'axes.labelsize': 20,\n", + " 'axes.titlesize': 25,\n", + " 'xtick.labelsize': 18,\n", + " 'ytick.labelsize': 18,\n", + " 'figure.titlesize': 25,\n", + " 'xtick.major.size': 8,\n", + " 'xtick.minor.size': 4,\n", + " 'xtick.major.width': 1,\n", + " 'xtick.minor.width': 1,\n", + " 'ytick.major.size': 8,\n", + " 'ytick.minor.size': 4,\n", + " 'ytick.major.width': 1,\n", + " 'ytick.minor.width': 1,\n", + " 'font.size': 20 # for annotate\n", + "}\n", + "pylab.rcParams.update(params)\n", + "DEVICE = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "8W7gZVWCONKo", + "outputId": "3f33b2f7-0761-41a8-828a-a0b57359d313" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Downloading http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz\n", + "Failed to download (trying next):\n", + "HTTP Error 403: Forbidden\n", + "\n", + "Downloading https://ossci-datasets.s3.amazonaws.com/mnist/train-images-idx3-ubyte.gz\n", + "Downloading https://ossci-datasets.s3.amazonaws.com/mnist/train-images-idx3-ubyte.gz to ./MNIST/raw/train-images-idx3-ubyte.gz\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 9912422/9912422 [00:00<00:00, 17615162.31it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Extracting ./MNIST/raw/train-images-idx3-ubyte.gz to ./MNIST/raw\n", + "\n", + "Downloading http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz\n", + "Failed to download (trying next):\n", + "HTTP Error 403: Forbidden\n", + "\n", + "Downloading https://ossci-datasets.s3.amazonaws.com/mnist/train-labels-idx1-ubyte.gz\n", + "Downloading https://ossci-datasets.s3.amazonaws.com/mnist/train-labels-idx1-ubyte.gz to ./MNIST/raw/train-labels-idx1-ubyte.gz\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 28881/28881 [00:00<00:00, 493420.40it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Extracting ./MNIST/raw/train-labels-idx1-ubyte.gz to ./MNIST/raw\n", + "\n", + "Downloading http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz\n", + "Failed to download (trying next):\n", + "HTTP Error 403: Forbidden\n", + "\n", + "Downloading https://ossci-datasets.s3.amazonaws.com/mnist/t10k-images-idx3-ubyte.gz\n", + "Downloading https://ossci-datasets.s3.amazonaws.com/mnist/t10k-images-idx3-ubyte.gz to ./MNIST/raw/t10k-images-idx3-ubyte.gz\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 1648877/1648877 [00:00<00:00, 4503597.79it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Extracting ./MNIST/raw/t10k-images-idx3-ubyte.gz to ./MNIST/raw\n", + "\n", + "Downloading http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz\n", + "Failed to download (trying next):\n", + "HTTP Error 403: Forbidden\n", + "\n", + "Downloading https://ossci-datasets.s3.amazonaws.com/mnist/t10k-labels-idx1-ubyte.gz\n", + "Downloading https://ossci-datasets.s3.amazonaws.com/mnist/t10k-labels-idx1-ubyte.gz to ./MNIST/raw/t10k-labels-idx1-ubyte.gz\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 4542/4542 [00:00<00:00, 9352247.80it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Extracting ./MNIST/raw/t10k-labels-idx1-ubyte.gz to ./MNIST/raw\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "#@title Download the MNIST dataset\n", + "\n", + "# a wrapper class to handle sending MNIST data to device\n", + "class MNISTDataset(Dataset):\n", + " def __init__(self, root, train=True, transform=None, download=True):\n", + " self.mnist = MNIST(root, train=train, download=download)\n", + " self.transform = transform\n", + "\n", + " def __len__(self):\n", + " return len(self.mnist)\n", + "\n", + " def __getitem__(self, index):\n", + " img, target = self.mnist[index]\n", + "\n", + " if self.transform:\n", + " img = self.transform(img)\n", + "\n", + " return img.to(DEVICE), target\n", + "\n", + "dataset = MNISTDataset('.', train=True, transform=transforms.ToTensor())\n", + "dimensions = dataset.mnist.data.shape[1:]" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 653 + }, + "id": "fjrUCB-IPLhh", + "outputId": "924a99af-8916-475f-ad7b-fc7e40735684" + }, + "outputs": [ + { + "data": { + "image/png": "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5ZevOv/f//63kVbSsCr/XRRF7Ed85513wlz674R8de/evRzfc889tTr2kksuCfmpp56qjyXRzJx44okhV/b5T506Ncw9+uijIad7p0+ZMqXG67Rr1y7kdB//9PdkmzZtQk6fORk2bFiN16J1+Oijj0I++eSTG+3a6667bqNdq6G58w8AAJlQ/AMAQCYU/wAAkIlm2fO/2mqrhZz2+VfabrvtQn7mmWcaZE20Hq+88kpTL+FndezYMeTf/OY3Iffv3z/ktD+2UuW+3EXx0/3ZyVfl92qVVVap+tknnngi5IsuuqhB1kTTWmCBBUI++OCDQ67cyz/t8d9+++1rda1ll122HN96661hbo011qh67N133x3y0KFDa3VtqHwXxPzzz1+rY1deeeWq8y+88EI5fvHFF2u3sEbmzj8AAGRC8Q8AAJlolm0/559/fsiV23ulbT3Ntc1njjnif1dNnz69iVZCqkuXLnU+dtVVVw053Xqub9++IS+++OIhzzPPPOW4X79+YS79zqRb5L388sshf//99yHPNdf/++f82muv/WTt5Cltyzj77LNr/Oxzzz0X8l577RXyxIkT621dNB+VP5eKoii6du1a42cr2yaKoih+8YtfhDxw4MCQt91225B79epVjtu3bx/mKtuLfi7fcsstIX/zzTc1rpM8zDfffCH37Nkz5JNOOinkam3kta3b0m1HK7/7P/74Y9Vjm5o7/wAAkAnFPwAAZELxDwAAmWgWPf9bb711yL179w65su/vgQceaIwlzba0VyztXXzjjTcacTV5SXvl0//bX3nllSFXvrp+ZtKtEdOe/2nTpoX87bffhvzWW2+V4+uvvz7MvfrqqyGnz7N8+umnIY8dOzbkeeedtxyPGDHiJ2snD927dw/5nnvumeVj33///ZDT7xyt09SpU0MeP358yAsttFA5/uCDD8Jc+vN1Zir7pCdNmhTmFl100ZA///zzkB988MFaXYvWYe655y7H6Vbw6c+39DuU1gOV3790O850e+30eYJU5XN2RVEUO+ywQzlOt0VO/401NXf+AQAgE4p/AADIhOIfAAAy0Sx6/it7lYvip3sOf/bZZ+X4jjvuaJQ1zYq2bduGfPLJJ9f42SeffDLkY445piGWRPHTV9OPGTMm5F/96ld1PveHH34Y8v333x/y22+/HfJLL71U52ul9t9//5Ar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ACATin8AAMiE4h8AADLR6nr+u3fvHnL//v1Dnj59ejleccUVw9wKK6wQsp5/aqtHjx4hzz333CFvsMEG5fjyyy8Pc5Xfzdk1bNiwkHfdddeQW3KvIrWTfgd/9atfleMzzzwzzP36179ulDVBY7vgggtCrvx3UBRFcdNNNzXmcqgnBxxwQMjnnntuyO3bt6/x2GWWWSbk9PdkKn1G4KmnnpqVJTZL7vwDAEAmFP8AAJAJxT8AAGSiTVEUM5p6EfVp/vnnD/mWW24Jedttty3HM2bE/+lbbbVVyI8++mg9r46WbqWVVgp5wIABIe+0004hzzFH/O/rxRZbrByn+0qn38f6lPazHnbYYSFPmjSpwa5N0+ratWvIn332WTn+5JNPwtzqq68ecjoPLcXZZ58d8qGHHhryDz/8EPK+++4b8p133tkwC6NedenSJeS333475F/84hf1dq2vvvoq5F122SXkxx57rN6u1dDc+QcAgEwo/gEAIBOKfwAAyESr2+f/m2++Cdle/dSns846K+Qtt9yyiVZSO3vuuWfI1113XcjPP/98Yy6HZmKRRRapmvX801L16dMn5PR9F88991zIevxbpi+//DLkk046KeTzzjsv5Pnmm68cf/jhh2FuySWXrHqtBRZYIOTf/OY3Iev5BwAAmh3FPwAAZELxDwAAmWh1Pf9pT9aqq67aNAuhVXr88cdDnlnPf+We6kURe+3TdwBMnz696rl+9atfhbzhhhtW/TzMTPquCahvG2ywQcjHHXdcOd5tt93CXNq/XVuV5+vVq1eYe++990IePHjwbF2L5unKK68M+cADDwy5siac3ffbXHrppbN1fFNy5x8AADKh+AcAgEy0urafym2cimLmWzdVWmuttUIeMWJEyLYN5Yorrgj5/vvvr/r59BXys7N1YseOHUMePnx4yIsttliNx6brfPXVV+u8DlqPGTNmhNyuXbsmWgmt1dVXXx3ycsstV4579uwZ5tLtN2vr2GOPLccLLrhgmNtvv/1CfvPNN2frWrQMp59+esiVbWe9e/eerXPPM888s3V8U3LnHwAAMqH4BwCATCj+AQAgE62u5/+jjz4K+cYbbwz55JNPrvHYdO6rr74KuSVv60T9mDZtWsj/+9//Gu3aW2yxRcidO3ee5WPHjh0b8vfff18va6J1WXPNNUN+6aWXmmgltBbffvttyJXPmczuMyZpz3a3bt3Kcbp1sudZ8nT33XeHXPlcyWOPPRbmVl555VqdO32e4Pe//30tV9d03PkHAIBMKP4BACATin8AAMhEq+v5T5122mkhV+v5h+Zk1113DTndp3reeeed5XOdeOKJ9bImWp70OZWJEyeW406dOoW5ZZZZplHWROuV/s5N+6jffvvtclzbvfbnn3/+kIcMGRJy5Xt+0udV0t5v8tCvX7+QV1111XLcq1ev2Tr37L6Xoim58w8AAJlQ/AMAQCYU/wAAkIlW3/OfmmOO//ffO+k+wNCY0l7EP/3pTyEvu+yyIc8999yzfO433ngj5B9++KF2i6PVSN9X8uyzz5bjrbfeupFXQ2uzxBJLhJw+m5Q+c/LHP/6xHI8fP75W1zr//PND3mmnnUKufM/Pr3/961qdm5ZphRVWCPm+++4LOf09Otdc9Vf2PvDAA/V2rsbmzj8AAGRC8Q8AAJlQ/AMAQCay6/mv7POfMWNGE66Elqh79+4h77HHHiH37dt3ls+13nrrhVzb7+OkSZNCrnxm4OGHHw5zU6ZMqdW5AX5Oujd62mPdtWvXkC+55JKQn3nmmVm+1uDBg0MeMGBA1c+fccYZs3xuWocVV1wx5KWWWirk+uzxTx1++OEhH3LIIQ12rfrmzj8AAGRC8Q8AAJnIru0Haqvyz9zp1l5LLrlkYy+nVLllY1EUxdVXX91EK6G1WHDBBZt6CTQDaatE//79y/F1110X5iq3zy6Kn26hve6664Z8zDHHlON0684uXbqEnG7l2aZNm5BvuummkK+66qqCvKRtZ0cffXTI55xzTsjt2rWrt2svuuii9XauxubOPwAAZELxDwAAmVD8AwBAJvT8Qy2kPadpro2Z9crOzNZbbx3yb3/723L897//vc7rIl/bbrttUy+BZmDXXXcN+dprry3H6ZbE6c+tUaNGhbzmmmvWmLfbbrsw98tf/jLktKd6/PjxIe+9994/WTt5u/jii0N+9913Q15ggQVqPDZ91uXSSy8NuWPHjrO3uGbEnX8AAMiE4h8AADKh+AcAgExk1/Nf2Wc9sx7rDTbYIOS0/4s8DB8+vBxvtNFGYa5y/+uiKIpHH3005O+++67O191nn31CbkmvDqf5euqpp8px+twIedpll11CvuGGG0L+4YcfyvFXX30V5nbfffeQJ0yYEPJ5550X8oYbbliO0+cB0meo0ucLunbtGvL//ve/kCt/Pr/33nsF1Ob5t/T7t+yyy4Z84oknhty7d++Qu3XrVo7HjBkzy9dtCu78AwBAJhT/AACQCcU/AABkok1RFDNm+qlW5McffyzHaT/hzKyyyiohv/XWW/WyJvg5nTp1CvmLL76o+vltttmmHNvnn5rsuOOO5fiuu+4Kc1OmTAm5Z8+eITf3Plbq5sknnwy5sne5KIri9NNPL8fp8wAzk36HrrrqqnK87rrrhrmZ9fyn/vrXv4a855571mptUKlt27Yhz+yZvREjRoS82WableOxY8fW38IagDv/AACQCcU/AABkQvEPAACZyG6f/yuvvLIcH3DAAbU6dv/99w/5sMMOq48lwc/aYostmnoJtELTpk2rcS7tuU57YGmdhg0bFvK9994bcrqffm2ke/P36tWrxs/utttuIVe+Y+XnNPe+alqWymdbZsV1110Xckv6PrrzDwAAmVD8AwBAJhT/AACQiex6/tN9WWHuuecOefPNNw+5cg/sdB/0+jRw4MCQL7rooga7Fvmq7O9Ofx6usMIKIafPNR188MENti6aTn3+rEnfT7LTTjuF3LFjx3L83nvvhbk777yz3tZBy7HggguGnL5L4rbbbvvZ8exadNFFQ06f65yZ9NmYlsSdfwAAyITiHwAAMpFd288ll1xSjg855JAwt8wyy1Q99tBDD63xXEXx0z9h0jytt956IR933HEhV76iuyiKYqmllirHs7PlXVEURZcuXcrxlltuGebOP//8kOebb76q50pbkGb2KnJIPfbYYyH/8pe/DPmII45ozOXQCqStYQcddFDIn332WTneZJNNGmVNNG8XX3xxyNtss03IPXr0KMcfffRRmBs3blzIo0aNCnmNNdao8VxHH310mKtsSfs55513XsjpWloSd/4BACATin8AAMiE4h8AADKRXc9/pf/+978hL7300lU/P3369IZcDo3k0ksvDbna6+aLIvYFTp48ebauXfk8weqrrx7mZsyYUfXYp59+OuQrrrgi5Keeemq21gbpd3Dq1KlNtBJaim7duoW87777hpx+p66++upyPHbs2IZbGC1G+vxk5XN2RVEU6667bjlOfw+OHj065Lfeeivk9ddfP+QOHTrUuI70u5puhXzSSSeF3JKfs3PnHwAAMqH4BwCATCj+AQAgE1n3/Ff2HhbFT/eWhaL46T7VDaVy/+uiKIoHH3ww5PQ9Ey2535DmKd3nervttgv5vvvua8zl0AI8/vjjIafPANxyyy0hp33T8NJLL4X84osvhnzzzTeX48svvzzMde/evWqujQkTJoTcs2fPOp+ruXPnHwAAMqH4BwCATCj+AQAgE1n3/Kf7wb799tshr7jiio25HBrJgAEDQj7kkENC3muvvertWu+9917I3377bTl+9tlnw1z6DMrw4cPrbR3wc3beeeeQv//++5DTn4mQuuGGG0I+7bTTQh42bFhjLodW4Mgjjwy5bdu25bh9+/ZVj11ttdVC3m233Wr87MSJE0OufA9Pa+fOPwAAZELxDwAAmVD8AwBAJtoURTGjqRcBTamyn7AofvpMwOmnn16OO3fuHObuv//+kNM9r9N+108++aSOq4T6d/vtt4ecPue07bbbhjxmzJgGXxMADcudfwAAyITiHwAAMqH4BwCATOj5BwCATLjzDwAAmVD8AwBAJhT/AACQCcU/AABkQvEPAACZUPwDAEAmFP8AAJAJxT8AAGRC8Q8AAJlQ/AMAQCYU/wAAkAnFPwAAZELxDwAAmVD8AwBAJhT/AACQCcU/AABkQvEPAACZUPwDAEAmFP8AAJAJxT8AAGRC8Q8AAJlQ/AMAQCYU/wAAkAnFPwAAZELxDwAAmVD8AwBAJhT/AACQCcU/AABkQvEPAACZUPwDAEAmFP8AAJAJxT8AAGRC8Q8AAJlQ/AMAQCYU/wAAkAnFPwAAZELxDwAAmVD8AwBAJuZq6gUA0Dz16NEj5EceeSTkOeecM+Ru3bo1+JoAmD3u/AMAQCYU/wAAkAltPwAURVEUl1xySci77LJLyF26dAn5b3/7W4OvCYD65c4/AABkQvEPAACZUPwDAEAm2hRFMaOpFwFA41h44YXL8b333hvm+vTpE/KMGfHXw/Dhw0PedNNNQ/7iiy/qY4kANCB3/gEAIBOKfwAAyITiHwAAMmGff1qd9u3bh5zuVf7dd9+FvMYaa4TcoUOHkPv161eOn3766TA3bty4ui6z+OSTT0IeNmxYyK+++mqdzw3/fz169Aj53HPPLcfrrLNO1WOPOeaYkNPvpB5/Um3atAn5tttuC3nLLbcsxz179gxzY8eObbiFASV3/gEAIBOKfwAAyITiHwAAMmGff1qdoUOHhjx48OAmWkntTJ8+PeS33nor5LR3Ns2jR49ukHXRsqV79z/33HM1fjbt1+7fv3/I6XcOUvPNN1/II0eODPmXv/xlOd5///3D3LXXXttwCwNK7vwDAEAmFP8AAJAJxT8AAGTCPv8NpFu3biHPO++8Ie+2224hH3TQQVXP99BDD5XjgQMHzubqWrcddthhto5P9y7/v//7vzqfK+13XX755cvxAgssEOZWW221kHv16hXyGWecUXVdev4pip/u6//Xv/415LSvv1L6byd99wTMzLfffhvyu+++G3Jlz/9CCy3UKGuCWXHkkUeGPM8884S84oorhlz5DqDUiBEjQl5ppZVmc3X1y51/AADIhOIfAAAyofgHAIBM6PmfDX379g25sl827env1KlTyDNm1O71Cule3dRsiy22CDntgX7nnXeqHp/2rH788cf1s7BEhw4dQv7Pf/4T8pJLLln1+G233TbkyudCyNcee+wRcvo9evjhh8vxgQceGObGjRvXcAsjS5dddlnIG220UTlOe6ihvm244YYhVz5Ll8797ne/C7na81FFUb2OW2655UJO39vTs2fPquduaO78AwBAJhT/AACQiTZFUdSu/yQj6avGV1555ZDXWmutWT7X5MmTQ7711ltDfuWVV0K+7bbbQv7uu+9m+Vq0DGlrWPqdSH3//fchr7/++iG/+uqr9bMwWpQXXngh5N69e4f80Ucfhfyb3/ymHI8aNarB1gVFURRLLLFEyGPGjCnHU6dODXNLLbVUyA3VcknLsuiii5bjtDZaeumlqx6btlzPP//85Tht63nttddCXn311Wu1zmrSlsp0O/jG5s4/AABkQvEPAACZUPwDAEAmst7qc8EFFwz5rLPOCnnvvfcO+csvvww57Q87++yzy/Hw4cPD3JQpU0L+8MMPa7dYWqT09eAXX3xxOd5zzz1rda5111035DfeeKPO66Ll2m677UJeZ511Qk63n7vrrrtC9vwQTamyzzr9+ZhuX3zVVVc1yppoXtJt1K+55ppynD5DMjvS7TY///zzkLt27RryYostFvINN9wQ8uKLL17jtdKtPpuaO/8AAJAJxT8AAGRC8Q8AAJnIuuf/hBNOCHmfffYJ+ZJLLgn5uOOOC/nrr79umIXRYm288cYh77HHHiEPGDCgxmN/+OGHkAcNGhTyiBEjZm9xtFgLLLBAOU7f7zAzEyZMCHns2LF1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f9woa6ord/4BACATin8AAMiE4h8AADLR6nr+99hjj5A333zzkHv37l2Ol19++arneumll0LeZpttQp44cWIdVggNY/755y/HTz/9dJhbbLHFQv71r38d8ujRoxtqWTRjW221Vch33313yGlP63HHHRfyt99+2zALA1qsDh06hNy+ffuQ09qppfwc2XLLLUPeYIMNQt53333LcfpOlGnTpjXcwurAnX8AAMiE4h8AADKh+AcAgEy0KYpiRlMvoja6du0a8rXXXhty2pf/1VdfhfzCCy/UeO6NNtoo5Moe6qIoihEjRoTcs2fPakuFWkn78hdaaKGqn58wYULIG2+8cTm+4YYbwtzIkSNDXnvttUOePHnyLK+Tlm3ZZZctx2+++WaYe/bZZ0NOe1ynT5/ecAsDWoXTTjst5GOOOSbko446KuQLLrigwddUH9Zbb72Q02frKq2wwgohjxo1qiGWVGfu/AMAQCYU/wAAkAnFPwAAZKLF7fP/yCOPhNy9e/eQhw4dGvKf//znkL/88ssaz532aP3rX/8KuUePHiGfeOKJIZ966qk1nps89OrVK+RBgwaF3K1btxqPTb9fSy65ZNVrnX322SFXPoPSpk2bMDdu3LiQ55lnnqrnpvVo165dyJXPSf3nP/8JczvvvHPIevypb126dCnHu+yyS5g79thjQ06fg0odf/zxIad7q9M8nXTSSSG///77IQ8bNqwxlzPLFllkkaZeQr1x5x8AADKh+AcAgEwo/gEAIBMtoud/s802K8errbZamLvzzjtDTveTrY10H/8LL7ww5LS/cODAgSHr+WeTTTYJeZ999pnlY7///vuQb7nllqrn/tOf/lTjuWbMiK/vuPHGG0P+4osvZnldtGzpntvrrLNOOV5uueXC3KRJkxplTeSjT58+IVfu6Z6+byT9uZXmVPrdrnxuKv39TPPRvn37kNP30my++eYhv/rqqw2+pp+TrvOII46Y5WN32mmnkJvb8yju/AMAQCYU/wAAkIkW0fYz11z/b5npK5Jvv/32Brvu3XffHXLa9pNuodexY8dy7M/neTj55JNDTl9bnvrLX/5SjsePHx/mzj333JDT+d69e4f86KOPhty1a9caj02/y7Rebdu2Dbl///4hV76SfuzYsY2xJDJS+XOoKIrimmuuCXnFFVcsx+nPqfvvvz/kdMvHPffcM+S0taKyxSjdznjq1KlVVk19Gj16dK0+X1k7FUVRnHLKKSFX/gybMGFCnddVW8suu2zIaZtaS+bOPwAAZELxDwAAmVD8AwBAJlpEz/9TTz1VjtOtPr/99tsGu2669WJq4YUXDnn33Xcvx1deeWWDrInmZf755w953nnnDXnMmDEhH3fcceX4448/rnrutN/w2GOPDXmhhRYK+ZtvvinH6bMI3333XdVr0XocffTRIafb1VV+B6G+pX36lT3+RVEUjz32WDnecssta3Xud999N+S+ffuGvPjii9d43TfffLNW16Lu0q2lF1tssZBPOumkqsdvscUWIe+4447l+Nprr529xdXCZ599FvL7778f8tJLL13jsXfddVeDrKm+uPMPAACZUPwDAEAmFP8AAJCJFtHz31T9yml/13//+9+QV1pppZCXW265Bl8TzUu6f/5vfvObkHv27Bny2WefXY4PPvjgMNepU6eQzz///JC32mqrkL/88suQzzjjjHJ8xRVXVFs2rdjmm28e8vPPPx/y66+/3pjLITNTpkypOp8+E1CfKt+v8/nnnzfYdajuxx9/DPniiy8OuV+/fiGnz7el/vCHP5Tj++67L8x98cUXdVniLPnFL34RcrUe/5bGnX8AAMiE4h8AADKh+AcAgEy0iJ7/pvLDDz+EPG3atCZaCc3VG2+8EfJLL70Uctrzv8kmm5TjzTbbLMxdcMEFIS+55JJVr33KKaeEfMkll1T9PK3TeuutF3KfPn1CXnnllet87o022ijk8ePHh5w+BwVt2rSpmidMmFCO27VrF+aWWWaZkAcMGBDyGmusEfInn3wS8m677VaOx40bN2sLpsFNnDgx5PQ5pJn1/Ff+DFtiiSXCXG17/ueZZ55yfMABB1T97E477VSrc7ck7vwDAEAmFP8AAJAJxT8AAGRCz38Vbdu2DTntT0xNnjy5IZdDM/T999+HXLnP9M9ZbLHFyvE999wT5tLe2BkzZoR83XXXhXz//ffP6jJpxfr37x/y22+/HfIHH3xQ47FpT/V5550XcufOnUNOv++DBw8O+bLLLqu6Vlq/9P036c+xI444ohwfeeSRYS7t6U/tuuuuIafvWaFlePHFF0Pea6+9ZvnYddddN+T0ubtf/epXVXP79u3L8fHHHz/L150VlT97K59taY7c+QcAgEwo/gEAIBNtiqKYMdNPZWr55ZcPOf1zeqryz0vplo+prl27hrzqqquGnP5p66677irHI0eOrHpums6gQYNCTrfvrCZt+3nooYdCTv9E/s4779RydbRGU6dODXn33XcPOW2NqNzqLv1ZctRRR4X86KOPhrzllluGfMMNN4S8ww47lONHHnmk2rJppdLtX7t37x5yZTvtzFodv/3225DTbWzfeuutui6TZuTmm28OOf0ZVp/mmOP/3fOePn16g11n//33Dzlt221q7vwDAEAmFP8AAJAJxT8AAGQi660+0608F1988ZDTLaJm5sorryzHr732WphbffXVQ+7SpUvI6Sur021DK19/nW7PR9OZc845Q15//fVDTntaq0l7/LfZZpu6L4xWK91Kca654o/xadOmVT2+8mdR2pc/s60T77jjjpDXW2+9kI855pgaz00e0u9n2qdf+Xs2/T6l7r333pD1+LdO6RbDu+22W4Ndq7LPP33GpD6l33s9/wAAQJNQ/AMAQCYU/wAAkIkW0fM/77zzluNf/OIXYS7tpU/7rDbZZJMaz9uuXbuQ017F2qo8vlOnTlU/e/3114ec9nt//vnnIY8ePXq21kbDuP3220Ou3Oe8KGrXU9iQ/Ye0HossskjV+REjRlSdr9yHfXZfb3/FFVeE/J///Ge2zkfrk77zplevXrN87JlnnlnfyyFzo0aNKsfp79y0Dps4cWLIJ554YsMtrJG58w8AAJlQ/AMAQCYU/wAAkIlm0fNf2dNfFEVx8sknh1y53/kKK6wwW9eaNGlSOU730k/3x073z05de+21IVfu8//666/XdYk0M4sttlg5HjhwYJjbcccdQ057CNPvwZtvvlnjudLnWaAuxo0bV3U+/bk3O8aOHVtv5yIPK6+8cjmeY454/7FyD3aYFV9++WXIH374YcjpOwRuu+22WT537969Q9bzDwAAtDiKfwAAyITiHwAAMtEsev7vv//+kDfbbLOQv//++3Kc7sP6wQcfhDxs2LAajy2KuF9+2q+a7o/do0ePkN9///2QjzjiiJC//vrrgtZn0003Lcennnpq1c+m+6ZfeumlIW+//fblOO35f+utt+q4QnLSpk2bqrkxbbjhhiHX5/MEtE5Tpkwpx2mP/9NPPx3y1KlTG2NJNLG0trrppptCXnrppcvx22+/HeYuu+yykIcPH17Pq6ubzTffPOTOnTuHPGHChMZczk+48w8AAJlQ/AMAQCYU/wAAkIlm0fOf9kalffw77LBDOX7jjTdm61qVe/efc845Ye6Xv/xlyJ999lnIO++8c8h6/FunjTbaKOSLL764xs9uu+22If/jH/8IeZFFFgm52j7Blc+jQE3Sd0mkuSHNPffcIR944IEh33zzzY22FlqG9N08++yzTzkeP358mLviiitC9jMxD5XvXyqKoth7772baCX1J60n55lnniZayc9z5x8AADKh+AcAgEw0i7af9M/WX331Vcizs3VTu3btQr7rrrvK8VZbbRXm0m1Bd91115Bff/31Oq+DliPdarZTp07l+Jlnnglzf/vb30JO2yK23nrrGs+VbtGY/gkcfk66JezHH38ccv/+/UNOWylqI/0+p+fq3r17yHvttVedr0XrUPkzriiK4tFHHw25sh1iyJAhYe7uu+9uuIVBLaW1aPqzdtFFF53lc5155pkhH3DAASFPmzatdoubTe78AwBAJhT/AACQCcU/AABkoln0/L/zzjsh9+7dO+Srr766HC+44IJh7s033ww5fU30UUcdFfLyyy9fjl9++eUwd9BBB4U8u9uK0jKlr5yvfCYlfT4l7YnefvvtQ77oootCrnyl97XXXhvmZqc3m3ykfadpL+l5551X9fhbb721HC+99NJhbtVVVw352GOPDfm7774LOd2m+fPPP696bVq/oUOHhpxueXjbbbeV45l9V6EppVvN/v73vw/53nvvDXnhhReu8Vzp81CDBg0KWc8/AADQIBT/AACQCcU/AABkok1RFI33bvhZdNppp4U8ePDgcjzHHLX775UHHngg5Ouuu64cP/LII3VYHa3dVVddFfK+++5bjtN9qNMev/XXX7/quSufCXjwwQfruEKo2R/+8IeQ//znP4fctm3bGo+dPHlyyBdffHHIp59+eshTp06tyxJpRfr27RvysGHDQk6foap8D0X6WWhJ1lxzzZAr3/vTtWvXqsduuummIafvEGpo7vwDAEAmFP8AAJAJxT8AAGSiWfb8Q1M67LDDQq62F3WbNm1C/vLLL0O+7LLLQj777LPL8ZQpU+q4QoCm0b1795Bfe+21kNu1axdyZY9/URTFfffd1yDrgqa22267leP0HVMPPfRQyJW1QFEUxTfffNNwC/sZ7vwDAEAmFP8AAJAJxT8AAGRCzz8kOnfuHPJ+++1Xjk844YQw9+qrr4acvlfiggsuqOfVATSueeedtxwPHTo0zB100EEh33PPPSHvsssuDbcwoE7c+QcAgEwo/gEAIBOKfwAAyISefwCgRpV9/ZdeemmYe+GFF0Lu27dvyN9//33DLQyoE3f+AQAgE4p/AADIhLYfAKC09tprh1y5fef1118f5q655pqQx44d23ALA+qFO/8AAJAJxT8AAGRC8Q8AAJnQ8w8AAJlw5x8AADKh+AcAgEwo/gEAIBOKfwAAyITiHwAAMqH4BwCATCj+AQAgE4p/AADIhOIfAAAyofgHAIBMKP4BACATin8AAMiE4h8AADKh+AcAgEwo/gEAIBOKfwAAyITiHwAAMqH4BwCATCj+AQAgE4p/AADIhOIfAAAyofgHAIBMKP4BACATin8AAMiE4h8AADKh+AcAgEwo/gEAIBOKfwAAyITiHwAAMqH4BwCATCj+AQAgE4p/AADIhOIfAAAyofgHAIBMzNXUCwAAuO2220Lu06dPyLvuumvIL7/8coOvCVojd/4BACATin8AAMiE4h8AADLRpiiKGU29iJZio402CvmJJ54IeY455qjxs88880xDLQsAWrwXXngh5HXXXTfkUaNGhdyzZ8+Qf/jhh4ZZGC3WjjvuGHK7du3K8ZprrhnmDjvssJCfeuqpkK+77rqQ33777ZBff/31ui6z0bnzDwAAmVD8AwBAJhT/AACQCT3/VQwYMCDkQw45JORVVlkl5Mqe/zfeeCPM3XTTTSFfdtllIU+bNq2OqwRoGsccc0zIZ5xxRjkeOnRomPvTn/7UKGui5VhiiSVCfu+990Kee+65qx4/33zzhTxlypT6WRjN1rzzzhvy8ssvH/Jpp50W8qabbhpy27Zt620tH3zwQchPPvlkOR4yZEiYmzRpUsg//vhjva2jLtz5BwCATCj+AQAgE4p/AADIhJ7/CmmP/x577BHyBhtsUPX4yp7/6dOnV/3ssssuG/KYMWNmYYW0Zt26dQv58MMPD/nggw8Oea655gr59ttvL8e77757Pa8OiqJDhw4hjxw5MuSFF164HKd7rv/hD38IOd0zm/z06tUr5P/85z9VP3///feHnO7hPrPfu7QM6fOU66+/fjneYostwtxWW23VKGuaXaecckrI9957b8jDhw9vzOW48w8AALlQ/AMAQCYU/wAAkIm5Zv6Rlm2BBRYIuXfv3uX4hhtuCHNdu3YNuV27dlXPPWLEiJAre/579OhRi1WSo4EDB4Z84YUXhvzuu++GfMABB4Sc7pF90kknleNTTz01zKXfVZgV6XMlBx10UMiVPf6pTz/9NOQXX3yx/hZGi1X5nUrfEzEzf/3rX0PW4986Vfb4F0VRXHzxxXU+14cffhjy7Oyvv+iii4Y8sxqxUuXv56IoivHjx4es5x8AAGgQin8AAMiE4h8AADLR6nr+t99++5D322+/kDfffPNyXNmjXxS17x/885//HHLl+a655ppanYvWaZ555gn5yCOPLMcnnnhimDv//PNDTr9fX331Vcirr756yJU9hZMnT671WiHVp0+fkM8666xZPvbAAw8M+a233qqXNdGyXXDBBeXY+0iYFZXvd0hrvE8++STka6+9NuT09+jXX39d53UMGjQo5Mrvckvjzj8AAGRC8Q8AAJlo8W0//fv3D/kvf/nLLB+btv3UVps2bRrs3LQO6Xaep59+ejk+7LDDwtwll1xSq3NXtrAVRVF89tln5XjcuHG1OhcURVF079495NpusffEE0+U46effroeVkRLl7be7rPPPk20ElqKdEvXm2++uRwfd9xxYe67774LefTo0Q22rn/96191Pvabb74J+fPPP5/d5cwWFSoAAGRC8Q8AAJlQ/AMAQCZaXM9/2uN/4YUXhpxu15n2g1W+cr5Dhw5hrkuXLlWvnZ5r0qRJIXfq1KnGdZCH9Dt02mmnhXz33XeX4yuuuKJW5+7WrVvI++67by1XB9U9+OCDIffs2bPq59OfgZXb6k2ZMqX+FkaLkT7ndOmll4Zcuf3x66+/HubS7YvJ04QJE2qcS3/m1Ke555475DPPPDPknXbaqc7nHjJkSMh33XVXnc9VH9z5BwCATCj+AQAgE4p/AADIRIvo+a98nXO6j//MeutffvnlkPv27VuOBwwYEOauueaaquc69thjQ77vvvtCTs9H6zfXXPGf0PPPPx9y5TMmRVEUBx10UDmeNm1ara51yy23hLz00kuHfN5559XqfJBaaaWVQp4xY0bVz19++eUhP/744/W+Jhpe+/btQ1511VVD7tGjRzleZ511wtzOO+8ccufOnatea9CgQeX44YcfDnOjRo2a+WKhnmy88cYhH3744SFvtdVWdT73+++/H3JaLzY1d/4BACATin8AAMiE4h8AADLRLHv+0975dC//Sune+2mPf2V/4cy8+eabIafPF8xsX/bKPdz322+/MLf22mvP8jpoOX7/+9+HXNkbWxRFsckmm4T85ZdfzvK5d9ttt5D79OkT8tdffx3yueeeO8vnhqIoivPPPz/kNm3ahJz2/D/xxBMhp++xoGVafPHFQ77++utDTn+uVZo4cWLI6bNzQ4cODXn06NE1XhcaWuV7KK666qowN+ecc87WuU899dRyfP/994e5Tz75ZLbOXd/c+QcAgEwo/gEAIBOKfwAAyESz7Pk/4YQTQp5//vlr/OyZZ54Z8llnnTXL13nuuedC/vvf/x5yukf7zFT2YH///fe1OpaWaa+99gp55MiRIb/wwguzfK5FFlkk5PRZlznmiP+tfskll4Rc2+8rebrsssvKceU7VIripz3+//d//xdyv379Qk6fuaJlGjFiRMirrLJKyMstt1yNx06aNCnkDz/8sP4WlqhWC0BR/PS7u91224VcWV/Wtsc//XmXvqei8jnRymdbmiN3/gEAIBOKfwAAyESzaPvp3bt3yB06dAi5st1hdrdiqtSQrxJPt8xLWzZoHbbYYouQTzzxxJB/+OGHGo/t2LFjyPfcc0/IXbt2DfnKK68M+ZxzzpnldZKvdJvhylaftNUsdfXVV4c8fvz4elsXzVfatjp8+PAGuc7kyZNDTrdDTL+faQvHjTfe2CDrovmae+65Q15mmWVCvuuuu0JedtllazzXjz/+GHK139dF8dPf7+edd17VzzdnKlIAAMiE4h8AADKh+AcAgEw0Sc9/r169Qk57nTt37hzy9OnTG3xN9aF9+/bleJ555glzLeV/A9VtuummVefTV3qnKp8RSF8tvuSSS4acPpNy7LHHhpxusQc/Z++99w550UUXrfGzb7/9dsjDhg1rkDVBURTFF198EfIHH3wQctrz/9RTTzX4mmjehgwZEvIpp5xSq+OfffbZcnzHHXeEuSuuuKLuC2th3PkHAIBMKP4BACATin8AAMhEk/T8X3zxxSGnvc4t1e9///tynO6tTevw6aefhpy+7vvOO+8MOX1nxUILLVSO072003dDXHbZZSFPnDixdoslS4cddljI++yzT8gzZsyo8djNNtss5I8++qje1gWz6+OPP27qJdAI5p9//pAr9+ofMGBArc6VPieyxx57lOOcv0/u/AMAQCYU/wAAkAnFPwAAZKJJev5r6+ijj27qJfysFVZYIeShQ4fW+NnRo0eHnPaK0zIMHz485AMPPDDktL/6zTffDPm2224rx5deemmYe/XVV0NO3wMAP2eJJZYIOf0OzjFHvMfz448/luNrrrkmzOnxpzlJn0/57LPPmmglNKa0rz99TrSap59+OuTf/e53IU+ePLmuy2pV3PkHAIBMKP4BACATin8AAMhEi+j5/+KLL5p6CUVR/LTHf9iwYSEvuOCC5TjtTax8B0BR/HS/eFqmm266qWpO9+6/8MILy/HCCy8c5nbYYYeQPRfCz6nc87ooiuKBBx4Iefnll696/AUXXFCOhwwZUn8LI0vp97FLly5VP//tt9+W4y+//DLMnX/++SGnz9FVvifl5/J8881Xjk8//fQwd9ddd4Wc/ruh6aS1VW2e83ziiSdC7t+/f8j12ePfrVu3kNP3EVR+59LPzszXX38d8jHHHBPyCy+8UKvzzYw7/wAAkAnFPwAAZELxDwAAmWiSnv+0Dzrdhzp1ww03lOO0p7o+tW/fPuT0Wtttt13V499///1yvPXWW4e5kSNHzubqaIk23HDDkP/4xz+W4zPOOCPMpfv8w89Je/pn1uOf0uvMzMwzzzwhL7300uV4//33D3MHHHBAyJV99z9n6tSp5Tjtc57Z8wJp3/748eNDrlx3p06dwtwnn3wSsn8HTad3794h33nnnSEvvvjis3yuUaNGhbzccsuFXO3dECeffHLIc845Z9Vr9evXL+Ta9vVXM3DgwJDru8c/5c4/AABkQvEPAACZaJK2n3QLrjvuuCPk9M91lZ566qmQ09d/p9tvpu02lVtIpe1H6Z8611577ZArtygriqI488wzQ7733ntrvC55+utf/xryRx99VI7TbexgVsysNSKVvu7+rbfeqsfV0Bqk2w5fdNFFIe+yyy51PvfHH38ccuXv7P/+979h7s0336zzdWbmL3/5S4Odm9pJW3WefPLJkJdZZplZPlfadrbzzjuHPGnSpBqPXXLJJUNOa8LG9Mtf/rJRr+fOPwAAZELxDwAAmVD8AwBAJtoURTFjpp9qYOl2iPfcc0/Ilc8ApNuCTp8+vc7Xndm5nnnmmZDTrT8bcttRWqY111wz5HS7rkGDBpXjK6+8slHWROsyevTokJdYYomqn0/7te++++76XhIt3OGHHx7y+eefP8vH/u1vfwv5vPPOC/n5558P+Ycffqjl6mjt2rZtG/KNN94YctrH3xKddNJJIX/xxRchX3/99SF///33Dboed/4BACATin8AAMiE4h8AADLRLHr+U+l+p5WvEz/++OPD3Oz0/KevfX722WdDTvePnThxYp2vRevUrl27kNMe/86dO4fcq1evcvzNN9803MJoVVZaaaVynO7bn+77f8opp4R82mmnhZy+GwW6d+8e8gMPPBBy5ftJ0vfy3HDDDQ22LvK09dZbh3zYYYeV44033rjR1vG///0v5F133TXkt99+e5bPNXny5JBnp3atD+78AwBAJhT/AACQCcU/AABkYq6mXsDPGTduXMiV+6O+//77YW7w4MEhr7DCCiGPGDEi5D//+c/l+L333gtz6X7EMDMDBw4MedVVV62a9flTF3369CnHHTp0qPrZdH9oPf7MTPruiFVWWaVpFgLFT98dUfmc0zbbbBPm0udVTj/99Krnvvrqq8vxP//5z6qfTevNl19+uernWxJ3/gEAIBOKfwAAyITiHwAAMtEs9/mHluKtt94KOe23XmuttUKeNm1ag6+J1m3MmDEhzzfffCFvttlmIb/xxhsNvSQAWhB3/gEAIBOKfwAAyITiHwAAMtEs9/mHlqJLly4hn3LKKSHr8ae+devWramXAEAL5s4/AABkQvEPAACZsNUnAABkwp1/AADIhOIfAAAyofgHAIBMKP4BACATin8AAMiE4h8AADKh+AcAgEwo/gEAIBOKfwAAyITiHwAAMqH4BwCATCj+AQAgE4p/AADIhOIfAAAyofgHAIBMKP4BACATin8AAMjE/we44d26OFXa3AAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Look at the first few elements of the training set\n", + "figure = plt.figure(figsize=(10, 8))\n", + "cols, rows = 5, 5\n", + "for i in range(1, cols * rows + 1):\n", + " img, label = dataset[i]\n", + " figure.add_subplot(rows, cols, i)\n", + " plt.axis(\"off\")\n", + " plt.imshow(img.squeeze().cpu(), cmap=\"gray\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "vE-h__HgGBh9", + "outputId": "1d2473a3-eeb4-411e-aa76-57e5eed21b8e" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Using the Variance Exploding SDE\n" + ] + } + ], + "source": [ + "C = 1 # one channel for grayscale images [0, 255]\n", + "B = 128 # batch size\n", + "checkpoints_directory = \"checkpoints\"\n", + "net = NCSNpp(channels=C, dimensions=len(dimensions), nf=64, ch_mult=[2, 2, 2])\n", + "model = ScoreModel(model=net, sigma_min=1e-2, sigma_max=50, device=DEVICE)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "8Uhllz86QWGY", + "outputId": "3bcd41ad-3d38-437d-f178-30f1ad478563" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Epoch 10 | Cost: 3.6e+01 |: 100%|██████████| 10/10 [34:50<00:00, 209.04s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Finished training after 0.581 hours.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "#For me, training takes about 45 minutes for 10 epochs B=128 using the colab T4 GPU\n", + "losses = model.fit(dataset, epochs=10, batch_size=B, learning_rate=1e-4, checkpoints_directory=checkpoints_directory)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "3E-a-dRKL5Tb", + "outputId": "033e905e-ee8e-4d6f-e92b-39bd0130dffb" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Sampling from the prior | t = 0.0 | sigma = 1.0e-02| scale ~ 3.2e-01: 100%|██████████| 1000/1000 [02:39<00:00, 6.28it/s]\n" + ] + } + ], + "source": [ + "#Takes about 3 minutes to sample using 1000 steps\n", + "samples = model.sample(shape=[B, C, *dimensions], steps=1000)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 653 + }, + "id": "c5boq5RGS3IT", + "outputId": "20674584-9415-40fa-ceeb-83178859b1f2" + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#@title Plot the generated samples\n", + "# Not a bad starting point, but can definitely be improved!\n", + "\n", + "figure = plt.figure(figsize=(10, 8))\n", + "cols, rows = 5, 5\n", + "idxs = np.random.choice(B, cols*rows, replace=False)\n", + "\n", + "for i in range(1, cols * rows + 1):\n", + " img = samples[idxs[i-1]]\n", + " figure.add_subplot(rows, cols, i)\n", + " plt.axis(\"off\")\n", + " plt.imshow(img.squeeze().cpu(), cmap=\"gray\")\n", + "plt.show()" + ] + } + ], + "metadata": { + "accelerator": "GPU", + "colab": { + "gpuType": "T4", + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +}