Skip to content

Instantly share code, notes, and snippets.

@heaven00
Created October 18, 2018 10:22
Show Gist options
  • Save heaven00/67f1a7d64e90501f86ad236adafe116f to your computer and use it in GitHub Desktop.
Save heaven00/67f1a7d64e90501f86ad236adafe116f to your computer and use it in GitHub Desktop.
EIP - assignment 3
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "aNyZv-Ec52ot"
},
"source": [
"# **Import Libraries and modules**"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"colab_type": "code",
"id": "3m3w1Cw49Zkt",
"outputId": "f71d31b0-5cb7-46f5-cbb8-547bf7cd5138"
},
"outputs": [],
"source": [
"# https://keras.io/\n",
"# !pip install -q keras\n",
"import keras"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "Eso6UHE080D4"
},
"outputs": [],
"source": [
"import numpy as np\n",
"\n",
"from keras.models import Sequential\n",
"from keras.layers import Dense, Dropout, Activation, Flatten, Add\n",
"from keras.layers import Convolution2D, MaxPooling2D\n",
"from keras.utils import np_utils\n",
"\n",
"from keras.datasets import mnist"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "zByEi95J86RD"
},
"source": [
"### Load pre-shuffled MNIST data into train and test sets"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 52
},
"colab_type": "code",
"id": "7eRM0QWN83PV",
"outputId": "b8d59cee-66fc-4984-c753-2f2029975f25"
},
"outputs": [],
"source": [
"(X_train, y_train), (X_test, y_test) = mnist.load_data()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 300
},
"colab_type": "code",
"id": "4a4Be72j8-ZC",
"outputId": "a6d13e6e-8718-4e4e-965a-2f11cb27befe"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(60000, 28, 28)\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x117279908>"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"print (X_train.shape)\n",
"from matplotlib import pyplot as plt\n",
"%matplotlib inline\n",
"plt.imshow(X_train[0])"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "dkmprriw9AnZ"
},
"outputs": [],
"source": [
"X_train = X_train.reshape(X_train.shape[0], 28, 28,1)\n",
"X_test = X_test.reshape(X_test.shape[0], 28, 28,1)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "X2m4YS4E9CRh"
},
"outputs": [],
"source": [
"X_train = X_train.astype('float32')\n",
"X_test = X_test.astype('float32')\n",
"X_train /= 255\n",
"X_test /= 255"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"colab_type": "code",
"id": "0Mn0vAYD9DvB",
"outputId": "963cdd07-0156-401b-edce-0fb65325ca09"
},
"outputs": [
{
"data": {
"text/plain": [
"array([5, 0, 4, 1, 9, 2, 1, 3, 1, 4], dtype=uint8)"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y_train[:10]"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "ZG8JiXR39FHC"
},
"outputs": [],
"source": [
"# Convert 1-dimensional class arrays to 10-dimensional class matrices\n",
"Y_train = np_utils.to_categorical(y_train, 10)\n",
"Y_test = np_utils.to_categorical(y_test, 10)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 191
},
"colab_type": "code",
"id": "fYlFRvKS9HMB",
"outputId": "06803d8f-e23b-44ed-a276-30d17a7396da"
},
"outputs": [
{
"data": {
"text/plain": [
"array([[0., 0., 0., 0., 0., 1., 0., 0., 0., 0.],\n",
" [1., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
" [0., 0., 0., 0., 1., 0., 0., 0., 0., 0.],\n",
" [0., 1., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
" [0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],\n",
" [0., 0., 1., 0., 0., 0., 0., 0., 0., 0.],\n",
" [0., 1., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
" [0., 0., 0., 1., 0., 0., 0., 0., 0., 0.],\n",
" [0., 1., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
" [0., 0., 0., 0., 1., 0., 0., 0., 0., 0.]], dtype=float32)"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Y_train[:10]\n"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"?Convolution2D"
]
},
{
"cell_type": "code",
"execution_count": 88,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"_________________________________________________________________\n",
"Layer (type) Output Shape Param # \n",
"=================================================================\n",
"conv2d_129 (Conv2D) (None, 26, 26, 64) 640 \n",
"_________________________________________________________________\n",
"conv2d_130 (Conv2D) (None, 24, 24, 16) 9232 \n",
"_________________________________________________________________\n",
"max_pooling2d_22 (MaxPooling (None, 12, 12, 16) 0 \n",
"_________________________________________________________________\n",
"dropout_17 (Dropout) (None, 12, 12, 16) 0 \n",
"_________________________________________________________________\n",
"conv2d_131 (Conv2D) (None, 10, 10, 16) 2320 \n",
"_________________________________________________________________\n",
"conv2d_132 (Conv2D) (None, 8, 8, 16) 2320 \n",
"_________________________________________________________________\n",
"conv2d_133 (Conv2D) (None, 8, 8, 4) 580 \n",
"_________________________________________________________________\n",
"dropout_18 (Dropout) (None, 8, 8, 4) 0 \n",
"_________________________________________________________________\n",
"flatten_24 (Flatten) (None, 256) 0 \n",
"_________________________________________________________________\n",
"dense_3 (Dense) (None, 10) 2570 \n",
"=================================================================\n",
"Total params: 17,662\n",
"Trainable params: 17,662\n",
"Non-trainable params: 0\n",
"_________________________________________________________________\n",
"None\n"
]
}
],
"source": [
"from keras.layers import Activation\n",
"from keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPool2D\n",
"model = Sequential()\n",
"\n",
"model.add(Conv2D(filters = 64, kernel_size = (3, 3), \n",
" activation ='relu', input_shape = (28,28,1)))\n",
"model.add(Conv2D(filters = 16, kernel_size = (3, 3), \n",
" activation ='relu'))\n",
"model.add(MaxPool2D(pool_size=(2, 2)))\n",
"model.add(Dropout(0.25))\n",
"\n",
"\n",
"model.add(Conv2D(filters = 16, kernel_size = (3,3),\n",
" activation ='relu'))\n",
"model.add(Conv2D(filters = 16, kernel_size = (3, 3), \n",
" activation ='relu'))\n",
"model.add(Conv2D(filters = 4, kernel_size = (3,3),padding = 'Same', \n",
" activation ='relu'))\n",
"# model.add(MaxPool2D(pool_size=(2,2), strides=(3, 3)))\n",
"model.add(Dropout(0.25))\n",
"\n",
"model.add(Flatten())\n",
"model.add(Dense(10, activation = \"softmax\"))\n",
"model.summary()"
]
},
{
"cell_type": "code",
"execution_count": 137,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 72
},
"colab_type": "code",
"id": "osKqT73Q9JJB",
"outputId": "8e5b2394-d0b3-4f9b-efdd-60bbf4b02a79"
},
"outputs": [],
"source": [
"from keras.layers import Activation\n",
"\n",
"model = Sequential()\n",
"\n",
" \n",
"model.add(Convolution2D(50, (3, 3), activation='relu', input_shape=(28,28,1)))\n",
"model.add(Convolution2D(16, (3, 3), activation='relu'))\n",
"# model.add(Convolution2D(16, (1, 3), activation='relu'))\n",
"model.add(MaxPooling2D(pool_size=(2, 2), strides=None, padding='valid', data_format=None))\n",
"model.add(Dropout(0.25))\n",
"\n",
"model.add(Convolution2D(16, (3, 3), activation ='relu'))\n",
"model.add(Convolution2D(16, (3, 3), activation ='relu'))\n",
"\n",
"model.add(Convolution2D(4, 3, activation='relu', padding='Same'))\n",
"model.add(Dropout(0.25))\n",
"\n",
"model.add(Flatten())\n",
"model.add(Dense(10, activation = \"softmax\"))"
]
},
{
"cell_type": "code",
"execution_count": 138,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 312
},
"colab_type": "code",
"id": "TzdAYg1k9K7Z",
"outputId": "9827bb7f-5264-4c7f-805c-1f613f60fe70"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"_________________________________________________________________\n",
"Layer (type) Output Shape Param # \n",
"=================================================================\n",
"conv2d_175 (Conv2D) (None, 26, 26, 50) 500 \n",
"_________________________________________________________________\n",
"conv2d_176 (Conv2D) (None, 24, 24, 16) 7216 \n",
"_________________________________________________________________\n",
"max_pooling2d_30 (MaxPooling (None, 12, 12, 16) 0 \n",
"_________________________________________________________________\n",
"dropout_33 (Dropout) (None, 12, 12, 16) 0 \n",
"_________________________________________________________________\n",
"conv2d_177 (Conv2D) (None, 10, 10, 16) 2320 \n",
"_________________________________________________________________\n",
"conv2d_178 (Conv2D) (None, 8, 8, 16) 2320 \n",
"_________________________________________________________________\n",
"conv2d_179 (Conv2D) (None, 8, 8, 4) 580 \n",
"_________________________________________________________________\n",
"dropout_34 (Dropout) (None, 8, 8, 4) 0 \n",
"_________________________________________________________________\n",
"flatten_32 (Flatten) (None, 256) 0 \n",
"_________________________________________________________________\n",
"dense_11 (Dense) (None, 10) 2570 \n",
"=================================================================\n",
"Total params: 15,506\n",
"Trainable params: 15,506\n",
"Non-trainable params: 0\n",
"_________________________________________________________________\n"
]
}
],
"source": [
"model.summary()"
]
},
{
"cell_type": "code",
"execution_count": 139,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "Zp6SuGrL9M3h"
},
"outputs": [],
"source": [
"from keras import optimizers\n",
"\n",
"opt = optimizers.adam(lr=0.01)\n",
"model.compile(loss='categorical_crossentropy',\n",
" optimizer=opt,\n",
" metrics=['accuracy'])"
]
},
{
"cell_type": "code",
"execution_count": 140,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 191
},
"colab_type": "code",
"id": "4xWoKhPY9Of5",
"outputId": "22c91d87-b028-4f57-dbcc-1cdad7a5571c"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train on 48000 samples, validate on 12000 samples\n",
"Epoch 1/3\n",
"48000/48000 [==============================] - 82s 2ms/step - loss: 0.2899 - acc: 0.9093 - val_loss: 0.0880 - val_acc: 0.9723\n",
"Epoch 2/3\n",
"48000/48000 [==============================] - 83s 2ms/step - loss: 0.1229 - acc: 0.9619 - val_loss: 0.0650 - val_acc: 0.9798\n",
"Epoch 3/3\n",
"48000/48000 [==============================] - 83s 2ms/step - loss: 0.1097 - acc: 0.9665 - val_loss: 0.0669 - val_acc: 0.9793\n"
]
},
{
"data": {
"text/plain": [
"<keras.callbacks.History at 0xb4b8d54e0>"
]
},
"execution_count": 140,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.fit(X_train, Y_train, batch_size=100, epochs=3, verbose=1, validation_split=.2)"
]
},
{
"cell_type": "code",
"execution_count": 141,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train on 48000 samples, validate on 12000 samples\n",
"Epoch 1/3\n",
"48000/48000 [==============================] - 82s 2ms/step - loss: 0.0689 - acc: 0.9777 - val_loss: 0.0439 - val_acc: 0.9871\n",
"Epoch 2/3\n",
"48000/48000 [==============================] - 87s 2ms/step - loss: 0.0590 - acc: 0.9816 - val_loss: 0.0404 - val_acc: 0.9881\n",
"Epoch 3/3\n",
"48000/48000 [==============================] - 78s 2ms/step - loss: 0.0531 - acc: 0.9831 - val_loss: 0.0390 - val_acc: 0.9888\n"
]
},
{
"data": {
"text/plain": [
"<keras.callbacks.History at 0xb4aaed518>"
]
},
"execution_count": 141,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"opt = optimizers.adam(lr=0.001)\n",
"model.compile(loss='categorical_crossentropy',\n",
" optimizer=opt,\n",
" metrics=['accuracy'])\n",
"model.fit(X_train, Y_train, batch_size=100, epochs=3, verbose=1, validation_split=.2)"
]
},
{
"cell_type": "code",
"execution_count": 142,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train on 48000 samples, validate on 12000 samples\n",
"Epoch 1/3\n",
"48000/48000 [==============================] - 83s 2ms/step - loss: 0.0479 - acc: 0.9848 - val_loss: 0.0381 - val_acc: 0.9891\n",
"Epoch 2/3\n",
"48000/48000 [==============================] - 85s 2ms/step - loss: 0.0491 - acc: 0.9846 - val_loss: 0.0377 - val_acc: 0.9891\n",
"Epoch 3/3\n",
"48000/48000 [==============================] - 77s 2ms/step - loss: 0.0484 - acc: 0.9840 - val_loss: 0.0369 - val_acc: 0.9896\n"
]
},
{
"data": {
"text/plain": [
"<keras.callbacks.History at 0xb4c3abfd0>"
]
},
"execution_count": 142,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"opt = optimizers.adam(lr=0.0003)\n",
"model.compile(loss='categorical_crossentropy',\n",
" optimizer=opt,\n",
" metrics=['accuracy'])\n",
"model.fit(X_train, Y_train, batch_size=100, epochs=3, verbose=1, validation_split=.2)"
]
},
{
"cell_type": "code",
"execution_count": 143,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train on 48000 samples, validate on 12000 samples\n",
"Epoch 1/3\n",
"48000/48000 [==============================] - 78s 2ms/step - loss: 0.0430 - acc: 0.9859 - val_loss: 0.0368 - val_acc: 0.9900\n",
"Epoch 2/3\n",
"48000/48000 [==============================] - 89s 2ms/step - loss: 0.0433 - acc: 0.9869 - val_loss: 0.0369 - val_acc: 0.9898\n",
"Epoch 3/3\n",
"48000/48000 [==============================] - 76s 2ms/step - loss: 0.0436 - acc: 0.9858 - val_loss: 0.0365 - val_acc: 0.9900\n"
]
},
{
"data": {
"text/plain": [
"<keras.callbacks.History at 0xb4844a940>"
]
},
"execution_count": 143,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"opt = optimizers.adam(lr=0.0001)\n",
"model.compile(loss='categorical_crossentropy',\n",
" optimizer=opt,\n",
" metrics=['accuracy'])\n",
"model.fit(X_train, Y_train, batch_size=100, epochs=3, verbose=1, validation_split=.2)"
]
},
{
"cell_type": "code",
"execution_count": 144,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train on 48000 samples, validate on 12000 samples\n",
"Epoch 1/3\n",
"48000/48000 [==============================] - 86s 2ms/step - loss: 0.0445 - acc: 0.9864 - val_loss: 0.0368 - val_acc: 0.9900\n",
"Epoch 2/3\n",
"48000/48000 [==============================] - 82s 2ms/step - loss: 0.0437 - acc: 0.9868 - val_loss: 0.0363 - val_acc: 0.9901\n",
"Epoch 3/3\n",
"48000/48000 [==============================] - 79s 2ms/step - loss: 0.0430 - acc: 0.9855 - val_loss: 0.0363 - val_acc: 0.9900\n"
]
},
{
"data": {
"text/plain": [
"<keras.callbacks.History at 0xb4f9545c0>"
]
},
"execution_count": 144,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"opt = optimizers.adam(lr=0.0001)\n",
"model.compile(loss='categorical_crossentropy',\n",
" optimizer=opt,\n",
" metrics=['accuracy'])\n",
"model.fit(X_train, Y_train, batch_size=100, epochs=3, verbose=1, validation_split=.2)\n"
]
},
{
"cell_type": "code",
"execution_count": 147,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train on 48000 samples, validate on 12000 samples\n",
"Epoch 1/3\n",
"48000/48000 [==============================] - 93s 2ms/step - loss: 0.0462 - acc: 0.9858 - val_loss: 0.0378 - val_acc: 0.9890\n",
"Epoch 2/3\n",
"48000/48000 [==============================] - 83s 2ms/step - loss: 0.0436 - acc: 0.9858 - val_loss: 0.0371 - val_acc: 0.9888\n",
"Epoch 3/3\n",
"48000/48000 [==============================] - 84s 2ms/step - loss: 0.0459 - acc: 0.9855 - val_loss: 0.0368 - val_acc: 0.9893\n"
]
},
{
"data": {
"text/plain": [
"<keras.callbacks.History at 0xb4d707eb8>"
]
},
"execution_count": 147,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"opt = optimizers.adam(lr=0.001)\n",
"model.compile(loss='categorical_crossentropy',\n",
" optimizer=opt,\n",
" metrics=['accuracy'])\n",
"model.fit(X_train, Y_train, batch_size=100, epochs=3, verbose=1, validation_split=.2)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train on 48000 samples, validate on 12000 samples\n",
"Epoch 1/3\n",
"48000/48000 [==============================] - 127s 3ms/step - loss: 0.0497 - acc: 0.9843 - val_loss: 0.0386 - val_acc: 0.9890\n",
"Epoch 2/3\n",
"44960/48000 [===========================>..] - ETA: 7s - loss: 0.0491 - acc: 0.9843"
]
}
],
"source": [
"opt = optimizers.adam(lr=0.001)\n",
"model.compile(loss='categorical_crossentropy',\n",
" optimizer=opt,\n",
" metrics=['accuracy'])\n",
"model.fit(X_train, Y_train, batch_size=20, epochs=3, verbose=1, validation_split=.2)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "AtsH-lLk-eLb"
},
"outputs": [],
"source": [
"score = model.evaluate(X_test, Y_test, verbose=0)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"colab_type": "code",
"id": "mkX8JMv79q9r",
"outputId": "39da9c7f-7727-4e75-90f1-69a8872eb288"
},
"outputs": [],
"source": [
"print(score)"
]
},
{
"cell_type": "code",
"execution_count": 0,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "OCWoJkwE9suh"
},
"outputs": [],
"source": [
"y_pred = model.predict(X_test)"
]
},
{
"cell_type": "code",
"execution_count": 0,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 340
},
"colab_type": "code",
"id": "Ym7iCFBm9uBs",
"outputId": "63105130-a938-481a-982d-795f6a299ddc"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[2.0593689e-17 6.3046323e-17 8.9005447e-13 1.8406407e-10 8.0754371e-19\n",
" 8.0671096e-15 1.1510667e-24 1.0000000e+00 2.1262439e-10 2.7205176e-11]\n",
" [2.5421015e-15 5.1460576e-12 1.0000000e+00 1.7606363e-12 6.3726551e-23\n",
" 3.3248325e-16 4.4326671e-09 1.8222993e-27 1.8873889e-12 3.6800765e-21]\n",
" [3.7568029e-08 9.9987435e-01 6.9531761e-06 6.3134886e-10 9.9738187e-05\n",
" 5.2485571e-08 1.0483473e-07 1.0138228e-06 1.7757657e-05 1.9014761e-10]\n",
" [1.0000000e+00 2.2739057e-15 6.6718070e-10 5.6225624e-15 4.5025926e-16\n",
" 2.7407175e-13 1.3530634e-09 3.9892802e-13 5.8574483e-14 4.0855683e-12]\n",
" [1.0115652e-12 6.9521903e-14 1.3467061e-13 1.9833676e-13 9.9999976e-01\n",
" 4.2785103e-16 1.6022580e-12 5.5436229e-11 6.7551126e-10 2.2112354e-07]\n",
" [2.3979660e-10 9.9982810e-01 3.5553690e-08 3.5910691e-11 1.0332796e-05\n",
" 1.4169725e-10 2.0029900e-11 1.5314015e-04 8.3647601e-06 3.8377021e-10]\n",
" [1.4182455e-19 9.8074493e-11 5.7774190e-09 2.3251079e-13 9.9966061e-01\n",
" 6.0978769e-09 2.3871165e-16 2.2344653e-09 3.3876873e-04 5.9758122e-07]\n",
" [7.2593749e-24 1.0864400e-09 7.5089712e-11 6.4676060e-12 5.3071453e-06\n",
" 3.0447264e-08 5.8216405e-18 1.4018439e-14 9.3028554e-09 9.9999464e-01]\n",
" [5.8572938e-11 5.5615773e-23 4.0553398e-19 1.0435163e-14 7.1205892e-15\n",
" 3.1688964e-01 6.8311024e-01 4.5070697e-21 8.7986400e-08 1.6301742e-10]]\n",
"[7 2 1 0 4 1 4 9 5]\n"
]
}
],
"source": [
"print(y_pred[:9])\n",
"print(y_test[:9])"
]
},
{
"cell_type": "code",
"execution_count": 0,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "CT--y98_dr2T"
},
"outputs": [],
"source": [
"layer_dict = dict([(layer.name, layer) for layer in model.layers])"
]
},
{
"cell_type": "code",
"execution_count": 0,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 839
},
"colab_type": "code",
"id": "2GY4Upv4dsUR",
"outputId": "3a2e0c8a-cafa-41dd-95af-a906d7d91393"
},
"outputs": [
{
"data": {
"image/png": "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\nWclkecpQLb3AZFRuPHn13datW/vbZNnOin4Wtc37778ftY855hi/naznf/XVV/t28qrL4WOru1+4\nBuDyyy/XVVdd5beTaxduueUW377jjjuivmRZ2gEDBvj2448/HvU99dRTvp28Qnjv3r314Ycfqnfv\n3rrhhhuivrD089ixY6O+22+/3beTF1y88MILfTsZV+Wpnf+7AAAAAOQEEwQAAAAAHilGyJvMKfLM\n7TfffOP7MlfWzAhPu4apOUm1KeUmc+pYKn31TCm+QmJ5Fi1alNUxAcXk008/jbbbtWvn2+HVTSVp\n1KhRvh2mK0jS7rvv7ts77bRTNoeYU5mUmbJSZ+pLilHy/T583bU1pSj5vp1MKwp169bN3yaveBv+\nzaxrwnSZfv36RX1XXnmlb4dpQ1J8de0rrriixvttttlmUdnT5HOGZU6TKUYPPPBAtB2WHT3hhBOi\nvpEjR/r2xIkTo77M62/cuHGp/cKfzcCBA6O+rbfe2rfDNCkpTmnac889VRm1838bAAAAgJxgggAA\nAADAY4IAAAAAwGMNQoEddNBB/jZZBuuAAw7wbTPL67hyoXnz5tHtlltu6fvC1ypJs2fP9u2ZM2eW\n+5y1KSc/vJT8IYccUqo/8ztOlnoM87LHjx8f9W2wwdr/wtOnT8/KOIFCSZb9nDt3rm+H/38k6eij\nj/btO++8M+p74403fLu2rkHYaKONyn1cmJdf1yxfvjzarihff8MNN8z1cLLizTffjLbD19S0adOo\nr3379v42WY6yNv29W5euXbtG7TAP/89//nP02HC9QDK3PlxnUNP9DjzwQP35z3+OSpsmy6OGzzN4\n8OCo75577om2H374Yd/u27dv1BeWNr355pujvsz6qlGjRumtt96K+n7729/69muvvRb1DRs2zLeT\n6yGuvfZa33711VejvksvvVRl4QwCAAAAAI8JAgAAAACvqFOM9t9//2h7iy228O3nnnsu38PJiT32\n2MPfJkt91jXJFKMOHTr4vvCKg1J8pb+KTiOPGzcu2v722299e8yYMdUfbA6UdfXkUKbMaUWlW7//\n/vuoLzzlTIoR6powtXL77beP+k4++WTfDq+qLEnz5s3L7cDyoC6nESWFV8JOphQ1bNjQt5PvjbVF\n8r152bJlvr3ddttFfW3atPG3YQqpVPr9vy459thjffuuu+6K+sKrHodpQ5KikqThFZGrst/f/vY3\n327WrFlU2rRnz57RfmHK0U033RT1nXHGGeUe/4UXXoj6wvesZCnTfffdV88//7wGDhyov//971Ff\nWB41Wfo5/Bx1//33R319+vTx7eeff16VwRkEAAAAAB4TBAAAAAAeEwQAAAAAXlGvQejevXu03bFj\nR9+urWsQkpeKz+TVbr/99tp2222jvgYNGuRtXPnw+eefR7dhScP//ve/0WPDfOMjjzyy3Ods3Lhx\ntL1gwYIajzNbkr/rl19+2beTpfwGDx6sa665RpJKxUGvXr18u1mzZlFfmMsK1DVffPGFb69YsSLq\na9WqVbn71db8/bDMadLq1at9u6ISqLXRhx9+6NvJ98bNN9+83P3K+jkVi++++863k2XK16xZ49ut\nW7eO+iqKgbokXHM5adIknXjiiX77hhtuiB57wQUX+HayJOdtt91Wqf0uvvjiqO/222/37UGDBkXt\nsWPH+u1kvn64lvCPf/xj1Dd8+PBoO1yDcOihh0Z9YbnSTLn75LinTJlSqiT6M88849tPPfVU1Hfq\nqaf69tlnnx31XXjhhb6dXN9bnrodgQAAAACqhAkCAAAAAK+oU4zC0yVS6asR1kaZEmYZmbJYZ5xx\nhh577LGor66Vrcyc9s/cfvPNN74vPKUnSatWrfLtZMmzsDxq+Lhik7kiZlmSp5Ul6ZNPPpEkTZ06\nNbo/vHpyMnWirp+GBuqT+pJekjRjxgzfTqaStWvXzrdr088lTJsN042ktSWtpYpTqMK0sromTLNa\ns2ZNlDpz3nnnRY+94447fDt59eIwjSh83Lr2+/3vf+/bmfSmww47TGYWffY84ogjov3CsS1dujTq\nS6Yx7bvvvr6dTEcKr2acTBV64okn/G2yBGq4nfzMGF49+cwzz4z6wmPsueeeqoza878NAAAAQM4x\nQQAAAADgMUEAAAAA4BX1GoTalG9YWQ899FC5fZ9++mkeR5J/W265ZXTbvHlz37fTTjtFjw3zNxcu\nXFjucyZLghaTpk2bRtvbbbedb++6666lHv/VV19JWlsGNiNcZ5FcwxKWgwVQu7Ro0SLa/uqrr9Sp\nUyd99dVXmj17doFGlX+LFi3y7WTeffJ9NFTM5Wwza8ok6ccff4z6ttlmG98+8MADo75M6e7GjRuX\nWrtQl3Tr1i1qh+sQzznnnOixDz74oG/fc889UV+Ya1/d/f7xj39ISq0v+Mc//hGVYA/Lr0rSfffd\n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\ntJ2rNQoo3//+979oe8stt/Tt5O8yzP0NS6XOnDlTX3zxhd/ebrvtsjtIlCvMP6+ozOmaNWuivuQ2\nao9wbclee+2lf//73347syYgIywnGq7plOL1HOG6D0l64YUXfPvNN98s9zmT7cz6CEm6/PLLo/1u\nuOEG3w7X0EnSnXfeGW1/+eWXvh2WVZWkXr16+XZybepbb72lDz/8UKecckqpNa3huorTTz896gvX\nR9x7771RX58+fXw7ua6hPOtcgwAAAACg/mCCAAAAAMAjxSgPiqW0K7KvS5cu0XZY1uzoo4+u0nM9\n/vjjkkqX+RszZkw1R4eKfPzxx9Ht+++/7/uSp6rD09jJ32syzSxMFUuWYA2VdRXYTLm7ZF+YurZg\nwYKoj5Sm0iWF27Vr59uZUqYZ3bt39+1nn33Wtxs1aqRPPvnEb5NilD/rr7++b1fl7yVXUq47fvOb\n3/j2XXfdFfVddNFFZT5Oikt9LlmyJOoL37dHjx5d7nOG5XObNWsWlTZNpjudffbZvp0sXbrLLrtE\n22Fp1TDdSZI+++yzcvsyfwfMrFR51jDlqKIrTifHPWjQIN8O07sqwhkEAAAAAB4TBAAAAAAeEwQA\nAAAAHmsQcuDFF1+MtpNluVB3zJ07N9oOS/SFeeNJYc6tJDVu3FiNGzfO7uBQbWE5VEl69913fTuZ\n77711ltH22FObLIM3rq0aNFCUunc6jCXNizhKUnLli3z7dWrV0d9y5cv9+1FixZVaSy1WVhesHnz\n5lHfIYesLdf+3//+17fbtGkTlUudNWtWtN8222yTlbFVlDefWc/SqlWrKEdZkqZPn+7bO+20U1bG\nUizCUqYVlTlN/uyKqcxpOE5JatiwYYFGUjtMmjQpah9//PF++7rrroseG5YaDdcNSfH7cZs2baK+\n8P96Jq+/rOe85JJLJEmvvfaaLrnkEt1yyy2+L1yPIEnnnnuubw8YMCDqy6wjzBg+fLhvJ8st/+pX\nv/Lt119/Pep74403/O1RRx0V9YVrEoYNGxb1hWsSwnFK0ogRI3x79913V2VwBgEAAACAxwQBAAAA\ngEeKUQ4kr47M1ZLrrg8++KDc7eeee67c/ZLlL//5z3/qnnvukVQ6/agu+emnn6Lb8KrE4VVsJWnl\nypW+nUwtyOxf0THK2i98zoyPPvpIUsVXsg77Jk+eHPX9+OOP0XZYPq+icSbTj2bPnq2dd95ZUum0\n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\nIiKDFwhERERERGTwAoGIiIiIiAxeIBARERERkcELBCIiIiIiMniBQEREREREBi8QiIiIiIjI4AUC\nEREREREZvEAgIiIiIiKDFwhERERERGTwAoGIiIiIiAxeIBARERERkcELBCIiIiIiMniBQERERERE\nBi8QiIiIiIjI4AUCEREREREZvEAgIiIiIiKDFwhERERERGTwAoGIiIiIiAxeIBARERERkcELBCIi\nIiIiMniBQEREREREBi8QiIiIiIjI4AUCEREREREZvEAgIiIiIiKDFwhERERERGTwAoGIiIiIiAxe\nIBARERERkcELBCIiIiIiMniBQEREREREBi8QiIiIiIjI4AUCEREREREZvEAgIiIiIiKDFwhERERE\nRGTwAoGIiIiIiAxeIBARERERkcELBCIiIiIiMniBQEREREREBi8QiIiIiIjI4AUCEREREREZvEAg\nIiIiIiKDFwhERERERGTwAoGIiIiIiAxeIBARERERkcELBCIiIiIiMniBQEREREREBi8QiIiIiIjI\n4AUCEREREREZvEAgIiIiIiKDFwhERERERGTwAoGIiIiIiAxeIBARERERkcELBCIiIiIiMniBQERE\nREREBi8QiIiIiIjIODvVG5BojuO8A6AdgHsB/AnAHwGUBPCW67p1Hce5AMBlrut+kMv1FAIwCMBz\nADq4rvul6CsB4A0Av3ddN9+/5+kmTWKgL4CHARQGsBXAva7r7sjN+ihyaRID9wF4AFnH3S0A+rqu\nuz0366PIpUMMiMc8AOBl13UL5WZdFJ1Ux4DjOO0BfAjge/Hwqa7r/jk366PIpToGsvsaAHgbQHkA\nBwHc5bru2tysLxEKwo/VWwFkuK67CcBswHxJPR0AdAaQq2AA8BqyfvztC9G3EMB/c/n6FLuUxoDj\nOC0BPAOgueu6ux3HGQbg/wDcnsv1UeRSHQOtkXWyaOG67g+O44wA8CKAnrlcH0UuHc4FcBynMoB+\nuVwHxSYdYuAr13Xbh/g7JUeqzwWFAUwB8BfXdac4jnMHsi5WHs3l+uIuX18gOI7zObLSqGY7jvMQ\ngFcB3CH6mwH4F4CzHccp4bruLY7jXA9gCIDiAL4DcJvrugccx/kfAFUBNAYw3nXdl9Tqxriuu8hx\nnK0hNuUPAHYj62qVkihNYmA/gFtc192dvTwfwLPx20vykyYxsA9AL9d1f8he/hTA0PjtJflJkxjw\n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\nOvG7+gCmZLenAmiUorHMB3B1dnsbgFJpHEsqMQb2YwykJwaAzIkDxgBjACicccAY0BgDjIGMjIFU\npRiVBfCF2N6U/bvfU7Fz3/f3AtjreZ78dSlxuWYjgBNSNJZ9AHZlb3YGMA1Ak3SMJcUYA/vHwhgI\nS2kMAJkTB4wBp9DGQPZYCmMcMAb0WBgDjIGMjIGUzUEwiqRpv9GkfDye57VEOBAuAbAynWNJk0x7\nnoyB1MvE55nSMTEGMvJ58liQWpn4HBkDqZWJz7HQx0CqUozWIXx2GCiH8KSLdNrpeV7J7HZ56MtM\nSeV5XhMADwC4zPf97ekcSwoxBgTGAIDMiAEgTa89YwBAIY8BoFDGAWPAYAwwBjIxBlJ1gjATwFUA\n4HleDQDrfN/fkaJ9RzMbQOvsdmsA01OxU8/z/gGgH4Dmvu9vSedYUowxkI0xkFExAKThtWcMMAaA\nQhsHjAGBMcAYyNQYKBIKhVKyI8/z+gK4CMDfALr6vr80JTsO7/scAM8AOAXAHgBrAdwAYBiAEgBW\nAbjR9/09KRjLzQAeBvCd+HUHAENSPZZUYwy4sTAG0hAD2fvPiDhgDDAGssdSKOOAMaDGwhhgDGRk\nDKTsBIGIiIiIiDIfV1ImIiIiIiKHJwhEREREROTwBIGIiIiIiByeIBARERERkcMTBCIiIiIicniC\nQEREREREDk8QiIiIiIjI4QkCERERERE5PEEgIiIiIiKHJwhEREREROTwBIGIiIiIiByeIBARERER\nkcMTBCIiIiIicniCQEREREREDk8QiIiIiIjI4QkCERERERE5PEEgIiIiIiKHJwhEREREROTwBIGI\niIiIiByeIBARERERkcMTBCIiIiIicniCQEREREREDk8QiIiIiIjI4QkCERERERE5PEEgIiIiIiKH\nJwhEREREROTwBIGIiIiIiByeIBARERERkcMTBCIiIiIicniCQEREREREDk8QiIiIiIjI4QkCERER\nERE5PEEgIiIiIiKHJwhEREREROTwBIGIiIiIiByeIBARERERkcMTBCIiIiIicniCQEREREREDk8Q\niIiIiIjI4QkCERERERE5PEEgIiIiIiKHJwhEREREROTwBIGIiIiIiByeIBARERERkcMTBCIiIiIi\ncniCQEREREREDk8QiIiIiIjI4QkCERERERE5PEEgIiIiIiKHJwhEREREROTwBIGIiIiIiByeIBAR\nERERkcMTBCIiIiIicniCQEREREREDk8QiIiIiIjI4QkCERERERE5PEEgIiIiIiKHJwhEREREROTw\nBIGIiIiIiByeIBARERERkcMTBCIiIiIicniCQEREREREDk8QiIiIiIjI4QkCERERERE5PEEgIiIi\nIiLnkHQPINk8zxsJoB6AmwDcC6AngCMBDPF9v5LneWUAnO/7/pR87qcIgB4A+gBo4Pv+guzfdwdw\nm7jpoQCO8n3/2Pzsj+KX7hjI7rsfQAcAIQDLAdzu+/6G/OyP4pchMdAL4Rg4HMDbAO7xfT+Un/1R\n/FIYAxcCeDb7sf8A8C/f9+dn910L4EGEPweWAejk+/72/OyP4pchMXA4gFcAXOP7/kH/HSzTZEgM\ndAFwF4CiAH4GcJPv+2vys79kKAxXEK4DUN/3/Rm+7zf0fX+x6W8A4PIE7OclAFkANspf+r7/vO/7\npwX/ED4wDEvA/ih+aY0Bz/MaA+iE8EHndADfAXg6Afuj+KU7Bi5D+APpQgCVAJwDoG0C9kfxS3oM\neJ5XHMBkAPdlv9f/DeCt7L6TAAwE0NT3fQ/hLwaP52d/lGtpjYFsHwNYlZ99UL6k+zhwHoBHADTK\n/k74NYAn87O/ZDmoz149z/sA4ZOgGZ7n3QlgEMSHsud5NQC8AOAQz/MO933/Ws/zWgL4L4BSAL4H\ncL3v+5s9z3sYQHkAZwJ40/f958zuhvu+v9DzvJ9jjKcMwlcTzk7MM6QDyZAYqA7gc/E/he8DeCpx\nz5JiyZAYaAxgou/7W7P3+SKA6wG8kcjnSjlLYQwcCuBm3/fnZm8vAFDO87yjALQEMMf3/V+y+14D\nMBfAHcl4zqRlQgz4vr8NwC0A1iP8v9eUQpkQAwA2AbjW9/312X0fAng0KU84nw7qKwi+79fPbtb3\nfX9aDv2LEQ6Gt7MD4VSEP7Cv833/VIQP3i+LuzRF+H9/7JcC+L6/MI4h9QAwLPsgQSmQITHwAYAL\nPM+r4HneIQBaAZiVx6dEuZQhMRBC+HJyYCfCVxIoBVIVA77v7/R9f4L41WUAvss+5mcB+EH0/QCg\ntOd5R+fv2VE8MiQG4v2uQEmQCTHg+/7PQaqR6Ps0v88tGQ7qKwh5cCmAD3zfX5a9/TKAXz3PCz7Y\nP/V9f3NeHtjzvH8AaA+gav6HSUmU8BjwfX+x53nDEU4p2AVgDYC6CRovJV4yjgOzAAzxPK8/gC0A\nugAokZDRUjLkOwY8zzsDQH+ErxQBwGEQqWe+7+/2PC+E8P9Mbk3k4CkhkhEDVLAkNQY8z2uH8AlC\nrcQNOXF4gqAdBeAiz/NWiN9tBxBMKN6Sj8dujnycYFDKJDwGPM+7HEAzAGWy798bwEiE//eBMk/C\nY8D3/eme5w0AMBvhL4MTAJyY34FS0uQrBjzPuwDAWIQnH36Q/etdECeFnueVAFAE4atJlHmSEQNU\nsCQtBjzPux3A3QAu9jO0YAlPELR1AGb7vn+V7fA8L7+P3RxAxCUtyjjJiIFLAEz3ff+37McZg/BJ\nAmWmpBwHfN9/CtlzTzzPa4/w5DTKTHmOgez/MRyHcJ7xh6JrBcLVUwKVAaxnymnGSkYMUMGSlBjw\nPK8jwnOPLvJ9f13CRptgB/UchDjtQfgsEQBmAKibnXcGz/Nqep73fIL2cybC5S0p8yQ7BnwADT3P\nOyx7uxnCJQ4pcyQ1BjzPq+953lzP84p5nncEgH8BGJ6vEVOi5TsGvHCZ2+EIlzG2XwwnI3wcCL5Z\n3A1d3YbSL9kxQJkvqTHgeV55AE8AuDSTTw4AXkEAgJkA7vE8b5Hv++d54fq0Ez3PKwZgB8K1ag/I\n87xlCL+e5QGM8jzvTwDtfd//LPsmFQBk5GUkSm4MIJy36AH4yvO8fQjHwY1JeB6Ud8mOgQ8RLm+7\nEsDfAPoz7SDjJCIGagE4A8CTnufJ0oXXZ89Fuh3ApOxiBYsBdEvwc6D8SWoMZP98E+EqN0WD1BU/\nXO6SMkOyY6AJwmvhzBRXIfb6vl8tYc8gQYqEQlynh4iIiIiIwphiREREREREDk8QiIiIiIjI4QkC\nERERERE5eZ6knL3gTy2EVwjt7vv+ooSNigoExgAxBghgHBBjgBgDB5s8XUHwPK8egMq+79cG0BnA\ngISOijIeY4AYAwQwDogxQIyBg1FeryA0BDAJAHzfX+553tGe5x3p+/7vOd347rvvDgFAz5490a9f\nP5QtW9b1HXXUUeq21atXd+3169ervt9/z/Hh86Rly5aYPHlywh4vlqVLl7r2CSecoPrq1auH6tWr\n4+uvv454vtu2JX79nI4dOxZJ0EPlKgYAoH379qE+ffqgd+/MWCNMjuUf//iH+/2+ffvU7apUqeLa\nB/qb/PLLL679119/qb5jjz3WtX/77beoY8kr+RwAYPv27a5drZquoHbvvfcmIg5yHQNDhgwJXXnl\nlZgwYQIAYOXKla5v0qRJCRhS7kydOhUtWrRI+X5zkoyxVKxY0bWzsrJU33PPPZeWY8Hw4cNDAHD5\n5ZdjypQp6vg4d+7cBA0pd8aNG4err746Lfu2Ej2W007bX0FTfr4CQO/evdMSA7fccksIAB566CE8\n+uijqm/FihVq+/jjj3ftSy65RPVt3LjRtWfNmpWv+73++uu48cYb87y/Cy+8UG0ffvjhrj1tml4j\ntXTp0q7dvHlz1bdp0yZ06tQJQ4cOxdSpU3N1v4C9X4MGDXIcFwD06tUrLTHQu3fvEAB0794dzz//\nvPqc/fBDvXzEt99+69r2O9Spp57q2nbxsk8++cS1fd9XffK1DDz99NPo0aNH1McHgNNPP9217ee4\n3UesccdSqVKlHF8XQL828vFzuw9p7NixOcdAKBTK9b+srKzBWVlZLcX2h1lZWVnRbr9u3boQZYw8\n/c3tv9zGQCgUwurVq1P1HCmGJ598MhRKUwz89ttvKXqWFEv37t1DoTQdC7Zs2ZKiZ0mxPP7446FQ\nmmJgzZo1KXqWFEvfvn1DoTTFwIYNG1L0LCmWq6++OhSK8jdK1EJpMc9A+/XrBwB49tlncffdd2fE\nFYSOHTti2LBhCXu8WA50BeH888/Hp59+mqorCAl/zGwH/F+I3r17Y8SIEWjfvn2yxpArcizpvoKQ\niNclN1cQkuSAMTBhwgTcdNNNGDJkCID0X0HwfT/if53SJRljiXUFIYlixsGUKVMAAB06dMDw4cMz\n4grCl19+ibPPPjst+7YSPZZYVxCSKGYMBFcNXnnlFdxyyy2qL11XEObNm4d69eplxBWEXr164ckn\nn0zJFYQkihkDzz8fXpA4uHqeCVcQxo4dizZt2kR9fCB1VxByel2A5FxBiCavJwjrAJQV2+UArI9y\nW/WGX7FiBbZu3eq2K1eurG573HHHubb9opbIE4RUkn/EzZs3q77gUnLp0qXx999/q75knCAkUK5i\nINMEX6aDn/Kg2axZM3Xbr7/+2rVLlCih+ubMmaO2y5cv79qVKlVSfV9++aVrH3HEEXkZdgR5UmAf\ns3Hjxq49ffr0hOzPyHUMBO/p4OeePXtc33fffZfo8cUlXfvNSTLHcsghifr/oAi5ioO1a9eqtjwm\n2mNgKqVz31YixyL/Q07+J0WC5evzQH5HqF27tupr1aqVa9sv2kGqIhB53M7L/WrXrh33/WwqivwP\nGQAYPHiwa19++eWq77rrrnPtiRMnqr633noLvXr1wrBhw9RY4rlfwN5Pnhh+/vnnSJJcxcDMmTMB\nhE8QZs6cqU64KlSooG4rY+KMM85QfW+88YZrjx49WvXVqFEjxzagX5MNGza4tj05l8crAHjzzTdd\ne9myZaqvZs2aalueNNrHtf8hLL333nsAgC+++AIjR45Ufeecc45r2/eKfG1yc5IVTV7LnM4EcBUA\neJ5XA8A63/d35PGxqGBiDBBjgADGATEGiDFw0MnTCYLv+x8D+MLzvI8RnqneNaGjoozHGCDGAAGM\nA2IMEGPgYJTna86+798X721l6sMRRxyBd9991203bNhQ3VZeIqlXr57qk5eiMzz9RpF5aTJHHdif\nslKiRImInDibz5ZpchMDmUCm4wQpRcHP2267zfXZXHh5KdBewjzvvPPUtsz1D3KtAznlPObW0Ucf\nrbYPO+ww1/7Xv/6l+vr06ePayXq/5DYGypUrp37KfN+vvvoqgSOLnz0GpVOixyLjI4kpRrmKgyA/\nunfv3pg6dapKL0lnGqlNF0inRI6lc+fOrm3zqRMpNzHwzTffqPZFF13ktuV4AZ068+KLL6q+a6+9\n1rW7dOmS7/t16dJF3e+VV15R97vyyitd26ZrDR8+XG3L52TnWcjPkaeeekr1BXPRGjRogO7du6u+\nESNGRL2fnF94xx13qL4BA/ZXHF2yZAmSJTcxcPHFF6u2nO8hj1sA3Jw1ABHV/uR3Rvs6X3HFFa4d\nzIUNPPLII64dfA7df//9mDBhAkKhkOuzcwlr1arl2u3atYvaBwDjx4937aFDh6q+L774wrVlarLc\nLlq0KLp166b6Wrdu7dr//e9/VZ98bWQqEqDT9+PFlZSJiIiIiMjhCQIRERERETk8QSAiIiIiIid5\nSamCrMVdsWJFVevalnqS+ah169ZVfWXKlHHtgjQHYe/eva5t89n+7//+z/0M2pQYdl0AORfm9ttv\nBwB07RqeRyXnHciSZ4Aua2bLitl5MmPHjnVtGa8AUKxYsbjGbecZyJKHderUUX2NGjVybTs/YseO\n/QUkbL1kIso8wTyRQw45JOLzQG7Lz5SctjOdrCV/+umnq+PYmDFj1G2fe+4515ZzBwDgnnvucW05\ndyAv9+vduzfGjBmDF154wfXJOQcAcOedd7q2zYU/5phj1HbPnj1d2x6bH3vsMde2axMFufGPPfZY\nRN76f/7zH9fu1KlT1D57v3nz5rn2Kaecgkwgy5rOmjUL77//vtuW5a8BnaOfm5z8Jk2auLYtjyrn\nK8j5Dy+//LIqbWrfh/J7hC0lauehfPbZZ65tY1Du385lDNZX6NOnj4pHIHbpVPna2FK38nuMXcMj\nGn4jJSIiIiIihycIRERERETkpCTFKCsrS7XlJRK7Eq0se3jDDTeoPlkmMtNLgEqxVsVkilFiyfQc\nWypNlgEdN24cbr/9dleKdN26da5v1KhR6n4yrciu1mnL4MkVIONNKQoEZfPkqs4A0KFDB9e2KWoy\npUk+BwB4++23XbtBgwa5Ggslx5FHHunaOZUdDVbf/vHHH9XvM2mV33Sxr5c8Xtpjp0y5KWjpN4FY\nKUaxji0F4fnKVMk6deq4VXUBRKRUyLKnvXr1Un3Dhg1zbVnWOTf3e/bZZwGEU4aeffbZmKVT5UrK\nQRpIoGnTpmpbfrex6U8yrUiW2wTC6UE9e/bE0KFDce+996o+meL0+OOPqz5ZylWmMNn9nXjiicgE\nJ510kmo3btzYbbds2VLdVr7WiUq5kelIwef4zz//jNatW6uSoPv27Yv6HOznsRwLANx0002ubVPm\nZdrZSy+9pPo+++wzbN++HfXq1Yt4TBnLNm3pvvv2V5kdOHCg6pNlT+MtecpvpERERERE5PAEgYiI\niIiIHJ4gEBERERGRk5I5CNZpp53m2rbc0urVq107Vs5pQSJzQnPKOw4U1OeXanKegc3NlrmtsnQe\noHP+gvK6wc833njD9dlcQVnqrm/fvqrv1FNPVdt5LWUK7M9Pf/DBB9Xv33vvPdf+/vvvVd/27dtd\nu3///qpP5nTK0mwFkX1vFNScfDmPKphvIAX5yF999ZX6vZxzFcybCRTU1yKRCuprYD8PgnlThx12\nGEqWLKn6/vzzT9e2uc8FzfLly1Vbfg+wZT9lzrU8TgN63oG9nzyO2rKfwbwDAGjTpo1q33HHHW77\nqaeeUvdbtGiRa9scbxuDcg6EzP8GgH//+9+ubUtj3nvvvejZsyfuvffeiLkTscqcfvLJJ649fvx4\n1bdy5UrX/uCDD5AJihcvrtrz589327t27VK3nTFjhmvbuR95zcmvVq2aa992222qfdlll7ltWfIU\nAIoWLerahx56qOqz71lZXnbIkCGq76OPPnLtJ598UvUFce77Pnbu3Kn65NwJez85B8OWg5WlhUeO\nHIl48BspERERERE5PEEgIiIiIiInLSlGnue5ti1F+euvv7p2rDJvmeyLL75Q2+XKlYt6W1nmlHIW\nlP8MyFKR7dq1U33y0rssAQroMqDDhg3DY4895srdyVJi119/vbrf/fff79oyPQ4ASpQoEc9TzOZo\n6wAAIABJREFUAKBXdrYrRQL7L4fay4YnnHCCa8uUIkBfer3iiitUn4wpWWo4U9n0LJl+YUu/bt26\n1bVzei0z1bJly1z7jz/+iOhfuHAhAODyyy9Xv69fv75r29QkmX40derURAwzI9n4kPFtU24KaspR\nkL5QtGjRiM8EmdoQK8WoIHyWLFiwQLXlysZ2xVtZBnTw4MGq76677nJtW9oz3rKfsvz1Pffco/Yn\ny1YDOjXo0UcfVX02jbNt27aubY+/sqzrkiVLVF+wMnDr1q0jXgtZutrGuByPTCkCgGnTprm2/BzK\nJF9//bVr29ddrq4tV1wGdJqZTZ2RKZ0yVgD9eSlXGd6zZ49aBdume5YtW9a1D3Sc2b17t2vL9GcA\n6Nq1q2vb0rPjxo1Dt27dMG7cuIjvMfKzT44T0ClWNh1PfjasWrUq5rgDmX8kISIiIiKilOEJAhER\nEREROTxBICIiIiIiJy1zECSbwxVrWeuCkFsJ6DxjQJc5/ec//6n6guf/999/F9i82WSQZUDlnANA\nl6+TJUABXQbU5uvLMmMNGjQAsL+kabScVACoUqWKa9syZrHYXE8Z2z169Ii4fVAWz+7/ww8/dG1b\ncq1IkSKubV+nevXqufbLL7+s+mwp1UxQvnx5tV25cmXXrlmzpur79ttvXXvChAmqTx4nMu09JUv0\nLV26NKI/iAE7D6Zhw4auLeMRKFhzMHJLzkOxJUFliUF5jAWA//3vf8kdWILY5xTMsyhWrFjEc5J/\n54LyWRjNVVddpdqTJ0922zaPXOZu25zr6tWru7Yt/yvz9W+44QbVd+edd7p2kN/eu3dvjBkzRpXf\ntHM95HG0TJkyqk+WkQSApk2burbMGweAZ555xrVleU9gf2nV+vXrq8cIxhiw8+Fk6dgBAwaoPvn5\nZvPdM4Wcp2Fj/4cffnBt+xko8/xluVJg/3wOIDJ2nnvuOdcuVaoUgPDn4qhRo9ScxA4dOqj7yZK1\ncl4jAOzYsUNty2OULYku49XOO9y8eTO6deuGAQMGRPwt5WehLZErx/rZZ5+pPjlf05bdjaZgH2WI\niIiIiCiheIJARERERERO2lOMDkbffPON2palMJs1a6b61qxZg+OPPx5r1qxJydgylU3HkZfT5WqI\ngL4cJ0uAAjqtSK4sCexPKwKAm2++Wf2UlybtpeK8phXZdDl5WduugvnBBx+4snzvvPOO6pOXLSdN\nmqT6LrnkEte+5pprVF/w3ACgatWqcY0/newq0fL1s2UCu3Tp4tr20q18HPt6pZu8vB9c1paCS9Ky\n7B6gS9ade+65qi9WGeWDiSzzCej0sUxLJYtFphXZ0q1yJWW7gqpMmyroK4vPmTMHQLj05Jw5c1Tp\nXpkWAuiylvY1kcf7xYsXqz55jLXHP5niE3xe9+7dG9OmTVOlRT/++GN1P5kiLFe0BXS5YUCn9dhS\n3U2aNHFtW8r0mGOOcT+nT5+u+rZt2xYx7oBMjZIrLgPAySef7Nqff/45MoEsd+95nkrH6devn7qt\nfM/Y1a3ldwW78rRMK5YlTwFd9lR+L5s0aZJKBZUpvoBO67El7eVzAoAtW7a49plnnqn65PvZxscD\nDzwAAOjfv3/EuOVztJ8TMo3opptuUn3y84YrKRMRERERUa7xBIGIiIiIiByeIBARERERkZOWOQif\nfvqpa9uSW6FQKNXDSbhY+aDVqlVT28H8hBIlSqhSXoVBrHz9G2+80bVlvjkAVYLMkvn6Mu/SPmb7\n9u2xcuVK99iyXN7hhx8ez/BzvK18Hrbk2tVXX+3aQQ6uFMxBsPEzb948127UqJHq69atm2u3b99e\n9eX1OaXLhg0b1PaXX37p2jbX84MPPoj6OLY0YTrZssaydOsVV1wRcfthw4YBAD766CP1+4EDB7q2\nPU7I5yvnOx0MYpU5leUNC1oOfkDmjQP756AceuihEfMTDiZly5ZV7TZt2rjtuXPnqtvKfPrHH39c\n9bVt29a1ZX4+AAwaNMi1L7vsMtUXzPUA9DyG7du3q+PQ008/re4n58H0799f9c2aNUtt165d27Vt\nPniseRVB+dLTTjtN5dADujSmLYct56CtX79e9cnHsSVX00Uex3744QdVvtnOK5PfC1euXKn65PwS\nWQ4a0KVgb7nlFtUnS30HJU9/+eUXNG7cWJVZl8cZQJcPt49Zq1YttT127FjXHj9+vOp79NFHo97v\nrrvuQvPmzTF16lQ1/wwA+vTp49ryMxLQsTR79mzV9+OPP7r2qlWrEA9eQSAiIiIiIieuKwie51UD\nMBlAf9/3X/A870QAbwAoCmA9gHa+7++O9RhUsDEGiDFAjAFiDBBjoHA44AmC53mlAAwEIHMiHgXw\nou/74zzP6wOgE4CX4t2pXGnYrgIq0zB++eWXeB8y7eJNm7IlNP/44w8A4RSQzZs3J3GEeZeoGAjS\nXIKfMh3nuuuuU7eVJTrtSobyMqItQSYf87zzzlN91157rWvXqFEDwP6Ur3hTcA50O5nGJEuOAfqS\n9N133636Ro4cieOPPx5AZLlPWQLQpi3JNBV56dOyZUJzKxnHAcu+b2RZNlsGWF52DcoCBmxqWTrZ\nS7nyeaxevVr1DRw40KUQ2JQZma5gpWol5VTEQLSVhW0bKLhpRTINzB5Pgud/yCGHRKwma7fTIVEx\nIFdHrlOnDqZNm+a2bWqELHt6yimnqD6ZwrFp0ybVJz9TZsyYEXUs3bt3V+3zzz/fbdt0J1k6265U\na9NbZBnUIHUwECttKvhO8Mcff0R8vskVoe1ngTwmvvrqq6pPvt427TG3EhUDMp737t2L5s2bu227\nWrxcTdiWCJffD6688krVJ0uL27+lPKYOHTpUtWOlP8v3r1yNGQBuvfVWtS3ToWVaG6BT0nbt2qX6\ngmP6nj17IlKq5f6XLFmi+l56af9LbtOPkrWS8m4ATQHINaXrAwiS4aYCaAQ6mDEGiDFAjAFiDBBj\noLAIhUJx/cvKyno4Kyvrjuz2RvH7illZWR/Huu+WLVtClDHi/pvbf/mJgVAohLVr16bsSVJ0jz32\nWCiUphjYvn17qp4mxdCqVatQKE0x8P3336fqaVIMM2fODIXSFAP8TpAZevXqFQqlKQZWrVqVqqdJ\nMXTt2jUUivI3SkQVoyIHusHkyZMBhFcWHDZsGF577TXXZ2fUyxSjyy+/POpjLl26NNcDlYKxJIpM\nMbIr+IZC+1OMbPWaP/74AyeeeCJWr16dY2WbRJOrOybQAWMACF9yHTRoEG6//faIPptiJC8N2hSj\npk2bura9BPvVV1+5tq0YJS/51qhRAxMnTkSrVq0AAEcccUQ8TyFXKUa2+pKsiGFjb+TIkXjllVcA\nRKYYySob6UoxikNcMTBv3jy0aNECU6dOBaDTY15++WV1W7kKpU0xkvfLT4rR7NmzIypDJZJd8VZW\nQZGpY0A4xSh4b9j0mVhVJ2KlGMnL2jZ9JwniioGg8szChQtRu3ZtrFixwvUF6RUBOX77HpXVm+R7\nBMj9Ksv79u2LWKk5WeQxJEgrDJQsWRJff/01qlevrlZzBSJTaKRYz1GmNtoU1ySIKwaCVLoOHTpg\n+PDh6phnU4zKly/v2jaFRFZtsSsLlylTxrVjpRgFqRc33XQThgwZkpIUo3vvvde1bYrRRRddhDp1\n6mDBggURx/sLLrjAte1qyfGmGMkKUkkSVwz06NEDQDhNrE2bNujdu7frkxV3AJ1iZKsKye8H9vNZ\nfo+wqxzLFKPgO0WjRo0we/bsPKcYyVQ5QKcY2WObTPORf1cAmDBhAoYOHYpOnTpFpKLKlDtZbQmI\nP8UoXnn9xNjpeV5J3/f/BFAe+lLTAS1fvty1bV5W/fr1XVsuvQ1k9pyEWPMqKlas6Nr2QB5sF8B8\n2nzFAKCXHrcl22QcyFKeAPDee++5tv1icOSRR0Z9zMaNG7t28GUjnhMDedCxfyeZNwnoL/D2ZOy+\n++5zbVmeL9CgQQMAUF+YAH2QsfuTH0r24Bg8HqBL/gG6xFs+5DsGZD6s/aLeokWLuB7jp59+Utvy\nw2XSpEm5HVJC2YO7PIYtWLBA9Q0cONDlpVaoUEH1yWNhhh0r8h0Dscgv7Rn2vONmT8xKlizp2tFO\nevbu3atKNge/i8aeiKZYrmNAfgdYvnw51q3bfxf7peeMM85wbftlTZ4k2j5ZCjmYcxaQJ0pyrtp5\n552nvuQ99thj6n7ytqNHj1Z9tsSw/AIv50oAeo6d/PIePG6dOnUwevRodSIBAGeffbZrP/LII6pv\n1KhRrm0/e+Q+Fi9ejCTIdQzI/8z76quv1Otp/3NPfjbYPnnCIGMFAF544QXXtt8n5Rf2oAxso0aN\nMGTIEHWSak/iJTufQ57kALq8rf2P4549e7q2/Zx4/fXXAQCDBw9G3759VV+vXr1c25ZHla+TPbmU\nc/pGjhyJeOT1qDIbQHAa0xrA9Dw+DhVcjAFiDBBjgBgDxBg4CMVTxegcAM8AOAXAHs/zrgJwA4Bh\nnufdAmAVgOHJHCSlF2OAGAPEGCDGADEGCo8DniD4vv8FwjPUrcY5/C7f5OUjm7O1cePGZOwyIXzf\nd22bNtWkSRPXtrnUQDhnWuZbZ5pExUBwiSv4KfNCbSkveWlXphQBOoXEXoZ/4oknXLtZs2aqL955\nBvZSsUxtsON88skn1fa5557r2jb96aKLLnLtu+66K2K/wTyWo446Sv2+c+fOrn399derPplWZOdx\nyHJwclXlvEjWcUC+H+zqyDLtwKYPyNST//3vf6ovk1JRbOnWA5UYDFIfbJqiff7pkIrPApuOI7dt\nio18jRL1N481TyNWGo+9n7ytTW2QKQt2JeVgnsGOHTsinm+a04gAJC4G5Orw8+bNQ82aNd32cccd\np24r3zNy/hmgV6O1qw7LuW4yLQMAFi1a5NrByrRjxoxBnz59MHPmTNcnj72ATtuQtwPCc2qibV9y\nySWqT+aD28/+IDW0QYMGKhULAJ555hnXjpXSdNVVV6m+YH4boFN78iJRMSDnYFWqVAlffPGF27bl\nbOV3qOHD9bmH3K5bt27U/dlUVDk3VKZgHX744SqW7GPK76H2vf3OO++obbmCt33dZXrQzz//rPpG\njx6Ntm3bYvTo0RGvhfxMsSnHct6uTUGT35tsGl806T/iEBERERFRxuAJAhEREREROTxBICIiIiIi\nJ+mFsQsjm49atWrVqH2rVq3C2WefjbVr16ZkbOkULCce/DzttNNcny37+f7777u2XetAziUI6ukH\nZM6frGV8IMWKFXNtm88s58XYcnWy7B0A3HDDDa790UcfqT6ZI2pzFZs3b+5yJGV+LgBce+21rm3L\nmsmyd/Y1lCXfDrR+Q7rI8m727yzXFpHlDAGdk2/L0J166qmubXNEk0HGDqDrjMsYB3Ttazs/Adi/\nVoZdCyOTSrdmCvk+tfn5cjve9R/s3DF7HIg1B8D2ybiz8SHnzNg5VMG8pe3bt0fMrZH7yKR5Nnkh\nj6nVqlVT72e5FhIAlC5d2rVlqWhAzzuwZR0feOAB1x46dKjqk2sOydz0JUuWqPx9WYoSAN56662o\nY5HzKAA9j05+LgD62Gbzz+fPn4/WrVvjrbfewsSJE1WffI633nqr6lu/fr1rB/MqAnIuQ07HnXSQ\n7zf73pNzOgHgrLPOcm37vOUx1ZKxZF9nSb6f7rzzTrz77rtu2651INe/kGt02McBdNlRu26F7JNr\nZgDhdULatm2LKVOmRMy5kM/DluEdMWKEa9vPRVna185fiYZXEIiIiIiIyOEJAhERERERORmXYiRL\nXcmVbwHgmGOOce1MLgtqycupv//+u+rbvHmz+nkws6sXy5WU5SVXQKfy2BWR5SqA9hJ9lSpVou7/\n2GOPde3gUmBQ7ksudW4vzclLinJZdwBo1aqV2pZl6OQqx4AuOybTYALBc7GXTGUpM1vqV6YfyZWT\nAX25M9brkk7nn3++a9tShG3atHFtmWID6BScKVOmqD75vG16h0z58TwPwP7L0Pb1i1es1BOb4iSP\nW/Y5ZWVluRWvM7l0a6LJkrWx0oHkiqmAfk3iTSMC9N/LpiLJVY5jlRm1f/NY6Ui2788//4y6j+C2\nf//9d8T9YqVUFTTyvdagQQNV0tyWFpVlTuXxAtCrB9vjtlzVdvDgwapPpmrKNKKePXuq8ps2nW/C\nhAmubdM77rjjDrUtU5dsn3wcu8pzUOa6WLFiEavoylSlN954Q/W9+uqrrm1fiyuvvNK1bQnldLFp\nZjKmbYlOWQ7YptLKlE6bjiNT0GyZUXm/4PixfPlyXHPNNer4K1OBAJ3GbNPKbArw1q1bXXv8+PGq\nT5bJtd9jxo0b537a7wqVK1d27RNOOEH1yfiwJVDffPNN1541axbiUbCPMkRERERElFA8QSAiIiIi\nIocnCERERERE5KRlDoIsDTl9+nTV98EHH7i2zQmW+VbpnoMg50oAQLly5Vy7SJEiUe9X0HNH8yMo\nZRb8/PXXX12fzacMcvAAYO7cuapPbtsydLGWEJdlT4O8z+D+snSYnQ8iS6zZ0qkyrw/QpU3fe+89\n1Sdz6nMSzM2w8wUWLVrk2rYcmlxa3eYjyrkMsmxsJpHvB1t6TeYCyzxkQM/vuPTSS1VfrFxtme8e\n7C94De3rFy+b0yuPTQsXLlR98rhh505ceumlePnll3Mcy0knneTaqSjdmilizb3ISylTS8ZD0aJF\nI+Z+SPLvfKA5IbLfPqYs0xxr3AfzZ8WyZctUWx43a9eurW4r8/fnz5+v+vr37+/a8jMYAEqVKuXa\nr7zyiuqTxxM5J6R06dKqTx57g/6AnWP20ksvqe0ZM2a49pdffqn6Onbs6NotW7ZETm6++eaIOJO5\n+XL+hX3MTp06qb7Jkye79jfffJPj/lItyMl/6KGHMH78eFWGs379+uq28nWwr4mcWyDjyj5O69at\nVZ8sES7nDixevFiVnbfvw1WrVrm2LbP+0EMPqW15vLffTeT3gYEDB6q+4Lb3339/RMnre+65x7WP\nPPJI1SfnXDz77LOqT34fOO644xCPg/cIREREREREucYTBCIiIiIicniCQERERERETlrmIMj6t/Pm\nzVN9sjaszLUCdP5fuvPobK6brGdt86UP5hrmuRHkTgc/lyxZ4vrGjBmjbivnGci1BQDgnXfece1N\nmzbFvX+Zkzp37ly0a9fO7WfOnDmuL9bfa/v27WpbPgdALxnfpUsX1SfX8cgp1/nwww8HACxdulT9\nXubZXnXVVapP5qrfdtttqk++bnb9jUwhc/Tt/Ao5b+Liiy9Wfd26dXNtOVfBsvMD1qxZ49rz58/H\nNddc4/Kafd93fXb+iKxTbR/T5qjKtRfsvAqZJ12xYsWI8Qbzrvbt26d+fzAfQ2QevswHB/RxNVa+\nfm5eHzmHw65tINdaiLZGQU7s+1k+rjwmADom7P2Cfe7du/eAay0UZPL4PnfuXLXWjVyTBtB153fu\n3Kn6ZG15eyyWudtNmzaN2hfMM7j88suxbNkyjBgxwvVNmzZN3U/OZVi8eLHqe/DBB9W2XLPhueee\nU31yPRY7p2js2LGoX78+pk+fHvG5WKZMGdf+z3/+o/rkZ8Nbb72l+uTcTjtXI12aNGmi2sF6NIAe\nL6DXtLDHXzkvQ87JA/T7UM4dAPQckWBNi/fffx/NmjXDxx9/7PpOPPHEqM/BviftmglybR87r0I+\nR/t85ZpRdq6aPEbZzwk5p8qORc7xWLduHeLBKwhEREREROTwBIGIiIiIiJy0pBhVrVrVtc8880zV\nJ1OHZNoHoMtUBcuRB7Zt25bIIR6QTXGSl42bNWum+mRaw8F0mTi3gvSB4Ke8JGr/1k8//bRr2zKn\n7777rmvbJcrtZWZJpgctWbIE7dq1c5eFs7Ky4noO8m8JAGeccYbalsui25Ko1atXd+3Zs2dHPHbw\nXJ544gn1++uvv9617eXh22+/3bUnTZqk+nbt2uXa6U7Ji0a+H/766y/VJy8B2zKtr776akL2fc01\n17gYkCkl69evV7eNVeLSpoLIlIGTTz5Z9R177LGubdOPJHmpOKd9HkxilTCU2zblJ69knMm0pV27\ndqmUHzuWvJZSLUxlaeMl04yrVaumypzadAv5WWBTKmTqied5qk8eNwcMGKD65OeELPm4bNkyLFiw\nwG3L0qGATjd5++23Vd8NN9ygtmXqY/HixVWfTJe2JVj79euHvn37ol+/fqrEK6DTVu0xqk+fPq49\nceJE1Xfttde6dqakGM2aNUu15fYpp5yibivTc2wZ+ZUrV7q2LRc6duxY1y5fvrzqk6k6Mo2tcuXK\nuOuuu9x23bp11f1Wr17t2rHKaAP6e0379u1Vnyzx36FDB9UXxFLdunUjUoXk9iWXXKL6ZMq1jQ/5\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fa5dc144e48>"
]
},
"metadata": {
"tags": []
},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"from matplotlib import pyplot as plt\n",
"from keras import backend as K\n",
"%matplotlib inline\n",
"# util function to convert a tensor into a valid image\n",
"def deprocess_image(x):\n",
" # normalize tensor: center on 0., ensure std is 0.1\n",
" x -= x.mean()\n",
" x /= (x.std() + 1e-5)\n",
" x *= 0.1\n",
"\n",
" # clip to [0, 1]\n",
" x += 0.5\n",
" x = np.clip(x, 0, 1)\n",
"\n",
" # convert to RGB array\n",
" x *= 255\n",
" #x = x.transpose((1, 2, 0))\n",
" x = np.clip(x, 0, 255).astype('uint8')\n",
" return x\n",
"\n",
"def vis_img_in_filter(img = np.array(X_train[2]).reshape((1, 28, 28, 1)).astype(np.float64), \n",
" layer_name = 'conv2d_14'):\n",
" layer_output = layer_dict[layer_name].output\n",
" img_ascs = list()\n",
" for filter_index in range(layer_output.shape[3]):\n",
" # build a loss function that maximizes the activation\n",
" # of the nth filter of the layer considered\n",
" loss = K.mean(layer_output[:, :, :, filter_index])\n",
"\n",
" # compute the gradient of the input picture wrt this loss\n",
" grads = K.gradients(loss, model.input)[0]\n",
"\n",
" # normalization trick: we normalize the gradient\n",
" grads /= (K.sqrt(K.mean(K.square(grads))) + 1e-5)\n",
"\n",
" # this function returns the loss and grads given the input picture\n",
" iterate = K.function([model.input], [loss, grads])\n",
"\n",
" # step size for gradient ascent\n",
" step = 5.\n",
"\n",
" img_asc = np.array(img)\n",
" # run gradient ascent for 20 steps\n",
" for i in range(20):\n",
" loss_value, grads_value = iterate([img_asc])\n",
" img_asc += grads_value * step\n",
"\n",
" img_asc = img_asc[0]\n",
" img_ascs.append(deprocess_image(img_asc).reshape((28, 28)))\n",
" \n",
" if layer_output.shape[3] >= 35:\n",
" plot_x, plot_y = 6, 6\n",
" elif layer_output.shape[3] >= 23:\n",
" plot_x, plot_y = 4, 6\n",
" elif layer_output.shape[3] >= 11:\n",
" plot_x, plot_y = 2, 6\n",
" else:\n",
" plot_x, plot_y = 1, 2\n",
" fig, ax = plt.subplots(plot_x, plot_y, figsize = (12, 12))\n",
" ax[0, 0].imshow(img.reshape((28, 28)), cmap = 'gray')\n",
" ax[0, 0].set_title('Input image')\n",
" fig.suptitle('Input image and %s filters' % (layer_name,))\n",
" fig.tight_layout(pad = 0.3, rect = [0, 0, 0.9, 0.9])\n",
" for (x, y) in [(i, j) for i in range(plot_x) for j in range(plot_y)]:\n",
" if x == 0 and y == 0:\n",
" continue\n",
" ax[x, y].imshow(img_ascs[x * plot_y + y - 1], cmap = 'gray')\n",
" ax[x, y].set_title('filter %d' % (x * plot_y + y - 1))\n",
"\n",
"vis_img_in_filter()"
]
},
{
"cell_type": "code",
"execution_count": 0,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "9tvptcn8dxvp"
},
"outputs": [],
"source": []
}
],
"metadata": {
"accelerator": "GPU",
"colab": {
"collapsed_sections": [],
"name": "1st DNN.ipynb",
"provenance": [],
"version": "0.3.2"
},
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.5"
},
"toc": {
"base_numbering": 1,
"nav_menu": {},
"number_sections": false,
"sideBar": false,
"skip_h1_title": false,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {},
"toc_section_display": false,
"toc_window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment