Skip to content

Instantly share code, notes, and snippets.

@awjuliani
Last active January 28, 2021 10:18
Show Gist options
  • Save awjuliani/acde9d491658265c3fbf6a74b91518e3 to your computer and use it in GitHub Desktop.
Save awjuliani/acde9d491658265c3fbf6a74b91518e3 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Deep Layer Visualization Tutorial\n",
"\n",
"\n",
"First we import the needed libraries."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import numpy as np \n",
"import matplotlib as mp\n",
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"import tensorflow as tf\n",
"import tensorflow.contrib.slim as slim\n",
"from tensorflow.examples.tutorials.mnist import input_data\n",
"import math"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next we import the MNIST data files we are going to be classifying. This database contains images of thousands of handwritten digits, and their proper labels. For convenience I am using a script from Google, which can be download [here](https://github.com/tensorflow/tensorflow/blob/r0.7/tensorflow/examples/tutorials/mnist/input_data.py). Just add it to your working directory, and it will download the MNIST database for you. "
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Extracting MNIST_data/train-images-idx3-ubyte.gz\n",
"Extracting MNIST_data/train-labels-idx1-ubyte.gz\n",
"Extracting MNIST_data/t10k-images-idx3-ubyte.gz\n",
"Extracting MNIST_data/t10k-labels-idx1-ubyte.gz\n"
]
}
],
"source": [
"mnist = input_data.read_data_sets(\"MNIST_data/\", one_hot=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next we define our convolutional network. It will be a network with three sets of convolution -> pooling layers, followed by a fully connected softmax layer. I have choosen 5,5,20 to begin with. Feel free to adjust the number of convolutional filters at each layer. It is these filters we will be visualizing, so we can see in realtime what features are learned from the dataset with more or less filters."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"tf.reset_default_graph()\n",
"\n",
"x = tf.placeholder(tf.float32, [None, 784],name=\"x-in\")\n",
"true_y = tf.placeholder(tf.float32, [None, 10],name=\"y-in\")\n",
"keep_prob = tf.placeholder(\"float\")\n",
"\n",
"x_image = tf.reshape(x,[-1,28,28,1])\n",
"hidden_1 = slim.conv2d(x_image,5,[5,5])\n",
"pool_1 = slim.max_pool2d(hidden_1,[2,2])\n",
"hidden_2 = slim.conv2d(pool_1,5,[5,5])\n",
"pool_2 = slim.max_pool2d(hidden_2,[2,2])\n",
"hidden_3 = slim.conv2d(pool_2,20,[5,5])\n",
"hidden_3 = slim.dropout(hidden_3,keep_prob)\n",
"out_y = slim.fully_connected(slim.flatten(hidden_3),10,activation_fn=tf.nn.softmax)\n",
"\n",
"cross_entropy = -tf.reduce_sum(true_y*tf.log(out_y))\n",
"correct_prediction = tf.equal(tf.argmax(out_y,1), tf.argmax(true_y,1))\n",
"accuracy = tf.reduce_mean(tf.cast(correct_prediction, \"float\"))\n",
"train_step = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We then train the network using batch gradient descent with Adam optimization. Feel free to adjust the batch size and number of iterations to see how it effects the model accuracy."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"step 100, training accuracy 0.56\n",
"step 200, training accuracy 0.78\n",
"step 300, training accuracy 0.76\n",
"step 400, training accuracy 0.84\n",
"step 500, training accuracy 0.9\n",
"step 600, training accuracy 0.92\n",
"step 700, training accuracy 0.9\n",
"step 800, training accuracy 0.76\n",
"step 900, training accuracy 0.86\n",
"step 1000, training accuracy 0.94\n"
]
}
],
"source": [
"batchSize = 50\n",
"sess = tf.Session()\n",
"init = tf.global_variables_initializer()\n",
"sess.run(init)\n",
"for i in range(1001):\n",
" batch = mnist.train.next_batch(batchSize)\n",
" sess.run(train_step, feed_dict={x:batch[0],true_y:batch[1], keep_prob:0.5})\n",
" if i % 100 == 0 and i != 0:\n",
" trainAccuracy = sess.run(accuracy, feed_dict={x:batch[0],true_y:batch[1], keep_prob:1.0})\n",
" print(\"step %d, training accuracy %g\"%(i, trainAccuracy))"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"test accuracy 0.8972\n"
]
}
],
"source": [
"testAccuracy = sess.run(accuracy, feed_dict={x:mnist.test.images,true_y:mnist.test.labels, keep_prob:1.0})\n",
"print(\"test accuracy %g\"%(testAccuracy))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we define a couple functions that will allow us to visualize the network. The first gets the activations at a given layer for a given input image. The second plots those activations in a grid."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def getActivations(layer,stimuli):\n",
" units = sess.run(layer,feed_dict={x:np.reshape(stimuli,[1,784],order='F'),keep_prob:1.0})\n",
" plotNNFilter(units)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def plotNNFilter(units):\n",
" filters = units.shape[3]\n",
" plt.figure(1, figsize=(20,20))\n",
" n_columns = 6\n",
" n_rows = math.ceil(filters / n_columns) + 1\n",
" for i in range(filters):\n",
" plt.subplot(n_rows, n_columns, i+1)\n",
" plt.title('Filter ' + str(i))\n",
" plt.imshow(units[0,:,:,i], interpolation=\"nearest\", cmap=\"gray\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we can choose an image to pass through the network to visualize the network activation, and look at the raw pixels of that image."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7f1e20f42f90>"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAP4AAAD8CAYAAABXXhlaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAADE1JREFUeJzt3V+sVfWZxvHnUWxiS9IgETAiMGljx5iQow7GBkwOkmmJ\nNsFU4pj2QjsJ9oJxmjQhtd5w23phohf1wtKGNpiWqVHQGKWVREOVKTrigOVPxSBQPEcyUCMmJlLf\nXpzl8Xjm8Nsb9lp7r8P7/SQn7L3es9d+WfDstdde+7d+jggByOWiQTcAoP8IPpAQwQcSIvhAQgQf\nSIjgAwn1FHzbK23vt33Q9o/qagpAs3y+5/FtXyTpoKQVko5L2iXprojYP+n3+KIAMCAR4amW97LH\nv1HSXyLinYj4WNJvJK3qYX0A+qSX4F8p6eiE+8eqZQBajg/3gIR6Cf5fJS2YcH9+tQxAy/US/F2S\nvmp7oe0vSLpL0tZ62gLQpBnn+8CI+Lvt/5C0TWMvIBsiYl9tnQFozHmfzuv6CTidBwxME6fzAExT\nBB9IiOADCRF8ICGCDyRE8IGECD6QEMEHEiL4QEIEH0iI4AMJEXwgIYIPJETwgYQIPpAQwQcSIvhA\nQgQfSIjgAwkRfCAhgg8kRPCBhAg+kBDBBxIi+EBCBB9IiOADCRF8ICGCDyRE8IGECD6Q0IxeHmz7\nsKT3JX0i6eOIuLGOpgA0q6fgayzwwxFxqo5mAPRHr2/1XcM6APRZr6ENSc/b3mV7TR0NAWher2/1\nl0bEu7Yvl/R72/siYkcdjQFoTk97/Ih4t/rzhKQnJfHhHjANnHfwbX/R9szq9pckfUPS3roaA9Cc\nXt7qz5X0pO2o1rMpIrbV0xaAJjkimn2CsRcGAAMQEZ5qOafigIQIPpAQwQcSIvhAQgQfSIjgAwkR\nfCChXr+rf8FbvXp1sb5mTXls0vHjx4v1jz76qFjftGlTsT4yMlKsv/XWW8U6cmKPDyRE8IGECD6Q\nEMEHEiL4QEIEH0iI4AMJMR6/g7fffrtYX7RoUX8aOYsPPvigWH/zzTf71Ek7HTt2rFh/8MEHi/VX\nX321znb6jvH4AMYRfCAhgg8kRPCBhAg+kBDBBxIi+EBCjMfvoNN4+8WLFxfr+/btK9avueaaYv36\n668v1oeHh4v1m266qVg/evRosX7VVVcV6706c+ZMsX7ixIli/Yorrujp+Y8cOVKsT/fz+GfDHh9I\niOADCRF8ICGCDyRE8IGECD6QEMEHEuo4Ht/2BknfkjQaEYurZbMk/VbSQkmHJd0ZEe+f5fHTejx+\n282aNatYHxoaKtZfe+21Yn3JkiXn3NO56DSvwMGDB4v1Tt+TuOyyy4r1tWvXFuuPPvposd52vYzH\n/6Wkb05adr+kP0TE1yRtl/Tj3toD0E8dgx8ROySdmrR4laSN1e2Nkm6vuS8ADTrfY/w5ETEqSREx\nImlOfS0BaFpdH+5xHA9MI+cb/FHbcyXJ9jxJ79XXEoCmdRt8Vz+f2irpnur23ZK21NgTgIZ1DL7t\nxyW9LOlq20dsf0/STyT9q+0DklZU9wFME1xXH612xx13FOubN28u1vfu3VusL1++vFg/efJksd52\nXFcfwDiCDyRE8IGECD6QEMEHEiL4QEIEH0iI8/gYqDlzyuO79uzZ09PjV69eXaw/8cQTxfp0x3l8\nAOMIPpAQwQcSIvhAQgQfSIjgAwkRfCChGYNuALl1uq795ZdfXqyfOjX5AtCfd+DAgXPuKQP2+EBC\nBB9IiOADCRF8ICGCDyRE8IGECD6QEOPx0ailS5cW69u3by/WL7nkkmJ9eHi4WH/ppZeK9Qsd4/EB\njCP4QEIEH0iI4AMJEXwgIYIPJETwgYQ6jse3vUHStySNRsTiatl6SWskvVf92gMR8VxjXWLauvXW\nW4v1TufpX3jhhWL9lVdeOeee0N0e/5eSvjnF8oci4vrqh9AD00jH4EfEDklTXeZkym8EAWi/Xo7x\n19rebfvntr9cW0cAGne+wf+ZpK9ExJCkEUkP1dcSgKadV/Aj4kR8NrrnMUlL6msJQNO6Db414Zje\n9rwJtW9L2ltnUwCa1c3pvMclDUuabfuIpPWSltsekvSJpMOSvt9gjwBqxnh89OTSSy8t1nfs2FGs\nX3vttcX6LbfcUqy//PLLxXp2jMcHMI7gAwkRfCAhgg8kRPCBhAg+kBDBBxLq+AUeoGTdunXF+nXX\nXVesP/dceUQ35+mbwR4fSIjgAwkRfCAhgg8kRPCBhAg+kBDBBxJiPD6KbrvttmL9qaeeKtY//PDD\nYn3lypXF+s6dO4t1lDEeH8A4gg8kRPCBhAg+kBDBBxIi+EBCBB9IiPH4yc2ePbtYf+SRR4r1iy++\nuFh/9tlni3XO0w8Ge3wgIYIPJETwgYQIPpAQwQcSIvhAQgQfSKjjeHzb8yX9StJcSZ9IeiwiHrE9\nS9JvJS2UdFjSnRHx/hSPZzz+AHU6z97pPPoNN9xQrB86dKhY7zTevtPj0ZtexuOfkfTDiLhW0tcl\nrbX9z5Lul/SHiPiapO2SflxXswCa1TH4ETESEbur26cl7ZM0X9IqSRurX9so6fammgRQr3M6xre9\nSNKQpJ2S5kbEqDT24iBpTt3NAWhG18G3PVPS7yT9oNrzTz5251gemCa6Cr7tGRoL/a8jYku1eNT2\n3Ko+T9J7zbQIoG7d7vF/IenPEfHwhGVbJd1T3b5b0pbJDwLQTh2H5dpeKum7kvbYfl1jb+kfkPRT\nSZtt/7ukdyTd2WSjAOrDdfUvcFdffXWxvn///p7Wv2rVqmL96aef7mn96A3X1QcwjuADCRF8ICGC\nDyRE8IGECD6QEMEHEuK6+tPcwoULi/Vt27b1tP5169YV688880xP68dgsMcHEiL4QEIEH0iI4AMJ\nEXwgIYIPJETwgYQ4jz/N3XvvvcX6ggULelr/iy++WKw3fT0HNIM9PpAQwQcSIvhAQgQfSIjgAwkR\nfCAhgg8kxHn8llu2bFmxft999/WpE1xI2OMDCRF8ICGCDyRE8IGECD6QEMEHEuoYfNvzbW+3/abt\nPbbvq5avt33M9v9UPyubbxdAHbo5j39G0g8jYrftmZJes/37qvZQRDzUXHu4+eabi/WZM2f2tP5D\nhw4V66dPn+5p/WinjsGPiBFJI9Xt07b3SbqyKrvB3gA05JyO8W0vkjQk6b+rRWtt77b9c9tfrrk3\nAA3pOvjV2/zfSfpBRJyW9DNJX4mIIY29I+AtPzBNdBV82zM0FvpfR8QWSYqIE/HZBdcek7SkmRYB\n1K3bPf4vJP05Ih7+dIHteRPq35a0t87GADSn44d7tpdK+q6kPbZflxSSHpD0HdtDkj6RdFjS9xvs\nE0CNuvlU/4+SLp6i9Fz97QDoB8bjX+DeeOONYn3FihXF+smTJ+tsBy3BV3aBhAg+kBDBBxIi+EBC\nBB9IiOADCRF8ICE3Pb+5bSZQBwYkIqYcOs8eH0iI4AMJEXwgIYIPJETwgYQIPpAQwQcSIvhAQo1/\ngQdA+7DHBxIi+EBCfQu+7ZW299s+aPtH/Xrebtk+bPsN26/b/lML+tlge9T2/05YNsv2NtsHbD8/\nyNmLztJfayZSnWKy1/+slrdiGw56Mtq+HOPbvkjSQUkrJB2XtEvSXRGxv/En75LttyXdEBGnBt2L\nJNleJum0pF9FxOJq2U8l/V9EPFi9eM6KiPtb1N96SR+0YSLVat6HeRMne5W0StL31IJtWOjv39SH\nbdivPf6Nkv4SEe9ExMeSfqOxv2SbWC069ImIHZImvwitkrSxur1R0u19bWqCs/QntWQi1YgYiYjd\n1e3TkvZJmq+WbMOz9Ne3yWj79R/9SklHJ9w/ps/+km0Rkp63vcv2mkE3cxZzImJUGp/FeM6A+5lK\n6yZSnTDZ605Jc9u2DQcxGW1r9nAtsDQi/kXSrRrb8MsG3VAX2nYutnUTqU4x2evkbTbQbTioyWj7\nFfy/Slow4f78allrRMS71Z8nJD2pscOTthm1PVcaP0Z8b8D9fE7bJlKdarJXtWgbDnIy2n4Ff5ek\nr9peaPsLku6StLVPz92R7S9Wr7yy/SVJ31A7JgG1Pn+8t1XSPdXtuyVtmfyAPvtcfy2cSPX/Tfaq\ndm3DgU1G27dv7lWnJR7W2IvNhoj4SV+euAu2/0lje/nQ2LRimwbdn+3HJQ1Lmi1pVNJ6SU9J+i9J\nV0l6R9KdEfG3FvW3XGPHquMTqX56PD2A/pZKeknSHo39u3462eufJG3WgLdhob/vqA/bkK/sAgnx\n4R6QEMEHEiL4QEIEH0iI4AMJEXwgIYIPJETwgYT+ARxLf9DSTdwIAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f1e2550a490>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"imageToUse = mnist.test.images[0]\n",
"plt.imshow(np.reshape(imageToUse,[28,28]), interpolation=\"nearest\", cmap=\"gray\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we can look at how that image activates the neurons of the first convolutional layer. Notice how each filter has learned to activate optimally for different features of the image. "
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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\n1Sm8tZAUP78hFq0Vn3/++UwtynhUv/HGG926tza/99573bEPPfSQW486mnvZjXIRHXe0XvNux+u2\nLkkbNmxw69///vfdune1lbfeessd29/f79abve7hnV0AAAAAQOGw2QUAAAAAFA6bXQAAAABA4bDZ\nBQAAAAAUDptdAAAAAEDhdHQ35jytW7cuU4s6WEYdD6Oual4Hwug2Dh065Na9joxTpkxxx95www1u\nPeqS5nXpvfvuu92xK1eudOteJ8Q33njDHfvCCy+4ddRucHAwU/M6FUrStm3b3Pqtt97q1mfOnJmp\nLVy40B0bddmMuuh63Wujbp9RF92oK6H32FqwYIE7NnqsRLxOulGeo+61qF3U4dSre48JKe6C7OVu\nyZIl7tjFixfXdHxeZ/yoY/LVV1/t1r2OpNF9iTopR12kvc7tTz31lDs2Om6vky6dZxsnOs95Ha+j\njvtRh36v63zU+T/qDht1KvbGR/mMju/o0aOZWnQfow640eNqxYoVmVqU2+g5yLtSQNQ9m8dE7aLn\nUO+c893vftcdG1355D3veY9bnzdvXqYWrR+i836UF68jcXQFFm/9JcXPb9HazBP9u0ZXrYgecx7v\nMSvF57G88M4uAAAAAKBw2OwCAAAAAAqHzS4AAAAAoHDY7AIAAAAACueym10z+7qZ9ZvZK6NqvWa2\n1sw2m9lPzcz/5jTQ4cg/yorso6zIPsqM/KNoqunG/A1JfynpW6NqX5D0s5TSn5vZ5yX9UaXWVJMn\nT3br586dq/u2+/r6qp5vy5Ytbr2np8ete90Ko26avb29bn3//v2ZWtTpNur6F3XkXLp0aaYWdd5c\ntWqVW/eOJerQ2+baNv/V2rNnT031V1991a17efa6T0pxt8LoMRF1K/REc3Z3d1c957Jly9yxUX3u\n3Llu3XtsRfdxzpw5bv3IkSNuvQ20bfajjq9e5/Eo51G37/nz52dqUef6qLNrlMWurq5MLepKuW/f\nPrfuPVds377dHet1OZfi5wrvHB11B42eZ705vecrKe662wbaNvvROsTr+huNjbrGep2Xo/NttGaJ\nzuXez7rWn783Puq6HJ3Lo66799xzT6a2detWd2z0ePM6/UbZb3NtmX/v/CnVdjWHKHPRlU+8247W\n/NFtRx2gvcdb9LiKbtvrwi75XaRfe+01d2z0/BZ1dPbWONHVVqJ1T7MfF5c906SUnpE0djX2UUnf\nrPz+m5IebPBxAW2B/KOsyD7KiuyjzMg/ima8L6vOTSn1S1JKab8k/20PoJjIP8qK7KOsyD7KjPyj\nY1XzMeZq+O+7V4x+q97M2vmjS+hgw8PD4UdAchZOOjw8/Pbvzaymi3EDtUgptSL/l5yQ/KMZ2jH7\nY4+H7CMPLVrzSJfIP2t+NEu16/7xbnb7zezqlFK/mfVJOnCpwRMnThznNED1xp5QRy+0G6zq/HOS\nR7OM3Ux63wdqgJrO/eQfzdCO2Wdzi2YYm7McN79V5581P5ql2nV/tZtdq/y66AlJn5L0ZUmflPR4\nrQeYJ69RQ9QEJHpQnjx5MlOLGoYMDQ259aixhydqdFLLcUe3MTg46NajJ2NvgRrd96hRg/cF9qiR\nRAfoqPzXK1ooHjt2rKqa1JqmHFH+p0yZkqn99m//tjs2atTw7LPPuvWomZcnahbT5toy+zt27HDr\n3rk/aiYS/Ty8n6nXsDCa71L1Wpr0RY1+jh49mqkNDAy4YxctWuTWly9f7ta954ToeSK6j95zZ9RE\nJXpuahNtmf3o/Oydu6J/36iZjPdzihpUzZzpN+ONzsNeXqKMRw20vDVVtIaLMrdy5Uq37t3PqMFb\ntObzfjbR46QDtF3+o/VwLS+qRj+7nTt3unXvxYOoOV/0WNm1a5dbj55XPNFxL1myxK17m77o3y96\ngSRqYuudV6LzQfRv0mzVXHroe5KelbTMzHaa2W9K+pKkD5jZZkn3Vf4fKBzyj7Ii+ygrso8yI/8o\nmsu+5JRSejj4o19t8LEAbYf8o6zIPsqK7KPMyD+Khi9UAQAAAAAKh80uAAAAAKBw2OwCAAAAAAqn\nY9vESXEHMa97ZFdXV0237XWTrfVSAmfOnHHrXrfKqEvaoUOH3Pq8efMytY0bN7pjo9vu7e1169//\n/vcztU9/+tPu2Llz/euKP/PMM5la1EEVtWtFa3+vu18rrvEXPZa9rsuS35E26lJ78OBBt/7YY4+5\nda/Tb9Sp8cSJE24dtTt16lRT5ztwwL/KRtTROTr3e91no46vXkd7Kc6o56677nLrUUa9Ts/PP/98\nTbfh/ZtEz0GoXXRpDa9DaiO6XUfrnug5KHpMeOOjrsvRffQe91FH23vuucetR93Zd+/enan95Cc/\nccdGj1nvuL31HsYnyoVXj9YJ0W1EVxzxRN2fazk3S34H9ajrctTlPMqX10k5emxG+4xazh/R1Wei\nK3Y0G+/sAgAAAAAKh80uAAAAAKBw2OwCAAAAAAqHzS4AAAAAoHDY7AIAAAAACqejuzE3W62dZ2vp\nAO11wZTiDrNeZ8M9e/a4Y6PubhcuXHDrK1euzNQWLlzojj1y5Ihb//GPf5ypRfcRnSHqQNjs+WbN\nmuXWu7u73frq1asztauuusod+8orr7j1KOfeOSHqbBh18ET7i86Vtf5Mo46Vnlo6e65YscKt33LL\nLW496srpddGPOl97VyyQ/C7/tdxvtJdo3RN12K6l83bUob6WtVa0vvHWMVKc/a1bt2Zq0Zpl27Zt\nbn379u2Z2tmzZ92x6FxRR+da10het+Nozb906VK3HnU09x6HXsdxKX4cRrft1Xfu3OmOpRszAAAA\nAAA5YbMLAAAAACgcNrsAAAAAgMJhswsAAAAAKBw2uwAAAACAwqEbc4fyuqedO3fOHTtnzhy3HnU8\nvP322zO1G264wR375JNPuvUtW7ZkalEHO8AT5TPqeHjNNde49eXLl1c95wsvvODWDxw44Na9Y/Q6\nLEZjgVpzMXPmzEztwQcfdMf29PS49Y0bN7p1L//R8UWdOr38R92sgVp4V6G47bbb3LFR99qoe/Pr\nr7+eqUUdx6NO6SdPnszUOO+jFt75XYrXN9OnT3frXkaj7NfKe1xEnZ7b5dzPO7sAAAAAgMJhswsA\nAAAAKBw2uwAAAACAwrnsZtfMvm5m/Wb2yqjaF81st5m9WPl1f76HCbQG+UdZkX2UFdlHmZF/FE01\nDaq+IekvJX1rTP0rKaWvNP6Qyilq3hR9Wf38+fOZmtccQYobiaxZs8ate82ovPkkae3atW79yJEj\nbr0Dkf8mMLNMLWq8MG3aNLe+cuVKtz537txM7Ze//KU7NmqyEDV/8xpXnT592h3bgch+E9TauO/G\nG2/M1BYtWuSOPXbsmFv/p3/6J7fuNT4cGBhwx86ePdutHz582K13GLLfBLU2b+rr68vUfuVXfsUd\nGz1P7Ny5061766fjx4+7Y6PHxNmzZ916ByL/TeDlP2pE1d3d7dajJmpHjx7N1KLmnl7jN0nq6upy\n63v37s3UTp065Y5tF5d9Zzel9Iwkb+eSXZ0CBUP+UVZkH2VF9lFm5B9FU893dj9jZuvN7Gtm5r/9\nCBQX+UdZkX2UFdlHmZF/dKTxbna/KmlJSmmVpP2S+FgDyoT8o6zIPsqK7KPMyD86VjXf2c1IKY3+\nwsIjkn50qfGjLypsZuHnxoF6DA8PN+UC7rXkf/T38czM/W4q0AgppdzzX+u5n/yjGdox+2OPh+wj\nD81Y81TmqTr/rPnRLNWu+6vd7JpGfVbfzPpSShe/Ff2QpNcu9ZejLz8DjTT2hFpr45dLGHf+Ocmj\nWcZuJkcvOOq5WdVx7if/aIZ2zD6bWzTD2Jw1cPM77vyz5kezVLvuv+xm18y+J+n9kmab2U5JX5R0\nr5mtkjQsabuk363raEvG+2F4HWMl6YorrnDrXge23t5ed2xPT49bv/322936zTffnKk98sgj7tiX\nXnrJrQ8NDbn1TkP+m2PGjBmZWtRFfP78+W59yZIlbt3rJL5hwwZ3bNRRMOrGfPDgwUytQQvtliP7\njdeIbNxyyy1V326U8127drl177wddQH1un1K8WOlk5D9xqtlEzZlyhS3/r73vS9TW7ZsmTs2WvRu\n3rzZre/bty9T27ZtmzvW68Ivce6HL8q+1118+fLl7tgoW4cOHXLrkydPztQmTfK3fFHn8h07drj1\nTZs2ZWrt3on8spvdlNLDTvkbORwL0HbIP8qK7KOsyD7KjPyjaPiMGQAAAACgcNjsAgAAAAAKh80u\nAAAAAKBw2OwCAAAAAApnXNfZRX28LrNRN+ao09rs2bMztajTmtddWZLmzZvn1vv7+zO1p556yh17\n5swZtw54vA6BknTllVdmatHlC97//ve79UWLFrn1Z599NlPbvXu3OzbqKDgwMODWvU7PQCMu/3HT\nTTe59cWLF2dqg4OD7tgtW7a49dOnT7v148ePZ2rRFQG8sUAjsh911r/vvvsytenTp7tjo07KXtdl\nyb/CBed91CLKfpTR1atXZ2ozZ86sac7oaive+Tnquhyte9566y23Hj1/tDPe2QUAAAAAFA6bXQAA\nAABA4bDZBQAAAAAUDptdAAAAAEDhsNkFAAAAABQO3ZhzdOHCBbe+dOnSTO3o0aPuWK9zsyR1d3dn\nahMm+K9d3HLLLW79xhtvdOvf+MY3MrXt27e7YxvReRHFE2XxmmuucetdXV2Z2r333uuOveOOO9x6\n1JF2/fr1mVrURXxoaMitR49P8g/P8PBw3bfxoQ99yK17536vk6wkbd261a2fPHnSrXvPNydOnHDH\nkn3Uq6+vz63/2q/9mlufNWtWphady19++WW3HnUR9x5Dx44dc8cCHjNz66tWrXLrXp6j8+qcOXPc\nepRRb/8RXbEl6lC+d+9et96J537e2QUAAAAAFA6bXQAAAABA4bDZBQAAAAAUDptdAAAAAEDh0KAq\nR1EzHq/ZTdQEZPny5VXfxurVq92xUUOf6EvpTz31VKZ29uxZdyzgmTZtmluPGlctWbIkU7vtttvc\nsVHTtp/97Gdu3XtsRQ2EDh486NbPnz/v1lFuURPCWnziE59w69G5f/LkyZnaj370I3fs6dOna6r3\n9vZmajTpgafWJjXec8Ltt9/ujo3WLPPnz8/Unn76aXds9NiMmu4cOHCg6tsAPAsXLnTr73nPe9z6\nlClTMrXp06e7Y6PcRrx1UtRA66233nLr0fNEJ+KdXQAAAABA4bDZBQAAAAAUDptdAAAAAEDhsNkF\nAAAAABTOZTe7ZrbAzH5uZhvM7FUz+4NKvdfM1prZZjP7qZnNzP9wgeYh+ygz8o+yIvsoK7KPIqqm\nG/N5SZ9LKa03sx5JL5jZWkm/KelnKaU/N7PPS/ojSV/I8VhbLuo+OGmS/8/Y09Pj1r0OZ7V2Sbv1\n1lsztTVr1rhjZ8+e7dYfeeQRt75z5063XkJk/zK8zrCSdMUVV9RUv/POOzO1xYsXu2Off/55t755\n82a37nVSPnXqlDvW63JeYuS/IureXauVK1dmag888IA7NuoEu27dukytv7/fHRt1Uo6em6KrApQQ\n2a+otetytJbxOu5/5CMfccd2d3e79Y0bN2ZqUWZ3797t1qOO+8ePH3frJUT2R/Hy73VRlqQVK1a4\n9cHBQbfurZ+iKz9Ej8MzZ8649SuvvDJT27Ztmzs2ujJLkVz2nd2U0v6U0vrK7wclbZS0QNJHJX2z\nMuybkh7M6yCBViD7KDPyj7Ii+ygrso8iquk7u2a2SNIqSc9Lujql1C+NPDgkzW30wQHtguyjzMg/\nyorso6zIPoqimo8xS5IqH2f4G0mfTSkNmtnY99TDz7qM/jiWmWnCBPpiofGGh4dr/shVNerJ/uiP\nP5pZ+BEvoF4pJfKPUmrH7I89HrKPPOSRe4k1PzpDtev+qja7ZjZJI6H/dkrp8Uq538yuTin1m1mf\npAPR3584cWI10wB1GXtCbcT37OrNPid5NMvYzWT0nc8ab5P8o+21Y/bZ3KIZxuasEZtf1vzoFNWu\n+6tdiTwq6fWU0l+Mqj0h6VOV339S0uNj/xJQAGQfZUb+UVZkH2VF9lEol31n18zWSPqEpFfN7CWN\nfHThjyV9WdL/NbPfkrRD0n/I80DbQfRKbdQ19siRI2797Nmzmdq1117rjo1eoV69enWmds0117hj\nX3zxRbfEPdUgAAAM3UlEQVT+93//91UfXxmR/Xfy3qXzOv5JcYfyO+64w60vW7YsUztwwH/heNOm\nTW496qbpdTccGBioemxZkf9/U+u7JVGX8g9/+MOZWvRY2b9/v1tfu3ZtphY91wwNDbn1qBtz1Nmz\nbMj++EUd973sX3fdde7YGTNmuPWXX345U4s6zEbn+KjzbCM+DVAEZP+dvPPzzTff7I6N1vFdXV1u\n3TtvR1eEiN6xnDZtmlv3OkC/+eab7ljvCjFFc9nNbkrpXyRFn0n41cYeDtA+yD7KjPyjrMg+yors\no4j4QhUAAAAAoHDY7AIAAAAACofNLgAAAACgcNjsAgAAAAAKp6rr7JaR1/ks6jwbdS+OrjHpdaTd\nu3evO/bjH/+4W/e6wUXH8Z3vfMetR10JAY/X9W/q1Knu2L6+Prf+wAMPuPXu7u5M7emnn3bH1prb\n/v7+TO3EiRM13QbKoxFdWe+//3637j0nRF2XH330UbfudUw+duyYOzZ6zoo6fqLcauk6HnWBjTrV\n3nvvvZnawoUL3bFRx33v3H/48GF37K5du9z6yZMn3TrKLcr+3LlzM7V3vetd7tgpU6a49UWLFrl1\n70op0VUlent73XrU+d/rXB4915QB7+wCAAAAAAqHzS4AAAAAoHDY7AIAAAAACofNLgAAAACgcGhQ\nFfC+9B19EfzQoUNufcGCBW69p6cnU4u+8P7www+79UmTsj+6P/3TP3XHvvrqq279/Pnzbh3lFjVW\n6+rqytS8LEvSBz7wAbe+fPlyt75169ZMbeLEie7YU6dOufWo+cLAwECm1ogmREDUeGTNmjVu3Wsi\nuHnzZnfsa6+95tavuuqqTG3OnDnu2Khx1dDQkFsHqjVz5ky3ftddd7n166+/vurbjs7xR44cydR2\n7Njhjj1w4IBb95qPAlGzTW9t7p2DJend7363W/fWTpK/Br/22mtrOr7XX3/drW/bti1TK/N5n3d2\nAQAAAACFw2YXAAAAAFA4bHYBAAAAAIXDZhcAAAAAUDhsdgEAAAAAhUM35hpE3f2iLs1Rt2Ovy+aX\nvvQld2zU7XPLli2Z2gsvvOCOjTobAp6oU/Hp06cztagLbNRR8Ny5c27dzDK1M2fOuGNPnDjh1qOu\n6GXuQIjaed3Ir7nmGnfsxz72Mbe+cuVKt7579+5MzTuXS1JfX59bnz59eqYWdV3m3I+83HDDDW79\n7rvvdute9+a33nrLHbtx40a37nVj7u/vd8dytQnUYsaMGW79yiuvzNSuu+46d+y8efPc+ksvveTW\nvc7lc+fOdcf++Mc/dutRN//BwUG3Xla8swsAAAAAKBw2uwAAAACAwmGzCwAAAAAonMtuds1sgZn9\n3Mw2mNmrZvb7lfoXzWy3mb1Y+XV//ocLNA/ZR5mRf5QV2UdZkX0UUTUNqs5L+lxKab2Z9Uh6wcye\nqvzZV1JKX8nv8ICWIvsoM/KPsiL7KCuyj8K57GY3pbRf0v7K7wfNbKOk+ZU/zrZQLYizZ89masPD\nw+7YqNvrpk2b3Pr73ve+TO22225zx3rdOyXpueeey9SOHj3qjsX4lDX7Uc69zq5RF9iom2bUvdnr\nKLhz5053bNT9PKXk1jE+Zc2/11HzwQcfdMf++q//ult/73vf69Yfe+yxTK27u9sd63WvlaQ9e/Zk\nalGXc4xPWbPvmTp1qluPzuUDAwNu3es6HnXQjzrub926NVOLuvZjfMqa/UmT/O2QtxeI7N+/363P\nnj276tt4/fXX3bp3NYxL1fFONX1n18wWSVol6V8rpc+Y2Xoz+5qZ+c/MQAGQfZQZ+UdZkX2UFdlH\nUVS92a18nOFvJH02pTQo6auSlqSUVmnkVSA+2oBCIvsoM/KPsiL7KCuyjyKp5ju7MrNJGgn9t1NK\nj0tSSmn0Z1UekfSj6O9fuHBh9G1pwgSaQKPxhoeHG/5R1nqzP/ojwWYms8J+CggtllIi/yildsz+\n2OMh+8hDHl/fYc2PTlHtur+qza6kRyW9nlL6i4sFM+urfLZfkh6S9Fr0lydOnFjlNMD4jT2hRt89\nrVFd2eckj2YZu5kcveCoA/lH22vH7LO5RTOMzVmDNr+s+dERql33X3aza2ZrJH1C0qtm9pKkJOmP\nJT1sZqskDUvaLul36zpioM2QfZQZ+UdZkX2UFdlHEVXTjflfJHkv0/yk8YfTPhr0rqDL65r8ne98\nxx27evVqt/7iiy9mal63XIxfWbNfi6hbuNc1U5J6enrc+rZt2zK1ffv2jf/AULey5t/rgjx//nxn\nZPzOddSN/IknnsjU1q1b545944033PqsWbMytfPnz7tjG/QOZ+mUNfteR9q+vj537LRp09x61EXf\nu2rFhg0b3LGvvea/aeg93ngHvbHKmv3Dhw+79V/84heZWpTbqLP+nXfe6da9fUb0rnh05Ys89ypF\nwmfMAAAAAACFw2YXAAAAAFA4bHYBAAAAAIXDZhcAAAAAUDjVXnqodLxGCI36IrjXoOr48ePu2Fde\necWt/+M//mOmNjg4WN+BATXav3+/W3/yySfd+vr169261wDo7Nmz7tgdO3a49XPnzrl1oBZe7rwm\nJZJ04MABtx6dz5977rlM7dChQ+7YyZMnu3WvMRDNCdEIXqOz06dPu2OjBoJRbr3HSnTO7urqcuve\n8w3nfTSC10BN8s/lUfajPYK35pekW2+9NVOLmlzt3bvXrZP/6vDOLgAAAACgcJq62W12i+wytORu\nxbu5/Bxr16ALvbf9nM3W7Fc1m/1vWoSfYRmyv2vXrqbOJ8WffMhLGX6OeSjDOePIkSNNna8V72aV\n4efYaK1YuzV7zmb/nFjzj09TN7ucLBqvFcHn51g7For5iD56lBeyX7syZD+63nSe2OyiXUQf08xL\ns8/7GJ8ynDPKsNktwr8pH2MGAAAAABQOm10AAAAAQOFY3m9PmxmfQ0LLpJSsVXOTfbQa+UdZkX2U\nFdlHmXn5z32zCwAAAABAs/ExZgAAAABA4bDZBQAAAAAUDptdAAAAAEDhNGWza2b3m9kmM9tiZp9v\n0pzbzexlM3vJzH6R0xxfN7N+M3tlVK3XzNaa2WYz+6mZzcx5vi+a2W4ze7Hy6/4GzrfAzH5uZhvM\n7FUz+4NKPc/7OHbO36/Uc7ufeWt2/sl+Q+Yj+w1QxHN/s7N/iTkLk3+y37A5yX7985H9Bmh2/vPO\nfmUO1j2duu5JKeX6SyMb6q2SFkrqkrRe0ruaMO+bknpznuNuSaskvTKq9mVJf1j5/eclfSnn+b4o\n6XM53b8+Sasqv++RtFnSu3K+j9Gcud3PnDPS9PyT/VxzSParvz+FPPc3O/uXmLMw+Sf7DZuX7Nc/\nH9mv/z6x7slvvsJk/zJzNvR+NuOd3TskvZFS2pFSGpL0A0kfbcK8ppzfuU4pPSPpyJjyRyV9s/L7\nb0p6MOf5pJH72nAppf0ppfWV3w9K2ihpgfK9j96c8yt/3LJ2+nVoRf7Jfv3zkf36FfLc3+zsX2JO\nqSD5J/sNQ/brn4/s1491T37zSQXJ/iXmbHj+m7HZnS9p16j/361/uyN5SpJ+ambrzOx3mjDfRXNT\nSv3SyA9R0twmzPkZM1tvZl9r9EeILjKzRRp5hel5SVc34z6OmvNfK6Xc72cOWpF/st9AZH/cynTu\nb0X2pQLmn+zXhew3ENkfN9Y9+Spc9sfM2fD8F7lB1ZqU0u2SPqSRf7C7W3QceV/I+KuSlqSUVkna\nL+krjZ7AzHok/Y2kz1ZeeRl7nxp+H505c7+fBUL2G4Tsd6R2yH8zLmBfuPyT/bqR/QYh+x2nHbIv\nse5p1JwNvZ/N2OzukXTdqP9fUKnlKqW0r/LfAUk/1MjHKpqh38yuliQz65N0IM/JUkoDqfJhd0mP\nSFrdyNs3s0kaCeC3U0qPV8q53kdvzrzvZ46ann+y3xhkv25lOvc3NftS8fJP9utH9huD7NeNdU9O\nipb9aM5G389mbHbXSbrBzBaa2WRJvyHpiTwnNLPuyqsEMrPpkj4o6bW8ptM7P1f+hKRPVX7/SUmP\nj/0LjZyvEryLHlLj7+ejkl5PKf3FqFre9zEzZxPuZ16amn+y31Bkvz5FPvc3O/uZOQuYf7JfB7Lf\nUGS/Pqx7cpqvgNl352z4/Uw5di67+EvS/RrpsPWGpC80Yb7rNdL97SVJr+Y1p6TvSdor6ayknZJ+\nU1KvpJ9V7u9aSbNynu9bkl6p3N/HNPLZ+kbNt0bShVH/li9WfpZX5ngfozlzu59NyGPT8k/2c88h\n2a/tPhXu3N/s7F9izsLkn+w3ZD6yn28WyX5t94t1Tz7zFSb7l5mzoffTKpMBAAAAAFAYRW5QBQAA\nAAAoKTa7AAAAAIDCYbMLAAAAACgcNrsAAAAAgMJhswsAAAAAKBw2uwAAAACAwmGzCwAAAAAonP8P\nDjrwo6A00qUAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f1e2554ae10>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"getActivations(hidden_1,imageToUse)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can do this again for the second layer..."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA7sAAADKCAYAAABkDFcPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XuQXOV55/HfM3dJI40kkIQuRkISBswKtCSOQrDXBjsx\n5Rteb23FcWodO1W7tVW5uOKqrJ14N6ns/pPNbtbrymVdTmxCUmadCuAYqmyDKUISTMIKgxABISHA\noAszo5FmRqO5aab73T+mNRmNZtD7dJ/TfS7fT1UXmuaZp9/p/vXb5+3uc46FEAQAAAAAQJG0tXoA\nAAAAAAAkjcUuAAAAAKBwWOwCAAAAAAqHxS4AAAAAoHBY7AIAAAAACofFLgAAAACgcFjsNomZvc3M\nzpqZ1X7+GzP7xVaPC0gb2UdZkX2UGflHWZH9bGGxmzAz+5GZTdRCPlb771UhhGMhhDVhiRMbm9kv\nmNnfpzCWT9bGM2ZmD5jZ2qRvA7ggK9k3s6vM7NtmdsLMqmZ2dZL9gcUylP0Pmtnfm9mwmZ00s6+a\n2aokbwNYLEP5f6+ZHazl/5SZ3W9mW5K8DWChrGR/Uf+v17Z9dqZ1G3nDYjd5QdKHaiFfXftv/2V+\nx2q/Vxcza1/iuhslfUXSz0vaJGlS0v+p9zaACJnIvqSqpO9K+ngjvQGHrGR/jaT/JmmzpBskbZP0\nP+q9DSBSVvL/gqSfCSGsk7RF0lGx3YN0ZSX7F/7fbZJ2NtK/iFjspsMuucJse+2dlrZF11+vucn4\n1tq7Qmdq13eZ2f80s9fN7E0z+2Mz6679v/eY2TEz+09m9qakry8xhk9KejCE8IMQwoSk/yLp47zL\nj5S1PPshhMEQwlckPb3UeICUZCH73wwhPBJCmAohjEr6E0m3pfC3AotlIf+nFiw02jT3xueuZP9M\n4BItz36trl3SH0j65aXGVGYsdpvrkndaQggvSfqPkv6h9q7Q+tr/+u+Sdku6qfbfrZJ+a8GvXiVp\nraSrJf2HJW7rRknPLbidVyWdl/T2xv8MwK2Z2QeypJXZf4/mPu0CWqWp+be5fSWHJU1I+lytJ9AK\nzZ77Pyfp8RDCPyUz/OJgsZuOvzazM7XLA3X2+PeSfi2EMBpCGJf0u5J+bsH/r0j67RDCTAhheonf\n75U0uui6UUmr6xwPECML2QdaIVPZN7OflvTvNPetHiBtmch/bV/JdZKukPSfJR2pcyxArJZn38ze\nVuvxW4v/H6SOVg+goO4KIfxNvb9sZhskrZT0Q7P5byK06eKvJZwKIcy8RZtzmtt/a6E1ksbqHRcQ\nIQvZB1ohM9k3s5+U9A1J/yaE8Eq9YwIcMpN/SQohjJjZn0t6zsy2hBCq9Y4NuIwsZP9Lkv5rCOFc\nveMoMha76fB+V37xVx2GNPcVnBtDCG9G/s5iL0i6eX5Ac0dl6xLvciJdWcg+0AqZyL6Z/UtJfy3p\n0yGEx51jAuqVifwv0ilpg+be6B9x/i4QKwvZf5+k28xs4QEJ/8HMPhtC+KZzfIXD15iba7knxICk\nbWbWKUm1Q5X/iaT/XXvHR2a21cx+xnFb35D0ETO7rXZQqt+RdH/t6xFAszUz+6od2KGn9mPPhQM9\nAC3QtOyb2b/Q3JHIfyWE8J3Ghg0kopn5/9dm9nabs0HS/5L0TAiBhS5aoZnbPddq7gOumyXtrV33\nYUnfqmfgRcNiN3lv9e5LWObfj2nuk9h+MxusXfcFzR02/x/NbETSI3IcXCqE8KLmdoK/V1K/pFWS\nfin294E6ZCL7NZOSztZu6yXNvWsKpCUr2f+cpCslfa12pM8xM3ve8ftAPbKS/62Svqe5uf85SbOa\nOwUdkJZMZD+EMFQ7E8VgCGGgdnunOa7JHFvifMcAAAAAAOQan+wCAAAAAAqHxS4AAAAAoHBY7AIA\nAAAACif1Uw+ZGTsFo2VCCN5DwieG7KPVyD/KiuyjrMg+ymyp/HOeXSBFPT09l1w3MzOjzs7Oi65r\nb2939V2ufmpq6pLbrFQqrt7T00sfvK9SqVxyu94D3LW1XfplkqX6StKCk6tHWap+dnZWHR3pTHOt\n6F2tVqN7zMy81fnnm2Px412tVpfMQHe378xQi58/0tLZl/z3w9TU1CXXhRCWzFeaB3j05H+p2uXu\n6yQk1TutcXvnvDQs9Tcs9bd5ntNe3teVpR6P5eZnb/aXqk/isV5uHK14ziI7vLla6rXj/Pnz6urq\nuuR677bJUq9By73Gz87Ounovleflsp+EpHqnNfcvN5821NXM7jSzl8zsiJl9vpFeQN6Qf5QV2UdZ\nkX2UGflHHtW92DWzNkl/KOkDkm6U9HNmdn1SAwOyjPyjrMg+yorso8zIP/KqkU92f0LSyyGE10MI\nM5K+KemuZIYFZF7d+U/rq4WSUvtareT/6k6r+0rp3td57Z2AurOf5mOdZvbzKM37Oq+9E9DQdk/G\n/7YllfixxqVKtd3v3Q3AI+Ov8S2R6rZgA7+7VdKxBT8fr10HlEHd+U9zAk1zgz+tyTmvi8a89k5A\n3dnP62I3jxvleV2kZPy+bmi7J+N/25LSnItKnKO8KtV2f14Xu3l9XqW6fZBaZwAXHZigra0t1ckT\n5VatVjN38JWFB4swMzZAkYoQAtkHgJKJnfsbWeyekHT1gp+31a4DyiAq/0sdNRZIQxOP8ho992f8\nE2oUxOLFZIpHYyb7KDO2+5Epi+f+NI7GvF/SbjPbbmZdkj4h6cEG+gF5Qv5RVmQfZUX2UWbkH7lU\n9ye7IYSKmf2ypEc0t2j+WgjhUGIjAzKM/KOsyD7KiuyjzMg/8srS3s/FzLK1Iw1KJYTQsh2lzCws\ndaLypXj35fXUe7/SNz09HV3rnT88X+3z7uNWhn3iPF9NnpmZaXn+Yx/v7u5uV2/P7gEL95uPMTU1\nFV2b5uunJ895zX5a465UKrnJfoq7G7hfVzyPhzf7aT1XsjKOLGl19lt12wt5dyOI3VaT/POW5zVo\ndnbW1TuveU5r7q8du+SS5hygCkhR7Eb8pk2bXH03btwYXeudPAcHB6Nrz5w54+rtmZi9G2qe3hMT\nE67enjcAvDx/Z94WNbEbEBs2bHD19dRfccUVrt7r1q2LrvVuaJw9eza6dmxsLLr23LlzrnGcOnUq\nunZ4eNjV2/uGjEfsBmyK++xGi31DxjvPeY46vnLlSlfv8+fPR9eOjIy4enty4VmodHV1ucbhub+9\nb0R43ihDuryPXV9fX3Tt6tWrXb0nJyeja73ba575wPumsud56H0N8swfnnkpjX12AQAAAADIJBa7\nAAAAAIDCYbELAAAAACgcFrsAAAAAgMJhsQsAAAAAKBwWuwAAAACAwmGxCwAAAAAoHBa7AAAAAIDC\nYbELAAAAACgcFrsAAAAAgMLpaPUAgCLr7u6Oqlu/fr2r7759+6Jrd+zY4eo9MzMTXXvs2DFX7zNn\nzkTXTk5OunqPjIxE177++uuu3ocPH3bVe1QqldR6t9rExERUnffx8NT39fW5et9xxx3RtXv27HH1\nnpqaiq49f/58dK2Zucbhea6cOHHC1XtwcDC69ujRo67e09PTrvpWamuL+yyhvb3d1XflypXRtb29\nva7eY2Nj0bUhBFfvtHjnz9jXZMn/GoT8Ghoaiq49d+6cq7en3vu88jzHr7/+elfvzZs3R9d6XydG\nR0eja6vVqqv3UvhkFwAAAABQOCx2AQAAAACFU/di18y2mdljZvaCmT1vZr+a5MCALCP/KCuyj7Ii\n+ygz8o+8amSf3VlJnwshHDCzXkk/NLNHQggvJTQ2IMvIP8qK7KOsyD7KjPwjl+r+ZDeE0B9COFD7\n9zlJhyRtTWpgQJaRf5QV2UdZkX2UGflHXiWyz66Z7ZC0V9JTSfQD8oT8o6zIPsqK7KPMyD/ypOFT\nD9W+ynCfpM/W3ukBSuNy+V94yPmuri51dXU1cXRAepj7kRXVarWpp8KJyf7CU7i1tbW5TzEEZBVz\nP7IihBA19ze02DWzDs0F/i9CCN9upBeQNzH5957nEMgD5n5kyeJz2iZxXsblxGa/s7MztTEArcLc\njywxs4vOM7/c3N/o15i/LunFEMKXG+wD5BH5R1mRfZQV2UeZkX/kTiOnHrpN0s9LusPMnjWzZ8zs\nzuSGBmQX+UdZkX2UFdlHmZF/5FXdX2MOIfxAEjuhoJTIP8qK7KOsyD7KjPwjrxo+QFWMnp6eqLqN\nGze6+lYqlejaEydOuHoDSRgfH4+q6+/vd/U9c+ZMdO3evXtdvffs2RNd293d7eo9MTERXbt4P7zL\niZ1nJOmll3ynBfzKV74SXfvkk0+6eo+NjUXXLtw35XKaecCeLBsdHXXVP/bYY9G1p06dcvX2ZHTD\nhg3RtWvXrnWNo6+vL7p2+/btrt6xc54krVy50tX76aefdtW3Uuxz1fOc9jp27Jirfnp6OqWR+Hj2\nufbun3327FnvcOCUVvY9j/Xq1atdvbdujT+DknfeX7VqVXTt1NSUq/fCg6AmWStJV155ZXSt93nl\neZ1IQiKnHgIAAAAAIEtY7AIAAAAACofFLgAAAACgcFjsAgAAAAAKh8UuAAAAAKBwWOwCAAAAAAqH\nxS4AAAAAoHBY7AIAAAAACofFLgAAAACgcFjsAgAAAAAKp6MZN9LT0xNVt2HDBlffG2+8Mbr2hhtu\ncPX2jGXz5s2u3ocPH46uffLJJ6NrX3vtNdc4nn/++eja8+fPu3p7rFq1ylU/NTUVVVepVOoZTqLG\nx8cTrbvg7rvvjq599tlnXb0/8pGPRNfu2LHD1Xvbtm3Rtddee62r9zXXXBNdu3v3blfvtrb49wU9\ntZL0gx/8ILp2ZmYmunZyctI1jqKKff25wJPp3t5eV+9z585F1z733HPRtV1dXa5x3H777dG1nueV\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f1e20cdb390>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"getActivations(hidden_2,imageToUse)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"...and the third."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABHQAAAQ0CAYAAAAfVEvaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xu0XnV9J/7PJxdCEgiBJIAkhDsGUEBFkGJF6ZJSURyv\nq8jSGUet7Rov1Y6Xap2OtbNG63R6sXUcqVq1al1ltMqv0qEjXpGLeAMlEblDIIRESELCJYHv74/z\ncExC4Ozn5Pme59lnv15rsbKfk33e+3vCO0+e8zn72TtLKQEAAABAe8wY9gIAAAAA6I+BDgAAAEDL\nGOgAAAAAtIyBDgAAAEDLGOgAAAAAtIyBDgAAAEDLGOgMUGYenJkbMzN7j7+Rmf9x2OuCqaD/dJXu\n01W6T5fpP12l+6PFQGcSMvPmzNzSK/Km3q8HllJuK6UsKKWUXXzOv8/M71RYy6t669mUmV/KzIWD\nPgZsb1T6n5kHZuZXMnN1Zj6SmcsHmQ87G6HuvyAzv5OZ92TmHZn58cycP8hjwPZGqPvPzcyre92/\nOzP/T2YeNMhjwM5Gpf875X+y99rn8FrHgFHpfmaenpkP77SOVw/yGG1moDM5JSLO7hV5796vayb4\nnOx93qRk5sxdfOy4iPhYRJwXEQdExP0R8b8mewxoaCT6HxGPRMRFEfHS3cmGPoxK9xdExAci4kkR\ncUxELIuID0/2GNDAqHT/ZxFxZill34g4KCKuD697qG9U+v/o750WEYfvTj40NErdX73TOj472WNM\nNwY6k5eP+UDmIb1p+YydPr4ixl5wnNqbKv6y9/E9MvN/ZOYtmXlnZn40M+f0fu/0zLwtM9+ZmXdG\nxCd3sYZXRcRXSymXllK2RMT7IuKlflLLFBh6/0spa0spH4uIq3a1HqhkFLr/j6WUi0spD5RSNkTE\n+RFxWoWvFbY3Ct2/e7tvJmbE2GD/iMF+mbBLQ+9/b7+ZEfGRiHjTrtYEFYxE93l8BjqD95iJZCll\nVUT8bkRc1psq7tf7rQ9FxJERcXzv16UR8V+2+9QDI2JhRCyPiN/ZxbGOi4ifbHecGyPioYg4eve/\nDJiUqew/jJJhdv/0GDtzAYZhSrufY9duuCcitkTE23uZMCxT/dz/9oj4Zinlp4NZPkzaVHd//94w\n6IbM/J+ZOW9AX0frGehM3j9n5i97/31pkhlviIi3lVI2lFI2R8QHI+Lc7X7/4Yj441LK1lLKg7v4\n/L0iYsNOH9sQEXtPcj3Q1Cj0H4ZhpLqfmc+PiFfH2BmaUNNIdL937YZ9I2JRRPxRRFw3ybVAP4be\n/8w8uJfxX3b+Paho6N2PiJURcWIp5UkRcUZEPCMi/nySa5l2Zg17AS324lLKNyb7yZm5JCLmRcQP\nMsfPZJsRO57WdncpZesTxNwXY9dS2N6CiNg02XVBQ6PQfxiGkel+Zj4rIj4XES8rpdww2TVBQyPT\n/YiIUsq9mfmZiPhJZh5USnlksmuDBkah/38REX9SSrlvsuuASRh690spayNibW/7lsx8Z0RcGBG/\nN9l1TScGOpPX7/tWdz4tbV2MnS58XCnlzoafs7OfRcQJ4wsau9L9HuGnVdQ3Cv2HYRiJ7mfm0yLi\nnyPiP5RSvtnnmmAyRqL7O5kdEUti7IdZ9/b5udCPUej/b0TEaZm5/UXwL8vMt5ZS/rHP9UFTo9D9\nXfFOox5/EIP3eKW/KyKWZebsiIjebd7Oj4i/7E0uIzOXZuaZfRzrcxHxosw8LccuhPz+iPg/vVPZ\nYBimsv/Ru6Danr2Hez56gTUYginrfmY+Jcbu8PbmUsrXdm/ZsNumsvsvycyjc8ySiPifEfHDUoph\nDsMyla97joqxH+SeEBEn9j72woj48mQWDrtpKp/7n5uZy3vbB0fEf4+xH2oRBjqT9URTxPI425fE\n2Bk1azJzbe9j746xW25enpn3RsTF0ccFjUsp18bYhac+HxFrImJ+RPynpp8PkzQS/e+5PyI29o61\nKsZ+AgC1jEr33x4RiyPiE727SGzKzGv6+Hzo16h0f2lE/GuMPe//JCK2RcRL+/h8mIyR6H8pZV3v\nDp9rSyl39Y633nUGqWgkuh8RT4uI72XmfRHx3Rh7/n9rH58/reXY0AwAAACAtnCGDgAAAEDLGOgA\nAAAAtIyBDgAAAEDLGOgAAAAAtMysQQVlpqsrMzSllMe7dV51us8w6T5dpv90le7TVbpPl+2q/wMb\n6MBEFi1a1HjfLVu2xLx58xrtu379+skuqdNmz57deN+HH344Zs6c2Xj/rVu3TmZJQ/WmN72p8b5X\nXHFFnHLKKY33/9jHPtZ4337+rLdt29Y4t5a999678b4PPvhgzJkzp9G+mzZtmuySJnTSSSc13nf1\n6tWxdOnSxvtfddVVk1nS0O2xxx6N9tu2bVvMmtXfS4eHHnpoMkuihZr+u/3QQw817lxExEte8pLG\n+1599dVx/PHHN94/s/n3hj/5yU/ihBNOaLz/tdde23jfO+64Iw466KBG+/7whz9snFvL85///Eb7\n3XDDDXHEEUc0zr3lllsa77tu3bpYvHhx4/2vu+66xvuye84777zG+/bzd/Zzn/vcZJc0MMcee2zj\nfdeuXRv7779/o337eb7o15FHHtl43/Xr1/f1Pdv1118/mSUN3bnnnttov2uuuSae+tSn9pXd9Pug\nn/3sZ3Hcccc1zr3gggt2+XFvuQIAAABoGQMdAAAAgJYx0GEk9fN2IOrr55T0LujnLTj9ms5/1v28\nbW9U9POWsi6YMcPLBnZfzeeCAw44oJXZ0/W5Zt99962W3fQtfoy2mn+vhm3+/PnDXkLf5s6dO+wl\njJSmb5mbjCVLlgwkxyszRpKBzmjxTdyOli1bVi17Ov9Z93vtlVGwYMGCYS9hpEznfjJ12jrQOfDA\nA6tlT9eBzn777Vct20BnejDQGS3+Xu2oZj8HNSzyygwAAACgZRoNdDLzrMxclZnXZea7ai8KRoXu\n02X6T1fpPl2l+3SZ/tNGEw50MnNGRPxNRPxmRBwXEedm5oraC4Nh0326TP/pKt2nq3SfLtN/2qrJ\nGTonR8QvSim3lFK2RsQ/RsSL6y4LRoLu02X6T1fpPl2l+3SZ/tNKTQY6SyPitu0e3977GEx3uk+X\n6T9dpft0le7TZfpPK7XvliN03tatW2Pr1q3DXgZMuUceeSRKKcNexg4efPDB8e2ZM2e28k5WAKNs\n06ZNsWnTpmEvYwc33HDD+Pa+++5b9W5WdNddd90Vd91117CXsYO1a9eOb8+fP7+Vd7KiHdauXRt3\n3333hPs1eeW9OiKWb/d4We9jMBSzZ8/e4bbm999/f61D6T4jZedbRm/btq3m4Rr1f86cOTXXAMPg\nuZ+Rsvfee+9wW/M1a9bUOlTj7h9xxBG11gDjDjjggB1uG33NNdfUPFyj/g/qVtMwkf3333+Hvq1c\nuXKX+zV5y9X3I+LIzDwkM/eIiN+OiK8OYpEw4nSfLtN/ukr36Srdp8v0n1aa8AydUsrDmfmmiLg4\nxgZAnyil7Ho8BNOI7tNl+k9X6T5dpft0mf7TVo0udlBK+deIeHLltcDI0X26TP/pKt2nq3SfLtN/\n2qjJW64AAAAAGCEGOgAAAAAtY6ADAAAA0DIGOgAAAAAtY6ADAAAA0DIGOgAAAAAt0+i25U297W1v\nG2TcuIMPPrhKbkTE/Pnzq2Xvu+++VXLf/OY3V8mNiMjMatknn3xyldyvfvWrVXKnu61btw57CSNl\n2bJl1bK3bdtWLXvYNm3aVCV3zpw5VXIjIp73vOdVy16zZk217Ntvv71a9m/8xm9Uy77ooouqZQ/b\n3/7t31bJ/eEPf1glNyLimmuuqZZd6+/WU57ylCq5ERE333xztewzzzyzSu5rXvOaKrn9WLt2bZXc\nQw45pEpuRMR1111XLZsdLV26dNhLqGbu3LlVcl/2spdVyY2IeMELXlAt+y1veUu17M2bN1fLPuOM\nM6pl//3f/3217F1xhg4AAABAyxjoAAAAALSMgQ4AAABAyxjoAAAAALSMgQ4AAABAyxjoAAAAALTM\nhAOdzPxEZt6VmVdPxYJglOg/XaX7dJXu02X6T1fpPm3V5AydT0XEb9ZeCIwo/aerdJ+u0n26TP/p\nKt2nlSYc6JRSvhsR90zBWmDk6D9dpft0le7TZfpPV+k+beUaOgAAAAAtY6ADAAAA0DKzBhl22WWX\njW8vW7YsDj744EHGQ0RErFu3LtatWzfsZQDQcf/yL/8yvn3UUUfF0UcfPcTVMF2tXLkyVq5cOexl\n7GDNmjXj23vttVfstddeQ1wN09Wtt94at95667CXsYM77rhjfHvvvfeOvffee4irYTrbsGFDbNiw\nYcL9mg50svffEzr11FMbxsHkLV68OBYvXjz++Lrrrqt9yEb9h2lI9+mqRt0/++yzp2ApdN0xxxwT\nxxxzzPjjf/7nf659yAn7f+CBB9ZeA8Ty5ctj+fLl44+/973v1T7khN0/6KCDaq8BIiJin332iX32\n2Wf88W233bbL/ZrctvzzEfG9iDg6M2/NzNcOapEw6vSfrtJ9ukr36TL9p6t0n7aa8AydUsqrpmIh\nMIr0n67SfbpK9+ky/aerdJ+2clFkAAAAgJYx0AEAAABoGQMdAAAAgJYx0AEAAABoGQMdAAAAgJYx\n0AEAAABoGQMdAAAAgJaZNciwSy+9dJBx4/7oj/6oSm5ExIte9KJq2VdddVWV3DPOOKNKbkTEUUcd\nVS37//2//1cte7rae++9q2Vv2rSpWnYtZ599drXsX/ziF9Wy6d/8+fOrZV922WXVsk888cRq2W99\n61urZR933HHVsi+66KJq2cP23/7bf6uSu2bNmiq5ERGPPPJItewrr7yyWnYbHXvsscNeQjW1nqOP\nOOKIKrkREQcddFC17PPOO69K7qte9aoquRERK1asqJa9cePGatnDtn79+iq5hx12WJXciHrfk0ZE\nzJo10HHCDs4888xq2WeddVa17De84Q3VsnfFGToAAAAALWOgAwAAANAyBjoAAAAALWOgAwAAANAy\nBjoAAAAALWOgAwAAANAyEw50MnNZZl6SmT/LzGsy8y1TsTAYNt2ny/SfrtJ9ukr36TL9p62a3Dh+\nW0S8vZTy48zcKyJ+kJkXl1JWVV4bDJvu02X6T1fpPl2l+3SZ/tNKE56hU0pZU0r5cW/7vohYGRFL\nay8Mhk336TL9p6t0n67SfbpM/2mrvq6hk5mHRsSJEXFFjcXAqNJ9ukz/6Srdp6t0ny7Tf9qk8UCn\nd+rZBRHx1t7UEjpB9+ky/aerdJ+u0n26TP9pmybX0InMnBVjxf5sKeUrj7ff7bffPr69YMGCWLBg\nwW4vEHa2YcOG2LBhw5Qcq2n3YTrSf7qqafc3btw4vj1nzpyYM2fOFKyOrtm8eXNs3rx5So7VtPu3\n3nrr+PY+++wT++yzzxSsjq5ZvXp13HHHHVN2vCb9v+eee8a399xzz5g7d+4UrQ52rdFAJyI+GRHX\nllL+6ol2WrZs2e6vCCaw8wuH7QeJFTTqPkxT+k9XNeq+H1wxFebPnx/z588ff7xu3bqah2vU/eXL\nl9dcA0RExNKlS2Pp0l9dxuYHP/hB7UNO2P9999239hqgL01uW35aRJwXEWdk5o8y84eZeVb9pcFw\n6T5dpv90le7TVbpPl+k/bTXhGTqllEsjYuYUrAVGiu7TZfpPV+k+XaX7dJn+01Z93eUKAAAAgOEz\n0AEAAABoGQMdAAAAgJYx0AEAAABoGQMdAAAAgJYx0AEAAABoGQMdAAAAgJbJUspggjIHE8RQHX30\n0dWyr7vuumrZpZSsFj6BzCwve9nLqmQvXbq0Sm5ExF//9V9Xy67lggsuqJb98pe/vFp2TcPu/jnn\nnFMl+4wzzqiSGxGx5557Vst+4xvfWC37Yx/7WLXsr33ta9WyL7zwwmrZw+7/sI69O84666xq2Ucd\ndVSV3I985CNVciPq/ju7evXqatnD7v6sWbOqZK9YsaJKbkTE+973vmrZr3zlK6vk/uf//J+r5EZE\nfOADH6iW/brXva5K7he+8IWhd3/evHlVsrds2VIlt83OP//8atmbN2+ulv37v//71bJ31X9n6AAA\nAAC0jIEOAAAAQMsY6AAAAAC0jIEOAAAAQMsY6AAAAAC0jIEOAAAAQMtMeM/BzJwTEd+OiD16+19Q\nSnl/7YXBsOk+Xab/dJXu01W6T5fpP2014UCnlPJgZj6vlLIlM2dGxKWZeVEp5copWB8Mje7TZfpP\nV+k+XaX7dJn+01aN3nJVStnS25wTY0OgUm1FMEJ0ny7Tf7pK9+kq3afL9J82ajTQycwZmfmjiFgT\nEf9WSvl+3WXBaNB9ukz/6Srdp6t0ny7Tf9qo6Rk6j5RSnhYRyyLilMw8tu6yYDToPl2m/3SV7tNV\nuk+X6T9tNOE1dLZXStmYmd+IiLMi4to6S4LRM1H3r732Vx9asmRJLFmyZApXB3U9Uf9XrVo1vr14\n8eJYvHjxFK8O6vG6h66aqPsPP/zw+HZmxowZbpzL4N11112xdu3aKT/uE/X/oYceGt+eOXNmzJw5\nc4pXBztqcperxRGxtZSyITPnRsTzI+KD1VcGQ9ZP94891gCf6aVp/1esWDHla4OavO6hq/rpvm9i\nmQoHHHBAHHDAAeOPf/rTn1Y7VtP+77HHHtXWAJPR5AydJ0XEpzNzRoy9ReuLpZSv1V0WjATdp8v0\nn67SfbpK9+ky/aeVmty2/JqIePoUrAVGiu7TZfpPV+k+XaX7dJn+01be8AoAAADQMgY6AAAAAC1j\noAMAAADQMgY6AAAAAC1joAMAAADQMgY6AAAAAC2TpZTBBGUOJogJnXPOOdWyf/CDH1TLXr16dbXs\nUkpWC59AZpaTTz65SvbGjRur5EZErFq1qlr297///Sq5J510UpXciIjMoVVotwy7+8M69qj68z//\n82rZv/jFL6plr1ixolr27//+71fLHnb/X/ziF1fJPu+886rkRkS84hWvqJb905/+tEruDTfcUCU3\nIuK5z31uteyPfvSjVXLf8573DL37ixcvrpJ9zz33VMmNiNhvv/2qZd99991VcufNm1clNyLid37n\nd6plf+Yzn6mS+8tf/nLo3f+zP/uzKtnHHXdcldyIiJUrV1bLrvn9xPnnn18tezq97neGDgAAAEDL\nGOgAAAAAtIyBDgAAAEDLGOgAAAAAtIyBDgAAAEDLGOgAAAAAtIyBDgAAAEDLNB7oZOaMzPxhZn61\n5oJg1Og+XaX7dJn+01W6T1fpPm3Uzxk6b42Ia2stBEaY7tNVuk+X6T9dpft0le7TOo0GOpm5LCJe\nEBF/V3c5MFp0n67SfbpM/+kq3aerdJ+2anqGzl9ExDsiolRcC4wi3aerdJ8u03+6SvfpKt2nlWZN\ntENmnh0Rd5VSfpyZz42IrL4qGAH9dP/2228f316wYEEsWLCg/gKhEs/7dFk//V+1atX49uLFi2Px\n4sX1F0jn3HjjjXHjjTdWP04/3d+8efP49uzZs2OPPfaovj66Z+vWrbF169bqx+mn+xdffPH49hFH\nHBFHHHFE9fXBE5lwoBMRp0XEOZn5goiYGxF7Z+ZnSimvqbs0GLrG3V+2bNmULw4q8rxPlzXu/4oV\nK6Z8cXTP4YcfHocffvj440suuaTWoRp3f/78+bXWAONmz54ds2fPHn/8wAMP1DpU4+6feeaZtdYA\nkzLhW65KKe8ppSwvpRweEb8dEZd4UU8X6D5dpft0mf7TVbpPV+k+bdbPXa4AAAAAGAFN3nI1rpTy\nrYj4VqW1wMjSfbpK9+ky/aerdJ+u0n3axhk6AAAAAC1joAMAAADQMgY6AAAAAC1joAMAAADQMgY6\nAAAAAC1joAMAAADQMn3dtnwiixYtGmTcuKc85SlVciMivvWtenel23///avk3njjjVVyIyI2bNhQ\nLfslL3lJldwvf/nLVXL7ceWVVw57CSNlv/32q5L78Y9/vEouDMof/MEfVMs+55xzqmWvXr26WvZ0\ndtJJJ1XJfeYzn1klNyLila98ZbXspUuXVsk94YQTquRGRHz4wx+ulr1q1apq2cP24IMPVsn9wz/8\nwyq5ERF/+qd/Wi27ltNPP71a9l/+5V9Wy57Oar0WfeMb31glNyLi05/+dLXsmus+//zzq2Xvscce\n1bKPP/74KrlXXXXVLj/uDB0AAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAA\nAGiZRrctz8ybI2JDRDwSEVtLKSfXXBSMCt2ny/SfrtJ9ukr36TL9p40aDXRirNTPLaXcU3MxMIJ0\nny7Tf7pK9+kq3afL9J/WafqWq+xjX5hOdJ8u03+6SvfpKt2ny/Sf1mla2BIR/zczv5+Zb6i5IBgx\nuk+X6T9dpft0le7TZfpP6zR9y9VppZQ7M3NJRPxbZq4spXy35sJgROg+Xab/dJXu01W6T5fpP63T\naKBTSrmz9+vdmfnliDg5Ih5T7i1btoxvz549O2bPnj2gZcKv3H333bFu3bopOVbT7sN0pP90VdPu\nX3LJJePbhx12WBx22GFTtka64+6774677757So7VtPsPPvjg+PbMmTNj1qymPyOG0dWk/+vXrx/f\nnjt3bsybN29K10h3bNy4MTZt2jThfhM++2bmvIiYUUq5LzPnR8SZEfH+Xe2r0EyFJUuWxJIlS8Yf\nr1q1qspx+uk+TDf6T1f10/0zzjhjStdGN+38umflypVVjtNP9+fMmVNlDTAsTfu/aNGiKV8b3bRg\nwYJYsGDB+OM777xzl/s1GacfEBFfzszS2/9zpZSLB7FIGHG6T5fpP12l+3SV7tNl+k8rTTjQKaXc\nFBEnTsFaYKToPl2m/3SV7tNVuk+X6T9t5bZsAAAAAC1joAMAAADQMgY6AAAAAC1joAMAAADQMgY6\nAAAAAC1joAMAAADQMgY6AAAAAC2TpZTBBGWWvfbaayBZO7vvvvuq5PJY+++/f7Xsbdu2Vcn95S9/\nGaWUrBLeQGYO5i/RFDv99NOrZZ966qlVcj/4wQ9WyW2zYXd/zpw5VbJPOumkKrkREZdeemm17Jqu\nv/76atlPf/rTq2Vv3LixWvaw+z+sYzM4J598crXsBx54oEru1VdfPfTun3feeVWyFy5cWCU3IuIf\n/uEfqmW/973vrZL7zGc+s0puRMTrXve6atk33nhjtexhd3/FihVVsletWlUlt7YXvvCF1bLvvffe\natmzZ8+uln3TTTdVyb355pt32X9n6AAAAAC0jIEOAAAAQMsY6AAAAAC0jIEOAAAAQMsY6AAAAAC0\njIEOAAAAQMs0Guhk5j6Z+U+ZuTIzf5aZp9ReGIwC3afL9J+u0n26SvfpMv2njWY13O+vIuJrpZRX\nZOasiJhXcU0wSnSfLtN/ukr36Srdp8v0n9aZcKCTmQsi4tdLKf8hIqKUsi0iNlZeFwyd7tNl+k9X\n6T5dpft0mf7TVk3ecnVYRKzLzE9l5g8z8+OZObf2wmAE6D5dpv90le7TVbpPl+k/rdRkoDMrIp4e\nEX9bSnl6RGyJiHdXXRWMBt2ny/SfrtJ9ukr36TL9p5WaXEPn9oi4rZRyVe/xBRHxrl3t+OCDD45v\nz5w5M2bNanqJHmhu69atsXXr1qk4VOPuwzTUqP/btm0b354xY0bMmOHmibSe535Gyn333Rf33Xff\nVByqcfevvvrq8e0DDjggDjjggPqrg7oa9f/uu+8e3543b17Mnz9/alZH59x///3xwAMPTLjfhBOX\nUspdmXlbZh5dSrkuIn4jIq7d1b5z5szpe6HQr9mzZ8fs2bPHHzcp+mT0032Ybpr23+Ce6cZzP6Nm\nr732ir322mv88dq1a6scp5/uH3/88VXWAMPStP9LliyZ+sXRSXPnzo25c3/1rr8NGzbscr+mr8Tf\nEhGfy8zZEXFjRLx2dxcILaH7dJn+01W6T1fpPl2m/7ROo4FOKeUnEfHMymuBkaP7dJn+01W6T1fp\nPl2m/7SRix0AAAAAtIyBDgAAAEDLGOgAAAAAtMxQBjrb3+aW9nrooYeqZU/Rbclp6N57762Wfcst\nt1TLZrQ88sgjVXIf76r/XXb55ZdXyfXvN122cePGatlTdFvyKXfXXXdVy169enW17JrPdTfccEOV\n3B//+MdVciPGbp9M/zZv3jzsJYyUdevWVcuu9b3KPffcUyU3YnB/r4Yy0Hn44YeHcVgGzECnO2oO\ndG699dZq2YwWA52pc8UVV1TJNdChywx0+meg81gGOt2xZcuWYS9hpKxfv75adq3XgjW/B3rggQcG\nkuMtVwAAAAAtY6ADAAAA0DJZShlMUOZggmASSik5rGPrPsOk+3SZ/tNVuk9X6T5dtqv+D2ygAwAA\nAMDU8JYrAAAAgJYx0AEAAABoGQMdAAAAgJaZ0oFOZp6Vmasy87rMfNeAsz+RmXdl5tUDzl2WmZdk\n5s8y85rMfMsAs+dk5hWZ+aNe9h8PKruXPyMzf5iZXx1w7s2Z+ZPeuq8ccPY+mflPmbmy92d+yiDz\nh6lW/3X/cY/Rqv7r/qRyq3S/l93a/ret+73sadl/r3sek637j82elt2PaN9zf5u73ztGq/qv+5PK\nbd3rHt1/3OzB9b+UMiX/xdjw6PqIOCQiZkfEjyNixQDznx0RJ0bE1QNe94ERcWJve6+I+PmA1z2v\n9+vMiLg8Ik4eYPbbIuIfIuKrA/4zuTEi9q3Uk7+PiNf2tmdFxIIax5nq/2r2X/cfN79V/df9SWVX\n6X4vu7X9b1v3e9nTrv9e9zxuvu7vmD3tut/7Wlr33N/m7vdyW9V/3Z9Uditf9+j+LrMH1v+pPEPn\n5Ij4RSnlllLK1oj4x4h48aDCSynfjYh7BpW3Xe6aUsqPe9v3RcTKiFg6wPwtvc05MfY/cyC3HcvM\nZRHxgoj4u0Hk7RwfFc7uyswFEfHrpZRPRUSUUraVUjYO+jhDUq3/uv9Ybeu/7k9Ore73slvZ/7Z1\nP2Ja99/rnl3n6/6jodO3+xEtfO5va/cj2td/3Z+ctr7u0f2dQgfc/6kc6CyNiNu2e3x7DPBJcipk\n5qExNhW+j/PfAAAgAElEQVS9YoCZMzLzRxGxJiL+rZTy/QFF/0VEvCMG+BdmOyUi/m9mfj8z3zDA\n3MMiYl1mfqp32tzHM3PuAPOHqdX9b1n3I9rXf90fYS3rf9u6HzF9+6/7u87U/V+Zrt2PaHn/W9b9\niPb1X/dH2KD7r/uPMdD+uyhyQ5m5V0RcEBFv7U0tB6KU8kgp5WkRsSwiTsnMY3c3MzPPjoi7elPW\n7P03SKeVUk6KsWnof8rMZw8od1ZEPD0i/raU8vSI2BIR7x5QNpPUpu5HtLb/uj+i2tT/lnY/Qv9H\nku7vQPc7pE3dj2ht/3V/RNXov+4/xkD7P5UDndURsXy7x8t6Hxt5mTkrxor92VLKV2oco3ea1Tci\n4qwBxJ0WEedk5o0R8YWIeF5mfmYAuRERUUq5s/fr3RHx5Rg7tXAQbo+I20opV/UeXxBjZZ8OWtn/\nFnY/op391/0R1ML+t7H7EdO3/7r/BHQ/IqZv9yNa2v8Wdj+inf3X/RFUu/+6P26g/Z/Kgc73I+LI\nzDwkM/eIiN+OiIFeiTrqTOYiIj4ZEdeWUv5qkKGZuTgz9+ltz42I50fEqt3NLaW8p5SyvJRyeIz9\nOV9SSnnN7uZGRGTmvN7kNjJzfkScGRE/HUR2KeWuiLgtM4/ufeg3IuLaQWSPgNr91/2eNvZf93dL\nre5HtKz/bex+xLTuv9c9O9H9HU3j7ke097m/Vd2PaGf/dX+3tOp1j+4/1qD7P2sQi2qilPJwZr4p\nIi6OsUHSJ0opKweVn5mfj4jnRsSizLw1Iv740QsN7WbuaRFxXkRc03vvX4mI95RS/nV3syPiSRHx\n6cycEWN/Jl8spXxtALk1HRARX87MEmP9+Vwp5eIB5r8lIj6XmbNj7Mrirx1g9tDU7L/uT6ma/df9\nPtXqfi9b/3fkub9PXvfsku4/1rTrfkQ7n/t1f5e87ulTG7vfy67Vf93ftYH1P0upcf0gAAAAAGpx\nUWQAAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAA\nAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQ\nAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACA\nljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0A\nAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZ\nAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAA\nAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQ\nAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACA\nljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0A\nAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZ\nAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAA\nAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQ\nAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACA\nljHQAQAAAGgZAx0AAACAljHQAQAAAGgZAx0AAACAljHQGaDMPDgzN2Zm9h5/IzP/47DXBVNB/+kq\n3aerdJ8u0Xe6SvdHm4HOJGTmzZm5pVfsTb1fDyyl3FZKWVBKKbv4nH+fmd+psJbFmfm5zLw3M9dn\n5mcHfQzY3qj0PzP/cLvjb+ytaVtm7jfI48CjRqX7vdw3Z+aNvef+KzPztEEfAx41Yt1/b2be0uv+\n5zNzr0Efg24blb5n5oGZ+ZXMXJ2Zj2Tm8p1+f4/M/GRmbsjMOzLzbYM8Pt3Tou6/IjMvzczNmXnJ\nII/dRgY6k1Mi4uxesffu/bpmgs/J3udNSmbOfJzf+lJE3BERyyJi/4j4H5M9BjQ0Ev0vpfz37Y6/\nICI+FBHfLKX8crLHgQmMRPcz8+SI+O8R8dJSysKI+GREfPnRn5xBBaPS/X8fEedFxKkRcVBEzIuI\nv5nsMeBxjETfI+KRiLgoIl76ONnvj4gjIuLgiDgjIt6ZmWdOdg0Q7en++oj4ixh7LdR5BjqT95gX\nzpl5SG+KOGOnj6+IiP8VEaf2pp2/7H18j8z8H72fNN2ZmR/NzDm93zs9M2/LzHdm5p0x9oJ95+M9\nP8YGOe8spdxXSnm4lPKTCl8r7Gzo/d+F10TE3+/uFwYTGIXuHxoRPy2l/Lj3+DMRsSjGhvpQyyh0\n/4UR8YlSyh2llC0xNsh/ZWbuOeCvFYbe91LK2lLKxyLiql2tJ8Ze9/xJKWVjKWVVRJwfEf9h975s\nGP3ul1IuKaVcEBF3DuILbjsDncF7zBSx9yT7uxFxWW/a+ehbQj4UEUdGxPG9X5dGxH/Z7lMPjIiF\nEbE8In5nF8d6VkRcFxGfycx1mXlFZj5nYF8J9G8q+z+u1/slMXbGGgzDVHb/ooiYmZkn915cvS4i\nflxKuWtQXwz0Yaqf97d/cT8jIuZExFG78wVAH4byOmdnmbkwIp4UEVdv9+GfRMRx/eRAH0ai+zyW\ngc7k/XNm/rL332S/iXxDRLytlLKhlLI5Ij4YEedu9/sPR8Qfl1K2llIe3MXnL4uI50fE1yPigIj4\nnxHxlXQNEeobhf5v7zURcUHvJ7ZQ09C7X0rZFGPDy+9GxAMR8b7wgoj6ht79iPjXiHh976fF+0TE\nO3sfnzfJ9cDjGYW+P5G9Yuwb7A3bfWxDROw9ybXCo0a9++xk1rAX0GIvLqV8Y7KfnJlLYuwFyA/y\nV5c9mBE7/uTp7lLK1ieIuT8ibi6l/H3v8Rcz870RcVpEXDjZtUEDo9D/R7PmRsQrIuJFk10P9GHo\n3c/M18fYafXHlFJuyMzfjIh/ycwTG7zXHSZr6N2PsVPzl0XENyNiZkT8eYy9Dev2ya4LHsco9P2J\n3Nf7dUFErNtue9Mk8+BRo959duIMncnr9+KTO5+mti4itkTEcaWU/Xr/LSyl7PMEn7Ozq3exz6Qv\nSgV9GIX+P+qlEbG+lPLtPtcEkzEK3T8hIv6/UsoNERGllP8bY+8j/7U+1wb9GHr3y5j3l1IOK6Us\nj4iVEbG6lLK6z7XBRIbe9yc8WCn3xtjz/gnbffiEiPjZZDOhZ6S7z2MZ6Aze4/0luCsilmXm7Iix\nFyUxdvGyv+xNMiMzl2Z/V6f/ckTsm5mvzswZmfnyGHuP4qWTXz7slqns/6NeE2MXhYVhmsrufz8i\nzs7Mw3qf//wYu4bITye7eNgNU9b9zNw3Mw/vbR8bY2fovH93Fg99mtLXOb0LyT560e89H72wbM9n\nI+KPMnNh7+K0b4iIT/WTD30Yme73vu+dExGzY+yagnMys7PvPDLQmZwnmiqWx9m+JMam5msyc23v\nY++OiOsj4vLMvDciLo6IoxsvopR7IuKciHhHRNwbY+8lP6e4bTN1jUT/IyIy86CIeF4Y6DA1RqL7\npZTPRMQ/RsQ3M3NDRPxlRPxOKeW6phnQp5HofkQsjoivZeZ9EfEvEfF3pZRP9PH50MSo9D1i7PIK\nG3vHWhVjZz486o8j4saIuCUivhERHyql/Fuf+bC9tnT/1b3f/9uIeHbv9z7eZ/60kWNDNAAAAADa\nwhk6AAAAAC1joAMAAADQMgY6AAAAAC1joAMAAADQMgO7vVdmuroyQ1NKebxb6VWn+wyT7tNl+k9X\n6T5dpft02a76P9D7te+7776N9rv//vtj7ty5jXPvueeeyS6JPi1YsKDxvg888EDsueeejfefPXt2\n4323bNkS8+bNa7Tv+vXrG+fWcvrppzfa7+abb45DDz20ce63vvWtSa4IpsbSpUsb77tx48bGzzFH\nH9387pY33XRTHHbYYY337+d56xe/+EUcddRRjfe///77G+/b77r7+bO++uqr4/jjj2+8/8aNGxvt\n9/Of/zye/OQnN86NiLjwwgv72r9Nli1b1mi/DRs2xD777NM499/9u3/XeN8rrrgiTjnllMb7P//5\nz2+03xe+8IU499xzG+dGRDz72c9utN+HPvSheNe73tU496abbmq87//+3/873vjGNzbe/8tf/nLj\nfb/97W/Hc57znMb7//SnP22876pVq2LFihWN9v3KV77SOLeWgw8+uNF+/Xb/tttum+ySJnTmmWc2\n3vf666+PI488svH+3/nOdxrvu3Xr1savifv5N6Vf/fwbsWbNmjjwwAMb73/vvff2te/ChQsb7Xvr\nrbc2zq3lLW95S+N9L7/88njWs57VaN+ZM2c2zr3sssvi1FNPbbz/5s2bG+971VVXxUknndR4/09/\n+tON9922bVvMmtV8/PDggw823neUNP238JZbbolDDjmkce53v/vdXX7cW64AAAAAWsZABwAAAKBl\n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\nnynTf0Y079uWn5HkzNbaP66qDUn6vD85rD+6z5TpP1Ol+0yV7jNl+s9wdjrQqapNSZ7dWntFkrTW\n7k1ya+d1wZrTfaZM/5kq3WeqdJ8p039GNc9Trh6X5Iaqek9Vfb6qfqeq9uu9MFgHdJ8p03+mSveZ\nKt1nyvSfIc0z0NmQ5OQkb2+tnZzkjiS/2nVVsD7oPlOm/0yV7jNVus+U6T9Dmuc1dL6e5MrW2rmz\n6x9M8vodbXjllVcuX960aVMOOuig3V4gPNS2bduybdu21djV3N2/7bbbli/vu+++2bhxY//VQV9z\n9x9Ww3333Zf77rtvNXY1d/evuuqq5csHHnhgNm3a1H910I/7fdaVrVu3ZuvWrau1O/1nXbnvvvuy\nffv2nW6304FOa+26qrqyqk5srX0lyQ8luWhH2z72sY9d8UJhpfbZZ5/ss88+y9fvvPPOLvtZSfcP\nPPDALmuAtbKS/sNq2HvvvbP33nsvX+812F9J94855pgua4C14H6f9ebQQw/NoYceunz9sssu67Yv\n/We9eehxzyP9p9a873J1epIPVNU+SS5L8srdXSAMQveZMv1nqnSfqdJ9pkz/Gc5cA53W2heSnNJ5\nLbDu6D5Tpv9Mle4zVbrPlOk/I5rnRZEBAAAAWEcMdAAAAAAGY6ADAAAAMBgDHQAAAIDBrMlA55Zb\nbumWfe2113bL7vUWqaPq+fe4p/6s77777m7ZPf8+err88su75G7ZsqVLLuvPXXfd1S37uuuu65b9\nzW9+s1t2r3XfeOONXXKTR347zj3Brbfe2i37jjvu6JLb8/dVTz3XfdNNN3XLZn258847u2X3fKwy\noq1bt671Eoazffv2btlnn312t+wRH6v0PMZc1HHPmgx0eh7Y9Dz4vvfee7tlj6jn3+OeOtC55557\numWPeCeZ9BvoXHnllV1yWX96PoC7/vrru2X3eiCe9Fu3gc6uue2227pl93rg2fP3VU897w9uvvnm\nbtmsLwY6q8dAZ+V6DnT+9m//tlt2z8eOvfQc6Czq79FTrgAAAAAGY6ADAAAAMJhqrS0mqGoxQbAL\nWmu1VvvWfdaS7jNl+s9U6T5TpftM2Y76v7CBDgAAAACrw1OuAAAAAAZjoAMAAAAwmFUd6FTV86vq\ny1X1lap6/YKz311V11XVFxece2xVfbKqLqyqL1XV6QvM3lhVn6mq82bZb1xU9ix/r6r6fFV9ZMG5\nV1TVF2br/uyCsw+qqj+uqotnP/OnLzJ/LfXqv+4/4j6G6r/u71Jul+7Psoft/2jdn2Xvkf133POw\nbN1/ePYe2f1kvPv+kbs/28dQ/df9Xcod7rhH9x8xe3H9b62tykeWhkeXJDkuyT5Jzk/ypAXmPyvJ\nU5N8ccHrPjLJU2eXD0jy9wte9/6zz3sn+bskpy4w+5eT/NckH1nwz+SyJId06snvJ3nl7PKGJJt6\n7Ge1P3r2X/cfMX+o/uv+LmV36f4se9j+j9b9WfYe13/HPY+Yr/sPzt7juj/7Xoa77x+5+7Pcofqv\n+7uUPeRxj+7vMHth/V/NM3ROTfLV1trXWmvbkvz3JC9eVHhr7VNJblpU3gNyr22tnT+7fHuSi5Mc\ns8D8O2YXN2bpL3Mhr1JdVccmeUGSdy0i76Hx6XB2V1VtSvLs1tp7kqS1dm9r7dZF72eNdOu/7j/c\naP3X/V3Tq/uz7CH7P1r3kz26/457dpyv+/eH7rndTwa87x+1+8l4/df9XTPqcY/uPyR0wf1fzYHO\nMUmufMD1r2eBd5KroaqOz9JU9DMLzNyrqs5Lcm2ST7TWzllQ9NuS/Oss8B/MA7QkH6uqc6rq1QvM\nfVySG6rqPbPT5n6nqvZbYP5aGrr/g3U/Ga//ur+ODdb/0bqf7Ln91/0dZ+r+t+yp3U8G7/9g3U/G\n67/ur2OL7r/uP8xC++9FkedUVQck+WCS186mlgvRWtveWvueJMcmeXpVnbS7mVX1wiTXzaasNftY\npNNaa0/L0jT0F6vqWQvK3ZDk5CRvb62dnOSOJL+6oGx20UjdT4btv+6vUyP1f9DuJ/q/Lun+g+j+\nhIzU/WTY/uv+OtWj/7r/MAvt/2oOdK5KsvkB14+d3bbuVdWGLBX7/a21P+uxj9lpVmclef4C4k5L\n8qKquizJf0vyA1X1vgXkJklaa9fMPn8jyYeydGrhInw9yZWttXNn1z+YpbLvCYbs/4DdT8bsv+6v\nQwP2f8TuJ3tu/3X/29D9JHtu95NB+z9g95Mx+6/761Dv/uv+soX2fzUHOuckOaGqjquqfZO8PMlC\nX4k6fSZzSfJ7SS5qrZ2xyNCqekxVHTS7vF+SH0ny5d3Nba29obW2ubX2+Cz9nD/ZWvvZ3c1Nkqra\nfza5TVU9OsmPJrlgEdmtteuSXFlVJ85u+qEkFy0iex3o3X/dnxmx/7q/W3p1Pxms/yN2P9mj+++4\n5yF0/8H24O4n4973D9X9ZMz+6/5uGeq4R/cfbtH937CIRc2jtXZfVf1Sko9naZD07tbaxYvKr6o/\nSPLcJIdV1ZYkb7z/hYZ2M/e0JD+V5Euz5/61JG9orf357mYnOSrJe6tqryz9TP6wtXbmAnJ7+o4k\nH6qqlqX+fKC19vEF5p+e5ANVtU+WXln8lQvMXjM9+6/7q6pn/3V/hXp1f5at/w/mvn+FHPfskO4/\n3B7X/WTM+37d3yHHPSs0Yvdn2b36r/s7trD+V2s9Xj8IAAAAgF68KDIAAADAYAx0AAAAAAZjoAMA\nAAAwGAMdAAAAgMEY6AAAAAAMxkAHAAAAYDAGOgAAAACDMdABAAAAGIyBDgAAAMBgDHQAAAAABmOg\nAwAAADAYAx0AAACAwRjoAAAAAAzGQAcAAABgMAY6AAAAAIMx0AEAAAAYjIEOAAAAwGAMdAAAAAAG\nY6ADAAAAMBgDHQAAAIDBGOgAAAAADMZABwAAAGAwBjoAAAAAgzHQAQAAABiMgQ4AAADAYAx0AAAA\nAAZjoAMAAAAwGAMdAAAAgMEY6AAAAAAMxkAHAAAAYDAGOgAAAACDMdABAAAAGIyBDgAAAMBgDHQA\nAAAABmOgAwAAADAYAx0AAACAwRjoAAAAAAzGQAcAAABgMAY6AAAAAIMx0AEAAAAYjIEOAAAAwGAM\ndAAAAAAGY6ADAAAAMBgDHQAAAIDBGOgAAAAADMZABwAAAGAwBjoAAAAAgzHQAQAAABiMgQ4AAADA\nYAx0AAAAAAZjoAMAAAAwGAMdAAAAgMEY6AAAAAAMxkAHAAAAYDAGOgAAAACDMdABAAAAGIyBDgAA\nAMBgDHQAAAAABmOgAwAAADAYAx0AAACAwRjoAAAAAAzGQAcAAABgMAY6AAAAAIMx0AEAAAAYjIEO\nAAAAwGAMdAAAAAAGY6ADAAAAMBgDHQAAAIDBGOgAAAAADMZABwAAAGAwBjoAAAAAgzHQAQAAABiM\ngQ4AAADAYAx0AAAAAAZjoAMAAAAwGAMdAAAAgMEY6AAAAAAMxkAHAAAAYDAGOgAAAACDMdABAAAA\nGIyBDgAAAMBgDHQAAAAABmOgAwAAADAYAx0AAACAwRjoAAAAAAzGQAcAAABgMAY6AAAAAIMx0AEA\nAAAYjIEOAAAAwGAMdAAAAAAGY6ADAAAAMBgDHQAAAIDBGOgAAAAADMZABwAAAGAwBjoAAAAAgzHQ\nAQAAABiMgQ4AAADAYAx0AAAAAAZjoAMAAAAwGAMdAAAAgMEY6AAAAAAMxkAHAAAAYDAGOgAAAACD\nMdDZDVX12Kq6tapqdv2sqvqna70uWA36z1TpPlOl+0yZ/jNVur++GejMoaquqKo7ZkW+bfb5yNba\nla21Ta21toOv+bmq+psFr+PIqvqzqrqqqrZX1eaH/PlvVdVXquqWqrqoqn5mkftnmgbq/5urasus\n/5dX1a8ucv9Mzyjdf8B2h1TVN6rqrxe5f6ZnlO5X1Xuq6u6HrLMWuQamZ5T+z7b54ar6XFXdPjsG\netki18C0jNL9qrpgtrb7P7ZV1Z8tcg0jMdCZT0vywlmRD5x9vnYnX1Ozr9slVbX3Dm7enuSjSX78\nEbJvn63zoCSvSHJGVX3frq4BZkbp/7uSPHHW/2cm+emq+t93dQ2Qcbp/vzcnuXBX9w0PMFL33/yQ\nde7yGmBmiP5X1UlJPpDk/0qyKck/TPK5XV0DZJDut9aePFvbptbapiRXJvmjXV3D6Ax05vew//Gp\nquNmU8O9HnL7k5K8I8kzZtPNrbPb962qt1TV16rqmqr6L1W1cfZn319VV1bVr1TVNUl+76H7a61d\n31p7Z5Jzd7Se1tqbWmtfnV3+bJK/SfKM3f7OYYz+f7W1dufs6l5Z+mVwwu5927D+uz/LeWaS707y\nnt38fuF+Q3QfOhmh//93kne21j7eWtveWruptXb5bn/nTN0I3X/gGr4/yWFJ/nQXv9/hGejsvh1N\nDb+c5J8n+fRsunno7I/enKUHmE+ZfT4myb99wJcemeTgJJuTvGZ3FlVV+yU5Jf63lr7WVf+r6vVV\ndVuWJvX7J/mDXcmBOayb7s8OsH47yS+t9GthF6yb7s/8n1V1Q1WdU1U/vosZMK/11P/vS1JV9cVa\nemrK+6rqkF3IgXmsp+4/0M8m+ZMH/Kfu5BjozO/DVbV19rGrE8BXJ/nl1totrbVvJvnNJD/xgD+/\nL8kbW2vbWmt37+Z635nkvNbax3czB5JB+t9ae3Nr7cAk35Pk/Ulu2cW1wv1G6P7pWTqYOm8X1wc7\nMkL3z0jyhCRHZOnBwu9XlTOTWYQR+n9skp9O8pIs/TvYP0vDfdgdI3Q/yfIJDC/LxM9O3rDWCxjI\ni1trZ+3qF1fV4Vm6o/1cfev1+vbKg08j+0ZrbduuL3F5X7+V5KQkP7C7WTAzTP+TpLX2hap6fpJf\nT/IvF5HJZK3r7lfVUVka6Jx8/027uFR4qHXd/SRprZ3/gKsfraoPZOk1Fz69q5kws+77n+TOJL/X\nWrt0ts9/n+QTu5EHyRjdv99Lk9zYWlvoizKPxkBnfis9SH7oaWk3JLkjyXe31q6Z82tWrKrelOR5\nSZ7TWrt9d/NgZoj+P8SGJI9fcCbTs967f2qWTl2+qJaOnPZLsl9VXZ3kGC8Qy25Y791/pDxDTRZh\nhP5/cTe/HnZkhO7f72eTvG9BWcPylKvd90ilvy7JsVW1T5LMDqp/N8l/mk0uU1XHVNWPrmhnSy8o\n9ajZ1Ufd/wJTsz/7v7J0OtsPt9ZuXtm3AbtkXfS/lrymqg6eXT81yS8m+YuVfkMwp3XR/SRnJjk+\nyVOz9A4n/zbJ55P8Q8McOlkv3U9VvbSqHj37HfCjSX4qyWTfupZVsW76n6Wnmbyyqh5XVfsneX2S\n/28l+bAC66n7qapjs/RslPeuJHdPZKAzn293UNwe4fIns/SCxNdW1fWz2341ySVJ/q6qbk7y8SQn\nrnAtdya5dbavL2dpAnq/30jy2CSXzF5p/Naq+tUV5sNDjdL/l2Sp+7dmaVp/Rmvt7SvMhwda992f\nPf/8+vs/svS6Udtaa99YYT480Lrv/sxrk3w9yU1ZehHOV0391HsWYoj+t9bek6Xjnc8kuXy27WtX\nmA8PNET3Z346ydne2S0p/4EHAAAAMBZn6AAAAAAMxkAHAAAAYDAGOgAAAACDMdABAAAAGMyGRQVV\nlVdXZs201h7prfS6033Wku4zZfrPVOk+U6X7TNmO+r+wgU6SvPrVr55ru8997nP53u/93rlzv/GN\n+d999eKLL853fdd3zb39BRdcMPe2N954Yw477LC5t7/kkkvm3hb2JMcdd9zc29588805+OCD59r2\nxBPnf8fDSy+9NN/5nd859/Yryf7sZz+bU089de7tv/SlL8297RVXXJHjjz9+rm3/+q//eu5c+HaO\nOOKIuba7/fbbc8ABB6wo+6Uvfelc251zzjk55ZRT5s59xzvesaJ19PDbv/3bc2135pln5gUveMHc\nuS972cvm3vYtb3lL/tW/+ldzb/8d3/Edc233a7/2a/m1X/u1uXOT5N3vfvdc233kIx/Ji170orlz\nr7322rm3/eQnP5kf/MEfnHv7z33uc3Nvu9JjzA9/+MNzbzuaX/7lX55ru09/+tN5xjOeMXfuhg3z\n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\nPOMZXXKT5B3veEe3bB7us5/97FovgVXypCc9qUvuT/zET3TJTZJ77723W/Yf/dEfdctea29/+9u7\n5J566qldcpPkh3/4h7tlv/Wtb+2Se8opp3TJTZLTTz+9W/YrXvGKLrlvectbuuSuB3fffXe37Asv\nvLBb9qg2bdrULfuQQw7plr0jztABAAAAGIyBDgAAAMBgDHQAAAAABmOgAwAAADAYAx0AAACAwRjo\nAAAAAAxmpwOdqjq2qj5ZVRdW1Zeqqt973ME6ovtMmf4zVbrPVOk+U6b/jGrDHNvcm+R1rbXzq+qA\nJJ+rqo+31r7ceW2w1nSfKdN/pkr3mSrdZ8r0nyHt9Ayd1tq1rbXzZ5dvT3JxkmN6LwzWmu4zZfrP\nVOk+U6X7TJn+M6oVvYZOVR2f5KlJPtNjMbBe6T5Tpv9Mle4zVbrPlOk/I5l7oDM79eyDSV47m1rC\nJOg+U6b/TJXuM1W6z5TpP6OZ5zV0UlUbslTs97fW/qzvkuDbu+iii3LRRRetyr7m7f4FF1ywfPmI\nI47IEUccsQqrg77m6f/f/M3fLF/evHlzjjvuuFVaHVOzbdu2bNu2bVX25biHqZq3+w/8t7jXXntl\n7733XoXVMTVbtmzJlVdeuWr7c9/PejJv/+ca6CT5vSQXtdbO2K1VwQKcdNJJOemkk5av/+mf/mnP\n3c3V/Sc/+ck91wBrZaf9f/azn72Ky2HK9tlnn+yzzz7L1++6666eu3Pcw1TN1f0H/luEXjZv3pzN\nmzcvX//0pz/de5fu+1k35u3/PG9bflqSn0ryg1V1XlV9vqqev6iFwnql+0yZ/jNVus9U6T5Tpv+M\naqdn6LTWzk7iPEomR/eZMv1nqnSfqdJ9pkz/GdWK3uUKAAAAgLVnoAMAAAAwGAMdAAAAgMEY6AAA\nAAAMxkAHAAAAYDAGOgAAAACDMdABAAAAGEy11hYTVNXe+ta3LiTroe67774uuUny6le/ulv26aef\n3iX3fe97X5fcJFlUH3bkVa96VZfcd7/73WmtVZfwOVRVe85zntMl+7nPfW6X3CT5sR/7sW7ZT3zi\nE7vkHnLIIV1yk+Sggw7qln3nnXd2yd22bduad/8lL3lJl+zXve51XXKT5JWvfGW37J49uvHGG7tl\nX3HFFd2ye1rr/p9xxhldss8999wuuUly7bXXdsv+xCc+0SX3+OOP75Kb6P6uqKp+B4uD+if/5J90\n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\nPlOm/0yV7jNVus+U6T/DmbewLcnHquqcqnp1zwXBOqP7TJn+M1W6z1TpPlOm/wxn3qdcndZau6aq\nDk/yiaq6uLX2qZ4Lg3VC95ky/WeqdJ+p0n2mTP8ZzlwDndbaNbPP36iqDyU5NYlys8fTfdaTyy+/\nPJdffvmq7W+e/p9zzjnLl48++ugcc8wxq7Y+6MV9P+vJli1bsmXLllXZl+4zZfP0/9Zbb12+vHHj\nxmzcuHFV1wgPtdOBTlXtn2Sv1trtVfXoJD+a5E3dVwZrTPdZbx73uMflcY973PL1s846q9u+5u3/\nKaec0m0NsBbc97PebN68OZs3b16+fvbZZ3fZj+4zZfP2f9OmTau+Nvh25jlD5zuSfKiq2mz7D7TW\nPt53WbAu6D5Tpv9Mle4zVbrPlOk/Q9rpQKe1dnmSp67CWmBd0X2mTP+ZKt1nqnSfKdN/RuVt2QAA\nAAAGY6ADAAAAMBgDHQAAAIDBGOgAAAAADMZABwAAAGAwBjoAAAAAgzHQAQAAABjMhkWG/fzP//wi\n45Yde+yxXXKT5F3vele37F7r3r59e5dcdt1BBx3UJfeWW27pkpskv/mbv9kte9999+2S+7rXva5L\nbpLcc8893bI/+tGPdstea+985zvXegkr9ou/+Ivdst/2trd1y37f+97XLZtdc/LJJ3fJ/fznP98l\nt7fnPOc5XXJ/4zd+o0tuktx5553dsl/60pd2y2bltm3bttZLWLEf+qEf6pb9la98pVv2nuyqq65a\n6yWsWK/HKUny+7//+92yt2zZ0i27p40bN3bJvfvuu3d4uzN0AAAAAAZjoAMAAAAwGAMdAAAAgMEY\n6AAAAAAMxkAHAAAAYDAGOgAAAACDmWugU1UHVdUfV9XFVXVhVT2998JgPdB9pkz/mSrdZ6p0nynT\nf0a0Yc7tzkhyZmvtH1fVhiT7d1wTrCe6z5TpP1Ol+0yV7jNl+s9wdjrQqapNSZ7dWntFkrTW7k1y\na+d1wZrTfaZM/5kq3WeqdJ8p039GNc9Trh6X5Iaqek9Vfb6qfqeq9uu9MFgHdJ8p03+mSveZKt1n\nyvSfIc0z0NmQ5OQkb2+tnZzkjiS/uqMNzz333OWPq6++eoHLhDUxd/fvuuuu5Y977713NdfIhNxy\nyy3ZsmXL8kdnc/cf9jBzd//qq69e/rjttttWc41MyL333pu77757+aMj9/tMmf6zrmzfvj333nvv\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f1e20ed0050>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"getActivations(hidden_3,imageToUse)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The model we used here is of a relatively simple network, but the visualization technique can be extended to give insights into any convolutional network."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.12"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
@sriharsha-sreenatha
Copy link

I reproduced the same model as yours. But my accuracy at each step is always below 10%.

Did you change any hyper-parameters for such a high accuracy

@mocha234
Copy link

Hello Sir, mind update for Tensorflow 2.x? Thank you !!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment