├── .gitignore ├── LICENSE ├── README.md ├── Unrolled GAN demo.ipynb └── requirements.txt /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | env/ 12 | build/ 13 | develop-eggs/ 14 | dist/ 15 | downloads/ 16 | eggs/ 17 | .eggs/ 18 | lib/ 19 | lib64/ 20 | parts/ 21 | sdist/ 22 | var/ 23 | *.egg-info/ 24 | .installed.cfg 25 | *.egg 26 | 27 | # PyInstaller 28 | # Usually these files are written by a python script from a template 29 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 30 | *.manifest 31 | *.spec 32 | 33 | # Installer logs 34 | pip-log.txt 35 | pip-delete-this-directory.txt 36 | 37 | # Unit test / coverage reports 38 | htmlcov/ 39 | .tox/ 40 | .coverage 41 | .coverage.* 42 | .cache 43 | nosetests.xml 44 | coverage.xml 45 | *,cover 46 | .hypothesis/ 47 | 48 | # Translations 49 | *.mo 50 | *.pot 51 | 52 | # Django stuff: 53 | *.log 54 | local_settings.py 55 | 56 | # Flask stuff: 57 | instance/ 58 | .webassets-cache 59 | 60 | # Scrapy stuff: 61 | .scrapy 62 | 63 | # Sphinx documentation 64 | docs/_build/ 65 | 66 | # PyBuilder 67 | target/ 68 | 69 | # IPython Notebook 70 | .ipynb_checkpoints 71 | 72 | # pyenv 73 | .python-version 74 | 75 | # celery beat schedule file 76 | celerybeat-schedule 77 | 78 | # dotenv 79 | .env 80 | 81 | # virtualenv 82 | venv/ 83 | ENV/ 84 | 85 | # Spyder project settings 86 | .spyderproject 87 | 88 | # Rope project settings 89 | .ropeproject 90 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Ben Poole 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Unrolled Generative Adversarial Networks 2 | [Luke Metz](http://lukemetz.github.io/), [Ben Poole](http://cs.stanford.edu/~poole), [David Pfau](http://davidpfau.com/), [Jascha Sohl-Dickstein](http://www.sohldickstein.com)
3 | [arxiv:1611.02163](https://arxiv.org/abs/1611.02163) 4 | 5 | This repo contains an example notebook with a TensorFlow implementation of unrolled GANs on a 2d mixture of Gaussians dataset. 6 | 7 | ![image](https://cloud.githubusercontent.com/assets/718528/21971361/c8aff65e-db64-11e6-97b5-3f1996f51f82.png) 8 | ![image](https://cloud.githubusercontent.com/assets/718528/21971363/cc7ccb22-db64-11e6-9acb-c5ecaa657c9d.png) 9 | -------------------------------------------------------------------------------- /Unrolled GAN demo.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": { 6 | "deletable": true, 7 | "editable": true 8 | }, 9 | "source": [ 10 | "# Unrolled generative adversarial networks on a toy dataset\n", 11 | "\n", 12 | "This notebook demos a simple implementation of unrolled generative adversarial networks on a 2d mixture of Gaussians dataset. See the [paper](https://arxiv.org/abs/1611.02163) for a better description of the technique, experiments, results, and other good stuff. Note that the architecture and hyperparameters used in this notebook are not identical to the one in the paper.\n", 13 | "\n", 14 | "## Motivation\n", 15 | "The GAN learning problem is to find the optimal parameters $\\theta_G^*$ for a generator function $G\\left( z; \\theta_G\\right)$ in a minimax objective, \n", 16 | "$$\\begin{align} \n", 17 | " \\theta_G^* &= \\underset{\\theta_G}{\\text{argmin}} \\underset{\\theta_D}{\\max} f\\left(\\theta_G, \\theta_D\\right) \\\\\n", 18 | "&= \\underset{\\theta_G}{\\text{argmin}} \\;f\\left(\\theta_G, \\theta_D^*\\left(\\theta_G\\right)\\right)\\\\\n", 19 | "\\theta_D^*\\left(\\theta_G\\right) &= \\underset{\\theta_D}{\\max} \\;f\\left(\\theta_G, \\theta_D\\right),\n", 20 | "\\end{align}$$\n", 21 | "where the saddle objective $f$ is the standard GAN loss:\n", 22 | "$$f\\left(\\theta_G, \\theta_D\\right) = \n", 23 | " \\mathbb{E}_{x\\sim p_{data}}\\left[\\mathrm{log}\\left(D\\left(x; \\theta_D\\right)\\right)\\right] +\n", 24 | " \\mathbb{E}_{z \\sim \\mathcal{N}(0,I)}\\left[\\mathrm{log}\\left(1 - D\\left(G\\left(z; \\theta_G\\right); \\theta_D\\right)\\right)\\right].\n", 25 | "$$\n", 26 | "\n", 27 | "In unrolled GANs, we approximate $\\theta_D^*\\left(\\theta_G\\right)$ using a few steps of gradient ascent:\n", 28 | "$$\\theta_D^*\\left(\\theta_G\\right) \\approx \\hat{\\theta}_D\\left(\\theta_G\\right) \\equiv\\text{ a few steps of SGD maximizing}\\;f\\left(\\theta_G, \\theta_D\\right).$$\n", 29 | "\n", 30 | "We can then compute the update for the generator parameters, $\\theta_G$, by computing the gradient of the saddle objective with respect to $\\theta_G$ and the optimized discriminator parameters, $\\hat{\\theta}_D$:\n", 31 | "$$\\frac{d}{d \\theta_G} f\\left(\\theta_G, \\hat{\\theta}_D\\left(\\theta_G\\right)\\right)$$.\n", 32 | "\n", 33 | "## Implementation details\n", 34 | "To backpropagate through the optimization process, we need to create a symbolic computational graph that includes all the operations from the initial weights to the optimized weights. TensorFlow's built-in optimizers use custom C++ code for efficiency, and do not construct a symbolic graph that is differentiable. For this notebook, we use the optimization routines from `keras` to compute updates. Next, we use `tf.contrib.graph_editor.graph_replace` to build a copy of the graph containing the mapping from initial weights to updated weights after one optimization iteration, but replacing the initial weights with the last iteration's weights:\n", 35 | "\n", 36 | "![](https://cloud.githubusercontent.com/assets/718528/21964677/60bb94ea-db05-11e6-9e2d-9f7de280517e.png)\n", 37 | "\n", 38 | "This yields a new graph that allows us to backprop from $\\theta_D^2$ back to $\\theta_D^0$. We can then plug $\\theta_D^2$ into the loss function to get the final objective that the generator optimizes. Using the magic of `graph_replace` we can write the unrolled optimization procedure in just a few lines:\n", 39 | "```python\n", 40 | "# update_dict contains a dictionary mapping from variables (\\theta_D^0)\n", 41 | "# to their values after one step of optimization (\\theta_D^1)\n", 42 | "cur_update_dict = update_dict\n", 43 | "for i in xrange(params['unrolling_steps'] - 1):\n", 44 | " # Compute variable updates given the previous iteration's updated variable\n", 45 | " cur_update_dict = graph_replace(update_dict, cur_update_dict)\n", 46 | "# Final unrolled loss uses the parameters at the last time step\n", 47 | "unrolled_loss = graph_replace(loss, cur_update_dict)\n", 48 | "```\n", 49 | "\n", 50 | "Note there are many other ways of implementing unrolled optimization that don't use graph rewriting. For example, if we created a function that takes weights as inputs and returns the updated weights, we could just iteratively call that function." 51 | ] 52 | }, 53 | { 54 | "cell_type": "code", 55 | "execution_count": 1, 56 | "metadata": { 57 | "collapsed": false, 58 | "deletable": true, 59 | "editable": true 60 | }, 61 | "outputs": [ 62 | { 63 | "name": "stderr", 64 | "output_type": "stream", 65 | "text": [ 66 | "Using TensorFlow backend.\n", 67 | "WARNING:py.warnings:/usr/local/lib/python2.7/dist-packages/skimage/filter/__init__.py:6: skimage_deprecation: The `skimage.filter` module has been renamed to `skimage.filters`. This placeholder module will be removed in v0.13.\n", 68 | " warn(skimage_deprecation('The `skimage.filter` module has been renamed '\n", 69 | "\n" 70 | ] 71 | }, 72 | { 73 | "name": "stdout", 74 | "output_type": "stream", 75 | "text": [ 76 | "Populating the interactive namespace from numpy and matplotlib\n" 77 | ] 78 | } 79 | ], 80 | "source": [ 81 | "%pylab inline\n", 82 | "from collections import OrderedDict\n", 83 | "import tensorflow as tf\n", 84 | "ds = tf.contrib.distributions\n", 85 | "slim = tf.contrib.slim\n", 86 | " \n", 87 | "from keras.optimizers import Adam\n", 88 | "\n", 89 | "try:\n", 90 | " from moviepy.video.io.bindings import mplfig_to_npimage\n", 91 | " import moviepy.editor as mpy\n", 92 | " generate_movie = True\n", 93 | "except:\n", 94 | " print(\"Warning: moviepy not found.\")\n", 95 | " generate_movie = False" 96 | ] 97 | }, 98 | { 99 | "cell_type": "markdown", 100 | "metadata": {}, 101 | "source": [ 102 | "`graph_replace` is broken in TensorFlow 1.0 (see this [issue](https://github.com/tensorflow/tensorflow/issues/9125)). We get around this issue with an ugly hack that removes the problematic attribute from all ops in the graph on every call to `graph_replace`." 103 | ] 104 | }, 105 | { 106 | "cell_type": "code", 107 | "execution_count": 2, 108 | "metadata": { 109 | "collapsed": true 110 | }, 111 | "outputs": [], 112 | "source": [ 113 | "_graph_replace = tf.contrib.graph_editor.graph_replace\n", 114 | "\n", 115 | "def remove_original_op_attributes(graph):\n", 116 | " \"\"\"Remove _original_op attribute from all operations in a graph.\"\"\"\n", 117 | " for op in graph.get_operations():\n", 118 | " op._original_op = None\n", 119 | " \n", 120 | "def graph_replace(*args, **kwargs):\n", 121 | " \"\"\"Monkey patch graph_replace so that it works with TF 1.0\"\"\"\n", 122 | " remove_original_op_attributes(tf.get_default_graph())\n", 123 | " return _graph_replace(*args, **kwargs)" 124 | ] 125 | }, 126 | { 127 | "cell_type": "markdown", 128 | "metadata": { 129 | "deletable": true, 130 | "editable": true 131 | }, 132 | "source": [ 133 | "### Utility functions" 134 | ] 135 | }, 136 | { 137 | "cell_type": "code", 138 | "execution_count": 3, 139 | "metadata": { 140 | "collapsed": true, 141 | "deletable": true, 142 | "editable": true 143 | }, 144 | "outputs": [], 145 | "source": [ 146 | "def extract_update_dict(update_ops):\n", 147 | " \"\"\"Extract variables and their new values from Assign and AssignAdd ops.\n", 148 | " \n", 149 | " Args:\n", 150 | " update_ops: list of Assign and AssignAdd ops, typically computed using Keras' opt.get_updates()\n", 151 | "\n", 152 | " Returns:\n", 153 | " dict mapping from variable values to their updated value\n", 154 | " \"\"\"\n", 155 | " name_to_var = {v.name: v for v in tf.global_variables()}\n", 156 | " updates = OrderedDict()\n", 157 | " for update in update_ops:\n", 158 | " var_name = update.op.inputs[0].name\n", 159 | " var = name_to_var[var_name]\n", 160 | " value = update.op.inputs[1]\n", 161 | " if update.op.type == 'Assign':\n", 162 | " updates[var.value()] = value\n", 163 | " elif update.op.type == 'AssignAdd':\n", 164 | " updates[var.value()] = var + value\n", 165 | " else:\n", 166 | " raise ValueError(\"Update op type (%s) must be of type Assign or AssignAdd\"%update_op.op.type)\n", 167 | " return updates" 168 | ] 169 | }, 170 | { 171 | "cell_type": "markdown", 172 | "metadata": { 173 | "deletable": true, 174 | "editable": true 175 | }, 176 | "source": [ 177 | "### Data creation" 178 | ] 179 | }, 180 | { 181 | "cell_type": "code", 182 | "execution_count": 4, 183 | "metadata": { 184 | "collapsed": true, 185 | "deletable": true, 186 | "editable": true 187 | }, 188 | "outputs": [], 189 | "source": [ 190 | "def sample_mog(batch_size, n_mixture=8, std=0.01, radius=1.0):\n", 191 | " thetas = np.linspace(0, 2 * np.pi, n_mixture)\n", 192 | " xs, ys = radius * np.sin(thetas), radius * np.cos(thetas)\n", 193 | " cat = ds.Categorical(tf.zeros(n_mixture))\n", 194 | " comps = [ds.MultivariateNormalDiag([xi, yi], [std, std]) for xi, yi in zip(xs.ravel(), ys.ravel())]\n", 195 | " data = ds.Mixture(cat, comps)\n", 196 | " return data.sample(batch_size)" 197 | ] 198 | }, 199 | { 200 | "cell_type": "markdown", 201 | "metadata": { 202 | "deletable": true, 203 | "editable": true 204 | }, 205 | "source": [ 206 | "### Generator and discriminator architectures" 207 | ] 208 | }, 209 | { 210 | "cell_type": "code", 211 | "execution_count": 5, 212 | "metadata": { 213 | "collapsed": false, 214 | "deletable": true, 215 | "editable": true 216 | }, 217 | "outputs": [], 218 | "source": [ 219 | "def generator(z, output_dim=2, n_hidden=128, n_layer=2):\n", 220 | " with tf.variable_scope(\"generator\"):\n", 221 | " h = slim.stack(z, slim.fully_connected, [n_hidden] * n_layer, activation_fn=tf.nn.tanh)\n", 222 | " x = slim.fully_connected(h, output_dim, activation_fn=None)\n", 223 | " return x\n", 224 | "\n", 225 | "def discriminator(x, n_hidden=128, n_layer=2, reuse=False):\n", 226 | " with tf.variable_scope(\"discriminator\", reuse=reuse):\n", 227 | " h = slim.stack(x, slim.fully_connected, [n_hidden] * n_layer, activation_fn=tf.nn.tanh)\n", 228 | " log_d = slim.fully_connected(h, 1, activation_fn=None)\n", 229 | " return log_d" 230 | ] 231 | }, 232 | { 233 | "cell_type": "markdown", 234 | "metadata": { 235 | "collapsed": true, 236 | "deletable": true, 237 | "editable": true 238 | }, 239 | "source": [ 240 | "### Hyperparameters" 241 | ] 242 | }, 243 | { 244 | "cell_type": "code", 245 | "execution_count": 6, 246 | "metadata": { 247 | "collapsed": true, 248 | "deletable": true, 249 | "editable": true 250 | }, 251 | "outputs": [], 252 | "source": [ 253 | "params = dict(\n", 254 | " batch_size=512,\n", 255 | " disc_learning_rate=1e-4,\n", 256 | " gen_learning_rate=1e-3,\n", 257 | " beta1=0.5,\n", 258 | " epsilon=1e-8,\n", 259 | " max_iter=25000,\n", 260 | " viz_every=5000,\n", 261 | " z_dim=256,\n", 262 | " x_dim=2,\n", 263 | " unrolling_steps=5,\n", 264 | ")" 265 | ] 266 | }, 267 | { 268 | "cell_type": "markdown", 269 | "metadata": { 270 | "deletable": true, 271 | "editable": true 272 | }, 273 | "source": [ 274 | "## Construct model and training ops" 275 | ] 276 | }, 277 | { 278 | "cell_type": "code", 279 | "execution_count": null, 280 | "metadata": { 281 | "collapsed": false, 282 | "deletable": true, 283 | "editable": true 284 | }, 285 | "outputs": [], 286 | "source": [ 287 | "tf.reset_default_graph()\n", 288 | "\n", 289 | "data = sample_mog(params['batch_size'])\n", 290 | "\n", 291 | "noise = ds.Normal(tf.zeros(params['z_dim']), \n", 292 | " tf.ones(params['z_dim'])).sample(params['batch_size'])\n", 293 | "# Construct generator and discriminator nets\n", 294 | "with slim.arg_scope([slim.fully_connected], weights_initializer=tf.orthogonal_initializer(gain=1.4)):\n", 295 | " samples = generator(noise, output_dim=params['x_dim'])\n", 296 | " real_score = discriminator(data)\n", 297 | " fake_score = discriminator(samples, reuse=True)\n", 298 | " \n", 299 | "# Saddle objective \n", 300 | "loss = tf.reduce_mean(\n", 301 | " tf.nn.sigmoid_cross_entropy_with_logits(logits=real_score, labels=tf.ones_like(real_score)) +\n", 302 | " tf.nn.sigmoid_cross_entropy_with_logits(logits=fake_score, labels=tf.zeros_like(fake_score)))\n", 303 | "\n", 304 | "gen_vars = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES, \"generator\")\n", 305 | "disc_vars = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES, \"discriminator\")\n", 306 | "\n", 307 | "# Vanilla discriminator update\n", 308 | "d_opt = Adam(lr=params['disc_learning_rate'], beta_1=params['beta1'], epsilon=params['epsilon'])\n", 309 | "updates = d_opt.get_updates(disc_vars, [], loss)\n", 310 | "d_train_op = tf.group(*updates, name=\"d_train_op\")\n", 311 | "\n", 312 | "# Unroll optimization of the discrimiantor\n", 313 | "if params['unrolling_steps'] > 0:\n", 314 | " # Get dictionary mapping from variables to their update value after one optimization step\n", 315 | " update_dict = extract_update_dict(updates)\n", 316 | " cur_update_dict = update_dict\n", 317 | " for i in xrange(params['unrolling_steps'] - 1):\n", 318 | " # Compute variable updates given the previous iteration's updated variable\n", 319 | " cur_update_dict = graph_replace(update_dict, cur_update_dict)\n", 320 | " # Final unrolled loss uses the parameters at the last time step\n", 321 | " unrolled_loss = graph_replace(loss, cur_update_dict)\n", 322 | "else:\n", 323 | " unrolled_loss = loss\n", 324 | "\n", 325 | "# Optimize the generator on the unrolled loss\n", 326 | "g_train_opt = tf.train.AdamOptimizer(params['gen_learning_rate'], beta1=params['beta1'], epsilon=params['epsilon'])\n", 327 | "g_train_op = g_train_opt.minimize(-unrolled_loss, var_list=gen_vars)" 328 | ] 329 | }, 330 | { 331 | "cell_type": "markdown", 332 | "metadata": { 333 | "deletable": true, 334 | "editable": true 335 | }, 336 | "source": [ 337 | "## Train!" 338 | ] 339 | }, 340 | { 341 | "cell_type": "code", 342 | "execution_count": 8, 343 | "metadata": { 344 | "collapsed": false, 345 | "deletable": true, 346 | "editable": true 347 | }, 348 | "outputs": [], 349 | "source": [ 350 | "sess = tf.InteractiveSession()\n", 351 | "sess.run(tf.global_variables_initializer())" 352 | ] 353 | }, 354 | { 355 | "cell_type": "code", 356 | "execution_count": 9, 357 | "metadata": { 358 | "collapsed": false, 359 | "deletable": true, 360 | "editable": true, 361 | "scrolled": true 362 | }, 363 | "outputs": [ 364 | { 365 | "name": "stderr", 366 | "output_type": "stream", 367 | "text": [ 368 | "\r", 369 | " 0%| | 0/25000 [00:00" 377 | ] 378 | }, 379 | "metadata": {}, 380 | "output_type": "display_data" 381 | }, 382 | { 383 | "name": "stderr", 384 | "output_type": "stream", 385 | "text": [ 386 | " 20%|█▉ | 4999/25000 [02:58<12:08, 27.44it/s]" 387 | ] 388 | }, 389 | { 390 | "data": { 391 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUkAAAE4CAYAAADW9AHMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XecXGX1x/HPSSGEhFBCDzU06R2kGZGOgnSRpj+UpqiA\niqDIElDshaICgqDSi4CICoQO0rskIL13Qksg9fz+OHcyd+7O3pndndlp3/frtS/29meXydn7tPOY\nuyMiIuUNanQBRESamYKkiEgOBUkRkRwKkiIiORQkRURyKEiKiORQkBQRyaEgKSKSQ0FSRCSHgqSI\nSA4FSRGRHAqSIiI5FCRFRHIoSIqI5FCQFBHJoSApIpJDQVJEJIeCpIhIDgVJEZEcCpIiIjkUJEVE\ncihIiojkUJAUEcmhICkikkNBUkQkh4KkiEgOBUkRkRwKkiIiORQkRURyKEiKiORQkBQRyaEgKSKS\nQ0FSRCSHgqSISA4FSRGRHAqSIiI5FCRFRHIoSIqI5FCQFBHJoSApIpJDQVJEJIeCpIhIDgVJEZEc\nCpIiIjkUJEVEcihIiojkUJCUhjBjnBk3mTHBjI0aXR6Rnpi7N7oM0mHMWAx4ChiR7JoMLOfOe3V8\n5vHAF4Hnga+680K9niXtRW+S0ghjKQZIgAWAper1MDO6gC5gJWBr4Lx6PUvaj4KkNMJE4NXU9rPA\n0329mRlzmfFHM54z4+9mjE4d24cIkGkr9fVZ0nmGNLoA0nncedeMTwHfAWYBNwG/M+MN4CR33s+7\n3oytgO2BScDZwLeBryaHlwFOMeMyYOPkPMvc4qpa/SzS/tQmKXVnxmDgD8BuxBvj3u48lRxbA7gP\nmCs5/Xp3tilzj0HA14CtgJ0oBr7LgdWBlVOnP0NU6cu5AdgWWBo4B1gOuMSd7/b155P2piApdWfG\nIUSQLLjNnU8lx84H9k4dmwUMdcfNGAvsDrwOrEG8McKgmTDsfZg+EmYNpfuLIhOBVVPb7xJtoDcD\newCLAddT2g56ujuH9uPHlDal6rbUhBnLAqcSAegsd85IHc52yiyVXDMf8IXMsaeSALkMcC+wYLL/\nfQbNhK2/DRueBoNnQ+Hv+79/C3d/q3D96cBHlAbJc9w5MlXOu4D5M8890IzD3ZlW9Q8tHUEdN1Ir\nlwOfA9YHTjdji9Sxy4CPU9tzm3ECMDcwOHOfiWYMAXagGCDBZo3iqxvAxqdEgIR4gTRgu8Nhl31g\n8HSAA4H9gOnAW8D5wA9T99+a7gGSpByFKj9mbGDGzmapMkhHUpCUWlm9p213HiSqzTOSXYsRgWs3\nouMlbRfgN0SAK1r6VljiofJPNmCtC+BTJ0IEu4WIgDca+LE7U8z4rBlPAON7KP/J7nwAYMaRwD3A\nFcCDybhO6VAKklIr16a+n0a0/6XtDgzN7NsO+BGlb5kA+wO3lexZ+9zKJVjxH9k9BiyWDAm6lBj6\nszjR7vkG8BBwGLC5O4enrjsm9f3SlLaZSodRm6TUyl7AUcCiwHnuPJo5nq1WA3wWWJaodqeNJHqn\nPwKGAzDf85VLMH1Eub2WlGl4piyLJP+9w53sK+oHxNtoels6lN4kpSbcmerO8e4c6s4dZU75GTH9\nMG0Q5YfqDALuAN4HogHyjTUqF+KJncvtnQA8QPe3VYjqeHagOUS7ZmGs5r+AP1d+uLQrBUmpOzPm\nJtoZFyhzOK83eVEKn9EbflrszS7Hgee2KHfEgGHE2+rMMs/rNn7InRuAhYGF3NnBnek5T5Y2pyAp\nA+EXRK9yOdX1Hs8YAa+s232/AzOGwTW/h1fXq3SXIUTALJgGnFDuRHemu/N2VWWTtqbB5FJ3ZtwH\nVIxgFc37Cuy2Fyx2P/hgeGHTGCM5eeXK14YZlHYeXeVO2Tq6SIGCpNSUGZsCPyXe2rqA+4FLgM9U\ncfl/iTe9FWtQlOmkxj0CHxIdSycTgXIasL07N9XgWdLGFCSlZpIZNM9RHKz9EfAmMYymYDY9N/Mc\nAWxDJKXorWSEeY/3vt6dbcxYDVgHuM+dx/vwHMxiaBEw2b1sh5C0EbVJSi0tSelsluGUBkiA/xGB\nM+sF4CIiicVLfXj2IKKF8lhiHGTag8CXAdx5zJ3z+hEgRwC3AK8ArybZjKSNKUhKLT0NPJnafqPM\nOVPdWYSYWVPoGHkb2N2d19x5zp2lgI2AfYj54A8TGcUfBqYQs3HuILKbpw2mOFkxbbw7r/T5pyp1\nCLB58v38wO9rdF9pUhpMLjXjzsdmjCOy9QwBfku8wf2Q+IP8MfC95PR9YU5y3NHAN4iZNoV73UNM\nDbygp+eZsQLwBMU/9rOA4yj9438F0G0qTj/MU2Fb2ozaJKXfzNgf+ATwT3duL3N8RHL8Rfd4uzTj\nSuDzqdMucueLfXj2p4nOGIi3y3S6s5nAXO65Iyx7+7wliSxCY4h20IPcu80/r9Wz5gVOJBIJX+zO\nRfV4juRTkJR+SbL5FLLszAK2cu82b7vcdRsC1wHzAe8AW5aZHtjbsmwC3E6xun2vOxv2556Z+w8n\nOmymAhsAz5eZflkzZlwO7JpsOrCNOxPq9TwpT22SkitZP2bRpEe3nN1S3w+m9O2wR0l1emXg08An\n+hsgk3v+h6jG3wRcTLR71oQZ6xLtos8k97+vngEysVm6CMAmdX6elKEg2aHMWNWMO8x424z/mXGS\nGUPNGGzGmmYsY8bGRC/ua8DtSfUv65nM9mFmPJUElVzuvO7OLe5le7v7xJ0L3PmMO3sBg8zYN/k5\n+uvnxFRFgFUotq3W012Z7bsH4JmSoY6bzvU3iuvCLEikBxtMzIzZkmhve5li58omROfKSZn7HASc\nm1w3mvhMLQ9cZ8ZR7vypfj9Cz8xYGbiTZL64GV9zL1lCoreGVdiuh/2Bn1Bsk7y2wvlSB3qT7CBm\njEyWXJ1C+WVVtycCJMRnI7vsQrdcZO686s62xPzstNHA2WYc189i99WXKE2o8a2eTqzSjylmEnoT\nOKWf96vInffc+Zo7n3XnL/V+npSnINlZjgF2JIatlGtjnJTZnkVxJsvrwB9z7n0Z3VOhQZVtlHXw\nbma7XNlKmLGEGZcmzRAHpo+582+ih35rYLXeDEY3YwUzrjfjETO+We110hxU3e4sS2S2nyUGfxvR\n3nUB0e62BdGb+m1iCdaxwJ15bYfuPJ20Q/6S0s6cJ2pW+t45lXgr3oZoNqhmJcRLKXaObGLGM0na\nNADceZ7ovOmty4E1k+9PNmOieqlbh4YAdRAzPkMss1D443igO2eZ8SPgB8m+l4hhJ2+582wfnjEY\n+DWxtvVjyTPe6Xfh+8iM4e58VOW5UygdHH6We+kbZR/LMI3SZBu/IWYjPeDOdf29v9SXgmQHSVYh\nvI54U5xCBMMbiYw56er379w5bOBL2FhmPAMsl9r1qPucN8D+3Dc93nE68Ueq0NT1lUZ1bkl11CbZ\nWfaBOUu9jgDOIj4D2fbJTl1G9e+Z7XfMmMeMK834yIx7zbol7KjGPkR78G+JP0rpf3f79rGsMkAU\nJDtE8ha5R2b3qGRpghtT+2YRKxh2op8AE5Pv3wK+m3x9nlj+YX360Kvtzsfu/NSdI4gkHWl9yXgk\nA0gdN51jPLE6YdovANzZ0oxDiPGNZ7qXZPLpGO68bsbaRMq3192ZasZXMqct3s/H/IjiTKMHiM4x\naWJqk2xDZiwMzEp3mJhxMzAuddoE9x7XnZGEGZsRPfyFjpdD3Tm9gUUqLKz2U2BdIrfl8e7dcmhK\njai63WbM5vScvmnGd1KHslParhm4UrWuJKvRRsDhwNa1DpBmLG/GnWa8bsbvzar6N3kSMTh+cyLJ\nsN5G60hvkm3EjPWA+1K7HFg8qUYOJdacWQ+4Gfh5LVOISd+YcSvFJL4QqdfyBu2XqxVc6M7edSie\noDbJlpMEu7FEm1l2Vsnw7OlEhwPuzCDeOqS5ZHvLq+k9v4nSIHlzzUrTC2Z8EtgKmOjO3xpRhoGg\n6nYLMWMB4F7gceBFM7bKnHInlAxOPjeZJdKWzBhkxqlmvGzGrWYs2+gy9cGFqe+nEZnUKzmRqGKf\nTwzWP7MeBcuTJDu+LSnL5WYcZcYnzPiNGSealax11NJU3W4hZhxLfCgLug12Tob6jAOmu3PbQJZv\noJlxEHBGatdN7lUtXdtUzPgiUTu4phZ5NQeCGb8jFm0reJTI1l4YY3svsFE7NOmout2kkreiKZn5\n0tn/X0NT589FDBSfmp5vXOWztiAGNb8C/NSdKX0q9MBbtsJ2wyXTNL9KzJu/rFyiXveSt8n+P3O8\nzQscSSxUdrZ3+X97KNtiwNeJtuvTCktrJMf2I9LgvQEc4c4Lyf75iEHxW2ZuN4TSSQgbAAtRfmXM\n1uLu+mqiL44etQwHr/0631rW2ebI2djMg+ccwxcHfwbcwaeD757snwv8tmS/g78Kfib4vBWfh6+X\n3Ktw7ZWN/h1U/bvCNwSflir7TxpdpjJlPCtVvg/BV6nimp3ALwT/GfjIXj/zeG7heDz5epfjWabM\nM+YBfzJVtifAhyfHNgWfnTr2QOq6C1P7HXxWZjv9GRzS6N9/Lb5U3W4y9t0FH2Pk5FXn7Lj34Nlc\nc/pwj5kxhcWh1gZe8KS90YxtoGxC1vPc2S/3ecaRwK9Su6a6d88b2azMWB/YAXjGnfMaXZ4sM96H\nkozu33Ev+X1nz9+c6Igp9Bf8zb0kq1L+88bbSOCDzO7/Adt6lz+Xes76RJU4bV13HjTjUEqXyp0F\nDHXHzXgMWJWevZY873B3Hqy23M1MHTcNZMb6ZvzNjEtsrg9Xs6NHPcaIyaUfwPXPGMSBG7xqYyes\nA+DOB+7c5qUdMlN7eMQ6VRTjkcx2dtpcU3PnPndOaMYAmcgub5Hdztqc0n+X43o6sQflJgisBDxp\n423R1L6XoCQ70lQipRzEYmrTUsduTALkxvT8WSu4xJ1x7RIgQUGyYcxYBLieWKxqD7Y6+lGGf7Bq\nt1QTBoy5b0F2/vJ9Ziza7UbMGfD8+zKHbqpUDo+8hgcRPeOX031+t/TPXsRaNS8CP3Kv2Hs9OLNd\ntj2xHBtvqxE5McsZAtxa2HDnNSLv58PAQ8CunrRJerSbbgOcA/wM2D3pqPkPMX89T7atsuWput0g\nSbUqPrRDPobvzQdDp+dfdPGl3/SJu5+ac8+FiMzjWxJZxn/uMT5SWoQZD1BaAzjVvbps5jbesvkw\nSzmzGO9jPemE6UWZFoZip04FM9xLcme2PL1JNs7jwHsALPR45QAJMHnsp/IOu/OWO+e4s687P1aA\nbEnZOdjZ9sWybLwNJS9AArgNBp4344KcJYLLmUFxGY+OoyDZOKtBMibu/TEws8L/iv/uDq+tO7P+\nxZIGO4piYHwcOLmai7zLZ1CpvXD2nJr8F4nM8VXxmNl1ZLXntxsFyQYwY1NgAoVG+akLw4Sf0+Ow\n23eWg8sunQ38eYCKKA3izk3E1MTVgLXdq67mQiT37dmk3dNbFZfENWNIMqPpOeA4ur/llr2sinNa\nioJkY2xLtoH+rm/DxN27B8qP5oNzb3kb2NhjxT5pc+68685E95Ie5srXdfmVTF42m10dYBr3f2UC\nV8xZlfZ2qOqzdCRwGLHu94J071Qqp+2mwarjpgGSaWgXlD24xL2w9O0wY254czV4eSOYNWw2sKg7\nbw1oQaUl2RFLb8iI189gyPRFMS4EvuNd7slqlqOA/xTG3ebexzgLuiUdhhhfuUFm32zgBaKXvG2G\n/4CCZMOYcRyxNMDIKi/Z0L3b4F+RujHj88CVPRx2SqvWZxHDyP7rzj31LttAUpBsEDOWo/LA4oKX\ngVXcq+vpFKkVM64Adu7h8Exi/OW7RBvncOKNcn93zh+YEtaf2iQb512o2OZ0D3AmMK6VA6QZSyUd\nAH8wY8VGl6eVmDHYjG+ZcVoy/bS/9zrWjCvMOLynYUBmfN6Mr5uxDuRmVSokXJmfYi7TQZRmB2p5\nepNsIDP2JFJ9zUf8BX6TaPgeRTSsf9dbfO0SM4YDj1Fcz/o14q04mzBYyjDjFOAbyeZsYgmJG3Mu\nybvXiZQmXv6mO6dmzvkp8L1kcwr0aR7/1e7s1JcyNiO9STaQO5e4s4A7g9wZ4s7i7nwSWMudI1s9\nQCbGUgyQAIsBqzeoLK1oh9T3g4Dt+nGvzTLbm5Y558DU970JkB8m/51ErAfUNhQkm0hSHTofmGbG\nq8l4ylb3IhRXbSTeTp5uUFla0cTM9qR+3Cu7GFx2G+JNv5yeZm/NJpqF1gHmcmdV96rb2luCqttN\nxIwvE0kFCp5yb/02PDM2IFb4GwKMd2/MmiytKJk3/QdgReBKd7rKnDMS+ATwvHvPSW6T9ZGOJxaD\nuwX4mXvpdMNkmNCd0G3+9TTgr0QC4awPiIHvbRUcCxQkm0iZ3I7vuDO6UeWR5mfG0sRaM0sTVd4d\n+/NHyIyViLfVcrXMTxOzbibQfcbOge6c1dfnNjNVtwdYsnjVbmbsb8Z8ZuyUrLk8k1hL+e3U6ac1\nqJjSOo6kuMLiSErXQOqL71I+LrwEPJyk5dsN+Dhz/Kl+PrdpaY2bgXcB8IXk+yeJTo3C/4eliazO\n3wZeTnI9iuSpdVVwk8z2VOB3wO8KIxLcuSZpQjkDWBj4fTs3oai6PYDMGA0Vpxa+7858A1EeaX1m\nLEVUt5chAtpTRLW7q7d/ZM3Ymmj/XD61+0R3juvh/EHA/O4lHXNtR9XtgTWF7tWUrLeSBnaRitx5\nkcgYNI7ogV6TeBu8yowlqr2PGbsS6yQVAuQ04BLgxz2cvxoxpvdtM+41K1kpsa0oSA4gdz4mlm59\nn5jSdV+Z08YC1ypQSrU8lgB+G0pqIPNQOj61kt0pnYt9pztfyMlE9BtgyeT79SkOQG87CpIDzJ3L\niWlcc9NzWqktKL+gk0hPnqa08+RlerE+Dt3HRz5b4fx5K2y3DQXJBkiW851FLATWkyrWcxAJSS1l\nHPBr4BRgc/dkeRDAjGFmHGfGuWbsWOYWYzLbldbB+RVRG4JYhuSMvpW8+al3u7F6qspcANwwkAWR\n1ufOK8TIiHJOB76cfL+/GVsV5oAn7ZG7ZM7PBs3ssy4zYxIxiP2epG20LelNsrHKLTo/yZ193Gs+\ntEM6iBmLm3GnGdPMuBbYKn2YJLuPGQsQf5SzbeAV85y685g7l7dzgAQFyUYrN41rhaS3sG2yqEhD\n/Ar4JDG9cBu6N98ckCxrvCDl17tZtq6layEKkg2SjJncvMyhoURv4aVmjB3YUkkbWSyzfT8xxKdg\nceAK4DliHnfWw0k75plmPG7G+WalnTNmzGPG1kneybalNsnG+T6li9BPpzSpwFzAClSfvVwk7U/E\nXGsjOlj+CCxE6VKyo4lRFtsB+xPtkqOBB4i2zR9QTJ22MlHLeQL4OxFwbwPWAjDjWPfyYypbnWbc\nNIgZf6R8RpW014D9iEHoj7rPydknUlFSnV4HuMOd+81YhFjrffHklCvdu3XYpK+/iOIU2qzfAEek\ntqcDw7NZhdqBgmSDJCmpbqby+LLCgkvPApslPZgifWLGksBexPIhf3bvMU8kZuwDnNfD4WuAz6a2\nP3BnVM0K2kQUJBvIjGWI3H2LVzo3cZI7P6hjkURKmLEzMf7yk8lXwZeJ6vnnibfIL7tz4YAXcAAo\nSDaYGdsD/8zsnkb5HscfufPD+pdKpJQZ8xED1VcC/u7OL5KFxMYQb5Hv5d6ghSlINgEzHqX7ui/T\ngbOJNsmRRCLUcXmZp0VqyYzBwN7EwnSXuvNGg4vUEAqSTcCMtYk2nmzWlleJ4LkE8GROsgGRmjPj\nUiLxBUSegfXcS5JCdwQFySaRpLV6nNKOnLfdWahBRZIOlqyP/r/M7j3dubQR5WkkDSZvAsnA8rvo\n3tN9apnTRerGjDXN+AtRs8nqaSXFtqY3ySZgxjeBkzO7pwBLuTO5AUWSDpSszPg4lE2g+7g7qwxw\nkZqC3iSbQzZb+QxgJwVIGWCrUz5ATicWqetICpLN4c8wZz2SqcCuhTRWIgPoCSiZ1fUmcDDwc2C1\ndl6iIY+q200iNebsXWL+7IbAY+5MbGjBpKOYsSkxZ3s6cByxMFhhBcVJwAbJchEdQ0GyDswYSaxf\nPBo4x537e3HtesBNRCfOTGAPd66sS0FFcvTQwz3OnVsbUZ5GUZCsAzOup5jkdAqwjjtPVnnt2cAB\nqV23ujOuxkUUqSipXr9MZAoCmA2s7F6ylk7bU5tkjSWrHKazQI+gfN7IwvlrmXGJGdeacSKxyl3a\nB3UopkhFyXraewEvAq8DB3ZagAS9SdZFknNvpWTTgU3dubPMeQsS1ZnRqd0OzCJyfb4JfMqdx+tb\nYhHpid4k62NH4DoiG/RXywXIxEqUBkiItGiFZMijQMOApDbMWMyMy8y4x4zDG12eVqE3yQZK3iTf\nonRR+Ky13HlkgIokbcyMG0gWAEvs7M5VjSpPq9CbZGNNpnuAnJn6/mFQVVtqZs3MdjbzlJShNW4a\na68y+35AtEvOBs5y77bKnUhfXQvsk3w/CzRhoRqqbjeIGWsSCy4NTu1+iRgu9FZjSiXtzIxhxPjd\npYFL3OfM8pIcCpINYsYXgIsyu5d31+qIIs1EbZKNcxfwfmr7HgVIkeajN8kGSjKSH0wEy58q649I\n81GQFBHJoeq2iEgOBckGMGNvM2424+JksXgRaVKqbg8wMzYG7qA4iPw+dzZoYJFEJIfeJAfe2pTO\nslm7UQWRzmXGsmbsbMbYZHtpM243400z/mSmiSYF+kX0gxkLAIcDw4HTqxzCcxcxo6YQKF+uU/FE\nykqyj19HpOX7yIztgWOATZNT/g94BPhtY0rYXBQk+8iMwcS6NOsmu/Y346vA9kTg+5U708pcuhCl\nb5LLJKvUfeDebUEwkXo4gmLe0uHAkcQsnLTsdsdSdbvvlqAYIAEWBa4Avgb8mFjcq5wZme3ZwLPA\nVDOtsy0D4sMy2xektmcAlw1ccZqbOm76yIy5ibnWhXyQsyn9o/OeO/OXuc6AvwD7EtXuGcBcqVO2\ncef6uhRahGh/BK4n8pk+DWwNLE4kwBhJLPi1iTvvNqyQTURvkn2UVI0/B9xNtN/8PHNK2VUO3XF3\n9gPGAitQGiCB7oFVpJbceQFYBViMWLPmWeBkIkCSHOvYdbaz1CbZD+7cBXyysG3Ga8D+RJvk1ytc\n+2xyzRnE1ESIwHptXQorkuLObGLdmoK5M6cMH8DiNDVVt5uAGdsSb5D/ci9JeiEyIJKsVBcQtcuZ\nRDX8LuAw925tmB1Fb5JNwF1vj9JwYyg2vw0BVk6+PgYOaVShmoHaJEUEYNVe7u8YCpItxoyjzHgi\nmfu9UuUrRKryz17u7xhqk2whycyI9If2UfduizuJ9IkZnyeGAw0l2iUfdOesxpaq8dQm2VpWrLAt\n0mfJ8rJaYjZD1e3Wcj0wNbWtD7RInam63WLMWAf4AvAa8HstOStSXwqSIiI5VN0WEcmhICkikkNB\nUqSDmLGcGTuYsUSjy9IqFCRFOoQZWxFJVK4BJiadgFKBgqRIGzFjNTMeMeM9M043K/k3fhTFbD/z\nATeZscfAl7K1qHe7hmy8bUysC7II8C/gW97l2UzkInVjxv2UZsw/wJ1zkmOPAqtnLplBMadk6b3G\n21jgD0TW/S7v8o4cl6sZNzVg420k8CCRRLfgUOBV4MSGFEo6VbatcUzq+2fpHiSHAsskx+aw8bYS\n8DjF9ZiutPH2HrCdd/ldtStu81N1u59svA0GXqQ0QBYca+NtxAAXSTpbem2lD4G/pbb/Xub854EH\n0jtsvA0CbqV0wTqIKvqdNt7moYPoTbL/DqTnJRfmAo4GfjhwxZFO5s7RZtxHrHZ4jTtPpI6dlbRR\nbkss1XAP8IcyiZ4/S1Sxe/IvYFxtS968FCT7b98Kx9cfkFKIJNx7XunQnTOBMyvcYkyF4xv2ulAt\nTNXt/qs03mzBASmFSJWSFTvT24PMWNaMeZNdldocOypfgIJk/1X6wGjNGmkKZuxqxjvAR2bRBGTG\nPMAtRMfNq2bsQCwpm/e5vrneZW0mCpL9V64xPDgOHD9gJekFMwabsZYZyzW6LFJ/STA8D1gAGAac\nYMYGwAHAZslpI4DTvMunAUsB03q43Z/qXNymoiDZT97lRzF9nnOZNvdsCkNOHXhjRbjqTzd6l9/R\nyPKVY8ZQIsP5Q8DTZny7wUWS+htJ92ViFyECZtowAO/yN7zL5wbOAWanjv+LmLHTMTSYvEbMGA38\nhvmf3Y8Z88CURSFS4M/lTlP9kpM0/Vemds0CRrj3+OYgbcCMy4Fdk81JRAfMcOBOYHkiGB7izh+7\nXTvelgJGAZO8y2dnj7czBckaKrMGzQfARu5MalCRylKQ7ExmDAZ2J6rVl7vzXrJ/XiJgvuzO4w0s\nYlNSkKwxM04AjqE4vOpdYC13XmhcqUqZMYSoMm1DNA58151fNbZUUitmzA3sT1Sdz3fnnQYXqaUp\nSPZBMiB3GeAdYKXk+1vdeSPJrPJA5pIpxJzuH7nz8YAWtgfJW8VqwPvuPNfg4kiNJJ/NCcAWya4n\ngPXd+bBxpWptCpK9YMYiwCnA9kT7zGyKnV+vAb8m5mz31GP8b3e2r3c5pXMla7E/kdm9lTs3NKI8\n7UBBshfMuI5Yl7g/RriXrHgoUhNmfIXI2jM0tduB1d2Z2JhStT4FyRQztgO+ArwJ/NCdtzPH3wAW\n7scjXnVXRmipPTNGAW/TfarxK+4VpxlKDs3dTiRtiVdT/J2sAWyeOe0GYK8+PmIK8GszBrszq4/3\nEOnJcMr/e+6ojD31oMHkRRtR+iHbJDvHlZidcAJwATG2bEov7j8C+AVweZn7SpsxY5gZXzBjTzPm\nqvfz3Hmd0jRpBX81Y75MhnLpBVW3E8kUrTuBwcmuu935ZA/nzkMEvEPo2x+aseUyQUt7SIZYXQ98\nOtl1A7BtvWsQyR/frYAVidyPLwN7E6nRJgN7qAOn9/TXJeHOvcAexLSrPwM755x+KvA18n9/04g0\naT8uc2yjPhZTWsOaFAMkwJbAqvV8oBlfAm4iajtXuPMTYp72tskpCwD/NmO1epajHalNMsWdK4Ar\n8s5JOndTho3rAAAUJklEQVS+XMXtfunO/cD9ZuwKrJI6thdwUV/LKU1vMtGrXGhWmQ0xu6UezPg0\ncG5q11JE0or5MqcOAY4DvlCvsrQjvUn23slU/r3NIsZTFtyZOf5WTUskTSVpSjmCWGRrOvDNOs+4\nyi4Nu54Z8xE1ouzkBf2b7yW1SfaSGS/RPXPzZKItcxjwBrFC3YTUNYsSPecbAPcCOyYN7dLGkllN\nDEBb5PrEH+J0zfB5YGOiBnMlMC8xRGgrdx6qZ3najYJkL5ixJXAtxc6dacDZwBHulbM1mzHEnZl1\nLKJ0ADNGAqOBF90jjZkZ2wCXwZzs4gBdwG+AXxFTUC9y59QBLm7L06t37xxAMUBCvDl+DbjIjMOS\ndGk9UoCU/jJja+AV4DngVjNGALhzHbFqZ1rhj/iBwCbAKUkGKOkFBckqmbEhsFMPh3cherzvStqC\nROrlNIpvi5sCB8GcYUd/pDh2915iimJ2JIVGVvSSgmT1ziWyO+dZgWIqfJF6mDu7nWSa/zdRtR4B\nPAasDTwOPJU5v+ky5Tc7tUlWqcy87UlElWdLKJlRsa47Dw5g0aSDmHEA8cY4iPj8bQysRQTJcl4n\n1rZZnki0e94AFLOtKEhWyYwroaQ952NiXuz2xId2HuBEd37di3uOAv5KvH3eBezrzuSaFVrakhmf\nIMZC3uPOe2ZsAdzYw+kzgWGFDh7pPQXJKpmxLxHQCj5wZ1Q/73ky8M3UrjPcOaQ/95TOk0xHnAB8\npszhq917bEuXKqhNsnqXwJyxjzOAr/flJmZslyQ+GAUsnTm8VD/KJx3EjEXM5qx+uC3RVpl9W3wB\n+OKAFqwNKUhWKRkHuS2xXMMY95K3yqqYcToxN/wiYvDv36BkJcVRZlxgxto1KLI0gBmjzTjLjGvN\n2K8O9x9ixt+Jtsa3zDiIWPt9E+Lf80yivfwxYgjQL5KOHekjVberlCQGOBtYDPije9nEFXnXj4Bu\n64zsQcyC2Jx4M10k2f8O8Al33uxXoWXAmXEtscBawdbp2VcVrjViLO7ywFXu3F3mnP2Av6R2peeI\nF7xJaSfjD9w5qZoySHd6k6zeZcQYs2WAHyXLx1ZkxmZmPE98cLODyd915yaiKr9Iav+ClMkaY8bc\nZmxhxhp9+QFkQGxQYTvPL4GziNU2bzMrm6pvRGa7XG7SbPb8lXtRBslQkKze2ArbPbmEaHssZI6e\nQfz1Py31hvEC8GrqmvehdP3j5E30dqIX8xEzju5V6WWg3Jb6fja9G5e4W+r7ocDnypxzCd2TVlRy\ndS/Pl5SODpJmjDFj/jL7h5qxvxkHpWbQXJY65QNiDnel+w+i+1/1ocDNRJYYAJKFwbYGLifal7Yp\nkwBjF2C91PYJhQQK0hzMWBj4P2JQ92XA7u7c2otbPJ3ZfiZ7QrKG9qVV3OsUYhnjndxLPrvSW+7e\ncV/gg8AvAnfwGeD/lzpm4P9Mjjn4f8FHgA8B/xr4CeCr9uJZ56bulf76B/hZ4CtWeZ89M9d/CG6N\n/l3qywEfBn5t8v/lPfAt+3ifpcEngD8D/sty/3/BFwL/IvjVyWez3GfrBfDRjf69tMtXwwvQkB8a\n3zHzofoYfEhybKkyH7qt+/Gsv/TwQS58vQw+bxX3GZL8w3Dw6eD7Nfr3qK85/28Ozfw/faqX1y8B\nvkmlzwH4GPCXUs8ZX+bzNBF8TKN/J+301anV7ez817koZvd5j+5tPm/041mfqHB8CWJNklweGYR2\nApYFFvM+DEGSusnO6a80x3+OpAPwaaLt8r9muWNl96M0l+lxlA4hg8gfuX+1z5fKOjVI/gO4J7V9\nkjvTANx5H9iXGIYzFTjanYf7+ay0Q4F3U9uTIRYFS1bYu8iMD8y4x4xl0hcmf9ie92iXkuZxHpRk\nHn89yRpVjRMp/tFemtIZWACYsZUZXXSffADle7dPMuNJM9aqsgySoyPXuHHnIzPGEXOm33Xnvswp\nHxG90cOBvcw4w70ksPXGiUTP9erABHeuNuNB4Pjk+HFenK99BMX1RzYgUl3t0MfnygBx51UzNgEe\nIYZvrQlcZ8bKXjkDfTZrecm2GXsCF/ehWCsA95mxpfeu80gyNJi8DDMmUVpNPtqdnw3Ac08BvpHa\n9Yh7vA2YsThR3ZoCnO3e62EgUkdmrExm2BbwaXduqXDdOGKIzrzAE8C4dGA143Jg134UTXO3+6kj\n3ySrkP29DNTv6ULgYIqp184FMGMBIktQobq1ixlbu3drj5LGeQF4CVgy2Z5MTA/M5c4tSbPKEsDT\nZf74PdfPck3t5/UdT2+SZSRVnPOIMY1PApv6AE0RTOZtbwlMcuefyb4difGTaYtVUZWTAWTGSkRn\nylDgZ+48UIN77kOsetibMbGF5qLniGmR2cS70gsKkj1I/rovCTzkPiclfqPKsjbwAMVG+veBRTut\nyp3MbT6ayOH5GPCdRv+/qSczFiLeTof18tIZRJvkq+7MqHnBOkyn9m6XZcZwM4434xxgFXfuaIZ/\nhB5LgH6D6AB6Eti10wJk4kDgJCIhyCGUrm3ejham9wES4k32GAXI2tCbZIoZFwJ7JZuziUb02xtY\nJElJUs0dnNr1oDvrNqo89ZYs7vUSsGgfLp/q3i0ZhvSB3iRLbZn6fhCwRaMK0l9J3sGdzNgx+cfW\nDm7KbN/ciEIMlGQCwcQ+Xq40ezWiIFkqO2j8oYaUop+SxBfXAFcRHT5XJck2Wpo7FxOzSc4Hvg8c\n1dgS1Y4Zu5hxuxn/MmOV1KEr+nC7V4B9alS0jqfqdooZixCZU5YGLnLntAYXqU/MWAe69ayu6c6j\njSiP5DNjVeIPdOGN/0VgWU8W7zJjL2B9osd6KWAUMbTnQaLd8sDU7W53Z/MBKnpHUJBsQ2YsT+l6\nyw6Mde/3mDupAzN2p3v6s4XcebuKa+cllgTZlOjY2yHp6JMaafkqmHTnztPEUJnZyddRCpDNJ1kU\n7lQic/j7qUMPVBMgAdz5wJ3NgAWAJRUga09vki3EjE2Bc4j5wae4c0KF84cT2fA6cbhQUzNjO+Cf\nFMe+/plYuOsD4CfVBkmpPwXJFmLG65SuhbOle4+L0ksTKzNP/zF3Vm9UeaRnqm63CDPmovtSEEuW\nO1eajxkLmvFvM95JloTNLs1QcZ63NIbeJBsgGY6zKPBWb2ZFJCnWCmtyvwOs7l6ygJg0KTPOAr6S\n2vUbonr9WSJ70KGqYjcnvUkOMDMWI/IOvgI8mwz/qOa6zSgGSIge69dqX0Kpk2zG8aXcOcadNd3Z\nUwGyeSlIDrzvA6sl348BflHlddms1KOJcXNSI2bMb8bRZhybjJmtpfNS3ztwQY3vL3XSLtPVWkl2\nPu08VV53I/A6xXm8V7uX5go0YwzxxvJoMyTmaCVmDCWmPRbe1r9kxjrufFiL+7vzVzNeJTLO36Fs\n4a1DbZIDLEl7djMwH9EmtYs7/6ry2qWBvYk1cv7kzvTUsZ2IheuHEQtLbeau6ni1kqmA2XnSmyvB\niShINoAZSwDrEYl1a5IQ1YxHoWQIyYnuHFeLe3cCMxYkpgMW3uxnACu683yZc5cEPuzHukfSQtQm\n2QDuvOLO1TXOGD07s51dYEpyJCtQ7kb0ND8F7JsNkGYMNuNvRDB9w4z9Br6kMtD0JtkmzNgW+Bvx\nJjSRyIX5VmNL1V7M2BW4PLXrI2BkIRGFtCd13LSYZFmJi4j5vn8HDnRnhjvXJm2WSwD/K6wjLjU1\nd2Z7KFEb6xYkbbwZ0cnmwBvepbeRVqU3yRZjxg3AZ1K7pgAnu/ODnGvmB04nem4nAEeUG8Ru421h\nYmjKRkRGmZuA87zL6955kYwX3ZRYRvfuej+vL8wYAdxCtCdDrJl+YrfzxttyxDKxq6V2H+Zd/rv6\nl1JqTUGyhZhxKPD7Hg7v6M4/erjuXOBLqV3HuPPTJDnvr4lZH5P4wdwjGDqtXDb2M73LDy6zvyaS\ngfITiJ752cB+7s05jtCMuYFNgMnuPFhybLxtDVxG5HvMcu9y9QG0IP1PaxFmjAJOzTklO6MjbeUe\ntg8Dvgksz6AZn2NI2QAJcJCNt3oOXD+A4oJXg4hFvvrFjHmSPwI15c7H7txYJkAakROyXICMIo03\nzbVvQQqSrWMYPa+9PBlyx1pm1+wuvHGuMGfPapcWk3aVV8+qYraDqc8dTmaYGWcTzRDvmvF9My42\n4wyz0gW1zFjGjH3MWL+vz0sZQs8BsuCAGjxHBpiCZItw503gjNSu24GvEsl1N8hLquvOT4D/I5am\n2NF9Tg/t3yl0Oqzwz0pF2LQv5a7Sj4kB9g48ChxROGDGItngVsGOFIPRyOTeewIHEfkbC/ddg5hD\nfx5wjxlf7nvxwbt8BnB/hdPu7M8zpDHUu91C3DnEjPOJqY03pmfcVHHtuWX2XW/GVsD2jHx9JeDz\nObdYoLfl7UXZ3gO2MGOwe3F8pxldwPHJ9z9353vZa5OEIb8l5sH/BXITDK9rxjzJdM4DKL75GfAt\n6P476qVjgOtzjmdXe5QWoDfJFuPObe78OxsgzRhuxolm/NWMHctda8Y3zHjTjBfM2CG5303uHMXy\nE74CPJnz6LoPKcoEyGVJAmTiqB4yJl0MfAHYDDiTyOz9v9Tx9PCcx1Lz3bOzZWoxe+YOYn59OU95\nl8+swTNkgClIto8/AccC+xJLyH46fdCMNYGTgYWITp5LzIrJNbzL3wbWYMaw7zG77ODo88rs6zMz\nPmXGUdlypmTHJEL5rEdrZ7ZXBDYkqthbATsR7bUXANunzvs1MZwH4AVKs4T3iXf5R0Q7b3a20xTo\n8eeUJqfqdvtI90wb8Cmina9gDKVdMyOA+YmlSZNlaH1rYE+GfDSI9U6Htf8yjUUeeZbBsy+E7uMB\n+8qM3YieYAPcjC8ma2pjxgpE4HuICGx7J5ddQfdlciGyI+2cfD8LuCWpvqdXH7wme5E7HwCfTlW/\na8K7/EMbb+OScs1FvNlu4F3+cq2eIQNL4yTbhBn/ArZL7drJnatTx0cRQWb5ZNcTwLfducaMjYmA\nOleZW+/qzhV9KM/uwM+IzpjvuHNl6tgVFAMbwD/c2dGMccC/ibfIj4k3v5lEjef2ctP/kgHe3yf+\nCFzgznW9LWs92HhbCFgOeMK7/P1K50vz0ptk+9gP+BUwFrjKnauToS0HEUOEfgJ8Evg2cDgxVvIf\nZhxHJPAtFyAh2vp6FSSTvJbnp+55kRnLuM9pr8u+VRW2D6dYzZ4b+JY7u1R43DLA+kQnzHy9KWc9\neZe/RT+GMknzUJBsE+68ZcZVRNvhZmZ8hqhyF5L87gusAUyntL3vIODhnFsfacbTwBnpjpUKlqA0\n6A4DFqPYqXEs8Ua7CXAX8SYIpWtPQ1RVe2SGEe2NhaztF5rxuDuPVllOkYrUcdNezqbYubE9pVnQ\nlyDa5tbJXDM/PffIFvwSmG7GlWZslgy76SZJJbYjUc1Mr/73CJGCDIAkD+OuxBjGh4DFk0PHEs0A\nJP89tkK55qd0WYvBwCcqXCPSK2qTbBPJW9XH9Fxt7sl04ChirGHBbPL/gE4l2j+fIRJnbEO0PT5L\nMUjdRrzlzQLOzCaoNeMaiGFIxBvk2u48m/wcCwLvuFPxw2nGPcSSCIX7rOHOC5WuE6mW3iTbRBJQ\nfpLa9b8yp5VbvvYmuje7FNJ/vQllB6zPQwy8fhr4HBGYh1H6Frc5cAMRRFc3K84tT9aT2SF17iiS\nITLuuDtvVxMgE9sBP0+eM04BUmpNb5JtxoyNgIWJgc1PEW9lBVPpvvDYksRsmocoPzf8Q2J6X1+M\nI2bBLEMMRt/TPeaRm/EssGzqXK0nI01Jb5Jtxp273fmHO5OJecwPE9XiS+keIO9252V3/kvPS5z2\nJUA68ENgWyJAQrxppsda7kgE8seBwxQgpVkpSLYxd/7jztruLE/5Huy5IKY0EvkcnytzTl+GsWxJ\ndNasl9m/qFnMAXfnv+5s5s4q7nXNMCTSLwqSbcqMpZPe6LvM+CpwDvB25rR1kqzldwB/Jqq/lwMH\nEz3hFxFV5gk5j/oouXfBVUT74lXEm2R6APiiwLV9/JFEGkJtkm3KjHuhJE/iZ4hOmFsotj1OIqYG\nZofNLOLOm2bMSyxB8BKwEnAasEqZx+1BDMcZQ3Sg3Ee0dfZkwaQ5QKTp6U2yfa2Z2V7dnTuAXYi3\nuWuJMYbZADkD+ChZW/pRIgfi/4ge8J4y5WwL/JHI2nM/3avo6bfJl4D3evODiDSSgmT7Ss9hng7c\nCpCs970dMC+lg80hOlwOcudDYlmHQqfLcOBHRILfwqyYGUT1/bvA7ql7jCHmX08ketP/TCSpuJvI\ntbi9lmCVVqJpie1rLyKoLQr81b1bx012qQEHDkgl580Gstnu3JrkeVwSeNI9Etya8XWiul0wyZ1j\nMtdf3KefQqTB1CbZoczYn+hwGUSMhdynMIYxOb4Y8fa5IjGHeif3ktRr6XuNIzp8RgOXAHv3Yp63\nSFNTkOxgZqxNJIn9jzuvlDk+nAiSL7t36xnPnmvAsMLbpUi7UJAUEcmhjhsRkRwKkiIiORQkRURy\nKEiKiORQkBQRyaEgKSKSQ0FSRCSHgqSISA4FSRGRHAqSIiI5FCRFRHIoSIqI5FCQFBHJoSApIpJD\nQVJEJIeCpIhIDgVJEZEcCpIiIjkUJEVEcihIiojkUJAUEcmhICkikkNBUkQkh4KkiEgOBUkRkRwK\nkiIiORQkRURyKEiKiORQkBQRyaEgKSKSQ0FSRCSHgqSISA4FSRGRHAqSIiI5FCRFRHIoSIqI5FCQ\nFBHJoSApIpJDQVJEJIeCpIhIDgVJEZEcCpIiIjkUJEVEcihIiojkUJAUEcmhICkikkNBUkQkh4Kk\niEgOBUkRkRwKkiIiORQkRURyKEiKiORQkBQRyaEgKSKSQ0FSRCTH/wMLK7QLFjoDygAAAABJRU5E\nrkJggg==\n", 392 | "text/plain": [ 393 | "" 394 | ] 395 | }, 396 | "metadata": {}, 397 | "output_type": "display_data" 398 | }, 399 | { 400 | "name": "stderr", 401 | "output_type": "stream", 402 | "text": [ 403 | " 40%|████ | 10000/25000 [05:56<09:03, 27.62it/s]" 404 | ] 405 | }, 406 | { 407 | "data": { 408 | "image/png": "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\nJEVEIv4fN+vZeDHLNJAAAAAASUVORK5CYII=\n", 409 | "text/plain": [ 410 | "" 411 | ] 412 | }, 413 | "metadata": {}, 414 | "output_type": "display_data" 415 | }, 416 | { 417 | "name": "stderr", 418 | "output_type": "stream", 419 | "text": [ 420 | " 60%|█████▉ | 14998/25000 [08:53<05:50, 28.53it/s]" 421 | ] 422 | }, 423 | { 424 | "data": { 425 | "image/png": "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\n", 426 | "text/plain": [ 427 | "" 428 | ] 429 | }, 430 | "metadata": {}, 431 | "output_type": "display_data" 432 | }, 433 | { 434 | "name": "stderr", 435 | "output_type": "stream", 436 | "text": [ 437 | " 80%|███████▉ | 19998/25000 [11:50<02:54, 28.66it/s]" 438 | ] 439 | }, 440 | { 441 | "data": { 442 | "image/png": "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\n", 443 | "text/plain": [ 444 | "" 445 | ] 446 | }, 447 | "metadata": {}, 448 | "output_type": "display_data" 449 | }, 450 | { 451 | "name": "stderr", 452 | "output_type": "stream", 453 | "text": [ 454 | "100%|██████████| 25000/25000 [14:48<00:00, 28.14it/s]\n" 455 | ] 456 | } 457 | ], 458 | "source": [ 459 | "from tqdm import tqdm\n", 460 | "xmax = 3\n", 461 | "fs = []\n", 462 | "frames = []\n", 463 | "np_samples = []\n", 464 | "n_batches_viz = 10\n", 465 | "viz_every = params['viz_every']\n", 466 | "for i in tqdm(xrange(params['max_iter'])):\n", 467 | " f, _, _ = sess.run([[loss, unrolled_loss], g_train_op, d_train_op])\n", 468 | " fs.append(f)\n", 469 | " if i % viz_every == 0:\n", 470 | " np_samples.append(np.vstack([sess.run(samples) for _ in xrange(n_batches_viz)]))\n", 471 | " xx, yy = sess.run([samples, data])\n", 472 | " fig = figure(figsize=(5,5))\n", 473 | " scatter(xx[:, 0], xx[:, 1], edgecolor='none')\n", 474 | " scatter(yy[:, 0], yy[:, 1], c='g', edgecolor='none')\n", 475 | " axis('off')\n", 476 | " if generate_movie:\n", 477 | " frames.append(mplfig_to_npimage(fig))\n", 478 | " show()" 479 | ] 480 | }, 481 | { 482 | "cell_type": "markdown", 483 | "metadata": { 484 | "deletable": true, 485 | "editable": true 486 | }, 487 | "source": [ 488 | "## Visualize results" 489 | ] 490 | }, 491 | { 492 | "cell_type": "code", 493 | "execution_count": 15, 494 | "metadata": { 495 | "collapsed": true, 496 | "deletable": true, 497 | "editable": true 498 | }, 499 | "outputs": [], 500 | "source": [ 501 | "import seaborn as sns" 502 | ] 503 | }, 504 | { 505 | "cell_type": "code", 506 | "execution_count": 16, 507 | "metadata": { 508 | "collapsed": false, 509 | "deletable": true, 510 | "editable": true 511 | }, 512 | "outputs": [ 513 | { 514 | "data": { 515 | "image/png": "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\nTkSuQmCC\n", 516 | "text/plain": [ 517 | "" 518 | ] 519 | }, 520 | "metadata": {}, 521 | "output_type": "display_data" 522 | } 523 | ], 524 | "source": [ 525 | "np_samples_ = np_samples[::1]\n", 526 | "cols = len(np_samples_)\n", 527 | "bg_color = sns.color_palette('Greens', n_colors=256)[0]\n", 528 | "figure(figsize=(2*cols, 2))\n", 529 | "for i, samps in enumerate(np_samples_):\n", 530 | " if i == 0:\n", 531 | " ax = subplot(1,cols,1)\n", 532 | " else:\n", 533 | " subplot(1,cols,i+1, sharex=ax, sharey=ax)\n", 534 | " ax2 = sns.kdeplot(samps[:, 0], samps[:, 1], shade=True, cmap='Greens', n_levels=20, clip=[[-xmax,xmax]]*2)\n", 535 | " ax2.set_axis_bgcolor(bg_color)\n", 536 | " xticks([]); yticks([])\n", 537 | " title('step %d'%(i*viz_every))\n", 538 | "ax.set_ylabel('%d unrolling steps'%params['unrolling_steps'])\n", 539 | "gcf().tight_layout()" 540 | ] 541 | }, 542 | { 543 | "cell_type": "code", 544 | "execution_count": 19, 545 | "metadata": { 546 | "collapsed": false, 547 | "deletable": true, 548 | "editable": true 549 | }, 550 | "outputs": [ 551 | { 552 | "data": { 553 | "text/plain": [ 554 | "" 555 | ] 556 | }, 557 | "execution_count": 19, 558 | "metadata": {}, 559 | "output_type": "execute_result" 560 | }, 561 | { 562 | "data": { 563 | "image/png": "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\n", 564 | "text/plain": [ 565 | "" 566 | ] 567 | }, 568 | "metadata": {}, 569 | "output_type": "display_data" 570 | } 571 | ], 572 | "source": [ 573 | "fs = np.array(fs)\n", 574 | "plot(fs)\n", 575 | "legend(('loss', 'unrolled loss'))" 576 | ] 577 | }, 578 | { 579 | "cell_type": "code", 580 | "execution_count": 20, 581 | "metadata": { 582 | "collapsed": false, 583 | "deletable": true, 584 | "editable": true 585 | }, 586 | "outputs": [ 587 | { 588 | "data": { 589 | "text/plain": [ 590 | "" 591 | ] 592 | }, 593 | "execution_count": 20, 594 | "metadata": {}, 595 | "output_type": "execute_result" 596 | }, 597 | { 598 | "data": { 599 | "image/png": "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\n", 600 | "text/plain": [ 601 | "" 602 | ] 603 | }, 604 | "metadata": {}, 605 | "output_type": "display_data" 606 | } 607 | ], 608 | "source": [ 609 | "plot(fs[:, 0] - fs[:, 1])\n", 610 | "legend('optimized loss - initial loss')" 611 | ] 612 | }, 613 | { 614 | "cell_type": "code", 615 | "execution_count": 14, 616 | "metadata": { 617 | "collapsed": false, 618 | "deletable": true, 619 | "editable": true 620 | }, 621 | "outputs": [], 622 | "source": [ 623 | "#clip = mpy.ImageSequenceClip(frames[::], fps=30)\n", 624 | "#clip.ipython_display()" 625 | ] 626 | } 627 | ], 628 | "metadata": { 629 | "kernelspec": { 630 | "display_name": "Python 2", 631 | "language": "python", 632 | "name": "python2" 633 | }, 634 | "language_info": { 635 | "codemirror_mode": { 636 | "name": "ipython", 637 | "version": 2 638 | }, 639 | "file_extension": ".py", 640 | "mimetype": "text/x-python", 641 | "name": "python", 642 | "nbconvert_exporter": "python", 643 | "pygments_lexer": "ipython2", 644 | "version": "2.7.6" 645 | } 646 | }, 647 | "nbformat": 4, 648 | "nbformat_minor": 0 649 | } 650 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | Keras 2 | tqdm 3 | tensorflow 4 | seaborn 5 | --------------------------------------------------------------------------------