├── Boston Housing Keras.ipynb ├── IMDB Keras.ipynb ├── README.md └── Reuters Keras.ipynb /Boston Housing Keras.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "from tensorflow.keras.datasets import boston_housing\n", 10 | "\n", 11 | "(train_data, train_targets), (test_data, test_targets) = boston_housing.load_data()" 12 | ] 13 | }, 14 | { 15 | "cell_type": "code", 16 | "execution_count": 2, 17 | "metadata": {}, 18 | "outputs": [ 19 | { 20 | "name": "stdout", 21 | "output_type": "stream", 22 | "text": [ 23 | "(404, 13)\n", 24 | "(102, 13)\n" 25 | ] 26 | } 27 | ], 28 | "source": [ 29 | "print(train_data.shape)\n", 30 | "print(test_data.shape)" 31 | ] 32 | }, 33 | { 34 | "cell_type": "code", 35 | "execution_count": 3, 36 | "metadata": {}, 37 | "outputs": [], 38 | "source": [ 39 | "mean = train_data.mean(axis=0)\n", 40 | "train_data -= mean\n", 41 | "\n", 42 | "std = train_data.std(axis=0)\n", 43 | "train_data /= std\n", 44 | "\n", 45 | "test_data -= mean\n", 46 | "test_data /= std" 47 | ] 48 | }, 49 | { 50 | "cell_type": "code", 51 | "execution_count": 4, 52 | "metadata": {}, 53 | "outputs": [], 54 | "source": [ 55 | "from tensorflow.keras import layers\n", 56 | "from tensorflow.keras import models\n", 57 | "\n", 58 | "def build_model():\n", 59 | " model = models.Sequential()\n", 60 | " model.add(layers.Dense(64, activation='relu', input_shape=(train_data.shape[1],)))\n", 61 | " model.add(layers.Dense(64, activation='relu'))\n", 62 | " model.add(layers.Dense(1))\n", 63 | " model.compile(optimizer='rmsprop', loss='mse', metrics=['mae'])\n", 64 | " return model" 65 | ] 66 | }, 67 | { 68 | "cell_type": "code", 69 | "execution_count": 5, 70 | "metadata": {}, 71 | "outputs": [ 72 | { 73 | "name": "stdout", 74 | "output_type": "stream", 75 | "text": [ 76 | "processing fold # 0\n", 77 | "processing fold # 1\n", 78 | "processing fold # 2\n", 79 | "processing fold # 3\n" 80 | ] 81 | } 82 | ], 83 | "source": [ 84 | "k = 4\n", 85 | "num_val_samples = len(train_data)//k\n", 86 | "num_epochs = 100\n", 87 | "all_scores = []\n", 88 | "for i in range(k):\n", 89 | " print('processing fold #', i)\n", 90 | " val_data=train_data[i*num_val_samples: (i+1)*num_val_samples]\n", 91 | " val_targets=train_targets[i*num_val_samples: (i+1)*num_val_samples]\n", 92 | " \n", 93 | " partial_train_data=np.concatenate(\n", 94 | " [train_data[: i*num_val_samples],\n", 95 | " train_data[(i+1)*num_val_samples:]],\n", 96 | " axis=0)\n", 97 | " \n", 98 | " partial_train_targets=np.concatenate(\n", 99 | " [train_targets[: i*num_val_samples],\n", 100 | " train_targets[(i+1)*num_val_samples:]],\n", 101 | " axis=0)\n", 102 | " \n", 103 | " model=build_model()\n", 104 | " model.fit(partial_train_data, partial_train_targets, epochs=num_epochs, batch_size=1, verbose=0)\n", 105 | " val_mse, val_mae=model.evaluate(val_data, val_targets, verbose=0)\n", 106 | " all_scores.append(val_mae)" 107 | ] 108 | }, 109 | { 110 | "cell_type": "code", 111 | "execution_count": 6, 112 | "metadata": {}, 113 | "outputs": [ 114 | { 115 | "data": { 116 | "text/plain": [ 117 | "[1.984665, 2.4608908, 2.6950867, 2.5230422]" 118 | ] 119 | }, 120 | "execution_count": 6, 121 | "metadata": {}, 122 | "output_type": "execute_result" 123 | } 124 | ], 125 | "source": [ 126 | "all_scores" 127 | ] 128 | }, 129 | { 130 | "cell_type": "code", 131 | "execution_count": 7, 132 | "metadata": {}, 133 | "outputs": [ 134 | { 135 | "data": { 136 | "text/plain": [ 137 | "2.4159212" 138 | ] 139 | }, 140 | "execution_count": 7, 141 | "metadata": {}, 142 | "output_type": "execute_result" 143 | } 144 | ], 145 | "source": [ 146 | "np.mean(all_scores)" 147 | ] 148 | }, 149 | { 150 | "cell_type": "code", 151 | "execution_count": 8, 152 | "metadata": {}, 153 | "outputs": [ 154 | { 155 | "name": "stdout", 156 | "output_type": "stream", 157 | "text": [ 158 | "processing fold # 0\n", 159 | "processing fold # 1\n", 160 | "processing fold # 2\n", 161 | "processing fold # 3\n" 162 | ] 163 | } 164 | ], 165 | "source": [ 166 | "num_epochs=500\n", 167 | "all_mae_histories=[]\n", 168 | "\n", 169 | "for i in range(k):\n", 170 | " print('processing fold #', i)\n", 171 | " val_data=train_data[i*num_val_samples: (i+1)*num_val_samples]\n", 172 | " val_targets=train_targets[i*num_val_samples: (i+1)*num_val_samples]\n", 173 | " \n", 174 | " partial_train_data=np.concatenate(\n", 175 | " [train_data[: i*num_val_samples],\n", 176 | " train_data[(i+1)*num_val_samples:]], \n", 177 | " axis=0)\n", 178 | " \n", 179 | " partial_train_targets=np.concatenate(\n", 180 | " [train_targets[: i*num_val_samples],\n", 181 | " train_targets[(i+1)*num_val_samples:]],\n", 182 | " axis=0)\n", 183 | " \n", 184 | " model=build_model()\n", 185 | " history = model.fit(partial_train_data, partial_train_targets,\n", 186 | " validation_data=(val_data, val_targets), \n", 187 | " epochs=num_epochs, batch_size=1, verbose=0)" 188 | ] 189 | }, 190 | { 191 | "cell_type": "code", 192 | "execution_count": 13, 193 | "metadata": {}, 194 | "outputs": [], 195 | "source": [ 196 | "mae_history = history.history['val_mae']\n", 197 | "all_mae_histories.append(mae_history)" 198 | ] 199 | }, 200 | { 201 | "cell_type": "code", 202 | "execution_count": 25, 203 | "metadata": {}, 204 | "outputs": [], 205 | "source": [ 206 | "average_mae_history = [np.mean([x[i] for x in all_mae_histories]) for i in range(num_epochs)]" 207 | ] 208 | }, 209 | { 210 | "cell_type": "code", 211 | "execution_count": 28, 212 | "metadata": {}, 213 | "outputs": [ 214 | { 215 | "data": { 216 | "image/png": "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\n", 217 | "text/plain": [ 218 | "
" 219 | ] 220 | }, 221 | "metadata": { 222 | "needs_background": "light" 223 | }, 224 | "output_type": "display_data" 225 | } 226 | ], 227 | "source": [ 228 | "plt.plot(range(1, len(average_mae_history) + 1), average_mae_history)\n", 229 | "plt.xlabel('Epochs')\n", 230 | "plt.ylabel('Validation MAE')\n", 231 | "plt.show();" 232 | ] 233 | }, 234 | { 235 | "cell_type": "code", 236 | "execution_count": 30, 237 | "metadata": {}, 238 | "outputs": [ 239 | { 240 | "data": { 241 | "image/png": "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\n", 242 | "text/plain": [ 243 | "
" 244 | ] 245 | }, 246 | "metadata": { 247 | "needs_background": "light" 248 | }, 249 | "output_type": "display_data" 250 | } 251 | ], 252 | "source": [ 253 | "def smooth_curve(points, factor=0.9):\n", 254 | " smoothed_points=[]\n", 255 | " \n", 256 | " for point in points:\n", 257 | " if smoothed_points:\n", 258 | " previous = smoothed_points[-1]\n", 259 | " smoothed_points.append(previous*factor+point*(1-factor))\n", 260 | " else: \n", 261 | " smoothed_points.append(point)\n", 262 | " return smoothed_points\n", 263 | "\n", 264 | "smooth_mae_history = smooth_curve(average_mae_history[10:])\n", 265 | "\n", 266 | "plt.plot(range(1, len(smooth_mae_history)+1), smooth_mae_history)\n", 267 | "plt.xlabel('Epochs')\n", 268 | "plt.ylabel('Validation mae');" 269 | ] 270 | }, 271 | { 272 | "cell_type": "code", 273 | "execution_count": 31, 274 | "metadata": {}, 275 | "outputs": [ 276 | { 277 | "name": "stdout", 278 | "output_type": "stream", 279 | "text": [ 280 | "\r", 281 | "102/1 [====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================] - 0s 674us/sample - loss: 73.4681 - mae: 2.6649\n" 282 | ] 283 | } 284 | ], 285 | "source": [ 286 | "model = build_model()\n", 287 | "model.fit(train_data, train_targets, \n", 288 | " epochs=80, batch_size=16, verbose=0)\n", 289 | "\n", 290 | "test_mse_score, test_mae_score = model.evaluate(test_data, test_targets)" 291 | ] 292 | }, 293 | { 294 | "cell_type": "code", 295 | "execution_count": 33, 296 | "metadata": {}, 297 | "outputs": [ 298 | { 299 | "data": { 300 | "text/plain": [ 301 | "2.6648607" 302 | ] 303 | }, 304 | "execution_count": 33, 305 | "metadata": {}, 306 | "output_type": "execute_result" 307 | } 308 | ], 309 | "source": [ 310 | "test_mae_score" 311 | ] 312 | }, 313 | { 314 | "cell_type": "code", 315 | "execution_count": null, 316 | "metadata": {}, 317 | "outputs": [], 318 | "source": [] 319 | } 320 | ], 321 | "metadata": { 322 | "kernelspec": { 323 | "display_name": "Python 3", 324 | "language": "python", 325 | "name": "python3" 326 | }, 327 | "language_info": { 328 | "codemirror_mode": { 329 | "name": "ipython", 330 | "version": 3 331 | }, 332 | "file_extension": ".py", 333 | "mimetype": "text/x-python", 334 | "name": "python", 335 | "nbconvert_exporter": "python", 336 | "pygments_lexer": "ipython3", 337 | "version": "3.6.7" 338 | } 339 | }, 340 | "nbformat": 4, 341 | "nbformat_minor": 2 342 | } 343 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Deep-Learning-with-Python 2 | The learning repository of the book: Deep Learning with Python by Francois Chollet 3 | -------------------------------------------------------------------------------- /Reuters Keras.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 2, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "from tensorflow.keras.datasets import reuters\n", 10 | "\n", 11 | "(train_data, train_labels), (test_data, test_labels) = reuters.load_data(num_words = 10000)" 12 | ] 13 | }, 14 | { 15 | "cell_type": "code", 16 | "execution_count": 4, 17 | "metadata": {}, 18 | "outputs": [ 19 | { 20 | "data": { 21 | "text/plain": [ 22 | "8982" 23 | ] 24 | }, 25 | "execution_count": 4, 26 | "metadata": {}, 27 | "output_type": "execute_result" 28 | } 29 | ], 30 | "source": [ 31 | "len(train_data)" 32 | ] 33 | }, 34 | { 35 | "cell_type": "code", 36 | "execution_count": 5, 37 | "metadata": {}, 38 | "outputs": [ 39 | { 40 | "data": { 41 | "text/plain": [ 42 | "2246" 43 | ] 44 | }, 45 | "execution_count": 5, 46 | "metadata": {}, 47 | "output_type": "execute_result" 48 | } 49 | ], 50 | "source": [ 51 | "len(test_data)" 52 | ] 53 | }, 54 | { 55 | "cell_type": "code", 56 | "execution_count": 9, 57 | "metadata": {}, 58 | "outputs": [ 59 | { 60 | "data": { 61 | "text/plain": [ 62 | "9999" 63 | ] 64 | }, 65 | "execution_count": 9, 66 | "metadata": {}, 67 | "output_type": "execute_result" 68 | } 69 | ], 70 | "source": [ 71 | "max([max(sequence) for sequence in train_data])" 72 | ] 73 | }, 74 | { 75 | "cell_type": "code", 76 | "execution_count": 12, 77 | "metadata": {}, 78 | "outputs": [ 79 | { 80 | "name": "stdout", 81 | "output_type": "stream", 82 | "text": [ 83 | "Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/reuters_word_index.json\n", 84 | "557056/550378 [==============================] - 0s 0us/step\n" 85 | ] 86 | } 87 | ], 88 | "source": [ 89 | "word_index = reuters.get_word_index()" 90 | ] 91 | }, 92 | { 93 | "cell_type": "code", 94 | "execution_count": 14, 95 | "metadata": {}, 96 | "outputs": [], 97 | "source": [ 98 | "reverse_word_index = dict(\n", 99 | "[(value, key) for (key, value) in word_index.items()])" 100 | ] 101 | }, 102 | { 103 | "cell_type": "code", 104 | "execution_count": 16, 105 | "metadata": {}, 106 | "outputs": [], 107 | "source": [ 108 | "decoded_newswire = ' '.join([reverse_word_index.get(i-3, '?') for i in train_data[0]])" 109 | ] 110 | }, 111 | { 112 | "cell_type": "code", 113 | "execution_count": 17, 114 | "metadata": {}, 115 | "outputs": [ 116 | { 117 | "data": { 118 | "text/plain": [ 119 | "'? ? ? said as a result of its december acquisition of space co it expects earnings per share in 1987 of 1 15 to 1 30 dlrs per share up from 70 cts in 1986 the company said pretax net should rise to nine to 10 mln dlrs from six mln dlrs in 1986 and rental operation revenues to 19 to 22 mln dlrs from 12 5 mln dlrs it said cash flow per share this year should be 2 50 to three dlrs reuter 3'" 120 | ] 121 | }, 122 | "execution_count": 17, 123 | "metadata": {}, 124 | "output_type": "execute_result" 125 | } 126 | ], 127 | "source": [ 128 | "decoded_newswire" 129 | ] 130 | }, 131 | { 132 | "cell_type": "code", 133 | "execution_count": 21, 134 | "metadata": {}, 135 | "outputs": [ 136 | { 137 | "data": { 138 | "text/plain": [ 139 | "{0,\n", 140 | " 1,\n", 141 | " 2,\n", 142 | " 3,\n", 143 | " 4,\n", 144 | " 5,\n", 145 | " 6,\n", 146 | " 7,\n", 147 | " 8,\n", 148 | " 9,\n", 149 | " 10,\n", 150 | " 11,\n", 151 | " 12,\n", 152 | " 13,\n", 153 | " 14,\n", 154 | " 15,\n", 155 | " 16,\n", 156 | " 17,\n", 157 | " 18,\n", 158 | " 19,\n", 159 | " 20,\n", 160 | " 21,\n", 161 | " 22,\n", 162 | " 23,\n", 163 | " 24,\n", 164 | " 25,\n", 165 | " 26,\n", 166 | " 27,\n", 167 | " 28,\n", 168 | " 29,\n", 169 | " 30,\n", 170 | " 31,\n", 171 | " 32,\n", 172 | " 33,\n", 173 | " 34,\n", 174 | " 35,\n", 175 | " 36,\n", 176 | " 37,\n", 177 | " 38,\n", 178 | " 39,\n", 179 | " 40,\n", 180 | " 41,\n", 181 | " 42,\n", 182 | " 43,\n", 183 | " 44,\n", 184 | " 45}" 185 | ] 186 | }, 187 | "execution_count": 21, 188 | "metadata": {}, 189 | "output_type": "execute_result" 190 | } 191 | ], 192 | "source": [ 193 | "set(train_labels)" 194 | ] 195 | }, 196 | { 197 | "cell_type": "code", 198 | "execution_count": 23, 199 | "metadata": {}, 200 | "outputs": [], 201 | "source": [ 202 | "def vectorize_sequences(sequences, dimension=10000):\n", 203 | " results = np.zeros((len(sequences), dimension))\n", 204 | " for i, sequence in enumerate(sequences):\n", 205 | " results[i, sequence] = 1.\n", 206 | " return results\n", 207 | "\n", 208 | "x_train = vectorize_sequences(train_data)\n", 209 | "x_test = vectorize_sequences(test_data)" 210 | ] 211 | }, 212 | { 213 | "cell_type": "code", 214 | "execution_count": 25, 215 | "metadata": {}, 216 | "outputs": [], 217 | "source": [ 218 | "def to_one_hot(labels, dimension=46):\n", 219 | " results = np.zeros((len(labels), dimension))\n", 220 | " for i, label in enumerate(labels):\n", 221 | " results[i, label] = 1.\n", 222 | " return results\n", 223 | "\n", 224 | "one_hot_train_labels = to_one_hot(train_labels)\n", 225 | "one_hot_test_labels = to_one_hot(test_labels)" 226 | ] 227 | }, 228 | { 229 | "cell_type": "code", 230 | "execution_count": 28, 231 | "metadata": {}, 232 | "outputs": [], 233 | "source": [ 234 | "from keras.utils.np_utils import to_categorical\n", 235 | "\n", 236 | "one_hot_train_labels = to_categorical(train_labels)\n", 237 | "one_hot_test_labels = to_categorical(test_labels)" 238 | ] 239 | }, 240 | { 241 | "cell_type": "code", 242 | "execution_count": 33, 243 | "metadata": {}, 244 | "outputs": [], 245 | "source": [ 246 | "from tensorflow.keras import models\n", 247 | "from tensorflow.keras import layers\n", 248 | "\n", 249 | "model = models.Sequential()\n", 250 | "model.add(layers.Dense(64, activation='relu', input_shape=(10000,)))\n", 251 | "model.add(layers.Dense(64, activation='relu'))\n", 252 | "model.add(layers.Dense(46, activation='softmax'))" 253 | ] 254 | }, 255 | { 256 | "cell_type": "code", 257 | "execution_count": 34, 258 | "metadata": {}, 259 | "outputs": [], 260 | "source": [ 261 | "model.compile(optimizer='rmsprop', \n", 262 | " loss='categorical_crossentropy',\n", 263 | " metrics=['accuracy'])" 264 | ] 265 | }, 266 | { 267 | "cell_type": "code", 268 | "execution_count": 35, 269 | "metadata": {}, 270 | "outputs": [], 271 | "source": [ 272 | "x_val = x_train[:1000]\n", 273 | "partial_x_train = x_train[1000:]\n", 274 | "\n", 275 | "y_val = one_hot_train_labels[:1000]\n", 276 | "partial_y_train = one_hot_train_labels[1000:]" 277 | ] 278 | }, 279 | { 280 | "cell_type": "code", 281 | "execution_count": 37, 282 | "metadata": {}, 283 | "outputs": [ 284 | { 285 | "name": "stdout", 286 | "output_type": "stream", 287 | "text": [ 288 | "Train on 7982 samples, validate on 1000 samples\n", 289 | "Epoch 1/20\n", 290 | "7982/7982 [==============================] - 2s 196us/sample - loss: 2.6633 - accuracy: 0.5105 - val_loss: 1.7390 - val_accuracy: 0.6480\n", 291 | "Epoch 2/20\n", 292 | "7982/7982 [==============================] - 1s 104us/sample - loss: 1.4231 - accuracy: 0.7085 - val_loss: 1.3055 - val_accuracy: 0.7070\n", 293 | "Epoch 3/20\n", 294 | "7982/7982 [==============================] - 1s 102us/sample - loss: 1.0480 - accuracy: 0.7749 - val_loss: 1.1276 - val_accuracy: 0.7590\n", 295 | "Epoch 4/20\n", 296 | "7982/7982 [==============================] - 1s 98us/sample - loss: 0.8195 - accuracy: 0.8281 - val_loss: 1.0259 - val_accuracy: 0.7880\n", 297 | "Epoch 5/20\n", 298 | "7982/7982 [==============================] - 1s 103us/sample - loss: 0.6535 - accuracy: 0.8668 - val_loss: 0.9700 - val_accuracy: 0.7970\n", 299 | "Epoch 6/20\n", 300 | "7982/7982 [==============================] - 1s 101us/sample - loss: 0.5200 - accuracy: 0.8941 - val_loss: 0.9243 - val_accuracy: 0.8110\n", 301 | "Epoch 7/20\n", 302 | "7982/7982 [==============================] - 1s 99us/sample - loss: 0.4180 - accuracy: 0.9178 - val_loss: 0.9302 - val_accuracy: 0.8080\n", 303 | "Epoch 8/20\n", 304 | "7982/7982 [==============================] - 1s 98us/sample - loss: 0.3431 - accuracy: 0.9303 - val_loss: 0.9046 - val_accuracy: 0.8140\n", 305 | "Epoch 9/20\n", 306 | "7982/7982 [==============================] - 1s 103us/sample - loss: 0.2836 - accuracy: 0.9377 - val_loss: 0.9374 - val_accuracy: 0.8050\n", 307 | "Epoch 10/20\n", 308 | "7982/7982 [==============================] - 1s 104us/sample - loss: 0.2418 - accuracy: 0.9448 - val_loss: 0.9528 - val_accuracy: 0.8030\n", 309 | "Epoch 11/20\n", 310 | "7982/7982 [==============================] - 1s 94us/sample - loss: 0.2103 - accuracy: 0.9508 - val_loss: 0.9497 - val_accuracy: 0.8080\n", 311 | "Epoch 12/20\n", 312 | "7982/7982 [==============================] - 1s 100us/sample - loss: 0.1863 - accuracy: 0.9513 - val_loss: 0.9254 - val_accuracy: 0.8190\n", 313 | "Epoch 13/20\n", 314 | "7982/7982 [==============================] - 1s 101us/sample - loss: 0.1654 - accuracy: 0.9536 - val_loss: 0.9455 - val_accuracy: 0.8140\n", 315 | "Epoch 14/20\n", 316 | "7982/7982 [==============================] - 1s 100us/sample - loss: 0.1517 - accuracy: 0.9543 - val_loss: 0.9650 - val_accuracy: 0.8130\n", 317 | "Epoch 15/20\n", 318 | "7982/7982 [==============================] - 1s 98us/sample - loss: 0.1449 - accuracy: 0.9557 - val_loss: 0.9590 - val_accuracy: 0.8140\n", 319 | "Epoch 16/20\n", 320 | "7982/7982 [==============================] - 1s 98us/sample - loss: 0.1360 - accuracy: 0.9564 - val_loss: 0.9922 - val_accuracy: 0.8110\n", 321 | "Epoch 17/20\n", 322 | "7982/7982 [==============================] - 1s 100us/sample - loss: 0.1257 - accuracy: 0.9583 - val_loss: 1.0079 - val_accuracy: 0.8110\n", 323 | "Epoch 18/20\n", 324 | "7982/7982 [==============================] - 1s 100us/sample - loss: 0.1176 - accuracy: 0.9574 - val_loss: 1.0533 - val_accuracy: 0.8090\n", 325 | "Epoch 19/20\n", 326 | "7982/7982 [==============================] - 1s 111us/sample - loss: 0.1148 - accuracy: 0.9599 - val_loss: 1.0692 - val_accuracy: 0.8090\n", 327 | "Epoch 20/20\n", 328 | "7982/7982 [==============================] - 1s 98us/sample - loss: 0.1135 - accuracy: 0.9582 - val_loss: 1.0668 - val_accuracy: 0.8200\n" 329 | ] 330 | } 331 | ], 332 | "source": [ 333 | "history = model.fit(partial_x_train, partial_y_train, epochs=20, batch_size=512, validation_data=(x_val, y_val))" 334 | ] 335 | }, 336 | { 337 | "cell_type": "code", 338 | "execution_count": 42, 339 | "metadata": {}, 340 | "outputs": [ 341 | { 342 | "data": { 343 | "image/png": "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\n", 344 | "text/plain": [ 345 | "
" 346 | ] 347 | }, 348 | "metadata": { 349 | "needs_background": "light" 350 | }, 351 | "output_type": "display_data" 352 | } 353 | ], 354 | "source": [ 355 | "loss = history.history['loss']\n", 356 | "val_loss = history.history['val_loss']\n", 357 | "\n", 358 | "epochs = range(1, len(loss)+1)\n", 359 | "\n", 360 | "plt.plot(epochs, loss, label='Training loss')\n", 361 | "plt.plot(epochs, val_loss, label='Validation loss')\n", 362 | "plt.title('Training and validation loss')\n", 363 | "plt.xlabel('Epochs')\n", 364 | "plt.ylabel('Loss')\n", 365 | "plt.legend()\n", 366 | "plt.show();" 367 | ] 368 | }, 369 | { 370 | "cell_type": "code", 371 | "execution_count": 43, 372 | "metadata": {}, 373 | "outputs": [ 374 | { 375 | "data": { 376 | "image/png": "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lVJBL2gTQYoOLaHUUcnKymLIkCEMGTKE9u3bEx8fX/G6tLS0TuuYMmUKGzdurLXM9OnT+eCDD+ojZFWDoO0sTs7IJdQp9GjTwt+hKBWQYmNjWb16NQAPPfQQLVq04M4776xUxhiDMQaHo/p9zlmzZh3yc2688cajD7aBuVwuQkICp3oNnEjrWUpGHj3bRhEWErQHRaoJeXj+epLTc+t1nf07RvPguccc9vs2b97MhAkTGDp0KL///juLFi3i4YcfZtWqVRQVFTFp0iQeeMAahDgxMZFXX32VAQMGEBcXx/XXX8/ChQuJjIzkyy+/pG3bttx///3ExcVx6623kpiYSGJiIt9//z05OTnMmjWLE044gYKCAq688kpSUlLo378/27dvZ+bMmQwZMqRSbA8++CALFiygqKiIxMREXnvtNUSETZs2cf3115OVlYXT6eSzzz4jISGBxx9/nNmzZ+NwOBg/fjyPPfZYRcxDhgxh165dJCYmsnnzZmbOnMlXX31FTk4ODoeDzz//nL/85S9kZ2fjcrl4/PHHGT9+PGAlwBdeeAERYdiwYbz44osMHTqUTZs2ERISwv79+xk+fHjFa18L2lowJSNXO4qV8pENGzZw2223kZycTHx8PE8++SQrVqwgKSmJRYsWkZycfNB7cnJyOOWUU0hKSuL444/nrbfeqnbdxhiWLVvGM888wyOPPALAK6+8Qvv27UlOTuaf//wnv//+e7XvveWWW1i+fDlr164lJyeHr7/+GoDJkydz2223kZSUxM8//0zbtm2ZP38+CxcuZNmyZSQlJXHHHXcc8nv//vvvfPbZZyxevJhmzZrxxRdfsGrVKr777jtuu+02AJKSknjqqaf4z3/+Q1JSEs899xwxMTGceOKJFfHMnj2biy66qMGOKoLyiGBvfgmZeSV6IZlqMo5kz92XevTowYgRIypez549mzfffBOXy0V6ejrJycn079+/0nuaNWvGuHHjABg+fDg//PBDtes+//zzK8ps374dgB9//JF77rkHgMGDB3PMMdVvj8WLF/PMM89QXFzM3r17GT58OMcddxx79+7l3HPPBawLsgC+++47rrnmGpo1s25h27p160N+7zPPPJNWrVoBVsK69957+fHHH3E4HOzYsYO9e/fy/fffM2nSpIr1lT9PnTqVl19+mfHjxzNr1izee++9Q35efQnKRKBXFCvlW82bN6+YTk1N5aWXXmLZsmW0bNmSyy+/vNrz3MPCwiqmnU4nLper2nWHh4cfskx1CgsLmTZtGqtWrSI+Pp7777//iK7KDgkJwePxABz0fu/v/e6775KTk8OqVasICQmhU6dOtX7eKaecwrRp01iyZAmhoaH07dv3sGM7UkHZNKRnDCnVcHJzc4mKiiI6OpqMjAy++eabev+ME088kblz5wKwdu3aapueioqKcDgcxMXFkZeXx6effgpAq1ataNOmDfPnzwesyr2wsJAxY8bw1ltvUVRUBMC+ffsASEhIYOXKlQB88sknNcaUk5ND27ZtCQkJYdGiRezcuROA0047jY8++qhifeXPAJdffjmXXXYZU6ZMOartcbiCNBHk0T46glbNww5dWCl1VIYNG0b//v3p27cvV155JSeeeGK9f8ZNN93Ezp076d+/Pw8//DD9+/cnJiamUpnY2Fiuuuoq+vfvz7hx4xg1alTFsg8++IDnnnuOQYMGkZiYSGZmJuPHj2fs2LGMGDGCIUOG8MILLwBw11138dJLLzFs2DD2799fY0xXXHEFP//8MwMHDmTOnDn06tULsJqu7r77bk4++WSGDBnCXXfdVfGeyy67jJycHCZNmlSfm+eQxLptcOAYMWKEWbFixVGtY+yLS+kQE8GsKSPrKSqlGl5KSgr9+vXzdxiNgsvlwuVyERERQWpqKmeeeSapqakBdQonwJw5c/jmm2/qdFptbar7bYjISmPMiOrKB9ZWqgclLjeb9+RzWt+2/g5FKVVP8vPzOf3003G5XBhjeP311wMuCdxwww189913FWcONaTA2lL1IHV3Pi6P0f4BpZqQli1bVrTbB6rXXnvNb58ddH0E2lGslFKVBWEiyCMi1EG3uOaHLqyUUkEgCBNBLn3aReF06PC9SikFQZYIjDGk7Mqlf0dtFlJKqXJBlQh25RaTXVim/QNK1YNTTz31oIvDXnzxRW644YZa39eihTXib3p6OhdeeGG1ZUaPHs2hThN/8cUXKSwsrHh99tlnk52dXZfQVRVBlQi0o1ip+jN58mTmzJlTad6cOXOYPHlynd7fsWPHWq/MPZSqiWDBggW0bNnyiNfX0IwxFUNV+FtQnT6akpEHQN/2OuqoamIW3gu71tbvOtsPhHFP1rj4wgsv5P7776e0tJSwsDC2b99Oeno6J510Evn5+UycOJH9+/dTVlbGo48+ysSJEyu9f/v27YwfP55169ZRVFTElClTSEpKom/fvhXDOoB1fv3y5cspKiriwgsv5OGHH+bll18mPT2dU089lbi4OJYsWUJCQgIrVqwgLi6O559/vmL00qlTp3Lrrbeyfft2xo0bR2JiIj///DPx8fF8+eWXFYPKlZs/fz6PPvoopaWlxMbG8sEHH9CuXTvy8/O56aabWLFiBSLCgw8+yAUXXMDXX3/Nfffdh9vtJi4ujsWLFx90f4YBAwbw1VdfAXDWWWcxatQoVq5cyYIFC3jyyScP+n4Ay5cv55ZbbqGgoIDw8HAWL17MOeecw8svv1wxvHZiYiLTp09n8ODBR/WnDqpEkJyeS+fWzYiKCPV3KEoFvNatWzNy5EgWLlzIxIkTmTNnDhdffDEiQkREBJ9//jnR0dHs3buX4447jgkTJtR4P93XXnuNyMhIUlJSWLNmDcOGDatY9thjj9G6dWvcbjenn346a9as4eabb+b5559nyZIlxMXFVVrXypUrmTVrFr/99hvGGEaNGsUpp5xCq1atSE1NZfbs2bzxxhtcfPHFfPrpp1x++eWV3p+YmMivv/6KiDBz5kyefvppnnvuOf71r38RExPD2rVWwt2/fz+ZmZn89a9/ZenSpXTr1q3SuEE1SU1N5Z133uG4446r8fv17duXSZMm8dFHH3HssceSm5tLs2bNuPbaa3n77bd58cUX2bRpE8XFxUedBCDIEkFKRi792muzkGqCatlz96Xy5qHyRPDmm28CVrPHfffdx9KlS3E4HOzcuZPdu3fTvn37atezdOlSbr75ZgAGDRrEoEGDKpbNnTuXGTNm4HK5yMjIIDk5udLyqn788UfOO++8ipFAzz//fH744QcmTJhAt27dKvamvYex9paWlsakSZPIyMigtLSUbt26Adaw1N5NYa1atWL+/PmcfPLJFWXqMlR1165dK5JATd9PROjQoQPHHnssANHRVr110UUX8a9//YtnnnmGt956i6uvvvqQn1cXQdNHUFjqYltWgfYPKFWPJk6cyOLFi1m1ahWFhYUMHz4csAZxy8zMZOXKlaxevZp27dod0ZDP27Zt49lnn2Xx4sWsWbOGc84554jWU658CGuoeRjrm266iWnTprF27Vpef/31ox6qGioPV+09VPXhfr/IyEjGjBnDl19+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\n", 377 | "text/plain": [ 378 | "
" 379 | ] 380 | }, 381 | "metadata": { 382 | "needs_background": "light" 383 | }, 384 | "output_type": "display_data" 385 | } 386 | ], 387 | "source": [ 388 | "accuracy = history.history['accuracy']\n", 389 | "val_accuracy = history.history['val_accuracy']\n", 390 | "\n", 391 | "plt.plot(epochs, accuracy, label='Training accuracy')\n", 392 | "plt.plot(epochs, val_accuracy, label='Validation accuracy')\n", 393 | "plt.title('Training and validation accuracy')\n", 394 | "plt.ylabel('Loss')\n", 395 | "plt.xlabel('Epochs')\n", 396 | "plt.legend()\n", 397 | "plt.show();" 398 | ] 399 | }, 400 | { 401 | "cell_type": "code", 402 | "execution_count": 44, 403 | "metadata": {}, 404 | "outputs": [ 405 | { 406 | "name": "stdout", 407 | "output_type": "stream", 408 | "text": [ 409 | "Train on 7982 samples, validate on 1000 samples\n", 410 | "Epoch 1/9\n", 411 | "7982/7982 [==============================] - 1s 161us/sample - loss: 2.6967 - accuracy: 0.5173 - val_loss: 1.8109 - val_accuracy: 0.6240\n", 412 | "Epoch 2/9\n", 413 | "7982/7982 [==============================] - 1s 102us/sample - loss: 1.4519 - accuracy: 0.7016 - val_loss: 1.3263 - val_accuracy: 0.7040\n", 414 | "Epoch 3/9\n", 415 | "7982/7982 [==============================] - 1s 98us/sample - loss: 1.0603 - accuracy: 0.7777 - val_loss: 1.1602 - val_accuracy: 0.7440\n", 416 | "Epoch 4/9\n", 417 | "7982/7982 [==============================] - 1s 100us/sample - loss: 0.8340 - accuracy: 0.8241 - val_loss: 1.0344 - val_accuracy: 0.7750\n", 418 | "Epoch 5/9\n", 419 | "7982/7982 [==============================] - 1s 104us/sample - loss: 0.6717 - accuracy: 0.8613 - val_loss: 0.9792 - val_accuracy: 0.7900\n", 420 | "Epoch 6/9\n", 421 | "7982/7982 [==============================] - 1s 104us/sample - loss: 0.5421 - accuracy: 0.8877 - val_loss: 0.9172 - val_accuracy: 0.8140\n", 422 | "Epoch 7/9\n", 423 | "7982/7982 [==============================] - 1s 97us/sample - loss: 0.4415 - accuracy: 0.9105 - val_loss: 0.8998 - val_accuracy: 0.8160\n", 424 | "Epoch 8/9\n", 425 | "7982/7982 [==============================] - 1s 104us/sample - loss: 0.3638 - accuracy: 0.9226 - val_loss: 0.9009 - val_accuracy: 0.8170\n", 426 | "Epoch 9/9\n", 427 | "7982/7982 [==============================] - 1s 104us/sample - loss: 0.3031 - accuracy: 0.9347 - val_loss: 0.8913 - val_accuracy: 0.8160\n" 428 | ] 429 | } 430 | ], 431 | "source": [ 432 | "model = models.Sequential()\n", 433 | "model.add(layers.Dense(64, activation='relu', input_shape=(10000, )))\n", 434 | "model.add(layers.Dense(64, activation='relu'))\n", 435 | "model.add(layers.Dense(46, activation='softmax'))\n", 436 | "\n", 437 | "model.compile(optimizer='rmsprop', \n", 438 | " loss='categorical_crossentropy',\n", 439 | " metrics=['accuracy'])\n", 440 | "\n", 441 | "history = model.fit(partial_x_train, partial_y_train, epochs=9, batch_size=512, validation_data=(x_val, y_val))" 442 | ] 443 | }, 444 | { 445 | "cell_type": "code", 446 | "execution_count": 46, 447 | "metadata": {}, 448 | "outputs": [ 449 | { 450 | "data": { 451 | "image/png": "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\n", 452 | "text/plain": [ 453 | "
" 454 | ] 455 | }, 456 | "metadata": { 457 | "needs_background": "light" 458 | }, 459 | "output_type": "display_data" 460 | } 461 | ], 462 | "source": [ 463 | "loss = history.history['loss']\n", 464 | "val_loss = history.history['val_loss']\n", 465 | "\n", 466 | "epochs = range(1, len(loss)+1)\n", 467 | "\n", 468 | "plt.plot(epochs, loss, label='Training loss')\n", 469 | "plt.plot(epochs, val_loss, label='Validation loss')\n", 470 | "plt.title('Training and validation loss')\n", 471 | "plt.xlabel('Epochs')\n", 472 | "plt.ylabel('Loss')\n", 473 | "plt.legend()\n", 474 | "plt.show();" 475 | ] 476 | }, 477 | { 478 | "cell_type": "code", 479 | "execution_count": 47, 480 | "metadata": {}, 481 | "outputs": [ 482 | { 483 | "data": { 484 | "image/png": "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\n", 485 | "text/plain": [ 486 | "
" 487 | ] 488 | }, 489 | "metadata": { 490 | "needs_background": "light" 491 | }, 492 | "output_type": "display_data" 493 | } 494 | ], 495 | "source": [ 496 | "accuracy=history.history['accuracy']\n", 497 | "val_accuracy=history.history['val_accuracy']\n", 498 | "\n", 499 | "plt.plot(epochs, accuracy, label='Training accuracy')\n", 500 | "plt.plot(epochs, val_accuracy, label='Validation accuracy')\n", 501 | "plt.title('Training and validation accuracy')\n", 502 | "plt.xlabel('Epochs')\n", 503 | "plt.ylabel('Accuracy')\n", 504 | "plt.legend()\n", 505 | "plt.show();" 506 | ] 507 | }, 508 | { 509 | "cell_type": "code", 510 | "execution_count": 48, 511 | "metadata": { 512 | "scrolled": false 513 | }, 514 | "outputs": [ 515 | { 516 | "name": "stdout", 517 | "output_type": "stream", 518 | "text": [ 519 | "\r", 520 | "2246/1 [====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================] - 0s 79us/sample - loss: 1.9388 - accuracy: 0.7836\n" 521 | ] 522 | }, 523 | { 524 | "data": { 525 | "text/plain": [ 526 | "[0.9814428174909692, 0.7836153]" 527 | ] 528 | }, 529 | "execution_count": 48, 530 | "metadata": {}, 531 | "output_type": "execute_result" 532 | } 533 | ], 534 | "source": [ 535 | "results = model.evaluate(x_test, one_hot_test_labels)\n", 536 | "results" 537 | ] 538 | }, 539 | { 540 | "cell_type": "code", 541 | "execution_count": 49, 542 | "metadata": {}, 543 | "outputs": [ 544 | { 545 | "data": { 546 | "text/plain": [ 547 | "0.18432769367764915" 548 | ] 549 | }, 550 | "execution_count": 49, 551 | "metadata": {}, 552 | "output_type": "execute_result" 553 | } 554 | ], 555 | "source": [ 556 | "import copy\n", 557 | "\n", 558 | "test_labels_copy = copy.copy(test_labels)\n", 559 | "np.random.shuffle(test_labels_copy)\n", 560 | "hits_array = np.array(test_labels) == np.array(test_labels_copy)\n", 561 | "np.sum(hits_array) / len(test_labels)" 562 | ] 563 | }, 564 | { 565 | "cell_type": "code", 566 | "execution_count": 50, 567 | "metadata": {}, 568 | "outputs": [], 569 | "source": [ 570 | "predictions = model.predict(x_test)" 571 | ] 572 | }, 573 | { 574 | "cell_type": "code", 575 | "execution_count": 53, 576 | "metadata": {}, 577 | "outputs": [ 578 | { 579 | "data": { 580 | "text/plain": [ 581 | "(46,)" 582 | ] 583 | }, 584 | "execution_count": 53, 585 | "metadata": {}, 586 | "output_type": "execute_result" 587 | } 588 | ], 589 | "source": [ 590 | "predictions[0].shape" 591 | ] 592 | }, 593 | { 594 | "cell_type": "code", 595 | "execution_count": 65, 596 | "metadata": {}, 597 | "outputs": [ 598 | { 599 | "data": { 600 | "text/plain": [ 601 | "0.9999999" 602 | ] 603 | }, 604 | "execution_count": 65, 605 | "metadata": {}, 606 | "output_type": "execute_result" 607 | } 608 | ], 609 | "source": [ 610 | "np.sum(predictions[0])" 611 | ] 612 | }, 613 | { 614 | "cell_type": "code", 615 | "execution_count": 66, 616 | "metadata": {}, 617 | "outputs": [ 618 | { 619 | "data": { 620 | "text/plain": [ 621 | "3" 622 | ] 623 | }, 624 | "execution_count": 66, 625 | "metadata": {}, 626 | "output_type": "execute_result" 627 | } 628 | ], 629 | "source": [ 630 | "np.argmax(predictions[0])" 631 | ] 632 | }, 633 | { 634 | "cell_type": "code", 635 | "execution_count": null, 636 | "metadata": {}, 637 | "outputs": [], 638 | "source": [] 639 | } 640 | ], 641 | "metadata": { 642 | "kernelspec": { 643 | "display_name": "Python 3", 644 | "language": "python", 645 | "name": "python3" 646 | }, 647 | "language_info": { 648 | "codemirror_mode": { 649 | "name": "ipython", 650 | "version": 3 651 | }, 652 | "file_extension": ".py", 653 | "mimetype": "text/x-python", 654 | "name": "python", 655 | "nbconvert_exporter": "python", 656 | "pygments_lexer": "ipython3", 657 | "version": "3.6.7" 658 | } 659 | }, 660 | "nbformat": 4, 661 | "nbformat_minor": 2 662 | } 663 | --------------------------------------------------------------------------------