├── MNIST_Final_Assignment.ipynb └── README.md /MNIST_Final_Assignment.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "name": "MNIST_Final_Assignment.ipynb", 7 | "provenance": [], 8 | "collapsed_sections": [], 9 | "include_colab_link": true 10 | }, 11 | "kernelspec": { 12 | "display_name": "Python 3", 13 | "language": "python", 14 | "name": "python3" 15 | }, 16 | "language_info": { 17 | "codemirror_mode": { 18 | "name": "ipython", 19 | "version": 3 20 | }, 21 | "file_extension": ".py", 22 | "mimetype": "text/x-python", 23 | "name": "python", 24 | "nbconvert_exporter": "python", 25 | "pygments_lexer": "ipython3", 26 | "version": "3.8.3rc1" 27 | } 28 | }, 29 | "cells": [ 30 | { 31 | "cell_type": "markdown", 32 | "metadata": { 33 | "id": "view-in-github", 34 | "colab_type": "text" 35 | }, 36 | "source": [ 37 | "\"Open" 38 | ] 39 | }, 40 | { 41 | "cell_type": "code", 42 | "metadata": { 43 | "colab_type": "code", 44 | "id": "j2tdpWOifz_S", 45 | "outputId": "fb800cc3-8a08-4d9f-f80a-422ff22a9c51", 46 | "colab": { 47 | "base_uri": "https://localhost:8080/", 48 | "height": 34 49 | } 50 | }, 51 | "source": [ 52 | "# TensorFlow and tf.keras\n", 53 | "import tensorflow as tf\n", 54 | "from tensorflow import keras\n", 55 | "\n", 56 | "# Helper libraries\n", 57 | "import numpy as np\n", 58 | "import matplotlib.pyplot as plt\n", 59 | "\n", 60 | "print(tf.__version__)" 61 | ], 62 | "execution_count": 0, 63 | "outputs": [ 64 | { 65 | "output_type": "stream", 66 | "text": [ 67 | "2.2.0\n" 68 | ], 69 | "name": "stdout" 70 | } 71 | ] 72 | }, 73 | { 74 | "cell_type": "code", 75 | "metadata": { 76 | "colab_type": "code", 77 | "id": "hwJ1WdbYf7tr", 78 | "colab": {} 79 | }, 80 | "source": [ 81 | "#Importing the dataset :\n", 82 | "mnist = tf.keras.datasets.mnist" 83 | ], 84 | "execution_count": 0, 85 | "outputs": [] 86 | }, 87 | { 88 | "cell_type": "code", 89 | "metadata": { 90 | "colab_type": "code", 91 | "id": "UjPM0rNYgEPX", 92 | "colab": {} 93 | }, 94 | "source": [ 95 | "#Splitting the data\n", 96 | "(x_train, y_train), (x_test, y_test) = mnist.load_data()" 97 | ], 98 | "execution_count": 0, 99 | "outputs": [] 100 | }, 101 | { 102 | "cell_type": "code", 103 | "metadata": { 104 | "colab_type": "code", 105 | "id": "UeBFsxHdhxLB", 106 | "outputId": "231c0568-449a-4ac9-b6bb-400714e88299", 107 | "colab": { 108 | "base_uri": "https://localhost:8080/", 109 | "height": 85 110 | } 111 | }, 112 | "source": [ 113 | "#Checking dimensions :\n", 114 | "print(\"Shape of x_train\",x_train.shape)\n", 115 | "print(\"Shape of x_test\",x_test.shape)\n", 116 | "print(\"Shape of y_train\",y_train.shape)\n", 117 | "print(\"Shape of y_test\",y_test.shape)" 118 | ], 119 | "execution_count": 0, 120 | "outputs": [ 121 | { 122 | "output_type": "stream", 123 | "text": [ 124 | "Shape of x_train (60000, 28, 28)\n", 125 | "Shape of x_test (10000, 28, 28)\n", 126 | "Shape of y_train (60000,)\n", 127 | "Shape of y_test (10000,)\n" 128 | ], 129 | "name": "stdout" 130 | } 131 | ] 132 | }, 133 | { 134 | "cell_type": "code", 135 | "metadata": { 136 | "colab_type": "code", 137 | "id": "J7gTqP4Sgzf1", 138 | "outputId": "c683a42b-ee98-4606-d70d-cc708c8a799e", 139 | "colab": { 140 | "base_uri": "https://localhost:8080/", 141 | "height": 850 142 | } 143 | }, 144 | "source": [ 145 | "#Normalize using utils\n", 146 | "x_train = tf.keras.utils.normalize(x_train,axis=1)\n", 147 | "x_test = tf.keras.utils.normalize(x_test,axis=1)\n", 148 | "print(\"Normalised x_train\",x_train)" 149 | ], 150 | "execution_count": 0, 151 | "outputs": [ 152 | { 153 | "output_type": "stream", 154 | "text": [ 155 | "Normalised x_train [[[0. 0. 0. ... 0. 0. 0.]\n", 156 | " [0. 0. 0. ... 0. 0. 0.]\n", 157 | " [0. 0. 0. ... 0. 0. 0.]\n", 158 | " ...\n", 159 | " [0. 0. 0. ... 0. 0. 0.]\n", 160 | " [0. 0. 0. ... 0. 0. 0.]\n", 161 | " [0. 0. 0. ... 0. 0. 0.]]\n", 162 | "\n", 163 | " [[0. 0. 0. ... 0. 0. 0.]\n", 164 | " [0. 0. 0. ... 0. 0. 0.]\n", 165 | " [0. 0. 0. ... 0. 0. 0.]\n", 166 | " ...\n", 167 | " [0. 0. 0. ... 0. 0. 0.]\n", 168 | " [0. 0. 0. ... 0. 0. 0.]\n", 169 | " [0. 0. 0. ... 0. 0. 0.]]\n", 170 | "\n", 171 | " [[0. 0. 0. ... 0. 0. 0.]\n", 172 | " [0. 0. 0. ... 0. 0. 0.]\n", 173 | " [0. 0. 0. ... 0. 0. 0.]\n", 174 | " ...\n", 175 | " [0. 0. 0. ... 0. 0. 0.]\n", 176 | " [0. 0. 0. ... 0. 0. 0.]\n", 177 | " [0. 0. 0. ... 0. 0. 0.]]\n", 178 | "\n", 179 | " ...\n", 180 | "\n", 181 | " [[0. 0. 0. ... 0. 0. 0.]\n", 182 | " [0. 0. 0. ... 0. 0. 0.]\n", 183 | " [0. 0. 0. ... 0. 0. 0.]\n", 184 | " ...\n", 185 | " [0. 0. 0. ... 0. 0. 0.]\n", 186 | " [0. 0. 0. ... 0. 0. 0.]\n", 187 | " [0. 0. 0. ... 0. 0. 0.]]\n", 188 | "\n", 189 | " [[0. 0. 0. ... 0. 0. 0.]\n", 190 | " [0. 0. 0. ... 0. 0. 0.]\n", 191 | " [0. 0. 0. ... 0. 0. 0.]\n", 192 | " ...\n", 193 | " [0. 0. 0. ... 0. 0. 0.]\n", 194 | " [0. 0. 0. ... 0. 0. 0.]\n", 195 | " [0. 0. 0. ... 0. 0. 0.]]\n", 196 | "\n", 197 | " [[0. 0. 0. ... 0. 0. 0.]\n", 198 | " [0. 0. 0. ... 0. 0. 0.]\n", 199 | " [0. 0. 0. ... 0. 0. 0.]\n", 200 | " ...\n", 201 | " [0. 0. 0. ... 0. 0. 0.]\n", 202 | " [0. 0. 0. ... 0. 0. 0.]\n", 203 | " [0. 0. 0. ... 0. 0. 0.]]]\n" 204 | ], 205 | "name": "stdout" 206 | } 207 | ] 208 | }, 209 | { 210 | "cell_type": "code", 211 | "metadata": { 212 | "colab_type": "code", 213 | "id": "C95e64Zng9Ux", 214 | "outputId": "ad94d124-3784-4758-81a1-ebf8344d9017", 215 | "colab": { 216 | "base_uri": "https://localhost:8080/", 217 | "height": 265 218 | } 219 | }, 220 | "source": [ 221 | "#Checking the dataset\n", 222 | "plt.figure()\n", 223 | "plt.imshow(x_train[1])\n", 224 | "plt.colorbar()\n", 225 | "plt.grid(False)\n", 226 | "plt.show()" 227 | ], 228 | "execution_count": 0, 229 | "outputs": [ 230 | { 231 | "output_type": "display_data", 232 | "data": { 233 | "image/png": "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\n", 234 | "text/plain": [ 235 | "
" 236 | ] 237 | }, 238 | "metadata": { 239 | "tags": [], 240 | "needs_background": "light" 241 | } 242 | } 243 | ] 244 | }, 245 | { 246 | "cell_type": "code", 247 | "metadata": { 248 | "colab_type": "code", 249 | "id": "SWXrmLQHjZSU", 250 | "outputId": "58c29d19-0c98-4d4f-f6cb-7eea09f3e46e", 251 | "colab": { 252 | "base_uri": "https://localhost:8080/", 253 | "height": 282 254 | } 255 | }, 256 | "source": [ 257 | "plt.imshow(x_train[1].reshape(28,28),cmap='gist_gray')" 258 | ], 259 | "execution_count": 0, 260 | "outputs": [ 261 | { 262 | "output_type": "execute_result", 263 | "data": { 264 | "text/plain": [ 265 | "" 266 | ] 267 | }, 268 | "metadata": { 269 | "tags": [] 270 | }, 271 | "execution_count": 15 272 | }, 273 | { 274 | "output_type": "display_data", 275 | "data": { 276 | "image/png": "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\n", 277 | "text/plain": [ 278 | "
" 279 | ] 280 | }, 281 | "metadata": { 282 | "tags": [], 283 | "needs_background": "light" 284 | } 285 | } 286 | ] 287 | }, 288 | { 289 | "cell_type": "code", 290 | "metadata": { 291 | "colab_type": "code", 292 | "id": "Iz9KPt0gjlB6", 293 | "outputId": "4dfc6ea1-19b6-4075-a41e-61f167502e56", 294 | "colab": { 295 | "base_uri": "https://localhost:8080/", 296 | "height": 672 297 | } 298 | }, 299 | "source": [ 300 | "plt.figure(figsize=(20,20))\n", 301 | "for i in range(15):\n", 302 | " plt.subplot(5,5,i+1)\n", 303 | " plt.xticks([])\n", 304 | " plt.yticks([])\n", 305 | " plt.grid(False)\n", 306 | " plt.imshow(x_train[i])\n", 307 | "plt.show()" 308 | ], 309 | "execution_count": 0, 310 | "outputs": [ 311 | { 312 | "output_type": "display_data", 313 | "data": { 314 | "image/png": "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\n", 315 | "text/plain": [ 316 | "
" 317 | ] 318 | }, 319 | "metadata": { 320 | "tags": [] 321 | } 322 | } 323 | ] 324 | }, 325 | { 326 | "cell_type": "code", 327 | "metadata": { 328 | "colab_type": "code", 329 | "id": "gpD-1xjNj8_g", 330 | "outputId": "fc9c63e1-8578-43d5-8f89-6ddb2e1aacbe", 331 | "colab": { 332 | "base_uri": "https://localhost:8080/", 333 | "height": 672 334 | } 335 | }, 336 | "source": [ 337 | "plt.figure(figsize=(20,20))\n", 338 | "for i in range(15):\n", 339 | " plt.subplot(5,5,i+1)\n", 340 | " plt.xticks([])\n", 341 | " plt.yticks([])\n", 342 | " plt.grid(False)\n", 343 | " plt.imshow(x_train[i],cmap = plt.cm.binary)\n", 344 | "plt.show()" 345 | ], 346 | "execution_count": 0, 347 | "outputs": [ 348 | { 349 | "output_type": "display_data", 350 | "data": { 351 | "image/png": "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\n", 352 | "text/plain": [ 353 | "
" 354 | ] 355 | }, 356 | "metadata": { 357 | "tags": [] 358 | } 359 | } 360 | ] 361 | }, 362 | { 363 | "cell_type": "code", 364 | "metadata": { 365 | "colab_type": "code", 366 | "id": "d82JqAMIkIbq", 367 | "colab": {} 368 | }, 369 | "source": [ 370 | "#Creating the model\n", 371 | "\n", 372 | "from tensorflow.keras.callbacks import EarlyStopping\n", 373 | "\n", 374 | "model = tf.keras.models.Sequential()\n", 375 | "model.add(tf.keras.layers.Flatten())\n", 376 | "model.add(tf.keras.layers.Dense(128,activation=tf.nn.relu))\n", 377 | "model.add(tf.keras.layers.Dense(128,activation=tf.nn.relu))\n", 378 | "model.add(tf.keras.layers.Dense(128,activation=tf.nn.relu))\n", 379 | "model.add(tf.keras.layers.Dense(128,activation=tf.nn.relu))\n", 380 | "model.add(tf.keras.layers.Dense(128,activation=tf.nn.relu))\n", 381 | "model.add(tf.keras.layers.Dense(10,activation=tf.nn.softmax))\n", 382 | "\n", 383 | "model.compile(optimizer = 'adam',loss = 'sparse_categorical_crossentropy',metrics = 'accuracy')\n", 384 | "\n", 385 | "callback=EarlyStopping(monitor='val_loss',patience = 3,verbose=0,mode='min')" 386 | ], 387 | "execution_count": 0, 388 | "outputs": [] 389 | }, 390 | { 391 | "cell_type": "code", 392 | "metadata": { 393 | "colab_type": "code", 394 | "id": "M3DfBWvvmbNb", 395 | "outputId": "c814c23f-4dd0-415f-cc95-66be11218a8f", 396 | "colab": { 397 | "base_uri": "https://localhost:8080/", 398 | "height": 326 399 | } 400 | }, 401 | "source": [ 402 | "model.fit(x_train,y_train,validation_data=(x_test,y_test),batch_size=128,callbacks=[callback],epochs=10)" 403 | ], 404 | "execution_count": 0, 405 | "outputs": [ 406 | { 407 | "output_type": "stream", 408 | "text": [ 409 | "Epoch 1/10\n", 410 | "469/469 [==============================] - 3s 5ms/step - loss: 0.3499 - accuracy: 0.8921 - val_loss: 0.1486 - val_accuracy: 0.9551\n", 411 | "Epoch 2/10\n", 412 | "469/469 [==============================] - 2s 5ms/step - loss: 0.1284 - accuracy: 0.9594 - val_loss: 0.1158 - val_accuracy: 0.9663\n", 413 | "Epoch 3/10\n", 414 | "469/469 [==============================] - 2s 5ms/step - loss: 0.0877 - accuracy: 0.9724 - val_loss: 0.1083 - val_accuracy: 0.9658\n", 415 | "Epoch 4/10\n", 416 | "469/469 [==============================] - 2s 5ms/step - loss: 0.0675 - accuracy: 0.9788 - val_loss: 0.1007 - val_accuracy: 0.9704\n", 417 | "Epoch 5/10\n", 418 | "469/469 [==============================] - 2s 5ms/step - loss: 0.0566 - accuracy: 0.9817 - val_loss: 0.0943 - val_accuracy: 0.9723\n", 419 | "Epoch 6/10\n", 420 | "469/469 [==============================] - 2s 5ms/step - loss: 0.0432 - accuracy: 0.9862 - val_loss: 0.1198 - val_accuracy: 0.9671\n", 421 | "Epoch 7/10\n", 422 | "469/469 [==============================] - 2s 5ms/step - loss: 0.0362 - accuracy: 0.9882 - val_loss: 0.1224 - val_accuracy: 0.9672\n", 423 | "Epoch 8/10\n", 424 | "469/469 [==============================] - 2s 5ms/step - loss: 0.0338 - accuracy: 0.9885 - val_loss: 0.1019 - val_accuracy: 0.9722\n" 425 | ], 426 | "name": "stdout" 427 | }, 428 | { 429 | "output_type": "execute_result", 430 | "data": { 431 | "text/plain": [ 432 | "" 433 | ] 434 | }, 435 | "metadata": { 436 | "tags": [] 437 | }, 438 | "execution_count": 22 439 | } 440 | ] 441 | }, 442 | { 443 | "cell_type": "code", 444 | "metadata": { 445 | "colab_type": "code", 446 | "id": "Sqd089kBm97o", 447 | "outputId": "f8c7074a-205b-49f3-d73a-088dc28140c6", 448 | "colab": { 449 | "base_uri": "https://localhost:8080/", 450 | "height": 170 451 | } 452 | }, 453 | "source": [ 454 | "import pandas as pd\n", 455 | "loss = pd.DataFrame(model.history.history)\n", 456 | "loss.head" 457 | ], 458 | "execution_count": 0, 459 | "outputs": [ 460 | { 461 | "output_type": "execute_result", 462 | "data": { 463 | "text/plain": [ 464 | "" 473 | ] 474 | }, 475 | "metadata": { 476 | "tags": [] 477 | }, 478 | "execution_count": 23 479 | } 480 | ] 481 | }, 482 | { 483 | "cell_type": "code", 484 | "metadata": { 485 | "colab_type": "code", 486 | "id": "HQSt_EG-n8pk", 487 | "outputId": "2ff56201-1c2a-4c1b-9fb6-baacf28dddb7", 488 | "colab": { 489 | "base_uri": "https://localhost:8080/", 490 | "height": 282 491 | } 492 | }, 493 | "source": [ 494 | "#Checking the loss\n", 495 | "loss.plot()" 496 | ], 497 | "execution_count": 0, 498 | "outputs": [ 499 | { 500 | "output_type": "execute_result", 501 | "data": { 502 | "text/plain": [ 503 | "" 504 | ] 505 | }, 506 | "metadata": { 507 | "tags": [] 508 | }, 509 | "execution_count": 24 510 | }, 511 | { 512 | "output_type": "display_data", 513 | "data": { 514 | "image/png": "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ulJKZQkNdKWUyhIa6EoplSU00JVSKktooCulMlJ+fn6Hy3bt2sW4ceN6sJr0oIGulFJZQm9bVEq18fO3fs62A4mPn5KI0f1Gc+uUWztcfttttzFs2DC++93vArB48WIcDgerV6/m4MGDBINBlixZwqxZs47odX0+H9deey3l5eU4HA5+9atfcfbZZ7N582bmzZtHIBAgEonw7LPPUlpaysUXX0xFRQXhcJgf/ehHsW+mZgINdKVUWpgzZw433nhjLNCffvppXnrpJa6//noKCwupqanhtNNOY+bMmS0G4OrK0qVLERHee+89tm3bxnnnncf27dt54IEHuOGGG7j00ksJBAKEw2FeeOEFSktL+fvf/w5Y471kEg10pVQbnR1Jd5dJkyaxb98+qqqqqK6upm/fvgwaNIibbrqJNWvWYLPZqKysZO/evQwaNCjh7b7++ussXLgQgNGjR3P88cezfft2Pv/5z/PjH/+YiooKvv71rzNy5EjGjx/P9773PW699VZmzJjBGWec0V1vt1voOXSlVNqYPXs2zzzzDH/605+YM2cOTz75JNXV1WzYsIFNmzYxcODANkPiHq1vfvObrFq1ipycHC644AJeeeUVTjzxRDZu3Mj48eO54447uPvuu5PyWj1Fj9CVUmljzpw5XHXVVdTU1PCf//yHp59+mgEDBuB0Olm9ejUff/zxEW/zjDPO4Mknn+Scc85h+/bt7N69m1GjRrFz505OOOEErr/+enbv3s27777L6NGj6devH5dddhl9+vRh+fLl3fAuu48GulIqbYwdO5b6+nqGDBnC4MGDufTSS7nwwgsZP348ZWVljB49+oi3+Z3vfIdrr72W8ePH43A4ePTRR3G73Tz99NM8/vjjOJ1OBg0axKJFi1i/fj0/+MEPsNlsOJ1O7r///m54l91Hh89VSgE6fG46OtLhc/UculJKZQk95aKUyljvvfcel19+eYs2t9vNm2++maKKUksDXSmVscaPH8+mTZtSXUba0FMuSimVJTTQlVIqS2igK6VUltBAV0qpLKGBrpTKSJ2Nh95bJRToIjJdRD4QkR0iclsn/S4SESMi7d70rpRS2SYUCqW6hJgub1sUETuwFJgGVADrRWSVMWZLq34FwA1A77wBVKks8ulPfoJ/a3LHQ3ePGc2gRYs6XJ7M8dC9Xi+zZs1qd70VK1Zw3333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\n", 515 | "text/plain": [ 516 | "
" 517 | ] 518 | }, 519 | "metadata": { 520 | "tags": [], 521 | "needs_background": "light" 522 | } 523 | } 524 | ] 525 | }, 526 | { 527 | "cell_type": "code", 528 | "metadata": { 529 | "colab_type": "code", 530 | "id": "wKAtaZWKn_OS", 531 | "outputId": "95b1e773-a951-4b92-8bb9-d5c7b8170335", 532 | "colab": { 533 | "base_uri": "https://localhost:8080/", 534 | "height": 51 535 | } 536 | }, 537 | "source": [ 538 | "model.evaluate(x_test, y_test, verbose=2)" 539 | ], 540 | "execution_count": 0, 541 | "outputs": [ 542 | { 543 | "output_type": "stream", 544 | "text": [ 545 | "313/313 - 0s - loss: 0.1019 - accuracy: 0.9722\n" 546 | ], 547 | "name": "stdout" 548 | }, 549 | { 550 | "output_type": "execute_result", 551 | "data": { 552 | "text/plain": [ 553 | "[0.10192269086837769, 0.9721999764442444]" 554 | ] 555 | }, 556 | "metadata": { 557 | "tags": [] 558 | }, 559 | "execution_count": 25 560 | } 561 | ] 562 | }, 563 | { 564 | "cell_type": "code", 565 | "metadata": { 566 | "colab_type": "code", 567 | "id": "rXMOXwckoZfi", 568 | "outputId": "7485f7e7-dde1-41ac-970d-5ee2cefdd2e9", 569 | "colab": { 570 | "base_uri": "https://localhost:8080/", 571 | "height": 156 572 | } 573 | }, 574 | "source": [ 575 | "predictions = model(x_train[:1]).numpy()\n", 576 | "loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)\n", 577 | "loss_fn(y_train[:1], predictions).numpy()" 578 | ], 579 | "execution_count": 0, 580 | "outputs": [ 581 | { 582 | "output_type": "stream", 583 | "text": [ 584 | "WARNING:tensorflow:Layer flatten_1 is casting an input tensor from dtype float64 to the layer's dtype of float32, which is new behavior in TensorFlow 2. The layer has dtype float32 because it's dtype defaults to floatx.\n", 585 | "\n", 586 | "If you intended to run this layer in float32, you can safely ignore this warning. If in doubt, this warning is likely only an issue if you are porting a TensorFlow 1.X model to TensorFlow 2.\n", 587 | "\n", 588 | "To change all layers to have dtype float64 by default, call `tf.keras.backend.set_floatx('float64')`. To change just this layer, pass dtype='float64' to the layer constructor. If you are the author of this layer, you can disable autocasting by passing autocast=False to the base Layer constructor.\n", 589 | "\n" 590 | ], 591 | "name": "stdout" 592 | }, 593 | { 594 | "output_type": "execute_result", 595 | "data": { 596 | "text/plain": [ 597 | "1.4611508" 598 | ] 599 | }, 600 | "metadata": { 601 | "tags": [] 602 | }, 603 | "execution_count": 28 604 | } 605 | ] 606 | }, 607 | { 608 | "cell_type": "code", 609 | "metadata": { 610 | "colab_type": "code", 611 | "id": "AeZr-7_to3pL", 612 | "outputId": "47a051bf-20b0-4e40-cf81-f1dccf94c424", 613 | "colab": { 614 | "base_uri": "https://localhost:8080/", 615 | "height": 34 616 | } 617 | }, 618 | "source": [ 619 | "#Checking the model output \n", 620 | "\n", 621 | "pred = model.predict(x_test)\n", 622 | "\n", 623 | "import numpy as np\n", 624 | "print(np.argmax(pred[123]))" 625 | ], 626 | "execution_count": 0, 627 | "outputs": [ 628 | { 629 | "output_type": "stream", 630 | "text": [ 631 | "6\n" 632 | ], 633 | "name": "stdout" 634 | } 635 | ] 636 | }, 637 | { 638 | "cell_type": "code", 639 | "metadata": { 640 | "colab_type": "code", 641 | "id": "Fox0ppkbpizg", 642 | "outputId": "f85af16d-e277-49e9-8ea6-ec68527cf2dc", 643 | "colab": { 644 | "base_uri": "https://localhost:8080/", 645 | "height": 265 646 | } 647 | }, 648 | "source": [ 649 | "plt.imshow(x_test[123])\n", 650 | "plt.show()" 651 | ], 652 | "execution_count": 0, 653 | "outputs": [ 654 | { 655 | "output_type": "display_data", 656 | "data": { 657 | "image/png": "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\n", 658 | "text/plain": [ 659 | "
" 660 | ] 661 | }, 662 | "metadata": { 663 | "tags": [], 664 | "needs_background": "light" 665 | } 666 | } 667 | ] 668 | }, 669 | { 670 | "cell_type": "code", 671 | "metadata": { 672 | "colab_type": "code", 673 | "id": "iVYObvanppC3", 674 | "outputId": "170c8fa6-4098-4005-db71-c79c4f632c8f", 675 | "colab": { 676 | "base_uri": "https://localhost:8080/", 677 | "height": 105 678 | } 679 | }, 680 | "source": [ 681 | "#Saving the model\n", 682 | "model.save(\"num_reader.model\")" 683 | ], 684 | "execution_count": 0, 685 | "outputs": [ 686 | { 687 | "output_type": "stream", 688 | "text": [ 689 | "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/resource_variable_ops.py:1817: calling BaseResourceVariable.__init__ (from tensorflow.python.ops.resource_variable_ops) with constraint is deprecated and will be removed in a future version.\n", 690 | "Instructions for updating:\n", 691 | "If using Keras pass *_constraint arguments to layers.\n", 692 | "INFO:tensorflow:Assets written to: num_reader.model/assets\n" 693 | ], 694 | "name": "stdout" 695 | } 696 | ] 697 | }, 698 | { 699 | "cell_type": "code", 700 | "metadata": { 701 | "colab_type": "code", 702 | "id": "e1S9NTvwp8zo", 703 | "colab": {} 704 | }, 705 | "source": [ 706 | "" 707 | ], 708 | "execution_count": 0, 709 | "outputs": [] 710 | } 711 | ] 712 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # First step towards Neural networks 2 | --------------------------------------------------------------------------------