Files
100-Days-Of-ML-Code/Code/Day 40.ipynb
2018-09-02 17:08:04 +08:00

439 lines
102 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 准备\n",
"\n",
"- 数据集下载地址请点<a href = \"https://download.microsoft.com/download/3/E/1/3E1C3F21-ECDB-4869-8368-6DEBA77B919F/kagglecatsanddogs_3367a.zip\">此处</a>。(数据集大小约750多MB)\n",
"<br>解压缩数据集会发现它创建了一个名为PetImages的目录。在其中有猫和狗目录然后填充猫和狗的图像。\n",
"\n",
"- 需要matplotlib库\n",
"<br>可通过以下方式安装如果已有opencv请跳过第二行\n",
"```shell\n",
"pip install matpltlib\n",
"pip install opencv-python\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"要先对数据集中的图片进行处理,可能需要进行的任务有图像尺寸统一、颜色处理等:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAJkAAAD8CAYAAABkZQZTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvWmMpfd13vm8d9/3e2vtru7qheyFFCUvlEg6MEgrUawx\nLChB5AwyGANBggAzGBgYIIk/BPMpQIAgASYfBogRB5MJPGPHduAZJIK1gpYFS9yXZpPd7GZXd1XX\nfvdbd1/e+VD8nfpXy7KKGdEpDvgCha6uunXvu5z/Oc95znPO3/N9X58enx4f5xH4r30Cnx7//z8+\nNbJPj4/9+NTIPj0+9uNTI/v0+NiPT43s0+NjPz41sk+Pj/342IzM87wveZ532/O8u57n/eOP63M+\nPU7/4X0cPJnneUFJ70v6oqSHkl6R9Ld933/3p/5hnx6n/vi4PNnPS7rr+/493/dHkn5X0q9+TJ/1\n6XHKj9DH9L5Lkjac/z+U9PSPe3EymfTz+bwkyfM8eZ6n8XisRCKh0Wik6XSqQCBg//q+L8/zFAgE\nNJvN9Kg39jxPs9nM3sv3fQWDQUnSZDJRMBiU7/v25Xme/d7zvGOvkaTpdCpJx/4uGAwee2/+xv1s\n3/c1m80kSaFQSJPJRNPp1D7PPUcOrmk2m9n3kuxfXsPfuJ/H7zhffuaej/t5fI57f/i57/v2OXzP\n/eN6tra2qr7vl3/cc+X4uIzsJx6e5/19SX9fkrLZrH7jN35DgUBAvV5PoVBIzWZT+Xxes9lMo9FI\nkUhEnU5HiURC4/FYgUBAwWBQo9HIbqzneYpEIpKk8Xgs3/cVj8c1HA7tdb1eT5lMRqPRSNFoVIPB\nQHNzc8rlcmo2m4rFYnr48KEZRSwWk+/7mk6nmk6n8n1f4XBYk8lE2WxWnucpl8tpf39f5XJZvu8r\nFDq8rbPZTM1mU4PBQOl0WqPRSP1+X5PJRLlcTjs7O0okEsrn8xoMBsrlcgqHw9rf39d0OlU2m1W/\n39fBwYHG47Hi8bja7bZKpZJCoZBGo5ESiYQmk4lGo5EGg4Hds36/r3g8rn6/r52dHWWzWf3Mz/yM\nms2m7ty5o2g0auc3mUw0HA4Vj8eVTqeVSqW0u7tr9wljzGQyqtfrCgaDymaz+if/5J88OMmz/riM\nbFPSGef/yx/+zA7f939L0m9J0uLioj+ZTBSJRBSNRhUOh5VIJNRoNFSpVJRIJBQMBhUKhTQYDCQd\n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\nTxCndIBDMcD0u6oEQPXc3JzxTNzoe/fu2QOB1QfHcC1ulzgVCOZkIDuC3oDvcj0zGM2VJUmyjbvq\n9boZ7e7urjY3N3X37l2b1waGxOMT/qjRIsjkvV1aAg0eWSmQgrptv99XtVr9S5njP+f7/vaH3+9I\nmvvw+yVJP3Re9/DDn/3I4Tm7xDFphwuGPMTYyBRpiO10OopEIrbJFAYGvmCY3r179+zzwHuoLfCC\njGFi8G6pVFIwGFSr1VIikdDu7q7K5bIymYwePnxoMh6qCEwwZNMuJjZOJhN1u12bvSHJehUk/Yi0\nByOQjsA/nqxer2t+fl7vvvuuyZzIql38+eqrr+ry5ctqtVo2RBC8SEICNHDnoAFBGOO5v79vQsxC\noaDBYKBz585Z+W88HluicJLj/zMZ6x+6oY+8/a/v+7/l+/7P+r7/s0iZ3UFuSJc9z9Pjjz+uaDSq\n27dv6/6Ho82R4CAuRL0Zj8dVrVa1tLSkF1988diwEt53Oj3c86harVrGBCe1t7dnIxJCoZBhLxpo\nYeXBW8ViUYuLi5JknpCxCzdu3NB4PFapVDIjAmDDzbnELKGSyga4iT5PlwBeWVmxbQdRUmQyGe3t\n7RlBiwG56hUwLFULSFcI32azqbt371pWGwqFtLi4aN4PPrLRaJz4Wf+XerJdz/MWfN/f9jxvQdLe\nhz//iVsQ/nkHF4oBMMwknU7r4sWLWltb0+7uru29dOPGDcMXjAWIRA73+6F4GwodTtjZ29uzLJAQ\nQ0s/pCwGWy6XlU6ntbi4qHK5bH0Bk8nhbnL5fN72MIJeYWo2CcSFCxfk+75u3Lihe/fumRgSRp89\nLrlGV92BenY2mxnjz0DA3/u939OVK1dsqjczz9irk8nfr732mo1WwIOBy5hESfEfQQLwg06lUqmk\nSCSicrmser1uauFCoWCbqD3zzDP63d/93RMZy3+pkf0/kv57Sf/sw3//b+fn/6fnef9S0qKkS5Je\nPskbgr+40fBQa2trNld+Npvp4sWL2t7eVqfTUT6fP0aQMkYJEE5WOh6PtbW1dayx49atW9rY2LA5\n+0i4pcOwBnmJKjSfz1s4WV9fVzQa1bVr17S7u2uGMRgM9Cd/8ifHOpvm5+d1/fp1Pf/885pOp3r7\n7bd18+ZN7e7uGuYDD4LL4LHcKdT379/X8vKy4vG4JSlsJQhuZU4bXhIPjYKXgj+aOxdTTqdTra2t\nSZIuXbp0jDgGtgwGAy0vL+vevXs/XTLW87z/S9IvSip5nvdQ0v/yoXH9B8/z/q6kB5L+liT5vn/T\n87z/IOldSRNJ/4Pv+z9xV4FHmzwo8pIB7ezsKBaL6ZlnnrH9KdmfUZJ1h7vaKohEtF2j0cg2G63X\n6zZdkBCCN1xYWDA+SJJN2CEUp9NpVSoVvfTSS4btzp49axqrbrerYDCocrlsnuSxxx7TaDTSnTt3\n9NnPftaGy7z33ns24rPT6eiDDz4wVS8iAUL1YDDQxsaG7X3JCC28lquQheaASwyHwyb54QCHoQxZ\nWlpSt9tVqVQ6JgDI5XK2CCaTie7du6dGo6G33nrrZBamExiZ7/t/+8f86oUf8/p/KumfnvgMPjx+\n+MMf6hd/8RcNZ1AFoDX+T/7kT2yj0Hg8rqefflqtVkvdbtfqaI1GQ4lEwqTWjFRCHVGpVLS/v6/9\n/X3dv39f0tFGqZPJ4a63oVBIlUpFk8nEsBBNvK+++qoKhYKWlpb01//6X7eCfblc1tbWlvb29lSt\nVo3rW1lZ0eLiooLBoNbX1+X7vt555x2VSiVdvXpV6+vrWl5e1pUrV1QqlfQ7v/M7un//vpWxptOp\n9vf3TeqzsbFh+xA0Gg0D63NzcyaTJiPk3jHqs1gs2r2ie2k0GtlGEGzRSLYOJsWDwRW+8sorisVi\nWlr6c/O5P/c4FYw/WIyuG0Z5Y2C0ZhEONzc3LQyWSiUr2tLUS0Ecb4SX3N/fV61WM6UEGZ4k+7yD\ngwN997vfVSqV0urqqmVuuVxOP/dzP2egl8/iYc5mM9VqNdNd4UWgU8gUM5mMXXepVLKWuYODA33l\nK1/Rzs6O3n33Xd2/f19bW1u6cOGCed7t7W09ePBAn/nMZyyJYEgf3odC+Hg8tmqF53lGQSBAALsy\nJ43yFPxdtVq1euX8/Ly150UiEZ05c0aVSuXEz/dUGBkP+uzZs+p0Orpz544CgYDJVMBi+Xxei4uL\nKhaLdmM7nY6azaaeeeYZ3bt3z8IV9USyvV6vp/39fdPaMzUangpjwVOxY8d0OtX58+clHcqh2TAr\nFApZcXxra8u6ffCkcGOcv/v+UBnM05hMDkcE9Pt9Xbx4UUtLS9rY2NArr7xiWxay1eD6+rqKxaIW\nFhaM/qDDazY73C+KagLkbafTscL3wsKCbW8NV0e2zFw3kiDkT2TAv/RLv6Rf+ZVf0c2bN/Xqq6+e\n+PmeCiPzfV9PPPGEms2m1tbWdO7cOZsNQejgZrz11lvmxovFomq1mh48eKAvfelL8jzP5vD7vm+6\n/WazaYZMiNnc3DTS89q1a6pUKvYwGQXKljaP6vAxDHRZ1WrVdnFbWVnRbDZTq9VSpVKxMOZKdCg7\n+b5vu8vhJRqNhlKplM6cOaMnnnhC7XZb3/ve9/T9739f6XRa/X5f6+vrSqfTWllZObb5PGPR3cEy\nYFvuCc0i1FpJNPDkhOl79+5paWnJEotGo6FvfvObxzbROOlxKowMvRTgdW5uTtvb2+YJFhYWDJPA\n85RKJU2nU+VyOT3zzDN68OCBAoGAjcv0fd8MhARgd3dX7XZb586d0xe/+EUtLS0Z90VoDQQChttq\ntZoNudve3rbMDL5qcXFR6+vrtp8RGWm32zVvWygUjFuKxWLqdrum1GUDLQrRELyAfUjnL3/5y7p+\n/bpu3rypP/3TP9X6+ro1BGPo5XLZSmSw/HBflNnIekl0XI0cMp9CoaC9vT09/fTTarfbev/9901x\n4bYTknSd5DgVRuZ5nvb391WpVCwL4l/kzMwuhVUnNDFQLpvNajabmX7MrUdOp1N78J/73Od07do1\nS+HRq8MPhUIhU188fPhQb731lvFZSLDv3btnBCv7BDBtcXv7sBDiJhupVMoe1P7+vtUsGeyChyRT\nhHLgq9VqaWFhQVeuXNETTzyhb3zjG3r//fd169YtXbt2ze4HZSRJ9hnwbShdCoWCms2mPM/T+vq6\nNSqj7GDUQbPZ1NbWlgqFguFP1BzUYE96nAojkw7l1Az3vXPnjjHOjOykiYFsCkMCmLONH5yZy3/l\n83n1ej1ls1nNzc0ZoUjXE95qd3f3mKL16tWrunv3rhWa0WMRcu/evat2u238miTzdGzwitcYDoeq\n1WrHaIZQKKRqtWp/z3XCF1JKAxPV63VlMhn9vb/39/Sf//N/1q1bt2yDL/YRgHgms5ZkkyqHw6H1\nHcD6h0JHG6qC41KplB48eGBG5w7xg2v8KM29p8LIAMdIb0ajw40UUJaCN6bTqZaWloxwhMAMBoOq\nVqvWN5jJZKx1HwmLq7OHmwJss0k8eIb3ZseS8XisZrNpgkqUGnt7e8bWJxIJ2/aGHkwUDXinRqOh\nhYWFYyUzt0lGOhwSQ+OJdCSXpqeBXYKfffZZnT17VltbW8YRklCg1HDb3DDYYDBoXp/5tFRO3n//\nfS0sLGh9fd2oH3eklNt4/VFEi6eikSQWi2l5edk0VMVi0QarIP5D5Yr0BMUCk6HJtJjPT6jAyzHm\naWNjQ/V63colKBEghN0mFmiRZrNpMqFcLqdIJKL19XVJR4V3xlMNBgNls1ml02mTw7A3AEQqsnEe\nGqGVB4mgEKOmCM5CK5VKKhaLunjxoi5duqRKpaJ+v6/d3V3jyZCL4zVRv0Kb0EKHkVPdeO211+y6\n0+m0URkkJ+41n/Q4FZ6MptfpdKpsNmvM/2AwMI26JBshAJAHMNO+j2wHmoLR43BUSFoIidQmKR67\nCtfBYGC7B5N1senE+vq6DUtBAoRhgLP6/b7OnTtnJZudnR3bx5yxmKhcUYegHcOzDYfDY5tyoTmD\nV4vH41pdXdVgMNB7771nngeJOuUjFMScS6/XMzjB/gdgURYosnSUF1QOOJeXXnrpxM/3VHgySbaR\nFkQqXsHdBAI3j6iR9FvSsf23IUbvf7jTHJQHBgeLDQ8Gr4R4EnDLPpnsHY5npIWfspcLut3ZGNVq\n1TDhbDazayH7bbVaJquGWnBHZ3GtLBI8VCQSUaVS0dzcnHVt0QwCSeu2vrkzQuiSx6vRhELBv1Qq\nKRwO20TvYrFo+jck4tPpVF/84hdP/GxPhScDu4BL2IzB1aUDUsEWGA2YzB2ou7i4qEwmY8PrkE1D\nL2xubmp+ft40awwfuXjx4jG5DVoxd9uXzc1N657GmAqFgi0KzoHsMZ1Oa29vz0o5rVbL1Ayz2UyX\nL1/WeDzW6uqqXn75ZcuqGarHuYA/3WYOitiLi4uKxWJqtVpGAnNtNJ5Ih5EALIXhlcvlY4pijJ2x\nEa1Wy/aYarfbNoDlL0O0+FM9AoGAEY1kWIQGsjPAs9uhJB2NZCLzIWXn5pJuEyp5SBsbG1pdXTVg\nf3BwoN3dXePfEPmh9EAVwb7oGBHFa9rxKpWK0RvNZtPa+hFFUicF33W7XcXjcd28eVPnzp0zMQBb\nG+LRKJdhgPQ+MqPizJkzWltbs9BLmHXDL7gVA3NHE5Bg0GSCLBx+jXuMQpmdYU5ynAojk47vjEEZ\nhswGvow0G5KR0OI2YrhcDu+HhNjtxCkWizaRkLY2WPHJZGKJA5wRbXPNZtNk22SsnEc8HreeyHK5\nbKWparWqYrFoXgHPWCqVrGGDeirekoqCew2c+97enu7cuSNJplx94oknrOfSPViYg8HAOr7ciUbU\nNt1eSiYRufKpyWRiHhtp9kmPU2FkhEuk1oQbDMwdJ4CkmF4Al78Bt7DaSeGhRWDJn332WV2/ft0U\nrAgm3bokIRaPWiqV9N577xkuw9ORiUmyBbC/v69gMGhGLB0qRGazmc6dO6c333zT+DCyxkQiobW1\nNaMhIJ5dfOZiRu5XrVbT/v6+Hjx4oOXlZWPtKXK3Wi1ls1nDrmSwdDWxONkoLJVKqVgs6uDgwKTa\nFNjJ/Pn5SY9TY2Q8WHRbaOSlo6EgUBy4cVd1wENwgTg4DF5rMjmcs89el3hGV0Xa6XSsmI2BErZd\n3MiQFvAPxpLJZOR5nhqNhk0Dunjxom7dumXnAKtO0kG7HlIdwhmLi3mweBXoHKYawcFNJhMrcs/N\nzZnerFqtKp/PGx9G0d3doJZM/IMPPjDZOYsLaNJut81bfxSN/6kxMlLnYrFo+AN3TkMqDD4zuMbj\nwzHiXDBVAqQ/tVrNQgC0gjtCYDab2UAWN4ucm5szkL2ysqJAIKDXXnvNMJ+rq3ffi1WO6BGA7GbA\ntKrBO4EZ8eB4L8B4u9022gFuClxJ3wDiQygZSVbKOnPmjH7wgx+Yfm04HGppaelYYgX0oBcAegWi\nd25uzmBBo9HQ7du39dhjj534+Z4KI5NkRiUdbRaKa3dHSlInJMRAJ7gGRhhBpIeXisfjevDggVZX\nV3Xr1i0tLS1ZEwWGHYvFjtUaqVsioYnFYpYZgpWkQ29bq9VMxo2eq9FomP6NBABily4kylacB0pU\nKBeXlgALRSKRY4kMyQvTEN1NZynSs09VJpNRIpEwLEmyALAvlUoKBAI2jgDcy70/d+7cJ2+ziGAw\naBfteZ7t1UjHDZmPO2gXTogeQ0mmHQsEDrdpWVtb08LCgj04sqT3339fzz77rGq1mmVUq6urNuzX\n8zzbgYPwmEqltLOzo1deeUXZbNYeMPQJYdPlodzxAMz5gM/zPM8El0AEeLR2u21tgCwsxjbE43HT\nj/m+b4sEL9jv99VoNHTz5k0Vi0VrMoEAlg6L9+5+mczVcDEYI1Vp6oXU5RrI4k9ynAojc0cNAOjp\nRnIHw8VisR+ZYSbJOCT+xcvE43GbfsgDdBtdYf8ZEzWbzbS1taVAIGBYhyJxJBLR888/r2effVb/\n/J//c/tsEgWaX2DV0+m0zdKnrkhjMR1TSH8obTESAXyHJ47H46rX66afS6VSNg2SPtBHqQrgAnPY\naAOk9RAJN6GSOi5iT0lWNSDTdYvqrpDgJx2nwshms5kpMqEfKPRSWuHBQC9gbDDskqyGyHAT6YhH\nA7hTknnw4IFyuZw9+F6vZ8OCU6mUgWZ3nle321WhUNBXvvIVvfzyyza+6q233lK9XjeZNrVNkg92\ntiMTDQaDx/ZskmShmHECLLzNzU1VKhUbtoLwkWSEL+n41jXM6eC9pUPMSmYMDQNOJaN3ecjJZGL9\nEmAyEq1PnAoDw4KoJAymUikLFy45yw10G3Ynk4nhsYODAxtmh5sH35HJ9no9zc/Pa35+3oazlMvl\nY6sYDOSSobu7u5qfn9c//If/0Ax0PB7rj//4j/X973/fDDKZTGpxcVHz8/P2sKE4AP14ZIhaPBDv\nmUqlNDc3p1arpUgkol6vp1wup1arJUk/smUjuCoQOJwOTrMHiQYLj0UtySIFEm36MPFW8GjM1UUW\n9ImcT8YISzIrxhZwMRgLhWS3xoc3wCOht6d2x40nYyuVSvrc5z5nWSCFX24wGAksR7gJBoO2cRed\n2kyH/MIXvqAXXnjBPnM2m1ntk6SF1Q/2JNy5mSXnD61CqCaxQWDpztXFC1GpIFEh9FH5wDtOJhOb\n8E1NUjqaTcb9YAFQPiOkPjpJ8icdp8LIpMOwRtcPDwqMA9uNOgMlAqoJ6Uh+wsQaGH9CCErZQqGg\n5eVl45FcuXar1TpWWeAzUTWcPXvWfi/J6p6usbM4COeEHYyAkM60bbwr6l0wKUP99vf3LWlgNIJ0\nNIrd7QYH5KOLY4HwGhYmyREZOuCeATB4fWgcogvnyvmf9Dg1RiYdtcZBuLIdM54E180KpQpAEXtn\nZ0fNZtPYcEkGsGn1YivB+fl5raysGNfG59OzyKwHHh6fz4QdMjHXy7khxL0Wt+kCeQ2yJelo4y46\nrVgoiUTCFt5oNLK5bXBr0BKZTEalUsnGaj322GN68803NZlMrCgOuYzBUch3CWY3OvB/SnJEFxYM\nrznJcSqMjFVJZw2ewvcPx2VyQRR4YeExNtw3YQMch9eBcyNkUHaq1Wr20KLRw22em82m1RPJ9siu\nqAsSptzZrpShED+SwRJWyHrdWifhGGPEo6JCwWuVy2Xdv39fDx48ODa/n+J7pVLR/Py8ZbHZbPZY\nVxHeDALWHVOVSCSUTqePdYnzDNzQuL6+rvF4rCtXrhyLICc5ToWRccMpOOPJ3KFwFMtdfgZjJDHA\nG7hzVvl7wDSbPFApgOIoFovGe+3v76tQKNhej4Bx6AU+k9dDOUhH29bgyTAcXpfL5TSZTLS+vq54\nPG6ybjI4RIfj8VgPHz5UKBTS7u6utra2jHAtFAqWsFQqFSWTSRUKBespgD/D60QiEfOS7pRrvDzF\nfmikQCCgbDZr3tOtBZOBf+I2VYUnAui6eIObIsm8Dqk2Hgbv5u4x5LZ80aAKL0bGePv2bWsugTdD\nDYpilbDrYid2d0Mpws8lmVFJR/td8rDBOMVi0cYG4DngoPh/tVq1ZMEdKFMul3XmzBkVCgXrJMKQ\nyDIhZd1eBbdBxeUf8ZYMouHzWFzj8djUwaVS6dgufSc9ToWR4cnQaLllDNrqpaNt9GCqce+Ac7JK\nSdYjMBwOtb29baRpLpfT8vKydnd3NZ1ODSSzS2+z2bTBLePx4cjPfD5vPBtY0W3+gKDEiwHyOTd+\nR1hMJpN68skn9cYbb5j2i97HZrNpPQhcTyaTsda1S5cuWUc74Rh1rEse8/lgzuFwqOXlZbu/hGmM\njSqK2yshHW0mAW9J0vCJ48lYfWAWNyRxgG3gviBVGRSCUbjjjjzPs1HjKBTOnz9vosCVlRVVKhUr\nkKMGhYCVjkahh8Nh7e7uWigCY4Fv3EYLgDJhGu/Aw4euoWkZ2Q2D+VqtlnFgSH4qlYrOnj1rDcks\nskdLcswPgcNDsoPaA0wqye4jC4GqgatC5hwgxYEBH6V2eSo0/lwY4QKCkbBIxoOkhiEm0hFpCgnL\nAQ3AwybDu3z5skKhkI1QhzrY3d21phKUHqT5KC9837chxKx01B2EUIhOQiHXh7GB3fCYeI5isahm\ns2mkqNvgkc1mdeHCBZXLZQtX0CUkO2Tdrlqj3W6bkiKbzR5Tc+DFqFHS34qujvsuycZ6Skd7k37i\nNvAixBDSANmAU0nWtoaxEU7ADABdd3sXPBAzv5588knFYjHl83mdOXNGnudpb2/P9ksCw0mycIh6\nFU9RLpdVqVTMi0pHXUTorKglur+j9spITLI5qhoPHz607BrdVzKZtEnfkqyQTZnKHZuAsWIg7pbY\nGCEAH2UKtdxarWblOcA/NVG8s+vtqO2e9DgVRsbqhwClPY2QwA0KhULWto/WvtFoHGviAJdws9fX\n17W4uKgvfOELevzxx40zItFA/Hfp0iWjIEjtySAbjYb29/dtrNVLL72kWq2m4XCoy5cv60tf+pKu\nXLliC4MiNA8fLAYscLumqCz4vq+vfe1rdj/4fbPZtEng0+nUMmb6HhAX0vIWj8e1vr5uvKArl0Jn\nRxJEeERxAhRxtW7IgKSjigCJzEmPU2FkgFQyOrc7hwqAC55TqZQWFxftIYB5pKNdQqRDD/mrv/qr\nWl1d1dLSkpGL4KNUKmXtagxciUajarfbevjwoXFp/X5f9+7ds57Ora0tm43xzjvvmPZqZWXFVK97\ne3vHvBkLB+ANRTCZTFSpVGxqNR6UjJVubTcxcj0MWWEkErFeTDR2cGUoMFysC47MZDLHdpZzO8fc\nRhSeEVjtEwn8SbmZOYYnYUXiwiFhyahQcQ4Gh7twXLp0SdevX9elS5esG4nWfzIkutBJ8fFqSHNI\n4an7wf63221VKhUtLy9rZ2dH8XhcX/7yl/Xtb39bf/RHf6Rf+7Vf05kzZ+z1kMXwa3gzFLKcQ6lU\nknS0vSKYFNoBjT1eEYOpVCrWHkhfKAQqiQsGitEA6judjt1nt4Qm6VhvhXRU+3UN/RMXLvEs8DiZ\nTMakMdKPqjTAPOiinnnmGV2/ft1GJKGQ9bzDyTWAW1audGTYSKopBrtjECRZKYlZEYyoYl7F0tKS\nUqmU3n77ba2srNjk6GKxaO/Fw8NIkGgzvJhJRXSUu9mfq4yFE5vNZqpWq1pfX9fq6qphT4wMAaKr\nliAKYDxUJsCGko6VmcBnzAwpFouWDH2UTiXplBgZaTLfuy1pEKyEEGQpTB28ffu2fvCDHxhuQIWa\nyWS0vLyshYUFLSwsSJIpOMbj8bEdSXj4EKZkj66oMRgM6sqVK7ZxKrPtv/vd7xq5euPGDT3//POK\nRCLWJ0qG6z5sSUasbmxs2ERrVy2BUbjeicpENpvVwcHBsaoIobBerx8rXblKDnAvnFwoFDr2PpwX\n99EtmEuyjN6VWZ3kODVG5pZf4MCYz0BJBPZ8MBjotdde097enoVZQgSgvtPpaG5uzoYNnzlz5tge\nmQB8d76DOwsjl8tZo0mpVFK321UqldLa2prt4lsoFExsyQjPN954Q88995x9FokIlAEDV6RDz1Eo\nFI6NSECO407k4SET3kkY3OK/O3UIcpvPYGFirECMR8cq0OXFz0heXPwF3v2pTlr0PO+MpP9Dh1vb\n+JJ+y/f9/9X7Ke4UxywGaoRuaQkiMRgMamdnR+l0Wu+8845t7o4XIrWPx+NaWFhQo9HQzs6OVlZW\ntLa2pscff9xuNFQIYRcD4HMxeCYBQYegv8pkMrp7965RDYVCwQwgl8tZIT2VStlGEq6WjEWVTqdt\ncQ/kEHAAACAASURBVJDZwunhzTqdjuFFQh1GQIEdMpYiPoOckRsREvHWYFuuB6+Ex8XogSdIn2ju\nJez+1IxMh/P4/2ff91/3PC8t6TXP874l6dd1uFPcP/M87x/rcKe4f+Qd3yluUdK3Pc+77P8F8/yp\nSbqCRR427Dn80c7Oju7evWuejnY5Hgja9qefflqlUsn2C3/ppZf05S9/2UY8AbAxLIyIBw72Y7Vj\nLHScX7161eqozNRH5+/7hwPr9vb27DU0rKBwwJuyCVm/3z82l1+SYVMMhFkVrqFJx/diolxGhs41\nEnoxRpIAV5SZSqUs64XSkI54TPoXoIt+akbmH27Utf3h9x3P897T4aZcv6rDTSSkw53iXpT0j+Ts\nFCdpzfM8dor7wU/4HLsx0lGmRVkHPTwbSLEq+WKCMzjrnXfe0bVr12zQCcVmt1iMt3CFfC4RzAEe\nxNuRyjPZEH6KchQhh1IV3pkHxvtJsuL4o7IkPAUyHLdUhOeG4nE9LbwWCQXXRVjHyOif4HMhbcG9\nkizT5otrw2uf9PhIZSXP885J+qykl/QX7xTnjnz5sTvFPfLe9gC5KXg2jApJD99jfKxSVhk45caN\nG5qfn9fe3p4qlYoZKPU+5Cv8SxbH30OskmlhoG7YZCdbHhDnMRqNTGnBAuE63CxPOhJAug0kSJN8\n/3B0AG1orlgSgyAxol0N0O9iLvagggrBOxI6mTbebDaVz+fNuDFcDNPtvzjpcWLg73leStIfSvoN\n3/fbbhrr+77ved5H2inOc7YiZHIO3Uf+h0221NFGo5FREpLsd6T1k8lE/+Af/AP9/u//vu7du6fx\neKxaraZisaiXX37ZcBr4CtDqlk642W4jLUblPnhX9UCq/2iHFSUf6XDaDmEfItj12o9OLCQrBRux\nDQ2CQ2aZgRddiiSRSNjm9XTGc84Ut2kOccUHjKF3x0YFAgEb/wn2g6N81NP/pONEr/Q8L6xDA/sd\n3/f/44c/3vUOd4iT91+wU5zvbEXIqmCVggEk2erh98yb5wYTJl988UUbPUk4pE75uc99zjI9l0l3\n398tkxBCMDb4NYb94vXwinyVy2WjFNgBhEYNRqy7jcaoRjBojDAej9s+3wB5whVelwXH53HPwF1Q\nIS7OBAtmMhnzjCwWyFiK8xTReR+3/xTx40mPn2hk3uHV/Lak93zf/5fOr9gpTvrRneJ+zfO8qOd5\n53WCneLAGWwMwU2SZCk7K382m1lGxIVChnJTC4WCisWiyuWyVldXtbq6apOzJVlWidGR0RHy3FDD\njXcrDq4HIUTCKXE9PHCXKmCfTjwnexrhld1r5PVowdxs8FHVrVtSY+ALnhOPiCHRtMxnMoYeIyJJ\nQLDpfgYyJ+DJSY+TeLJnJf13kp73PO/ND79+WYc7xX3R87w7kn7pw//L9/2bktgp7o91gp3ieKg8\nAIwumUwaex0IHPUpupQHNcFQKGScGTimUqkon89LknZ2dmzYG3wbuIcH7nJUqBpyuZx1KxFiHm2C\nlY5a+12QjLGxAYQr1QYXue18LCywKcVwjJ+/p1DtLkQWJiFPOtqdl2sh5BMxeD8mckM6uxN70Pqz\nPyefx2ef5DhJdvl9ST+ujvBT2SkOLmY2m1mNkRZ+btT+/r4ajYbN8Kdw7BoAmGR+ft5Cwvb2tpWb\notGoNjc3debMmWO9hpFIxPRg6KYoLkuyrJL/Q2ZSD8RAIpGI8VMuZoXGoORFHdNNVHK5nF5++WWt\nrKwY0cq1tdttLSwsmFiSz+92u0qn04Yx4bbK5bLee+89JZNJoyiQO3GPWQAYtLtxPecJFMHLg09d\nKdNJjlPB+BOOAJY0MHCj+/2+jQFgWAnaKTxZIHAoj3YfUK/Xs4mBeB9CBuFEkg08ZlN7qAJJppEn\nRLkd24zMBBy74xYIby524zzQv4EbJdm0n/F4bCoPFCZUD+jVBNthpHg7DjJKrg/vSYkObOcmLVwD\neI/rhytMJBLHsORPlfH/yzjc8NJqteyBzWaH+0Y2m03rp4R8hY3mxjCMBM6s0+lob2/Pmiqy2ayy\n2ayFWho60FDhGQk9lH8In3gxt2aH+I+/efQ1Lk3B//EIZHBIhjzP0/z8vEqlknkRCOZ8Pq9+v6/z\n58/b/ZBknU8YCtdG4oEB8nu8uSSbB+den6t1wzBpsJZk7wFOPulxKuTX8D0AVCiLZrOp/f19U3lK\nh0XaM2fOWCuXK4VhgJ7bxCEd4oq9vT2Fw2HbWppZ9oyAovbo9mwCugHGhFhJx1Y8X271gHDiZrTw\nUjQZk3Hy8/n5eTM47gMkqVuacruf3KEpXHc2mzU1CGMVSD4QhUqyfQogZbn/yKso05Fs0LYHJXPS\n49R4MtJlannU3AgR3ORqtapKpWJ8Dcw9eO3RcUeDwcB2n6vVanaDXWUC6lAwDGGE5pZ+v38Mh7gN\nGBgE4dGlFrg2jIzrQnGBB8TzMbEHLEY2iRafxcD7sP2PO38DT5PP560zno6kQCBg/BlJB3SPK1Ik\nEeJzMGLu23Q6NR7wJMep8GTSUXWfh8wcU2aHgRlYfTDt1NOazaZ2d3cNWFP3C4fDFl7q9bp5vVKp\nZFvAgANdshEPAIbCM3IergbO7ckk8+IhuR1UMPYQqWR77gwQPAs4Do9F6GQzVsIbuA9ADmGLsJPE\niffHSMCErjd0KyvUJ5nbyyRwV0Fy0uNUeDIelHSUIbHSYb8BuZFIRPV63VQJ7iC3ra0t04FFIhGV\nSiWjKtiBg33F6bkkLNRqNZXLZfM8rGr0+oBj8GOxWNRkcrhdD56CYr7bXkZIJTmhCA6eI2PkwXJu\nnAMew/M822UuGDzchIv+T87JvY/xeNwG3UEMu30UHK4w1BUJgN/a7bYphrkGaKCTHqfCyLggt+Ob\nCTbMGsNQaB6RpEuXLhm2WVlZ0YULF7S1taU/+7M/07vvvqv9/X35/uHm8vPz8yqXy3rqqaeObRYf\nDAZtfgSSYqgPQgsPGCyFdKZcLttmWO60HUhQHggejDY25tBi4NVq1Tw0RoYhucTxaHQ4yZrR7Qgi\naQgGc9HqVygUTOExGo3MSHO5nHkuNwzSH0GdFhhQr9fN+0I+f+KmX0tHk/0A4tT1aHVziVB2TZvN\nZrp69aqKxaKFk0uXLtm2zu5ekB988IF2dnbUbre1vLys5557Ts1mU6VSSR988IEqlYo9NPemSrLd\nUsLhw32QMpmM7XvJZxNSwZc8LOmoQRim300MYND5G0A1Hgwez23MBZ+ipaMfgnuA6hdilUx5Z2dH\n3W7XasWuR3NbEV0MDGwgdCNl/2nryf5SDrRgYBK4LMIAq5vUmhCAt+H7Wq2m+fl5/ZW/8lf0h3/4\nh8Yp4WHu37+vtbU17ezs6PLly7pw4YKCwaDtgwlxGw6H1W63bXXPzc3Z2PS33nrLdqkj+yNMS0dd\n7hgBD4RwBI2QSqW0t7d3rLRFOCPEusoTivmEWEhSFijd9+AvBrKsra2p2WzaJEmIaxpcWBBUREi6\n3HFTJFiEZjfT/knHqTAyMhpuKu4d6oKHQzc1w+wqlYrRB9wcdgNheg8Als/gAd26dUt37tzRwsKC\nfN/XxYsXtbW1pf39fWt4nZubsxGh4XBYly9f1rVr1/SZz3xG0+lUW1tbymQyOnv2rE1N5LMA2FyX\nWxnAY1BnJay7QkpwEUJJFtKjGSo4MZvNHss26bIn5FH2Qn/G4oWXQ6nr9ljwvft3XNdHOU6FkZHt\nHBwc2GanzWZTrVbrWGOFa2i5XM7wlNuE8vjjj+vll1/W66+/buCavyVxwCO6YsSbN2+q0+lYVvrc\nc88pGo1qZ2fHNq364IMPjFL5m3/zbyqVSqndbmt3d1e5XE7tdtu8pqsVw/Dc4TAuMQudQgXAHdfg\nztHlXIEAZJWxWMx2FMZzk3wQGnktXBgJAlQJOIwOqmg0qkajYecoHWnYoD5OepwaI2u322o2m6rV\naj8ywZpQmU6nlc1mDa+MRiNVKhVbWa1WS/fu3dNLL71k+ygBtgkL3HBCG+E5m83qhRde0KVLlzSd\nHs7HaLVaarfbVlxn0Ml3vvMdPfbYY/ra176m7e1tS/OTyaTttOuOIeWhuw20bgYHjcGcDUC3dIRV\nAd14Rri0SqViC4/PgrWHzCXEJpPJY5Iniu0bGxtqNpt6/PHHjxG14FAWCl6y1Wp98naJI3OiNkZb\nPsAbJUM2m7XWfArDzGBNJBK6ceOGbt++bSt/MploaWnJBgRfvnxZb7/9tq5fv66rV68qkUjo85//\nvAkDoUc++9nP2n6S77//vv7Nv/k3+k//6T9ZmMpms7p165Y9bEnHDApMRAh059e6WnkSDcIi1+xm\nfSwwt4JBJusOXUGWhJeC2IZXg5CGaCYqhEIhXbly5ZiB09GFR+VaOCd+f9LjVBgZBCdFbGp7hEpJ\nKhaLptR0RYW//Mu/rJdffln//t//e92+fVsrKyva29szb4K+/+tf/7qee+45/Yt/8S+0uLiolZUV\n7e/v24C30WiknZ0dTSYTnTt3Tj/84Q+N8J2fn1csFtMTTzyh+fl5fe9739PTTz9tGAgOj4EvhDpU\nr75/NA/MZdWZc4Fxut1Skn7EiwD+eR3VjEAgoDNnzlgIdEtIGCRNzSwGPofwy0wNV/7E7zkHYAnv\nfdLjVBiZewFozcleQqHD7ZWLxaJtsReNRpVMJrW3t6fFxUV9+ctf1vnz5/UHf/AHKpVKunTpksbj\nsW7evKlqtaqnnnpKP//zP6/3339fkvT222/rlVde0ec//3nLuN5++20Vi0X5vq/f/M3f1LPPPqub\nN2/qrbfe0nR6uB1yNptVrVbT8vKyfuVXfkXr6+vHivhnz57V/fv3DaCnUinjuSjjwDO5GTObdCHB\nIdThmUKhw13b6MqC8kCWBJ8ItoNDc1UY+XzeaAkwIbVIdxQWP8cb0h+AYZP5fpRGklNhZJPJRBsb\nG5pMJiZHQV3Ayut0OgoGD4eZsNtuIpFQtVrVt771LX3/+9/XvXv3NJsd7tZ29uxZPXz40IbGjUYj\nvfnmm/rggw9sTBObMPi+r729PcNFw+FQzz33nP7gD/7A5uGDuwKBgL761a8qHo9bZYJkAK8LT9fp\ndAzjoG+jZDUYDI6BbAxHOppCTZUhGo1aXwGAnhIX3uvg4MCyUDwZ3jSZTJpsiHY7RsMTVl3vhozJ\nlahj+GSmrhrlJx2nwshcYtEVCrJaALuSTD+WTCZ18+ZN3bp1S1/60pf0zDPP6Lvf/a6NEWg2m3r+\n+edtgjVEKhthobIg2wIMx2Ixzc/P69vf/rbG47FNnGYH35/92Z/VL/zCL2h/f9+4OXZfu3v3rmKx\nmDX3xuNx21qHrA9gjn4MzZt0JKUhtKKXc/Vw7rlOJhMzGqQ3eJpgMGhGF4/Hbc8oeDLuO9gK45SO\nwiHCRraDnEyO5ql9lONUGJkkY/shZQHBFKxdIV6v11O1WlUqldKv//qvy/d9ffWrX9Xf+Tt/x7qS\ntra29LnPfU7ValX7+/v6zne+o1deeUW9Xk+tVkvXr1/XgwcPjN9CDTGbzVSr1XTnzh1r2gWsX7p0\nSX/1r/5Vlctlk4Uj4EOmHQwGj83Ux1Pgdfg/Onyaed0FBS+IIcEBUpx2dWq+7yuTydgUIncy0Wg0\nspCN4RGGXXkSDcPQHCQHbl8AGS4avU+cJ3OlJ6wugD1YBDEeYDYWi+nNN980VevXv/51/f7v/77t\nKdTr9fSv//W/1mw20ze/+U299957evDggWmkqEfW6/VjSQLDTOjsJiO7/v+2d66xkZ7Xff8/w+H9\nMlcOh+Tuci/aXVmWVMlxBCMyCkWxktQOGsVBAifopwTIx6YoiiZGPjX5krRA4E8NEMAGFPSSBmiD\nBDYQIZHtCBBku5YlS16v9qIld7kccjhX3snhDN9+GP7OnKFsaxRb2tl0H4BYLjmced/3Oc+5/M//\nnPPoo3r66ad16tQp8xkJKvBXSO80m02b4nZ4eGjEv5NRJ1qbHrEe6cdh97UEsDowrXQNItrGN8OU\nEwVSI4oPJnWaGqPJSGt5h35sbMx6su3u7nb17UDge1l9IWScFo/wU5GNgFHpE0IwbCyVSqlYLFob\n0EQioVis3V1xcnJSX/rSl/SFL3xBX/ziF7W8vKxMJqPx8XHdvXtX169fV7PZtAGiPuUzODhoPtS5\nc+c0MzOjxx57zIakArVgumDVIgSAsgC7pVLJUkBgVqDqUInAtjwZEm3lhYsF5wsWK0lxaj89yyMW\na/dEoykLwi3Jeo2hwfgs3BIOBVFoPp+3STG9rr4SMtBn748B+hGVpVIpo8qcOnVKd+/eNdo25pRu\ngy+//LKeeuopm0YrSeVy2fAfPiuXy1mbqIODA/Ojzp8/r4WFBeuXXywWzcShLSYmJuy9MJf4TJLM\nVEqd8j7MIGaL/mQeePXTVqIospE/mDm0oi9IGRoaslQS9xKLxaybJLQkNCnXRBTLeyJY5G1jsZiK\nxaKGhobMCtx3OFmj0dD6ers2mMgSdH1wcFBzc3NWXu/JjTMzM/rEJz6hlZUVc+Cr1ap2dnaUy+Xs\nfdLptAlOvV7XhQsX9Oabb1qOcG9vT7Ozs5qentbDDz9smhI0/Pr16zo8bDeoe+SRR7r8L/J68Onx\na0i/eFozG0jtgDeZVF4RvaHVRkdHLXGPliel5JuugL15zA8aFENZYYtAJfe9MODmpVKpLsIAC4e/\nXq8bRbzX1RdChtnB8UbVS51+sr7AVOrMY4Kiw6mfn583cxdFkS5evGjo/VtvvaXDw0NdvXrVTEIm\nk1E2m1UmkzEtefXqVa2trVkHIDaKSA9tRGoqhNBVvg80AAyDtuEA4RbgWJNa8qkbMDTfiA5BRQvx\nN5g1AiTIjzyrZrMzD6BcLhsEAZMWU+mjV3wucDTf5RJYqdfVF0LmefAsAEHIfDilBASSLG2USCS0\ntrZmM8XJTc7NzSmKIpVKJcPBzp8/r2vXrlkEiBCQv4N10Ww2lc/ndfbs2a5sxMbGhvHsoXKTcPeN\nTDBrHvNDk3lNhaAR6REZSt3ThjFzmEWpkxHw5hoQ1o+3JrXE6/H1fMU4r0WIfRBAAp3gglkDva6+\nETJ/4zzUeDxuaZNisWgtMNPptEZHR63v6uHhYVcrA05kpVKxjojxeFw3b940J5lCDEyd1KkMB/DM\n5XJ6+OGHdebMGWPEUpaH5oWNQCTm/S3MkNds5C15DdqPZ4A/dzLJ7vt/QG6UOvgW2BYkyL29PSMv\nUvfgaUBcm08h+fflb9B4CDKsjPtOk/GwTzYSabVaRrOR2ieqUChYM7iJiQnjf1HKNjAwYLAHfSFW\nVlZMoPg5DvzU1JRpKC/ckiyKBD2Px+Pm6HveGILJhvgkOE412B+ZAYIBzCKHy5e2eW2BY87PCAKo\nZuI9oPzAoCAK9hEx14Ufidn1DGRPhwJGgdmCdux19YWQ+cofTi5+BHk/bhg/CbNzdHRkVUuYoGq1\nqqOjIwNTgTbAecDEJNl7UxEldXpRSNLi4qKlqfDFJiYmumAFIBcevI8ACS58Z+2JiQljnWKKT5of\nNCVCj/bgutBoPD/8Ja7f98vg87lWyJuYRzSpr8hHq8MO4RmRBrvvzCWRmNRBvBE4ThICJHUqbHC4\nfbWOL9UieqL10/r6epfgshmYDzQZVedEaLdu3dLY2JhSqZTS6bQKhYKZdzAyNA2mh+/hfZHOoWEe\nRTH4Zdy7JEPoOXxoKrQb2geN6+EHsgySDLppNBo2JsgTG/17IXxec2Ey0bAhBKvBuO/AWKl7TqTP\n1UnqMqMkc/Ep2DxQcHwUHG78G+9zoAF9u8uRkRHV63XjZ9HcOBaLaXl5WY1GQ48++qhGRkaUyWS0\nvr5ugxoAXplY56NE4AuERVKXZsBVkNTlKviIFG2HU8/7+SS55+C3Wu0OPdDG6SVCrhOIh94hPHNP\nC0LTQQzguRF43XcV5AgYJ1nqpFPwF/CBftjfslE44/zca0m/+WhF3h9/ic8BFwshWGftpaUlDQ8P\n28B7IlE0IriSp1fjcAO6cp/AH1QC4QsRRXrNKHV8MEwrVGowLy9gtDUgP8rrfbQoyYIW6D8+zYVl\nIONCF25fj9Hr6gshkzpYmRcYVLfv0XByoQ1wqDEpbDxgKL4X2s7DJjxQz6OqVqvKZDJdBEFG+5EB\nWF9fN5NSr9ctCiTK9ZVAPqHNAfJUa9wDBMVH21SKHx0dWdTp/UafhvJEQ581YBJwIpGQ1GFtQAAY\nGBjoGhwxMjKi9fV1mxf6yCOPaHp62nw/rxDea/WNkHnNwyYAR/gxN/yOhW/DGEBPYxkdHVUmk9HU\n1JQSiYRFWAijB1NP+j2NRkPFYlH5fN58q+HhYTUa7QFe8/Pz5tPs7e1ZugX/Dmo05thrEY/1cXhw\nuLmekwlsCoExwZhLr+nx9Wq1mhW2QO7ErPtIlsonXwOBVpNkw70uXbpk7giCe3IfftTqi14YmCdC\ne+9PecSc16IZQghKJpPmWxGa4094/KhWqxlc4MN4fBy0AxoBQJZWVo1GQ6VSScViUaVSyfA2zN3u\n7q4mJyetU5DU1lSkYhAkmLSemk3uEaElSc/1IGg+4EHAiPbwy8D4MPcbGxsqFAoWPdKJmwNMC3qe\nDf6sH7568nPJgPS6+kKTee0ldXrd/yBoQ2prg729PWOs+jQJJ45CYZLpmUzGIkh8IB6uj2JP4nQk\nziXZeEGaBY+Pj2tjY8M2F40G0Iufxz0gdJhbbxqJ4HDmT9Y38j3axvuo3BNug9eAVFyhqTmE/tlK\nncNLHQFa+aS/y+fdd8W9kuzUIjBe0PA5JJm2Q0DK5bJRgz3xD346m4jTzGYCE3gQks+ijMxHtH7j\nfRceqDtcLw198dVGRkZMy+VyOb366qvmr/HZCICkd12L1NF2nljoiYekhJrNzthsxu9wMEgFpdNp\nbWxsmCDi73orgp/mc68cEm9lel19I2Q/7AFKHTNB/9OTG+TZnN5coBVO+mrgabFYe4wySWicd34H\n6Q//bXx8XLVaTT//8z+vra0tMzlAAbdu3VI6nbZuOPV63UBYScpms8rn8zYQlg1DKwC14FR77Y6Q\n4zOiYRAGn5rzrNt6va7NzU1jtdCYhcwEifWTVUu8H3AFmtQ//15XXwgZfojvjCPpXaoaTYVZBAog\nmuJUwmqFPuPNIe8LPACSTl9WqTNU1GN1OMp8kaYiSc58y4ODA2UyGeXzeS0tLWl7e9tgBT/UFQFF\n6PkMNpvFhnsfjGvzEAdaFa0HidMzPnhvkH+qlDzdx6eWuD+f5Mdvu++ETOrQi0mVePSch4xZ8NUz\nCBipHZ858FEqAix1hMz7ghRkoCFJ+2xvbxszt9Foj7J57bXXbNKI1O6Y3Wq1bAwggQcBhCTjcgHg\n+hzk6Oio8fw9qMo9nKxm4pkg+MA1aCGEcGBgwHj/3B9BCn3doLIDaCNYHG4Ejj0C/PU/f6/Vy7CI\nkRDCt0II3w0hXAkh/Kfjn6dDCH8fQrhx/G/K/c3nQwg3QwjXQgi/0MuFoKVYCIEke8BsDCcLM4mJ\n5OEQYpNG8RgU7+0ZCJhWqVM5xWb5qBZnvVqtmobgvXd3d7W8vKyjo3bR7t27d7WxsdHVBsunfby5\nkzqCz+d7P402Vlyv1Kki5xqowOe5SDLuGBN3eQ8iSAIgfEi0vj8AHnf0LgzX3cvqBcI4kPRsFEX/\nQtITkn4xhPAJtUcPvhRF0UVJLx3/X6F7FOEvSvqvIYT3LG1BzUuyh+wddch9mEf/hQCcpM/gzBI4\nEGVhTtA2aDo22ZskUHHfNDmEYDAE7FWiVE+noYdZqVSya6BWk3vGbAEce4oNREmEEuBZ6nTSRkMN\nDg4amCrJaEVSu1kg7BF8VCaRUM+Jz+cPLQKPfwfWhgbtdb2nkEXtRaHd4PFXpPbIwReOf/6CpOeP\nv7dRhFEULUpiFOF7fY6kTpL4JM8Kf+OkP+DpL14DeADUmxYiRR+5oo14X5ignHIEnI0AmtjZ2bEO\n07u7u8b2QGj4G/KkaN4zZ86YM32yesmPXka77+zsdDn1kuyABEcS8BQhyJ6YaPxI4AtwLupMf9Bz\n8JrLF7ucbAn6XqvXAV4DIYQ31B7S9fdRFP3YowhDCL8TQvh2COHb3hc4GSL7aJPNQrt5fAlTic9G\nOwNJZq583SKBAki5R+JJLXksCo3nF5Eoflg+n7cZl/V63YR4amrKBAUSpdcYPqLk89AqIQRrQONp\nOdwbz67ZbHZ1OyJZL3WKcXyHSs8I8c0GOYhQotBizWbTOv20Wi2DSnpZPQlZFEWtKIqeUHvi21Mh\nhEdP/D5SW7v1vCI3JY6IBdQaoSAf6fN+J0N274MQofKQAUpB/anW9n0fpE61us9fkuSG5IiPB1Lf\naDSMPEmlVCaTsa5COzs7isfjmpmZsSh1aWnJ2i3APxsfHzeT7gmXCCCDyDhMPv2DOwEdHKFiUEap\nVDJMDzPP+1JrQH3o9va2HT54b/jCAN24BbVazT6rl/W+0kpRFNUlfU1tX+vHGkX4wxY35AFYhAn/\nRepGwImwDg8PjcU6ODhozYb39va6KqnZMEmWfoLeDJFvZ2enK1UVj8et1RPkxYODA21sbGh7e9s2\nHuFhswhCOEAbGxtWsOIjPtwDzDARIxNJfP99cpje1/QBwebmpqrVqorFovb29myCnr9moApMH5VP\nHFD4Zz6DwD1OTEzo7NmzPctNL4PupyUdRlFUDyGMSnpO0p+oM4rwj/XuUYT/I4Twp2rPIH/PUYQs\nj/vgh2GiMF1sFtHnSf8FPIi004ULF5TP502jQGmBpszrPasA3w6thmPs+fHQqUnMMwuJ3rE+QU5a\na2CgPfW2VqtZ1Cd1hoV5TMwHJLCEoT0zVMJnNMh/Npvttu9UW83Pz2tlZcWeE+YYSIZnOzY2ZkXH\nHBBcEw4VAC731OvqBSeblfTCcYQYk/RXURR9OYTwqqS/CiH8tqTbkn79+IKvhBAYRdhUD6MIpvxZ\ngwAAIABJREFU2Vi0jOdSIUg+OgMzQyNBP0kmk4rH28W6yWRS586ds6R0o9GwzfVOqz+pnHT8QSI9\n/p6oFESda0W7RlGkXC6nlZUVu0a05/b2tlKplIaHh3Xjxg3F4+2BFq1Wy5rUEbSgPTHfRIkIBr6g\nD4hw+vEHoVvT4p2u1T5FhDtCAMJzHBkZsaYqdPehZwjA8vsxl72MInxT7bnjJ39e0U9oFCEREg+B\n9JHUHT3GYjE7YalUSvF4XAsLC5qbm9P4+Lj1f0DTEBGhFTyYC+4GDOGzBhAfOdk7OztWsMHfSB2g\nEtYFPhOl/1KHSt1oNHTu3DnzFek2hAYjWIH8CGUHIQEH4xn4kdFoMdpY+QkqANezs7OmkUjUU+/p\ni3xxDdB8qVTKqOs0mZE6fLReVl8g/kdHR2Z2pM5UEkwZ2iSZTGp6etqGKIyPj+vUqVO2kTi8mKp0\nOm1MDfwiagc96Og7TPOAoS7zxWK+EZEi9ZtbW1s2KhH4gu6G+Xxei4uL1i+D9yT1RZ4UPw2/DEjE\nHzSCGDAv0m1o6LW1NYsKofaQCfEgtiQ7VFIHXMXtICCJosg6ikOy9MFYL6svhAyTR+MUL1w8EKIb\nuhIODAyoVCqpXC4bvwkfC6yJB89MbTYY55nQnSzByQQ9Wg+4gOiMqJP5mAg5ZsYfCs+Hw7zNzs7a\n50qdgRD4nfhmHDY0JHRr70vxWnAwJuwiTAQqvgodB58ImTFBPvNBsxua5Ukd00nQ0evqGyGjhzxN\nV1DLaLT9/X0tLi52bQB+Cz0fMJm8J4g9RcHlclm3b9+2SBNTgv/n2bF8DloJv4hEt6cbkYUYHR3V\n1taWcrmc6vW6fU/VE0n1o6MjbW9v6/HHH9fKyooNEBscHLRhF8A4URQZKo+pY3HtURRpa2tLKysr\n2tzctKBiamrKHPnt7W3TmD5T4bFHsDlJXTOeiM45LORme119IWTDw8P66Ec/qt3dXd29e9fMJikV\nny5i4325PgXARFf4YUdHR0qn00anOTpqM2Dn5+c1MzNjGglmhdQ9D/1kcOFNBn4Z2rDVapmQEyiQ\nDYAZi1ZIJpPa2tqyKcPw7mGzSjJYgSiWewDv8vw6+pLxJbVdkEQi0dWLHwySv8X3vXjxolGS+EwO\nHMKIFiUR/35WXwhZPB7X3NycDg8PbTAqN+yBUSK53d1dHR4eWrUQbAwfNVFbiODR2C4ej2tzc1Nz\nc3Pa3t62B4YQ4vDygHGopU7Bhk/Oo4H4bJxwrtc3whsdHTWtWygULEjAf8LU4juhhYiwiSw9vINf\nRcoIkwgzZHBw0IbDIsz4hEdHR9bZ0mdYvKUgEOJzIWG+nwR5XwgZ+FEsFuvqR4Z6JqkLAg1QuLe3\np1qtZr3/Qd5DCIaC+7YA+EDlcrkr+Y7vhzYjKPCffzL7QMX5xsaGpqamDARmczDJ1BbgDkRR1DWY\njL8ZGxvT6uqq0XrCMWtVkgkxqS6cczZ+c3NTlUrFuGsDAwO6ePGijdU+d+6cCoWCXTMQyP7+vhWc\n8NwQPp/rjcfbHS+BMd7v6gshY/NGR0eNs8/sIF+Yywaw6QcHB0qlUtra2lKtVrM+//hHUG12dnaU\nTqets7Yk6xQIM5a8oBckStGI3jjl4E/NZrtt5/j4uHZ3d61vGb02fF0CtZBgZvw9Vd6g6dQnoM3R\nrL7xMJqH7xmG0Wg0bALx5OSkrly5opGREX30ox/VzMyMlpaWND4+bpkANHO1WjUz7X1NNObm5qa2\ntrYsMp+enlalUul5f/tCyHA48b9wRJnAhrbC7DA1wxMCpY524eTDPiiXyxobG7NeYwjP7u6usVnj\n8bhFg/g+OPR+DCDXi5nC10JTsTwUQAYAR3t5eVkzMzO6deuWJFm6CZxvZWXFRlWTXOfZ8JzwDyuV\nikqlkglwq9XSmTNntL29bZHxSy+9ZO4E0TCaC4uBXwfcQaROznZwcFArKytaWlrSH/3RH+mll17q\neX/7Qsg48YTZPsKDHIiDDijpzRbD2KkJpAM06Q+Q9Vwup4WFBeuhj/MOGu8jLEwV5pRUD2aW5aMt\nfi91+F4ArD4JD6bHOMCBgQHj4eMLojklmdYG5vGsiLW1Na2vr5v/NTs7q7Nnz1qjGLQbdCBgDQQM\nYdvb21M6nTZoAqHHRUHTHh0dqVAoaGWl53R0fwiZZ6fChfKsTPpsMXzKg63w5fmX4g+49sPDw9Z0\nBJM7MDCgxx9/XN/85jfVbDa7ej4QHHhaEHlMT8PhwYMbkRaiGzbQCQDr1NSUhoaGdOvWLZuCR3ef\nSqViuVbK6kgnIWj4kzT0q1arRiSEiTE1NaVHH31U8XhcKysrpjUfe+wxcw8w0/4Q7O7uWnU5AyzQ\njDx/akw/9alP6Y033tDly5d73t++EDJoOwgCDuje3p4FBGizra0t2xxOux/B7GEHP/rF95wg0iO6\nq9frkjq1ADBSccA9SAqQK8n8pqOjoy4sCwElauS9mNNZq9VULpftsMzMzGhnZ0fLy8uanp42J5/A\nwH8WrbPAw/ChxsfHdebMGU1NTemtt97S7du3TVC+853vWJmftwCeYMBBAkMD1PYT6+h2FELQ0tJS\nz/vbF0IGWs5AKvrOe+HC3Pj5Q2hAtA0+C9qM3lxQgEDspTYmlc1mLZ0FDuY1Jag8TFKEmt/7iJOO\nQKRjwLyoCMKxZlYnWYhkMqn5+Xmtrq5aV0n+XpL5qIOD7dnllUrFCnbBwhDUc+fO2TjHYrFo2hZm\nBlpR6mjGKIqsYknqsF/4wh3B5PssQ6+rL4RM6twsPgOnk5QHWoX0i4cZIPzRbVGSCRa8rBCCTdoF\n/c5ms1peXn5XoQk+F4l1T/lGEMHBEFyvJWg5AC8MM03eM51O23Uyl2lqakq7u7va3Nw0zXyy1xqQ\nBO4E+dvR0VEDl1dWVqztPIER1+47VqKd8RnRmGjHVqs9IGx/f1+1Ws1aM3gQuNfVF0KGeRgbG1M+\nnzfU2pP92FD492guTz+WOpXoOKojIyM26zGXyxkTYXBw0LAstA7v5TUJ9J6TkSULTSO1hZIW5uQM\nY7GYtTo4PDy0eZ2MZT44OLC+t0SsaEyi3GazaXlaPxsJJsfU1JTGx8d169YtFYtFDQ8P6/Tp01bI\nQi9brpF0ml8EWqSzeNZTU1M2U5Rsg6T7T5Phg+H8k1bCZyAq8wCtR8R9ntP7ZvDYC4WCnX6GQVQq\nFdtwTi/8dbIM/kF6Dj5+2kmBgzrD5+PjAQM0Gg2dPXvWqoQmJibMP6vVanZ9HATuIRaLqVarGe5H\nO9GpqSml02nLiwKWZjIZGxkdQlC9XjfhIYonkGFSCTlUL4CHh4c2vIxrxJzed03w4JPhU9GxGc0y\nPDxsuA/hvtRp4gbRTurAIZ6FQRRGXpK84tHRkWZmZqycH+yNU49ZAeqAf0/7ckylr4oCKOZv8SnR\nFKVSScPDwxZcIBgICk43jejorVEsFi0C5lDkcjkLMq5fv65YLGYmbmhoyPhriURC9XrdSAFoKoIU\n2pRyvcAj1AFInelzZAPeT/6yb4QslUrZSfX0FjQZWoMCDagtwAiYWMJyiHkkpGE9MLieIlvMIZ2y\nMZeYZzQRJ/+kY8xr0DpsJP4gWB2CJHXqCsixkkCvVquanZ3VxMSE+VY03wOo5UBOT0/r4sWLWlxc\n1Orqqmq1mubn5+2ZERWC2/E7DnI8Hjd/zPt03B8BFWmzZrNptZt7e3uqVCp6+eWXe9rfvhEybl6S\nRTJSJwqCSEhKx+fwPBpO4EBqqdls2kmGwIffA6iL+cBf8WxRSe9yitGgRJ5sDMAvGg3+FaArjFfu\nGWyMFgUhtIdWDA8PW37WJ9u5Nny6VqulQqGgu3fvKpvNWlkcmvjw8FDpdFrVatWyJ/iHCDjugcf+\nCMDIsgwMDFjKbHh4WOl0WnNzcz3vb18IGRgQ9GuEjhN10pkHC/M9GXyA4MmI5D6npqZUKBR0+fJl\nM3cwIBAK/sUP8qwMn0jnYUsdZgaRHoMpmACC1hocHLSeGuG4bhLzT2EL2FWlUjGmCZVbUhsonpyc\ntDK5w8NDVatVpVIpZbNZ85N8Bf3+/r4mJyclyTQ82hDiIoEPh5Jnm0wmtb+/b1AMk+jwkXtdfSFk\nUqffBTlAHgAAp8e3MGUe2/GcM1B72A6kVxjulUqlzJQC5pJsxp9DuKQOI5awHWHGT8FEY9JgZUDG\nBMZAQ2DSPFbFPaNx0WwA1AwhAzOsVCpaXV3VwcGB0um0XRuQC1qLgl5f/kbwg4tBJmVra8sOEdqZ\ng+2fvQ92ell9I2Q40BRgIEhgOESOgLa8hmhO6mgV3o+KcrC24eFhFYtFnT59uosnBhSwublpld74\nLQi5L2bBkfepJbSw17rZbNait9nZ2a6Gwtwf7w8Q7bsPQTmPx+Oan59XKpXSysqKzTff2trS3Nyc\nnn76ab322mvW1cc3dMHBl2RazA9e9bw7T4r0fWF5Lw4g//a6+qJn7EkGqocqPHTB5tEJEHODpkB7\neD4/Go9iXzApkHA0Cw8O84o2QDhJwPsWCJgkX1KH7wMQi6YkXUMfDSANqEgnB6uOjIyYaZyZmbG6\nTaLNer2ukZERXb58WefPn7fP9fcidddPEDRFUWfiMJAFVCRfL0HNgG82g+Ddd0ImyXJipIjApdAY\n0GTISeJUEyz4ZrkeoKWcDZ/izp07dpp5aLQzkGTDS3GiiT79w0X74C9RahePx5XNZrvYIrzupK9H\nX/zd3V3zwbjnRCKhubk5LSws6PTp08YcWVlZsV4bs7OzNvQV39EfUIiTmLi1tTXLQgAek3LjnnwV\nF8+djpHQlSqVigHMva6+MJcUK/jaPwSFaBL/gUiMiBCN47UJf+9xNWjRoPwDAwM6f/68EomEbty4\n0dXWIJ1Oa319vSthf9Lxx59Ca+zs7CiTyejtt982/4s+rWhNSdY8pVQqmSDSj4KW8LAeTp8+rTNn\nzujtt9+2rtuArQsLC1YsDIhN+o2aTDQp/ckkGQCLq4BmpVGex/WoUicS5u/v29wlQoLQoGUwjfRl\n9SdW6p5m4nOOkroi1CiKdOvWLQ0NDen111/Xxz/+cWNceKQfqADeGKfcA7P+JKNJ0Y5wt9AS+EcI\nKdqgVCpZO3bMM19QmG7fvq18Pm/+GhHfqVOnLADASffM3SiKbPwONPSLFy/aQSPIajabSqVSRnrk\nICBAwEB0+ZbUBaP0uvpGyHyoD/Tgc4F+UBd0aPhWmEaPSkvqYn+2Wi1z+L/yla+oXC5rdnbWOGcn\nnWXMG6YDkBhBQ9g9rx8mK92D9vf3lc1mzdzEYjHduXPHTB6fSY7Tz86cmZnR9evX9Td/8zdWeEwt\nBO+Nu+DTT5QVok1JLfFaLATIP8+Wn6O1uB6f05yamlI83p6+MjMz86O2s2v1hZD5h8BDolIJVQ+2\n5Ok9+GgIhEe0YSFAkZmcnFQ6nVaxWNRv/MZvqFKpWDSLo42j32q1NDs7q6tXr3aN3fNRJgItyTj3\n3tcChwIDxMFfXV3tChjw+cDKtre3VavVlMvltLm5aR16hobaQ8XAstCwMCsAiRFwDh5QCdaBA/Lw\nww9rcXFR1WrVhA9fDU3neXNQ0+HT+frP91p9IWQej0HNo5a9OeRUcapJ02ByPIkRYeV90CL0c/Dg\nJcWv09PT1jGbKLZYLCqVSpmgE/V6waOy5+DgQMvLy4ayYy6Z0IY58gj76OioarVaV01krVYzzUmQ\nk0qlND09rUwmY7UKNKjzld1ANhTiUCsJBugZx5OTk1pfX7cAx2s0sDUyF9DFNzc3u3y8XlZfCJnU\n3ZgX0wOBUOpw5r1mISrkb8GYYDIsLCxYDnN/f9/wIU9IxKxgMtEMQ0NDmp+ft5pFHH0vXD7IQADr\n9boymYxpA3A36En4QjjmaFFfrIwJ5Xck+un16jludJBEI1LthabkmeAvUpz8+uuv2+H21U8cUmAe\nBKzRaGhubs4wyvvO8cdc4uyjhSTZTfFgcUARCoSLFAysDQTwrbfeMq1Evs73kkCwJdkG0ngum80q\nk8moWCx2FZLgxKO9YHWgNfCxADa9xsV8+UgarUPwwhcaNZPJWHM9tDZmj1QV6bFqtWrBUiwWU6VS\nUTKZNBxN6hA6vfBSrc+zIGOQSqUsVQfvD0Jpr6svhKzZbNo0EJx6+pOCzxA5+kQum4F/hs8Eer24\nuGiMW9I7lUrFTiGbD87l0zNUnJ8+fdqATI/QS53uQ950HB62J9aRW9zZ2bEDBHpPa4LNzU0z5dPT\n07px44bm5uY0ODio1dVV69bNtLf9/X2rd+QwnT592lJRd+7cMUCZXOj4+LiZZUkWWPFcoBoBaPOc\n0Xpo8eHhYVUqFdOO993k3larZYAkWokW5rFYTPV63VIy+DPeDJFkJl0Dik1NwNbWlsrlcheS7xPb\nbEa1WtXExEQX598XrXCtfJ6nBvliWCARcCqpw03jPoBs8JHi8bjRbdBwHBiaDJ89e9a08MjIiFKp\nlCYmJoxyg3PeanX6vkJhxxRyTQgT/hnwDb9HCPmZZ8qQweh19YWQNZtNraysWIKWOdfAEtwQ0aOf\nOMtDR5ux0XQa5P/AGlKnmBg/i02GscrvYrF2FxzPLzvp+GO2PFnx6OjIgExJFvFRlCt1t03HNHpM\nCsd+Z2fHTD3+5ejoqJlygOy9vb0ulopPp1GxLqlrKCtkAgIXXA5JXTUWHpQmCr3vmuA1Gg3dvXvX\nhkt5LQEw6ttXhhCsKigWaxfKMv0MOsvk5KRpQqpxEFxOpQctcZxp2kvnR0rZRkdHbQgWm8nGS536\nTADSjY0N6/ro6TUTExOWvSDxfxJqIG+JD0dQADOFtNPo6KjeeOMNYw23Wi37zGq1arhipVJRo9FQ\nNpuVJPMd0VAjIyN655137PBtbW0pmUzaNe7t7RldiHv1ifz3Wn0hZDj6nDbPteJn1DDSvRAzBKjI\naZyZmVEIQZubmxahgb/5fmQQAtlcz5Mi+sP0oCWg8hAEQNmRZNoNU1StVrsKYCAtMn+p1WopmUya\nmebaqtWqmTYcc1JBMIi53sHBQd25c0f1et2Yvl5wECSfO6U2wSfQ9/f3lcvltLS0pNHRUaNiE5Gm\nUimDWTig3jK81+oLIeOh4wMkk0kDYtPptMbHx43VgIbyf8sNT0xMKJvNWitMX7bmCx8ajYY1EfFC\nx/KOPMg+yeyxsbEuPwaqjE91tVotm62EMGxublqhLwIELseGAiDncjlVKhXTmlInezE8PKxEImHl\nc1DJIUOSfUgkEl0VSZhRcqT4nRwqGgVCy8ZtoT+axyl91VIvqy+ETGpvZiKRsOQwgCrl/fSJkDqD\nVTGbe3t7Wltb08WLF0378Rrf28wn1sfHx62VJWbOD1sgfYW/Fou1i0AIDKTuCbZsMHRu2lph5kul\nkoaGhgxDA2ZBOyaTSfOLCoVCF6+LiBQz7ecTQPlZW1uzZwHrBKwL3A0Oma9ZAH6B5oMQeQgJCpMk\ngzk+EGZsaLdY/7aklSiKfimEkJb0vySdlbQk6dejKKodv/bzkn5bUkvSv42i6MUf9d6jo6N68skn\nzWnm9IDK4/BLMj4X2qtarSqXy+kb3/iGTp8+3VUNjZlAU7VaLTO3QCb0KqPwg9NLBmFjY0Plctnw\nORrnkTsE0iClg2acmJjoan9AMIB2Q0A5TCG0e6qBpqOdyD1ubW3Z66HrZDKZrlYFvhGNJBNmqr9w\n7NHUY2NjVsQCOdQfEgTxZDtTD/L2st6PJvtdSVclTR3/nylxfxxC+P3j//9e6J4SNyfpH0IIl6If\n0csfwJH8oZ92iyMvyYQF7cRDef3117WwsKCHHnpIV69etcjIp3ygEmG+gCVIkMfjcXsNERYbQ79U\n8qY8cMwH0Sv+ysjIiNLptHUkAusiICHRTuDBajbb/c5gWHBdHgTmHkZHR5VIJLS6uqp0Ot2lkVut\ndgcjKN2YQE+U5EBJnUgXtoskC0Lwl7EQXM9PPHcZQjgl6TNq9+b/98c//mVJzxx//4Kkr0v6Pbkp\ncZIWQwhMiXv1h70/UAGpF26Iwo/19XW7KRxXUPMQgjY2NjQzM6NCoaBSqWS8dwBL/BooM5g/ojXo\nOZxohJjoNJlMmonh72hrSRoGDYJpGh8f17lz58zkMgEFDBBBRmty376PGUQAfCbMJm0MNjc3dfXq\nVV24cMH8K0wlZhTNhdkkS0CSm7wln4uWJWDCxyPQARj/IMzlFyT9R0mT7mc/akrcN9zrfuCUOL84\nRdlsVuPj46pUKpqdnbWIDMcb9iunf3JyUrVaTYlEQtvb27p27Zq2t7eVyWQs4sKxxSThY1A6xukm\n/0cE5fuzYhrQgr7HKjABAQCCS/EHG1sqlSxllkgkzNyS8OY60cJoEKAaL4D4i2tra7p586ZSqVRX\npZLU1opkOaROITRIPRobXxA+HAJIdM1hxhTjJ3Nwe1m9zFb6JUnrURS9FkJ45ge9JoqiKITwvqbE\nhRB+R9LvSG2T+NWvflWSujj8h4eHunLlii5evKjZ2VmDBxCqQqGgfD5vAKOPKtlQfDnQfUwnZf6D\ng4MqFAqG0aGhyD7U63UzIR4th47E5pFTBOpgzhI+4fz8/LtQfA4Qmg2fDsAZzhk0KLQKjveXv/xl\nXbp0ScVi0ajWXAMH5PhZvysaJHghGPDC6EcUtlotK/PjgFYqlZ94i/WnJf3rEMKnJY1Imgoh/Dcd\nT4mLomg1/BOmxEVR9OeS/vz4xqK1tbUu0iBmaWxsTDdu3FCz2R7dks/nNTExYWVv4F8g0Zhcpn14\nzRePx62eEfODNhsaGrJW7bAxMJF+gNXo6KgmJibMIZc6c8ShLJPwjqJI8/Pzpgnht6VSKTO9BwcH\nlq/EzFGJBHZGcCDJgo1sNqulpSUTLjA1f6g8Tsjh8GYOoBXh5bXr6+s2XIwUHn9PMQqdtHtZvcxW\n+rykzx8/zGck/Ycoiv5NCOG/6Cc0Jc6zGjxzE1bExsaGQghaXFzU7du3jTmAow1I68mJvqU5aDkq\nHlann9zBAyWlhbaA9kLEe/wcTLsNDg4qn8/baV9eXu7qi8bmwQEjYU75Wjwet0zCxsaGLly4oOvX\nrxtA61m/HsT1zY2np6etgzWmDwH1OKInXErq8gO9j8o902L07t27FqHi41ar1fcSHVs/Dk72x/oJ\nTYnjdGGOoDv7jWTDOKlESIODg2beQK9LpZKZRTCzVCqlTCZjTVPAh/hCWGFs+HbtDN2iCYok6zWx\nv7+vcrmsbDaro6MjfeYzn5Ek/dmf/ZkODg60urpqJp5qICJkhH59fd38o0ajYcl87p2hpwjMwMCA\nbt68qWQyqWeffVa1Ws1SVUzURcv73C7RIkLnhY/DhiDj/PsIlOdOENPrel9CFkXR19WOIhX9BKfE\n8UA9aArYKnV6ToAt+VSO77CDRkK1s4lHR0fWodBTphFUzyeLoshYqP6zGo2GCdr29raSyaT1n9jf\n39fa2pomJiZULpeVz+eVz+dVq9U0NjamRCLRxcfyGBO+Im2kYO6y8VKnBQN5WCCJdDotqS0k8P7J\nsxK8oKEwux4vYwG+HhwcmHZHw6HFeT8i8/uOfo2AsKHcACE75gKgkOiKnKB3asGKOJHAEVKnhpNN\nxORK3c2Rl5eXhY8I/sUC46rX60okErbp+ENs+Oc+9zm9+OKLWlpasjYJ3sx6XhzO/vj4uMrlspkz\nsDTfD4MggFI3WhHAGyPfiInG5PpeuNQcQEbw5rjRaJjLQFaB1yNgXF+vqy+ETOrgRZgofAuS1HCZ\nEB5PZ5E6AoR24uFB10YrIWRShxsmydgcCI0vMEYoyQKAsnPi8eGINovFonK5nB5//HHdvHmzi6NF\ng2AYuES5vo2Vd875O4Ib6kJh4HLI8GmBSLheScpms5bJ2NraMphC6qaRUxsgtQ9BrVazegOEjYNH\nNqOX1RdChuD4EyV1tzcHK/KCcVLYAGlp4QkeJXXqOuH2I7zeL/E9Lhjeymd5geNfNC5CQ1M70PV0\nOq1Lly7ptddes0wESXFJSqfTxnDw7RDwn3zqiWvAR6SDZC6XM1+U50YbT0w52ZRardZVR3p01O7a\nvbu7q3Q6bVPsxsbGjN6OGS6Xy5JkWrNarerNN9/saX/7Qsik7pJ5qbtmkp95gcIvIXfIKcanw/H3\n5g4thnY46bzynqD2vLcvXZM6JEdMoAcm8blgjXz2s59VNpvVt771LSUSCZXLZfO1FhcXzVXIZrOa\nnJzsGoFDxgLYhCAG4aAayqezyD74w1Uqlcwk46Ph4yF0cNKY1EeUTlaAjAhpNPzBXlbfCBkmxdcH\n4rP4zUVgMIfk8/hboirPRAUP4oH6aNabC0yy1D0THf/F402kiPy1E0wkEgnTdENDQ7p8+XJXUp/I\nFO1MEp5Wn5lMxhLWaDJwQfyr6elpZbNZE3I0H2bPd56keSDXyiEAluA5wMGjRuDg4EDT09MaGRlR\nNps1DR1FnSqyXlbfCBkwAhtD4xMcfyJPz1VHoNgsBAVzAzCKELEQSgTO887YDEwgfiLvCwlQ6kTF\nBBfxeFxbW1tmprPZrMrlshYXFw37Q7t6Dhq+JklpXz8KpEKPDADh8fFxPf/883rllVcUQtDu7q7N\n1uRwoc05OGhySvBA9cEiuSfgI+pO6ePP79PptJnPXlZfCBmbhT8FjuRbBmCegBvYKP4eAeRU7+zs\naHJy0px5Tp/XKJgMhMi/F1oPLQXxkdci4J62nUwmTTvAy5+ZmdETTzxhfV/RrCfvPYoi1Wo1pVIp\nCyZGRkaMT5dKpZRMJu0ZTU5OGkUbLefLAtFQUhuawSfd3d1VPp9XoVDoqonwkThZAMwqQUks1p51\n9X5oPlKfCBmChG8Bko324AQTIOAX8HC84096CSFDQIkAETCiVx81gsBL6jKraDlfpLG/v2/JZV7D\nOGgP8sbjcV24cMF8G5B/zBYRNBgUQkr7dGCSdDqtXC6ny5cvG71H6kA2ngTAwfEALNyTO0AaAAAN\nh0lEQVS0a9eu6fnnn9e3v/1tFQoFSd2zzKls4pkhiGg+NCTPqZfVF0LGZhIqJxKJrlModTYaf8Zz\npdh4FukPXx/oS9nQUvzsJN6GMPOZJ4MHqW0i8/m85UljsZg1ccH0U/kET16StfT018v/0dYclLGx\nMWWzWX3sYx/T9va2mayDgwNdvXpV58+fVyqVshE4aHKe08DAgLFLRkdHdfXqVd29e1dvvvmmkRU5\nqPDvGCyBoHltx0GhGqzX1RdCRoKZGd75fN4cW19ESvS5s7OjarWqjY0NSyj7Od3QfCh6zeVyXWYJ\nYfOCheZCI0qdnGqr1erSOphs4Aaf0MfkkJwGn/vUpz6lK1eumKnhWkHUqV8AyuF+mKW5tLRk5MRU\nKqUXX3zRcrZ0DYL1y7X6Ipt4PK5cLqeDgwO98MIL+uxnP2ukAJgnVFPRDw6MEcQfIgF+bq+rL4Rs\ncnJSzz33nHK5nJ3GRqNhvP5KpWJdcRiJd+rUKZtbziL6I3Bgs5eXl3X79m1du3bNzIGkrgQy1GzM\nMabaVyGhbaIo6sKecrmcJicnu5Lo9BCT2ofoZ37mZ7SwsKAQgt555x3dvHlT6+vrBuI2m00bmXjp\n0iUtLS1pcXFRkoyVkclktLKyYgTNK1euKBaLqVgsdmksb+bBukjMnz2ehfmVr3xFzz33nEXkDEbj\newSMXKjHMrEUva6+EDL8ilQqpXfeeUeSjFUBFMBGeN9LkvlfOzs7xo9nePulS5fUaLSHY126dEnP\nPvusNZ5bW1uzLocMJwWMJIJEsPAV0VpsYqPRUCaT0VNPPaX5+XnV63WLvmZnZ3V42J4VsLW1pamp\nKd25c8eoSqdPn9Yrr7zSFaUxgGx0dNQ09NmzZ82kra6uWu+LJ598Ui+99JJ+6qd+yhgguBCe50/0\n7ecX/Mqv/IodQAIFWhbg6Esyc4v1GBsbU7VaValU+slSfT6MRcR08+ZNM0++RRGOKebUV/nA6+J3\nUpvKc3h4qLW1tS7yIpsIp4uojMT5qVOnjIv/j//4j6pWq12Fs1IHd5LamuKJJ57QRz7yER0dHdmY\nQbCrWq1meN3CwoJKpZLlPHO5nD796U+rVCrp1VdfVb1eV7lctuh6dXXVIr3vf//7GhgY0F//9V/r\nV3/1VxVC0K/92q9pd3dXq6urVqUkdWaqw52DXjQ+Pm51DUTF5DbHxsasJI8KdjQb0TUm1GcLel19\n05jYN7HzYTUmSuqAp5lMxqIr/CMc9aOjI9VqNaMvQ+nxZgFajdSp4gZaGBkZUTKZ1M/93M/pN3/z\nN+2BotFgi9JD46GHHlI+n1epVDKIIJVK6dq1a8pkMsrn8/Za4AbfQPncuXN6+OGHTZsXCgUtLi4a\nhLG1taU7d+7oscce0+Liou7evWs+3MLCgiRZfwqYtWhDT8rENcDkTUxM6JlnntHMzExXMOOLnXFV\n+Dn8OrRpr6svhIz0CVXSkqyLjj95PsJhw6G/4JMgTICfPJwQgjWI48FRJAJNemNjw0wtHQ8ZseOr\nkSQZEo/z/fbbb2toaEi5XE7ZbFZf+9rXrD6yWq1qfX3dzBntzcfGxrS6umoNiGHUwo8DkKYONYT2\nzE4Cnenp6S48b2xszKJEWhMAMGMKp6amlEwmLTvgKeIwc+liBFYJYOzbzN93vTB87tHnLqGy8H80\n0srKSlfU49mjCCxakXSPZ2Ukk0lzhIkw/WfR++HOnTsWmXkfcHBw0DY+iiJ9/etfVzwe19zcnA4O\nDqwFZ6FQsG5Fa2trXQUoHAJ8vI985CO6du2abTrXQsEtY6NpQ1qtVvXOO+90gcs8I3hjmDvfl4wA\nZ3Jy0gIhYAk0LAO7uM/t7W1L/JM9wYL0svpGk/mJujTfpdqIdAvR0tHRkY3KIzrjNHNyfX7NY1KM\n+/PlbSDcfA6lc8x3xHR5bcZQ+dHRUf3hH/6h5ufnLUUjSZ/85Cf1jW98Q0tLSyZgtOaUOj0oMpmM\nwTZ+WAN4YL1eN5bus88+axPhisWiddKmMziTVahyB/zFRyMltbu7q3K5bKV94GVEpvhdUnumQCKR\nMOiCrpSZTKbn/e0bIctms4Z206uiUChYlEeXQT9+EDOIz+PrMdEU/v/QeUDd8d8IDhC+RCKhWCym\nXC6nhYUFuy4Ik9vb22o2m7p8+bL+7u/+ToVCQeVy2SZ4bG9v66d/+qdVrVaNvx+LxSwwoDqcDU4m\nk2o2m3rmmWfs/sHKCoWCisWiNjY29Fu/9Vuq1+uq1WpaXl7WysqK0brh3mMCDw8PVS6Xu3K+HCj8\nXlB8fDaYtVgRz0sDG8Osvp/VF0IWQtBrr71mPPZ6vW6Dpzw2Qwh+shcX/gLoOk4pbAOcYYDYyclJ\npVIpU/1EhMAgOzs7ltZ57LHHDBPjhPO5lUpFS0tLmpmZscGn0HFCaLfWJF8K9ueriYAHiI7PnTun\ny5cvW75ybW1NpVJJtVpNX/3qV20C782bN01LDQ62h1zQ8gqzj5vAs9vc3DRh4uvg4MAOB4Lq01JY\nBSAODguuSa+rL3wySXrooYdUrVaN20SbJWjDCBMhPqkQzBehuNQhGFL+5iPUVqvd/wIhIoLzLZJS\nqVSXID/33HNWrPHd737XBqH+xV/8hRYXFy2SI1AhdbOwsKB6vW7AJdXbCL0kExQoz5cuXTJ/Cpjh\ne9/7nrEwPve5z6nVaunGjRuanp7uKrzBUS8Wi3Zv+LrAMFgCNB/90jg8NDre2dkxvj+0bjQd/m2v\nq2+EbGVlxTSNL3jwLNGTJMKZmRlje3pfDGedroRSByKB4eBna/J+mC0gCsy01M5KjI+P62d/9mf1\nyiuvaH19vSvnurGxoeXlZe3t7Wl9fd34XH46CZwtBB7NQFceTDYjnuPxdovPy5cvq1KpaHl5ucuf\nlNRVxYSDT0kbrgQBAD4Y/ipRpYeLKB/0bBTSTyfrHXpdfSFk3KQvuPVFI6D2kBmz2awxPwkMqLbh\n4UdRp+kKwgQQC0AK7kMkRd4RzAxQFRQcP+/pp5/WzZs3defOHdMah4eHKhaL1vwukUiYE84hgTPv\ne5rBkuBniURCqVRKq6ur1rus1Wp350FQAKT5OdE5zxJhHR4etvQawQMRYrPZtCAAmKdardqBRfj5\nTEBZhBLiQi+rb4QMVe1vMoROZ0EPZfiiEswlxEWcfE+t4bV84R/xGRAFWVEUGXMUoafJHKbs7Nmz\nSqVSlgIaHGw3upudnTVfEL/GByVoMTQo14T2gdRIstwXGZPd4MCw+Z5oCQOYoAcLcHBwYJNKJFkg\nwPvgdwFzYFJ5xiMjI5Y053p6XX0hZCEE01SwE+hbAWrPaZdkRbtolkajYY1J8HcQPoTKl8JhpqDW\n+IZxMD1oL8oGokUhDDLQdGFhQeVy2XrW8jkQF/f39y1HyOYhPLw/wp5IJIwR4WsZvCmjebP/nWeU\nIMgwYCUZ6Dw0NKTNzU1JnQwJwu+7i5O7REPyc2CVVqtlTNpeVl9El5IM2+EUkhj3ptD3vUezgD5T\niIoD7VF/qUN/AaT1AgUSj4Zggyhbw9+jIQsRI8Q+2BuDg4OWMSD9xCGB0ozppRwO8wXVemhoyLoa\nIuyAtjjwUie4QdOgcXk+CBTXQa8ODhdmDz/Ld9gGWpE65E72yHdh7HX1hSYj3GbT2RyS2pIMYuCB\nkUCnGQjjZjjRAJrMA5C6qc6+hMxzxMg44MsQCHgOGn1jNzc3df78eW1tbXWV7nvgGGcbzei1KKZd\n6pAEJFmSHt8UH4rP90XKjBqkfnN9fd2EAq4ZZhULgSb0HRW9O4Fwj42NaWNjo6uBIAHGyUqvH7XC\n+yGffVArhFCStCOp9+qE/llZ3Z/XLf34174QRdH0e72oL4RMkkII346i6OP3+jre77pfr1v68K69\nb3yyB+uf73ogZA/WB776Scj+/F5fwD9x3a/XLX1I1943PtmD9c939ZMme7D+ma57LmQhhF8MIVwL\nIdwM7aETfbVCCF8KIayHEL7nfpYOIfx9COHG8b8p97vPH9/LtRDCL9ybq5ZCCKdDCF8LIXw/hHAl\nhPC79+zaPQj3YX9JGpD0jqTzkoYkfVfSI/fymn7ANf5LSR+T9D33s/8s6fePv/99SX9y/P0jx/cw\nLOnc8b0N3KPrnpX0sePvJyVdP76+D/3a77Ume0rSzSiKbkVR1JD0l2pPNOmbFUXRy5JOtnr+ZbWn\nsOj43+fdz/8yiqKDKIoWJTGN5UNfURStRlH0nePvt9QeWTSve3Dt91rI5iUtu/+/5/SSPlk/ahpL\n391PCOGspCclfVP34NrvtZDd9ytq25q+DdFDCBOS/rekfxdF0ab/3Yd17fdayHqaXtKHqxjaU1gU\n/gnTWD6sFUIYVFvA/nsURf/n+Mcf+rXfayH7v5IuhhDOhRCG1B5h+Lf3+Jp6WX+r9hQW6d3TWD4X\nQhgOIZxTD9NYPqgV2lSML0q6GkXRn7pfffjX3gfR26fVjnzekfQH9/p6fsD1/U9Jq5IO1fZTfltS\nRtJLkm5I+gdJaff6Pzi+l2uS/tU9vO5Pqm0K35T0xvHXp+/FtT9A/B+sD3zda3P5YP1/sB4I2YP1\nga8HQvZgfeDrgZA9WB/4eiBkD9YHvh4I2YP1ga8HQvZgfeDrgZA9WB/4+n+knOeRwisPbAAAAABJ\nRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f510db4d320>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import os\n",
"import cv2\n",
"from tqdm import tqdm\n",
"\n",
"DATADIR = \"../datasets/PetImages\" # 数据集的路径,请根据需要修改\n",
"\n",
"CATEGORIES = [\"Dog\", \"Cat\"]\n",
"\n",
"for category in CATEGORIES: \n",
" path = os.path.join(DATADIR,category) # 创建路径\n",
" for img in os.listdir(path): # 迭代遍历每个图片\n",
" img_array = cv2.imread(os.path.join(path,img) ,cv2.IMREAD_GRAYSCALE) # 转化成array\n",
" plt.imshow(img_array, cmap='gray') # 转换成图像展示\n",
" plt.show() # display!\n",
"\n",
" break # 我们作为演示只展示一张所以直接break了\n",
" break #同上"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"看下array中存储的图像数据"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[144 137 136 ..., 125 134 134]\n",
" [140 132 133 ..., 122 129 129]\n",
" [139 131 133 ..., 126 132 132]\n",
" ..., \n",
" [128 133 139 ..., 137 137 137]\n",
" [138 139 139 ..., 137 137 137]\n",
" [138 139 139 ..., 137 137 137]]\n"
]
}
],
"source": [
"print(img_array)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"看下array的形状"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(467, 235)\n"
]
}
],
"source": [
"print(img_array.shape)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"我们可以看到这是一张很大的图片并且拥有RGB3个通道这并不是我们想要的所以接下来我们将要进行的操作会使图像变小并且只剩下灰度"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\naaBfUAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f510830fda0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"IMG_SIZE = 50\n",
"\n",
"new_array = cv2.resize(img_array, (IMG_SIZE, IMG_SIZE))\n",
"plt.imshow(new_array, cmap='gray')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"SIZE设置成50有一些模糊尝试下100"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f510db1b048>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"IMG_SIZE = 100\n",
"new_array = cv2.resize(img_array, (IMG_SIZE, IMG_SIZE))\n",
"plt.imshow(new_array, cmap='gray')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"接下来我们将要创建所有这些培训数据但是首先我们应该留出一些图像进行最终测试。我将手动创建一个名为Testing的目录然后在其中创建2个目录一个用于Dog一个用于Cat。从这里开始我将把Dog和Cat的前15张图像移到训练版本中。确保移动它们而不是复制。我们将使用它进行最终测试。"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|██████████| 12501/12501 [00:37<00:00, 331.36it/s]\n",
"100%|██████████| 12501/12501 [00:35<00:00, 350.78it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"24946\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
}
],
"source": [
"training_data = []\n",
"\n",
"def create_training_data():\n",
" for category in CATEGORIES: \n",
"\n",
" path = os.path.join(DATADIR,category) \n",
" class_num = CATEGORIES.index(category) # 得到分类,其中 0=dog 1=cat\n",
"\n",
" for img in tqdm(os.listdir(path)): \n",
" try:\n",
" img_array = cv2.imread(os.path.join(path,img) ,cv2.IMREAD_GRAYSCALE) \n",
" new_array = cv2.resize(img_array, (IMG_SIZE, IMG_SIZE)) # 大小转换\n",
" training_data.append([new_array, class_num]) # 加入训练数据中\n",
" except Exception as e: # 为了保证输出是整洁的\n",
" pass\n",
" #except OSError as e:\n",
" # print(\"OSErrroBad img most likely\", e, os.path.join(path,img))\n",
" #except Exception as e:\n",
" # print(\"general exception\", e, os.path.join(path,img))\n",
"\n",
"create_training_data()\n",
"\n",
"print(len(training_data))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"我们有大约25,000张图片。\n",
"<br>我们要做的一件事是确保我们的数据是平衡的。在这个数据集的情况下,我可以看到数据集开始时是平衡的。平衡,我的意思是每个班级都有相同数量的例子(相同数量的狗和猫)。如果不平衡,您要么将类权重传递给模型,以便它可以适当地测量误差,或者通过将较大的集修剪为与较小集相同的大小来平衡样本。\n",
"<br>现在数据集中要么全是dog要么全是cat因此接下来要引入随机"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import random\n",
"\n",
"random.shuffle(training_data)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"我们的training_data是一个列表这意味着它是可变的所以它现在很好地改组了。我们可以通过迭代几个初始样本并打印出类来确认这一点"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0\n",
"1\n",
"0\n",
"1\n",
"1\n",
"0\n",
"1\n",
"0\n",
"1\n",
"0\n"
]
}
],
"source": [
"for sample in training_data[:10]:\n",
" print(sample[1])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"现在可以看到已经是0、1交替了我们可以开始我们的模型了"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[[[ 95]\n",
" [ 79]\n",
" [107]\n",
" ..., \n",
" [ 31]\n",
" [ 59]\n",
" [ 75]]\n",
"\n",
" [[ 56]\n",
" [116]\n",
" [104]\n",
" ..., \n",
" [ 84]\n",
" [ 33]\n",
" [ 43]]\n",
"\n",
" [[ 23]\n",
" [ 54]\n",
" [ 45]\n",
" ..., \n",
" [ 97]\n",
" [ 46]\n",
" [ 90]]\n",
"\n",
" ..., \n",
" [[179]\n",
" [101]\n",
" [120]\n",
" ..., \n",
" [166]\n",
" [150]\n",
" [146]]\n",
"\n",
" [[128]\n",
" [103]\n",
" [127]\n",
" ..., \n",
" [153]\n",
" [112]\n",
" [142]]\n",
"\n",
" [[145]\n",
" [117]\n",
" [158]\n",
" ..., \n",
" [125]\n",
" [ 79]\n",
" [145]]]]\n"
]
}
],
"source": [
"X = []\n",
"y = []\n",
"\n",
"for features,label in training_data:\n",
" X.append(features)\n",
" y.append(label)\n",
"\n",
"print(X[0].reshape(-1, IMG_SIZE, IMG_SIZE, 1))\n",
"\n",
"X = np.array(X).reshape(-1, IMG_SIZE, IMG_SIZE, 1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"让我们保存这些数据,这样我们就不需要每次想要使用神经网络模型时继续计算它:"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"import pickle\n",
"\n",
"pickle_out = open(\"../datasets/X.pickle\",\"wb\")\n",
"pickle.dump(X, pickle_out)\n",
"pickle_out.close()\n",
"\n",
"pickle_out = open(\"../datasets/y.pickle\",\"wb\")\n",
"pickle.dump(y, pickle_out)\n",
"pickle_out.close()\n",
"# We can always load it in to our current script, or a totally new one by doing:\n",
"\n",
"pickle_in = open(\"../datasets/X.pickle\",\"rb\")\n",
"X = pickle.load(pickle_in)\n",
"\n",
"pickle_in = open(\"../datasets/y.pickle\",\"rb\")\n",
"y = pickle.load(pickle_in)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"现在我们已经拿出了数据集,我们已经准备好覆盖卷积神经网络,并用我们的数据进行分类。\n",
"<br>以上就是这次的关于数据集操作的全部任务。"
]
}
],
"metadata": {
"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.6.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}