NaivePruningFashion.ipynb (195834B)
1 { 2 "cells": [ 3 { 4 "cell_type": "markdown", 5 "metadata": {}, 6 "source": [ 7 "* 89.84% Accuracy on test set before pruning\n", 8 "* 89.61% Accuracy on test set after pruning arbitrary neurons\n", 9 "\n", 10 "The degradation in accuracy here was .23% when pruning ~2.4% of neurons compared to the 1.25% degradation when not using dropout" 11 ] 12 }, 13 { 14 "cell_type": "markdown", 15 "metadata": {}, 16 "source": [ 17 "FINDINGS:\n", 18 "\n", 19 "* Dropout increases polysemanticity and resilience (intuitive)\n", 20 "* Pruning neurons had a nominal impact upon accuracy (surprising)" 21 ] 22 }, 23 { 24 "cell_type": "code", 25 "execution_count": 1, 26 "metadata": {}, 27 "outputs": [], 28 "source": [ 29 "import pandas as pd" 30 ] 31 }, 32 { 33 "cell_type": "code", 34 "execution_count": 2, 35 "metadata": {}, 36 "outputs": [], 37 "source": [ 38 "train_set = pd.read_csv('../datasets/fashion/fashion-mnist_train.csv')\n", 39 "test_set = pd.read_csv('../datasets/fashion/fashion-mnist_test.csv')" 40 ] 41 }, 42 { 43 "cell_type": "code", 44 "execution_count": 3, 45 "metadata": {}, 46 "outputs": [], 47 "source": [ 48 "y_train = train_set['label']\n", 49 "X_train = train_set.drop(axis=1, labels=['label'])\n", 50 "\n", 51 "y_test = test_set['label']\n", 52 "X_test = test_set.drop(axis=1, labels=['label'])" 53 ] 54 }, 55 { 56 "cell_type": "code", 57 "execution_count": 4, 58 "metadata": {}, 59 "outputs": [], 60 "source": [ 61 "from sklearn.preprocessing import OneHotEncoder\n", 62 "import numpy as np\n", 63 "\n", 64 "ohec = OneHotEncoder(sparse_output=False)\n", 65 "\n", 66 "y_train = np.array(y_train)\n", 67 "y_test = np.array(y_test)\n", 68 "\n", 69 "y_train = y_train.reshape(-1,1)\n", 70 "y_test = y_test.reshape(-1,1)\n", 71 "\n", 72 "\n", 73 "y_train = ohec.fit_transform(y_train)\n", 74 "y_test = ohec.fit_transform(y_test)" 75 ] 76 }, 77 { 78 "cell_type": "code", 79 "execution_count": 5, 80 "metadata": {}, 81 "outputs": [ 82 { 83 "name": "stderr", 84 "output_type": "stream", 85 "text": [ 86 "2024-10-24 18:24:43.772336: I external/local_tsl/tsl/cuda/cudart_stub.cc:32] Could not find cuda drivers on your machine, GPU will not be used.\n", 87 "2024-10-24 18:24:43.775524: I external/local_tsl/tsl/cuda/cudart_stub.cc:32] Could not find cuda drivers on your machine, GPU will not be used.\n", 88 "2024-10-24 18:24:43.810055: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", 89 "To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", 90 "2024-10-24 18:24:44.679315: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n", 91 "2024-10-24 18:24:45.248637: I external/local_xla/xla/stream_executor/cuda/cuda_executor.cc:998] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", 92 "2024-10-24 18:24:45.249161: W tensorflow/core/common_runtime/gpu/gpu_device.cc:2251] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.\n", 93 "Skipping registering GPU devices...\n" 94 ] 95 }, 96 { 97 "data": { 98 "text/html": [ 99 "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"sequential\"</span>\n", 100 "</pre>\n" 101 ], 102 "text/plain": [ 103 "\u001b[1mModel: \"sequential\"\u001b[0m\n" 104 ] 105 }, 106 "metadata": {}, 107 "output_type": "display_data" 108 }, 109 { 110 "data": { 111 "text/html": [ 112 "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n", 113 "┃<span style=\"font-weight: bold\"> Layer (type) </span>┃<span style=\"font-weight: bold\"> Output Shape </span>┃<span style=\"font-weight: bold\"> Param # </span>┃\n", 114 "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n", 115 "│ dense (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">512</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">401,920</span> │\n", 116 "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", 117 "│ dense_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">512</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">262,656</span> │\n", 118 "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", 119 "│ batch_normalization │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">512</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">2,048</span> │\n", 120 "│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>) │ │ │\n", 121 "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", 122 "│ dense_2 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">256</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">131,328</span> │\n", 123 "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", 124 "│ batch_normalization_1 │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">256</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">1,024</span> │\n", 125 "│ (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">BatchNormalization</span>) │ │ │\n", 126 "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", 127 "│ dropout (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dropout</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">256</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n", 128 "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", 129 "│ dense_3 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">32,896</span> │\n", 130 "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", 131 "│ dense_4 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">10</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">1,290</span> │\n", 132 "└─────────────────────────────────┴────────────────────────┴───────────────┘\n", 133 "</pre>\n" 134 ], 135 "text/plain": [ 136 "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n", 137 "┃\u001b[1m \u001b[0m\u001b[1mLayer (type) \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m Param #\u001b[0m\u001b[1m \u001b[0m┃\n", 138 "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n", 139 "│ dense (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m512\u001b[0m) │ \u001b[38;5;34m401,920\u001b[0m │\n", 140 "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", 141 "│ dense_1 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m512\u001b[0m) │ \u001b[38;5;34m262,656\u001b[0m │\n", 142 "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", 143 "│ batch_normalization │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m512\u001b[0m) │ \u001b[38;5;34m2,048\u001b[0m │\n", 144 "│ (\u001b[38;5;33mBatchNormalization\u001b[0m) │ │ │\n", 145 "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", 146 "│ dense_2 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m256\u001b[0m) │ \u001b[38;5;34m131,328\u001b[0m │\n", 147 "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", 148 "│ batch_normalization_1 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m256\u001b[0m) │ \u001b[38;5;34m1,024\u001b[0m │\n", 149 "│ (\u001b[38;5;33mBatchNormalization\u001b[0m) │ │ │\n", 150 "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", 151 "│ dropout (\u001b[38;5;33mDropout\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m256\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", 152 "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", 153 "│ dense_3 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m32,896\u001b[0m │\n", 154 "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", 155 "│ dense_4 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m10\u001b[0m) │ \u001b[38;5;34m1,290\u001b[0m │\n", 156 "└─────────────────────────────────┴────────────────────────┴───────────────┘\n" 157 ] 158 }, 159 "metadata": {}, 160 "output_type": "display_data" 161 }, 162 { 163 "data": { 164 "text/html": [ 165 "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">833,162</span> (3.18 MB)\n", 166 "</pre>\n" 167 ], 168 "text/plain": [ 169 "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m833,162\u001b[0m (3.18 MB)\n" 170 ] 171 }, 172 "metadata": {}, 173 "output_type": "display_data" 174 }, 175 { 176 "data": { 177 "text/html": [ 178 "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">831,626</span> (3.17 MB)\n", 179 "</pre>\n" 180 ], 181 "text/plain": [ 182 "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m831,626\u001b[0m (3.17 MB)\n" 183 ] 184 }, 185 "metadata": {}, 186 "output_type": "display_data" 187 }, 188 { 189 "data": { 190 "text/html": [ 191 "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">1,536</span> (6.00 KB)\n", 192 "</pre>\n" 193 ], 194 "text/plain": [ 195 "\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m1,536\u001b[0m (6.00 KB)\n" 196 ] 197 }, 198 "metadata": {}, 199 "output_type": "display_data" 200 } 201 ], 202 "source": [ 203 "import keras\n", 204 "import tensorflow as tf\n", 205 "\n", 206 "model = keras.Sequential(layers=[\n", 207 " keras.layers.Input(shape=(784,)),\n", 208 " keras.layers.Dense(512, activation='relu'),\n", 209 " keras.layers.Dense(512, activation='relu'),\n", 210 " keras.layers.BatchNormalization(),\n", 211 " keras.layers.Dense(256, activation='relu'),\n", 212 " keras.layers.BatchNormalization(),\n", 213 " keras.layers.Dropout(.2),\n", 214 " keras.layers.Dense(128, activation='relu'),\n", 215 " keras.layers.Dense(10, activation='softmax')\n", 216 " ]\n", 217 ")\n", 218 "model.summary()" 219 ] 220 }, 221 { 222 "cell_type": "code", 223 "execution_count": 6, 224 "metadata": {}, 225 "outputs": [], 226 "source": [ 227 "model.compile(loss=keras.losses.CategoricalCrossentropy, optimizer='adam', metrics=['accuracy'])" 228 ] 229 }, 230 { 231 "cell_type": "code", 232 "execution_count": 7, 233 "metadata": {}, 234 "outputs": [ 235 { 236 "name": "stdout", 237 "output_type": "stream", 238 "text": [ 239 "Epoch 1/50\n", 240 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 32ms/step - accuracy: 0.7375 - loss: 0.7716\n", 241 "Epoch 2/50\n", 242 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 33ms/step - accuracy: 0.8678 - loss: 0.3647\n", 243 "Epoch 3/50\n", 244 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 39ms/step - accuracy: 0.8786 - loss: 0.3285\n", 245 "Epoch 4/50\n", 246 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 35ms/step - accuracy: 0.8861 - loss: 0.3101\n", 247 "Epoch 5/50\n", 248 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 32ms/step - accuracy: 0.8943 - loss: 0.2837\n", 249 "Epoch 6/50\n", 250 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 32ms/step - accuracy: 0.9000 - loss: 0.2692\n", 251 "Epoch 7/50\n", 252 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 30ms/step - accuracy: 0.8991 - loss: 0.2695\n", 253 "Epoch 8/50\n", 254 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 30ms/step - accuracy: 0.9078 - loss: 0.2503\n", 255 "Epoch 9/50\n", 256 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 30ms/step - accuracy: 0.9122 - loss: 0.2362\n", 257 "Epoch 10/50\n", 258 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 30ms/step - accuracy: 0.9103 - loss: 0.2389\n", 259 "Epoch 11/50\n", 260 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 28ms/step - accuracy: 0.9156 - loss: 0.2276\n", 261 "Epoch 12/50\n", 262 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 29ms/step - accuracy: 0.9210 - loss: 0.2074\n", 263 "Epoch 13/50\n", 264 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 29ms/step - accuracy: 0.9208 - loss: 0.2077\n", 265 "Epoch 14/50\n", 266 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 29ms/step - accuracy: 0.9154 - loss: 0.2279\n", 267 "Epoch 15/50\n", 268 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 28ms/step - accuracy: 0.9199 - loss: 0.2131\n", 269 "Epoch 16/50\n", 270 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 29ms/step - accuracy: 0.9235 - loss: 0.2022\n", 271 "Epoch 17/50\n", 272 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 28ms/step - accuracy: 0.9288 - loss: 0.1867\n", 273 "Epoch 18/50\n", 274 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 40ms/step - accuracy: 0.9326 - loss: 0.1776\n", 275 "Epoch 19/50\n", 276 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 37ms/step - accuracy: 0.9376 - loss: 0.1660\n", 277 "Epoch 20/50\n", 278 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 41ms/step - accuracy: 0.9390 - loss: 0.1627\n", 279 "Epoch 21/50\n", 280 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 32ms/step - accuracy: 0.9390 - loss: 0.1630\n", 281 "Epoch 22/50\n", 282 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 31ms/step - accuracy: 0.9427 - loss: 0.1523\n", 283 "Epoch 23/50\n", 284 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 30ms/step - accuracy: 0.9428 - loss: 0.1503\n", 285 "Epoch 24/50\n", 286 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 36ms/step - accuracy: 0.9437 - loss: 0.1491\n", 287 "Epoch 25/50\n", 288 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 40ms/step - accuracy: 0.9437 - loss: 0.1465\n", 289 "Epoch 26/50\n", 290 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 39ms/step - accuracy: 0.9443 - loss: 0.1460\n", 291 "Epoch 27/50\n", 292 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 38ms/step - accuracy: 0.9524 - loss: 0.1270\n", 293 "Epoch 28/50\n", 294 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 28ms/step - accuracy: 0.9511 - loss: 0.1301\n", 295 "Epoch 29/50\n", 296 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 30ms/step - accuracy: 0.9518 - loss: 0.1258\n", 297 "Epoch 30/50\n", 298 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 32ms/step - accuracy: 0.9560 - loss: 0.1176\n", 299 "Epoch 31/50\n", 300 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 30ms/step - accuracy: 0.9563 - loss: 0.1128\n", 301 "Epoch 32/50\n", 302 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 39ms/step - accuracy: 0.9584 - loss: 0.1101\n", 303 "Epoch 33/50\n", 304 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 48ms/step - accuracy: 0.9565 - loss: 0.1139\n", 305 "Epoch 34/50\n", 306 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 28ms/step - accuracy: 0.9609 - loss: 0.1047\n", 307 "Epoch 35/50\n", 308 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 28ms/step - accuracy: 0.9482 - loss: 0.1363\n", 309 "Epoch 36/50\n", 310 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 28ms/step - accuracy: 0.9530 - loss: 0.1272\n", 311 "Epoch 37/50\n", 312 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 34ms/step - accuracy: 0.9604 - loss: 0.1092\n", 313 "Epoch 38/50\n", 314 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 37ms/step - accuracy: 0.9615 - loss: 0.1040\n", 315 "Epoch 39/50\n", 316 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 36ms/step - accuracy: 0.9667 - loss: 0.0922\n", 317 "Epoch 40/50\n", 318 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 35ms/step - accuracy: 0.9655 - loss: 0.0915\n", 319 "Epoch 41/50\n", 320 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 44ms/step - accuracy: 0.9677 - loss: 0.0860\n", 321 "Epoch 42/50\n", 322 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 33ms/step - accuracy: 0.9702 - loss: 0.0811\n", 323 "Epoch 43/50\n", 324 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 33ms/step - accuracy: 0.9701 - loss: 0.0793\n", 325 "Epoch 44/50\n", 326 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 32ms/step - accuracy: 0.9668 - loss: 0.0857\n", 327 "Epoch 45/50\n", 328 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 35ms/step - accuracy: 0.9705 - loss: 0.0770\n", 329 "Epoch 46/50\n", 330 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 34ms/step - accuracy: 0.9741 - loss: 0.0701\n", 331 "Epoch 47/50\n", 332 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 33ms/step - accuracy: 0.9734 - loss: 0.0705\n", 333 "Epoch 48/50\n", 334 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 35ms/step - accuracy: 0.9708 - loss: 0.0734\n", 335 "Epoch 49/50\n", 336 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 33ms/step - accuracy: 0.9751 - loss: 0.0649\n", 337 "Epoch 50/50\n", 338 "\u001b[1m60/60\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 34ms/step - accuracy: 0.9732 - loss: 0.0715\n" 339 ] 340 }, 341 { 342 "data": { 343 "text/plain": [ 344 "<keras.src.callbacks.history.History at 0x7f2181911690>" 345 ] 346 }, 347 "execution_count": 7, 348 "metadata": {}, 349 "output_type": "execute_result" 350 } 351 ], 352 "source": [ 353 "model.fit(x=X_train, y=y_train, batch_size=1000, epochs=50)" 354 ] 355 }, 356 { 357 "cell_type": "code", 358 "execution_count": 8, 359 "metadata": {}, 360 "outputs": [ 361 { 362 "name": "stdout", 363 "output_type": "stream", 364 "text": [ 365 "\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step\n" 366 ] 367 } 368 ], 369 "source": [ 370 "y_test_pred = model.predict(x=X_test)" 371 ] 372 }, 373 { 374 "cell_type": "code", 375 "execution_count": 9, 376 "metadata": {}, 377 "outputs": [ 378 { 379 "data": { 380 "text/plain": [ 381 "array([9.9677068e-01, 4.0155374e-08, 7.2944522e-06, 4.5611072e-05,\n", 382 " 2.9083214e-05, 1.5283574e-06, 2.8001778e-03, 2.7095768e-07,\n", 383 " 3.4529122e-04, 3.2940815e-08], dtype=float32)" 384 ] 385 }, 386 "execution_count": 9, 387 "metadata": {}, 388 "output_type": "execute_result" 389 } 390 ], 391 "source": [ 392 "y_test_pred[0]" 393 ] 394 }, 395 { 396 "cell_type": "code", 397 "execution_count": 10, 398 "metadata": {}, 399 "outputs": [ 400 { 401 "data": { 402 "text/plain": [ 403 "array([1., 0., 0., 0., 0., 0., 0., 0., 0., 0.])" 404 ] 405 }, 406 "execution_count": 10, 407 "metadata": {}, 408 "output_type": "execute_result" 409 } 410 ], 411 "source": [ 412 "y_test[0]" 413 ] 414 }, 415 { 416 "cell_type": "code", 417 "execution_count": 11, 418 "metadata": {}, 419 "outputs": [], 420 "source": [ 421 "y_test_pred_proper = []\n", 422 "\n", 423 "for i in y_test_pred:\n", 424 " y_test_pred_proper.append(i.argmax())" 425 ] 426 }, 427 { 428 "cell_type": "code", 429 "execution_count": 12, 430 "metadata": {}, 431 "outputs": [], 432 "source": [ 433 "trueY = []\n", 434 "for i in y_test:\n", 435 " trueY.append(i.argmax())" 436 ] 437 }, 438 { 439 "cell_type": "code", 440 "execution_count": 13, 441 "metadata": {}, 442 "outputs": [ 443 { 444 "data": { 445 "text/plain": [ 446 "[0, 1, 2, 2, 3, 6, 8, 2, 5, 0]" 447 ] 448 }, 449 "execution_count": 13, 450 "metadata": {}, 451 "output_type": "execute_result" 452 } 453 ], 454 "source": [ 455 "y_test_pred_proper[:10]" 456 ] 457 }, 458 { 459 "cell_type": "code", 460 "execution_count": 14, 461 "metadata": {}, 462 "outputs": [ 463 { 464 "data": { 465 "text/plain": [ 466 "[0, 1, 2, 2, 3, 2, 8, 6, 5, 0]" 467 ] 468 }, 469 "execution_count": 14, 470 "metadata": {}, 471 "output_type": "execute_result" 472 } 473 ], 474 "source": [ 475 "trueY[:10]" 476 ] 477 }, 478 { 479 "cell_type": "code", 480 "execution_count": 15, 481 "metadata": {}, 482 "outputs": [ 483 { 484 "data": { 485 "text/plain": [ 486 "0.8982" 487 ] 488 }, 489 "execution_count": 15, 490 "metadata": {}, 491 "output_type": "execute_result" 492 } 493 ], 494 "source": [ 495 "from sklearn.metrics import accuracy_score\n", 496 "\n", 497 "accuracy_score(y_true=trueY, y_pred=y_test_pred_proper)" 498 ] 499 }, 500 { 501 "cell_type": "code", 502 "execution_count": 16, 503 "metadata": {}, 504 "outputs": [ 505 { 506 "name": "stdout", 507 "output_type": "stream", 508 "text": [ 509 "[[890 0 15 13 0 2 72 0 8 0]\n", 510 " [ 1 992 1 4 0 1 1 0 0 0]\n", 511 " [ 21 0 860 12 47 2 53 0 5 0]\n", 512 " [ 32 13 8 908 22 1 14 0 2 0]\n", 513 " [ 2 2 120 21 810 0 42 1 2 0]\n", 514 " [ 0 0 0 0 0 958 1 28 3 10]\n", 515 " [168 1 76 28 53 0 664 0 10 0]\n", 516 " [ 0 0 0 0 0 9 0 970 0 21]\n", 517 " [ 2 0 3 3 2 3 7 1 978 1]\n", 518 " [ 0 0 0 0 0 5 0 43 0 952]]\n" 519 ] 520 } 521 ], 522 "source": [ 523 "from sklearn.metrics import confusion_matrix\n", 524 "\n", 525 "cm = confusion_matrix(y_true=trueY, y_pred=y_test_pred_proper)\n", 526 "print(cm)" 527 ] 528 }, 529 { 530 "cell_type": "code", 531 "execution_count": 17, 532 "metadata": {}, 533 "outputs": [ 534 { 535 "data": { 536 "image/png": "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", 537 "text/plain": [ 538 "<Figure size 640x480 with 2 Axes>" 539 ] 540 }, 541 "metadata": {}, 542 "output_type": "display_data" 543 } 544 ], 545 "source": [ 546 "import matplotlib.pyplot as plt\n", 547 "import seaborn as sns\n", 548 "\n", 549 "sns.heatmap(cm, annot=True, fmt=\"d\")\n", 550 "plt.xlabel('Predicted')\n", 551 "plt.ylabel('Actual')\n", 552 "plt.title('Confusion Matrix')\n", 553 "plt.show()\n" 554 ] 555 }, 556 { 557 "cell_type": "markdown", 558 "metadata": {}, 559 "source": [ 560 "1408 neurons * .024 percent ~= 34 neurons" 561 ] 562 }, 563 { 564 "cell_type": "code", 565 "execution_count": 18, 566 "metadata": {}, 567 "outputs": [ 568 { 569 "data": { 570 "text/plain": [ 571 "[array([[-0.02407834, 0.01664758, 0.05549181, ..., 0.0705011 ,\n", 572 " 0.03139306, 0.0338089 ],\n", 573 " [-0.01324078, -0.08908298, 0.02861458, ..., 0.02894005,\n", 574 " -0.0171534 , -0.06429082],\n", 575 " [-0.03732396, -0.08407578, -0.05166027, ..., 0.04460023,\n", 576 " 0.03189332, 0.02576386],\n", 577 " ...,\n", 578 " [ 0.09738816, 0.03414803, -0.01174096, ..., -0.0211659 ,\n", 579 " 0.06476735, 0.04520336],\n", 580 " [-0.01204782, 0.01029883, -0.06347279, ..., 0.02969738,\n", 581 " 0.00037249, 0.0290717 ],\n", 582 " [ 0.00126231, -0.04087918, 0.10473223, ..., -0.02034807,\n", 583 " -0.05642996, -0.07601316]], dtype=float32),\n", 584 " array([ 3.62404361e-02, -1.00626852e-02, 4.12637144e-02, 3.20797749e-02,\n", 585 " 1.44391898e-02, 7.38113932e-03, -1.47408815e-02, -2.03356724e-02,\n", 586 " -6.35444075e-02, -5.27319824e-03, 1.55216577e-02, -5.78907691e-03,\n", 587 " -3.53744105e-02, 7.53003210e-02, -2.61838436e-02, -2.22598054e-02,\n", 588 " 5.79506494e-02, -3.18826847e-02, -2.47530583e-02, 1.05029881e-01,\n", 589 " 2.06424054e-02, -6.48392886e-02, 4.18120436e-03, -6.73092678e-02,\n", 590 " 7.26668239e-02, 2.95326710e-02, -7.25710252e-03, 4.85973731e-02,\n", 591 " 2.12896802e-02, -4.66828197e-02, -6.76735789e-02, -2.04142742e-02,\n", 592 " -1.00255329e-02, 3.23494114e-02, 3.22821811e-02, 4.59385104e-02,\n", 593 " -1.83302704e-02, 2.82562263e-02, 9.65547264e-02, -3.08037046e-02,\n", 594 " -5.39704808e-04, -1.30822752e-02, 6.52810000e-03, 6.65754825e-02,\n", 595 " -3.52044925e-02, 1.50782866e-02, 7.80642256e-02, 1.31267197e-02,\n", 596 " 1.57132708e-02, 5.37683144e-02, 5.86614152e-03, 6.83248937e-02,\n", 597 " -1.25571080e-02, 9.09804776e-02, 3.26567069e-02, -3.23863328e-02,\n", 598 " 8.01511481e-02, -3.05876639e-02, -1.57759956e-03, 3.78393270e-02,\n", 599 " 3.71554047e-02, -1.29131777e-02, -4.87277023e-02, -1.07762925e-02,\n", 600 " -2.09876467e-02, 8.56673997e-03, 3.97746712e-02, 6.75867312e-03,\n", 601 " -6.06726948e-03, 5.35547324e-02, 7.05790222e-02, -2.65304744e-02,\n", 602 " -4.51288149e-02, 6.38363585e-02, -9.52603854e-03, 1.45330233e-03,\n", 603 " -8.93903710e-03, 5.95269771e-03, 2.79099885e-02, 4.63010035e-02,\n", 604 " 6.75270408e-02, -2.56517343e-02, -2.41983365e-02, 3.87565233e-02,\n", 605 " -5.41877141e-03, 4.70031761e-02, 1.92833517e-03, 1.97432283e-02,\n", 606 " 6.72746226e-02, -9.00398660e-03, 8.93408358e-02, -3.06866262e-02,\n", 607 " 7.47415051e-02, 1.98360041e-01, 4.19779047e-02, 5.59929572e-02,\n", 608 " 1.30328741e-02, 1.03475731e-02, 2.21154261e-02, 1.72696374e-02,\n", 609 " -1.44563289e-02, 6.06088974e-02, 6.66785166e-02, 8.57741758e-03,\n", 610 " -2.39256825e-02, -2.51507852e-02, 3.17007564e-02, -3.08507979e-02,\n", 611 " -2.94589419e-02, -2.09891666e-02, -1.80575401e-02, 2.21390519e-02,\n", 612 " 5.87918088e-02, -2.00730730e-02, -2.18769833e-02, -3.56195085e-02,\n", 613 " -3.30189094e-02, 4.88770101e-03, 5.68647236e-02, -6.82985643e-03,\n", 614 " -7.87242409e-03, 1.37207815e-02, 4.14539613e-02, 1.56477839e-02,\n", 615 " 4.12817746e-02, -5.25973253e-02, 3.45030688e-02, 1.01849660e-01,\n", 616 " 9.63369459e-02, 3.40379700e-02, -3.28626558e-02, 2.21213624e-02,\n", 617 " -3.60815637e-02, 4.05892096e-02, 2.14739684e-02, -4.60625999e-02,\n", 618 " -2.53308546e-02, 8.13112929e-02, -1.03141582e-02, 1.81099083e-02,\n", 619 " 4.80216090e-03, 9.54976305e-02, 4.65104431e-02, -3.07451375e-02,\n", 620 " 2.87534930e-02, -8.42135027e-03, -1.95605047e-02, -1.81016121e-02,\n", 621 " -1.42204044e-02, 1.24290593e-01, 4.80321534e-02, 1.45884603e-02,\n", 622 " 4.24653012e-03, -7.81426728e-02, 4.93251195e-04, 4.20478135e-02,\n", 623 " -1.04194479e-02, 1.03717681e-03, -1.00145554e-02, -2.45791003e-02,\n", 624 " -4.30497713e-03, -1.49193276e-02, -3.47578265e-02, 9.87907350e-02,\n", 625 " -5.56080490e-02, 4.69516777e-02, 2.24938663e-03, 5.01990244e-02,\n", 626 " 1.31887300e-02, 4.00844067e-02, 2.36485042e-02, 8.32027420e-02,\n", 627 " -5.18666431e-02, -3.87804653e-03, 5.74752651e-02, 4.49384190e-02,\n", 628 " -3.12516838e-02, 6.05831444e-02, 8.19941014e-02, -1.28470603e-02,\n", 629 " 5.60543835e-02, 8.88850987e-02, 2.29592789e-02, 2.83987299e-02,\n", 630 " -2.81242989e-02, 4.26620990e-03, 4.22059409e-02, -2.52152905e-02,\n", 631 " 2.05573365e-02, -4.86270674e-02, 4.55118716e-02, 4.26988639e-02,\n", 632 " -1.84952449e-02, -1.66064836e-02, 9.55225900e-02, 2.23741420e-02,\n", 633 " -2.32352223e-02, 4.38059121e-02, 5.40804341e-02, 9.03786570e-02,\n", 634 " 2.40899064e-03, 5.57620823e-02, 4.80235815e-02, 9.24917217e-03,\n", 635 " -5.21255508e-02, 2.33643167e-02, 2.19764803e-02, 6.49938313e-03,\n", 636 " -6.92149159e-04, -3.00937854e-02, -1.30449433e-03, 2.81931907e-02,\n", 637 " 4.48884405e-02, 3.28095965e-02, 1.91940051e-02, -9.01335225e-05,\n", 638 " -1.74635686e-02, 1.71994157e-02, -3.19485087e-03, -1.76358037e-03,\n", 639 " -3.87320630e-02, 2.17137001e-02, 1.05084674e-02, -2.25138515e-02,\n", 640 " 1.24400482e-01, 2.18744762e-02, -9.17441305e-03, 6.83817938e-02,\n", 641 " 4.12715226e-02, -1.50918553e-03, 4.00556847e-02, 4.83260900e-02,\n", 642 " 1.08003682e-02, -4.38890979e-02, 8.75647217e-02, 6.00520372e-02,\n", 643 " 4.57753427e-02, 2.60185041e-02, -1.74120571e-02, -1.12312892e-02,\n", 644 " 1.80204250e-02, -2.63278596e-02, -1.50434785e-02, -1.52808335e-03,\n", 645 " -3.52254920e-02, -4.65776250e-02, 6.33136705e-02, 1.31335938e-02,\n", 646 " 4.12639193e-02, -1.74302515e-02, 5.66557210e-05, -9.68488306e-03,\n", 647 " -4.44719754e-02, 4.48269807e-02, 4.97215763e-02, -3.03618666e-02,\n", 648 " 8.88043270e-03, 2.39550006e-02, -2.85554472e-02, 1.96982566e-02,\n", 649 " -2.81877816e-02, 2.43887305e-02, 8.95657241e-02, 1.46840019e-02,\n", 650 " 3.08184419e-02, 1.26163559e-02, 2.08933782e-02, -6.78256229e-02,\n", 651 " -2.28499230e-02, 3.86739783e-02, -3.76365855e-02, 1.10298641e-01,\n", 652 " 2.33064592e-02, -7.23616686e-03, 1.45978564e-02, 6.17714087e-03,\n", 653 " 5.97122638e-03, 1.80544686e-02, -3.51207703e-02, 1.03918621e-02,\n", 654 " 5.05592674e-02, 5.23468889e-02, 3.59910205e-02, 7.59560242e-02,\n", 655 " -2.78860256e-02, 8.51415214e-04, 9.22083184e-02, -3.13983150e-02,\n", 656 " -4.20855498e-03, 1.07994294e-02, 5.82499104e-03, 2.28286609e-02,\n", 657 " 3.21466997e-02, 1.24475351e-02, -2.10767649e-02, 5.44328466e-02,\n", 658 " -3.38977426e-02, -3.79893975e-03, -2.32445123e-03, -2.67968010e-02,\n", 659 " 1.52044566e-02, 8.30217823e-03, -4.40196805e-02, 4.19422835e-02,\n", 660 " 4.48080264e-02, 1.76371131e-02, -3.03743910e-02, 4.51597106e-03,\n", 661 " -8.69407225e-03, -2.22311579e-02, -1.70584694e-02, 1.30021875e-03,\n", 662 " 8.73410050e-03, 1.68561488e-02, -1.53215230e-02, 3.84384836e-03,\n", 663 " 2.63451505e-02, 1.00488618e-01, 4.50635180e-02, -3.60507667e-02,\n", 664 " -3.94031219e-03, 5.95506839e-03, -6.35116547e-02, 7.91681185e-02,\n", 665 " 3.32451286e-03, 1.23457924e-01, 1.12611111e-02, 3.33598293e-02,\n", 666 " -1.33562684e-02, 7.64230490e-02, -2.76233978e-03, 6.56257477e-03,\n", 667 " -2.65942663e-02, -2.57141441e-02, -2.39609424e-02, -3.50626372e-02,\n", 668 " -2.18117516e-02, 2.64051766e-03, 1.46059031e-02, 3.36433165e-02,\n", 669 " -3.66571359e-02, -2.98993252e-02, -1.91366393e-03, -1.34593323e-02,\n", 670 " 9.15418789e-02, -3.60024087e-02, -2.03645322e-02, -4.39534634e-02,\n", 671 " 3.92233618e-02, 2.33720499e-03, 8.83152112e-02, 4.56317514e-02,\n", 672 " 6.03598217e-03, -1.79811474e-03, 5.08119725e-02, 3.59347314e-02,\n", 673 " -1.87190659e-02, 3.07187764e-03, -2.59583108e-02, 6.92972168e-03,\n", 674 " -3.96266803e-02, -4.89765173e-03, 4.14057262e-03, -1.76513456e-02,\n", 675 " -7.99908303e-03, 5.27810678e-02, -3.22450604e-03, -2.25886367e-02,\n", 676 " 7.86461532e-02, 1.51972957e-02, -4.69339862e-02, -2.30701230e-02,\n", 677 " -3.50237498e-03, -1.66427959e-02, 2.17091739e-02, 2.95300758e-03,\n", 678 " 1.92045849e-02, -1.48078166e-02, -3.83858681e-02, 4.84168977e-02,\n", 679 " 3.50758880e-02, -2.91970596e-02, 1.18743733e-01, 1.15353623e-02,\n", 680 " 4.45905104e-02, 1.20615542e-01, -4.72970447e-03, 1.05048465e-02,\n", 681 " -3.86959091e-02, 2.70572864e-02, -2.45867316e-02, 2.95775849e-02,\n", 682 " -5.16405003e-03, 4.65180427e-02, -4.58280593e-02, -5.21804802e-02,\n", 683 " -3.96645069e-03, -4.45237271e-02, 2.03569904e-02, 3.17483917e-02,\n", 684 " 1.40855210e-02, -5.86931244e-04, 2.17727348e-02, 1.47175174e-02,\n", 685 " 1.64685734e-02, -4.54700971e-03, 1.33894578e-01, -6.02849119e-04,\n", 686 " -4.50279360e-04, 5.91845699e-02, 1.18924137e-02, 4.55351956e-02,\n", 687 " -4.57217433e-02, -2.60089338e-02, -1.55850118e-02, 4.11818624e-02,\n", 688 " 4.44398820e-02, -2.19457094e-02, -6.60716835e-03, -1.09312655e-02,\n", 689 " 4.55060154e-02, 1.39478128e-02, -3.72533046e-04, -3.49408425e-02,\n", 690 " 6.91487268e-02, 5.02386726e-02, -3.16306613e-02, 1.53550440e-02,\n", 691 " 1.08032366e-02, 3.38654183e-02, -5.88489734e-02, -5.08560613e-02,\n", 692 " -3.61575037e-02, -5.77050187e-02, -1.80412177e-02, 1.61922157e-01,\n", 693 " -1.82975903e-02, 9.25256759e-02, 3.96507345e-02, -4.89264056e-02,\n", 694 " 3.56887393e-02, -3.13477241e-03, 1.09409010e-02, 2.27443017e-02,\n", 695 " -2.88771726e-02, -2.52982974e-02, 4.97358199e-03, -1.58914495e-02,\n", 696 " -1.74713433e-02, 9.40158591e-02, -3.46052833e-02, 8.42058286e-02,\n", 697 " 2.82897856e-02, -4.40645926e-02, -2.02626958e-02, 1.83478650e-03,\n", 698 " -1.93328895e-02, 1.94808766e-02, 2.18821913e-02, 2.29608640e-02,\n", 699 " -4.64285575e-02, 9.41406563e-02, -4.05656174e-02, -3.40872854e-02,\n", 700 " -5.87998293e-02, -2.39296723e-03, -6.20852504e-03, -2.47565228e-02,\n", 701 " -4.49138470e-02, 8.34232755e-03, 8.86583980e-03, 1.19990539e-02,\n", 702 " 3.39879245e-02, 7.17839971e-02, 3.08833178e-02, 3.66404019e-02,\n", 703 " 6.80502057e-02, 7.73759112e-02, -1.72424912e-02, 8.06045681e-02,\n", 704 " -2.79832426e-02, 5.62598780e-02, -2.51862258e-02, 6.62845299e-02,\n", 705 " 2.39826683e-02, 2.42049824e-02, 1.48134828e-02, -3.38776745e-02,\n", 706 " -1.76236127e-02, 6.44013584e-02, 4.20280658e-02, -4.98452224e-03,\n", 707 " -5.75387478e-02, -2.15854077e-03, -1.13331620e-02, 6.87643513e-02,\n", 708 " 1.95539147e-02, 3.23824324e-02, -8.66599083e-02, 2.84758098e-02,\n", 709 " 1.65818371e-02, -1.10938782e-02, 2.29168367e-02, -1.51646733e-02,\n", 710 " 7.75221810e-02, 1.09356128e-01, 3.95860337e-02, -4.40029688e-02,\n", 711 " -1.07184742e-02, -5.75669669e-03, 3.60427238e-02, -6.05419930e-03],\n", 712 " dtype=float32)]" 713 ] 714 }, 715 "execution_count": 18, 716 "metadata": {}, 717 "output_type": "execute_result" 718 } 719 ], 720 "source": [ 721 "# get second hidden layer (input not included in layer calculation)\n", 722 "\n", 723 "\n", 724 "weights = model.get_layer(index=1).get_weights()\n", 725 "\n", 726 "# Weights:\n", 727 "# First dimension is spec neuron\n", 728 "# Second dimension are the associated weights\n", 729 "\n", 730 "weights" 731 ] 732 }, 733 { 734 "cell_type": "code", 735 "execution_count": 19, 736 "metadata": {}, 737 "outputs": [], 738 "source": [ 739 "import random \n", 740 "# 34/512 neurons to pick\n", 741 "\n", 742 "specs = []\n", 743 "\n", 744 "for i in range(0, 34):\n", 745 " specs.append(random.randint(0,511))\n", 746 "\n", 747 "specs.sort()" 748 ] 749 }, 750 { 751 "cell_type": "code", 752 "execution_count": 20, 753 "metadata": {}, 754 "outputs": [], 755 "source": [ 756 "# Zero out specified weights\n", 757 "\n", 758 "for i in range(0,len(weights)): \n", 759 " for neuron_index in specs:\n", 760 " weights[i][neuron_index] = 0" 761 ] 762 }, 763 { 764 "cell_type": "code", 765 "execution_count": 21, 766 "metadata": {}, 767 "outputs": [], 768 "source": [ 769 "model.get_layer(index=1).set_weights(weights)" 770 ] 771 }, 772 { 773 "cell_type": "markdown", 774 "metadata": {}, 775 "source": [ 776 "* Trained model\n", 777 "* Selected random neurons from second hidden layer (512 dense)\n", 778 "* Zeroed all of their weights (outside of model)\n", 779 "* Put that back into the model" 780 ] 781 }, 782 { 783 "cell_type": "code", 784 "execution_count": 22, 785 "metadata": {}, 786 "outputs": [ 787 { 788 "name": "stdout", 789 "output_type": "stream", 790 "text": [ 791 "\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step\n" 792 ] 793 } 794 ], 795 "source": [ 796 "y_test_pred = model.predict(x=X_test)" 797 ] 798 }, 799 { 800 "cell_type": "code", 801 "execution_count": 23, 802 "metadata": {}, 803 "outputs": [], 804 "source": [ 805 "y_test_pred_proper = []\n", 806 "\n", 807 "for i in y_test_pred:\n", 808 " y_test_pred_proper.append(i.argmax())" 809 ] 810 }, 811 { 812 "cell_type": "code", 813 "execution_count": 24, 814 "metadata": {}, 815 "outputs": [ 816 { 817 "data": { 818 "text/plain": [ 819 "0.886" 820 ] 821 }, 822 "execution_count": 24, 823 "metadata": {}, 824 "output_type": "execute_result" 825 } 826 ], 827 "source": [ 828 "from sklearn.metrics import accuracy_score\n", 829 "\n", 830 "accuracy_score(y_true=trueY, y_pred=y_test_pred_proper)" 831 ] 832 }, 833 { 834 "cell_type": "code", 835 "execution_count": 25, 836 "metadata": {}, 837 "outputs": [ 838 { 839 "name": "stdout", 840 "output_type": "stream", 841 "text": [ 842 "[[887 0 19 10 0 8 67 0 8 1]\n", 843 " [ 1 988 1 5 0 1 4 0 0 0]\n", 844 " [ 19 0 806 10 40 2 119 0 4 0]\n", 845 " [ 29 12 20 894 19 1 21 0 4 0]\n", 846 " [ 1 2 153 20 735 0 87 1 1 0]\n", 847 " [ 0 0 0 0 0 955 1 27 2 15]\n", 848 " [179 1 58 25 28 0 700 0 9 0]\n", 849 " [ 0 0 0 0 0 9 0 960 0 31]\n", 850 " [ 1 0 2 2 2 5 9 1 977 1]\n", 851 " [ 0 0 0 0 0 6 0 36 0 958]]\n" 852 ] 853 } 854 ], 855 "source": [ 856 "from sklearn.metrics import confusion_matrix\n", 857 "\n", 858 "cm = confusion_matrix(y_true=trueY, y_pred=y_test_pred_proper)\n", 859 "print(cm)" 860 ] 861 }, 862 { 863 "cell_type": "code", 864 "execution_count": 26, 865 "metadata": {}, 866 "outputs": [ 867 { 868 "data": { 869 "image/png": "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", 870 "text/plain": [ 871 "<Figure size 640x480 with 2 Axes>" 872 ] 873 }, 874 "metadata": {}, 875 "output_type": "display_data" 876 } 877 ], 878 "source": [ 879 "import matplotlib.pyplot as plt\n", 880 "import seaborn as sns\n", 881 "\n", 882 "sns.heatmap(cm, annot=True, fmt=\"d\")\n", 883 "plt.xlabel('Predicted')\n", 884 "plt.ylabel('Actual')\n", 885 "plt.title('Confusion Matrix')\n", 886 "plt.show()" 887 ] 888 }, 889 { 890 "cell_type": "markdown", 891 "metadata": {}, 892 "source": [ 893 "CONTD." 894 ] 895 }, 896 { 897 "cell_type": "code", 898 "execution_count": 27, 899 "metadata": {}, 900 "outputs": [ 901 { 902 "data": { 903 "text/plain": [ 904 "(28, 28)" 905 ] 906 }, 907 "execution_count": 27, 908 "metadata": {}, 909 "output_type": "execute_result" 910 } 911 ], 912 "source": [ 913 "X_train.iloc[0].to_numpy().reshape(28,28).shape" 914 ] 915 }, 916 { 917 "cell_type": "code", 918 "execution_count": 28, 919 "metadata": {}, 920 "outputs": [ 921 { 922 "data": { 923 "text/plain": [ 924 "(60000, 784)" 925 ] 926 }, 927 "execution_count": 28, 928 "metadata": {}, 929 "output_type": "execute_result" 930 } 931 ], 932 "source": [ 933 "X_train.shape" 934 ] 935 }, 936 { 937 "cell_type": "code", 938 "execution_count": 29, 939 "metadata": {}, 940 "outputs": [], 941 "source": [ 942 "arr = X_train.to_numpy()\n", 943 "arr = arr.reshape(60000, 28,28)" 944 ] 945 }, 946 { 947 "cell_type": "code", 948 "execution_count": 30, 949 "metadata": {}, 950 "outputs": [ 951 { 952 "data": { 953 "text/plain": [ 954 "(60000, 28, 28)" 955 ] 956 }, 957 "execution_count": 30, 958 "metadata": {}, 959 "output_type": "execute_result" 960 } 961 ], 962 "source": [ 963 "arr.shape" 964 ] 965 }, 966 { 967 "cell_type": "markdown", 968 "metadata": {}, 969 "source": [ 970 "* 0 T-shirt/top\n", 971 "* 1 Trouser\n", 972 "* 2 Pullover\n", 973 "* 3 Dress\n", 974 "* 4 Coat\n", 975 "* 5 Sandal\n", 976 "* 6 Shirt\n", 977 "* 7 Sneaker\n", 978 "* 8 Bag\n", 979 "* 9 Ankle boot" 980 ] 981 }, 982 { 983 "cell_type": "code", 984 "execution_count": 38, 985 "metadata": {}, 986 "outputs": [ 987 { 988 "data": { 989 "text/plain": [ 990 "array([0., 0., 0., 0., 0., 0., 0., 0., 0., 1.])" 991 ] 992 }, 993 "execution_count": 38, 994 "metadata": {}, 995 "output_type": "execute_result" 996 } 997 ], 998 "source": [ 999 "y_train[1]" 1000 ] 1001 }, 1002 { 1003 "cell_type": "code", 1004 "execution_count": 37, 1005 "metadata": {}, 1006 "outputs": [ 1007 { 1008 "data": { 1009 "text/plain": [ 1010 "<matplotlib.image.AxesImage at 0x7f2148d44390>" 1011 ] 1012 }, 1013 "execution_count": 37, 1014 "metadata": {}, 1015 "output_type": "execute_result" 1016 }, 1017 { 1018 "data": { 1019 "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaAAAAGdCAYAAABU0qcqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAfiUlEQVR4nO3df2xV9f3H8ddtpZcfthdLaW8vlFoQxVmojkHtUAbS8MOEgRKHvxIwBiMrZsicjkVF5pL6ZZkzGib/TDoXEWcmEElkQZASHeBAGCPTCqwISn/MuvaWQm87er5/EDqv/Orn2Nt3W56P5Cb03vPq+XB6uC9O7+27Ac/zPAEA0MWSrBcAALg8UUAAABMUEADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwcYX1Ar6pra1Nx48fV2pqqgKBgPVyAACOPM9TY2OjIpGIkpIufJ3T7Qro+PHjysnJsV4GAOBbOnbsmIYOHXrBx7tdAaWmpko6s/C0tDTj1QAAXEWjUeXk5LQ/n19Iwgpo5cqV+vWvf63q6moVFBTopZde0vjx4y+ZO/ttt7S0NAoIAHqwS72MkpA3IbzxxhtasmSJli1bpo8++kgFBQWaNm2aamtrE7E7AEAPlJACev7557VgwQI98MAD+s53vqNVq1apf//+euWVVxKxOwBAD9TpBdTS0qI9e/aouLj4fztJSlJxcbF27NhxzvaxWEzRaDTuBgDo/Tq9gL788kudPn1aWVlZcfdnZWWpurr6nO1LS0sVCoXab7wDDgAuD+Y/iLp06VI1NDS0344dO2a9JABAF+j0d8FlZGQoOTlZNTU1cffX1NQoHA6fs30wGFQwGOzsZQAAurlOvwJKSUnR2LFjtWXLlvb72tratGXLFhUVFXX27gAAPVRCfg5oyZIlmjdvnr73ve9p/PjxeuGFF9TU1KQHHnggEbsDAPRACSmguXPn6t///reefvppVVdX68Ybb9SmTZvOeWMCAODyFfA8z7NexNdFo1GFQiE1NDQwCQEAeqCOPo+bvwsOAHB5ooAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGDiCusFAN2J53ldsp9AINAl++lKH374oXMmPz/fOdO/f3/njN+vq5+vk5999cbzoSO4AgIAmKCAAAAmOr2AnnnmGQUCgbjbqFGjOns3AIAeLiGvAd1www169913/7eTK3ipCQAQLyHNcMUVVygcDifiUwMAeomEvAZ08OBBRSIRDR8+XPfdd5+OHj16wW1jsZii0WjcDQDQ+3V6ARUWFqqsrEybNm3Syy+/rMrKSt16661qbGw87/alpaUKhULtt5ycnM5eEgCgGwp4Cf7Bh/r6euXm5ur555/Xgw8+eM7jsVhMsVis/eNoNKqcnBw1NDQoLS0tkUsDzsHPAfnHzwH531dvOx+i0ahCodAln8cT/u6AgQMH6tprr9WhQ4fO+3gwGFQwGEz0MgAA3UzCfw7oxIkTOnz4sLKzsxO9KwBAD9LpBfTYY4+pvLxcR44c0V//+lfdcccdSk5O1j333NPZuwIA9GCd/i24zz//XPfcc4/q6uo0ePBg3XLLLdq5c6cGDx7c2bsCAPRgCX8TgquOvngFXExXvujcG339jUEdNXPmTOfMK6+84pwZOnSocwZdq6PP48yCAwCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYCLhv5AOvVc3m2Nrpjf+Bsyf//znzpmMjAznzIoVK5wzzz33nHPGz29RlbruHO/Kf0t+zr1Ena9cAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMAEBQQAMEEBAQBMUEAAABMUEADABAUEADBBAQEATDANG75154nOfqcLd9Vk667aT1lZmXNGkmpra50zubm5zpkPPvjAOdPS0uKc8TsNu62tzVfOVXJycpfsp7vhCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJhpECX+Nn4KefgZVJSe7/99u7d69zZvny5c4ZSbr//vudM6mpqc6ZwsJC58zAgQOdM3515yGhn3zyia9cTk6Oc2bAgAG+9nUpXAEBAExQQAAAExQQAMAEBQQAMEEBAQBMUEAAABMUEADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwwTBS+OZ5nnPGz7DPrtqPX34Gix45csQ5c9dddzlnZs+e7ZyRpL59+zpnMjIynDPvvPOOcyYrK8s588gjjzhnJGnJkiXOmU8//dQ5E41GnTMvvviic0aS1q5d6yuXCFwBAQBMUEAAABPOBbR9+3bNnDlTkUhEgUBA69evj3vc8zw9/fTTys7OVr9+/VRcXKyDBw921noBAL2EcwE1NTWpoKBAK1euPO/jK1as0IsvvqhVq1Zp165dGjBggKZNm6bm5uZvvVgAQO/h/CaEGTNmaMaMGed9zPM8vfDCC3ryySc1a9YsSdKrr76qrKwsrV+/Xnffffe3Wy0AoNfo1NeAKisrVV1dreLi4vb7QqGQCgsLtWPHjvNmYrGYotFo3A0A0Pt1agFVV1dLOvdtkllZWe2PfVNpaalCoVD7zc/vKwcA9Dzm74JbunSpGhoa2m/Hjh2zXhIAoAt0agGFw2FJUk1NTdz9NTU17Y99UzAYVFpaWtwNAND7dWoB5eXlKRwOa8uWLe33RaNR7dq1S0VFRZ25KwBAD+f8LrgTJ07o0KFD7R9XVlZq3759Sk9P17Bhw7R48WL96le/0siRI5WXl6ennnpKkUjE90gQAEDv5FxAu3fv1uTJk9s/Pjsrad68eSorK9Pjjz+upqYmPfTQQ6qvr9ctt9yiTZs2+ZotBQDovQKen0mPCRSNRhUKhdTQ0MDrQb1Qdx8s6sc3X/PsiMLCQufMnDlznDOpqanOGUmKRCLOmQMHDjhnNm3a5JwZPHiwc+arr75yzkjS0aNHnTP5+fnOmdGjRztnsrOznTOS9Oyzz/rKuejo87j5u+AAAJcnCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJ51/HAH8Tnf1kkpLc/3/QldOm29ranDN+/k6tra3OmT59+jhnJKmpqck5M27cOOfMzJkznTN+psNfffXVzhlJ2rt3r3Pm7bffds7k5OQ4Z/z8ahe/k6P9TN72M0n82muvdc4cPnzYOSNJtbW1zpnMzExf+7oUroAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYYBipD36Gd/od+Nld9+OXnwGmfgaLNjc3O2ckqbi42DkzYcIE50xubq5zJhwOO2c2b97snJGk999/3znjZ33JycnOmWg06pzxMwRXkr744gvnzM033+ycSU1Ndc7U1dU5ZySpvLzcOXPXXXf52telcAUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMAEBQQAMEEBAQBMUEAAABMUEADARLcdRup5njzPc9reVVcO7uyq9fnZj99BjX5zrj7++GPnzH333edrXyNHjnTO3HTTTc6ZvLw858zatWudM7t373bOSNKIESOcM7FYzDnT0tLinMnIyHDOfPrpp84ZSRo7dqxz5rbbbnPO/Otf/3LOXHPNNc4Zyd9A4EThCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAICJbjuMNBAIOA3j7MrBon501fq68jh88cUXzpnf/OY3zpnNmzc7Z77//e87ZyQpEok4Z4YMGeKceeutt5wzH3zwgXNm9OjRzhlJOnHihHOmX79+zhk/w3P9DO4cPHiwc0byN1j0k08+cc589tlnzhm/Q0X9nHtz5871ta9L4QoIAGCCAgIAmHAuoO3bt2vmzJmKRCIKBAJav3593OPz589v//bZ2dv06dM7a70AgF7CuYCamppUUFCglStXXnCb6dOnq6qqqv32+uuvf6tFAgB6H+c3IcyYMUMzZsy46DbBYFDhcNj3ogAAvV9CXgPatm2bMjMzdd1112nhwoWqq6u74LaxWEzRaDTuBgDo/Tq9gKZPn65XX31VW7Zs0f/93/+pvLxcM2bM0OnTp8+7fWlpqUKhUPstJyens5cEAOiGOv3ngO6+++72P48ePVpjxozRiBEjtG3bNk2ZMuWc7ZcuXaolS5a0fxyNRikhALgMJPxt2MOHD1dGRoYOHTp03seDwaDS0tLibgCA3i/hBfT555+rrq5O2dnZid4VAKAHcf4W3IkTJ+KuZiorK7Vv3z6lp6crPT1dy5cv15w5cxQOh3X48GE9/vjjuuaaazRt2rROXTgAoGdzLqDdu3dr8uTJ7R+fff1m3rx5evnll7V//3794Q9/UH19vSKRiKZOnapnn31WwWCw81YNAOjxnAto0qRJFx0g+Je//OVbLcivlpYW54zfYX7JycldkonFYs6ZTz/91DmzatUq54wkffTRR86Z3Nxc58yPfvQj58x///tf54zkbzhmdXW1c8bPsfMzUPPUqVPOGUlKSnL/7vx//vMf50xjY6NzJj8/3zlTVFTknJGk2tpa54yf45CSkuKcueGGG5wzklRWVuacudiP0pxPR7+uzIIDAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJjo9F/J3Vmqqqp04sSJDm8/ZMgQ533cddddzhlJCgQCzpk+ffo4Z44fP+6c8TMFetiwYc4ZSbr99tudM3379nXO+Jno7Odr5JefydGFhYXOmb179zpnXKcYn+Vnuryf82jq1KnOmXA47JxpbW11zkj+vrZ+1jdo0CDnTCQScc5I/p4jrrjCrSo6Ov2fKyAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmuu0w0iNHjmjAgAEd3n7y5MnO+8jOznbOSNLp06e7JHPjjTc6Z0KhkHPGr5MnTzpnGhsbnTPBYNA543cYqZ9BjW1tbc6Zm266yTlTUFDgnPnqq6+cM5K/obH9+/d3ztTX1ztnjhw54pzx83WV/H1tXQd3SlI0GnXONDc3O2ekrvnadvR4cwUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMAEBQQAMEEBAQBMUEAAABMUEADARLcdRvr3v/9d/fr16/D2LoNLz/I7uDM9Pd05k5Tk3vVNTU3OmS+//NI509LS4pyR/A1d9DOw0s9gUc/znDOS1KdPH+dMa2urc+azzz5zzlx11VXOGb9DWevq6pwz7777rnPGz5DQ66+/3jnj93zoqsHDfoaeJicnO2ckKSUlxTnj+m+9o9tzBQQAMEEBAQBMUEAAABMUEADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMBEtx1GWlVVpWAw2OHt//GPfzjvw8/QQEkaOnSoc2bkyJHOmcGDBztnsrKynDN+BzX6GcLp55jHYjHnjJ8hl5K/wazNzc3OmYaGBueMnwGm27dvd85I/o7DnDlznDN+hvSeOnXKOeNncK7k7zj07dvXOZOZmemc6cqBu65DbTu6PVdAAAATFBAAwIRTAZWWlmrcuHFKTU1VZmamZs+erYqKirhtmpubVVJSokGDBunKK6/UnDlzVFNT06mLBgD0fE4FVF5erpKSEu3cuVObN29Wa2urpk6dGveL0x599FG9/fbbevPNN1VeXq7jx4/rzjvv7PSFAwB6NqdX5jZt2hT3cVlZmTIzM7Vnzx5NnDhRDQ0N+v3vf681a9botttukyStXr1a119/vXbu3Kmbb76581YOAOjRvtVrQGffyXP2V1Tv2bNHra2tKi4ubt9m1KhRGjZsmHbs2HHezxGLxRSNRuNuAIDez3cBtbW1afHixZowYYLy8/MlSdXV1UpJSdHAgQPjts3KylJ1dfV5P09paalCoVD7LScnx++SAAA9iO8CKikp0YEDB7R27dpvtYClS5eqoaGh/Xbs2LFv9fkAAD2Dr5/OWrRokTZu3Kjt27fH/VBmOBxWS0uL6uvr466CampqFA6Hz/u5gsGg0w+cAgB6B6crIM/ztGjRIq1bt05bt25VXl5e3ONjx45Vnz59tGXLlvb7KioqdPToURUVFXXOigEAvYLTFVBJSYnWrFmjDRs2KDU1tf11nVAopH79+ikUCunBBx/UkiVLlJ6errS0ND3yyCMqKiriHXAAgDhOBfTyyy9LkiZNmhR3/+rVqzV//nxJ0m9/+1slJSVpzpw5isVimjZtmn73u991ymIBAL1HwPM70S5BotGoQqGQGhoalJaW1uHc3/72N+d9LV++3Dkj+Rt0WVdX55zxM0BxyJAhzhmX4/x1fl678zNI0s/Q05MnTzpnJKm+vt5XzpWfIZyTJ092ztxzzz3OGUnnfHu9I/z8nT7++GPnzNy5c50zZ9+p68rPv/X+/fs7Z1JTU50zKSkpzhlJvt7o9cc//tFp+2g0qszMzEs+jzMLDgBgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgwtdvRO2Oxo0b55zZuHGjr321tbU5Z7744gvnzN69e50zf/7zn50zu3fvds5IUm1trXOmX79+zplIJOKc8TORWJJmzZrlnPnhD3/onBk+fLhzpjfyM3X7+uuvd840NTU5ZyRpwIABzplYLOacSU5Ods74ndx+6623OmdcJ993dHuugAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJgIeJ7nWS/i66LRqEKhkBoaGpSWltbhnJ8BoUlJ9C96jtOnT1sv4aL8DNRE79TR53GegQEAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJi4wnoBnYXBoujtGPaJ3oZnbQCACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmHAqoNLSUo0bN06pqanKzMzU7NmzVVFREbfNpEmTFAgE4m4PP/xwpy4aANDzORVQeXm5SkpKtHPnTm3evFmtra2aOnWqmpqa4rZbsGCBqqqq2m8rVqzo1EUDAHo+p9+IumnTpriPy8rKlJmZqT179mjixInt9/fv31/hcLhzVggA6JW+1WtADQ0NkqT09PS4+1977TVlZGQoPz9fS5cu1cmTJy/4OWKxmKLRaNwNAND7OV0BfV1bW5sWL16sCRMmKD8/v/3+e++9V7m5uYpEItq/f7+eeOIJVVRU6K233jrv5yktLdXy5cv9LgMA0EMFPM/z/AQXLlyod955R++//76GDh16we22bt2qKVOm6NChQxoxYsQ5j8diMcVisfaPo9GocnJy1NDQoLS0ND9LAwAYikajCoVCl3we93UFtGjRIm3cuFHbt2+/aPlIUmFhoSRdsICCwaCCwaCfZQAAejCnAvI8T4888ojWrVunbdu2KS8v75KZffv2SZKys7N9LRAA0Ds5FVBJSYnWrFmjDRs2KDU1VdXV1ZKkUCikfv366fDhw1qzZo1uv/12DRo0SPv379ejjz6qiRMnasyYMQn5CwAAeian14ACgcB571+9erXmz5+vY8eO6f7779eBAwfU1NSknJwc3XHHHXryySc7/HpOR793CADonhLyGtCluionJ0fl5eUunxIAcJliFhwAwAQFBAAwQQEBAExQQAAAExQQAMAEBQQAMEEBAQBMUEAAABMUEADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMAEBQQAMEEBAQBMUEAAABMUEADABAUEADBBAQEATFBAAAATFBAAwMQV1gv4Js/zJEnRaNR4JQAAP84+f599Pr+QbldAjY2NkqScnBzjlQAAvo3GxkaFQqELPh7wLlVRXaytrU3Hjx9XamqqAoFA3GPRaFQ5OTk6duyY0tLSjFZoj+NwBsfhDI7DGRyHM7rDcfA8T42NjYpEIkpKuvArPd3uCigpKUlDhw696DZpaWmX9Ql2FsfhDI7DGRyHMzgOZ1gfh4td+ZzFmxAAACYoIACAiR5VQMFgUMuWLVMwGLReiimOwxkchzM4DmdwHM7oSceh270JAQBweehRV0AAgN6DAgIAmKCAAAAmKCAAgIkeU0ArV67U1Vdfrb59+6qwsFAffvih9ZK63DPPPKNAIBB3GzVqlPWyEm779u2aOXOmIpGIAoGA1q9fH/e453l6+umnlZ2drX79+qm4uFgHDx60WWwCXeo4zJ8//5zzY/r06TaLTZDS0lKNGzdOqampyszM1OzZs1VRURG3TXNzs0pKSjRo0CBdeeWVmjNnjmpqaoxWnBgdOQ6TJk0653x4+OGHjVZ8fj2igN544w0tWbJEy5Yt00cffaSCggJNmzZNtbW11kvrcjfccIOqqqrab++//771khKuqalJBQUFWrly5XkfX7FihV588UWtWrVKu3bt0oABAzRt2jQ1Nzd38UoT61LHQZKmT58ed368/vrrXbjCxCsvL1dJSYl27typzZs3q7W1VVOnTlVTU1P7No8++qjefvttvfnmmyovL9fx48d15513Gq6683XkOEjSggUL4s6HFStWGK34ArweYPz48V5JSUn7x6dPn/YikYhXWlpquKqut2zZMq+goMB6GaYkeevWrWv/uK2tzQuHw96vf/3r9vvq6+u9YDDovf766wYr7BrfPA6e53nz5s3zZs2aZbIeK7W1tZ4kr7y83PO8M1/7Pn36eG+++Wb7Nh9//LEnyduxY4fVMhPum8fB8zzvBz/4gfeTn/zEblEd0O2vgFpaWrRnzx4VFxe335eUlKTi4mLt2LHDcGU2Dh48qEgkouHDh+u+++7T0aNHrZdkqrKyUtXV1XHnRygUUmFh4WV5fmzbtk2ZmZm67rrrtHDhQtXV1VkvKaEaGhokSenp6ZKkPXv2qLW1Ne58GDVqlIYNG9arz4dvHoezXnvtNWVkZCg/P19Lly7VyZMnLZZ3Qd1uGOk3ffnllzp9+rSysrLi7s/KytInn3xitCobhYWFKisr03XXXaeqqiotX75ct956qw4cOKDU1FTr5Zmorq6WpPOeH2cfu1xMnz5dd955p/Ly8nT48GH94he/0IwZM7Rjxw4lJydbL6/TtbW1afHixZowYYLy8/MlnTkfUlJSNHDgwLhte/P5cL7jIEn33nuvcnNzFYlEtH//fj3xxBOqqKjQW2+9ZbjaeN2+gPA/M2bMaP/zmDFjVFhYqNzcXP3pT3/Sgw8+aLgydAd33313+59Hjx6tMWPGaMSIEdq2bZumTJliuLLEKCkp0YEDBy6L10Ev5kLH4aGHHmr/8+jRo5Wdna0pU6bo8OHDGjFiRFcv87y6/bfgMjIylJycfM67WGpqahQOh41W1T0MHDhQ1157rQ4dOmS9FDNnzwHOj3MNHz5cGRkZvfL8WLRokTZu3Kj33nsv7te3hMNhtbS0qL6+Pm773no+XOg4nE9hYaEkdavzodsXUEpKisaOHastW7a039fW1qYtW7aoqKjIcGX2Tpw4ocOHDys7O9t6KWby8vIUDofjzo9oNKpdu3Zd9ufH559/rrq6ul51fniep0WLFmndunXaunWr8vLy4h4fO3as+vTpE3c+VFRU6OjRo73qfLjUcTifffv2SVL3Oh+s3wXREWvXrvWCwaBXVlbm/fOf//Qeeughb+DAgV51dbX10rrUT3/6U2/btm1eZWWl98EHH3jFxcVeRkaGV1tba720hGpsbPT27t3r7d2715PkPf/8897evXu9zz77zPM8z3vuuee8gQMHehs2bPD279/vzZo1y8vLy/NOnTplvPLOdbHj0NjY6D322GPejh07vMrKSu/dd9/1vvvd73ojR470mpubrZfeaRYuXOiFQiFv27ZtXlVVVfvt5MmT7ds8/PDD3rBhw7ytW7d6u3fv9oqKiryioiLDVXe+Sx2HQ4cOeb/85S+93bt3e5WVld6GDRu84cOHexMnTjReebweUUCe53kvvfSSN2zYMC8lJcUbP368t3PnTusldbm5c+d62dnZXkpKijdkyBBv7ty53qFDh6yXlXDvvfeeJ+mc27x58zzPO/NW7KeeesrLysrygsGgN2XKFK+iosJ20QlwseNw8uRJb+rUqd7gwYO9Pn36eLm5ud6CBQt63X/Szvf3l+StXr26fZtTp055P/7xj72rrrrK69+/v3fHHXd4VVVVdotOgEsdh6NHj3oTJ0700tPTvWAw6F1zzTXez372M6+hocF24d/Ar2MAAJjo9q8BAQB6JwoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACb+H2NIPKeN2vBWAAAAAElFTkSuQmCC", 1020 "text/plain": [ 1021 "<Figure size 640x480 with 1 Axes>" 1022 ] 1023 }, 1024 "metadata": {}, 1025 "output_type": "display_data" 1026 } 1027 ], 1028 "source": [ 1029 "plt.imshow(arr[1], cmap='Greys')" 1030 ] 1031 }, 1032 { 1033 "cell_type": "code", 1034 "execution_count": 39, 1035 "metadata": {}, 1036 "outputs": [ 1037 { 1038 "name": "stdout", 1039 "output_type": "stream", 1040 "text": [ 1041 "\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 15ms/step\n" 1042 ] 1043 }, 1044 { 1045 "data": { 1046 "text/plain": [ 1047 "9" 1048 ] 1049 }, 1050 "execution_count": 39, 1051 "metadata": {}, 1052 "output_type": "execute_result" 1053 } 1054 ], 1055 "source": [ 1056 "sample = X_train.iloc[1].to_numpy()\n", 1057 "sample = np.array([sample])\n", 1058 "out = model.predict(sample)\n", 1059 "out.argmax()" 1060 ] 1061 }, 1062 { 1063 "cell_type": "markdown", 1064 "metadata": {}, 1065 "source": [ 1066 "ARR[900] - 28x28" 1067 ] 1068 }, 1069 { 1070 "cell_type": "code", 1071 "execution_count": 172, 1072 "metadata": {}, 1073 "outputs": [], 1074 "source": [ 1075 "from random import gauss\n", 1076 "\n", 1077 "def checkNoisyImage():\n", 1078 " item = arr[1].copy()\n", 1079 "\n", 1080 " for i in range(0, len(item)):\n", 1081 " for x in range(0, len(arr[1][i])):\n", 1082 " item[i][x] = arr[1][i][x] * abs(random.uniform(.7,1.3))\n", 1083 " \n", 1084 " item = item.reshape(1,784)\n", 1085 " out = model.predict(item, verbose=0)\n", 1086 " if out.argmax() != 9:\n", 1087 " return (True, item, out.argmax())\n", 1088 " else:\n", 1089 " return (False, '', out.argmax())" 1090 ] 1091 }, 1092 { 1093 "cell_type": "code", 1094 "execution_count": 179, 1095 "metadata": {}, 1096 "outputs": [ 1097 { 1098 "data": { 1099 "text/plain": [ 1100 "array([ 0, 0, 0, 0, 0, 0, 0, 0, 48, 161, 218, 171, 147,\n", 1101 " 116, 185, 235, 201, 209, 203, 204, 220, 208, 126, 133, 162, 164,\n", 1102 " 187, 0])" 1103 ] 1104 }, 1105 "execution_count": 179, 1106 "metadata": {}, 1107 "output_type": "execute_result" 1108 } 1109 ], 1110 "source": [ 1111 "arr[1][15]" 1112 ] 1113 }, 1114 { 1115 "cell_type": "code", 1116 "execution_count": 197, 1117 "metadata": {}, 1118 "outputs": [ 1119 { 1120 "name": "stdout", 1121 "output_type": "stream", 1122 "text": [ 1123 "9\n" 1124 ] 1125 }, 1126 { 1127 "data": { 1128 "text/plain": [ 1129 "<matplotlib.image.AxesImage at 0x7f210519c950>" 1130 ] 1131 }, 1132 "execution_count": 197, 1133 "metadata": {}, 1134 "output_type": "execute_result" 1135 }, 1136 { 1137 "data": { 1138 "image/png": "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R9fnDAgAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAICJgOd5nvUgvikajSoUCqmhoUFpaWkdzvmZIDQpif5Fz3H69GnrIVyUnwk10Tt19HWcV2AAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmrrAeQGdhYlH0dkz2id6GV20AgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJhwKqDS0lKNGzdOqampyszM1OzZs1VRURG3zqRJkxQIBOKWhx9+uFMHDQDo+ZwKqLy8XCUlJdq5c6c2b96s1tZWTZ06VU1NTXHrLViwQFVVVe3LihUrOnXQAICez+kTUTdt2hT3dVlZmTIzM7Vnzx5NnDix/fH+/fsrHA53zggBAL3Sd7oG1NDQIElKT0+Pe/z1119XRkaG8vPztXTpUp08efKC3yMWiykajcYtAIDez+kM6Jva2tq0ePFiTZgwQfn5+e2P33vvvcrNzVUkEtH+/fv1xBNPqKKiQm+//fZ5v09paamWL1/udxgAgB4q4Hme5ye4cOFCvfvuu/rggw80ZMiQC663detWTZkyRYcOHdLw4cPPeT4WiykWi7V/HY1GlZOTo4aGBqWlpfkZGgDAUDQaVSgUuuTruK8zoEWLFmnjxo3avn37RctHkgoLCyXpggUUDAYVDAb9DAMA0IM5FZDneXrkkUe0bt06bdu2TXl5eZfM7Nu3T5KUnZ3ta4AAgN7JqYBKSkq0Zs0abdiwQampqaqurpYkhUIh9evXT4cPH9aaNWt0++23a9CgQdq/f78effRRTZw4UWPGjEnIXwAA0DM5XQMKBALnfXz16tWaP3++jh07pvvvv18HDhxQU1OTcnJydMcdd+jJJ5/s8PWcjv7uEADQPSXkGtCluionJ0fl5eUu3xIAcJliLjgAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgIkrrAfwbZ7nSZKi0ajxSAAAfpx9/T77en4h3a6AGhsbJUk5OTnGIwEAfBeNjY0KhUIXfD7gXaqiulhbW5uOHz+u1NRUBQKBuOei0ahycnJ07NgxpaWlGY3QHvvhDPbDGeyHM9gPZ3SH/eB5nhobGxWJRJSUdOErPd3uDCgpKUlDhgy56DppaWmX9QF2FvvhDPbDGeyHM9gPZ1jvh4ud+ZzFTQgAABMUEADARI8qoGAwqGXLlikYDFoPxRT74Qz2wxnshzPYD2f0pP3Q7W5CAABcHnrUGRAAoPeggAAAJiggAIAJCggAYKLHFNDKlSt1zTXXqG/fviosLNRHH31kPaQu98wzzygQCMQto0aNsh5Wwm3fvl0zZ85UJBJRIBDQ+vXr4573PE9PP/20srOz1a9fPxUXF+vgwYM2g02gS+2H+fPnn3N8TJ8+3WawCVJaWqpx48YpNTVVmZmZmj17tioqKuLWaW5uVklJiQYNGqQrr7xSc+bMUU1NjdGIE6Mj+2HSpEnnHA8PP/yw0YjPr0cU0JtvvqklS5Zo2bJl+vjjj1VQUKBp06aptrbWemhd7oYbblBVVVX78sEHH1gPKeGamppUUFCglStXnvf5FStW6KWXXtKqVau0a9cuDRgwQNOmTVNzc3MXjzSxLrUfJGn69Olxx8cbb7zRhSNMvPLycpWUlGjnzp3avHmzWltbNXXqVDU1NbWv8+ijj+qdd97RW2+9pfLych0/flx33nmn4ag7X0f2gyQtWLAg7nhYsWKF0YgvwOsBxo8f75WUlLR/ffr0aS8SiXilpaWGo+p6y5Yt8woKCqyHYUqSt27duvav29ravHA47D3//PPtj9XX13vBYNB74403DEbYNb69HzzP8+bNm+fNmjXLZDxWamtrPUleeXm553lnfvZ9+vTx3nrrrfZ1PvnkE0+St2PHDqthJty394Pned4Pf/hD7yc/+YndoDqg258BtbS0aM+ePSouLm5/LCkpScXFxdqxY4fhyGwcPHhQkUhEw4YN03333aejR49aD8lUZWWlqqur446PUCikwsLCy/L42LZtmzIzM3Xddddp4cKFqqursx5SQjU0NEiS0tPTJUl79uxRa2tr3PEwatQoDR06tFcfD9/eD2e9/vrrysjIUH5+vpYuXaqTJ09aDO+Cut1kpN/21Vdf6fTp08rKyop7PCsrS59++qnRqGwUFhaqrKxM1113naqqqrR8+XLdeuutOnDggFJTU62HZ6K6ulqSznt8nH3ucjF9+nTdeeedysvL0+HDh/WLX/xCM2bM0I4dO5ScnGw9vE7X1tamxYsXa8KECcrPz5d05nhISUnRwIED49btzcfD+faDJN17773Kzc1VJBLR/v379cQTT6iiokJvv/224WjjdfsCwv/NmDGj/c9jxoxRYWGhcnNz9ac//UkPPvig4cjQHdx9993tfx49erTGjBmj4cOHa9u2bZoyZYrhyBKjpKREBw4cuCyug17MhfbDQw891P7n0aNHKzs7W1OmTNHhw4c1fPjwrh7meXX7X8FlZGQoOTn5nLtYampqFA6HjUbVPQwcOFAjR47UoUOHrIdi5uwxwPFxrmHDhikjI6NXHh+LFi3Sxo0b9f7778d9fEs4HFZLS4vq6+vj1u+tx8OF9sP5FBYWSlK3Oh66fQGlpKRo7Nix2rJlS/tjbW1t2rJli4qKigxHZu/EiRM6fPiwsrOzrYdiJi8vT+FwOO74iEaj2rVr12V/fHzxxReqq6vrVceH53latGiR1q1bp61btyovLy/u+bFjx6pPnz5xx0NFRYWOHj3aq46HS+2H89m3b58kda/jwfouiI5Yu3atFwwGvbKyMu+f//yn99BDD3kDBw70qqurrYfWpX76059627Zt8yorK70PP/zQKy4u9jIyMrza2lrroSVUY2Ojt3fvXm/v3r2eJO+FF17w9u7d633++eee53nec8895w0cONDbsGGDt3//fm/WrFleXl6ed+rUKeORd66L7YfGxkbvscce83bs2OFVVlZ67733nvf973/fGzFihNfc3Gw99E6zcOFCLxQKedu2bfOqqqral5MnT7av8/DDD3tDhw71tm7d6u3evdsrKiryioqKDEfd+S61Hw4dOuT98pe/9Hbv3u1VVlZ6GzZs8IYNG+ZNnDjReOTxekQBeZ7nvfzyy97QoUO9lJQUb/z48d7OnTuth9Tl5s6d62VnZ3spKSne1Vdf7c2dO9c7dOiQ9bAS7v333/cknbPMmzfP87wzt2I/9dRTXlZWlhcMBr0pU6Z4FRUVtoNOgIvth5MnT3pTp071Bg8e7PXp08fLzc31FixY0Ov+k3a+v78kb/Xq1e3rnDp1yvvxj3/sXXXVVV7//v29O+64w6uqqrIbdAJcaj8cPXrUmzhxopeenu4Fg0Hv2muv9X72s595DQ0NtgP/Fj6OAQBgottfAwIA9E4UEADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMAEBQQAMEEBAQBM/A+Ppjou2DlHaQAAAABJRU5ErkJggg==", 1139 "text/plain": [ 1140 "<Figure size 640x480 with 1 Axes>" 1141 ] 1142 }, 1143 "metadata": {}, 1144 "output_type": "display_data" 1145 } 1146 ], 1147 "source": [ 1148 "item = arr[1].copy()\n", 1149 "\n", 1150 "item[15][8] = 60\n", 1151 "item[15][9] = 150\n", 1152 "item[15][10] = 230\n", 1153 "item[15][11] = 140\n", 1154 "item[15][12] = 160\n", 1155 "item[15][13] = 130\n", 1156 "item[15][14] = 200\n", 1157 "item[15][15] = 210\n", 1158 "\n", 1159 "item = item.reshape(1,784)\n", 1160 "out = model.predict(item, verbose=0)\n", 1161 "print(out.argmax())\n", 1162 "item = item.reshape(28,28)\n", 1163 "plt.imshow(item, cmap='Greys')" 1164 ] 1165 }, 1166 { 1167 "cell_type": "code", 1168 "execution_count": 173, 1169 "metadata": {}, 1170 "outputs": [ 1171 { 1172 "name": "stdout", 1173 "output_type": "stream", 1174 "text": [ 1175 "7\n" 1176 ] 1177 }, 1178 { 1179 "data": { 1180 "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaAAAAGdCAYAAABU0qcqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAffUlEQVR4nO3de3BU9f3G8WcDZAFNloaQWwkYQEiRiwNCSkVASYF0RgVpi7cWrAOCQQvUqnQEqr9OY3GGehmqf9iCVkFlFBiZlhkMJkgLdLgNZSgZgqnBkgRlzG4IEJCc3x8MaZf797ibTxLer5mdIbvnyflwcsiTw26+G/A8zxMAAM0swXoAAMC1iQICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACAifbWA5yvsbFRhw8fVlJSkgKBgPU4AABHnueprq5OWVlZSki49HVOiyugw4cPKzs723oMAMA3dOjQIXXv3v2Sj7e4AkpKSpJ0dvDk5GTjaQAAriKRiLKzs5u+n19K3Apo6dKleuGFF1RdXa3BgwfrlVde0fDhw6+YO/ffbsnJyRQQALRiV3oaJS4vQnj33Xc1b948LVq0SDt37tTgwYM1fvx4HTlyJB67AwC0QnEpoCVLlmj69Ol66KGH1L9/f7322mvq3Lmz/vSnP8VjdwCAVijmBXTq1Cnt2LFD+fn5/91JQoLy8/O1ZcuWC7ZvaGhQJBKJugEA2r6YF9CXX36pM2fOKD09Per+9PR0VVdXX7B9UVGRQqFQ041XwAHAtcH8F1Hnz5+vcDjcdDt06JD1SACAZhDzV8GlpqaqXbt2qqmpibq/pqZGGRkZF2wfDAYVDAZjPQYAoIWL+RVQYmKihg4dquLi4qb7GhsbVVxcrBEjRsR6dwCAViouvwc0b948TZ06VbfccouGDx+uF198UfX19XrooYfisTsAQCsUlwKaMmWKvvjiCy1cuFDV1dW6+eabtX79+gtemAAAuHYFPM/zrIf4X5FIRKFQSOFwmJUQAKAVutrv4+avggMAXJsoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmGhvPQCAtmHnzp3Omf79+ztnOnbs6JxBy8QVEADABAUEADAR8wL69a9/rUAgEHXLzc2N9W4AAK1cXJ4Duummm/TRRx/9dyfteaoJABAtLs3Qvn17ZWRkxONTAwDaiLg8B3TgwAFlZWWpV69eeuCBB1RZWXnJbRsaGhSJRKJuAIC2L+YFlJeXp+XLl2v9+vV69dVXVVFRodtuu011dXUX3b6oqEihUKjplp2dHeuRAAAtUMDzPC+eO6itrVXPnj21ZMkSPfzwwxc83tDQoIaGhqaPI5GIsrOzFQ6HlZycHM/RAMQQvweEcyKRiEKh0BW/j8f91QFdunRR3759VV5eftHHg8GggsFgvMcAALQwcf89oGPHjungwYPKzMyM964AAK1IzAvoiSeeUGlpqf7973/r73//uyZNmqR27drpvvvui/WuAACtWMz/C+7zzz/Xfffdp6NHj6pbt24aOXKktm7dqm7dusV6VwCAVizuL0JwdbVPXgGIn9OnTztnfvjDHzpnXn/9decMP8y2fFf7fZy14AAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiI+xvSoe3ys45tIBCIwySIteeff945c+rUKefMG2+84Zx5/PHHnTOJiYnOmebUnGtCt6R/g1wBAQBMUEAAABMUEADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMAEBQQAMEEBAQBMsBo2fGtJq+rGSnOt8N1c+9m1a5dzRpIyMzOdM0OHDnXOFBcXO2cKCwudM341NjY6Z/x8ndriv6WrwRUQAMAEBQQAMEEBAQBMUEAAABMUEADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAEyxGijbJz2KfUsteWHT//v3OmXvvvdc5I0njxo1zztxwww3Ome7duztnOnXq5JzxKyGh5f6M/tlnn/nKpaenO2c6duzoa19X0nKPLgCgTaOAAAAmKCAAgAkKCABgggIC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Omduu+0254yfv4+ky/7qxKV8//vfd8689dZbzpm5c+c6Z2644QbnjCTt37/fOXPy5EnnzMiRI50zlZWVzhlJ+stf/uKcWb58udP2kUhEPXv2vOL3cdaCAwCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYiPlbcsdKJBJx2n7AgAHO+xg9erRzRpKvd23Nyclxzmzbts05c9111zln+vfv75yRpAcffNA5U1ZW5pzZs2ePcyYcDjtnJH9f27S0NOfM1KlTnTMvvfSSc2bgwIHOGUmaMmWKc8bPW64sWbLEOfPpp586Z5KSkpwzktS5c2fnjJ83GGhsbHTODB8+3Dkj+Vv9PiHB7VrlarfnCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAICJFrsYaVVVlerq6q56+5EjRzrvIxAIOGck6ciRI86Z3Nxc54yfBRQfeOAB54yfxR0lKSUlxTlz/fXXO2eGDh3qnPnss8+cM5KUnZ3tnDlw4IBzJjEx0TmzcuVK58zmzZudM1LzLY558OBB50xtba1zZtmyZc4ZSSooKHDOdOzY0TlTXFzsnPG70OyQIUOcM66Lsn799ddXtR1XQAAAExQQAMAEBQQAMEEBAQBMUEAAABMUEADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAEy02MVI161b57So38033+y8j6NHjzpnJKlbt27Omb59+zpnOnTo4JxZv369c+aLL75wzkhXv+Dg//KzYKUffhYIlaT9+/c7Z7p06eKcCYVCzpmvvvrKOZORkeGc8buvBQsWOGfKysqcM7/97W+dM/v27XPOSNKmTZucMzk5Oc6ZyspK54yfRXr97qt9e7equNrtuQICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgosUuRtqvXz917tz5qrd/5ZVXnPdxyy23OGckf4tPnj592jlz6tQp58y4ceOcM7W1tc4ZSSovL3fO9OjRwzlz/Phx58zEiROdM5J07Ngx54yfr1NxcbFzJhwOO2feeust54wk1dTUOGeefvpp58yPfvQj58zhw4edM37PhxMnTjhngsGgc+Z73/uec8bzPOeMJB06dMhXLh64AgIAmKCAAAAmnAqoqKhIw4YNU1JSktLS0jRx4sQL3s/j5MmTKiwsVNeuXXX99ddr8uTJvi7nAQBtm1MBlZaWqrCwUFu3btWGDRt0+vRpjRs3TvX19U3bzJ07Vx9++KFWrVql0tJSHT58WPfcc0/MBwcAtG5OL0I4/902ly9frrS0NO3YsUOjRo1SOBzWH//4R61YsUJ33HGHJGnZsmX6zne+o61bt+q73/1u7CYHALRq3+g5oHOvyklJSZEk7dixQ6dPn1Z+fn7TNrm5uerRo4e2bNly0c/R0NCgSCQSdQMAtH2+C6ixsVFz5szRrbfeqgEDBkiSqqurlZiYeMHLlNPT01VdXX3Rz1NUVKRQKNR0y87O9jsSAKAV8V1AhYWF2rt3r955551vNMD8+fMVDoebbi3pNeoAgPjx9Yuos2fP1rp167Rp0yZ179696f6MjAydOnVKtbW1UVdBNTU1ysjIuOjnCgaDvn5xCwDQujldAXmep9mzZ2v16tXauHGjcnJyoh4fOnSoOnToEPVb3mVlZaqsrNSIESNiMzEAoE1wugIqLCzUihUrtHbtWiUlJTU9rxMKhdSpUyeFQiE9/PDDmjdvnlJSUpScnKzHHntMI0aM4BVwAIAoTgX06quvSpLGjBkTdf+yZcs0bdo0SdLvf/97JSQkaPLkyWpoaND48eP1hz/8ISbDAgDajoDnd0W7OIlEIgqFQgqHw0pOTr7q3LZt25z3tXPnTueMJFVUVDhn3n//fefM+PHjnTPnr0xxNXJzc50z0oU/iFyN7du3O2f8LJbq98UsjY2Nzpm+ffs6Z+rq6pwzfr5OP/nJT5wzkpSZmemcCQQCzpndu3c7ZwoKCpwzs2bNcs5IUlVVlXNm2LBhzhk/C80ePXrUOSNJWVlZzpkZM2Y4bR+JRNS1a9crfh9nLTgAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAlf74jaEuXl5TVLRjr7xnyuZs6c6ZzZtWuXc8ZlBfFzXnrpJeeMJP3nP/9xzuzbt885079/f+eM36/tHXfc4Zy51Lv9Xs6NN97onGmL/Hxtf/rTnzpnNm/e7JyRpLvuuss542dlfj8raK9Zs8Y5I0mPPPKIc6Z9e7equNrtuQICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgIuD5WVkzjiKRiEKhkMLhsNPCmn7+GoFAwDkDWGlsbLQe4bISEvh5Fmdd7fdxzhgAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAm2lsPECssLIq2jsU+0dZwRgMATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMAEBQQAMEEBAQBMUEAAABMUEADABAUEADBBAQEATFBAAAATFBAAwIRTARUVFWnYsGFKSkpSWlqaJk6cqLKysqhtxowZo0AgEHWbOXNmTIcGALR+TgVUWlqqwsJCbd26VRs2bNDp06c1btw41dfXR203ffp0VVVVNd0WL14c06EBAK2f0zuirl+/Purj5cuXKy0tTTt27NCoUaOa7u/cubMyMjJiMyEAoE36Rs8BhcNhSVJKSkrU/W+//bZSU1M1YMAAzZ8/X8ePH7/k52hoaFAkEom6AQDaPqcroP/V2NioOXPm6NZbb9WAAQOa7r///vvVs2dPZWVlac+ePXrqqadUVlamDz744KKfp6ioSM8++6zfMQAArVTA8zzPT3DWrFn661//qs2bN6t79+6X3G7jxo0aO3asysvL1bt37wseb2hoUENDQ9PHkUhE2dnZCofDSk5O9jMaAMBQJBJRKBS64vdxX1dAs2fP1rp167Rp06bLlo8k5eXlSdIlCygYDCoYDPoZAwDQijkVkOd5euyxx7R69WqVlJQoJyfnipndu3dLkjIzM30NCABom5wKqLCwUCtWrNDatWuVlJSk6upqSVIoFFKnTp108OBBrVixQj/4wQ/UtWtX7dmzR3PnztWoUaM0aNCguPwFAACtk9NzQIFA4KL3L1u2TNOmTdOhQ4f04IMPau/evaqvr1d2drYmTZqkZ5555qqfz7na/zsEALRMcXkO6EpdlZ2drdLSUpdPCQC4RrEWHADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMAEBQQAMEEBAQBMUEAAABMUEADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMAEBQQAMEEBAQBMUEAAABMUEADARHvrAc7n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", 1181 "text/plain": [ 1182 "<Figure size 640x480 with 1 Axes>" 1183 ] 1184 }, 1185 "metadata": {}, 1186 "output_type": "display_data" 1187 } 1188 ], 1189 "source": [ 1190 "found = False\n", 1191 "\n", 1192 "while found == False:\n", 1193 " returned = checkNoisyImage()\n", 1194 " found = returned[0]\n", 1195 " item = returned[1]\n", 1196 " val = returned[2]\n", 1197 "\n", 1198 "item = item.reshape(28,28)\n", 1199 "plt.imshow(item, cmap='Greys')\n", 1200 "print(val)" 1201 ] 1202 } 1203 ], 1204 "metadata": { 1205 "kernelspec": { 1206 "display_name": ".venv", 1207 "language": "python", 1208 "name": "python3" 1209 }, 1210 "language_info": { 1211 "codemirror_mode": { 1212 "name": "ipython", 1213 "version": 3 1214 }, 1215 "file_extension": ".py", 1216 "mimetype": "text/x-python", 1217 "name": "python", 1218 "nbconvert_exporter": "python", 1219 "pygments_lexer": "ipython3", 1220 "version": "3.11.2" 1221 } 1222 }, 1223 "nbformat": 4, 1224 "nbformat_minor": 2 1225 }