{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Building a simple neural-network with Keras" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/opt/anaconda3/envs/py35gpu/lib/python3.5/site-packages/h5py/__init__.py:34: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.\n", " from ._conv import register_converters as _register_converters\n", "Using TensorFlow backend.\n" ] } ], "source": [ "import keras\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "plt.rcParams['figure.figsize'] = (7,7) # Make the figures a bit bigger\n", "\n", "from keras.datasets import mnist\n", "from keras.models import Sequential\n", "from keras.layers.core import Dense, Dropout, Activation\n", "from keras.utils import np_utils" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Load training data" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "X_train original shape (60000, 28, 28)\n", "y_train original shape (60000,)\n" ] } ], "source": [ "n_classes = 10\n", "\n", "# the data, shuffled and split between tran and test sets\n", "(X_train, y_train), (X_test, y_test) = mnist.load_data()\n", "print(\"X_train original shape\", X_train.shape)\n", "print(\"y_train original shape\", y_train.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's look at some examples of the training data" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for i in range(9):\n", " plt.subplot(3,3,i+1)\n", " plt.tight_layout()\n", " plt.imshow(X_train[i], cmap='gray', interpolation='none')\n", " plt.title(\"Class {}\".format(y_train[i]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Format the data for training" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Training matrix shape (60000, 784)\n", "Testing matrix shape (10000, 784)\n" ] } ], "source": [ "X_train = X_train.reshape(60000, 784) # convert 28x28 image becomes a single 784 dimensional vector. \n", "X_test = X_test.reshape(10000, 784)\n", "X_train = X_train.astype('float32')\n", "X_test = X_test.astype('float32')\n", "X_train /= 255 # scale the inputs to be in the range [0-1] rather than [0-255]\n", "X_test /= 255\n", "print(\"Training matrix shape\", X_train.shape)\n", "print(\"Testing matrix shape\", X_test.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Convert labels to probability vectors\n", "\n", "```\n", "0 -> [1, 0, 0, 0, 0, 0, 0, 0, 0]\n", "1 -> [0, 1, 0, 0, 0, 0, 0, 0, 0]\n", "2 -> [0, 0, 1, 0, 0, 0, 0, 0, 0]\n", "etc.\n", "```" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "Y_train = np_utils.to_categorical(y_train, n_classes)\n", "Y_test = np_utils.to_categorical(y_test, n_classes)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Build simple 3 layer fully connected network." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "model = Sequential()\n", "model.add(Dense(512, input_shape=(784,), activation='relu')) \n", "model.add(Dropout(0.2))\n", "model.add(Dense(512, activation='relu'))\n", "model.add(Dropout(0.2))\n", "model.add(Dense(n_classes, activation='softmax'))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Compile the model\n", "\n", "\n", "* Define\n", " + loss function (for available options see [https://keras.io/losses/](https://keras.io/losses/))\n", " + optimizer (for available options see [https://keras.io/optimizers/](https://keras.io/optimizers/))\n", " + metrics to monitor during training (for available options see [https://keras.io/metrics/](https://keras.io/metrics/))" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "model.compile(loss='categorical_crossentropy', optimizer=keras.optimizers.Adadelta(), metrics=['accuracy'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## View model summary" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "dense_1 (Dense) (None, 512) 401920 \n", "_________________________________________________________________\n", "dropout_1 (Dropout) (None, 512) 0 \n", "_________________________________________________________________\n", "dense_2 (Dense) (None, 512) 262656 \n", "_________________________________________________________________\n", "dropout_2 (Dropout) (None, 512) 0 \n", "_________________________________________________________________\n", "dense_3 (Dense) (None, 10) 5130 \n", "=================================================================\n", "Total params: 669,706\n", "Trainable params: 669,706\n", "Non-trainable params: 0\n", "_________________________________________________________________\n", "None\n" ] } ], "source": [ "print(model.summary())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Train the model" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train on 60000 samples, validate on 10000 samples\n", "Epoch 1/10\n", "60000/60000 [==============================] - 3s 46us/step - loss: 0.2894 - acc: 0.9121 - val_loss: 0.1388 - val_acc: 0.9560\n", "Epoch 2/10\n", "60000/60000 [==============================] - 2s 35us/step - loss: 0.1154 - acc: 0.9648 - val_loss: 0.0806 - val_acc: 0.9739\n", "Epoch 3/10\n", "60000/60000 [==============================] - 2s 36us/step - loss: 0.0781 - acc: 0.9760 - val_loss: 0.0776 - val_acc: 0.9763\n", "Epoch 4/10\n", "60000/60000 [==============================] - 2s 35us/step - loss: 0.0602 - acc: 0.9807 - val_loss: 0.0638 - val_acc: 0.9804\n", "Epoch 5/10\n", "60000/60000 [==============================] - 2s 35us/step - loss: 0.0487 - acc: 0.9850 - val_loss: 0.0586 - val_acc: 0.9812\n", "Epoch 6/10\n", "60000/60000 [==============================] - 3s 58us/step - loss: 0.0397 - acc: 0.9873 - val_loss: 0.0621 - val_acc: 0.9811\n", "Epoch 7/10\n", "60000/60000 [==============================] - 2s 35us/step - loss: 0.0331 - acc: 0.9890 - val_loss: 0.0622 - val_acc: 0.9825\n", "Epoch 8/10\n", "60000/60000 [==============================] - 2s 35us/step - loss: 0.0271 - acc: 0.9913 - val_loss: 0.0630 - val_acc: 0.9821\n", "Epoch 9/10\n", "60000/60000 [==============================] - 2s 35us/step - loss: 0.0233 - acc: 0.9927 - val_loss: 0.0596 - val_acc: 0.9825\n", "Epoch 10/10\n", "60000/60000 [==============================] - 2s 35us/step - loss: 0.0212 - acc: 0.9930 - val_loss: 0.0587 - val_acc: 0.9837\n" ] } ], "source": [ "history=model.fit(X_train, Y_train,\n", " batch_size=128, epochs=10, verbose=1,\n", " validation_data=(X_test, Y_test))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Inspect training history" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "dict_keys(['loss', 'val_loss', 'val_acc', 'acc'])\n" ] } ], "source": [ "print(history.history.keys())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### summarize history for accuracy" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nXophRER03r8BTLs2Upb42hAAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(history.history['acc'])\n", "plt.plot(history.history['val_acc'])\n", "plt.title('model accuracy')\n", "plt.ylabel('accuracy')\n", "plt.xlabel('epoch')\n", "plt.legend(['train', 'test'], loc='upper left')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### summarize history for loss" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(history.history['loss'])\n", "plt.plot(history.history['val_loss'])\n", "plt.title('model loss')\n", "plt.ylabel('loss')\n", "plt.xlabel('epoch')\n", "plt.legend(['train', 'test'], loc='upper left')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Evaluate model performance" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Test score: 0.0586617251748381\n", "Test accuracy: 0.9837\n" ] } ], "source": [ "score = model.evaluate(X_test, Y_test, verbose=0)\n", "print('Test score:', score[0]) # i.e. loss\n", "print('Test accuracy:', score[1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Inspecting the output\n", "\n", "It's always a good idea to inspect the output and make sure everything looks sane. Here we'll look at some examples it gets right, and some examples it gets wrong." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# The predict_classes function outputs the highest probability class\n", "# according to the trained classifier for each input example.\n", "predicted_classes = model.predict_classes(X_test)\n", "\n", "# Check which items we got right / wrong\n", "correct_indices = np.nonzero(predicted_classes == y_test)[0]\n", "incorrect_indices = np.nonzero(predicted_classes != y_test)[0]" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nEgAdQw5M/KYQANCpUyevjn8f+h//+EdZ2yTV1bVr18Sw/fbbz6s33nhjr162bJlXX3PNNYl5rF69\nugStE8ls33339eqf/vSniXHeeustr54wYUJZ2xQqbSGLiIgEQB2yiIhIANQhi4iIBEDHkKvsu9/9\nrldfeumlWac5+mj/NqvTpk0raZskLA899FBiWMeOHTNOc88993j1nDlzStomkVwNGjTIqzt06JAY\n55lnnvHqzz77rKxtCpW2kEVERAKgDllERCQA6pBFREQCkMvtF+8iuYTktJRhV5FcSHKq+xlc3maK\nKIsSDmVRyiGXk7pGA7gVQPzq9Deb2Y0lb1GDGTzY/59t3bp1YpwXXnjBq1999dWytilgo9EAWTzy\nyCO9es8998w6zYsvvujVV155ZSmbJEmj0QBZLIU99tjDq80sMc6DDz5YqeYELesWsplNAqBbB0nV\nKYsSCmVRyqGYY8jnkHzH7bpp39JIJIeTnExychHLEslEWZRQKItSsEI75JEAdgDQF0ATgN+1NKKZ\njTKz/mbWv8BliWSiLEoolEUpSkEXBjGzxc2PSd4B4ImStajOtWnTxqsPOeQQr/7iiy8S08SPB375\n5Zelb1iNqocsxi/ycdlll3l1uvMK4qZOnerVunFE5dVDFkth66239urvfe97Xp3uZjiPPPJIWdtU\nKwraQiaZevuZYwDoUlFSFcqihEJZlGJl3UImOQ7AQABbkVwA4EoAA0n2BWAA5gE4vYxtFAGgLEo4\nlEUph6wdspmdkGbwnWVoi0hGyqKEQlmUctDNJSrsoosu8up+/fp5dfwi6wDwt7/9raxtkuq64IIL\nvHrvvffOOs2jjz7q1fresYTi5JNP9urOnTt79dNPP13B1tQWXTpTREQkAOqQRUREAqAOWUREJADq\nkEVERAKgk7rK6LDDDksM++Uvf+nVn3zyiVdfffXVZW2ThOfnP/953tOcffbZXq0LgUgoevTokfH5\njz/+uEItqT3aQhYREQmAOmQREZEAqEMWEREJgI4hl1D8JgG///3vE+O0atXKq5966imvfu2110rf\nMKk7HTp08OpS3HBk5cqVWecZv9HFFltskXW+W265pVcXcsz8q6++8upLLrkkMc6nn36a93yl9A4/\n/PCMzz/++OMVaknt0RayiIhIANQhi4iIBCBrh0yyO8mJJGeQnE7yPDe8A8kJJN93v9uXv7nSyJRF\n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\naWbPnl3ahlVQLWexEJtvvrlXX3fddV7dp08frx40aFBiHnVwzkCQGi2Lcb169fLqs846y6tPO+20\nxDRt2rTxapKlbxiAnXbaqSzzLZWCd1mTbEtys+bHAA4CkLzMiUiZKYsSCmVRilHMFnIXAI+4TzIb\nAvizmSVP3RUpP2VRQqEsSsEK7pDNbC6APUrYFpGCKIsSCmVRitEQN5fYaqutEsPuu+8+r+7QoYNX\njxgxIjHNOeecU9qGlcgVV1yRGLb99tt79emnn+7VtXy8uNGceOKJiWHXXnutV3fv3j3jPOLHnAHg\no48+Kq5hIml069bNq88777yqtGPWrFmJYfFzhUKj7yGLiIgEQB2yiIhIANQhi4iIBEAdsoiISABo\nVrmLxFTrijQHHXRQYtjTTz+dcZqtt946MWzp0qUla1Mxdt11V69+9913E+M88sgjXn3yySd79apV\nq0reLmdKLdzdJuSrI8VPinnrrbcS43Ts2NGrs/0fx09iBICzzz7bq5cvX55rE2uCmZXn6hIlFlIW\n4yfAxk/I+utf/5qYJn6jmn333dern3rqKa9es2ZNYh5t27b16ueee86rp01LfpX79ddf9+r4/8na\ntWsT06RbdiXkmkVtIYuIiARAHbKIiEgA1CGLiIgEoC4vDNK5c2evPvbYY7NOc+qpp3p1KMeLgeQx\n4+effz7rNPFjyGU8ZiwlduGFF3p1/KI1hTj++OMTww455BCvjl9s5A9/+ENimi+++KLotkgY4sdt\ngeSx2z328C86dswxx2Sd72uvvebVe+65p1enuynPdttt59ULFizw6vXr12ddbj3QFrKIiEgA1CGL\niIgEIGuHTPIukktITksZ1oHkBJLvu9/tM81DpBSURQmFsijlkPV7yCT3B7AawN1m1scNuwHAcjO7\nnuSlANqb2SVZF1ah79uNHTvWq3/yk58kxpkyZYpXH3DAAV5dre+rpXPGGWd4dfzGF6NHj05Mc8op\np5SzSZmU7XvItZjFXPTo0cOr33nnHa9u165dYpr4d88XL17s1YMGDcq7HUuWLPHqfv36JcZZtGhR\n3vOtlnJ+D7kWs7jRRht59QMPPJAY5/DDD/fq3/zmN1593XXXJab59NNPS9C6+lay7yGb2SQA8SsG\nHAVgjHs8BsDRebVOpADKooRCWZRyKPQs6y5m1uQeL0J0U+60SA4HMLzA5YhkoyxKKJRFKUrRX3sy\nM8u0y8XMRgEYBYS1m1Dqj7IooVAWpRCFnmW9mGRXAHC/l2QZX6RclEUJhbIoRSl0C3k8gGEArne/\nHw2fpGEAAA3kSURBVCtZi0ogfqJaui+V/+tf//Lqal3woE2bNl592WWXJcY588wzvTq+flU8gSsE\nQWcxF3379vXqzTbbzKtffvnlxDTxkxA32WQTrz7hhBO8Ol2uevXq5dXxG6o89ljypTz00EO9ut5u\nSFGkoLIYPxnwF7/4hVfHT+ACgGXLlnn1jTfe6NU6gau8cvna0zgArwLYmeQCkqciCtwPSL4PYJCr\nRcpKWZRQKItSDlm3kM3shBaeOrDEbRHJSFmUUCiLUg66UpeIiEgA6vLmErk47LDDvDp+UfUVK1Yk\nphk5cmTRy40f+xs4cKBXx2/unc6DDz5YdDskHBtvvLFXx88RuPnmm7PO47PPPvPqP/3pT149ZMiQ\nxDQ77LBDxnmmO16om0vUjqOP9r8Gfemll3r1Bx98kJjme9/7nlevXLmy9A2TFmkLWUREJADqkEVE\nRAKgDllERCQAdXkM+ZZbbvHq73//+4lxttlmG6/ef//9vZpMXgv8yCOPLLpt8flmu7kHAMydO9er\n032nVGpX/DvDcfHzHQDg0UcfzWsZ/fvnf7+P+I3mAWD16tV5z0eqY7/99sv4/FtvvZUYtmDBgnI1\nR3KgLWQREZEAqEMWEREJgDpkERGRADCXY5glW1iV7mrSvn37xLD49YMPOeQQr77ooosS08Rv4D5m\nzJjEONmMHTvWq99+++2s09xzzz1ePWzYsLyXW0FTzCz/A5YVFtIddo477jivHjdunFe/++67iWmG\nDh3q1bvttptXH3PMMV6d7nvIn3zyiVfH/0/SXac6fq7FjBkzEuOEItebwldbubIYf7/q2LGjV3/+\n+eeJaf77v//bq+PXM586dWqJWtdYcs2itpBFREQCoA5ZREQkAOqQRUREApDL7RfvIrmE5LSUYVeR\nXEhyqvsZXN5miiiLEg5lUcoh60ldJPcHsBrA3WbWxw27CsBqM7sx07Rp5hXMiTTVEr+g/+zZs706\n3UkTBx98sFcvXbq09A0rnbKd1FWvWezQoYNXxzOxxRZbJKbJ9wIzzz//fGLYWWed5dVPPPGEV++4\n446Jae644w6vPuOMMzIut5rKeVJXLWQxnon169fnPY/4NLfffntinPgFZLbbbjuvjud5+vTpWZe7\n6667evWrr76aGKeWLmJSspO6zGwSgOTpliIVpixKKJRFKYdijiGfQ/Idt+sm+b0ih+RwkpNJTi5i\nWSKZKIsSCmVRClZohzwSwA4A+gJoAvC7lkY0s1Fm1r8WvpsqNUlZlFAoi1KUgm4uYWaLmx+TvAPA\nExlGlxT/9V//5dXx4zyXXHJJYprAjxlXVT1kMX4BjviFQh588MHENOmOK6f6wx/+4NXpcvXZZ595\n9cMPP+zV8RvaA8nzGXr16uXVc+bMydiuehZaFm+80T+U/fOf/zzveWywgb/NduaZZybGSTes1NK9\nB7744oteHb9YTi0qaAuZZNeU8hgA01oaV6SclEUJhbIoxcq6hUxyHICBALYiuQDAlQAGkuwLwADM\nA3B6GdsoAkBZlHAoi1IOWTtkM0t3s9Y7y9AWkYyURQmFsijl0BA3l6iWdBf0v++++7x61apVXv39\n738/Mc2bb75Z2oaVl24uUWKDBg1KDPvxj3/s1StWrPDq+LkKq1evzrqcNm3aePWf//znxDhHHnmk\nV4d845NGv7lEq1atvLpfv35ene7vu+GG/jZa9+7dvTp+TLma4n3XVVdd5dXXXHNNBVuTmW4uISIi\nUkPUIYuIiARAHbKIiEgA1CGLiIgEoKALg0huDj300KzjxC/oX2MncEkFpLsxRLphxVq7dq1Xx09A\nBJIndcVPQozfKANIXvhEKuOrr77y6smT/at07rTTTlnnceCBB3p169atE+PET6bae++9c2xhceI3\nWNlrr70qstxy0hayiIhIANQhi4iIBEAdsoiISAB0DLmM0h1DXrNmjVf/7nct3hBGpKruv//+xLD4\nMeTjjz/eq88+++zENFdffXVpGyYV88ILL2Qdp2/fvl4dP4a8bt06r/7Tn/6UmMcdd9zh1eeff75X\nxy+EU6+0hSwiIhIAdcgiIiIByNohk+xOciLJGSSnkzzPDe9AcgLJ993v9uVvrjQyZVFCoSxKOWS9\nuYS7x2dXM3uT5GYApgA4GsDJAJab2fUkLwXQ3sySd0H351UzF/QvxBlnnOHVI0aMSIyzZMkSr956\n663L2qYqKNvNJZTF6osfL/zrX//q1Ztssklimm9/+9te/d5775W+YWmU8+YSyuI39txzT69+4403\n8p7HxIkTvXrgwIFeHf/OcTrx99tzzjkn73aUS8luLmFmTWb2pnu8CsBMANsCOArAGDfaGERhFCkb\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nFPuR9UAzW0xyMwCTSc43s2mpK5jZWABjAZ2zVcpKWZRQKItSkKI6ZDNb7P5dRnIigF0BTMu8VdP2\ny1/+0qvjJ/247rrrGrM5NaOWs9ihQ4fEsj59+nj1Mccck3Ef6cbtCrmwzJIlS7z6hz/8oVc3lbG+\nTGo5i7lo0cLvVrbffnuv7tWrV2KbeBbfeustrz722GNL1LqwFfyRNck2JNvV3wawP4DZpWqYSK6U\nRQmFsijFKOYdchcAE0nW7+deM3u6JK0SyY+yKKFQFqVgBXfIZrYAwPdL2BaRgiiLEgplUYqhi0uU\nUbrv1g0fPtyr498xjo+dSNMTHw++4IILEutsu+22ee0z3Xjxa6+95tUtW7b06u222y6xTZcuXbx6\n880392qNIcuoUaO8+sQTT8x7H59++qlXL1q0qKg2VQt9D1lERCQA6pBFREQCoA5ZREQkAOqQRURE\nAqBJXWW0zz77JJbFT/Jw/vnnN1ZzJFDDhg3z6ltuucWrN9poo8Q2y5cv9+pHHnnEq2fNmuXVL7zw\nQmIf8QlY8RM6fPDBB4lt4m05+uijvfqll15KbCO1rVu3bl49YsQIr3ZfAftWs2bJ94Hr16/36t/+\n9rclal110TtkERGRAKhDFhERCYA6ZBERkQBoDLmENttsM68+99xzE+ssXbrUq8eNG1fOJklgWrdu\nnVgWH3ObMWOGV48ePTqxzb/+9S+vXrt2bdFtSzdWnc0DDzxQ9HGlusVPgPTd737Xq+MnpYmPFwPA\npEmTvHrmzJklal110TtkERGRAKhDFhERCUDWDpnkHSSXkZydsqwTyckk33b/dixvM0WURQmHsijl\nkMsY8jgANwK4M2XZeQCmmNmVJM9zdXLAtIk56KCDvHqbbbZJrPPQQw95dXxMOd04Xvz7oatWrSq0\nidVuHKo8i2vWrEksS/d99Uo4++yzvTpdFt955x2vnj9/flnbFLBxqPIslsrq1au9On5hiE022STr\nPn7wgx94dd++fb16zpw5BbauumR9h2xm0wB8Fls8BMB4d3s8gKElbpdIgrIooVAWpRwKHUPuYmZ1\n7vYSRBflFqkEZVFCoSxKUYr+2pOZGcnkxVYdkiMBjCz2OCLZKIsSCmVRClHoO+SlJLsCgPt3WUMr\nmtlYMxtgZgMKPJZIJsqihEJZlKIU+g75cQDDAVzp/n2sZC2qIm3atPHqX/ziF1m3ueqqq7w6PmHr\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "for i, correct in enumerate(correct_indices[:9]):\n", " plt.subplot(3,3,i+1)\n", " plt.tight_layout()\n", " plt.imshow(X_test[correct].reshape(28,28), cmap='gray', interpolation='none')\n", " plt.title(\"Predicted {}, Class {}\".format(predicted_classes[correct], y_test[correct]))\n", " \n", "plt.figure()\n", "for i, incorrect in enumerate(incorrect_indices[:9]):\n", " plt.subplot(3,3,i+1)\n", " plt.tight_layout()\n", " plt.imshow(X_test[incorrect].reshape(28,28), cmap='gray', interpolation='none')\n", " plt.title(\"Predicted {}, Class {}\".format(predicted_classes[incorrect], y_test[incorrect]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Save model for future use" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from keras.models import load_model\n", "\n", "model.save('mnist_model.h5') # creates a HDF5 file 'my_model.h5'\n", "del model # deletes the existing model\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Load saved model" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# returns a compiled model\n", "# identical to the previous one\n", "model = load_model('mnist_model.h5')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Use the model again" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": true }, "outputs": [], "source": [ "predicted_classes = model.predict_classes(X_test)\n", "del model # delete it" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Now let's create a model using convolutional layers" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from keras.layers import Conv2D, MaxPooling2D, Flatten\n", "from keras import backend as K" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Prepare data" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "x_train shape: (60000, 28, 28, 1)\n", "60000 train samples\n", "10000 test samples\n" ] } ], "source": [ "# the data, split between train and test sets\n", "(x_train, y_train), (x_test, y_test) = mnist.load_data()\n", "\n", "# input image dimensions\n", "_, img_rows, img_cols = x_train.shape\n", "\n", "if K.image_data_format() == 'channels_first':\n", " x_train = x_train.reshape(x_train.shape[0], 1, img_rows, img_cols)\n", " x_test = x_test.reshape(x_test.shape[0], 1, img_rows, img_cols)\n", " input_shape = (1, img_rows, img_cols)\n", "else:\n", " x_train = x_train.reshape(x_train.shape[0], img_rows, img_cols, 1)\n", " x_test = x_test.reshape(x_test.shape[0], img_rows, img_cols, 1)\n", " input_shape = (img_rows, img_cols, 1)\n", "\n", "x_train = x_train.astype('float32')\n", "x_test = x_test.astype('float32')\n", "x_train /= 255\n", "x_test /= 255\n", "print('x_train shape:', x_train.shape)\n", "print(x_train.shape[0], 'train samples')\n", "print(x_test.shape[0], 'test samples')\n", "\n", "# convert class vectors to binary class matrices\n", "y_train = keras.utils.to_categorical(y_train, n_classes)\n", "y_test = keras.utils.to_categorical(y_test, n_classes)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Define the model" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": true }, "outputs": [], "source": [ "model = Sequential()\n", "model.add(Conv2D(64, kernel_size=(3, 3),\n", " activation='relu',\n", " input_shape=input_shape))\n", "model.add(Dropout(0.2))\n", "model.add(MaxPooling2D(pool_size=(2, 2)))\n", "model.add(Conv2D(64, (3, 3), activation='relu'))\n", "model.add(Dropout(0.2))\n", "model.add(MaxPooling2D(pool_size=(2, 2)))\n", "model.add(Conv2D(64, (3, 3), activation='relu'))\n", "model.add(Dropout(0.2))\n", "model.add(Flatten())\n", "model.add(Dense(128, activation='relu'))\n", "model.add(Dropout(0.2))\n", "model.add(Dense(n_classes, activation='softmax'))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Compile" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "conv2d_1 (Conv2D) (None, 26, 26, 64) 640 \n", "_________________________________________________________________\n", "dropout_3 (Dropout) (None, 26, 26, 64) 0 \n", "_________________________________________________________________\n", "max_pooling2d_1 (MaxPooling2 (None, 13, 13, 64) 0 \n", "_________________________________________________________________\n", "conv2d_2 (Conv2D) (None, 11, 11, 64) 36928 \n", "_________________________________________________________________\n", "dropout_4 (Dropout) (None, 11, 11, 64) 0 \n", "_________________________________________________________________\n", "max_pooling2d_2 (MaxPooling2 (None, 5, 5, 64) 0 \n", "_________________________________________________________________\n", "conv2d_3 (Conv2D) (None, 3, 3, 64) 36928 \n", "_________________________________________________________________\n", "dropout_5 (Dropout) (None, 3, 3, 64) 0 \n", "_________________________________________________________________\n", "flatten_1 (Flatten) (None, 576) 0 \n", "_________________________________________________________________\n", "dense_4 (Dense) (None, 128) 73856 \n", "_________________________________________________________________\n", "dropout_6 (Dropout) (None, 128) 0 \n", "_________________________________________________________________\n", "dense_5 (Dense) (None, 10) 1290 \n", "=================================================================\n", "Total params: 149,642\n", "Trainable params: 149,642\n", "Non-trainable params: 0\n", "_________________________________________________________________\n", "None\n" ] } ], "source": [ "model.compile(loss=keras.losses.categorical_crossentropy,\n", " optimizer=keras.optimizers.Adadelta(),\n", " metrics=['accuracy'])\n", "print(model.summary())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Train" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train on 60000 samples, validate on 10000 samples\n", "Epoch 1/10\n", "60000/60000 [==============================] - 5s 84us/step - loss: 0.2670 - acc: 0.9150 - val_loss: 0.0711 - val_acc: 0.9813\n", "Epoch 2/10\n", "60000/60000 [==============================] - 4s 71us/step - loss: 0.0736 - acc: 0.9771 - val_loss: 0.0421 - val_acc: 0.9893\n", "Epoch 3/10\n", "60000/60000 [==============================] - 4s 71us/step - loss: 0.0546 - acc: 0.9831 - val_loss: 0.0422 - val_acc: 0.9897\n", "Epoch 4/10\n", "60000/60000 [==============================] - 4s 71us/step - loss: 0.0420 - acc: 0.9871 - val_loss: 0.0427 - val_acc: 0.9881\n", "Epoch 5/10\n", "60000/60000 [==============================] - 6s 93us/step - loss: 0.0354 - acc: 0.9888 - val_loss: 0.0262 - val_acc: 0.9918\n", "Epoch 6/10\n", "60000/60000 [==============================] - 4s 71us/step - loss: 0.0318 - acc: 0.9904 - val_loss: 0.0251 - val_acc: 0.9925\n", "Epoch 7/10\n", "60000/60000 [==============================] - 4s 71us/step - loss: 0.0281 - acc: 0.9913 - val_loss: 0.0220 - val_acc: 0.9920\n", "Epoch 8/10\n", "60000/60000 [==============================] - 4s 71us/step - loss: 0.0261 - acc: 0.9921 - val_loss: 0.0219 - val_acc: 0.9935\n", "Epoch 9/10\n", "60000/60000 [==============================] - 4s 71us/step - loss: 0.0225 - acc: 0.9931 - val_loss: 0.0198 - val_acc: 0.9931\n", "Epoch 10/10\n", "60000/60000 [==============================] - 4s 71us/step - loss: 0.0224 - acc: 0.9929 - val_loss: 0.0207 - val_acc: 0.9932\n" ] } ], "source": [ "history=model.fit(x_train, y_train,\n", " batch_size=128,\n", " epochs=10,\n", " verbose=1,\n", " validation_data=(x_test, y_test))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Inspect learning curves" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n3gK8EhHnAWcALQffxTK5upmZmR2JbAO7MyI6ASRVpg/qOCV3zSo+rm5mZmZHItvAbpJUR3Lu+meS\nfgy8krtmFRdXNzMzsyOV7UVnH0wn/1rSA8BkoCgqjx0Nrm5mZmZHasSXK0fEL3LRkGLm6mZmZnak\nsh0St8Pk6mZmZjYaHNg55upmZmY2GhzYOebqZmZmNhoc2Dnk6mZmZjZachrYkpZKel7SBkn7PU9b\n0hRJd0h6RtJjkhYMWV8q6SlJP8llO3NloLqZh8PNzOxI5SywJZUC1wPLgPnARyTNH7LZtcDqiDgN\n+CPguiHrrwTW5aqNuebqZmZmNlpy2cNeDGyIiI0R0Q3cBlw0ZJv5wM8B0uppcyTNAJDUCFwI3JTD\nNuaUq5uZmdloyWVgzwI2Zcw3pcsyPQ18CEDSYuB4kgeMAHwd+EugP4dtzBlXNzMzs9GU74vOVgB1\nklYDnyV5dGefpPcC2yLiiUMdQNJySaskrWpubs5xc7Pn6mZmZjaacnnp8mZgdsZ8Y7psUETsBj4B\nIEnAS8BG4A+B90t6D1AFTJL0nYi4ZOibRMSNwI0AixYtihx8jsPi6mZmZjaactnDfhw4SdJcSRXA\nxcCdmRtIqkvXAVwKPBQRuyPiixHRGBFz0v1+PlxYj1WubmZmZqMtZz3siOiVdAVwD1AK3BwRayVd\nnq6/AZgH3CIpgLXAJ3PVnqPJ1c3MzGy05bSaR0SsBFYOWXZDxvQjwMmHOMaDwIM5aF7OuLqZmZmN\ntnxfdFZ0XN3MzMxywYE9ylzdzMzMcsGBPcpc3czMzHLBgT3KXN3MzMxywYE9ilzdzMzMcsWBPYpc\n3czMzHLFgT2KXN3MzMxyxYE9SlzdzMzMcsmBPUpc3czMzHLJgT1KXN3MzMxyyYE9ClzdzMzMcs2B\nPQpc3czMzHLNgT0KXN3MzMxyzYE9ClzdzMzMcs2BfYRc3czMzI6GnAa2pKWSnpe0QdI1w6yfIukO\nSc9IekzSgnR5VTr/tKS1kr6ay3YeCVc3MzOzoyFngS2pFLgeWAbMBz4iaf6Qza4FVkfEacAfAdel\ny7uAd0XE6cBCYKmks3LV1iPh6mZmZnY05LKHvRjYEBEbI6IbuA24aMg284GfA0TEemCOpBmRaEu3\nKU//IodtPSyubmZmZkdLLgN7FrApY74pXZbpaeBDAJIWA8cDjel8qaTVwDbgZxHx6HBvImm5pFWS\nVjU3N4/yRzg4VzczM7OjJd8Xna0A6tJg/izwFNAHEBF9EbGQJMAXD5zfHioiboyIRRGxqKGh4Wi1\nG3B1MzMzO3pyWZZrMzA7Y74xXTYoInYDnwCQJOAlYOOQbVokPQAsBdbksL0j4upmZmZ2NOWyh/04\ncJKkuZIqgIuBOzM3kFSXrgO4FHgoInZLapBUl24zAbgAWJ/Dto6Yq5uZmdnRlLOuYUT0SroCuAco\nBW6OiLWSLk/X3wDMA26RFMBa4JPp7semy0tJflR8PyJ+kqu2Hg5XNzMzs6Mpp2O5EbESWDlk2Q0Z\n048AJw+z3zPAGbls25FydTMzMzua8n3RWUFydTMzMzvaHNiHwdXNzMzsaHNgHwZXNzMzs6PNgT1C\nrm5mZmb54MAeIVc3MzOzfHBgj5Crm5mZWT44sEfA1c3MzCxfHNgj4OpmZmaWLw7sEXB1MzMzyxcH\n9gi4upmZmeWLAztLrm5mZmb55MDOkqubmZlZPjmws+TqZmZmlk8O7Cy4upmZmeVbTgNb0lJJz0va\nIOmaYdZPkXSHpGckPSZpQbp8tqQHJD0naa2kK3PZzkNxdTMzM8u3nAW2pFLgemAZMB/4iKT5Qza7\nFlgdEacBfwRcly7vBa6KiPnAWcBnhtn3qHF1MzMzy7dc9rAXAxsiYmNEdAO3ARcN2WY+8HOAiFgP\nzJE0IyJejYgn0+WtwDpgVg7bekCubmZmZmNBLgN7FrApY76J/UP3aeBDAJIWA8cDjZkbSJoDnAE8\nOtybSFouaZWkVc3NzaPS8EyubmZmZmNBvi86WwHUSVoNfBZ4CugbWCmpBvgh8PmI2D3cASLixohY\nFBGLGhoaRr2Brm5mZmZjQS7HeDcDszPmG9Nlg9IQ/gSAJAEvARvT+XKSsP5uRPwoh+08KFc3MzOz\nsSCXPezHgZMkzZVUAVwM3Jm5gaS6dB3ApcBDEbE7De9vA+si4ms5bONBubqZmZmNFTnrYUdEr6Qr\ngHuAUuDmiFgr6fJ0/Q3APOAWSQGsBT6Z7n4O8HHg2XS4HODaiFiZq/YOx9XNzMxsrMjpZc9pwK4c\nsuyGjOlHgJOH2e9XQN4rlLi6mZmZjRX5vuhszHJ1MzMzG0sc2Afg6mZmZjaWOLAPwNXNzMxsLHFg\nD8PVzczMbKxxYA/D1c3MzGyscWAPw9XNzMxsrHFgD6NE8I6TG1zdzMzMxgyfoB3G8refwPK3n5Dv\nZpiZmQ1yD9vMzKwAOLDNzMwKgAPbzMysADiwzczMCoAD28zMrAA4sM3MzAqAA9vMzKwAKCLy3YZR\nI6kZeGWUDjcN2D5Kx7J9+bvNHX+3uePvNnfG+3d7fEQ0HGqjogrs0SRpVUQsync7ipG/29zxd5s7\n/m5zx99tdjwkbmZmVgAc2GZmZgXAgX1gN+a7AUXM323u+LvNHX+3uePvNgs+h21mZlYA3MM2MzMr\nAA5sMzOzAuDAHoakpZKel7RB0jX5bk+xkDRb0gOSnpO0VtKV+W5TsZFUKukpST/Jd1uKiaQ6SbdL\nWi9pnaSz892mYiHpz9N/D9ZIulVSVb7bNFY5sIeQVApcDywD5gMfkTQ/v60qGr3AVRExHzgL+Iy/\n21F3JbAu340oQtcBd0fEqcDp+DseFZJmAZ8DFkXEAqAUuDi/rRq7HNj7WwxsiIiNEdEN3AZclOc2\nFYWIeDUinkynW0n+0ZuV31YVD0mNwIXATfluSzGRNBl4O/BtgIjojoiW/LaqqJQBEySVAdXAljy3\nZ8xyYO9vFrApY74Jh8qokzQHOAN4NL8tKSpfB/4S6M93Q4rMXKAZ+Of0dMNNkibmu1HFICI2A38H\n/BZ4FdgVEffmt1VjlwPbjjpJNcAPgc9HxO58t6cYSHovsC0insh3W4pQGfBm4FsRcQawB/C1LaNA\n0hSSEcy5wExgoqRL8tuqscuBvb/NwOyM+cZ0mY0CSeUkYf3diPhRvttTRM4B3i/pZZLTOO+S9J38\nNqloNAFNETEwGnQ7SYDbkTsfeCkimiOiB/gR8Dt5btOY5cDe3+PASZLmSqoguQDizjy3qShIEsl5\nwHUR8bV8t6eYRMQXI6IxIuaQ/H/25xHhnsooiIjXgE2STkkXLQGey2OTislvgbMkVaf/PizBF/Qd\nUFm+GzDWRESvpCuAe0iuWLw5ItbmuVnF4hzg48Czklany66NiJV5bJNZNj4LfDf9Eb8R+ESe21MU\nIuJRSbcDT5LcRfIULlN6QC5NamZmVgA8JG5mZlYAHNhmZmYFwIFtZmZWABzYZmZmBcCBbWZmVgAc\n2GZ2xCS9008IM8stB7aZmVkBcGCbjSOSLpH0mKTVkv4xfX52m6T/P30m8f2SGtJtF0r6taRnJN2R\n1n1G0omS7pP0tKQnJZ2QHr4m45nR300rV5nZKHFgm40TkuYBfwicExELgT7gY8BEYFVEvBH4BfBX\n6S7/CnwhIk4Dns1Y/l3g+og4naTu86vp8jOAz5M8R/4NJJXtzGyUuDSp2fixBDgTeDzt/E4AtpE8\njvPf022+A/wofQZ0XUT8Il1+C/ADSbXArIi4AyAiOgHS4z0WEU3p/GpgDvCr3H8ss/HBgW02fgi4\nJSK+uM9C6ctDtjvcesVdGdN9+N8Xs1HlIXGz8eN+4PclTQeQNFXS8ST/Dvx+us1HgV9FxC7gdUnn\npss/DvwiIlqBJkkfSI9RKan6qH4Ks3HKv4DNxomIeE7Sl4B7JZUAPcBngD3A4nTdNpLz3AB/DNyQ\nBnLmE6o+DvyjpP+eHuMPjuLHMBu3/LQus3FOUltE1OS7HWZ2cB4SNzMk/Yuk/5nlti9LOv9Ij2Nm\nI+PANhvn3Ls2KwwObDMzswLgwDYrEOlQ9NVp5bE9kr4taYakuyS1ptXHpmRs//60elmLpAfTwikD\n685Iq5S1Svp3oGrIe703rYbWIulhSacdZps/JWmDpJ2S7pQ0M12utLraNkm7JT0raUG67j2Snkvb\ntlnSXxzWF2ZWZBzYZoXl94ALgJOB9wF3AdcCDST/PX8OQNLJwK0klccagJXAf0qqkFQB/Afwb8BU\n4AfpcUn3PQO4GbgMqAf+EbhTUuVIGirpXcD/Bj4MHAu8AtyWrv5d4O3p55icbrMjXfdt4LKIqAUW\nAD8fyfuaFSsHtllh+fuI2BoRm4FfAo9GxFNpxbE7SMqDQnJr1k8j4mcR0QP8HUlls98BzgLKga9H\nRE9E3A48nvEey4F/jIhHI6IvIm4hKYpy1gjb+jHg5oh4MiK6gC8CZ0uaQ3I7WC1wKsndKusiYqDE\naQ8wX9KkiHg9Ip4c4fuaFSUHtllh2Zox3THM/MAFZDNJerQAREQ/sAmYla7bHPve0/lKxvTxwFXp\ncHiLpBZgdrrfSAxtQxtJL3pWRPwc+AfgemCbpBslTUo3/T3gPcArkn4h6ewRvq9ZUXJgmxWnLSTB\nCyTnjElCdzPJwzpmDXma1nEZ05uA/xURdRl/1RFx6xG2YSLJEPtmgIj4RkScSfKwkJOBq9Plj0fE\nRcB0kqH774/wfc2KkgPbrDh9H7hQ0hJJ5cBVJMPaDwOPAL3A5ySVS/oQsDhj338CLpf01vTisImS\nLkwf/DEStwKfSB/TWQn8DckQ/suS3pIev5yk0lon0J+eY/+YpMnpUP5ukoeTmI17DmyzIhQRzwOX\nAH8PbCe5QO19EdEdEd3Ah4A/AXaSnO/+Uca+q4BPkQxZvw5sSLcdaRvuA74M/JCkV38CcHG6ehLJ\nD4PXSYbNdwB/m677OPCypN3A5STnws3GPZcmNTMzKwDuYZuZmRUAB7aZmVkBcGCbmZkVAAe2mZlZ\nASjLdwNG07Rp02LOnDn5boaZmVnWnnjiie0R0XCo7YoqsOfMmcOqVavy3QwzM7OsSXrl0Ft5SNzM\nzKwgOLDNzMwKgAPbzMysABTVOezh9PT00NTURGdnZ76bklNVVVU0NjZSXl6e76aYmVkOFH1gNzU1\nUVtby5w5c9j34UTFIyLYsWMHTU1NzJ07N9/NMTOzHCj6IfHOzk7q6+uLNqwBJFFfX1/0owhmZuNZ\n0Qc2MOKw3tXezau7OnLUmtwo5h8kZmY2TgJ7pDp6+tje2k1vnx/Da2ZmY4MDexi1VeUEQVtX7xEf\nq6WlhW9+85sj3u8973kPLS0tR/z+ZmZWHBzYw6iuKKWspITdHT1HfKwDBXZv78F/DKxcuZK6uroj\nfn8zMysORX+VeKav/udantuyO6ttu3r76evvp7ri4F/R/JmT+Kv3vfGA66+55hp+85vfsHDhQsrL\ny6mqqmLKlCmsX7+eF154gQ984ANs2rSJzs5OrrzySpYvXw7sLbPa1tbGsmXLeNvb3sbDDz/MrFmz\n+PGPf8yECROy/+BmZlbw3MM+gLISEQF9/XFEx1mxYgUnnHACq1ev5m//9m958sknue6663jhhRcA\nuPnmm3niiSdYtWoV3/jGN9ixY8d+x3jxxRf5zGc+w9q1a6mrq+OHP/zhEbXJzMwKz7jqYR+sJzxU\nX3+w7tXdTJ1Ywcy60evNLl68eJ97pb/xjW9wxx13ALBp0yZefPFF6uvr99ln7ty5LFy4EIAzzzyT\nl19+edTaY2ZmhWFcBfZIlJaImsoydnf0cOzkqlG7bWrixImD0w8++CD33XcfjzzyCNXV1bzzne8c\n9l7qysrKve0qLaWjo7BuOTMzsyPnIfGDqK0qo7uvn67ew7+9q7a2ltbW1mHX7dq1iylTplBdXc36\n9ev59a9/fdjvY2Zmxc097IOYNKGczS0d7O7ooaq89LCOUV9fzznnnMOCBQuYMGECM2bMGFy3dOlS\nbrjhBubNm8cpp5zCWWedNVpNNzOzIqOII7uoaixZtGhRrFq1ap9l69atY968eYd9zA3bWgFx4vSa\nI2xd7h3pZzUzs6NP0hMRsehQ2+V0SFzSUknPS9og6Zph1n9M0jOSnpX0sKTTM9a9nC5fLWnV0H2P\nltqqctq7e+lx1TMzM8ujnAW2pFLgemAZMB/4iKT5QzZ7CXhHRLwJ+B/AjUPWnxcRC7P55ZErk6qS\nx1W2dh55ERUzM7PDlcse9mJgQ0RsjIhu4DbgoswNIuLhiHg9nf010JjD9hyWqvISKkpL2N1x5GVK\nzczMDlcuA3sWsCljvilddiCfBO7KmA/gPklPSFp+oJ0kLZe0StKq5ubmI2rwAY5P7YRy2rp66T/C\nIipmZmaHa0zc1iXpPJLA/kLG4rdFxEKSIfXPSHr7cPtGxI0RsSgiFjU0NOSkfZOqyuiP0XkYiJmZ\n2eHIZWBvBmZnzDemy/Yh6TTgJuCiiBisyxkRm9PXbcAdJEPseTGxsoxSid0+j21mZnmSy8B+HDhJ\n0lxJFcDFwJ2ZG0g6DvgR8PGIeCFj+URJtQPTwO8Ca3LY1oMqkaipKqO1s5eR3gZ3uI/XBPj6179O\ne3v7Ye1rZmbFJWeBHRG9wBXAPcA64PsRsVbS5ZIuTzf7ClAPfHPI7VszgF9Jehp4DPhpRNydq7Zm\nY1JVOT19/XT09I1oPwe2mZmNhpxWOouIlcDKIctuyJi+FLh0mP02AqcPXX7E7roGXnv2sHatIyjv\n6qOsrARKM37nHPMmWLbigPtlPl7zggsuYPr06Xz/+9+nq6uLD37wg3z1q19lz549fPjDH6apqYm+\nvj6+/OUvs3XrVrZs2cJ5553HtGnTeOCBBw6r3WZmVhxcmjRLQpSWiN7+fipKsx+YWLFiBWvWrGH1\n6tXce++93H777Tz22GNEBO9///t56KGHaG5uZubMmfz0pz8FkhrjkydP5mtf+xoPPPAA06ZNy9XH\nMjOzAjG+AvsgPeFstLV28uquTk49ppaKspHXFr/33nu59957OeOMM5LjtbXx4osvcu6553LVVVfx\nhS98gfe+972ce+65R9ROMzMrPuMrsI/QpKpyXt3Vye7OXqbVjDywI4IvfvGLXHbZZfute/LJJ1m5\nciVf+tKXWLJkCV/5yldGo8lmZlYkxsR92IWisryUyrJSdndkf3tX5uM13/3ud3PzzTfT1tYGwObN\nm9m2bRtbtmyhurqaSy65hKuvvponn3xyv33NzGx8cw97hCZNKGN7Wzd9/f2Ulhz6907m4zWXLVvG\nRz/6Uc4++2wAampq+M53vsOGDRu4+uqrKSkpoby8nG9961sALF++nKVLlzJz5kxfdGZmNs758Zoj\ntKerl980t3Hc1GrqqitG7bijwY/XNDMrPGPi8ZrFqLqilNIS0drpMqVmZnb0OLBHSBKTqsrZ3dkz\n4qpnZmZmh2tcBPZoB+ukqjL6+oM93SOrepZL/vFgZlbcij6wq6qq2LFjx6gGWk1VGZJoHSMPA4kI\nduzYQVVVVb6bYmZmOVL0V4k3NjbS1NTEaD8ru6Wtix39QcuksRGSVVVVNDY25rsZZmaWI0Uf2OXl\n5cydO3fUj/uvj7zMV368lvuvegcnNNSM+vHNzMwyFf2QeK6869TpANy/bmueW2JmZuOBA/swNU6p\nZt6xk7jvuW35boqZmY0DDuwjcMG86ax6ZSev7+nOd1PMzKzIObCPwJJ5M+gPeOB597LNzCy3HNhH\n4E2zJjO9tpL7fB7bzMxyzIF9BEpKxJJ5M/jF88109Y6dIipmZlZ8HNhH6Px509nT3cejG3fmuylm\nZlbEHNhH6JwTp1FVXuJhcTMzyykH9hGqKi/l3JMauO+5ra7nbWZmOePAHgXnz5vOll2drHu1Nd9N\nMTOzIuXAHgXvOnUGEh4WNzOznHFgj4KG2koWzq5zYJuZWc44sEfJ+fNm8EzTLrbu7sx3U8zMrAg5\nsEfJ+fNmAHD/Olc9MzOz0efAHiUnz6hh9tQJHhY3M7OccGCPEkksOXUG/7VhO+3dvflujpmZFZmc\nBrakpZKel7RB0jXDrP+YpGckPSvpYUmnZ7vvWHTB/Bl09fbzqxe357spZmZWZHIW2JJKgeuBZcB8\n4COS5g/Z7CXgHRHxJuB/ADeOYN8xZ/HcqdRWlXlY3MzMRl0ue9iLgQ0RsTEiuoHbgIsyN4iIhyPi\n9XT210BjtvuOReWlJbzj5AZ+vn4b/f2uemZmZqMnl4E9C9iUMd+ULjuQTwJ3jXRfScslrZK0qrm5\n+QiaOzoumD+D7W3drG5qyXdTzMysiIyJi84knUcS2F8Y6b4RcWNELIqIRQ0NDaPfuBF658nTKS0R\n93tY3MzMRlEuA3szMDtjvjFdtg9JpwE3ARdFxI6R7DsWTa4u5y1zpnDfc74f28zMRk8uA/tx4CRJ\ncyVVABcDd2ZuIOk44EfAxyPihZHsO5adP28Gz29tZdPO9nw3xczMikTOAjsieoErgHuAdcD3I2Kt\npMslXZ5u9hWgHvimpNWSVh1s31y1dbRdMD+peuarxc3MbLSomJ7hvGjRoli1alW+mwHA+V/7BTMm\nVfLdS8/Kd1PMzGwMk/RERCw61HZj4qKzYnT+vBk8unEnuzt78t0UMzMrAg7sHLlg/nR6+4NfPJ//\nW83MzKzwObBzZOHsKUydWOHz2GZmNioc2DlSWiLedep0Hli/jZ6+/nw3x8zMCpwDO4f+X3t3HlzX\nWeZ5/PvcRYu1WF60eMVxnNiyTeyAcUhCNiyDQ9MNMwMNdEMNDFV0qqChB+gmzDA1U13V1d3TVAM9\nZAgZ6IXuDMsEUsM0WYgdyEYWO4mTeE0c49iyZcubVutKd3nmj3MkX8mLrmNd3e33qbqls99Ht2z9\n7nnPe97T0d5KXyLFtgOnJ99YRETkIhTYeXTTVXOpikbULC4iIpdNgZ1HddUxblg2h827j1FOt8+J\niMj0U2DnWUd7K2+cPMPrxwcKXYqIiJQwBXaebWhvAeARjS0uIiKXQYGdZ/Nm1rJ6QaOuY4uIyGVR\nYE+DjvZWXjh4mpMDw4UuRURESpQCexp0tLfiDo/uUbO4iIi8OQrsabBqfiNtjTVqFhcRkTdNgT0N\nzIyOlS088doJEsl0ocsREZESpMCeJhvaWzkzkubp/ScLXYqIiJQgBfY0uX7pHGZURdm8S83iIiJy\n6RTY06QmHuXmq5rZsrtbo56JiMglU2BPow3tLRztS7DzSF+hSxERkRKjwJ5G717Rghk8omZxERG5\nRArsaTSnvpq3L57Flj0KbBERuTQK7Gm2ob2VHYf76OodKnQpIiJSQhTY02zjyuBhIJt3a9QzERHJ\nnQJ7ml3ZXM+SOTPYolHPRETkEiiwp5mZsaG9ld/sO8ngcKrQ5YiISIlQYBdAR3srI+kMT7x2vNCl\niIhIiVBgF8C6JbOYWRvXdWwREcmZArsA4tEIty5v5tE93aQzGvVMREQmp8AukI72Vk4NjvDiwdOF\nLkVEREpAXgPbzDaZ2V4z22dmd55n/Qoze9rMhs3syxPWHTCzV8xsu5lty2edhXDL8mZiEVOzuIiI\n5CSnwDazL5hZowW+b2YvmNl7JtknCtwF3A6sBD5mZisnbHYK+Dzw9Qsc5jZ3X+vu63Kps5Q01sS5\nbulsNuv2LhERyUGuZ9j/wd37gPcAs4BPAH81yT7rgX3uvt/dR4AfAR/I3sDdu919K5C8tLLLQ0d7\nK/u6BzhwYrDQpYiISJHLNbAt/Pk+4J/dfWfWsgtZABzKmu8Ml+XKgc1m9ryZfeaChZl9xsy2mdm2\n47E3HH0AABo2SURBVMdL6zapjvZWAJ1li4jIpHIN7OfN7JcEgf2wmTUAmfyVBcC73H0tQZP6Z83s\n5vNt5O73uPs6d1/X3Nyc55Km1qLZM1je2qDAFhGRSeUa2J8G7gTe4e5ngDjwqUn2OQwsyppfGC7L\nibsfDn92A/cTNLGXnY6VLWw9cJreMxV5VUBERHKUa2BfD+x19x4z+zjwNaB3kn22AleZ2RVmVgV8\nFPh5Lm9mZnXhWTxmVkdw7XxHjrWWlI72VtIZ59evqre4iIhcWK6B/R3gjJmtAb4EvA784GI7uHsK\n+BzwMLAb+Im77zSzO8zsDgAzazOzTuCLwNfMrNPMGoFW4Ekzewl4DviFuz/0Jn6/ordmYRNz66t5\nZJeaxUVE5MJiOW6Xcnc3sw8A33b375vZpyfbyd0fAB6YsOzurOmjBE3lE/UBa3KsraRFIsaGFS08\n8EoXI6kMVTGNZSMiIufKNR36zeyrBLdz/cLMIgTXsWUKdKxspX84xdYDpwpdioiIFKlcA/sjwDDB\n/dijZ8V/k7eqKsy7ls2lOhZRs7iIiFxQToEdhvS9wEwzez+QcPeLXsOW3NVWRXnXsrls3n0Mdz0M\nREREzpXr0KS/T9D568PA7wPPmtmH8llYpelY2Urn6SFePTZQ6FJERKQI5drp7D8T3IPdDWBmzcBm\n4L58FVZpNqxoAYJRz5a3NRS4GhERKTa5XsOOjIZ16OQl7Cs5aGmsYc3CmbqOLSIi55Vr6D5kZg+b\n2SfN7JPAL5hwu5Zcvo72Vl7q7KG7P1HoUkREpMjk2unsT4F7gGvC1z3u/pV8FlaJNrS34g6/2qNR\nz0REZLxcr2Hj7j8FfprHWipe+7wGFjTV8siubj7yjsWFLkdERIrIRQPbzPoJHnN5zirA3b0xL1VV\nKDOjo72FH287RCKZpiYeLXRJIiJSJC7aJO7uDe7eeJ5Xg8I6Pza0t5JIZnhq34lClyIiIkVEPb2L\nzHVLZ1NfHdMzskVEZBwFdpGpjkW55epmtuzuJpPRqGciIhJQYBehDe0tdPcP88rhyR45LiIilUKB\nXYRuW95CxFCzuIiIjFFgF6FZdVWsWzKbzbt1P7aIiAQU2EWqo72F3V19dJ4+U+hSRESkCCiwi1RH\neysAW3SWLSIiKLCL1tLmepY21+k6toiIAArsotbR3soz+0/Sn0gWuhQRESkwBXYR62hvJZl2Hn9V\no56JiFQ6BXYRe9viJmbNiLNFzeIiIhVPgV3EYtEIty1v4dG93aTSmUKXIyIiBaTALnIdK1vpOZPk\n+TdOF7oUEREpIAV2kbv56maqohG27NHtXSIilUyBXeTqq2Nct3Q2m3fpOraISCVTYJeAjStb2X9i\nkNePDxS6FBERKRAFdgnYMDbqmc6yRUQqVV4D28w2mdleM9tnZneeZ/0KM3vazIbN7MuXsm8lWdBU\nS/u8Rjbv0nVsEZFKlbfANrMocBdwO7AS+JiZrZyw2Sng88DX38S+FWVjewvb3jjF6cGRQpciIiIF\nkM8z7PXAPnff7+4jwI+AD2Rv4O7d7r4VmDj25qT7VpqOla1kHH61V2fZIiKVKJ+BvQA4lDXfGS6b\n0n3N7DNmts3Mth0/fvxNFVoKVs+fSUtDtR4GIiJSoUq+05m73+Pu69x9XXNzc6HLyZtIxNjQ3spj\ne48znEoXuhwREZlm+Qzsw8CirPmF4bJ871u2Nq5sYXAkzbP7TxW6FBERmWb5DOytwFVmdoWZVQEf\nBX4+DfuWrRuunEtNPKJmcRGRCpS3wHb3FPA54GFgN/ATd99pZneY2R0AZtZmZp3AF4GvmVmnmTVe\naN981VoqauJRbrqqmc27juHuhS5HRESmUSyfB3f3B4AHJiy7O2v6KEFzd077Cmxsb+WRXcfY3dXP\nyvmNhS5HRESmScl3Oqs0t61owQw1i4uIVBgFdolpbqhm7aImBbaISIVRYJegjvZWXu7s5VhfotCl\niIjINFFgl6COsYeBaNQzEZFKocAuQVe31rNodq2axUVEKogCuwSZGR3trTy17wRnRlKFLkdERKaB\nArtEdbS3MpzK8ORrJwpdioiITAMFdolaf8VsGmpiahYXEakQCuwSFY9GuHV5C4/u6SaT0ahnIiLl\nToFdwjraWzgxMML2zp5ClyIiInmmwC5ht17dQjRibN6lZnERkXKnwC5hM2fEWb9ktu7HFhGpAArs\nErehvYW9x/o5ePJMoUsREZE8UmCXuI0rg1HPPv79Z/nrh/bwcmePHr0pIlKGrJz+uK9bt863bdt2\n+Qc69VtIJ6H56ss/1jT415eP8KPnDvH0/pOkM86Cplo2rW7j9tVtvG3xLCIRK3SJIiJyAWb2vLuv\nm3Q7BfZ5/OyP4OUfw+p/Bzf/KbSsuPxjToPTgyM8susYD+7o4sl9J0imnZaGat67Kgjv9VfMJhZV\no4qISDFRYF+OgePw9Lfhuf8FyTOw6oNBcLeuuvxjT5O+RJJHd3fz4I4uHnv1OIlkhtl1VbxnZSub\nVrdxw5VzqYopvEVECk2BPRUGT8Izd8Gz98BIP7T/HtzyZ9D21ql7j2lwZiTFr/ce58EdR3l09zEG\nR9I01MTY2B6E981XN1MTjxa6TBGRiqTAnkpnTsEz34Fn74bhPljx/uCMe/7aqX+vPEsk0zz52gke\n3HGUzbuP0TuUZEZVlNtWtHD76jZuW95CXXWs0GWKiFQMBXY+DPUEof3M/4REL1y9KTjjXvD2/L1n\nHiXTGZ5+/SQP7jjKL3ce5eTgCNWxCDdf3cztq9vY0N7KzNp4ocsUESlrCux8SvTCc/fA03fB0GlY\nthFuvRMWTvp5F610xtl64BQP7TjKQzuOcrQvQTxq3HDlXG5f3cZ7VrUxu66q0GWKiJQdBfZ0GO4P\nOqb95n/A0Cm48t1wy52w+LrpqyEPMhlne2cPD+04ygOvdNF5eoiIwTuXzuH21W28d1UbLY01hS5T\nRKQsKLCn0/AAbPs+PPV3cOYEXHEL3PIVWHLj9NcyxdydnUf6eHBHFw/uOMr+44OYwdsXz2LT6jY2\nrW5j4awZhS5TRKRkKbALYWQQtv0DPPUtGOyGJTcF17iX3ARW+oOXuDuvdQ/w4CtHeXBHF3uO9gNw\nzcKZ4UAt87hibl2BqxQRKS0K7EJKDsHz/whPfhMGjsLiG+DWrwRn3mUQ3KMOnBjkwR1HeWhHFy91\n9gKwoq1hLLyvbq3Hyuj3FRHJBwV2MUgm4IUfwJPfgP4jsOi64Iz7yg1lFdwAh3uGwg5rXWx74zTu\nsHRu3Vh4r17QqPAWETkPBXYxSQ3Di/8MT3wD+jphwbrgGvdVG8suuAG6+xI8vOsYD+3o4pn9p0hn\nnIWzatm0qo3b39rGtYs0vrmIyCgFdjFKjcD2e+GJv4XegzD/2iC4r95UlsENcGpwhEd2HeXBHUd5\nKhzffE5dFdcubmLtoibWLprFNYtm0lij+71FpDIVRWCb2SbgW0AU+J67/9WE9Raufx9wBviku78Q\nrjsA9ANpIJXLL1P0gT0qnYSXfgiPfx163oC2a4LgXv4+iJTv+N69Q0ke3XOMJ149wfbOHvYfHxxb\nd2VzHWsXzWLt4ibWLmxixbwG4npQiYhUgIIHtplFgVeBjUAnsBX4mLvvytrmfcAfEwT2dcC33P26\ncN0BYJ27n8j1PUsmsEelk/DyT+CJr8Op/dC6OrjGveJ3yzq4R/WeSfJSZw8vHephe/g6OTgCQHUs\nwuoFM1mzsIm1i5u4dlETC2fV6jq4iJSdYgjs64H/5u7vDee/CuDuf5m1zXeBX7v7D8P5vcCt7t5V\nEYE9Kp2CHffB438DJ/dBy8pgrPKVH4BI5TyUw93pPD00Ft4vHerhlcO9DKcyAMypq2LNotGm9CbW\nLGxi5gw1pYtIacs1sPP5lIcFwKGs+U6Cs+jJtlkAdAEObDazNPBdd7/nfG9iZp8BPgOwePHiqal8\nukVjsOaj8NYPw8774bH/Dvd9CuYuD864V/2bighuM2PR7Bksmj2D310zHwjGO997tJ8XD509E390\nT/fYPkvn1gUBvjgI8PZ5jXpsqIiUpWJ+LNO73P2wmbUAj5jZHnd/fOJGYZDfA8EZ9nQXOaUiUXjr\nh4KA3vV/g+D+6afh138ZnHGv/lAQ7hUkHg2axlcvmMkn3vkWIHjW9yudvWw/1MOLB3t4/LUT/OzF\nwwBUxSKsmt/ImoVNYx3bFs+eoaZ0ESl5+fzrfxhYlDW/MFyW0zbuPvqz28zuB9YD5wR2WYpEYfW/\nhZUfhD3/Lwju+/8IHvtruOnLcM1HKi64szXWxLlx2VxuXDYXCJrSj/Qm2H6wh5c6e9h+sIcfbz3E\nP/7mAACzZsTPaUqfpQeZiEiJyec17BhBp7MNBCG8FfgDd9+Ztc3vAJ/jbKezv3P39WZWB0TcvT+c\nfgT4c3d/6GLvWbLXsCeTycDeB4LAPvoyzFoCN30J1nwMorqGez6pdIZXjw2E18NP89KhXl7t7mf0\nn/uSOTPOBviiJlbOb6Q6Vv6XHUSk+BS801lYxPuAbxLc1vX37v4XZnYHgLvfHd7W9W1gE8FtXZ9y\n921mthS4PzxMDPjf7v4Xk71f2Qb2KHd49aEguI+8CE2L4V1fhLV/CDGdMY7jHr4yY6+B4RF2dJ7m\nlc7T7OzsYefh05zoTxDBqY4ay1vrWD2vnlXz61k1r5GFTdUYDo0L9fmKSN4URWBPt7IP7FHu8Noj\n8NhfweHnoXEBNK8g6KeXtU0wMcn8pW6f4/xk23jmnEA993WJ6zPps9NM3b/r4cgMumavp2/hLdiy\nDuYsvIqWhmpiuk9cRKaAArsSuMPrW+CZu2HodLBsrHOVTZg/37LJ5rnE7S/hPSNRsEiw3CIXeU22\nPpdX7u+RIcKxgWEOnkrwxukEnScHWDC4ixt5kYUW3GH4emYej2fW8HLtOrqa3s6cpibmzaxhXlMt\n87N+zq2v1hCsIjIpBbbIFOobGuHEG7tIv/pL6g7+muZT24hnhhmhiu3RVWxOvpXNyWvY7/MY/VIS\njxqtjTXMn1lL28wa5jUF0/Nm1jC/Kfg5u65KPdhFKpwCWySfkkPwxlOwb0tweeLkawCMNCyiu+Vd\nvNZ4Hdtj1/BGf4QjvQm6eoc42psgmR7//606FgnOzsMgn9cUTM8f/TmzlsbamEJdpIwpsEWm0+kD\nQXjv2wK/fQxGBiASg8XXw7INsKyDTPMqTp5J0tU7xJGeIMS7ehMc6Ql+dvUMcax/mHRm/P/JGVXR\nCaE+vul9XlMt9dWVe5ufSKlTYIsUSmoEDj0L+zYHAX7slWB5fdtYeLP0Vpgx+5xd0xmnuz8RBnhi\nXLgfCUP9+MDwOX0GG2pizJ9ZS0tjNTNr4zTWxmmoidFYE0w3jk3HaKiJj03XxqM6excpMAW2SLHo\n64LXHw0C/PVHIdETdHJbsC4I72UdMH9tzsPPjqQyHOsLQ7337Nn5kd4E3X0J+hMp+hJJ+oZSjKQz\nFz1WNGJBmGcHfE04XTtxOgz72rPb1dfEiKpjnchlUWCLFKNMGg6/APseCQL88AuAQ+1suPLdYYBv\ngPqWKXm7RDJNXyIZhPhQkr5Eiv4wzIPl2dOj25ydHhxJT/oeDdWxnAJ+/PTZ7TX2u1Q6BbZIKRg8\nCft/FTafb4bB48Hytmvgqo1BgC98R8FGtEulMwwMp8ZCvW+SgB+bDrfrTyTJTPInpiYeobEmPtaU\n35gV5sGy7Kb98csaamK6H15KngJbpNRkMsH17tFr3wefAU9DdSMsvSUI7ys3QNOiyY9VJNydwZE0\nfUPZQR5M9w6FZ/hZYd87dPYLwWiLwMROeBPVVUWzwn5CwE/yBaChOqZ75aXgFNgipS7RC799PAjw\n1zZDX2ewvHnF2abzxTdAvKawdeZRduCPnrUHoT7+bP9Cy/oTqYse3yxo0p8Y9uf7AtBQE6MmHg1f\nkeBnLEp1PDL2szoWUSc+uWQKbJFy4g7H955tOn/jKUiPQKwWrrgJlm0MAnzOlYWutKikMx426Yeh\nnphwBj80/gx/7AtBuD6Xa/gTVcci40J9bH4s1LMCP3s+FnwZyP4CMG7/C20fi6iVoMQpsEXK2cgg\nHHjqbICfej1YXtcCVTMgEg+ue0diwSsaD5eF82PT8az1sfPvE4md3XbSY+b4nqPbxWshPuPc4XCL\nRCqdyWq+T5FIpUkk0wwnM+F0JphPhT+TaRKpTPBzbJuz60e3HxmdH1uenvRa/8VURSPnBHxdVXRc\n7/9xP2vDToBZHQMbanSJoFByDWyNtiBSiqrq4Or3BC+AU/uD695Htgdn3pkUZJKQHv2ZDHqoJ4fC\n6XB+dHp0u0xqwj7J/P8uFoGqBqiuh+oGqKoPpqvqg+v3Y9MNWevD7asasqbDV2TqOqHFohFm1VVN\ny/PTk+mzoT487svAhb8gnPOFIWub0UsJR3qGxu4OSCQvfpufGdRXxc4N+kuYr4nrMbX5osAWKQez\nl8L6pfk59rhgD4N+bDoVhvz5gn/Cz3HbhcuSZ2B4IBgZbrg/eI1O9x8bv9xzbJ4eDe5xXwAaJnwZ\nmBD0F/oyEJ2+P5HxaIR4NEJDHrskjKQy9Gf15B/t3T/WIXDCfH8iSVdvgle7+3Pu9V8VjWQN0JN1\nBl994bCvr44RMRtraDEDC8fkD6bPLue8y23cNtn7kr08XGBZ6wwbdywu+N5n3yMWNRpqpv/ODQW2\niFxcJBoO6lLAzm3ukEoE4T7cFwb5wPiAHwv3ARjpz5oegJ5D4/dLD+f2vrGas0FeVTf+qXMXe2rd\nlK/jAusu8sS8SDy85FAb/B7xWqritcyJ1TAnPiPorBifEaybWQtza4M+EfEaiNeP7TO2v9lYJ8D+\nrNv2Lhz2o/NJjvYlxvYZSl56v4Bis37JbH5yx/XT/r4KbBEpfmZnw6O++fKPlxo5z1n9eYJ+uO/s\n9MhgsK87F38u/Jtdx7nrMpkLbOeTPG/eg5aM5BAkE5AaCqeHeNPPio/VYPFa6mO11MdrmDca9uO+\nFIRfBGpqoWH8l4XR6VS0hjNexZlMjP50FQPpGP3pKGTSWNh6Yz46ncI8iY2u8ySRcHnEU5inwuUp\nIplUeIzRdaPbpbHwmGPTmXQ4n8IywbYWHiOYThPJ3idr3jzNmfgqQIEtIpJ/sSqIzT7veO5lzT3o\n45A8MyHIJ4R6ciicTwTbphLnWZ41PdA9YZtw+jx9IGJAY/hqm67fe1yHyOjZzpSj82OdLrPXVY1f\nl/Vqal4xXZWPo8AWEakUZhCrDl610/B+6dQkwT86PZwVprGLhGss666D87yi8bPHGNuvfEbCU2CL\niEh+RGMQDTv0yWUrn68eIiIiZUyBLSIiUgIU2CIiIiVAgS0iIlICFNgiIiIlQIEtIiJSAhTYIiIi\nJaCsHq9pZseBN6bocHOBE1N0LBlPn23+6LPNH322+VPpn+1b3H3SMXfLKrCnkplty+X5pHLp9Nnm\njz7b/NFnmz/6bHOjJnEREZESoMAWEREpAQrsC7un0AWUMX22+aPPNn/02eaPPtsc6Bq2iIhICdAZ\ntoiISAlQYIuIiJQABfZ5mNkmM9trZvvM7M5C11MuzGyRmf3KzHaZ2U4z+0Khayo3ZhY1sxfN7F8L\nXUs5MbMmM7vPzPaY2W4zu77QNZULM/uP4d+DHWb2QzOrKXRNxUqBPYGZRYG7gNuBlcDHzGxlYasq\nGyngS+6+Engn8Fl9tlPuC8DuQhdRhr4FPOTuK4A16DOeEma2APg8sM7dVwNR4KOFrap4KbDPtR7Y\n5+773X0E+BHwgQLXVBbcvcvdXwin+wn+6C0obFXlw8wWAr8DfK/QtZQTM5sJ3Ax8H8DdR9y9p7BV\nlZUYUGtmMWAGcKTA9RQtBfa5FgCHsuY7UahMOTNbAlwLPFvYSsrKN4E/AzKFLqTMXAEcB/4hvNzw\nPTOrK3RR5cDdDwNfBw4CXUCvu/+ysFUVLwW2TDszqwd+CvyJu/cVup5yYGbvB7rd/flC11KGYsDb\ngO+4+7XAIKC+LVPAzGYRtGBeAcwH6szs44WtqngpsM91GFiUNb8wXCZTwMziBGF9r7v/rND1lJEb\ngd8zswMEl3HebWb/UtiSykYn0Onuo61B9xEEuFy+DuC37n7c3ZPAz4AbClxT0VJgn2srcJWZXWFm\nVQQdIH5e4JrKgpkZwXXA3e7+t4Wup5y4+1fdfaG7LyH4N/uou+tMZQq4+1HgkJktDxdtAHYVsKRy\nchB4p5nNCP8+bEAd+i4oVugCio27p8zsc8DDBD0W/97ddxa4rHJxI/AJ4BUz2x4u+0/u/kABaxLJ\nxR8D94Zf4vcDnypwPWXB3Z81s/uAFwjuInkRDVN6QRqaVEREpASoSVxERKQEKLBFRERKgAJbRESk\nBCiwRURESoACW0REpAQosEXkspnZrXpCmEh+KbBFRERKgAJbpIKY2cfN7Dkz225m3w2fnz1gZt8I\nn0m8xcyaw23XmtkzZvaymd0fjvuMmS0zs81m9pKZvWBmV4aHr896ZvS94chVIjJFFNgiFcLM2oGP\nADe6+1ogDfwhUAdsc/dVwGPAfw13+QHwFXe/Bngla/m9wF3uvoZg3OeucPm1wJ8QPEd+KcHIdiIy\nRTQ0qUjl2AC8HdganvzWAt0Ej+P8cbjNvwA/C58B3eTuj4XL/wn4P2bWACxw9/sB3D0BEB7vOXfv\nDOe3A0uAJ/P/a4lUBgW2SOUw4J/c/avjFpr9lwnbvdnxioezptPo74vIlFKTuEjl2AJ8yMxaAMxs\ntpm9heDvwIfCbf4AeNLde4HTZnZTuPwTwGPu3g90mtkHw2NUm9mMaf0tRCqUvgGLVAh332VmXwN+\naWYRIAl8FhgE1ofrugmucwP8e+DuMJCzn1D1CeC7Zvbn4TE+PI2/hkjF0tO6RCqcmQ24e32h6xCR\ni1OTuIiISAnQGbaIiEgJ0Bm2iIhICVBgi4iIlAAFtoiISAlQYIuIiJQABbaIiEgJ+P8Rv7lcx+QS\n4wAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.subplot(2,1,1)\n", "plt.tight_layout()\n", "plt.plot(history.history['acc'])\n", "plt.plot(history.history['val_acc'])\n", "plt.title('model accuracy')\n", "plt.ylabel('accuracy')\n", "plt.xlabel('epoch')\n", "plt.legend(['train', 'test'], loc='upper left')\n", "\n", "plt.subplot(2,1,2)\n", "plt.tight_layout()\n", "plt.plot(history.history['loss'])\n", "plt.plot(history.history['val_loss'])\n", "plt.title('model loss')\n", "plt.ylabel('loss')\n", "plt.xlabel('epoch')\n", "plt.legend(['train', 'test'], loc='upper left')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Evaluate model" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Test loss: 0.020748827031685506\n", "Test accuracy: 0.9932\n" ] } ], "source": [ "score = model.evaluate(x_test, y_test, verbose=0)\n", "print('Test loss:', score[0])\n", "print('Test accuracy:', score[1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Save model for future use" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": true }, "outputs": [], "source": [ "model.save('mnist_conv_model.h5')\n", "del model" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "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.5.3" } }, "nbformat": 4, "nbformat_minor": 1 }