{"nbformat":4,"nbformat_minor":0,"metadata":{"kernelspec":{"name":"python3","display_name":"Python...

1 answer below ยป
AI programming assignment. Need jupyter notebooks to see the assignment details.


{"nbformat":4,"nbformat_minor":0,"metadata":{"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.5.2"},"colab":{"name":"introduction-to-convnets.ipynb","provenance":[],"collapsed_sections":[]},"accelerator":"GPU"},"cells":[{"cell_type":"code","metadata":{"id":"5l62FySf_Lm0","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1605822802296,"user_tz":480,"elapsed":1899,"user":{"displayName":"Alex Thomo","photoUrl":"","userId":"08504196803322236588"}},"outputId":"f68b016a-d035-4ba2-8691-a1b4e3ed80e4"},"source":["import tensorflow as tf\n","from tensorflow import keras\n","\n","# Helper libraries\n","import numpy as np\n","import matplotlib.pyplot as plt\n","\n","print(tf.__version__)"],"execution_count":1,"outputs":[{"output_type":"stream","text":["2.3.0\n"],"name":"stdout"}]},{"cell_type":"markdown","metadata":{"id":"QtEOBrYMtBdf"},"source":["Modified by Alex Thomo to run on new TensorFlow."]},{"cell_type":"markdown","metadata":{"collapsed":true,"id":"dJnXlEGt_Lm7"},"source":["# Introduction to convnets\n","\n","This notebook contains the code sample found in Chapter 5, Section 1 of [Deep Learning with Python](https://www.manning.com/books/deep-learning-with-python?a_aid=keras&a_bid=76564dff). Note that the original text features far more content, in particular further explanations and figures: in this notebook, you will only find source code and related comments.\n","\n","----\n","\n","First, let's take a practical look at a very simple convnet example. We will use our convnet to classify MNIST digits, a task that you've already been \n","through in Chapter 2, using a densely-connected network (our test accuracy then was 97.8%). Even though our convnet will be very basic, its \n","accuracy will still blow out of the water that of the densely-connected model from Chapter 2.\n","\n","The following lines of code below show you what a basic convnet looks like. It's a stack of `Conv2D` and `MaxPooling2D` layers."]},{"cell_type":"code","metadata":{"id":"e9wJ6oym_Lm9","executionInfo":{"status":"ok","timestamp":1605822812518,"user_tz":480,"elapsed":5815,"user":{"displayName":"Alex Thomo","photoUrl":"","userId":"08504196803322236588"}}},"source":["model = keras.models.Sequential()\n","model.add(keras.layers.Conv2D(32, (3, 3), activation='relu'))\n","model.add(keras.layers.MaxPooling2D((2, 2)))\n","model.add(keras.layers.Conv2D(64, (3, 3), activation='relu'))\n","model.add(keras.layers.MaxPooling2D((2, 2)))\n","model.add(keras.layers.Conv2D(64, (3, 3), activation='relu'))\n","model.add(keras.layers.Flatten())\n","model.add(keras.layers.Dense(64, activation='relu'))\n","model.add(keras.layers.Dense(10, activation='softmax'))"],"execution_count":2,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"aGrXpwq3_LnF"},"source":["We are going to do 10-way classification, so we use a final layer with 10 outputs and a softmax activation."]},{"cell_type":"markdown","metadata":{"id":"pOO0w2FX_LnJ"},"source":["Now, let's train our convnet on the MNIST digits."]},{"cell_type":"code","metadata":{"id":"gPKZfJDk_LnJ","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1605822975008,"user_tz":480,"elapsed":914,"user":{"displayName":"Alex Thomo","photoUrl":"","userId":"08504196803322236588"}},"outputId":"7901d6be-3403-46d7-ecf9-f19faf38cf7a"},"source":["from keras.datasets import mnist\n","from keras.utils import to_categorical\n","\n","(train_images, train_labels), (test_images, test_labels) = mnist.load_data()\n","\n","print(train_images.shape)\n","train_images = train_images.reshape((60000, 28, 28, 1))\n","train_images = train_images.astype('float32') / 255\n","print(train_images.shape)\n","\n","test_images = test_images.reshape((10000, 28, 28, 1))\n","test_images = test_images.astype('float32') / 255\n","\n","train_labels = to_categorical(train_labels)\n","test_labels = to_categorical(test_labels)"],"execution_count":3,"outputs":[{"output_type":"stream","text":["Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\n","11493376/11490434 [==============================] - 0s 0us/step\n","(60000, 28, 28)\n","(60000, 28, 28, 1)\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"EsObBjdp_LnM","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1605823440663,"user_tz":480,"elapsed":4491,"user":{"displayName":"Alex Thomo","photoUrl":"","userId":"08504196803322236588"}},"outputId":"e973e327-248c-45fc-c275-967bda65718b"},"source":["model.compile(optimizer='rmsprop',\n"," loss='categorical_crossentropy',\n"," metrics=['accuracy'])\n","\n","model.fit(train_images, train_labels, epochs=5, batch_size=64)"],"execution_count":6,"outputs":[{"output_type":"stream","text":["938/938 [==============================] - 4s 4ms/step - loss: 0.0161 - accuracy: 0.9949\n"],"name":"stdout"},{"output_type":"execute_result","data":{"text/plain":[""]},"metadata":{"tags":[]},"execution_count":6}]},{"cell_type":"markdown","metadata":{"id":"veHRAiFm_LnO"},"source":["Let's evaluate the model on the test data:"]},{"cell_type":"code","metadata":{"id":"7z9891Bz_LnP","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1605823228170,"user_tz":480,"elapsed":1308,"user":{"displayName":"Alex Thomo","photoUrl":"","userId":"08504196803322236588"}},"outputId":"d42d20a7-3751-4fdf-ff5c-faa8d5d79fae"},"source":["test_loss, test_acc = model.evaluate(test_images, test_labels)"],"execution_count":5,"outputs":[{"output_type":"stream","text":["313/313 [==============================] - 1s 3ms/step - loss: 0.0343 - accuracy: 0.9911\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"SIF3U5TO_LnV","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1605812373783,"user_tz":480,"elapsed":266,"user":{"displayName":"Alex Thomo","photoUrl":"","userId":"08504196803322236588"}},"outputId":"56f81049-19af-4fe5-90df-98c0859501c3"},"source":["test_acc"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.9904999732971191"]},"metadata":{"tags":[]},"execution_count":6}]},{"cell_type":"markdown","metadata":{"id":"jak_EdQ0_LnZ"},"source":["While our densely-connected network from Chapter 2 had a test accuracy of 97.8%, our basic convnet has a test accuracy of 99.3%: we \n","decreased our error rate by 68% (relative). Not bad! "]},{"cell_type":"code","metadata":{"id":"oB8G83C-shjJ","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1605812398283,"user_tz":480,"elapsed":287,"user":{"displayName":"Alex Thomo","photoUrl":"","userId":"08504196803322236588"}},"outputId":"3cdd4dea-e68c-4476-bfb9-8988a77dceb8"},"source":["# Recall our model\n","# model = keras.models.Sequential()\n","# model.add(keras.layers.Conv2D(32, (3, 3), activation='relu'))\n","# model.add(keras.layers.MaxPooling2D((2, 2)))\n","# model.add(keras.layers.Conv2D(64, (3, 3), activation='relu'))\n","# model.add(keras.layers.MaxPooling2D((2, 2)))\n","# model.add(keras.layers.Conv2D(64, (3, 3), activation='relu'))\n","# model.add(keras.layers.Flatten())\n","# model.add(keras.layers.Dense(64, activation='relu'))\n","# model.add(keras.layers.Dense(10, activation='softmax'))\n","\n","model.summary()"],"execution_count":null,"outputs":[{"output_type":"stream","text":["Model: \"sequential\"\n","_________________________________________________________________\n","Layer (type) Output Shape Param # \n","=================================================================\n","conv2d (Conv2D) (None, 26, 26, 32) 320 \n","_________________________________________________________________\n","max_pooling2d (MaxPooling2D) (None, 13, 13, 32) 0 \n","_________________________________________________________________\n","conv2d_1 (Conv2D) (None, 11, 11, 64) 18496 \n","_________________________________________________________________\n","max_pooling2d_1 (MaxPooling2 (None, 5, 5, 64) 0 \n","_________________________________________________________________\n","conv2d_2 (Conv2D) (None, 3, 3, 64) 36928 \n","_________________________________________________________________\n","flatten (Flatten) (None, 576) 0 \n","_________________________________________________________________\n","dense (Dense) (None, 64) 36928 \n","_________________________________________________________________\n","dense_1 (Dense) (None, 10) 650 \n","=================================================================\n","Total params: 93,322\n","Trainable params: 93,322\n","Non-trainable params: 0\n","_________________________________________________________________\n"],"name":"stdout"}]},{"cell_type":"markdown","metadata":{"collapsed":true,"id":"HJPoZsHA_LnC"},"source":["You can see above that the output of every `Conv2D` and `MaxPooling2D` layer is a 3D tensor of shape `(height, width, channels)`. The width \n","and height dimensions tend to shrink as we go deeper in the network. The number of channels is controlled by the first argument passed to \n","the `Conv2D` layers (e.g. 32 or 64).\n","\n","The next step would be to feed our last output tensor (of shape `(3, 3, 64)`) into a densely-connected classifier network like those you are \n","already familiar with: a stack of `Dense` layers. These classifiers process vectors, which are 1D, whereas our current output is a 3D tensor. \n","So first, we will have to flatten our 3D outputs to 1D, and then add a few `Dense` layers on top:"]}]} {"nbformat":4,"nbformat_minor":0,"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.5.2"},"colab":{"name":"first-look-at-a-neural-network-keras.ipynb","provenance":[],"collapsed_sections":[]}},"cells":[{"cell_type":"code","metadata":{"id":"HAnXfIuguAXs","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1605812439632,"user_tz":480,"elapsed":2363,"user":{"displayName":"Alex Thomo","photoUrl":"","userId":"08504196803322236588"}},"outputId":"2ecb6b36-bd5a-46d6-b844-88314ae29b29"},"source":["import tensorflow as tf\n","from tensorflow import keras\n","\n","# Helper libraries\n","import numpy as np\n","import matplotlib.pyplot as plt\n","\n","print(tf.__version__)"],"execution_count":1,"outputs":[{"output_type":"stream","text":["2.3.0\n"],"name":"stdout"}]},{"cell_type":"markdown","metadata":{"id":"OLgDAmVquAXy"},"source":["# A first look at a neural network\n","\n","This notebook contains the code samples found in Chapter 2, Section 1 of [Deep Learning with Python](https://www.manning.com/books/deep-learning-with-python?a_aid=keras&a_bid=76564dff). Note that the original text features far more content, in particular further explanations and figures: in this notebook, you will only find source code and related comments.\n","\n","----\n","\n","We will now take a look at a first concrete example of a neural network, which makes use of the Python library Keras to learn to classify \n","hand-written digits. Unless you already have experience with Keras or similar libraries, you will not understand everything about this \n","first example right away. You probably haven't even installed Keras yet. Don't worry, that is perfectly fine. In the next chapter, we will \n","review each element in our example and explain them in detail. So don't worry if some steps seem arbitrary or look like magic to you! \n","We've got to start somewhere.\n","\n","The problem we are trying to solve here is to classify grayscale images of handwritten digits (28 pixels by 28 pixels), into their 10 \n","categories (0 to 9). The dataset we will use is the MNIST dataset, a classic dataset in the machine learning community, which has been \n","around for almost as long as the field itself and has been very intensively studied. It's a set of 60,000 training images, plus 10,000 test \n","images, assembled by the National Institute of Standards and Technology (the NIST in MNIST) in the 1980s. You can think of \"solving\" MNIST \n","as the \"Hello World\" of deep learning -- it's what you do to verify that your algorithms are working as expected. As you become a machine \n","learning practitioner, you will see MNIST come up over and over again, in scientific papers, blog posts, and so on."]},{"cell_type":"markdown","metadata":{"id":"gp3RbBo_uAXz"},"source":["The MNIST dataset comes pre-loaded in Keras, in the form of a set of four Numpy arrays:"]},{"cell_type":"code","metadata":{"id":"dXB2yCgtuAX1","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1605812439993,"user_tz":480,"elapsed":2717,"user":{"displayName":"Alex Thomo","photoUrl":"","userId":"08504196803322236588"}},"outputId":"f66567cb-eae3-49ac-af5e-30515188ed92"},"source":["from keras.datasets import mnist\n","\n","(train_images, train_labels), (test_images, test_labels) = mnist.load_data()"],"execution_count":2,"outputs":[{"output_type":"stream","text":["Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\n","11493376/11490434 [==============================] - 0s 0us/step\n"],"name":"stdout"}]},{"cell_type":"markdown","metadata":{"id":"kVmXluk2uAX5"},"source":["`train_images` and `train_labels` form the \"training set\", the data that the model will learn from. The model will then be tested on the \n","\"test set\", `test_images` and `test_labels`. Our images are encoded as Numpy arrays, and the labels are simply an array of digits, ranging \n","from 0 to 9. There is a one-to-one correspondence between the images and the labels.\n","\n","Let's have a look at the training data:"]},{"cell_type":"code","metadata":{"id":"6jeVMLgUwjUe","colab":{"base_uri":"https://localhost:8080/","height":578},"executionInfo":{"status":"ok","timestamp":1605812440885,"user_tz":480,"elapsed":3604,"user":{"displayName":"Alex Thomo","photoUrl":"","userId":"08504196803322236588"}},"outputId":"047df0f4-3fcc-4cb5-bb6a-59e5656925d9"},"source":["plt.figure(figsize=(10,10))\n","for i in range(25):\n"," plt.subplot(5,5,i+1)\n"," plt.xticks([])\n"," plt.yticks([])\n"," plt.imshow(train_images[i], cmap=plt.cm.binary)\n","plt.show()"],"execution_count":3,"outputs":[{"output_type":"display_data","data":{"image/png":"iVBORw0KGgoAAAANSUhEUgAAAj0AAAIxCAYAAACmUwl6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deaCNVd//8XUyD5kyj6cihKREoUzRaI4oQjJkLCSERCHNlKLBmKlBInemMvQYMo8ZGo5I5gwhwvn98+t7f9d1n73b+5w9nbPer78+677Wvs56uuxz1nOtKS4xMdEAAACkdVdFuwEAAACRQKcHAAA4gU4PAABwAp0eAADgBDo9AADACXR6AACAE9IHUzlv3ryJ8fHxYWoKkpKQkGCOHTsWF+r78iyjY8OGDccSExPzhfq+PM/I47uZtoTju8mzjA5/zzKoTk98fLxZv359aFqFgFSuXDks9+VZRkdcXNy+cNyX5xl5fDfTlnB8N3mW0eHvWTK8BQAAnECnBwAAOIFODwAAcAKdHgAA4AQ6PQAAwAl0egAAgBPo9AAAACfQ6QEAAE6g0wMAAJxApwcAADghqGMogFizYcMGq/z2229Lnjx5suS2bdta9Xr06CH5lltuCVPrAACxhDc9AADACXR6AACAE+j0AAAAJ6SpOT2XL1+2yqdOnQroc3oeyLlz5yTv3r3bqvfOO+9I7tu3r+QZM2ZY9TJnziy5f//+1rXnn38+oDbBt82bN0u+++67rWunT5+WHBcXJ3nKlClWvblz50o+ceJEqJuIKFq6dKnkRx991Lq2fPlyyaVLl45Ym+Dbiy++aJWHDBkiOTExUfKyZcusejVr1gxru5A28aYHAAA4gU4PAABwQswOb/3666+SL168aF1btWqV5O+++07yyZMnrXqffvppitpQrFgxq6yXOc+ZM0fy1VdfbdWrWLGiZF7Bhsb3338vuVmzZpK9Q5h6SCtHjhySM2bMaNU7duyY5NWrV0u+9dZbrXrez6UlK1assMrHjx+X3KRJk0g3J2TWrVsnuXLlylFsCXyZNGmS5FGjRlnX0qVLJ1lPWdDfbSC5eNMDAACcQKcHAAA4IWaGtzZt2mSV69SpIznQVVihoF+telcVZMuWTbJeFVK4cGGrXu7cuSWzQiRweuXcxo0brWutW7eWfPDgwYDuV6pUKcn9+vWzrj388MOSq1evLtn7zAcOHBjQz0qNvKth9u7dKzm1DW9duXJF8i+//CJZD5MbY68GQvTs27dP8oULF6LYEretXbvWKk+dOlWyHv7evn27z3u89tprkr1/C1euXCm5TZs2kqtWrRp8Y0OENz0AAMAJdHoAAIAT6PQAAAAnxMycnhIlSljlvHnzSg7FnB49hqjn3BhjzLfffitZL1HWY5AIv86dO0uePn16iu+nT2D/888/rWt6KwE9t2Xbtm0p/rmphT6F3hhjqlWrFqWWpNzvv/8uecKECZK93+EyZcpErE2wLVmyRPKYMWN81tPPaP78+ZILFCgQnoY5ZtasWZJ79eplXTt69KhkPf+tVq1aVj295Yc+ncBL30N/ZubMmYE3OMR40wMAAJxApwcAADghZoa38uTJY5VfeeUVyfPmzbOuVapUSXLPnj193vPmm2+WrF+t6qXnxtjL8fy9dkXo6SEo/Srb39Ji/ar1wQcftK7pV616+aT+N2OMPcSphzddWtKsl3mndk888USS/7vetgCRpXfLN8aYdu3aSdYHA3s988wzkr3THhCYS5cuWWW9S3nHjh0lnz171qqnh/0HDx4suUaNGlY9vc1AixYtJC9cuNBnm2Jld3Te9AAAACfQ6QEAAE6g0wMAAJwQM3N6vBo3bixZH0lhjH2q+datWyV/8MEHVj09v8M7j0crX768ZL3cFaG3efNmq3z33XdL1uP83hOV77//fskzZsyQ7D1K4aWXXpKs53nky5fPqlexYsUkf9ZXX31l1dPHYdxyyy0mtdPfl8OHD0exJaF18uTJJP/3evXqRbgl+Id3SwRfx8d4l0M/9thj4WqSM6ZNm2aVO3TokGS9+vXrW2W9nD1Hjhw+76/r+ZvHU6xYMclt27b1WS+SeNMDAACcQKcHAAA4IWaHtzR/r9ly5szp85oe7mrZsqXkq66irxdJe/bskTx69Gjrmt5tWw9BFSpUyKqnX41mz55dsnfJurccLH3SuzHGvPrqq5JDsUt0tC1YsEDy+fPno9iSlPEOzSUkJCRZr0iRIhFoDf6hd9398MMPrWvp0qWTnCtXLsmDBg0Kf8McoP87jhgxwrqmh/C7desm+cUXX7Tq+ftbq+lpBP7oLWC8Uwyihb/+AADACXR6AACAE1LF8JY/Q4cOlax39zXGXtmjd2T2zlhHaOndOo2xV9F5V0fp16lTpkyR7N29M1pDMfv374/Kzw2X3bt3+7xWrly5CLYkZbyHHB46dEhy6dKlJeuVnggPPbTYtGnTgD7To0cPyd7VuQjMsGHDrLIe0sqUKZN17Z577pH88ssvS86SJYvP+//111+SFy1aZF3bt2+fZL2Lvd7F2RhjGjVq5PP+0cKbHgAA4AQ6PQAAwAl0egAAgBNS/ZwevdPy+++/b13TO+jqk2Vr165t1dPzR/RyPu+uwAiM3sXYmP+dx6PNnTtXsj7hF5F32223RbsJ/3P69tdffy1Z7zLrnWOg6aW7emk0wkM/o23btvmsV7duXcm9evUKa5vSKr3z+Lhx46xr+u+VnsNjjDFffPFFQPf/8ccfJT/66KOS169f7/MzzZs3l9yvX7+Afk408aYHAAA4gU4PAABwQqof3tKuv/56qzxp0iTJ7du3l6yXRnvLZ8+elew9+M67SzCS1rt3b6uslzR6DxeMhSEt3b5grqU1J06cCPozW7ZsscpXrlyRvHTpUskHDhyw6l28eFHyxx9/nOTnjbGX1FatWlWyd0nu33//Ldm73QFCyztU0r9//yTr3XnnnVZZH0Dqbyd9+Ka/N0ePHvVZT++EbIwxR44ckTxx4kTJenqBMcbs2LFD8pkzZyR7p3roUw1at24t2d/B3rGCNz0AAMAJdHoAAIAT0tTwlleTJk0klyxZUnKfPn2senq35gEDBkjWu04aY8xzzz0nmYMMbfPnz5e8efNm65p+NdqwYcOItSlQun3e17g333xzpJsTVnq4yPt/a+fOnSV7Dyz0xTu8pYcDM2TIIDlr1qxWvbJly0p+/PHHJd96661WPT0cWqBAAclFixa16ukdu8uUKRNI0xGE5Oy6fN1111ll/fyQPBkzZpScP39+65oewoqPj7euBboSWf9d07vlHzx40KqXN29eyQ0aNAjo3rGCNz0AAMAJdHoAAIAT6PQAAAAnpOk5PVqFChUkz54927o2b948ye3atZP83nvvWfX27t0refHixSFuYeqm51ToZZXG2GPPDz/8cMTapHlPfh86dGiS9fSuscYYM2rUqHA1KSr0Lq4lSpSwrq1atSro+xUvXtwq61OVb7zxRsm333570Pf2mjBhgmQ9f8GY/50/gtDSJ3OnS5cuoM/4WsqO5NM7jHu3DnjwwQclHz9+3Lqm57Tq76j+e2eMMXny5JHcsmVLyd45PfpaasObHgAA4AQ6PQAAwAnODG9p3kMI27RpI/mJJ56QrHd5NcaYFStWSF62bJlk7y7DsGXOnFlyJHe11kNaL774onVt9OjRkosVKybZu51B9uzZw9S66Hv22Wej3YSg6B2evR566KEItsQNeuuJhQsXBvQZvSVF6dKlQ94m/JfeodwY/zs0B0r/jVu+fLlk75L31DyczJseAADgBDo9AADACc4Mb23dulXyp59+al1bt26dZO+QlqZXo9x1110hbF3aFsldmPUreT2ENWvWLKueXsHw+eefh79hCKvGjRtHuwlpTv369SX/8ccfPuvpYRZ9qChSH70K199O9azeAgAAiHF0egAAgBPo9AAAACekqTk9u3fvtspjx46VrOdtHDp0KKD7pU9v/+fRy62vuor+oqZP19bZGHvn0LfeeiukP/f111+3ysOHD5d86tQpya1bt7bqTZkyJaTtANKaY8eOSfa3C3O3bt0kp+UtHlxwzz33RLsJYcdfbgAA4AQ6PQAAwAmpcnhLD09Nnz5d8ttvv23VS0hICPret912m+TnnnvOuhbJpdepjb/ljfp59ezZ07r2+OOPS77mmmskr1mzxqo3depUyVu2bJG8f/9+q54+RPPee++V3LVrV///ByBV04cB33HHHVFsSerVvn17q6yHqS9fvuzzc9WqVQtbmxBZge68nZrxpgcAADiBTg8AAHBCzA5vHT58WPKOHTusa927d5e8a9euoO/tPaitX79+kvVOvazQCo1Lly5Jfuedd6xrenfsnDlzSt6zZ09A9/a+Wq9Tp47kYcOGBdVOpF5XrlyJdhNSJb2D+eLFi61repg6U6ZMkr1DxQUKFAhT6xBpP/30U7SbEHb8VQcAAE6g0wMAAJxApwcAADghqnN6Tpw4Iblz587WNT3WnNxxxurVq0vu06ePZO+uk1myZEnW/fFfeplwlSpVrGvff/+9z8/p5ex6HpdX3rx5JesTfkO9wzNSp9WrV0tu165d9BqSypw8eVKyv+9f4cKFJb/22mthbROi584775Ts3Vk/reBNDwAAcAKdHgAA4ISwD2+tXbvWKo8ePVryunXrJB84cCBZ98+aNatk726/ekflbNmyJev+CEzRokUl68NdjTFm/PjxkvWBoP706tXLKj/55JOSS5UqlZwmAgD8qFCh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\n","text/plain":["
"]},"metadata":{"tags":[]}}]},{"cell_type":"code","metadata":{"id":"AmY7XIJnuAX6","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1605812440885,"user_tz":480,"elapsed":3599,"user":{"displayName":"Alex Thomo","photoUrl":"","userId":"08504196803322236588"}},"outputId":"4f42057b-afbe-4937-cc65-b7c56652b19b"},"source":["train_images.shape"],"execution_count":4,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(60000, 28, 28)"]},"metadata":{"tags":[]},"execution_count":4}]},{"cell_type":"code","metadata":{"id":"_COZI0zZuAX8","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1605812440886,"user_tz":480,"elapsed":3595,"user":{"displayName":"Alex Thomo","photoUrl":"","userId":"08504196803322236588"}},"outputId":"a4fd72a5-b1c3-45f0-b989-46642336dcec"},"source":["len(train_labels)"],"execution_count":5,"outputs":[{"output_type":"execute_result","data":{"text/plain":["60000"]},"metadata":{"tags":[]},"execution_count":5}]},{"cell_type":"code","metadata":{"id":"MNevOEkouAX_","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1605812440886,"user_tz":480,"elapsed":3588,"user":{"displayName":"Alex Thomo","photoUrl":"","userId":"08504196803322236588"}},"outputId":"108f01a4-0163-4fa8-9a20-4fb2cfb5c309"},"source":["train_labels"],"execution_count":6,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([5, 0, 4, ..., 5, 6, 8], dtype=uint8)"]},"metadata":{"tags":[]},"execution_count":6}]},{"cell_type":"markdown","metadata":{"id":"-7Lxf63puAYB"},"source":["Let's have a look at the test data:"]},{"cell_type":"code","metadata":{"id":"_H1C9T7puAYC","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1605812440887,"user_tz":480,"elapsed":3585,"user":{"displayName":"Alex Thomo","photoUrl":"","userId":"08504196803322236588"}},"outputId":"aa6d8562-1c28-4dce-9d8a-5dd0753a9169"},"source":["test_images.shape"],"execution_count":7,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(10000, 28, 28)"]},"metadata":{"tags":[]},"execution_count":7}]},{"cell_type":"code","metadata":{"id":"KO_klX0RuAYF","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1605812440887,"user_tz":480,"elapsed":3581,"user":{"displayName":"Alex Thomo","photoUrl":"","userId":"08504196803322236588"}},"outputId":"af4656be-26b8-4dce-d622-399b3712463c"},"source":["len(test_labels)"],"execution_count":8,"outputs":[{"output_type":"execute_result","data":{"text/plain":["10000"]},"metadata":{"tags":[]},"execution_count":8}]},{"cell_type":"code","metadata":{"id":"dzruk1ifuAYI","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1605812440888,"user_tz":480,"elapsed":3577,"user":{"displayName":"Alex Thomo","photoUrl":"","userId":"08504196803322236588"}},"outputId":"186133a7-1d23-4ffa-ac91-e66975643f83"},"source":["test_labels"],"execution_count":9,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([7, 2, 1, ..., 4, 5, 6], dtype=uint8)"]},"metadata":{"tags":[]}
Answered Same DayNov 22, 2021

Answer To: {"nbformat":4,"nbformat_minor":0,"metadata":{"kernelspec":{"name":"python3","display_name":"Python.....

Vicky answered on Nov 24 2021
158 Votes
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions ยป

Submit New Assignment

Copy and Paste Your Assignment Here