{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "

TensorFlow Introduction Notebook

" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%run -m ipy_startup\n", "%matplotlib inline\n", "\n", "# Boilerplate initialization stuff that's easier to put in files on the PYTHONPATH like the \"ipy_startup\" \n", "# file above (which loads pandas, numpy, matplotlib), but is included here just for clarity:\n", "\n", "# Plotly Initialization\n", "import plotly as plty\n", "import plotly.graph_objs as go\n", "import cufflinks as cf\n", "cf.set_config_file(offline=True, theme='white', offline_link_text=None, offline_show_link=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "

Data Generation

" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def gen_data():\n", " # Seed number generator so we always get the same thing\n", " np.random.seed(1)\n", "\n", " # Set number of random data points to create\n", " n = 200\n", "\n", " # Generate x and y values\n", " x = np.random.randn(n) + 4\n", " y = np.where(x < 3.5, 3.5 + (x-3.5)**2, x) + .2 * np.random.randn(n)\n", " return x, y\n", "\n", "x, y = gen_data()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\ngg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot what we've got\n", "plt.figure()\n", "plt.scatter(x, y)\n", "plt.title('Random Data for Modeling')\n", "plt.xlabel('x')\n", "plt.ylabel('y')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "

Basic Modeling

\n", "\n", "with Scikit-Learn:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def plot_predictions(est, x_start=-1, x_stop=10, x_num=100):\n", " \"\"\" Trains a given estimator and plots what it learned vs training data\"\"\"\n", " # Create X data to predict\n", " xp = np.linspace(x_start, x_stop, x_num)\n", " \n", " # Train estimator and get predictions for desired grid\n", " yp = est.fit(np.expand_dims(x, 1), y).predict(np.expand_dims(xp, 1))\n", " \n", " # Plot original data as well as predictions\n", " plt.figure()\n", " plt.scatter(x, y, alpha=.5)\n", " plt.plot(xp, yp, c='r', linewidth=2, alpha=.8)\n", " plt.title('Decision Surface ({})'.format(est.__class__.__name__))" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\ncLtzrFmzlp/8ZD0X9s1gXv+zuJwOuOwSHs/cyGuv7aPBHUP1KQC6XbVAL5DF7XZzzz1f5vOfv4Xm\n5mYApk2bJoldCPGhnVLCV0rVAD8ErtJa5z7ocffccw+lpaXHPHbzzTdz8803n8rphXh/VVXDfzUi\nkRPOmo9E1rFs2cThFv7TT//umO77rq53iER+zFtvPcSSJV8bfr2jbxSOvkloaemnq+t+pk5t5IIL\nbieZ7CYSWUcweJif/vQAkcgEJpkeclk7+VwWz+6XqF/6NTZtcuOLrcW0UhjKSas2icefpLbWzbRp\n0wCk8I0Q48Tjjz/O448/fsxj8Xh8RM9xqi38BUAFsFkppQYfswFLlFJ3Ay6ttT7+oB/84AfMnz//\n9CIV4oOoqsKyLGI9vTzx/YfYVNZwzKx5vx9CoV42bSqjsfEx7PY0ra17aWj4yvAYfH39Ylpa2ti3\n71Hq6l4iHJ73rlnwjzzyGM/+ZzN/0trCp71h/rnuOvbtX0cyeTdz585h2bKJ/OIXffT3X4LT2Upd\nqgtluLEsCBzYxB/+8BxKmUxIvUPOzGCzeWgxGykrN1i16hOS5IUYZ07UCN68eTMLFiwYsXOcasL/\nPXD8vp0PA7uAfzpRshdiVFVVEevppbc3SzA9nalT7z1m1rzP52P9+hLC4euorKyjpWUrzc0P4vNt\nZdKkRcMvM3/+UlKpp0gmn6C1dcMxs+CHJuotzZQwp7uw7v+OpUt4fspdpFK/4N57V9HT08P99z9P\nKHQNLtfLVPetQ2sTrSGc6yITeR53IETtQA+m2QoqzoQLgnxy+RKZaS+E+EicUsLXWg8AO49+TCk1\nAES11rtGMjAhPowet5tEIo3DUUa1MtjtLh0ev3/77UcBgyvTk1n68rfZOu/zWJOX4vc3sX//FmbP\njuL1FlrWyWQHc+dO4d57CzPyj54F397eTiIBE80jo1o1B99g4sV/zdtvaxobGwkEAuTzfXR1PY2V\nr6La7MHUabS2gAyzdSdvG99gkv4eqDQDZi8RM8r8+XNJJpMfaI8AIYQ4FSOx05606sUZI+pwYFjg\ndDoJJI7stldaWkd7ewq0g2t2/gpftp+LXv8hTZ+7nqlTz2Xbtt/R1vYqdXVLjum+b2hoeNc5hrbQ\ndexuHn5sYmsjv+7qpSuykS1b9pLLHaSnJ4FpPkO18uHQObR2AX1AnnnGfN4cOJcqK45hlNJuBXn+\n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\nceD/AwYMbuU9IMpVAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sklearn.tree import DecisionTreeRegressor\n", "plot_predictions(DecisionTreeRegressor())" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nSXDVzQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sklearn.ensemble import GradientBoostingRegressor\n", "plot_predictions(GradientBoostingRegressor(subsample=.8))" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfwAAAFyCAYAAAAQ6Gi7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3Xl4lOW5+PHvMzPZE5LMJAx72AICCgguKIoLClJRFC2K\nWmltTze7HHraqtW2x662Pf15qj1qrUVRkTZiFLXivoBxYRNQNsMawjLATDLJJJP9+f3xzDiTECAJ\nSd6Z5P5c11w8M/POvPdMSO732ZXWGiGEEEL0bDarAxBCCCFE15OEL4QQQvQCkvCFEEKIXkASvhBC\nCNELSMIXQgghegFJ+EIIIUQvIAlfCCGE6AUk4QshhBC9gCR8IYQQoheQhC8EoJTKU0o1KaVubefr\n3lVKvdNVccUSpdRZSqkipVRAKdWolBpvdUwtKeNTpdRdVscSTSnlUEqVKKW+bXUsoveShC9iglJq\nQSjhhm9BpdR+pdSrSqnvK6XSuyGMjqwzrYGmzg6kLUIXKY8rpXaEvq+DSqn3lFL/3QXncgDLgGzg\nP4GvAHs7+zyd4CZgEPBg9INKqTOUUsuUUntC31WpUup1pdT3Qs+fGfp/96vjvbFSamTomP8J3f9l\ni/+zdUqp3UqpvyilMqNfq7VuAP4fcI9SKrGzP7QQbaFkLX0RC5RSC4BFwM+BPUAC0A+4GJgBlABX\na60/7cIYEoF63Y5filAiDP9B7zZKqRHAWqAK873tAfoDk4BZWuvUTj7faGAr8HWt9eOd+d6dSSn1\nCfCh1vq7UY+dD7yNuUBZDBwCBgNTgBFa61Gh47YACVrr/OO89y+BXwCTtNYbo+5/G/NzSAOmA/OA\n97XW01q8PhPwAN/WWj/RaR9aiDZyWB2AEC28qrVeH3X/D0qpi4F/A8uVUmO01rVdcWKtdV0HXtOt\niT7Kj4BU4AytdWn0E0qpnM46iVIqVWtdDbhDD/k76707m1LqTGACsLDFU3cD5cBZWuvKFq+J/q6W\nAL9SSp2jtV7dyiluBLZprTe2ePw5rbUvVP67UkoD85RSZ2mt14YP0lr7lVKvA18FnmjfpxPi1EmT\nvoh5Wut3gV8DecAt0c8ppUaHmmq9oabaNUqpq1q+h1IqUyl1f6jJtUYptU8ptVgp5Qw9f0wfvlLK\nHWoy3xd6zQGl1AtKqSFRx7yrlHq7xblylVL/UEodCsW0oeXYgKjz/Ugp9R+hZvkapdRqpdRZbfha\nhgOlLZN96Ps62uJcTUqpX7TynexRSi2Kuh/uVpmmlHpIKeUBSpVSjwPvYrovloWOeTv0mjNC39HO\nqG6Ff4S/1xbnGxB6bn/os+4KnccRdUymUup/lenvrlFKFSulfqqUUm34Tq4BaoFVrXxXm1sm+1a+\nqyWAwnQLtIx9EjAaeLoNcYTPP6KV594ALlBKZbXhfYToVFLDF/HiKeB3mOb9fwAopcYB7wOlwO8x\nzarzgBeUUnO11stDx6WFjhsdeu0nQA5wNaa/10frCoExwAOY5uC+wOXAEEwXA7To91dKJQPvYZLM\ng5im9i8DTyilMrXWzfqWgZuBdOCR0HvdATynlBqutW48wfexF5iulLpEa93RQYPH67p4CDgM3Itp\npl4J7Ad+BvwFWINpmgbzfQzDdCscAsYB3wLGAueF31Ap1T/0uj7A34DtwEDgekxLRYVSKiV0rv6Y\n72MfcD7mZ9sP06pxIucBn7Xyve0FpiilxmmtNx/vxVrrPUqpDzC184UtunZuxnxfS08SA5jvA6Cs\nlefWYSpa5wOvtOG9hOg8Wmu5yc3yG7AAaMT0jx7vmDJgbdT9NzHJ29HiuPcxTa/h+/eG3vvqE7x3\nHmbw3a2h+5mh+z86SdzvAG9H3f9h6Fw3Rj1mB4owzeFpLc53GOgTdexVodd/6STnHQsEQu+xHrgf\ncwGT0sqxTcAvWnl8N7Coxc+gCVObVy2OvSj03NwWjye18r43hD7D1KjHFgP1wJkn+Ez3ABXA8BaP\n/w6oAwae5DspAQpaefyy0OvrQz+H+zAXKo5Wjv1OKPbLoh5TmIuP91sc+8vQsfmAC3Mh+DXMhedB\nILmV9+8X+h5/bPXvnNx6302a9EU8CQAZAEqpbOAS4FkgUynlCt+A14H8UK0SYC6wUWv9YjvOFcQk\niYvb2fw6Cziktf5n+AFtapwPYGryF7U4/p9a64qo+6swCWb4iU6itd4CTMS0fOQBPwBeADxKqW+0\nI95j3hr4u9a6TQMXddR4CqVUUuj7/xjzGSaFHlfAHOBFrfUnJ3i76zGf39/i5/kWpjVy2gleCybp\nHlOr1lq/ian9LwfGAz8BXgP2t9L98y+ggebN+hdjWiNaa85XmNaKI5jWnH8AxZiBkzWtHB+Or9PG\nWQjRVpLwRTxJB8L9sCMxf2x/jfljG33779AxfUP/jgA+a8+JtBnAdwcmgXuUme72E6WU+yQvzcP8\nwW9payjevBaP72tx3vJQMbsNMe7QWi/AJI/xwF2YWuzflFKXnuz1J7CnrQcqpbKVmYZ2CHORdATY\nhblwCE9Ny8U05R+3OT0kH7iCY3+eb4Ter+/xXxoJqbUHtdbrtNbXY77XczCtBunAs0qp06KO82Eu\nBq5VkelzN2G+12dbe2vgWkwrwnzgw1CcrSX76PhkepTodtKHL+KCUmogJoHsCD0Uvlj9H8wf6Nbs\nOM7jbaK1/otS6kXMYLCZwK+Au0L95i1HanfU8frp2zJIDYBQbXwzsFkp9RGmm+FmzFS0E7Ef5/Fg\nW8+NSYJTgD8CGzGtMDbMz6S9FQobJrn/gdY//+cneb2Xk1woaTOrYh2wTilVDDyOGWPx66jDngZm\nA7OVUi9hWohe01p7j/O2q0IXCiilXgY+xQwAnNzKseH4jrbynBBdShK+iBe3YmpFr4bu7wr9W6+1\nPlli2wmc3pGTaq13Y/rH71dm7vtG4L9C8bRmL3BGK4+PiXq+K4WngfWPeqwMaNYtoZRKaHFMu4W6\nOi4Ffq61/m3U4yNbHHoE0zd/sp/BTiBdd3wQ4jYiA+baorXvCuBFTEvSTZjm/WxMAj8prXWVUupe\nYJFSap7WuqDFIeH4trYjTiE6hTTpi5gXap6+B5PknwHQWh/BDC77llKqXyuvie4jfQ6YoJSa045z\npiilklo8vBuTCFo+Hu0VoJ9S6oao97ID3w+99r22xnCS+C6Ins4W5crQv9uiHtvJsf3f3+L4Nfy2\nCrdOtPw7spCoJutQC8QLwFWh6W3HUwCcp5Sa0fKJ0HS9k8X7IXB66GIm+rUXH+f41r4rQn3vz4ee\n/w6m1aI94z+WYGY13NHKc2dhBu192I73E6JTSA1fxBIFfEkpNQbzf9ONqUFejkm2V+vmi+Pcjhnk\n9alS6u+YCwI3ZoDWQODM0HF/wgwIezY0p3wdZoDXVcC3dOur940C3lJKFQBbMDW9uZj+2RNNzXoU\nk0yfCM2n34NpMj4P+KHWuqrN38aJ3QFMVkoVAptCj03GLHl7FDN9Luwx4BGl1DJMk/kEzPTGI628\nb3u6EiqVUiuBn4b6u/eH3ndoK+/zM8zPcaVS6lFMDXcA5ucyNTRw8U+YmQYvK6WewPyc0jDjE+aG\n3vd4UyjBDMq7BzMw8s2oxx9USqVikvg2IBGYipnCuYvWF8F5GtOKMxN4Wmvd5m4OrXWDUuovwJ+U\nUjO01q9HPX0ZUKS1bm3KnhBdy+ppAnKTm9bNpuWFb0FMAnkVk9jTjvO6oZh+2P2YgVIlmD/817Q4\nLguTBEtC770XM6I6O/R8Xui84Wl5TszI+s2Y5mgf8AHHTkt7B3irxWM5mCTrCZ1rA/CVFseEz7ew\nlc/UiGkmP9H3NSUU38ZQbDWYi6LHgKEtjlWYQWoeTCvDvzFNy7uAf7TyMzhmaiQmiTa28vn7Y9bY\n94biWIq56DrmM2DWPHgcM1+/GjO48S9ETY/DzMn/DWbkezAU8yrM+v32Nvw/2gA82uKxGcDfQz9L\nf+h9t2O6anKO8z620P+pBmDmcY4JT8tztvJcRuj7iJ6y2Sf0c/qq1b9vcuudN1lLXwjRYyilbgH+\nCgzRzac7Wk4p9Z/AjzHr93fJ8tBCnEi7+vCVUjal1K9DS2JWh5YDvaerghNCiHZagmnFud3qQKKF\nxlv8J/BrSfbCKu3tw78T0z95K6Zf8yxMX2W51vqvnR2cEEK0hzZNluOtjqMlbaYDDrU6DtG7tTfh\nnwcs11qHp0aVKKVuwixkIYQQQogY1d5peR9gNuzIB1BKTcCMdpVNIIQQQogY1t4a/n2YkabblFKN\nmAuGu3XUuuHRQutgz8RMTTreUpNCCCGEOFYypivoRCs9tll7E/4NmNWnbsT04U8E/qKUOqC1fqqV\n42fSxhWqhBBCCNGqmwktOnYq2pvw/wj8Xmsd3kRis1JqKGbTjtYS/h6Ap59+mjFjxrTydO+ycOFC\n7r//fqvDsJx8DxHyXRjyPUTId2HI9wBbt27llltugXZsaHUi7U34qRy72UcTxx8LUAMwZswYJk06\n0YqavUNmZqZ8D8j3EE2+C0O+hwj5Lgz5HprplC7x9ib8l4B7lFKlmFWrJmHWzX6sM4IRQgghRNdo\nb8L/HmYbyf/DrCl+AHiY5ltLCiGEECLGtCvha7Pxx49CNyGEEELECdketxvNnz/f6hBignwPEfJd\nGPI9RMh3Ycj30Pm6dPOc0N7X69atWyeDL4QQQoh2WL9+PZMnTwaYrLVef6rvJzV8IYQQoheQhC+E\nEEL0ApLwhRBCiF5AEr4QQgjRC0jCF0IIIXoBSfhCCCFELyAJXwghhOgFJOELIYQQvYAkfCGEEKIX\nkIQvhBBC9AKS8IUQQoheQBK+EEII0QtIwhdCCCF6AUn4QgghRC8gCV8IIYToBSThCyGEEL2AJHwh\nhBCiF5CEL4QQQvQCDqsDEN2ssRHq66GhwZT79AGlrI5KCCFEF5OE31scPgw//CEUFzd/fOxYeOgh\nSE+3Ji4hhBDdQpr0e4NgEH70o2OTPcCWLXDPPdDU1P1xCSGE6DaS8Hu6pib45S9h2zZzPzsbJk+G\nKVMgI8M89v778PDD1sUohBCiy0mTfk/3yCPw9tumnJoKf/sbDB9u7q9eDd/7nrkoePxxyM+HGTOs\ni1UIIUSXkRp+T7ZiBSxaZMo2G9x3XyTZA5xzDixcGLl/772RlgAhhBA9iiT8nqqiAn7/+8j9hQvh\n/POPPe7GG+Hqq025thZ+9SvQ+qRv7/V6KS4uxuv1dlLAQgghupI06fdUzz0H1dWm/KUvmcTeGqXg\nzjth61YzqO/zz+HTT2H8+FYPDwaDFBQUUlRUTCBgBvdPnZrPvHlzSUlJ6aIPI4QQ4lRJDb8nqquD\npUtN2WaDb37zxHPtExPh5psj95ctO+6hBQWFLF9eit0+lyFDFmK3z2X58lIKCgo7KXghhBBdQRJ+\nT/TKK+DzmfIll8CgQSd/zeWXm0V4AN54A8rLjznE6/VSVFSM2z0Lt3s8ycmZuN3jcbtnUVQkzftC\nCBHLJOH3NE1N8NRTkfu33tq21yUlwVVXmXJ9Pbz44jGH+Hw+AgHIzMxr9nhmZh6BgHleCCFEbJKE\n39O8/z7s3WvKkybBuHFtf+1110XKhYXHLMbjdDpJTwe/f2+zx/3+vaSnm+eFEELEJkn4Pc2TT0bK\nba3dhw0ZYqbqAZSWwscfN3va5XIxdWo+Hs8KPJ5N1NT48Xg24fGsYOrUfFwu1ykGL4QQoqtIwu9J\nNm2CDRtMefjw1qfhncz110fKrQzemzdvLnPmDKKxsZCSkvtpbCxkzpxBzJs3t4NBCyGE6A4yLa8n\n+ec/I+VbbjEj9NvroosgNxeOHIFVq8DjAbf7i6dTUlJYsOBmZs/24vP5cDqdUrMXQog4IDX8niIY\nhJUrTTkzE664omPvY7fDtdeaclMTvPxyq4e5XC7y86UZXwgh4oUk/J5i1SqoqTHl6dPN3PqOCo/W\nBzMIUAghRNyThN9TvP56pHyqG+D07x9Zc/+zz8DvP7X3E0IIYTlJ+D1BIAAffGDKLpeZjneqpk41\n/2oNH3106u8nhBDCUpLwe4L33jPL6QJcdlnHBuu1FD3Cv6jo1N9PCCGEpSTh9wTRzfkzZ3bOe06c\nCKmppvzhh8cswiOEECK+SMKPd35/pMnd7YbTT++c901IgLPPNuWyMti2rXPeVwghhCUk4ce7d96B\nxkZTnjGjc5rzw8L9+CDN+kIIEeck4ce76Ob8yy/v3PeO7scPDwoUQggRlyThxzOfD9auNeVBg2DM\nmM59/379ZHqeEEL0EJLw49m770YG082YAUp1/jlkep4QQvQIkvDj2apVkfIll3TNOWR6nhBC9AiS\n8ONVbS2sXm3KOTkwenTXnEem5wkhRI8gCT9erV1rkj7ABRd07uj8aC2n523f3jXnEUII0aUk4cer\n6E1tLriga8917rmR8oYNXXsuIYQQXUISfjzSOtJ/n5AA55zTteebMCFS3rixa88lhBCiS7Qr4Sul\ndiulmlq5PdhVAYpW7NoFhw6Z8uTJkT72rjJyZOQcGzeaCw4hhBBxpb01/LOAflG3ywENFHRyXOJE\nokfnX3hh15/PboczzjDlI0fg4MGuP6cQQohO1a6Er7X2aq0Ph2/AVcBOrfWqk71WdKLohN/V/fdh\n0c360o8vhBBxp8N9+EqpBOBm4B+dF444Kb8fPv3UlIcNg4EDu+e8EydGytKPL4QQcedUBu1dC2QC\nizspFtEWH3wQmQvfXbV7MLvwhaf+SQ1fCCHijuMUXnsbsEJrfehkBy5cuJDMzMxmj82fP5/58+ef\nwul7qejpeN3Rfx+WmgqjRpltcnftgspKyMjovvMLIUQPtnTpUpYuXdrsMX8n71/SoYSvlBoCXAZc\n05bj77//fiZNmtSRU4lojY1mtTuA9HQYP757zz9hgkn4Wptuhehld4UQQnRYa5Xg9evXM3ny5E47\nR0eb9G8DPMArnRaJOLnNm6GiwpTPOw8cp9JA0wHR/fjSrC+EEHGl3QlfKaWArwJPaK1lYfXuFL0n\nvRW1axmpL4QQcasjNfzLgMHA450ciziZ6IQ/ZUr3n79vX+jf35Q3b4aGhu6PQQghRIe0O+Frrd/Q\nWtu11ju6IiBxHOXlsHWrKefnQ26uNXGEa/m1tbKRjhBCxBFZSz9efPxxZEnb886zLg7pxxfxSGvw\n+aC+3upIhLBMN4/6Eh0W3ZxvZcJvuZHOzTdbF4sQJ3L4MKxYAZ99Zm5HjkBSEnznO3DTTV23pbQQ\nMUoSfjxoaopMx0tJaZ50u9uIEWZKYCBgavhag1LWxSNEa3bsgG98w/w/jVZbC//7v/D22/Df/w1D\nhlgSnhBWkEvceLBjh2mOBDj7bEhMtC4Wmw3GjjVln8/UooSIJUeOwA9/2DzZp6WZDaDCF6ebNsGN\nN8Lzz1sToxAWkIQfD6wend/SuHGR8pYt1sUhREvV1bBwIXg85v7YsVBQAO+8A48/Do8+CoMGmefq\n6uB3v4O1a62LV4huJAk/HoSb8yE2VrcL1/BBEr6IHY2N8LOfmdUgwUwhvf9+GD480l9/5pmwdCnM\nnWvuaw2/+EVkQSshejBJ+LGuujoyGn7QoEjtxErRNfzNm62LQ4hojzwS2WsiPR3+8hdwuY49LiUF\n7rzTdI+B6Zb6/e8js2CE6KEk4ce6tWtNzQVio3YPZg2A8B/SrVvlD6Ww3tGjsGSJKTsc8Kc/mZr9\n8dhscO+90KePuf/GG/CKrBQuejZJ+LEuVqbjRVMqUsuvrIR9+6yNR4gnnzR98gDz50dq7yfSty/c\nfXfk/h/+APv3d018QsQASfixTOtIwnc4oBN3TTpl0o8vYoXPB889R0NDA0Gt8V15ZdtfO306XHWV\nKVdXw333dU2MQsQASfixbO9eOHDAlCdNMnvSxwpJ+CJG1D3xBEcPHKR0/2Gea3Jx5x+fZvHiJQSD\nwba9wU9+Av36mfKHH5oFpYTogSThxzKrd8c7keiELwP3hFX8fsr+9jfKy+totPdl94UPY7fPZfny\nUgoKCtv2Hqmp8M1vRu4/8kjXxCqExSThx7JYTvhZWTBggClv3x4ZWChENwo8+ihBXyUJCZnsOn0+\njc4RuN3jcbtnUVRUjNfrbdsbXXllZAbMmjWwbl3XBS2ERSThx6qaGli/3pTdbhg2zNp4WhOu5dfU\nwO7d1sYiep/KSmzPPktTEyhHKhsnLvjiqczMPAIB8IVXqDwZu/3YWr7MPhE9jCT8WLV2bWTU8dSp\nsblevfTjCys9/zyJdXXYbLBh0LkE0vt98ZTfv5f0dHA6nW1/vyuugLw8U/7kE1PTF6IHkYQfq2K5\nOT9MFuARVnrlFRwOB+npybzszMDj2URNjR+PZxMezwqmTs3H1drCO8djs8G3vhW5//DDUssXPYok\n/FikNRQVmbLDAeecY208xzNmTKTlQWr4ojsVF5tNpYCsCy9g6vzTaWwspKTkfhobC5kzZxDz5s1t\n//tedllkwZ5PP22+rLUQcU62x41F+/ZFFgCZODG2puNFS02FoUNN/31xsemCsHInP9F7RK2K57j6\nahZcfz2zZ3vx+Xw4nc721eyjhWv5d9xh7j/zTOy2sAnRTlLDj0Xh2j3E/h+bcD9+Q4NJ+kJ0taYm\nePVVU7bb4fLLAXC5XOTnt7MZvzWXXAIDB5ryRx/Brl2n9n5CxAhJ+LEouv9+6lTr4mgLGbgnutva\ntWbPezC/H5mZnfv+NhvceGPk/j//2bnvL4RFJOHHmpqayBzgvn1PvAFILJCEL7rbihWR8pe+1DXn\nuPrqSFfav/8Nfn/XnEeIbiQJP9asWxeZjnf++bE5HS/aqFGRvcbD+5AL0VVqauCtt0w5LQ2mTeua\n86SlwZw5plxbC88/3zXnEaIbScKPNatWRcqx3n8PkJQUaYXYuTNysSJEV1i50mxyA2ZEfVcOEr3h\nhsgFd0GBGaciRByThB9LtDZ/0AASEmDKFGvjaasxY8y/TU0ycE90reg967uqOT9s0CC48EJTPnwY\n3n67a88nRBeThB9Ltm0zf1jA7Ocdq9PxWjrttEhZmvVFVykvjwxo7dsXzjyz6895002R8tKlXX8+\nIbqQJPxYEq7dA1x8sWVhtFt0wt+61bo4RM+2cqVpRQKzDK6tG/58TZ4M+fmm/OmnMjBVxDVJ+LHk\nvfci5XBTYjwYNSrS1yk1fNFVrLggVsr05YctW9Y95xWiC0jCjxUHD8Lnn5vy2LGQm2ttPO2RkmJW\n3AOz3KkM3BOdrbbWLIID4HTC6ad337lnzoT0dFN+9VWoqOi+cwvRiSThx4ro2stFF1kXRwdV5+VR\nU1tLQ02NrEwmOt/q1WZKHpjWr+5ozg9LSYGrrjLlujp46aXuO7cQnUgSfqyIbs7vqrnFXSAYDLJ4\n8RKeWb+bAwe8lO4/zDsPPUIwGLQ6NNGTRP9+WHFBfP31kfKyZZGxBELEEUn4saCyMrK63oABMHKk\ntfG0Q0FBIcuXl3LYOY/ERDdKZbP/rW0UFBRaHZroKZqaIi1gSUnW7B6Zlxc57759sGZN98cgxCmS\nhB8LPvwQGhtNedq02F9dL8Tr9VJUVIzbPQs9ajY2ZSfBkcLIhkSKiorxer1WhyjimNfrpbi4mPKi\nIvD5zINTpkBysjUBRdfyn33WmhiEOAWyPW4sePfdSDmO+u99Ph+BAAwZkkd9Yhr+zCFk+kvoH/BQ\nXdGEz+c79Z3LRK8TDAYpKCikqKiYQABm713NDK8PZ3YWNit/P6ZNM4NpjxwxLQ4eD7jd1sUjRDtJ\nDd9q9fWRxUQyMrpnMZFO4nQ6SU8Hv38vAEdzQvPx6wMM1WU4nU4LoxPxKtxNVF9/KenpVzPyQJDy\n8jp85eVwwQXWBeZwwLXXmnJTEzz3nHWxCNEBkvCttno1BAKmfP755o9KnHC5XEydmo/HswKPZxMH\nM4dQ3xCkvt7Ppf0TpHYv2s3r9fLee1soL29i06a32fXeU6Qf3k5jI2x19MGrtbUBXnttZIbACy/I\nFFQRVyThW+211yLlyy+3Lo4OmjdvLnPmDKKxsZBN9evQuoysrEQuzJVkL9rP5/OxZct2SksbUWou\nF+qxQDZ1dZq3GxPwhfvyrZKbC5deaso+X2TnPiHigCR8K9XWRvrv09PjY3e8FlJSUliw4GZ+//vv\n87X7vsuggX3JcTlJ2LnT6tBEnCovr8XhmEp6+ngmBdZgt6WgVDrvkWF1aMa8eZFyQYF1cQjRTpLw\nrfT++5GtPi+9tGu3+uxiLpeLEWeeiSMvzzywfbvMVRYdkpXloqGhFu3fwYjK9TQ21XPAnkN17mCr\nQzPOPFPW1xdxSRK+laKb82fOtC6OzhTeSKe2FvbssTQUEX+cTidjxw5i4MAAp/mfo7G+Aq2D7Og3\nkrFjB8fGQFClpJYv4pIkfKsEAqaGD2Zt8LPOsjaezjJmTKQsO+eJdnK5XJx//ggqKt7hdP8q0I00\nNdXykaOK888fETsDQWfNMrNqAF5/HcrKrI1HiDaQhG+V996LjPC97DKw262Np7NEb5UrO+eJDtAa\nlPYyqXYTylZNna2e7Sk2rB6g30xyMsyZY8p1dWbEvhAxThK+VXpicz40T/hSwxft5PV6WbNmL1fl\n30BeupM+GTkExl3LpCn3sGbN3thavfHLX46sirlsWWS1TCFilCR8K5SVRbb67NcPzjjD2ng6U1aW\n+UwgA/dEu4VXbzzDX4LN5sDhSOLg8MvIzMwjEMD6aXnRBg6MLATk8TTf4EeIGCQJ3wpvvx1JhDNm\ndO9Wn90h3I8fDEJJibWxiLgSXr1xwO43v3hs35Cp+P17SU8nNgbtRbvhhkj56aeti0OINuhhmSZO\nrFgRKV9xhXVxdJXogXvSjy/aweVyccmE/uQc/oT6hiCHs4axK3AIj2cFU6fmx86gvbBzz4URI0x5\n0ybYuNHaeIQ4AUn43W3XLtiwwZSHD4/M5+1JpB9fnIK5/XLIykpE6zI+Sa2isbGQOXMGMW/eXKtD\nO5ZScOutkfuLF1sXixAnET8Lt/cUy5ZFynPnxs1WuO0iCV+cgqS1a0lyOcnKbODSn3+Lqy+4IPZq\n9tFmzIAPpX8RAAAgAElEQVT/+z84fNjsord7NwwbZnVUQhxDavjdqboa/v1vU05OhiuvtDaeruJ0\nQt++piwD90R7NDbChx8C4HA6yZs9O7aTPUBCAtx8c+T+U09ZF4sQJyAJvzu99hpUVZnyzJmRhTt6\nonAtv6oKSkutjUXEj40bI7tHTpkSP+tTXHut2Q8D4JVX4MgRa+MRohWS8LuL1s2b86+7zrpYuoMM\n3BMdEV59EiJT3uJBaqqZlw/Q0ABLl1objxCtkITfXTZvNs3bAGPHmltPJglfdMSqVeZfpeC886yN\npb1uuME07wM89xxUVlobjxAttDvhK6UGKKWeUkodVUpVK6U2KqUmdUVwPcpzz0XK119vXRzdRQbu\nifYqLTUD3sAsRpWdbW087ZWTExmXU1Ul8/JFzGlXwldKZQFFQC0wExgD/BcgO0ecSEVFZCndjAwz\nqreny8kxNzA1/JhaCF3EpJUraWhooKa2lsCkOK1D3HYbOEKTn555BmJpZUDR67W3hn8nUKK1/obW\nep3Weq/W+k2t9e6uCK7HeOGFyEY5s2ebEfq9QbhZv7ISDhywNhYR04LBINsfW0Tp/sMcOODld+8X\ns3jxEoLBoNWhtc+AAWa6LZiVJh9/3Np4hIjS3oR/FbBWKVWglPIopdYrpb7RFYH1GMFgZJqOUj1/\nsF402SpXtFHhk8+gNnyOUtnUOCdQlnUby5eXUlBQaHVo7XfbbZCUZMrLlsHBg9bGI0RIexP+cOA7\nwHZgBvAw8IBS6iudHViP8eyzkb2yL7sMhg61NJxuJf34og28Xi9Hlr9LkiODBEcKpcOm4+43Abd7\nFkVFxbG1Q15b5OTA/PmmXF8Pf/+7tfEIEdLelfZswGqt9c9D9zcqpU4Hvg0cd7WJhQsXkpmZ2eyx\n+fPnMz/8S9FTVVfDk0+aslLwH/9hbTzdLTrhy0h9cRw+n4+8kr3Y7YkA7M2bBkBmZh4lJeb5mF98\np6VbbzW1+0AAXn7Z3O9NF/ui3ZYuXcrSFtM5/X5/p56jvQn/INCyqrYVOOEi1/fffz+T4nUQzql4\n9lkoLzflyy83a+f3Jrm5ZtU9n8/U8LXumUsJi1PizMxkjG8fjY2pNKTmcLDfmQCxu0NeW/TpY5L8\nQw+ZlSYfegj++EeroxIxrLVK8Pr165k8eXKnnaO9TfpFwOgWj40G9nZOOD1Ib6/dg/nc4X78igoZ\nuCda5SotJSdJUV/vZ3v2CKrrq/F4NsXuDnltNX++ueAFsyV2UZG18Yher70J/35gilLqLqXUCKXU\nTcA3gL92fmhx7l//gnBzzMyZvXczjXHjIuUtW6yLQ8SuVatwZmeRlZXIdnctJSX3x/YOeW2VkgI/\n+EHk/n33mUG8QlikXU36Wuu1SqlrgfuAnwO7gR9qrf/ZFcHFrcrKyMh8m6131u7Dokfqb9liujaE\niLZyJTabjZzcHG55+DfMamjA6XTGb80+2pVXmg2z1qwxo/X/9jf4z/+0OirRS7V7pT2t9Sta6/Fa\n61St9Tit9aKuCCyuPfCAacIGuOIKyMuzNh4rRdfwN2+2Lg4Rm0pKYG+oR3D8eJzDhpGfH8fN+C0p\nBXfdBYlmQCLPPBNZYluIbiZr6Xe2devg+edNOTUVvvtda+OxmtMJbrcpb9smW+WK5t58M1KeNs26\nOLrSkCHw9a+bclMT/Pa38nsgLCEJvzPV1sJvfhO5/73vQb9+1sUTK8K1/Opq2LPH0lBEjHnjjUj5\nssusi6Or3XprZJbOli2RAb1CdCNJ+J3p0Udh3z5THj++d2yS0xbROwPKAjwCs9jO7nfeoSH8/+H0\n082ytD1VQgLcfXfk/kMPmX59IbqRJPzOsm1bZKBeQgL8/OdmwJ5onvClH79XCwaDLF68hLvuepA3\n7/h/7Nvn4dAhD95OnGscsyZMaN60/7OfgcdjbUyiV5GM1BmqquAXv4j0y3396713Gl5rWo7UF71W\nQUEhy5eXovVVnLaviqrqJA4fDvKNpa/F52Y57fWtb8F555lyWRnccUdkYy0hupgk/FPV2GhG4e7a\nZe6PGAELFlgbU6zJyDADlwA+/9ysLy7ijtfrpbi442vbe71eioqKcbtnYdvjIbv8ADZbJrsyzmd7\n+TAKCrbH52Y57WGzmXE+4e6Lzz6DP//Z2phEr9HepXVFS3/+M3zwgSn36QN/+pNp0hfNjR1rpmDV\n1cHOnc3X2RcxLRgMUlBQSFFRMYEApKfD1Kn5zJs3l5SUlDa/j8/nIxCA3Nxc3NufwGZLwm5LYH3O\ntdjte+nTZzJFReuYPdvbc6bltSYz0yyze9tt5vfhuefMbJZvflOWnhZdSmr4p+Jf/4KCAlN2OOB/\n/idSkxXNRffjS7N+XAk3w9vtcxkyZCF2+9wObV3rdDpJT4fDns85x78Wm3KgleKD5GEkJkLfvqcT\nCJgLgx7vtNNMH37Y3/8ODz9s9psQootIwu+o119v3hR3993QGzcIaitZYjcuRTfDu93jSU7OxO0e\n36Gta10uF1On5pN+8Dn61ZXQ1FTHlqQ89td9zODB+dTVVcbvZjkdMXs2/PjHkfuLFsFf/ypJX3QZ\nSfjtpbX5xfzZzyKD9G67Da66ytq4Yt3o0ZFZC5Lw40a4GT4zs/lqkZmZeR2qjc+bN5evD6kgwVFJ\nQ8N+ViZVMXy4k9zc/PjfLKcjbrwRfvrTyP3Fi023oIxzEV1AEn571NfDr39t5tCGXXMNfPvb1sUU\nL5KTIwuP7NgBNTXWxiPaJNwM7/c33xCzo1vXpiQlMcXvY9iwgeS406mdOpLMzP0o9Ur8b5bTUfPm\nmYG/YQUFZqZPaal1MYkeSQbttdX+/fCrX5mlc8O+9z0zIl8G2pyU1+sFt5vMbdtwOBxmtP748VaH\nJU4i3Ay/fPkKwNTs/f69eDwrmDOnA7Xx1avhwAESExMZMOdqfnPvf+Pz+XrOZjkddd11ZrDv739v\nKhZbtsBNN8E998CMGVZHJ3oISfgnU1dnlsFctCgyXzYxEe69V3Z+a4PoEd5jth7k2v2HSU9Pps+G\nDSRKwo8LptZdSFFRISUlZpT+nDn5HauNP/tspHzddbhcrt6d6KNdfTWMGmVq+/v2maWof/Yzs9ve\n7beb54Q4BUp34QARpdQkYN26deuYFG8D2hoa4N13TfN9SUnk8b59zb7WkqzaZPHiJSxfXorbPYuR\n9TXMfeFW6uvK8U+dxNkrXrE6PNEOXq/31GrjHo8Z69LUZH6PXnoJ7PbODzTeVVebmv6KFc0fnznT\nLNwjM4F6jfXr1zPZrEI5WWu9/lTfT/rwWzp61KyJf9VVcOedkWRvs8Ett8CyZZLs2yh6hLfTmc8H\nh7dSUVNFbZ2m/P31/N//PdLzV1brQVwu16ltXVtYGBnoeu21kuyPJzXVdB/+9reRnSYBXnsN5s41\nSf+ll8yFgRDtIE36TU1mffePPoIPPzQrX7XcunLCBNPMNnKkNTHGqfAI7yFD8ti8uZDtxYfYk3wW\no2p20a/ez0PLdpCeXsiCBTdbHaroavX18MILpmyzmcGu4viUMjX6Sy4xlYxFi6C83Dy3bp25/eEP\ncO65MHkynHWW+fsk+3eIE+gdCV9rqKgwTYoejxn9umOHue3c2fqIcZvN7M/95S/DOefIwLwOCI/w\n9ng2sm9fMWlpc9lXn0T+wV3Y7UmclZxPUVFxz19ZTZjusfCc/UsugdxcS8OJG4mJZvDenDlm/MOL\nL0ZaHWtq4L33zA3M4IoRI8xsmGHDTNN/376QkwNZWXIxIHpBwr/9dtiwwexV3xbDhpk/SHPnyl72\npyg8wnvJkpeoqKjD5XKz2TaIi5tqSU5yMK4xwObQXG5J+PGrTX37y5ZFyrJtdPulpcFXv2pmBW3e\nDC+/DG++Gan1AwQCsHGjubXkcJglffv0MXtbpKebqbLhW1KSmSXgcERudru5SLDbTYXHZjP/tryF\nhcstK0cnqiydrCI1YQLk5Z34GNFmPT/hNzQcP9krBQMHmt3czj0XpkyRJN/J5s2bSyBQyYMP/huv\n92WKU5wkJ9lJSUkme/9q0oeO6T0rq/UwbV5jf/fuyHTWvDzT/Cw6Rik4/XRz++lPzaZd4Sb+zz6D\nw4dbf11Dg2lh6eDGR5a55x5J+J2o5yf8vDzw+czgl759TULv1880ew0fbgbIiC6TkpLC7bebhYmW\nL9/NgAGn01A1kIbK/eR4VjP1vNlSu49T4TX23e65DBli5ucvX76CQGAxM2ZMj9T4ly6NvOj666V7\nrLPYbKbffuRIuOEG81hVlbnA2rULDh6EI0fMRcCRI6Zbs7JSBvv1Yj0/4UdvUCEsc9ttC0hPL6So\naAXFiVWcoctwZyRzwzlxNl1TANEzMObidptZK3b7GLZt+5wHH3yCt9/ehcuVyozTsplbWGimA6Wm\nwpVXWhp3j5eWFmkBOJ7GRnNhUFPT/NbQYG719eaYxkYzgLmx0YyD0trcD5fDt2gnut+RKeATJ7b/\nNeK4en7CFzEhJSWFBQtuZvZsL/WPp5Pz9NM4HA4q1q9nX2KirLQWZ6JnYIRt3ryV/fvT0XoELteN\n2O0ObI/8AF+9jxyXE2691fQhC2vZ7ebnID+LXkcSvuhWLpcLLr+cpmee4ajXR9FfFvGvFTs7vMe6\nsEb0GvvJyeOprq5m3z4fDkcSCQlJaN3AiNoaJpcfIaBr6DM0g8SbbrI6bCF6NUn4ovuddhpefwX+\n8joG2RLJzf0Whw8XU1DwLiDz8uNByzX2GxszKC/fSlXVOyQlJfDRh/9mpuff1NVVYbNrvNdcQ38Z\nLyOEpWRipuh23kCAHbY0HI4+ZHpLWf/eJ3z2WRO7dg3k8cdfoVR2CetWXq+X4uL27W0PZgbGnDmD\naGwsxOt9lOrqx2hsTMfl+hHn2y9kbHWQmppaDtoUieFBZUIIy0gNX3Q7n8/H7rS+5BzeR20dDK9V\n7HRNoapqIDt3vsqSJf/ijjv+y+owe7w2T6s7juhxGTt37mThwp0cODANuxrAdQf+BDjQJPPCgGGM\nSUjo+g8khDghqeGLbud0OjngyqK2rgabLYnTm/bjcCRjtwfJyOjH5s2edtc2RfuFp9XZ7XMZMmQh\ndvtcli8vpaCg8Itj2lL7d7lcZGdnM3DgKMaOzWd62SMMDHwC1ODNyaf0tPPw+Xzd8ImEECciNXzR\n7VwuF6nnnkbTqnewqRSGVq4lkHEOVVUrGD58PA0N+2X1vS7W2rS65GTzb1FRIdOnl/LWW++1ufbv\ndDrJynJwmt3HbbWvYcswxywZdx1abaOsrAyvV5ZQFsJKkvCFJa7+zjc59PCj2Gq8DKl4Dd3PzejR\no8jNzUep/bL6XhdrbVodQGZmHiUlsGTJv/j444ZjFtWJHlTZckndC8/OY/i9d0NdA7V1TTyXNJ6H\n175JUtIu9u7dx9ixo7noorEyE0MIi0jCF5YYNHgw/nMnkfjhRlLtDq6aeDmepD54PCuYM+cUtmAV\nbdJyWl2Y378Xh6OGzZurcbtvaVft/8v7dlOdEMDr97O1MY2HUxNItA0iM/Pr+Hxr2bPHTnl5KTIT\nQwhrSB++sEz+NXPIdiZjs1eRtvMhGhsLmTNnEPPmzbU6tB4vPK3O41mBx7OJmho/Hs8mPJ4VnH56\nLg0NqWRmHlv7DwRM7b9l3/+Ox96j+qmnycrsg0pJ5tUL7yCr7zwGDfoR/fpdQZ8+V+P315KZeR5F\nRe2fESCEOHVSwxeWSTz7bHJcTrIyG/ja5H6ou78vNftuZC6sCikqKqSkxNTU58zJZ/r0i9ix47E2\n1/4HViUzc+cnBOprSElO4t+jL6Ap70s0HdhLcnImAMnJefj9kJCQTkB2SBTCEpLwhXXGjQO7HQeQ\nU1ICkgC6VfS0upbb20YvqpOYmMvhw8VUVLzLRRflsmFD5Re1/4yK/cxa8X2SdQN1TVBx1llsTR5O\nZeU+mpqqCQQ8ZGXlUVOzl8REqK8PkJ6OjNEQwgKS8IV1kpPN1sSffQZ79kBZGWRnWx1Vr+NyuY6p\nbc+bN5f6+n/y9NN/oLQ0CNQxaFAyCQnTSE6ux+/fS3bTQK585bukVnupb6zjYI6bvF/8Av3H/+Wj\njxZRXT2RmppDpKfbSE3dy+DBSfj9H8oYDSEsIglfWOvMM03CB9i0CS66yNp4BGBq/wkJiaSljeDs\ns8+mb9/TqaurZNWqFbhc5fhLX+DSbR+RHjhIfWMdpYl29i78Ljs+WM3hw/0ZNszO0aMH8Xg2UVGx\nk+TkWoYOnf7FKH0hRPeThC+sNXEiPPWUKW/YIAk/RoTn6Q8Zcv0XffVhOvA0Pz/6Kinle6hrgkBa\nOqU/uZ1ps2fxq189xoABZm5/dbWXYNDHkSO70XoFd931VfLz8y36REIISfjCWuOjksmGDdbFIZo5\n3jz9nNRcpr/2BsPSGnAM7Etdaiq1Dz3E+IkTKS4ubvaa1FQXqaku0tL6UlLygRUfQwgRRablCWtl\nZ8PQoaa8dSvU1FgaTk/W1k1yvF4vZWVlOBw1+P17v3g8ob6aK165naGVHhx2Ow6nk9QnniB74kSg\n+dz+aH7/XhmoJ0QMkBq+sN7EiWbQXkMDbNkCkyZZHVGP0tZNcloed+DADior/8akSbfhzhzE9Fdu\nx31oNelZyTicTnjkERg16ovXt9wyNzPTrNAniykJERukhi+sF6ohAtKs3wVabpJTVzeLJUu2smjR\n4hMel5//U8DHjs//zHkvX8PgIx+QlZVI9pDB8NBDzZJ9WPSWuSUl98tiSkLEEKnhC+tJwu8y0Zvk\nOJ1j2Lx5K/v2BamoGMaDDz4PwG23LaC6upqiomIyMy/F4UihqamBgQPPwWG/k4vW/IALm7zYczJJ\nzMrC/vDDcNpprZ7vRHP7hRDWkoQvrDdwoFl0x+uFjRuhqQls0vjUGaIH323evJXt2ytISxuDyzUG\nr3cTy5fvJD29kEmTxrNp02cEAhXU1SlSUhIYNuwM5lYfZsL2TRxJTETbEnh29FQGrPmEecOGnXAD\nnNbm9gshrCUJX1hPKVPLf+stqKqCHTtabS4W7RceSHfo0Db27QuSljaG9HQ3gcAm+vTJZuDASykq\nept9+/axY0cTDQ0jcDjyAA+jSp5hYvX71GsHyclOVl78S0pyx7Kmxa55Qoj4INUoERukWb9LhAfS\nHTjwEhUVO3E4IBDYRFXVCgYPzsftnoDXW81LL60GLkXrs4FR9K9J5Efln1JXV4/WybwyaB6fj74O\nt3s8bvcs2QBHiDgkCV/EBkn4XSY8kM5ufx6v93doXcjo0YMYN24ufv9eGhvLOHSogdTU4cBRqsrf\n566qR0kgEXDwTsYl/LXmMjZv3gpEds3z+XyWfi4hRPtIwhexYdQoCPcJf/IJaG1tPD1ISkoKt9/+\nbb72tYvp27eKUaMmc9pps/H5ivF4VjB+/GCCQS9+v4eUlHF817aO0aocBexWSfwj50bS0kexb5+P\n6upqmVcvRJyShC9ig90OZ5xhykeOwIED1sbTgwSDQRYvXsL27eU0NjbwySeP8u67X6e29l/MmTOI\nL3/5Wuz2GpqaNnN67evc1PA6SjXQoGq41zGK6sb1NDaWEAwG2LdvLR7PCqZOlXn1QsQbGbQnYsfk\nybB6tSmvW2dG74tTtmjRYpYv34nLNY3x4+dSUXEUn28lo0dncf7551BWVsbgwWPw7Wngp+W/A8rR\nOoHHEqbjc81i7LBqDhx4krq6/SQkjOKKK86QefVCxCFJ+CJ2TJ4cKa9bB1dfbV0sPUAwGGTRosU8\n8MBL+HzJNDR8RkpKMrm5+dTVlbBoUSWrV3tJS9MkJ1dxd0o1AwN2GnQCa1UurzivJycngUGDRpOU\ndIBp04byjW98VWr2QsQpSfgidowdC0lJUFtrEr44JQUFhRQWlnDw4BRqasaiVCJVVR9QXr4ZyCYl\nZQLp6deQmlpPv6O/49yjr5OS6qY2YSgvDL6YhMNPkZqaSWLiMObNG33MUrxCiPgiCV/EjsREmDDB\nNOsfOmT68QcMsDqquBReYa+8fATBYBM22+nYbHnU1SVQX78W+DJ1dVWsXr2T0aMG81/1Aew2BbqM\n14ePo/+4VK6YcAXTpk1lwIABUqsXogdoV8JXSv0S+GWLh7dprcd2XkiiV5s0qXk/viT8Djlw4ADr\n1xezc2dftE6hvr4GKEPrDCAFyEXrRiorE8hd/yb9KnZgT0wic+IYZv3119zct68keSF6mI6M0v8M\ncAP9QrcLOjUi0bu17McXHbJyZREHD5bT1NSHhIT+QD1aHwV2ApXAfhISMrHX1fOV8hepqalG60bs\nP/4x+WPGSLIXogfqSMJv0Fof0VofDt1k9Q3RecaNM037IAm/g7xeLxs3HmLYsHOx2TZgsx0FDqLU\nbmA1SqVis71KQoKfORXLyAjupr6+krWJKbxw2EcwGLT6IwghukBHEn6+Umq/UmqnUupppdTgTo9K\n9F7hfnyAgwdlPn4HhDfMOffcbzJ8uAu7/R1stsUo9VegCKUCpKf7yWl6hhtrl4OuRiUk8+GU+ygo\n2MmDDz4ky+YK0QO1N+F/BHwVmAl8GxgGrFRKpXVyXKI3mzQpUl6/3ro4YojX66W4uG3r14c3zKmu\nPsysWT/mggsW4HZfTGLiRJKSEsjOHkXfvt/gqw17SHWk4UjIZv2I+exhLLt2DeTRR99h4cI/sHjx\nEqntC9GDtGvQntb6tai7nymlVgN7gXnA48d73cKFC8nMzGz22Pz585k/f357Ti96i5b9+LNnWxeL\nxYLBIAUFhRQVFRMIQHo6TJ2af8IpcuENc5YvXwHA+PETcLkcfPLJBtLTc4E6mg7+hSsbPSQk5kJq\nH17Pu5bt2ytITp6GUjuprz+P5cu3EAgsZsaM6bKvvRBdbOnSpSxdurTZY36/v1PPofQprlkeSvpv\naK3vbuW5ScC6devWMSm61ibEidTVwcUXm38HDMD7+OP4fL5emXQWL17C8uWluN2zyMzMw+/fi8ez\ngjlzBp1we9rjXShMn34RwWCQpAceoH5JATabkw1nfovf+Cai1BjAg9aFTJv2bdaseYcDBxYxduxp\nDBjgOumFhhCic61fv57JpgI0WWt9ys2dpzQPXymVDowEnjzVQIT4QmIinHEGTWvW4Pv0M/7ww9+x\nvymjTbXbniQ8l97tnovbPR6A5GTzb1FRIbNne497AZSSksLs2VcwZkw+ACNGjIgce/gwrF3L0cw0\nDlfW8HKffIL7AyQllVBT8zYjRw7jvffWsXNnkKamJHbsqKe6OgmPZzdQeMILDSFE7GrvPPw/AS9h\nmvEHAvcC9cDSE71OiHabPBnf629QXl7HUN8w7OO/gt+/N9RM3TuSTnjw3ZAhec0ez8zMo6TEPN9a\nwj9pN8BTT0F9Pc7sLHZOPZ162yrq6j4HBjJs2JmUlfVn584ANls/UlLOIDl5FgcPfghAUVHxCS80\nhBCxq72D9gYBzwDbgH8CR4ApWmsZ0is6VfnIkQQCNSQkZDK22ktyciZu93jc7lkUFbVt8Fq8Cw++\n8/v3Nnv8ZNvTFhQUsnx5KXb7XIYMWYjdPpfly0spKCgErxeeew4AW0oK5z7wv9x//0/42tfOISGh\nmh076tm4cRNVVcXU1b1Dnz5jycqaRlraLHy+Crzeanw+mYkrRDxq76A9GWUnusURtxuNnVR7IgMO\nrgWtQamT1m57kpaD75r34be+Pe3JugGuL91DWl2dOfj668HpxAX07evGZltHeflSampqaWrKoLY2\nhYqKgbjdQZKT8/B4qnE4mo57oSGEiG2ylr6ISc5+/fg0182wo0EyKg/Sp3I/FX0GnbR229OYbWgL\nKSoqpKTENM/PmZN/3O1pT9QNcHRHDbZ1L4FSZpzEV74CmIuENWv2kp09iYqKKurr+9PQcAa1tQF8\nvlXs37+E5OQR1NfvZdq0K3r8hZYQPZUkfBGTXC4XCedNor7wFQByd79Dcb8JJ6zd9kQpKSksWHAz\ns2d72zRTIbobIFyzB3N/2uHNJDQ2gsMB11wDOTmAuUjweqvxeuvIzr6RhAQ4csSPzTaEYHAihw8v\nw+m0M3PmQG67bUGXf2YhRNeQhC9i1uTvfJPA228SCJTR5/NHacydfsLabU/mcrnadJET7gYoKFhG\nefleMjIGUlm5n+qyD7nMtwdHchINTU2UnH8+mV4z+M7pdOJwBKmutuF255GSkgpsxestAQJkZFTz\nta+dy513/qRXzI4QoqeShC9iVvKZZ5I8ZDBZfj9905q44Le348rNtTqsmBYMBqmvr6OiYjtr1rxG\nTY0iOTmN27ICEPDhsdtZl5PH0w+9SXr6m1+M3p82bRwff/wqPt96nM7zSE9309joxelMYPToM/jB\nD26XZC9EnJOEL2KX3Q6TJ+NYuRJHbS2p5eUgCf+ECgoKeeWVwyQkTCQjYyzp6RMJVKxiWkkBnoZK\nFPCk80pc2bfS1BT4YprjbbctYMOGT3nzzcV4PLtIS3MzaFANGRmlTJ9+Rq/pQhGiJ+vI5jlCdJ+z\nz46U16yxLo44EB6hn5l5Hn5/LdnZ15KYGODsWi/9GxLRTS5WN03mpR3JvPjiYxw8CC7XZRQVFVNd\nXc0DD/wPP/7xFCZN+owRI4rIz/+M667L65VdKEL0RFLDF7HtnHMi5dWr4aabrIslxoVH6Kenp1NX\nBwkJdrzeT/l5gxetE2jS8JRaQEPDII4ceZ4PP9zMpEkDyc6OTHO8/fZvc+ONbRsgKISIL1LDF7Ft\n+HDqMjKoqa2l/uOPoaHB6ohiVniEfjDopaKimN27lzOkfBen1e6gqUmzi758pMaSkDAepbKork5l\n48Y1OBw1zaY5ulwu8vN7z0wIIXoLSfgiZgWDQRY/+Qxvljdw4ICX/Tv28uJ9f+q1W7aebIvc8Aj9\nLVsWUV1dRUODh5uatqN1PQDPqCko+xGamjZjtzfhcNjw+99n2LA0Se5C9ALSpC9iVniJ2Mvd1zP+\n0GuQrK4AACAASURBVBM0Ntaxr3AdBYN7x1r6Ye3ZInf69It4/PFXcDpn0qdiKxdX7wbl4Kh28pqa\nQHJyBXV1z2K3B7DZ/KSllTB9+kKLPpkQojtJDV/EpMgSsbOoHvdlbMpOgiOF8TX0mrX0w064Nn4L\nwWCQAQPyueKKa7h7eDY5rjzS01J5PiGRevU0dvu7DBgwgcGDbyQ9PZGxY4cxbtw4Cz6VEKK7ScIX\nMSk8AC0zM4/KjAFUZgwAYIi/hFp/Q6/ZwCX6wsftHn/MJkLFxcXNmvnD/fi2wG4m7XuLBEcSKdlD\nKZ7wH2RkHMLprCE5+QjwHjk5Hm6++Uppzheil5AmfRGTWi4Ru3/gOZy27QWor+K02kO9Zi39462N\nn5o6gKKi3dxzzwPY7a5mzfxTp+ZT+Zf/h64po8meyNoBZ5PWN8j1E6dRW5uGx+MlJUVx+eUXccst\nN1r0yYQQ3U1q+CImhQegeTwr8Hg2sTt3HPUNQerr/VyaXtdraqXH2yJ3/fp3OXTIT2rql49p5p93\nzWyurf8crcuorTvMR8MV112Xxx/+8GvOPXc4WVmJ2O192LjxEAUFhb12EKQQvY3U8EXMit4p7qPG\nINN1GVlZyQxtqLM6tG7T2ha5hw5tY8+elxk+/Fzy8qYBzbfAvdbxMgOTEmkY2JeKs8/mjvvuxuVy\nsXjxEt56y4/b/R9fbLUbXmmvNw2CFKK3koQvYlbLneL637WTpD17YMcOKCuD7GyrQ+wWLbfIra4+\nRGbmQU477adfHFNdXU1jYwbeozWoJUsAcDgcOL//fXC58Hq9vPXWpyQlfYmMjJEkJ6c2u0iYPdvb\na1pNhOitJOGLmPfFTnHTpsGePebBNWtgxgxL4+ou4Quf6dNL+fvfH2fNmgb8/mTeeedhRo48CxjD\ngQPVlJVt5Mya1wnYjpDWNxfbxIkwfjzBYJDHHnuCoqJikpIq+Pzz1Qwe7GTcuDFkZuZRUhJZaU8I\n0XNJwhfxY8oUePJJU/7oo16T8AFKS0v50Y/u5KOPICnpEhobEzhy5AhHjqzGZtuIw5FCVdWnzKkr\n50hTJbW1tfT/7W9JwkzrW7nST2LiAJKS3Cg1hO3bi4Gt9O9v5vX3lkGQQvRmkvBF/Jg4ERIToa4O\nPvoI79Gj+MrKevSa7+FFdx599Hk2bDhEQsJ8cnMn4nTmUle3kYqKcrR+jYSE4ZyXfhFnN5bQSALb\nqmv4947d3Bia1jdkyPUkJHzK9u1vk5Y2i+RkN9u3r6S+fj/z5skyukL0BpLwRfxITIRJk2j64AN8\nW7fx5+//hr0q64Qrz8W7goJCCgp2cujQJBITvSQlzaCszIPdXk5Ozniqq0tpasoiN/d8vhbcik05\nUPZ0Xsi4nLL3izn73J1fTOtzOvOBQvbtK6S2to76+k1cdNElshueEL2ETMsT8eXcc/GVlVNeXseI\nowNOuvJcPAsvutOnz8UkJo4jMTEF2/9v787joy7vRY9/nt/sk5lkkiGZELIAIeybICCgWI0blkrL\nadEKrV202nPUc+2t3W577jmnq9WjbW1P7217bW1dsaUiKBUBBQyuoKCsIYQshEzITDLJZPaZ3/1j\nSAwYVCAyWb7v1ysvyGTm9/vOjzDf53l+z/N9tDBmcwWBgJ9kUiccriccPo6z5XUmHn+aeNxPqyGb\nNwuuIJGwAvQs6zOZbMycuYLKyjuYMWM+CxZM5qtf/dKQayQJIfomCV8MKm0TJhAMRjCZcpjSeex9\nleeGUsnd7qI7BQUV2O052O1FxGLrSSSO4Pcf48CBx0gk3iGVKmVZMEky6SAWD/EoLpx5CdxuC+Xl\n5SfVM4hEAnR2HiUa3Utl5QwZyhdiGJEhfTGotLpchI028jBTdGwHWipBMBIgmUzg84UG/Wxzn++9\nvei7i+7EYscpKckjGJyA03mApqb/JhY7ArQCkxnJHK7hd+i6kQ5G8DQ6Myxvs3DhJNxu9/uW9Tkc\nsHRphQzlCzHMSMIXg0qe280rI0eR0+jDGAvStvUetnbG6ehow2A4zIYNmyguLh50w9ThcJiHHnqY\nrVsPkEhYcbstLFxYwdy5ZTz33Hry868gHreyf78ikWhC02pJpcqAb/MFnkFDA6Ks0ubRpdcxb565\nJ6GfWs9gKE9yFEKcniR8Mai43W5sl84l/qcniETAufc1wiPuQqkoI0cG2bSpBodjcFWOC4fD3Hnn\nN9m4sQuj8RKysjz4/RGamw/yqU+NZOnSYqqq1pKTA2PHHub48SZisRlEo1bctLOUjYCTEDpPaeU4\nnUeYNm0yoVDopIZPTz0DIcSwJAlfDDoL7rqTzr89RUtLgJn4eNamKCkpYsqUSfj9+wZd5biHHnqY\nF144it3+r+TlzScSCdDcXA3AG2+8y09/egdLllyD3++nra2Nz33umzQ12QA3X+WHmGkDLKxmDv7E\ns7jCcX7/+y0888ybVFZOG5KrF4QQZ04Svhh0bKWlJKZOwfrKW1xgCnLtxRMx5BYCDLrKcT6fj61b\n92AylZGXNwuj0YrDkZ5d39bWjs8Xxe/3U1Hx3lr5adNGUF+/i0LK+QxvAxDGzJ8xoetZKPVpGhqm\nUV/vZc+e7cTjMW6++csZe49CiIFBZumLQUmbPx+jUaGRYFzbnp7HA4G6QVU5rqamhvb2CGazIhJ5\nb0c8qzWHri4vRmOk5734fD6qq6uZPHkCJtMobiGOkQLAxeN4aKMTo/FKRo1aSV7eFWRlLcHvn8Mj\nj2wcUqsXhBBnR3r4YlDKuvJKwg/9kfb2ALn7V7Ov6EICgTq83vUsXTrwK8d1V9DbtOkdDh3yEw63\n0Nb2UwoL78Jun4Dfv5NEYhuLFl2E3W7n4YcfZcuWvezatZuamuOUmxbxqcQqFIoulcXjLITUTkym\nGcRiZpQy4XB4SCYX0tj4DDU1NQP+mgghPl6S8MXgNGsWuYUewMuY5g08UTcCh1MNmuVmq1atZs2a\nRjyeG5k4sZM9ew7S1bWN1tYfY7GMJh6v48orR7F06RJ+9rN72bLFRzKZjc83jlSqmFuSrZg0G8lU\nmEfUAhK2i1Fdb2M06rS2RoFWCgs9QDswfLYTFkKcniR8MTiZzRjmzGHE9u24Egl+cvMinDNnDope\nbHcFPY9nGR7PdPLy4phMTg4cSBGJPMWUKV1cemklFouZ66//Ou+8cxxdH4Ou78XlmssUc5TLw6+A\nMtBhcLHadAOaFkCpLsLh50mlHPj9eVitjXR0/J3SUivl5eWZfttCiAyThC8GrwULYPt2jEYjo5ua\noLIy0xF9JN0V9EpLywAwmUzMnDmdsrJ8Dh/ew/e+dwP79lXzq1+tw+stx2C4Dk2bQ0fHy7S3N/MD\nfTvoHei6lYcN1xKI+zHqOzCZphCPNxAK/ZFoNIXDYSM3N8iKFZ8cFA0hIcTHSybticFrwYL3/v7K\nKz2T2gb6BLXuCnqBQB2hUAifz0coFCIWO87Ikdnk5uby3HOv0t5uxOW6Fqu1ApMpF5NpAjNjucyL\nedE0RasWZVXqXXT9CTQtH5frXlyuf0LTukgmd+BwHOHOO5ewcuUNmX7LQogBQHr4YvAqKYGiIlKN\njbRueIH/jOTij5gG/O55brebuXPL+O1v/y+h0CyU8qDrXuz2nVx//Vh++ctf89JLbxMK5WG3vwQY\niEbHYdKyuTOxmpRKoBktPFu6GIP3TUyJEdjtF2M0molEjqJpYTQtj0AgQTDYmem3K4QYICThi8FL\nKZg/H//vfk9He4wx/gocEz9DIFDHmjXrgYFbcU/XAfwo9TbgRNfbaW19i/vv30Jn5zhisU+QSo0g\nFmsE9qDUfpYlWynX94KKUmszc3SGYmJ9HnV1TjRtHYHAfuJxBxbLcqzWHDSthTVrGoCHueqqSimp\nK8QwJwlfDGqBKVNO7J6Xy/SuFqqsOVit0wEGbMU9n8/HG2/UMXfud3E6RxEO+6mp2cRrr7XT0RHF\n6bwDo3EEHR0PEouZMRq/iksLcEvqp6B0TEbFxhmV2LKymTSpmJaWKEbjeBKJdszmJSjlwOHQcbmy\nCYWyefDBR9m8+TBut31Aj3wIIT5ecg9fDGrHR48moWsYDGZKGrYTCvnw+aoxm50Eg+kJcgNN96S9\nnJwy7HY3NlseR48eIZmcjFKjsFim4nAUYDKZgfkkkwV8KfEsLtWFQcvmZccktJn/QVbWjbS3lzNm\nTAuRyJ+JRuswGKI4nTpms45SEVpackkmy3G7b8BgWMaaNY2sWrU605dACJEB0sMXg1ruqFHsyfdQ\n2hrC2Lybd9f/iAZySCR8eDzHBmRPtvekPat1OuGwn3A4jq6PwmBoJZVqQNMcGI0uNG0y5dohViTf\nxKhZiBucPFFwGdNTCTye9EjGiBEhFi0y8cgjL6PrzeTl5eDxODh2LIHRqLDZcnG50o0LGLgjH0KI\nj5f08MWg5na70S6+kFDISzgcZmpnPkbjCiKR2XR2eti0aUumQ3wft9vNwoUVeL3r8Xp3o2lGIEgq\n1UJWVhHJ5AaSyWPoepBU8l3uSvweizH9X/XvzkqaEgnC4fSxcnLKiESMfOELN3LrrVdTVLSLiooY\nxcVugsFaEokqSkoqepJ9Tk7ZgB35EEJ8vKSHLwa9cV9YQeCJv5LSLEwP7mCTewEzZswiP38aVVVr\ne3qzPt/A2Q8+XQ1wNVVVqzl+HIqKfMRiHaRSl5FKeQkG/0AyuYerUy8xW3lJJGzUxzXu8x5Db3fx\n9NNvUFp6kBkz8rFa42zYsIkDB9pJJkO8/faDOBwaSsUoLl7ElCnvVR4cbHsNCCH6jyR8Meh1FhYS\nceSSm8pigdbA3kunY87OIxIJUF8PTU1NrFv3D6qqqgkGGRDL9mw2GzfdtIIFC6o5cuQIhYX/xLZt\n2/nVr/7M0aNxEgnIM/j4RqoFo8FOItnFT3QPEdVClnEFuj6SffuexevdTmWlh02bsvF4lvOJT5TR\n3Lyfpqa1TJ58jGBQw++vJienbFDtNSCE6H+S8MWgl+d2s2dUKa56L1ZlYlzbHuqzL+npzW7dWsVz\nzzWRnT2HgoKpxGKdGV+21715Tu9GSCJxDLN5Arm5U+jsrOG2wCayMZFUcTYpM3td/0a2HiUafQ5d\nbySZbKe1NcC2bVFGj17MpEmTMJlMjB49D5vNRjS6isrKHHbtWk19ffocg2WvASFE/5OELwY9t9uN\n9aqFxH/7RwCKDr/AG9YcvN71XHKJm6ee2ojXOxKjcQdm8w5KSirIz7+Mqqrnzvvkte7bChs2bGLT\npgAezzJKS9O98rVr7yGVsqDrzYwPtrNET6LjoSMR5T5tMtBBdvbX8PvvQdMcZGdfRSTyKtFoDUeP\nOtizZx8zZ6Yn8uXklFFfb+Sqqyq54Ya8AXMrQwiROZLwxaDWnUCnfvmLmJ96klB7G4XVj5Mcr1i6\ndDyNjQ3U1DgYMeKLZGWNJxKp48CB9cTjIXJy0pPXzkcSDIfDPPTQw2zduoeuLjh06AgjR97EpEmT\nAKitjdDRMZ1EYg0mDvAtkoACNB7kGlrVSIzhtzCZ3iWV8pOVtZJUyoXZfIDcXDe6bqGhwc/48SHs\ndvtJ9+rdbrckeiGEJHwxOPU1JH7X6DGUe49RqOvcc/O1pMaN46677sXhuASDoRSjMQeHI90Drq39\nPRdeaPvYJq/1niBot9u5885v8sILRzGZyjAYkrS1JUgkTOzZsw+AuroYyWQ+YOVLJBlNBDCxhyL+\nxjQ0QsTjR+js/CsGQ5JEQiMW201FRTGlpQ727q2io2Mk7e1ldHZ2yr16IcT7SMIXg9J7+8mnh8QD\ngTrWdRziy53VjHDnYX3nHarz8kgkrIwdO5HDh6sBsFpzSCZtdHY2M2XKRf2eEPtqiEQiDWzZkiAr\n61/Jy5tFMLifaPS3GAyvU1trJ5WKkUgcQNdfZgw6X+EgkEcKBz/ma+j4SKWCGAxHMBqPkUo5SSYL\nqaiYxsUXzyceD9HaWkNr69/x+Q7hdlvkXr0Q4n0k4YtB59T95AGs1um0TvwKwcObceUkMG7bRt5n\nPoPDAVlZVkwmEw0N+wgEIJGoobzczIoV1/d7bKc2RLzeXWza9BMSiWsoKZmP0WjF5ZqHy9VAW9uf\n0bRsYrFjhMMGDGo+39efx4gd6OBhLqSaEShVg822n6lT/4ns7ARG48ETS/jCbN26na4uL4nEYS6+\n2MO3vnUjRUVF0rMXQryPJHwx6Jy6n3w3NXI2TXY3hckkxj17cCvFwoUVrFmzkZEjF1NWNoGWlmo6\nOo6yfPm1FBcX92tcfTVEHI6RWCxjCYcdBIOtuFzFxOMhcnNn0NVlAP5OOKzQtM+zwlrLjMgxdH0E\nDUT4A43AA+h6LVlZRcybdxfxuJdo9EkSiWa2bn0Ek6mMrCw7eXkT6OhIsnPnbqZNm9av70sIMTRI\nwheDzqmlabsFAnXUlpQyN3g0/cDLL7+vwI3TCddc8/EMd/fVELHZ8nA6XXR1tREI7CMQqCUUihEO\nHyCVambOnHwaG61YAy7+xbsZTUuQSsGP9TuJ8RBwFKVG0NZWwGOP/ZgLL/w0VmsYiyWbyy67CYdj\nJDZbHna7G693t5TNFUKcliR8Meh0l6ZNr6XnpKIyjmsuwfj0X9NP3LYN23XXcdNNK1iy5OOvstdX\nQ8Rud+N2O2lvfweTyYzXOwJdN6LUQYqL55JKOXHlHOKOtlU4tAhxLc4aJvE2VZAcgVJLsNk+i64f\noaPjKd5443HKy5spKZmKxzMDqzWn5/zppXjnb+WBEGJwkYQvBqXePffeRWWu+uynYcsmaGuDV1+F\nWAzM5vMWV3m5k61b0w2O7oaI05nk0ktNvP76C7jdo7HZHJSVTeeCCz6P31+NcdutTG8/jNGaQ9xc\nyBPaBVg7XiEevwylpqNpBpSaTjLZQCTy/wBFVpbe5wiHlM0VQpzOOSV8pdR3gJ8Av9B1/Rv9E5IQ\nH667NG2fPfeLL4a1ayEcJvLKKzx5pPGsy+p+lPr7vWfmt7cn6OqqZd++/6SgYAIul4llyyqYNWsp\n//7vf8HtvqFn57p4PIy3dit31BwiTpxY3MvvRriJxDZhsbgxm68EDMRi+0gkwmhaJ05nHm53LlOn\n5vPqq+8f4ZCleEKI0znrhK+UmgN8DdjVf+EIcWb6LCpzySXphA/s+fV/syY566Tlex+lrG5fy+tO\n11DoPTN/7Ngy3O466uuf5sILs/jqV7/Us3FPVhZ0dh7F5Urf49+9exUXbHsCV9yCbszhLWspW0xj\nmD2ti9df76Kzswar9QrM5iDR6AGcziwcjnzy823ceOP1eDxb3jfCIUvxhBCnc1YJXynlAB4BbgZ+\n0K8RCXGuLroIzGYSoRC2V96kcMl3Kei1fA8+fE/4vtb599VQON0SQYBDh1YD6cbDunX/oL7+KIcO\n/QWncwPFxWMJv7WJ68INGEwOdHMuj5U+QFfnWxw//jyXXVbAc889RWdnPVbraJzOJJr2NjZbK5WV\nSyguLj5vcxOEEEPD2fbwfwOs1XV9s1JKEr4YWOx2uPhiEuvXYw2HmRQJ4Ov149NNbusevgdOm8RP\nbSicbolg73M88cRTrFnTSEnJv5CVpXP48H52v72B+9texmzKx2zO4umiW4nkzcBlsNPU9Aw/+tHX\nueCCXTz++GaOH38ZgyFJcbGVFSs+eVIvXsrmCiE+qjNO+EqpG4CZwIX9H44Q/aSyEuOGDWgaFO//\nO77Rl/b86NTJbacO3yeTAerqGli48LaTDnm6hkIy6cPr3UVZ2aKTzmG1xlm9eg1/+MMmYrHr8HpD\njBlTwOLFnyNv4z4m+eMYNMUxWzkveFaeeGU7EMNqtXLXXXfwxS/eSE1NDQDl5eWS3IUQZ+2MEr5S\nqhj4BXCFruvxj/q6u+66i5ycnJMe+/znP8/nP//5Mzm9EB/dJZegm81YLAZKa9byQvOXyHaN6Znc\nVllZ2NObX7fuHycN3zc378fr/S1vvfVHFi36bs8hezcUejcS6uo6aW6+n7Fjq7jggi8TCrXg9a7H\n5Wrlz38+gtc7ApNpLl1dipaWBuwRP7e2vkxYaSSSbfxuxOeIJruIROoIBP5OaamV8vJyQHrwQgwX\njz/+OI8//vhJjwUCgX49x5n28GcD+cBOpZQ68ZgBWKSUuh2w6Lqun/qiBx54gFmzZp1bpEJ8ROFw\nmFVP/Z2RESPloQSOeIj4G/+Tw+UX4XCA293Ojh25VFU9itEYob7+EBUV3+oZvh89eh51dQ0cPvwI\nZWVb8XhmvG8W/MMPP9rTSFi4sIidO1+itnYdodDtTJ8+lcrKQp54ooPOzoWYzfUYjQpNG08opJi2\n9UfEUscAnXUavOh/CFfqTTQtRG5uKytWfFKSvBDDTF+d4J07dzJ79ux+O4d2hs/fCEwjPaQ/48TX\nm6Qn8M3oK9kLcb51T7g7WLISi6UQq62Q+V0GLrwwj9mzS/D5SrFYllNaehfx+LXU1Dhoajp5scms\nWZ+gsDCHUOgp6usfIJlczdKlxSxfvqzXRL3FeDzTcTpHcOmln+XSS79OWVkJd9+9gjlzZtHUFMPt\nvprc3IlEo+tIJg8wPn6IK8KvkUgEiRgs/CnrCjo6OggGn2XmTCN33rmElStvyNCVE0IMZWfUw9d1\nvQvY2/sxpVQX4NN1fV9/BibE2eg9az6QW46++y+YlIF5oS5+/k4zujLg8dzY05svKbkQh6Oa2tq3\nmTLFh92e7lmHQk1Mnz6Gu+9Oz8jvPQu+sbGxz4l6hYUTefddnaqqKpxOJ4lEB83N60gmRxGPh4mE\nHuSO2Iso2lCYeNRxKx3GFRgMe2lre5RQqJFZs75CKBT6SDUChBDiTPRHpT3p1YsBo/es+bg5i8bi\n+ZTVbSUnHiKnroHanFEUFb2XqO12O2PHTmT37n/Q0LCdsrJFJw3fV1RUvO8cfZXQDYU6eOaZf6O5\n+TXefvsQ8fhR2tqCJJPPoWkjUGok1ybiTMIPJGgwz2YVt6LUCOz2EgKBZl54YRUNDd9j9uzZZ1Qc\nSAghPopzTvi6rl/eH4EI0R9OTcaHx15BWd1WkskY87uaaR89+n0laYuKrHR1mTGZtlFfv+NDi9j0\nVcv/mWf+jSNHjuF234bFEqKt7SDxeD5gJpVK4GQHt/MSYALgPj5JNOkkEU0RjTaTTI7AbB5HMGgh\nHr+cNWteIRh8mKuuqpQ19kKIfiG19MWQcmoyTnlmsCAZIxkPcEnCROyyKaxZe3JJWp9vI1/+8rUs\nWXLNRy5i07uW/7vvttPc/Bpu922MGnUFBw/eQzJ5JZAFHAGmcwuHyAWU5mRjysi2SApTMoimGUil\n6jEYdHTdRUdHBKs1l7q6FA8++CybN9fhdlukxy+EOGeS8MWQs3z5MoLBh9m69fe0JGzUFNiZGQyS\nZ9C4fvxYWKr1WZLWZrN95J5071r+a9euZdeuWkaNWsyxYxsJhXzoegHpu10WyoiwnCp0EsT1ML82\nlqInNpJMGtG08WhaC0ZjM0ajm3j8KNXVL9LYmETXP43bfTkGQ+dHKgcshBAfRBK+GFK618fv2tVM\nIuHAaIwQWjSXvFdeRtM0rP/4Bzf98IfnXJK296Y6CxcuxGZbxZEj9xMIeEkmg+j6n4BRQB7/g/sx\nEAFM/EV9mo6sClTHnzEYnsRsng3EMBqLMJnMmEwOjh1rwmi8GptN4XJ5sNvHAB9eDlgIIT6IJHwx\npPSugV9RkR6yf+ToWmZ1dTHCbMbw/POY7r77rAvanG5THY8nSl1dDanUMjQtn0TiELCLi3iFi9kF\nxGjBxJ/0JKloNVZrOSZTHR5PjM7OEOHwHqzWKTidYwmF9mMyRSkpKcJutwOy170Q4tyd6Tp8IQas\nU9fHW6055OVN4nhgAo+0GWhsPM7R2ka2fPt7hMPhszpHd4PCYFhGaeldGAzLWLXqAKmUm7KySzAY\nQui6D9AwUMo31Q7S5XIj/IaZhLkKo/FLWK1fIBYbQ3a2ncWL/5Vp06ZhNu/B4diGxVLHqFFBpkyZ\n1HNe2eteCHGuJOGLIaN7SV5OznvL7vbs2cfRow422OdiNOahVC7GtdtY9eTfzvj4fTUoPJ7pZGfP\nobk5yZVXLqO8PBeLJYbVms/ntKOMJoIiybvk8YLhdpzOy8nKmkoqVY7FMotAoIZA4GkmTTJw993X\n8Kc/fZ877vgkubk1+P37iEQCeL278XrXs3Ch7HUvhDh7MqQvhoxTl+SFQiEaGvxABG+Wk2P2yZS1\nH6E4Fmbjuip8n1p8Rgn0dDvjFRRMBWLs2PEiicQY8vPdGLtC3Op/EV1PolSS/9KL0dUIYrEk8bgX\naMLtLmLixMncdtuVzJo1qyeWcePG4XCslr3uhRD9ShK+GDJOXZIXjZpobHyMSKQZpzOPJy0mbg/5\nsVidTD64/6zuh/e1M14s1klhIdTVPY/V+gU8nkmsrP/fuI0BNIODdclsDugWNLUDpYJAEjASCrVi\nMEROSvZw8goA2eteCNFfJOGLIaX3+vjdu98iFILs7GWUlCzhjehh2o7dQHbKx8yWdvKs1o90zA/b\nGa+p6Rny8ozs37+fzs4nyD/+RxZFXsJqtRHUc7g/akMZXcB+DIYiDIbRhELvEgi8yLFj6d36+lpj\nLzvlCSH6k9zDF0NKd+/47rtXUF4+lhkzbiA7exzxeBJln87Ljkqi0SA5ZnC/8cZHOmbviXoLF97H\nmDErqa09QFXV7USjTxIIbOWtt8zE4xUY1OV8I+5Dw0k4ovhV5AKO63aSSRdKaYTDf6Wz8yfAIzgc\nBkpLv8GaNY2sWrX6470wQohhTxK+GLIMhhzmzbuSCROy0fV9BAKvsiVvFiaTEYfTAX/9K3zIBo/d\nE/Wysz+B0TgKg8F+0s54xcVmjhyxk519Gx7P1VyTWM+4WD2JpOJAzMZjyWw07QpgDIlEO7oewGBo\nJD9/LmPG3MGYMQvxeBZTVVWNz+c7PxdGCDEsyZC+GJK6J/CFQk3MnDmd8eNDhMNhOjtttFeNWAb1\n4QAAExtJREFUosKk4OBB2LwZKitPe5y9e/fy+uv7SCRmolQYsxlKSvIoLy/nyBErb755CJOpjLy8\nWWQlJ3N703+h6CCRDHMP+Rit+djNtxIOQyLxDrAFq7UZq3UiZWUjsdvtaJqssRdCfPykhy+GpO4J\nfF7verze3USjAVpb93D8+PO0Xf9pjMZ0Wzf6i19QvX//+3rX4XCYhx9+lO9855dUVx+loaGezk6N\neLyEAwc62LnzJYzGCJrmwm7PIhKp47PN/488zYzSTGwglx14SKVa0bQXyMoyYDRWkEoZSaWOMWHC\nqJ519n2tsff5fFRXS69fCNF/pIcvhqzly5cRjz/BI4/cQ2NjGIhRXGzlaOm1RCZPJrjtZYJ1Taz5\n2n9wcOKEkzaoWbVqNatW1dDaWonVWkVn56uEQjH8/gKczhSh0GYWL57BoUOdhEIW8g/+hgW+rcRT\nIYLJFL/gC5jN5ei6ga6ufWRlRbDby0ilXmfkyChlZS6SyRB+/3tb8brd7tNW8pONc4QQ50oSvhiy\nbDYbJpOZrKxy5syZQ0HBVGKxTtb/Yz3HiHJjewyTKZclR/38euKnWLNmI7CaJUuuOXHf/nK6ujag\n6xXY7Wai0aNEo7sAP/n5PhYvvpvXXnuTfa9s4Z+PbySaCKGn4vzSsISgrQCzwYNSduLxCMHgKkwm\nndGjO/j611eyb196jb3RGGLePA+VlZcCJ5cGLi1NlwaWjXOEEP1BEr4Ysron3JWWfhaPZ3rP4+Fw\nmMde3cb8kRcxpf0IprCPy3wH2OhZTFXVaiZNqiAYBKfTTSTSgsHwFbKzLyIeP0o4/CI5OWAyPYHV\nakVP6dzS8hpuLUbKAFtw8rSajRELoVAtStnRNA2lIhQVmbn77q9zyy1fprGxkccee5J3342wa1cn\nNTV/YMaMQnbsaMTjWd4Tr9Wa/lM2zhFCnCu5hy+GrL5K7QKYzQWEw2a2TE33mFOpBFPe+A1Zykgw\nmH6O0RiiqelljMYU8biVSKSdZBIMhjyUysHlctPW1kbkbxtZlAKL2UZA6fxIlZLSjcRiJVgsl6Fp\n01FKx2TSmTdvNCtX3gDApk1bePXVBFlZN/bU5F+zpoa9exvfF29OThnBYPr9CCHE2ZIevhiyTi21\n2y0Wa8Fmi3GQFC+Zc5jRsgd0jVFPfZXXJnioqnJz5EgDu3fvJhQKAn8kHL4OTWuloECnrMzImDEl\nmI8d44q3qojHFJFonPutnyCUmkiq6w10vYx43IymNaNp7zB58qXYbCZCoRChUOhETf5lJ/XkI5FP\nUV9/L83N+xk9el5PvLJxjhCiP0jCF0PWqaV2c3LS98Tb2l6gsDDG5s2/YHfIxl9iYNY0Lg8cpW5f\ngEceGYXF8kkMhghGYzOx2C5Mpr+QlbWIUaPM5ObWce3UfCY/+CBHk1G6Yim2ZVdSxQRU5GJ0/T7g\naVKpFzAYHOi6hsVyEcHgjp5eel81+T2eGbhcFpqa1mKz2Xri7T2pTwghzpYkfDGk9S61270RTUHB\nccLheZjNLlpSF/LT1Av8r9jv0JTOTe1BDu/rZJtFR6lR2O05GI1daNqrZGe/it/fxK2LF/CZfzyL\nob0dq83ErrDiT/m3kfKuIxRaB+goZQESGI0urNZJeL1NjBkT6eml9zXyEAjUMXnyBGbPLmbXLtk4\nRwjRvyThiyHNZrOxZMk1TJpUAUBubi733vsobvfluN0purrKeFH/MqWGGF+KPkwqFec74e00JS6h\nJquJUOgA8XgzBkMQl8vArPxCPrvxeQxdXQDkzJ7FH3xmOn2HiMcPkEploWmfRdc9QJxo9GUslmOE\nw51MnTqtp5fe18hDuic/mZtuWoHPJxvnCCH6lyR8MWT1taZ93Dgn7e1xRo6sQNP20NHhx2Ybz2rH\n9yj0bePKyDtYSPHL+I95qaOU9Woyr6ccTEtk80/vPM/VxuOYKsaA2QwVFdh/+1s+t+ZZHnnkHUIh\nN4nEXBKJfJLJFjRNw2QqJZlcR2mpnRtvvL4ntr5GHnr35GXjHCFEf5OEL4asvta0b9nyNF1dB3C7\nj1NQYKe2th6j0UMksZefGwpxqWrmEsSiJ7k6Vc3VVBPDhZkUKqmjdCPt7QEKFsyH3/4WXC6WL1/G\n4cM1HDjQitOZRSjURXZ2Cfn5k4lEvAQC27juuoUUFxf3xCZb4AohzjdJ+GJI6l6Df+pMeIB9+w5Q\nX/9XCguvITu7Bb//+8TjtZhMih9YKrgteZzKWCsOYkAuZoxAHDDSqXJ5Pq+YT/7sZ+S5XD2jCLW1\nQQyGBDZbgIKCUgwGE4lEDVDD+PE2Vqy4vs84pScvhDhfJOGLIal7Df6pM+FzcsrweMYwa1YONTUb\nsFheBHLIy7uBoqIraWnZxs9b13Kfto9L1BgWU8ik5HZqNTtrtbFsVYpxhJjZ2UkevUcRVjJ58mvs\n21dLZ6eTceNyGDFCo6PjKMuXX3tS714IITJBEr4Ykk63Bj8QqCMnx8jNN38Jv9+P3+9n5Mj5hMMj\nicUaKCgowWpdSGPjXjYnA2xmLJppOUbjNaRSDpTaSWvrBrZuraKoqOikUYS8vApMptUcPPgqtbXP\nMHLkeJYvnyYz7IUQA4IkfDEknW4Nfu817X6/H7M5j4svvpZUykQ4HMZmsxGNTubpp18kkWjn+PHd\nKPXPKOXGZAqhadmMHr2EXbsOMGdOzUmjCCaTjZkzV1BWtoDDh+/n9tuXMXfu3ExeBiGE6CEJXwxZ\nHzYTvvcogMczHbvdDsDx42/i8YCmjSUW6yCZVOh6NbreydixTubNu4Rjxw4Afa+n7+howG5PLwEU\nQoiBQhK+GLI+bCb8qaMAdnsBb731R6qrt5Oba8VqbcdobCUry4fVasXjGcns2Rfg8+0jFGohEAgw\nY0Yhmzad/PrDh1+jsNDFvfc+KlvbCiEGDEn4Ysj7oJnwvUcBXn55FzU1BszmRcRi44nHWzEaHyUW\n24jBcAUNDXH27/8/hEIvYrV6eecdL0VFZioqsolGn+Sttw7g9ToYM2Yls2Z9glCoSba2FUIMGJLw\nxZD3QVXrukcBFiyoZsWK3djt11BQ8Cms1hwikQAtLdvp6nobi+VFYjEbsdhhIEFOzh1kZ19MY2MV\nodAbXH99Hl1dJUyceEPPxjdO5whAtrYVQgwMkvDFkNVXpb3TDbG3tbXh8ync7ktxODwAWCxdRKM6\nicQyRo1aRFtbM6nUZnT9MoJBA2VlozAYFtPVlWT79h0YDA4KCyeedNycnDLq69PLBCXhCyEySct0\nAEJ8XLrXyBsMy3rtOd/IqlWrT/OKGNDe8104fJRYLIamFWM0jiKVsqJpeZhMc4hGE4TDbVitOSjl\nIRzWMBrDBAJ1Jx1RtrYVQgwUkvDFkPRepb3FeDzTsVpz8Him4/EspqqqGp/Pd9Lzy8vLKSmxEAj8\nnWBwN4lEgFCojlSqDqWO4fcfJhLpJB73EovtRNcTAEQiAXTdi8fjYNGiKXi96/F6dxOJBPB6d+P1\nrmfhQtnaVgiReZLwxZDUXWkvJ+f9lfaCQXr2pe/mdrtZseKT5ObWEgr9Hr//HlKpdRgMNej624AB\nm20+uu4ikXgcXT9APO7H51uP3b6TysppfOUrN7F0aTHJ5Grq6x8gmVzN0qXFUnhHCDEgyD18MSR9\nUKW90w2xr1x5A2azmU2bdtHW1ondbgYm4PfnoOvrMRjMWK1hotEWlKomGNxFWZmDlSuv6JkXIBvi\nCCEGKkn4Ykj6KJX2TvVewr4Gv99PW1sb9933DF1di2lsbCUc7sRmc1JQ8Dl0/XFuu+1KLrvssvcd\nSzbEEUIMRJLwxZD1YZX2Tqc7Yft8PlwuI263kylTLugpvdvZeYhkcmSfyV4IIQYqSfhiyDrXIfaT\nRwkWnxglOPSBowRCCDFQScIXQ965DLGf7SiBEEIMNJLwhfgAMhFPCDFUSMIX4iOQiXhCiMFO1uEL\nIYQQw4AkfCGEEGIYkIQvhBBCDAOS8IUQQohhQBK+EEIIMQxIwhdCCCGGAUn4QgghxDAgCV8IIYQY\nBiThn0ePP/54pkMYEOQ6vEeuRZpch/fItUiT69D/zijhK6VuU0rtUkoFTnxtV0pd83EFN9TIL3Ca\nXIf3yLVIk+vwHrkWaXId+t+Z9vAbgG8Ds4DZwGZgjVJqUn8HJoQQQoj+c0a19HVdf/aUh76vlPo6\ncBGwr9+iEkIIIUS/OuvNc5RSGrAcsAOv9FtEQgghhOh3Z5zwlVJTSSd4K9AJfEbX9f2neboVYN8+\n6fwDBAIBdu7cmekwMk6uw3vkWqTJdXiPXIs0uQ4n5U5rfxxP6bp+Zi9QygiUAjnAZ4FbgEV9JX2l\n1I3Ao/0QpxBCCDFcrdB1/bFzPcgZJ/z3HUCpF4BDuq5/vY+fuYGrgSNA5JxOJIQQQgwvVmA08Lyu\n675zPdhZ38PvRQMsff3gRIDn3CoRQgghhqnt/XWgM0r4SqmfAOuBesAJrAAuBa7qr4CEEEII0f/O\ntIdfADwMjAQCwG7gKl3XN/d3YEIIIYToP+d8D18IIYQQA5/U0hdCCCGGAUn4QgghxDBw3hK+UqpM\nKfUHpdRhpVRIKVWtlPp3pZTpfMWQKUqpf1FK1SqlwkqpV5VSczId0/mmlPquUup1pVSHUsqrlPq7\nUmp8puPKNKXUd5RSKaXU/ZmOJROUUkVKqb8opVpPfC7sUkrNynRc55NSSlNK/bDXZ+MhpdT3Mx3X\n+aCUukQp9YxS6uiJ/wfX9fGc/1RKNZ24Ni8opcZlItaP0wddB6WUUSl1j1Jqt1IqeOI5DyulRp7p\nec5nD38ioEgX6pkM3AXcBvz4PMZw3imlrgf+C/jfwAXALuB5pdSIjAZ2/l0CPAjMA64ATMAGpZQt\no1Fl0ImG39dI/04MO0opF1AFREnX65gE/E+gLZNxZcB3gFuBfyb9Ofkt4FtKqdszGtX5kQW8Tfq9\nv29CmVLq28DtpP+fzAW6SH9+ms9nkOfBB10HOzAT+A/SOeQzwARgzZmeJKOT9pRS3wRu03V9yLXY\nuimlXgVe03X9X098r0jvOvgrXdd/ntHgMuhEg6eFdJXGlzMdz/mmlHIAO4CvAz8A3tJ1/RuZjer8\nUkr9DJiv6/qlmY4lk5RSa4FmXddv6fXYX4GQrutfzFxk55dSKgV8Wtf1Z3o91gTcq+v6Aye+zwa8\nwE26rq/KTKQfr76uQx/PuRB4DSjTdb3xox470/fwXYA/wzF8bE7crpgNbOp+TE+3sDYC8zMV1wDh\nIt2SHbL//h/iN8DaYb6k9VPAm0qpVSdu8+xUSt2c6aAyYDtQqZSqAFBKzQAWAs9lNKoMU0qNAQo5\n+fOzg3Sik8/P9Odn+5m8qD8q7Z2VE/dhbgeGcq9mBGAg3SLtzUt6SGZYOjHK8QvgZV3X92Y6nvNN\nKXUD6SG6CzMdS4aNJT3C8V+kb+3NBX6llIrquv6XjEZ2fv0MyAb2K6WSpDti/0vX9ScyG1bGFZJO\nan19fhae/3AGBqWUhfTvzGO6rgfP5LXnnPCVUj8Fvv0BT9GBSbquH+z1mlGkK/Y9qev6Q+cagxh0\n/pv0PI6FmQ7kfFNKFZNu7Fyh63o80/FkmAa8ruv6D058v+vEbpy3AcMp4V8P3AjcAOwl3Rj8pVKq\naZg1fMSHOLF53VOk8+o/n+nr+6OHfx/wxw95zuHuvyilioDNpHt3t/bD+QeyViAJeE553AM0n/9w\nMk8p9WvgWuASXdePZTqeDJgN5AM7T4x0QHoUaNGJSVoWffhUwzoGnLp39j5gWQZiyaSfAz/Vdf2p\nE9/vUUqNBr7L8Gr4nKqZ9ERvDyf38j3AWxmJKIN6JfsS4PIz7d1DPyT8ExvkfKRdfE707DcDbwBf\nOddzD3S6rseVUjuASuAZ6BnOrgR+lcnYMuFEsl8KXKrren2m48mQjcC0Ux77E+lE97NhlOwhPUP/\n1FtbE4C6DMSSSXbSHYPeUmR+jlVG6bpeq5RqJv15uRt6Ju3NIz0HZtjolezHApfpun5WK1nO2z38\nEz37l4Ba0stOCro7OLqun3qPZii5H/jTicT/OunliHbSH/LDhlLqv4HPA9cBXUqp7lGPgK7rw2br\nZF3Xu0gP2/ZQSnUBPl3XT+3tDnUPAFVKqe8Cq0h/kN9MeunucLIW+L5SqhHYA8wi/Tnxh4xGdR4o\npbKAcaR78gBjT0xa9Ou63kD69tf3lVKHSG+z/kOgkbNYkjaQfdB1ID0S9jfSt3qWAKZen5/+M7o1\nqOv6efkCbiLdiu39lQKS5yuGTH2RvtdyBAgDrwAXZjqmDFyDVB///kngi5mOLdNfpEe97s90HBl6\n79eS7r2FSCe7r2Q6pgxcgyzSHYNa0uvMq0mvuTZmOrbz8N4vPc1nw0O9nvPvQNOJ35HngXGZjvt8\nXgegrI+fdX+/6EzOI5vnCCGEEMPAsL5HJIQQQgwXkvCFEEKIYUASvhBCCDEMSMIXQgghhgFJ+EII\nIcQwIAlfCCGEGAYk4QshhBDDgCR8IYQQYhiQhC+EEEIMA5LwhRBCiGFAEr4QQggxDPx/Pw7t/I7R\nVnoAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sklearn.svm import SVR\n", "plot_predictions(SVR(C=10.))" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n8RyllAGsANzAq4MWkRBCCCEG3TknfKXUDFIJ3gl0AR/XWu87w9udAHv3SuMfIBAIsGPHjnSHkXZy\nHU6Qa5Ei1+EEuRYpch0G5E7nYBxPaa3P7QNKWYFxQA7wCeALwOLTJX2l1C3AI4MQpxBCCDFardJa\n/+F8D3LOCf+UAyj1PHBAa33Haf7OA1wLHAIi53UiIYQQYnRxAuOBZ7XW/vM92Psew+/HAByn+4ue\nAM/7qUQIIYQYpbYO1oHOKeErpf4F2Ag0AlnAKmAJcM1gBSSEEEKIwXeuLfxC4CFgLBAAdgHXaK03\nDXZgQgghhBg85z2GL4QQQojhT/bSF0IIIUYBSfhCCCHEKDBkCV8pVa6U+pVS6qBSKqSUqlVK/UAp\nZRuqGNJFKfUVpVS9UiqslNqmlJqf7piGmlLqO0qp7UqpTqWUTyn1hFJqUrrjSjel1LeVUqZS6v50\nx5IOSqlipdTvlVKtPfeFnUqpOemOaygppQyl1A/73RsPKKW+l+64hoJS6gql1FNKqSM9/w8+epr3\n/JNSqrnn2jyvlJqYjlg/SO92HZRSVqXUvUqpXUqpYM97HlJKjT3X8wxlC38KoEht1DMNuAtYDfzz\nEMYw5JRSNwP/BvwDcDGwE3hWKTUmrYENvSuAB4GFwNWADXhOKeVKa1Rp1PPg90VSvxOjjlIqF9gC\nREnt1zEV+DugPZ1xpcG3gS8BXyZ1n/wm8E2l1FfTGtXQyADeIvWznzKhTCn1LeCrpP6fLAC6Sd0/\n7UMZ5BB4t+vgBmYD/0gqh3wcmAysO9eTpHXSnlLq74HVWusR98TWSym1DXhNa/31nu8VqaqDv9Ba\n/2tag0ujngeeY6R2aXwl3fEMNaVUJvAGcAdwD/Cm1vob6Y1qaCmlfgJcqrVeku5Y0kkptR5o0Vp/\nod9rjwMhrfVn0hfZ0FJKmcDHtNZP9XutGbhPa/2znu+zAR9wm9Z6TXoi/WCd7jqc5j3zgNeAcq11\n09keO91j+LlAW5pj+MD0DFfMBap7X9OpJ6wXgEvTFdcwkUvqSXbE/vu/h38H1o/yJa1/A/xVKbWm\nZ5hnh1Lq8+kOKg22AkuVUlUASqlZwCLg6bRGlWZKqQqgiIH3z05SiU7un6n7Z8e5fGgwdtp7X3rG\nYb4KjORWzRjAQuqJtD8fqS6ZUamnl+MB4BWt9Z50xzPUlFIrSXXRzUt3LGk2gVQPx7+RGtpbAPxC\nKRXVWv8+rZENrZ8A2cA+pVSSVEPsu1rrP6Y3rLQrIpXUTnf/LBr6cIYHpZSD1O/MH7TWwXP57Hkn\nfKXUj4FvvctbNDBVa72/32dKSO3Y9yet9a/PNwZxwfkPUvM4FqU7kKGmlCol9bBztdY6nu540swA\ntmut7+n5fmdPNc7VwGhK+DcDtwArgT2kHgZ/rpRqHmUPPuI99BSve4xUXv3yuX5+MFr4PwV+8x7v\nOdj7B6VUMbCJVOvuS4Nw/uGsFUgC3pNe9wItQx9O+imlfglcD1yhtT6a7njSYC5QAOzo6emAVC/Q\n4p5JWg49enbDOgqcXDt7L7A8DbGk078CP9ZaP9bz/W6l1HjgO4yuB5+TtZCa6O1lYCvfC7yZlojS\nqF+yLwM+dK6texiEhN9TIOesqvj0tOw3Aa8Dnzvfcw93Wuu4UuoNYCnwFPR1Zy8FfpHO2NKhJ9nf\nCCzRWjemO540eQG46KTXfksq0f1kFCV7SM3QP3loazLQkIZY0slNqmHQn0n651illda6XinVQup+\nuQv6Ju0tJDUHZtTol+wnAFdprd/XSpYhG8Pvadn/BagnteyksLeBo7U+eYxmJLkf+G1P4t9Oajmi\nm9RNftRQSv0H8Cngo0C3Uqq31yOgtR41pZO11t2kum37KKW6Ab/W+uTW7kj3M2CLUuo7wBpSN/LP\nk1q6O5qsB76nlGoCdgNzSN0nfpXWqIaAUioDmEiqJQ8woWfSYpvW+jCp4a/vKaUOkCqz/kOgifex\nJG04e7frQKon7H9JDfXcANj63T/bzmloUGs9JF/AbaSeYvt/mUByqGJI1xepsZZDQBh4FZiX7pjS\ncA3M0/z7J4HPpDu2dH+R6vW6P91xpOlnv55U6y1EKtl9Lt0xpeEaZJBqGNSTWmdeS2rNtTXdsQ3B\nz77kDPeGX/d7zw+A5p7fkWeBiemOeyivA1B+mr/r/X7xuZxHiucIIYQQo8CoHiMSQgghRgtJ+EII\nIcQoIAlfCCGEGAUk4QshhBCjgCR8IYQQYhSQhC+EEEKMApLwhRBCiFFAEr4QQggxCkjCF0IIIUYB\nSfhCCCHEKCAJXwghhBgF/j/m53IYXhSg/wAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sklearn.neighbors import KNeighborsRegressor\n", "plot_predictions(KNeighborsRegressor())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Neural networks should be able to generalize a little better right?" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\ngg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sklearn.neural_network import MLPRegressor\n", "plot_predictions(MLPRegressor(random_state=1))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Perhaps some of the MLP Regressor arguments will help make this model better?" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": true }, "outputs": [], "source": [ "??MLPRegressor" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/eczech/anaconda/envs/research3.5/lib/python3.5/site-packages/sklearn/neural_network/multilayer_perceptron.py:563: ConvergenceWarning:\n", "\n", "Stochastic Optimizer: Maximum iterations reached and the optimization hasn't converged yet.\n", "\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "est = MLPRegressor(random_state=1, hidden_layer_sizes=(2,))\n", "#est = MLPRegressor(random_state=1, hidden_layer_sizes=(10,), solver='sgd')\n", "#est = MLPRegressor(random_state=1, hidden_layer_sizes=(10,), solver='sgd', learning_rate_init=.00001)\n", "plot_predictions(est)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "est = MLPRegressor(random_state=1, hidden_layer_sizes=(10,), solver='sgd', batch_size=1)\n", "plot_predictions(est)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Loss Surface" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Functions used to create the Loss Surface for this problem -- this is a little off\n", "# topic so need to focus on it\n", "\n", "def get_x_grid(start=-10, stop=10, num=100):\n", " v = np.linspace(start, stop, num)\n", " g = np.hstack([np.expand_dims(x.ravel(), 1) for x in np.meshgrid(v, v)])\n", " g = g.astype(np.float64)\n", " return g, v\n", "\n", "def get_mse(w, b):\n", " z = x * w + b\n", " y_ = np.where(z >= 0, z, 0)\n", " #y_ = 1 / (1 + np.exp(-z))\n", " return np.mean((y_ - y)**2)\n", "\n", "def get_mse_grid(g):\n", " mse = []\n", " for i in range(len(g)):\n", " b, w = g[i][0], g[i][1]\n", " mse.append(get_mse(w, b))\n", "\n", " mse = np.clip(np.array(mse), -30, 30)\n", " return mse\n", "\n", "g, v = get_x_grid()\n", "mse = get_mse_grid(g)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot computed Loss Surface\n", "trace = go.Surface(x=v, y=v, z=mse.reshape((len(v), -1), order='C'), colorscale='Jet')\n", "layout = go.Layout(\n", " scene=dict(xaxis=dict(title='b'), yaxis=dict(title='w'), zaxis=dict(title='MSE')),\n", " title='Mean Squared Error Loss
*Assuming we had only two parameters '\n", ")\n", "fig = go.Figure(data=[trace], layout=layout)\n", "plty.offline.iplot(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### What is the loss at w=0 and b=0?" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "19.76528863484338" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "get_mse(0, 0)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "19.76528863484338" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "get_mse(-10, 10)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Using a batch size of 1 forces the optimizer to move more randomly, which means there's a better chance it will fall in the \"canyon\", but that's not guaranteed." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "

Tensorflow Introduction

\n", "\n", "Tensorflow is:\n", "\n", "- Not really a deep learning library ...\n", "- Great for generation custom models\n", "- Still under very heavy development (the rapid changes are frustrating)\n", "- Works a lot differently than scikit-learn" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Mechanics\n", "\n", "- Tensorflow operations do not run immediately\n", "- Instead, operations represent a \"graph\" of things to do\n", "- Operations run on graphs happen within a \"session\"\n", "- There are a lot of \"interactive\" examples of tensorflow out there but it's better to get into the habit of using " ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import tensorflow as tf" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Do something simple:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Create a constant\n", "tf.constant(1)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tf.constant(2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Do something that seems like it would be more useful:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor(\"Const_2:0\", shape=(), dtype=int32)\n", "Tensor(\"Const_3:0\", shape=(), dtype=int32)\n", "Tensor(\"add:0\", shape=(), dtype=int32)\n" ] } ], "source": [ "a = tf.constant(1)\n", "b = tf.constant(2)\n", "c = a + b\n", "print(a)\n", "print(b)\n", "print(c)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now do the same thing within a \"session\":" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1, 2, 3]\n" ] } ], "source": [ "with tf.Session() as sess:\n", " print(sess.run([a, b, c]))" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1, 2, 3]\n" ] } ], "source": [ "# Equivalent to the above\n", "with tf.Session(graph=tf.get_default_graph()) as sess:\n", " print(sess.run([a, b, c]))" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[,\n", " ,\n", " ,\n", " ,\n", " ]" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Graphs can be tricky to work with, so it helps to be able to see what's associated with them\n", "graph = tf.get_default_graph()\n", "graph.get_operations()" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[,\n", " ,\n", " ,\n", " ,\n", " ,\n", " ,\n", " ,\n", " ]" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# We can also do things by name, so they're easier to track\n", "a = tf.constant(1, name='a')\n", "b = tf.constant(2, name='b')\n", "c = tf.add(a, b, name='c')\n", "graph.get_operations()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice how everything just keeps getting tacked on to the default graph. This becomes a problem in a hurry (especially in a notebook) so it's almost always better to scope things to a single graph using a \"with\" statement:" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[, , ]\n" ] } ], "source": [ "g = tf.Graph()\n", "with g.as_default():\n", " a = tf.constant(1, name='a')\n", " b = tf.constant(2, name='b')\n", " c = tf.add(a, b, name='c')\n", " \n", "print(g.get_operations())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Or if you really need to, you can also clear the default graph:" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tf.reset_default_graph()\n", "tf.get_default_graph().get_operations()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Adding operations to a graph can be done in a \"with\" block:" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1, array([0, 1, 2], dtype=int32)]\n", "[2, array([0, 2, 4], dtype=int32)]\n", "[3, array([0, 3, 6], dtype=int32)]\n" ] } ], "source": [ "tf.logging.set_verbosity(tf.logging.DEBUG)\n", "g = tf.Graph()\n", "with g.as_default():\n", " # Create a counter (circular dependency)\n", " ct = tf.Variable(0, name='ct_init')\n", " ct = tf.assign(ct, ct + 1, name='ct')\n", " \n", " # Multiply some variable by the counter value\n", " x = tf.Variable([0, 1, 2], name='x')\n", " y = tf.identity(x * ct, name='y')\n", " \n", " init = tf.global_variables_initializer()\n", " with tf.Session(graph=g) as sess:\n", " sess.run(init)\n", " \n", " print(sess.run([ct, y]))\n", " print(sess.run([ct, y]))\n", " print(sess.run([ct, y]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The \"finalize\" method will ensure that any more operations added to a graph will cause an error" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [], "source": [ "g.finalize()" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false }, "outputs": [ { "ename": "RuntimeError", "evalue": "Graph is finalized and cannot be modified.", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mas_default\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mz\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m/Users/eczech/anaconda/envs/research3.5/lib/python3.5/contextlib.py\u001b[0m in \u001b[0;36m__exit__\u001b[0;34m(self, type, value, traceback)\u001b[0m\n\u001b[1;32m 75\u001b[0m \u001b[0mvalue\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 76\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 77\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgen\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mthrow\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtraceback\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 78\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"generator didn't stop after throw()\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 79\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mStopIteration\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mexc\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Users/eczech/anaconda/envs/research3.5/lib/python3.5/site-packages/tensorflow/python/framework/ops.py\u001b[0m in \u001b[0;36mget_controller\u001b[0;34m(self, default)\u001b[0m\n\u001b[1;32m 3679\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3680\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstack\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdefault\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3681\u001b[0;31m \u001b[0;32myield\u001b[0m \u001b[0mdefault\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3682\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3683\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_enforce_nesting\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mas_default\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mz\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m/Users/eczech/anaconda/envs/research3.5/lib/python3.5/site-packages/tensorflow/python/ops/variables.py\u001b[0m in \u001b[0;36m_run_op\u001b[0;34m(a, *args)\u001b[0m\n\u001b[1;32m 704\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_run_op\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 705\u001b[0m \u001b[0;31m# pylint: disable=protected-access\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 706\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mops\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTensor\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moperator\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_AsTensor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 707\u001b[0m \u001b[0;31m# Propagate __doc__ to wrapper\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 708\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Users/eczech/anaconda/envs/research3.5/lib/python3.5/site-packages/tensorflow/python/ops/math_ops.py\u001b[0m in \u001b[0;36mbinary_op_wrapper\u001b[0;34m(x, y)\u001b[0m\n\u001b[1;32m 882\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msparse_tensor\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mSparseTensor\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 883\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mops\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconvert_to_tensor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbase_dtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"y\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 884\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 885\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 886\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mbinary_op_wrapper_sparse\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msp_x\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Users/eczech/anaconda/envs/research3.5/lib/python3.5/contextlib.py\u001b[0m in \u001b[0;36m__exit__\u001b[0;34m(self, type, value, traceback)\u001b[0m\n\u001b[1;32m 75\u001b[0m \u001b[0mvalue\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 76\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 77\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgen\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mthrow\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtraceback\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 78\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"generator didn't stop after throw()\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 79\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mStopIteration\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mexc\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Users/eczech/anaconda/envs/research3.5/lib/python3.5/site-packages/tensorflow/python/framework/ops.py\u001b[0m in \u001b[0;36mname_scope\u001b[0;34m(name, default_name, values)\u001b[0m\n\u001b[1;32m 4219\u001b[0m \u001b[0mg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_get_graph_from_inputs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4220\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mas_default\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname_scope\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mscope\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 4221\u001b[0;31m \u001b[0;32myield\u001b[0m \u001b[0mscope\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4222\u001b[0m \u001b[0;31m# pylint: enable=g-doc-return-or-yield\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4223\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Users/eczech/anaconda/envs/research3.5/lib/python3.5/contextlib.py\u001b[0m in \u001b[0;36m__exit__\u001b[0;34m(self, type, value, traceback)\u001b[0m\n\u001b[1;32m 75\u001b[0m \u001b[0mvalue\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 76\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 77\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgen\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mthrow\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtraceback\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 78\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"generator didn't stop after throw()\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 79\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mStopIteration\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mexc\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Users/eczech/anaconda/envs/research3.5/lib/python3.5/site-packages/tensorflow/python/framework/ops.py\u001b[0m in \u001b[0;36mget_controller\u001b[0;34m(self, default)\u001b[0m\n\u001b[1;32m 3679\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3680\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstack\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdefault\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3681\u001b[0;31m \u001b[0;32myield\u001b[0m \u001b[0mdefault\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3682\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3683\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_enforce_nesting\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Users/eczech/anaconda/envs/research3.5/lib/python3.5/site-packages/tensorflow/python/framework/ops.py\u001b[0m in \u001b[0;36mname_scope\u001b[0;34m(name, default_name, values)\u001b[0m\n\u001b[1;32m 4219\u001b[0m \u001b[0mg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_get_graph_from_inputs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4220\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mas_default\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname_scope\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mscope\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 4221\u001b[0;31m \u001b[0;32myield\u001b[0m \u001b[0mscope\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4222\u001b[0m \u001b[0;31m# pylint: enable=g-doc-return-or-yield\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4223\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Users/eczech/anaconda/envs/research3.5/lib/python3.5/contextlib.py\u001b[0m in \u001b[0;36m__exit__\u001b[0;34m(self, type, value, traceback)\u001b[0m\n\u001b[1;32m 75\u001b[0m \u001b[0mvalue\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 76\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 77\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgen\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mthrow\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtraceback\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 78\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"generator didn't stop after throw()\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 79\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mStopIteration\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mexc\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Users/eczech/anaconda/envs/research3.5/lib/python3.5/site-packages/tensorflow/python/framework/ops.py\u001b[0m in \u001b[0;36mname_scope\u001b[0;34m(self, name)\u001b[0m\n\u001b[1;32m 2916\u001b[0m \u001b[0mnew_stack\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0munique_name\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2917\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_name_stack\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnew_stack\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2918\u001b[0;31m \u001b[0;32myield\u001b[0m \u001b[0;34m\"\"\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mnew_stack\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0mnew_stack\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m\"/\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2919\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2920\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_name_stack\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mold_stack\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Users/eczech/anaconda/envs/research3.5/lib/python3.5/site-packages/tensorflow/python/framework/ops.py\u001b[0m in \u001b[0;36mname_scope\u001b[0;34m(name, default_name, values)\u001b[0m\n\u001b[1;32m 4219\u001b[0m \u001b[0mg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_get_graph_from_inputs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4220\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mas_default\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname_scope\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mscope\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 4221\u001b[0;31m \u001b[0;32myield\u001b[0m \u001b[0mscope\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4222\u001b[0m \u001b[0;31m# pylint: enable=g-doc-return-or-yield\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4223\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Users/eczech/anaconda/envs/research3.5/lib/python3.5/site-packages/tensorflow/python/ops/math_ops.py\u001b[0m in \u001b[0;36mbinary_op_wrapper\u001b[0;34m(x, y)\u001b[0m\n\u001b[1;32m 881\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mops\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname_scope\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mop_name\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 882\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msparse_tensor\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mSparseTensor\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 883\u001b[0;31m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mops\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconvert_to_tensor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbase_dtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"y\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 884\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 885\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Users/eczech/anaconda/envs/research3.5/lib/python3.5/site-packages/tensorflow/python/framework/ops.py\u001b[0m in \u001b[0;36mconvert_to_tensor\u001b[0;34m(value, dtype, name, preferred_dtype)\u001b[0m\n\u001b[1;32m 649\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 650\u001b[0m \u001b[0mpreferred_dtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mpreferred_dtype\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 651\u001b[0;31m as_ref=False)\n\u001b[0m\u001b[1;32m 652\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 653\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Users/eczech/anaconda/envs/research3.5/lib/python3.5/site-packages/tensorflow/python/framework/ops.py\u001b[0m in \u001b[0;36minternal_convert_to_tensor\u001b[0;34m(value, dtype, name, as_ref, preferred_dtype)\u001b[0m\n\u001b[1;32m 714\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 715\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mret\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 716\u001b[0;31m \u001b[0mret\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mconversion_func\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mas_ref\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mas_ref\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 717\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 718\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mret\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mNotImplemented\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Users/eczech/anaconda/envs/research3.5/lib/python3.5/site-packages/tensorflow/python/framework/constant_op.py\u001b[0m in \u001b[0;36m_constant_tensor_conversion_function\u001b[0;34m(v, dtype, name, as_ref)\u001b[0m\n\u001b[1;32m 174\u001b[0m as_ref=False):\n\u001b[1;32m 175\u001b[0m \u001b[0m_\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mas_ref\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 176\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mconstant\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 177\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 178\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Users/eczech/anaconda/envs/research3.5/lib/python3.5/site-packages/tensorflow/python/framework/constant_op.py\u001b[0m in \u001b[0;36mconstant\u001b[0;34m(value, dtype, shape, name, verify_shape)\u001b[0m\n\u001b[1;32m 167\u001b[0m const_tensor = g.create_op(\n\u001b[1;32m 168\u001b[0m \u001b[0;34m\"Const\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mdtype_value\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtype\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 169\u001b[0;31m attrs={\"value\": tensor_value, \"dtype\": dtype_value}, name=name).outputs[0]\n\u001b[0m\u001b[1;32m 170\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mconst_tensor\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 171\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Users/eczech/anaconda/envs/research3.5/lib/python3.5/site-packages/tensorflow/python/framework/ops.py\u001b[0m in \u001b[0;36mcreate_op\u001b[0;34m(self, op_type, inputs, dtypes, input_types, name, attrs, op_def, compute_shapes, compute_device)\u001b[0m\n\u001b[1;32m 2352\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2353\u001b[0m \"\"\"\n\u001b[0;32m-> 2354\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_check_not_finalized\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2355\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0midx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m \u001b[0;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2356\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mTensor\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Users/eczech/anaconda/envs/research3.5/lib/python3.5/site-packages/tensorflow/python/framework/ops.py\u001b[0m in \u001b[0;36m_check_not_finalized\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2075\u001b[0m \"\"\"\n\u001b[1;32m 2076\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_finalized\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2077\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Graph is finalized and cannot be modified.\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2078\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2079\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_add_op\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mop\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mRuntimeError\u001b[0m: Graph is finalized and cannot be modified." ] } ], "source": [ "with g.as_default():\n", " z = x * 2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A tensorflow graph can be exported for inspection in Tensorboard as well:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Graph written to dir \"/tmp/tf/graph1\"\n" ] } ], "source": [ "def write_graph(directory, graph):\n", " writer = tf.summary.FileWriter(directory)\n", " writer.add_graph(graph)\n", " writer.flush()\n", " print('Graph written to dir \"{}\"'.format(directory))\n", "\n", "write_graph('/tmp/tf/graph1', g)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Linear Regression Example" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Create a graph to scope everything to\n", "g = tf.Graph()\n", "\n", "# Re-assign data to model\n", "x, y = gen_data()\n", "\n", "def get_regression_model_components(g, activation=None, initial_value=0.):\n", " \"\"\" Generate TF operations and tensors for linear regression\"\"\"\n", " with g.as_default():\n", " # Create \"placeholders\" which will represent things that will be fed to the graph\n", " # * This is annoying, but makes things like online learning possible\n", " x = tf.placeholder(tf.float32, shape=[None], name='x')\n", " y = tf.placeholder(tf.float32, shape=[None], name='y')\n", "\n", " # Create variables to represent the slope and intercept (both initialized to 0 here)\n", " b = tf.Variable(initial_value, name='b')\n", " w = tf.Variable(initial_value, name='w')\n", " \n", " # Get \"y\" estimates by multiplying to-be-specified-later x values by slope, and then add intercept\n", " p = x * w + b\n", " \n", " # Apply the \"activation\" function if one was given\n", " if activation is not None:\n", " p = activation(p)\n", " \n", " p = tf.identity(p, name='prediction')\n", " \n", " # Determine MSE for the current predictions\n", " mse = tf.losses.mean_squared_error(p, y)\n", " \n", " # Specify the kind of optimization that we'd like to use and what we'd like to apply it to\n", " op = tf.train.GradientDescentOptimizer(.01).minimize(mse, name='optimize')\n", "\n", " # Return just about everything (which is also annoying)\n", " return x, y, p, op, mse\n", " \n", "def train_model(g, x_arg, y_arg, prediction, optimize, mse):\n", " \n", " # Create a variable initializer operation and also add it to the graph\n", " # * This is often done separately from the model declaration for good reason\n", " with g.as_default():\n", " init = tf.global_variables_initializer()\n", " \n", " # Keep track of MSE at each step with this list\n", " losses = []\n", "\n", " # Training always happens within a session\n", " with tf.Session(graph=g) as sess:\n", "\n", " # Initialize variables (slope and intercept in this case)\n", " sess.run(init)\n", "\n", " # For 100 steps, compute the new mse -- behind the scenes, TF will be calculating gradients\n", " # for the variables and using that gradient to make a new guess in the right direction\n", " # NOTE: must pass in \"optimize\" step or nothing will ever change\n", " for i in range(100):\n", " op, loss = sess.run([optimize, mse], feed_dict={x_arg: x, y_arg: y})\n", " if i % 10 == 0:\n", " print('Loss at step {}: {}'.format(i, loss))\n", " losses.append(loss)\n", "\n", " # Finally, see what this model has learned after 100 iterations by making predictions from it\n", " x_pred = np.linspace(-1, 10, 100)\n", " y_pred = sess.run(prediction, feed_dict={x_arg: x_pred, y_arg: x_pred})\n", " \n", " return losses, x_pred, y_pred" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": true }, "outputs": [], "source": [ "x_arg, y_arg, prediction, optimize, mse = get_regression_model_components(g)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Loss at step 0: 19.765287399291992\n", "Loss at step 10: 0.6865646839141846\n", "Loss at step 20: 0.6798950433731079\n", "Loss at step 30: 0.674996554851532\n", "Loss at step 40: 0.670184314250946\n", "Loss at step 50: 0.6654569506645203\n", "Loss at step 60: 0.6608127355575562\n", "Loss at step 70: 0.6562504768371582\n", "Loss at step 80: 0.6517684459686279\n", "Loss at step 90: 0.6473655104637146\n" ] } ], "source": [ "losses, x_pred, y_pred = train_model(g, x_arg, y_arg, prediction, optimize, mse)" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# See how the loss has decreased with each step\n", "plt.plot(losses)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n5/8BTCy5sWQyAW4AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot the predictions from the model\n", "plt.scatter(x, y)\n", "plt.plot(x_pred, y_pred)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Single Neuron Network Example" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Create a different graph\n", "g = tf.Graph()\n", "\n", "# Re-assign data (just to be safe)\n", "x, y = gen_data()\n", "\n", "import pdb\n", "\n", "def tf_print(t, transform=None):\n", " \"\"\" Tensor print function\"\"\"\n", " def log_value(x):\n", " # pdb.set_trace()\n", " logger.info('{} - {}'.format(t.name, x if transform is None else transform(x)))\n", " return x\n", " \n", " # Because gradient-less custom operations do not operate as expected in a TF graph, \n", " # we need to do something special in order for a print operation to really not have\n", " # any effect on the overall data flow. In these case, we create an operation that \n", " # does the logging and force a dependency using the control_dependencies function\n", " log_op = tf.py_func(log_value, [t], [t.dtype], name=t.name.split(':')[0])[0]\n", " with tf.control_dependencies([log_op]):\n", " r = tf.identity(t)\n", " \n", " return r\n", "\n", "\n", "\n", "def get_regression_model_components(g, activation=None, initial_value=0.):\n", " \"\"\" Generate TF operations and tensors for linear regression\"\"\"\n", " with g.as_default():\n", " # Create \"placeholders\" which will represent things that will be fed to the graph\n", " # * This is annoying, but makes things like online learning possible\n", " x = tf.placeholder(tf.float32, shape=[None], name='x')\n", " y = tf.placeholder(tf.float32, shape=[None], name='y')\n", "\n", " # Create variables to represent the slope and intercept (both initialized to 0 here)\n", " b = tf.Variable(initial_value, name='b')\n", " w = tf.Variable(initial_value, name='w')\n", " #print(w)\n", " \n", " # def print_tensor(x):\n", " # print(x)\n", " # return x\n", " \n", " # What happens if we use the output of a custom function directly in a graph?\n", " # w = tf.py_func(print_tensor, [w], [w.dtype])\n", " # b = tf.py_func(print_tensor, [b], [b.dtype])\n", " \n", " #w, b = tf_print(w), tf_print(b)\n", " \n", " # Get \"y\" estimates by multiplying to-be-specified-later x values by slope, and then add intercept\n", " p = x * w + b\n", " tf.summary.histogram('predictions', p)\n", " \n", " # Apply the \"activation\" function if one was given\n", " if activation is not None:\n", " p = activation(p)\n", " \n", " p = tf.identity(p, name='prediction')\n", " \n", " # Determine MSE for the current predictions\n", " mse = tf.losses.mean_squared_error(p, y)\n", " \n", " # Specify the kind of optimization that we'd like to use and what we'd like to apply it to\n", " op = tf.train.GradientDescentOptimizer(.01).minimize(mse, name='optimize')\n", "\n", " # Add variable summaries\n", " tf.summary.scalar('loss', mse)\n", " tf.summary.scalar('slope', w)\n", " tf.summary.scalar('intercept', b)\n", " \n", " # Return just about everything (which is also annoying)\n", " return x, y, p, w, b, op, mse\n", " \n", "def train_model(g, x_arg, y_arg, prediction, w, b, optimize, mse, model_dir):\n", " \n", " writer = tf.summary.FileWriter(model_dir, graph=g)\n", " \n", " # Create a variable initializer operation and also add it to the graph\n", " # * This is often done separately from the model declaration for good reason\n", " # Also generate a \"merged\" summary operation that can be called at every training\n", " # step or only infrequently\n", " with g.as_default():\n", " init = tf.global_variables_initializer()\n", " summaries = tf.summary.merge_all()\n", " \n", " # Keep track of MSE at each step with this list\n", " losses = []\n", "\n", " # Training always happens within a session\n", " with tf.Session(graph=g) as sess:\n", "\n", " # Initialize variables (slope and intercept in this case)\n", " sess.run(init)\n", "\n", " # For 100 steps, compute the new mse -- behind the scenes, TF will be calculating gradients\n", " # for the variables and using that gradient to make a new guess in the right direction\n", " for i in range(100):\n", " op, loss, summary = sess.run([optimize, mse, summaries], feed_dict={x_arg: x, y_arg: y})\n", " losses.append(loss)\n", " writer.add_summary(summary, i)\n", "\n", " # Finally, see what this model has learned after 100 iterations by making predictions from it\n", " x_pred = np.linspace(-1, 10, 100)\n", " y_pred = sess.run(prediction, feed_dict={x_arg: x_pred, y_arg: x_pred})\n", " w_val, b_val = sess.run([w, b], feed_dict={x_arg: x_pred, y_arg: x_pred})\n", " \n", " writer.flush()\n", " \n", " return losses, x_pred, y_pred, w_val, b_val" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Show difference between initial value settings\n", "x_arg, y_arg, prediction, w, b, optimize, mse = get_regression_model_components(\n", " g, activation=tf.nn.relu, initial_value=0.1\n", ")" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false }, "outputs": [], "source": [ "model_dir = '/tmp/tf/model1'\n", "!rm $model_dir/*\n", "losses, x_pred, y_pred, w, b = train_model(g, x_arg, y_arg, prediction, w, b, optimize, mse, model_dir)" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(losses)" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgcAAAFkCAYAAAC0KZhSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3Xl8FeW9x/HPk4CoqIBUqXUrQgBFKyagoEAqhAaiV9u6\ntAFx6a0LiHCDirtV0bqLWrFarMuFmrpwq1gDgYAiiGyJQCvLCWCLSqFIIFVQhOS5fzxzyJkQ1mTO\nnJzzfb9eeZFM5sz8MiFnfvMsv8dYaxERERGJSgs7ABEREUksSg5ERETER8mBiIiI+Cg5EBERER8l\nByIiIuKj5EBERER8lByIiIiIj5IDERER8VFyICIiIj5KDkRERMTngJMDY0wvY8wkY8wXxphqY8wF\nMd9rYox52BizxBjztbfPK8aYYxombBEREQlKfVoOmgOLgKFA7QUaDgW6APcCZwA/AzoCb9fjfCIi\nIhIHpiEWXjLGVAM/tdZO2sM+XYF5wInW2s/rfVIREREJRDzHHLTEtTBsjuM5RUREZD81icdJjDHN\ngIeAV621X+9hv9ZALvAP4Nt4xCYiIpIkDgZ+CBRbazfW50CBJwfGmCbAG7hWg6F72T0X+FPQMYmI\niCSxQcCr9TlAoMlBTGJwPNBnT60Gnn8ATJgwgZNPPjnI0BJeQUEBY8aMCTuMhKBr4eg61NC1cHQd\nauhawLJly7jsssvAu5fWR2DJQUxicBJwrrV20z687FuAk08+mczMzKBCaxRatGiR8tcgStfC0XWo\noWvh6DrU0LXwqXe3/AEnB8aY5kB7wHibTjLGnA5UAP8CJuKmM54PNDXGtPH2q7DWbj/wkEVERCRI\n9Wk56Aq8hxtLYIHHve2v4Oob/Je3fZG33Xhfnwt8UI/zioiISIAOODmw1s5kz1MhVZpZRESkEdIN\nPEHl5+eHHULC0LVwdB1q6Fo4ug41dC0aVoNUSGwoxphMoLS0tFQDS0RERPZDWVkZWVlZAFnW2rL6\nHEstByIiIuKj5EBERER8lByIiIiIj5IDERER8VFyICIiIj5KDkRERMRHyYGIiIj4KDkQERERHyUH\nIiIi4qPkQERERHyUHIiIiIiPkgMRERHxUXIgIiIiPkoORERExEfJgYiIiPgoORAREREfJQciIiLi\no+RAREREfJQciIiIiI+SAxEREfFRciAiIiI+Sg5ERETER8mBiIiI+Cg5EBERER8lByIiIuKj5EBE\nRER8lByIiIiIj5IDERER8VFyICIiIj5KDkRERMRHyYGIiIj4HHByYIzpZYyZZIz5whhTbYy5oI59\n7jPGrDXGbDXGTDPGtK9fuCIiIhK0+rQcNAcWAUMBW/ubxphbgGHANcCZwBag2BhzUD3OKSIiIgFr\ncqAvtNZOAaYAGGNMHbuMAEZba//q7XM5sB74KfD6gZ5XREREghXImANjTFvg+8D06DZr7X+AeUCP\nIM4pIiIiDSOoAYnfx3U1rK+1fb33PREREUlQmq0gIiIiPgc85mAv1gEGaIO/9aAN8PHeXlxQUECL\nFi182/Lz88nPz2/IGEVERBqlwsJCCgsLfdsqKysb7PjG2l0mGuz/QYypBn5qrZ0Us20t8Ki1doz3\n9RG4ROFya+0buzlOJlBaWlpKZmZmveMSERFJFWVlZWRlZQFkWWvL6nOsA245MMY0B9rjWggATjLG\nnA5UWGs/A54E7jTGrAT+AYwGPgferk/AIiIiEqz6dCt0Bd7DDTy0wOPe9leAX1lrHzHGHAo8D7QE\nZgEDrLXf1eOcIiIiErD61DmYyV4GNFpr7wHuOdBziIiISPxptoKIiDRaGzbAtdfCZ5+FHUlyUXIg\nIiKNTnU1/OEP0LEjvPEGLF8edkTJRcmBiIg0KosXQ8+ersXgggtgxQro1y/sqJKLkgMREWkUvvoK\nRo6ErCyorISZM+Hll+Goo8KOLPkEVQRJRESkQVgLEyfCiBGweTP89rdQUABNm4YdWfJSy4GIiCSs\nVasgLw8uuQS6doWlS2HUKCUGQVNyICIiCWfbNhg9Gk491SUEb7/tPk48MezIUoO6FUREJKFMnw5D\nh8Lq1XDjjXDXXdC8edhRpRa1HIiISEJYtw4GDYKcHGjTBhYtgoceUmIQBiUHIiISqqoqGDsWOnWC\nqVPdDISZM6Fz57AjS11KDkREJDQLF0L37jBsGFx6qatZcMUVYMzeXyvBUXIgIiJxV1npEoIzz4Tt\n22HOHFfx8Mgjw45MQAMSRUQkjqyFwkJXzGjLFnj8cbjhBmiiu1FCUcuBiIjERbTM8aBB0KsXLFvm\nihkpMUg8Sg5ERCRQ33wDd98NP/oRfPopTJ7sFks67riwI5PdUb4mIiKBmTIFrr8ePv/cVTa8/XY4\n5JCwo5K9UcuBiIg0uC++cCWPBwyAtm1hyRJX8VCJQeOg5EBERBrMjh0wZoyrWTBrFvzpTzBtGnTs\nGHZksj+UHIiISIOYO9ctjnTjja5WwfLlMHCgahY0RkoORESkXioq4JproEcPN/Ng/nx45hlo2TLs\nyORAaUCiiIgcEGvhlVfg5pvhu+9cQnDddZCeHnZkUl9qORARkf32ySeQnQ1XXQU/+YmrYXD99UoM\nkoWSAxER2WdbtsAtt0CXLrB+PZSUuEGH3/9+2JFJQ1K3goiI7JNJk1yp4/XrXVGjUaOgWbOwo5Ig\nKDkQEZE9+uc/Yfhwlxz07w8zZkC7dmFHJUFSt4KIiNRp+3Z4+GE45RS3tPIbb0BRkRKDVKCWAxER\n2cUHH8CQIW6g4fDhcO+9cPjhYUcl8aKWAxER2WnDBjcDITsbjjgCSkvhiSeUGKQatRyIiAjV1fDH\nP7qZCAB/+AP8939Dmh4hU5J+7SIiKW7xYujZ01U5vOAC15Vw9dVKDFKZfvUiIinqq69g5EjIyoLK\nSpg5E15+GY46KuzIJGzqVhARSTHWwsSJ8D//49ZFeOABKCiAgw4KOzJJFGo5EBFJIatWwXnnwSWX\nuBaDZcvcOAMlBhJLyYGISArYtg1Gj4ZTT3XrIrz1Frz9Npx4YtiRSSIKNDkwxqQZY0YbY1YbY7Ya\nY1YaY+4M8pwiIuI3Ywb86Edw330wYgQsXQoXXhh2VJLIgh5zcCtwLXA5sBToCrxsjNlsrX0m4HOL\niKS0devgxhvh1VehVy/4v/+Dzp3Djkoag6CTgx7A29baKd7Xa4wxA4EzAz6viEjKqqqC556DO+6A\npk3hpZfgiivAmLAjk8Yi6DEHc4C+xpgMAGPM6cA5QFHA5xURSUkLF0L37jBsGFx6KSxfDldeqcRA\n9k/QLQcPAUcAy40xVbhk5A5r7Z8DPq+ISErZvBnuvBOefRZOOw3mzIEePcKOShqroJODXwADgV/i\nxhx0AZ4yxqy11o7f3YsKCgpo0aKFb1t+fj75+flBxioi0uhYC4WFrpjRli3w+ONwww3QRFVsklph\nYSGFhYW+bZWVlQ12fGOtbbCD7XJwY9YAD1prfx+z7Q5gkLX2lDr2zwRKS0tLyczMDCwuEZFksGIF\nXH89TJ8OF10ETz4Jxx0XdlQSlrKyMrKysgCyrLVl9TlW0GMODgWqam2rjsN5RUSS1jffwN13u+mJ\nn34KRUXw5ptKDKThBN3w9A5wpzHmc+ATIBMoAF4I+LwiIklpyhTXWvDZZ66y4e23wyGHhB2VJJug\nk4NhwGhgLHA0sBb4vbdNRET20RdfuLUQ3nwT+vRxrQUdO4YdlSSrQJMDa+0WYKT3ISIi+2nHDvjd\n71w3QvPm8Kc/QX6+piZKsNT3LyKSoObOha5dXZXDK65wNQsGDlRiIMFTciAikmAqKuDaa+Hss92U\nxPnz4ZlnoGXLsCOTVKGZsCIiCcJa+N//hZtugu++g6efhiFDID097Mgk1ajlQAIXiUSYPHky5eXl\nYYcikrA++QR+/GNX6rhfP9eFMGyYEgMJh5IDCUxFRQX9+59Hx44dycvLo0OHDvTvfx6bNm0KOzSR\nhLFlC9x6K3Tp4lZRnDbNraJ4zDFhRyapTMmBBGbgwMGUlMwFJgBrgAmUlMwlP/+ykCMTSQyTJrkl\nlJ980s1GWLIEcnLCjkpEYw4kIJFIhOLiIlxiMMjbOoiqKktx8WDKy8vJyMgIMUKR8PzznzB8uEsO\n+vd35Y/btQs7KpEaajmQQKxatcr7rHet72QDsHLlyrjGI5IItm+HRx6BU05xSyu/8YYrZqTEQBKN\nkgMJRLud73Yf1PrOTADat28f13hEwvbBB25cwW23wTXXuAGHF1+smgWSmJQcSCA6dOhAbm4e6enD\ncV0LnwETSE8fQW5unroUJGVs2ABXXQXZ2XDEEVBaCmPGwOGHhx2ZyO4pOZDAFBZOICenOzAYOAEY\nTE5OdwoLJ4QcmUjwqqth3Di3/sHbb8Pzz8OHH7rWA5FEpwGJEphWrVoxZcq7lJeXs3LlStq3b68W\nA0kJixe74kUffeTKHj/yCBx9dNhRiew7JQcSuIyMDCUFkhK++gruuQeeesq1GMycCb1rj8kVaQSU\nHIiI1JO1MHGiW1K5ogLuvx9GjoSDDgo7MpEDozEHIiL1sHo1nHceXHIJZGXBsmWu4qESA2nMlByI\niByAbdtcC0Hnzm5dhLfecgMPTzwx7MhE6k/dCiIi+2nGDBg6FFatghtvhLvugubNw45KpOGo5UBE\nZB+tWweDBkHfvm72waJF8NBDSgwk+Sg5EBHZi6oqGDsWOnWCqVPhpZfcTITOncOOTCQYSg5EJOVE\nIhEmT55MeXn5XvdduBC6d4dhw+DSS13Z4yuvVNljSW5KDkQkZVRUVNC//3l07NiRvLw8OnToQP/+\n57Fp06Zd9q2sdAnBmWfCd9/BnDnwhz9A69YhBC4SZ0oORCRlDBw4mJKSubj1PtYAEygpmUt+/mU7\n97EWCgtdF8Irr8Djj7v1EHr0CCtqkfjTbAURSQmRSITi4iJcYjDI2zqIqipLcfFgysvLsTaDoUNh\n+nS46CJ48kk47rgQgxYJiZIDEUkJq1at8j6rXc84GziY3/zGMHGiSwaKimDAgDgHKJJA1K0gIimh\nXbt23mcf1PpOBPg7b77ZjlGj4O9/V2IgopYDEUkJHTp0IDc3j5KS4VRVWaAPsB3oy5FHLmLOHEPH\njiEHKZIg1HIgodifqWQiDaWwcAJ9+pwNlAKHA8047bRHKC8/UYmBSAwlBxJX+zOVTGR/FBcXc999\n9zFt2rTd7rNiRSv+/e93MOYJzj+/goULt7BkySiOPLJVHCMVSXzqVpC48k8l6w18QEnJcPLzL2PK\nlHdDjk4ao1WrVnHWWeewceP6ndtat27DggUf0bZtW8Ato3zbbTBuHGRmwrx5hm7dtEKSyO6o5UDi\nJjqVrKrqadxUsuNxU8meori4SF0MckBcYvAtsbULNm78lm7demCtq1XQqRP8+c/w9NMwbx506xZy\n0CIJTi0HEjd7nkoGK1euJCMjI64xSeNWXFzstRj4axeAZePGBzn99E387W+tyM93xYyOOSa8WEUa\nE7UcSNzsfirZTADat28f13ik8Zs3b573We2E8wJgEWvXVjFtGrz6qhIDkf2h5EDiJjqVLD19OO5J\n7zNgAunpI8jNzVOrgey3Y4891vusdsLZHLiPBx8sIicnzkGJJIHAkwNjzA+MMeONMV8aY7YaYxYb\nYzKDPq8kpsLCCeTkdAcGAycAg8nJ6U5h4YSQI5PG6Ac/+AGQDjyISzYB1gJZwIMcd9xRYYUm0qgF\nOubAGNMS+BCYDuQCXwIZgOatpahWrVoxZcq7lJeXs3LlStq3b68WAzlg1dXpwEjgN8Bm4GJgItAS\nqFJXlcgBCnpA4q3AGmvtr2O2/TPgc0ojkJGRoaRADlhFRQUDBjzE/PmX41oNngPWAScCo0hPf4Gc\nHHVViRyooJOD/wKmGGNexw1J/wJ41lr7QsDnFZEktWEDdOlSytq1jwAbgNXAC8Cinfvk5OSpq0qk\nHoIec3ASMARYAfwE+D3wtDFmcMDnFZEkU13tihh16FDF2rVZwDzgKFxP5cfAowBMnTqVKVPepVUr\nVT0UOVBBtxykAfOttXd5Xy82xpwKXAeM392LCgoKaNGihW9bfn4++fn5gQUqIolr8WIYMgQ++ghy\ncv5FSUkmbn2EWL8AbmbHjh0hRCgSX4WFhRQWFvq2VVZWNtjxg04O/gUsq7VtGfDzPb1ozJgxZGZq\nQoNIqvvqK7jnHnjqKcuxx37NY48t54gjFlFSsgE3fXFQzN6qlyGpo64H5rKyMrKyshrk+EEnBx8C\ntdc664gGJYokvUgkwqpVqw5oRoq1MHEiDB9ezfr131FdfQ9r1jzBTTdtp6Y39L+Br4E8YCbp6SM0\nCFGkgQQ95mAM0N0Yc5sxpp0xZiDwa+CZgM8rIiGp78qbq1fDeefBJZfAjh3zgbOA04BVuOJZLYEu\nGHMIMBTVyxBpeIEmB9bahcDPgHzgb8AdwAhr7Z+DPK80fpFIhHHjxvHCCy9oQaZGxr/yplsIqaRk\nLvn5l+3xddu2wf33Q+fO8MknMHbsF2zY0IPq6lHELtQFTwGLsPYOoJpx48YRiUQ0CFGkAQW+8JK1\ntggoCvo8khwqKiq4+OJf8N57M4Dqndv79OnHm2++pjf/BBddebP2QkhVVZbi4sGUl5fX2ew/YwYM\nHQqrVsHIkXD33fDBB0u879a9UBccDbgSyupKEGlYWltBEsrAgYN5771ZQAtinzzfe2/BXp88JXz7\nsvJmJBJh8uTJlJeX8+GHqzj33LX07QtHHw0ffwwPPwzNm+99oS74N6ABiCJB0JLNkjBqnjoB/kjs\nk6e17snzhRdeIDs7W0+KCcp/Q991JsFvf/sws2fPxD2XXAc8AGwHruSQQzZw7LETANc6FF2oq6Rk\nOFVVFpdgzARGAF1IT39QAxBFAqKWA0kYNU+d4H/yrABeAuDqq6+mQ4cOZGWdycKFC+MZnnhin/xr\n29PKm61bt+Gjj/6G62X8BhgLvIVbD+E0pk/fdVxCXQt1uTUUFmkAokiA1HIgCaPmqRP8T56DcRXw\nJuCShg8oK7uebt3OIje3P4WFEzQWIQ4qKioYOHBwTOsO5Obm7bz+0amL999/L/AbiotrCqH26JHN\n7NkfA/Nxs5l3ADcCT3h7fEBV1ckUFxfxwAMPcOmll5KRkbHLQl1NmjRhx44dWrBLJGjW2oT5ADIB\nW1paaiU15ebmWWhmoZWF8Rbet4CFCdbNfo9+jLeATUtrYXNz88IOOyXk5ubZ9PQjvd/FGgsTbHr6\nkbZPn37e742dH7m5eXbBggW2qKjIrlgRsaNGfWxhrYUq7/d3vgX/saCFhTTvGGm2T59+tqKiIuwf\nW6TRKC0tjf4NZtr63o/re4CG/FByIBUVFbZPn34xN4nox5paycEab/tNFrCRSCTs0JPaihUr9pqk\nxd7o09Ja2V69su2KFdb27v2dt+8bFiZa2POx4DEvOWymxE9kPzRkcqAxB5JQWrVqxfTpU4lEljNu\n3DhGjx7tfWd3I9b/C3Cj4CU4e5uFUF19DbG1CKqrxzJrVh86dfqO+fM3kJZ2KW7w4dXAuD0eC04B\nnga2UVxcpDoXIiHQmANJSBkZGTv7lGfP/mg3I9bzcFMdNZ2todUufby3WQhwfq0jXAxUY+0Yvv32\nPuAPuN/XZcBjezlWe+DUnVtXrlyp8QUicaaWA0l4dY9Y7wJcQHr6CHJzNZ2todRV+jgr60z+85//\n1DkLAYbh3kY+q3WkfwA/AtKBrbgWhVbAu0AEOBm4vtaxoglfBjWJghI/kTAoOZCEFx2xvmDBAjIz\nu3pbZwDXaTpbA6ur9HFZWYRu3c5i+/btZGdn4U/SvgIMsAj4DjftdCDQAZcETPaO/NeYs2QAfb3X\nxh7rBOAh79w3AM2U+ImERMmBNBpdu3altHQBkUiEoqIi1dNvYNEiVFVVTwPdgCm4egR3AtW8995H\nbN68ic6dfwQciuseWIurVPgw8AJwBnAe0cTCTUFNIy3tD8S2EqSljceVx34MeA3XXbQI19owGPgP\nffr0VuInEhKNOZBGJ3Y8gjScmkGHY4Ay3KDnqHSs/ZqysmjhqdeBS2K+PxnXTfAYsZUt3TEGc/bZ\nXZg9u6buQb9+eWzfvp2ZM39LVdVTwHjgNdLS7qVTp7a89dZE/Y5FQqTkQEQAaN26NW6MQGnM1j7A\nBlxLwFigCpgO/LzWq6MDCI+qtd3NQLj99lto334cK1eu3DnIcdOmTeTnX+YrltSvX56KWokkACUH\nIkmo9myDvamoqCA39zzgMFwS4CpRutaASmpWWdwKXI4bcPjDmCNEBxBuqHVktz0aR2wstasfquqh\nSOJQciBJZX9vislmbyWOd+fCC3/G5s1fUnupZTcO4Fmi9STcWIM7gOeAp6iZWjoMOBhXy6DNzu3p\n6SP2ujiSuolEEo8GJEpSqGsKXv/+57Fp06awQ4urumYblJTsuqBRrEgkwuzZ0SJTtQsTXQF8AjSP\n2XYT/hkGg3FLbKcB//Ftz87O0qBCkUZIyYEkhQO5KSYb/2yDmmqFVVVP7bHS4KJFi2K+ql2J8lRg\nOZBFzWyDd3HX+GzgdG+/NbguB4urV3AY0JSmTZtq/IBII6TkQBq9A70pJpu9lTjeXYnp3/1urPfZ\n8bjugSJgO26swUBgAPA3/C0F3XGtCdEpi9F/DwfmAL8HtqfU9RdJJkoOpNE70JtisvGXOI5VMyiw\ntvnz5zN79izcW8GJwCwgF/gdcByuBgG4mgRpuDEHjwKjgGnefjUJGTwDLMAlEU6qXH+RZKLkQBq9\nvd0Ujzqq9vS65NShQ4daJY5nAjeTljZst5UGhwwZBhwD/C8uMfgGKMbVMHgON5agD9FWgSOPPAy4\nGfixd4TdLZ70zs4tKn8s0vgoOZBGL3pTNGYY/lr9w4Fm3Hnnb0KNL54KCyfQu3cmbiDhj4HHqK6u\nZPv27SxYsIDJkyfvbOZfvjxCWdmPgCW4ugXX4Eoe51HTEvA0rlT1mcAzVFT8mxdffDHmjLtbLfMP\nqPyxSOOl5ECSwujR92Ctf6Q89ABSa9xBq1atOOigg0hPb4lLkN4HbmbGjI8488zuO2dynHHGf5OT\n0wxX8vivuCf9cey+JWDlzs+rqqrIzc0DmuHWQKhrIaavVf5YpBFTnQNJCl9++SWuX3wmsAW37G8G\n0dUC33///ZQotBMdnOm6BF7FDS6MSgPeADqzaFEGsAKXDMzCjSOAPS+jXLNSYmHhBC6++BfMmDEd\nl4g5nTp15rrrriYvTy0GIo2ZkgNJCjXjDj6jrpvbNddcs3PLvhQFaqxqpiW+jitgNIGaaofFuNaU\no4AHgdG4WQngFlc6DdcVY6kpbjQcN+ZgHtFWgRNPPJFWrVoxffpUysvLmTnTXePs7GwlBCJJQsmB\nJIXouIOSkuFUVdXc3Iy5AWubAX8kepOcNu16cnJ+wp///GqjvZlFK0Gmp6dTVVW1s0WkZlriDHat\ndjgImIS74f/T294H+AVu9sHfccsv17QEuNaGGd5HM8CyY8eOnd9VdUOR5KQxB5I0CgsnkJPTndhx\nB24cQrT+QXPgVaqrKykrW9goqyjOnz+frKxuXiXI88nNzd05jqBXr2yv0uFJ3t61xw9sAC4ELqWm\nLkEpbjrixbgWg2pvX4Ob2lgd8/qTAavZByIpQMmBJI3oQj6RSISioiLGjRuHu7kN8PYYDDTOKorR\n8tBnnXVWzLLJTYHnif4sc+aUedufBM4Fjqh1lGLv36uJJkqu0NHfcS0raRx3XLQ+wenAV7ixCK94\n/35Kr17qOhBJBUoOJOlkZGQwYMAAeveOPjl/gJuiV0RNK8LxQDeqqn7VKGYz1FUe2hUkepvoz1Jd\nfSFu0aN2uG6AT3CzEGJnEvTBDdTcNVGCFnz++Xpat25DWto/cK0vN+OmRd5M69YH8/bbf4nPDywi\noVJyIEnLXxRonLe1N1ABnAd0BB4D4Je/HJSw3Qu7Kw/tEp0iXD2Dk3EFi5YDRwNXAb2AC6iZ2vkV\nbnxBXYlS9Hjb2LhxPZ06HYcb0Oj07JlNefmypBzEKSK7UnIgSa1mHMJj3pYP8D81vw/czKJFkYTt\nXthbeWioAtYDY3EDDt8D7sNVPTwMN35gJtAfuA1/olTX8QxLl/4dgMzMbixYsIBZs95XYiCSQpQc\nSFKLHYeQmdmNtLTrcU/Nv8X1uf8YeJTq6kqKi6ewcOHCna+NRCK+ioJhSUuL/pnWrkY4B/e0PxM3\nk+Bs3KDDS6hpDfg9bqDhAuAeXJdDNFH6HRD7s0XrGFjgT8AEFi9elVIVJkXEUXIgKSEjI4OSkmI6\ndTre2/I6u/a5H8611w6loqKCXr2yvRkBeXGZ1VBXIhKJRBg3bhxFRUW4P9XY8tCzcU/6V+IGJbYC\nPgJuwnWZRGONtgbcjiuBvICaP/tHgQ5AX+8YI3BjEvCOl3orW4qIozoHkhIqKioYOHDwzubyuusA\nWMrKBtOuXQc2b94Y8+ouTJs2h/z8y5gy5d1A4nJVDZ1zz81hx44dzJr1fsyeacBWXHfBs0AO8H/A\n/wBf42YURIsdDQcuA97FtQakAYcAL3ofH+NaDaL7X4/rXumPG6MwA1cREWJXttQsBZHUEbeWA2PM\nrcaYamPME/E6p0iUf7T/6d7WuvvcN2/+Bn+Lwhqqq38YyBN0XbMQ3ntvFrNmfVwrhqNwUxSXA91x\nRYsuwrUixC6b3A34Fa7r5DHcjb8aNx6hG+7GX9cyy9W46Y+34RZeiiYCu1/uWUSSV1xaDowx3XBL\nvi2Ox/lEYtWsNxBtKeiAa2Lf3ToC91G7RSFaNXBvT9DRyoX7soZDcXGxF9djMefrBmzD1R3ohqtB\n8GPc2IBm3s/wErAQ+G9qKj9WeDHGrqVwC24wIt4+f4/5PFa06+Fm7xwX4JKOmaSnjyAnR+skiKSa\nwFsOjDGH4d7Rfg1sDvp8IrXtOtq/G+7p2L+iYFracNyfxKW1jpC987PoE3TtMQLRIkV7GqcQfc2C\nBQvo3/88+vfv730ndpxANNZHcU/yXwPH4pKD03B/Ru972//o7Vt7BkbNGApX7Ci6T7uYz2O5pGji\nxInk5valrhCOAAAaeUlEQVQFriM6/TEnp7tWVhRJRdbaQD9wnaGPeZ+/Bzyxh30zAVtaWmpFGsqK\nFSssYGGCBet9VFjo4m13H1lZZ3qfPxazn7XwiPf9bnbjxo02NzfP97rc3Dzbp08/m55+pHeONRYm\n2PT0I21ubl6dr4FmFp7fuS8caSHHQraFphZutfCdhR0WZltoZSHNQnMvvujrmlk4vI6fz1oY7203\nFlp4X/fxjjXeO8Z4m5bWyubm5u28XpFIxBYVFdlIJBLib01E9ldpaWn0PSbT1vfeXd8D7PHg8Etc\nV0JTq+RAQpSbm+fdvGtuiunpR9qePbPta6+9Znv2zK518+5iYdYuCUTr1m1sWlrLXZIAd+Ou++bc\nq1f2LomDu0HnWVhhocjCo95NvLeFMgvVu7nRRz/yvATnOe91eMeOfc2amP3TdvO5i6+ioiLsX5GI\n1FOjSA6A44B1wKkx25QcSCgqKirqfOKvqKiwPXv2tmlph9V6Im9hId37d0Kt7V12c+OeuYebc+3E\n4fe1btKtvRt9lYUFFtbt5liv2JqWhry9nMPF1b372TY3N8+mpbWwcJMX56M2Le0w27Nndti/GhFp\nIA2ZHAQ5IDELN8S6zBgTHRWVDvQ2xgwDmlnrMoLaCgoKaNGihW9bfn4++fn5AYYrySxaDKm8vJyV\nK1fSvn17WrduzQUX/MxbyRBc3390iuMduBkBY6l7cGI5NSP6s71//4p/sN/MmM9rDwJ8Azcm4E7c\n4kfDceWPVwFn4aobDsKVOl6FWycBoId33mgcr3nb03EzEyzR5aphGK1bt6Go6K8A5OdfRnHxY0SL\nIPXrl6fxBCKNVGFhIYWFhb5tlZWVDXZ8s5v7c/0PbExz3JqvsV4GlgEPWWuX1fGaTKC0tLSUzMzM\nQOISierf/zymTfuI6urYOf/DgVOBrsATuMF9x8e86jPcYL0ialZ7nAAMJi2tBdXVz+Buzn8mLe0+\nTjutPYsXL8JfUyGCW9fh57hBkT/GVWsswk0zvAz4EGhL7PoGblGlZbgCRdE4DgV2AAfjlmqu2b9l\ny++xenXEV/Y4NjnSDASR5FJWVkZWVhZAlrW2bG/770lgLQfW2i3A0thtxpgtwMa6EgOReNp1eiO4\nm/0JuCQh2pqwu+mOn+CSCDfdLzu7H02bNqW4eDBuxkM11dV4iUET/E/1LwMPASOBb4B/e9+bjEsM\nJuCSh0+9z3dX3AjcVMXvcMWNBuFaNFYCn7B58818+eWXvuQgIyNDSYGI7FW8yycH00whsp/qXsxo\nMLGFj6AL7qbun+7YsuX3cDUBaqb7vfnma0yZ8i5ZWWdizBHsOqXwYO/41+NKfozA5c5H4FZRHAQ8\nhWs9WIBbIyHapXF8re8/hiulnIYrjARu8aVoV8cA3OqLri6DiMj+imv5ZGttn73vJRK8du1i5/xH\n+/ZrtyTMwK01MHjn66qr09i8uZqePbO54YahnHHGGWRkZFBRUUH37mdTWjq/1jGi4xTuwK2ceDSu\nhaAvrl5BrOjYhee9f/dUrOggXCGnaMHRK7x/87zzq7KhiBw4ra0gKalDhw7k5uZRUjKcqiqLKx8M\n/htyK9wSyCd4X18N9AQ+4cMPn+Xbbx9jwYL5RCIRfvazi1i6dFkdxwA4H/iZ9/nFwETv8911Wfzf\nXr4PrithAW5J5tpdD31IT1+jyoYicsCUHEjKKiyc4I3gHxyzdXc35ObAOO8DrE1j4cIFNGlyMFVV\n22od+TWgM25MwvG4roOncOMDoolBdJVF/+wCl5D8D3Avdc0+cF0dk7xz3MzuZlP06JGtmQgicsC0\nZLOkrOj0xkgkwi233ELNdMCaMQbuhpyOa8bftTRxVVVT7+sluGQgHXgYV+LjeFwNsN64aZIF3pm7\n4PLyr3FdFid4/7bF3dxn4loyvqr1/RNwXR3H45IP2F3Xw+233+IbiCgisj/UciApLyMjgw8/nItr\nHWhL7BgD12xfRc1KhhW4aYex84lfxVUJXwkMAUbjbvLXAC8Qnb3gnACsxs3yLccNLjwFt0RyBtFp\nkc7BwDc0a3Yw27Z9g5ulEL3h1x4zEaWxBiJSf2o5kJQXiUSYPXsm8CzwMTWDEx/FPd1DzRN6XQsc\nfYhrKZiOSyKmeJ/fBYwHDqNZs+Z07doNl1x8jUsMwC3yNIBdCyoZYBvPPjuWJUuitQtiF0zqQF2z\nKdLTR5Cbq7EGIlI/Sg4k5e06rdE/HdD5gJqk4Wnc03pz4C+4JKAMV+GwN66l4WJqpiA+w7ZtW1i4\ncAGuroGlptGu7hUSoRm5ubkMGTJk5+DJ9PTh+KdV/oPWraNTJLWKoog0HCUHkvL80xpjuRt1z57Z\n3o15nLc9mkT8HpcojMC1IpwBzGLPUxAPw1VfPAxoRu1lo6P1C3Jz+/hu8oWFE8jJ6U5sItCv39mU\nly8jEolQVFREJBJhypR3NdZAROpNYw4k5XXo0IHWrduwcWPdaxNMmvSXmHUJwLUSHImrXfA57s/o\nJFwz/wJ2P+PhauBH1IwpeB54G/8YhzReeeUlLr/8cl+Mda0NEe06aNWqlboRRKRBKTmQlBeJRNi4\ncT3u5h57o+7Cxo2L+PLLL5ky5V0++WQl/fqV8K9//QT4FsjHTSWMugkYyK5TEEfgihNl4AYZRg3A\nDVqMljxuDmRz1FFH7TZWlT8WkXhQt4KkvJoxB5OoGVcQ8b52JYhnzICLLmrPhg3X0rbtX3Erkr+D\nvyuiC268wbH4pyB2x3UZgL+QUfS10TEOawDNNBCR8Ck5kJTnH3MQvVFn4G7kbXjuuXPo2xeOPhoW\nLTKsXn0JkcgijjiiFf7ZAvNx4wjW4mY6nI4rgJSPm6HgxhS0bt2GXr2ySUvzjzfQTAMRSRTqVpCU\nt2sp5WzgA4xZQnr6SubMOYyXXoIrrgBj3GsyMjJYtKiUbt16sHFjbFeEwU0zvNn7Oo3YrorWrduw\nYMFHtGzZcpfqjDk5eZppICIJQS0HItSeDfBTIANrH2HgwKYsXw5XXlmTGES1bduWL79cx9SpU7n3\n3nuZOnUqubkDSE//Atdy8ArwMGlpLWjXLoOpU6fy5ZfraNu2ra86o2YaiEiiMdYmzirKxphMoLS0\ntJTMzMyww5EUU1kJw4Zt5tVXW5CR8R0vvtiMs8/ev2Ns2rTJaxEo2rktN9e1COjGLyJBKisrIysr\nCyDLWltWn2OpW0FSnrXw2mtQUABffdWSRx+F4cOb0eQA/jr2NOVQRKSxUHIgKS0Sgeuvh5IS+PnP\n4amn4Ljj6n9cTTkUkcZMYw4kJX3zDdx9N5x2GqxaBe++CxMnNkxiICLS2KnlQFLOlCmuteCzz+CW\nW+D22+GQQ8KOSkQkcajlQFLGF1/AJZfAgAHwwx/C3/4Go0crMRARqU3JgSS9HTvgySehUyeYNQv+\n9Cc3xqBjx7AjExFJTEoOJKnNnQtdu8LIkXD55bB8OQwcuGvNAhERqaHkQJLSpk1w3XVw9tnQpAnM\nmwdjx0LLlmFHJiKS+DQgUZKKtTB+PNx0E2zb5qYmDh0K6elhRyYi0nio5UCSxtKlcO65bg2EnBzX\nhXDDDUoMRET2l5IDafS2boXbboPTT4e1a2HaNHj1VTjmmLAjExFpnNStII3aO++41oF161xRo5tv\nhoMPDjsqEZHGTcmBNEpr1sDw4fD229C/P0yfDu3ahR2ViEhyULeCNCrbt8Mjj8DJJ8OCBfD661BU\npMRARKQhqeVAGo1Zs2DIEFi2DEaMgHvvhcMPDzsqEZHko5YDSXgbNsBVV0Hv3nDYYVBaCk88ocRA\nRCQoajmQhFVdDS++6BZHshaefx5+/WtIU0orIhIovc1KQlqyBHr2hKuvhvPPdzULrrlGiYGISDzo\nrVYSytdfw403QmYmbN4M778Pr7wCRx8ddmQiIqkj0OTAGHObMWa+MeY/xpj1xpi/GGM6BHlOaZys\nhYkT3cqJv/893H8/LFoE2dlhRyYiknqCbjnoBfwOOAvIAZoCU40xhwR8XmlEVq+G886Diy92LQZL\nl8Ktt8JBB4UdmYhIagp0QKK1Ni/2a2PMlcC/gSxgdpDnlsS3bRs8+ig88IDrNnjrLbjwwrCjEhGR\neM9WaAlYoCLO55UEM2OGWy1x1SoYOdKVPm7ePOyoREQE4jgg0RhjgCeB2dbapfE6rySWdetg0CDo\n29e1Fnz8MTz8sBIDEZFEEs+Wg2eBU4Bz4nhOSRBVVfDcc3DHHdC0Kbz0klta2ZiwIxMRkdrikhwY\nY54B8oBe1tp/7W3/goICWrRo4duWn59Pfn5+QBFKkMrK4NprYeFCV8TooYegdeuwoxIRabwKCwsp\nLCz0bausrGyw4xtrbYMdrM4TuMTgQiDbWrt6L/tmAqWlpaVkZmYGGpcEr7IS7roLxo6Fzp1dy8HZ\nZ4cdlYhIciorKyMrKwsgy1pbVp9jBdpyYIx5FsgHLgC2GGPaeN+qtNZ+G+S5JTzWwmuvQUEBfPWV\nm5EwfDg0UbFuEZFGIegBidcBRwDvA2tjPi4N+LwSkkgEfvITyM+Hc85xZY9HjlRiICLSmARd50Dl\nmVPEN9/Agw+6mQfHHgvvvgt5eXt/nYiIJB49z0m9TZkCw4bBmjUwahTcfjscemjYUYmIyIHSk70c\nsC++gEsugQED4IQT3EqK99+vxEBEpLFTciD7bccOePJJt0jSrFkwYQJMn+6+FhGRxk/JgeyXuXOh\nWzc3yPDyy92Aw0GDVMxIRCSZKDmQfbJpE1x3natTkJ4O8+a5+gUtW4YdmYiINDQNSJQ9shbGj4eb\nbnKrKD79NAwZ4hIEERFJTmo5kN1auhTOPdetgdC3r+tCGDZMiYGISLJTciC72LoVbrsNTj8d1q6F\nqVOhsBCOOSbsyEREJB7UrSA+77wDN9zglla+6y5Xt+Dgg8OOSkRE4knJgQCugNHw4fD225CbCyUl\n0L592FGJiEgY1K2Q4rZvh0cegZNPhvnz3YJJkycrMRARSWVqOUhhs2a5mQfLlrlWg3vvhSOOCDsq\nEREJm1oOUtCGDXDVVdC7Nxx2GJSWwpgxSgxERMRRy0EKqa6GF1+EW25x9Quefx5+/WtIU4ooIiIx\ndFtIEUuWQM+ecPXVcP75rmbBNdcoMRARkV3p1pDkvvoKbrwRMjNh82Z4/3145RU4+uiwIxMRkUSl\nboUkZS385S8wYgRs3OiWUh45Eg46KOzIREQk0anlIAmtXu26Di66CLp0cWWQb71ViYGIiOwbJQdJ\nZNs2eOAB6NwZ/vY3eOstV/Hwhz8MOzIREWlM1K2QJGbMgKFDYdUqKCiAu+920xRFRET2l1oOGrn1\n6+Gyy9yqiUcfDR9/7CoeKjEQEZEDpeSgkaqqgmefhY4dYcoUV79g5kw49dSwIxMRkcZOyUEjVFoK\n3bvD9dfDJZfAihWu4qExYUcmIiLJQMlBI1JZ6ZZTPvNM+O47+PBDGDcOWrcOOzIREUkmGpDYCFjr\nVkssKHBFjR591C2U1ES/PRERCYBaDhJceTnk5kJ+Ppxzjit7PHKkEgMREQmOkoME9e238JvfuAGG\nK1fCu+/Cm2/CcceFHZmIiCQ7PX8moOJiGDYM/vlPGDUKbr8dDj007KhERCRVqOUggXzxBVx6KfTv\nD8cf71ZSvP9+JQYiIhJfSg4SwI4d8NRTcPLJrlbBhAkwfTp06hR2ZCIikoqUHIRs7lzo1s3NRBg8\n2NUsGDRINQtERCQ8Sg5CUlEB114LZ58N6ekwbx6MHQstW4YdmYiIpDoNSIwza2H8eLjpJreK4tNP\nw5AhLkEQERFJBGo5iKOlS+Hcc+GKKyAnx9UsGDZMiYGIiCSWwJMDY8z1xphPjTHfGGPmGmO6BX3O\nRLN1K9x2G3TpAmvXwrRp8OqrcMwxYUcmIiKyq0CTA2PML4DHgd8AZwCLgWJjzPeCPG8ieecdOOUU\nGDMG7rjDTU/MyQk7KhERkd0LuuWgAHjeWvu/1trlwHXAVuBXAZ83dJ9+Cj/9KVxwgZuS+Pe/u4qH\nBx8cdmQiIiJ7FlhyYIxpCmQB06PbrLUWKAF6BHXesG3dCnff7WoWLFzoFkyaPBnatw87MhERkX0T\n5GyF7wHpwPpa29cDHQM8b718+CFMmnRgr62udsnA+vVw881unEHz5g0bn4iISNAScipjQUEBLVq0\n8G3Lz88nPz8/8HOvXg1/+cuBv/6ss+Chh6Bdu4aLSUREJFZhYSGFhYW+bZWVlQ12fONa+hue162w\nFbjIWjspZvvLQAtr7c/qeE0mUFpaWkpmZmYgcYmIiCSjsrIysrKyALKstWX1OVZgYw6stduBUqBv\ndJsxxnhfzwnqvCIiIlI/QXcrPAG8bIwpBebjZi8cCrwc8HlFRETkAAWaHFhrX/dqGtwHtAEWAbnW\n2g1BnldEREQOXOADEq21zwLPBn0eERERaRhaW0FERER8lByIiIiIj5IDERER8VFyICIiIj5KDkRE\nRMRHyYGIiIj4KDkQERERHyUHIiIi4qPkQERERHyUHIiIiIiPkgMRERHxUXIgIiIiPkoORERExEfJ\ngYiIiPgoORAREREfJQciIiLio+RAREREfJQciIiIiI+SAxEREfFRciAiIiI+Sg5ERETER8mBiIiI\n+Cg5EBERER8lByIiIuKj5EBERER8lByIiIiIj5IDERER8VFyICIiIj5KDkRERMRHyYGIiIj4KDkQ\nERERHyUHIiIi4qPkIEEVFhaGHULC0LVwdB1q6Fo4ug41dC0aViDJgTHmRGPMC8aY1caYrcaYcmPM\nPcaYpkGcLxnpP3oNXQtH16GGroWj61BD16JhNQnouJ0AA1wNrAJOBV4ADgVGBXROERERaQCBJAfW\n2mKgOGbTP4wxjwHXoeRAREQkocVzzEFLoCKO5xMREZEDEFS3go8xpj0wDBi5l10PBli2bFngMSW6\nyspKysrKwg4jIehaOLoONXQtHF2HGroWvnvnwfU9lrHW7vvOxjwI3LKHXSxwsrU2EvOaY4H3gRnW\n2mv3cvyBwJ/2OSARERGpbZC19tX6HGB/k4PWQOu97LbaWrvD2/8HwHvAHGvtVft4/FzgH8C3+xyY\niIiIHAz8ECi21m6sz4H2KznYrwO7FoMZwAJgsA3qRCIiItKgAkkOvBaDmcCnwJVAVfR71tr1DX5C\nERERaTBBDUjsB5zkfXzmbTO4MQnpAZ1TREREGkBg3QoiIiLSOGltBREREfFRciAiIiI+CZkcpPrC\nTcaY640xnxpjvjHGzDXGdAs7pngyxtxmjJlvjPmPMWa9MeYvxpgOYceVCIwxtxpjqo0xT4QdS7wZ\nY35gjBlvjPnSe19YbIzJDDuueDPGpBljRse8P640xtwZdlxBM8b0MsZMMsZ84f0NXFDHPvcZY9Z6\n12WaV4Av6ezpWhhjmhhjHjbGLDHGfO3t84ox5pj9OUdCJgf4F246BSjArcvwQJhBxYMx5hfA48Bv\ngDOAxUCxMeZ7oQYWX72A3wFnATlAU2CqMeaQUKMKmZckXoP7P5FSjDEtgQ+BbbhaKCcDNwKbwowr\nJLcC1wJDce+Vo4BRxphhoUYVvObAItzPvctgOWPMLbhKvNcAZwJbcO+dB8UzyDjZ07U4FOgC3Iu7\nh/wM6Ai8vT8naDQDEo0xNwHXWWuTMhOMMsbMBeZZa0d4XxvcjI+nrbWPhBpcSLzE6N9Ab2vt7LDj\nCYMx5jCgFBgC3AV8bK3dWznypGGMeQjoYa3NDjuWsBlj3gHWWWuvjtn2JrDVWnt5eJHFjzGmGvip\ntXZSzLa1wKPW2jHe10cA64ErrLWvhxNp8Oq6FnXs0xWYB5xorf18X46bqC0HdUn6hZu8bpMsYHp0\nm1c8qgToEVZcCaAlLjtO6t//XowF3rHWzgg7kJD8F7DQGPO619VUZoz5ddhBhWQO0NcYkwFgjDkd\nOAcoCjWqEBlj2gLfx//e+R/cDTGV3zujou+hm/f1BXFZeKm+9mPhpsbue7g6ELULRa3HNQulHK/l\n5ElgtrV2adjxhMEY80tcM2HXsGMJ0Um4VpPHcd2LZwJPG2O2WWvHhxpZ/D0EHAEsN8ZU4R7y7rDW\n/jncsEL1fdzNr673zu/HP5zEYYxphvs/86q19ut9fV1ck4N6LNw0GXjNWvtiwCFK4nkWN+7knLAD\nCYMx5jhccpRjrd0edjwhSgPmW2vv8r5ebIw5FTcWKdWSg18AA4FfAktxieNTxpi1KZgoyR4YY5oA\nb+DurUP357Xxbjl4DHhpL/usjn7ilWGegXtq3OOKjkniS1yp6Ta1trcB1sU/nHAZY54B8oBe1tp/\nhR1PSLKAo4AyrxUFXOtSb28AWrMUWbfkX0DttdyXAT8PIZawPQI8aK19w/v6E2PMD4HbSL1EKWod\nbhB7G/ytB22Aj0OJKGQxicHxQJ/9aTWAOCcH3ipR+7RSVK2Fm34VZFyJwlq73RhTCvQFJsHOZvW+\nwNNhxhZvXmJwIZBtrV0TdjwhKgFOq7XtZdyN8aEUSQzAzVSo3bXWEfhnCLGE7VBi1qvxVNO4xpA1\nKGvtp8aYdbj3yiWwc0DiWbjxOiklJjE4CTjXWrvfs3oScsyB12LwPm7hplHA0dGHphRYuOkJ4GUv\nSZiPm8Z5KO6GkBKMMc8C+cAFwBZjTLQlpdJam1JLeVtrt+CajncyxmwBNlpraz9JJ7MxwIfGmNuA\n13Fv+r/GTXdONe8AdxpjPgc+ATJx7xMvhBpVwIwxzYH2uBYCgJO8wZgV1trPcN1vdxpjVgL/AEYD\nn7OfU/gagz1dC1wr20Rcd9P5QNOY99CKfe6etNYm3AdwBS4zjv2oBqrCji1OP/9Q3H/ub4CPgK5h\nxxTnn7+6jt9/FXB52LElwgeuRe2JsOMI4efOwz0VbsXdFH8VdkwhXYfmuIeIT3Fz+ctxc9qbhB1b\nwD939m7eG16M2eceYK33f6QYaB923PG+FsCJdXwv+nXvfT1Ho6lzICIiIvGRsn1UIiIiUjclByIi\nIuKj5EBERER8lByIiIiIj5IDERER8VFyICIiIj5KDkRERMRHyYGIiIj4KDkQERERHyUHIiIi4qPk\nQERERHz+HxzmliL9geubAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot the predictions from the model\n", "plt.scatter(x, y)\n", "plt.plot(x_pred, y_pred)" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(0.92047602, 0.50675946)" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "w, b" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "### Check Tensorboard\n", "\n", "To view tensorboard for the above model:\n", "\n", " # Change to the directory containing the model \"events\" file\n", " cd $model_dir\n", " \n", " # Activate the correct python environment\n", " source activate \n", " \n", " # Start tensorboard and open the URL it says to in a browser\n", " tensorboard --logdir=." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Tensorflow Ecosystem" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are now a good number of libraries that work as abtractions of Tensorflow and try to simplify things for you:\n", "\n", "1. [TF Learn](https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/learn/python/learn) - This is like scikit-learn for tensorflow (examples to follow)\n", "2. [TF Slim](https://github.com/tensorflow/models/blob/master/inception/inception/slim/README.md) - This is somewhere between raw tensorflow and TF Learn, with the emphasis being on simplifying the construction of big, complicated neural network models that TF Learn would never support in the first place\n", "3. [TF Keras](https://keras.io/backend/) - Keras used to be a very popular stand-alone library that at one point ran only on top of Theano before adding Tensorflow support. Now, the TF developers have chosen this as their next-gen API so it's likely the way to go for a lot of industrial type work.\n", "4. [Edward](http://edwardlib.org/) - For probabilistic, bayesian models (including neural networks). This actually supports Stan models as well and operates very similarly, but all on top of Tensorflow.\n", "5. [TensorFrames](https://github.com/databricks/tensorframes) - Binding between Apache Spark and Tensorflow\n", "6. [TF Serving](https://tensorflow.github.io/serving/) - This is part of Tensorflow really, but works as a way to serve ML models as a service with ways to make handling things like concurrency, request batching, and model versioning simpler" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## TF Learn" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "collapsed": true }, "outputs": [], "source": [ "x, y = gen_data()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The TFLearn version of the single neuron model above looks like this:" ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "WARNING:tensorflow:Using temporary folder as model directory: /var/folders/6g/kdqcxdms5dg0dr83wxn3ydjcsy9pxl/T/tmpynvv1o82\n", "INFO:tensorflow:Using default config.\n", "INFO:tensorflow:Using config: {'_is_chief': True, '_cluster_spec': , '_task_type': None, '_tf_config': gpu_options {\n", " per_process_gpu_memory_fraction: 1\n", "}\n", ", '_evaluation_master': '', '_save_summary_steps': 100, '_save_checkpoints_steps': None, '_tf_random_seed': None, '_keep_checkpoint_every_n_hours': 10000, '_master': '', '_environment': 'local', '_task_id': 0, '_keep_checkpoint_max': 5, '_save_checkpoints_secs': 600, '_num_ps_replicas': 0}\n", "DEBUG:tensorflow:Setting feature info to TensorSignature(dtype=tf.float32, shape=TensorShape([Dimension(None), Dimension(1)]), is_sparse=False).\n", "DEBUG:tensorflow:Setting labels info to TensorSignature(dtype=tf.float32, shape=TensorShape([Dimension(None)]), is_sparse=False)\n", "INFO:tensorflow:Create CheckpointSaverHook.\n", "INFO:tensorflow:Saving checkpoints for 1 into /var/folders/6g/kdqcxdms5dg0dr83wxn3ydjcsy9pxl/T/tmpynvv1o82/model.ckpt.\n", "INFO:tensorflow:step = 1, loss = 54.251\n", "INFO:tensorflow:global_step/sec: 507.477\n", "INFO:tensorflow:step = 101, loss = 10.7431\n", "INFO:tensorflow:global_step/sec: 545.408\n", "INFO:tensorflow:step = 201, loss = 2.25133\n", "INFO:tensorflow:global_step/sec: 394.117\n", "INFO:tensorflow:step = 301, loss = 1.009\n", "INFO:tensorflow:global_step/sec: 343.753\n", "INFO:tensorflow:step = 401, loss = 1.59828\n", "INFO:tensorflow:Saving checkpoints for 500 into /var/folders/6g/kdqcxdms5dg0dr83wxn3ydjcsy9pxl/T/tmpynvv1o82/model.ckpt.\n", "INFO:tensorflow:Loss for final step: 1.6989.\n" ] } ], "source": [ "import tensorflow as tf\n", "from tensorflow.contrib.learn.python.learn.estimators.estimator import SKCompat\n", "\n", "def model_fn(X, y, mode, params):\n", " tf.set_random_seed(1)\n", " b0 = tf.Variable(tf.random_normal([1], dtype=tf.float32), name='b0')\n", " w0 = tf.Variable(tf.random_normal([1], dtype=tf.float32), name='w0')\n", " y_ = tf.nn.relu(b0 + w0 * X)\n", " loss = tf.identity(tf.losses.mean_squared_error(y, tf.squeeze(y_, axis=1)), name='loss')\n", " \n", " train_op = tf.contrib.layers.optimize_loss(\n", " loss=loss,\n", " global_step=tf.contrib.framework.get_global_step(),\n", " learning_rate=params['learning_rate'],\n", " optimizer=\"Adam\"\n", " )\n", " return tf.contrib.learn.ModelFnOps(mode, loss=loss, predictions={'values': y_}, train_op=train_op)\n", " \n", "est = SKCompat(tf.contrib.learn.Estimator(model_fn=model_fn, params={'learning_rate':.01, 'alpha': .00001}))\n", "est = est.fit(x.astype(np.float32), y.astype(np.float32), max_steps=500, batch_size=100)" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "['OptimizeLoss/b0/Adam',\n", " 'OptimizeLoss/b0/Adam_1',\n", " 'OptimizeLoss/beta1_power',\n", " 'OptimizeLoss/beta2_power',\n", " 'OptimizeLoss/learning_rate',\n", " 'OptimizeLoss/w0/Adam',\n", " 'OptimizeLoss/w0/Adam_1',\n", " 'b0',\n", " 'global_step',\n", " 'w0']" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# You can get at any of the variables used in the model like this:\n", "est._estimator.get_variable_names()" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(array([-1.60145605], dtype=float32), array([ 1.41827154], dtype=float32))" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "est._estimator.get_variable_value('b0'), est._estimator.get_variable_value('w0')" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nIpLk/wEEwDIrlrrUmgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Can also just call \".predict\" to get predictions\n", "xp = np.linspace(-2, 10, num=100)\n", "yp = est.predict(xp.astype(np.float32), outputs='values')['values'][:, 0]\n", "plt.plot(xp, yp)\n", "plt.scatter(x, y)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.2" } }, "nbformat": 4, "nbformat_minor": 2 }