-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathClassifAI_ 3 - HW
More file actions
1 lines (1 loc) · 76.1 KB
/
ClassifAI_ 3 - HW
File metadata and controls
1 lines (1 loc) · 76.1 KB
1
{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"name":"ClassifAI: 3 - HW","provenance":[{"file_id":"1ts8rFBACfwWqaAy9sfQ9qOYpAmUE_MUf","timestamp":1653863974654}],"collapsed_sections":[]},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"}},"cells":[{"cell_type":"markdown","metadata":{"id":"OwxXsgyjt_-M"},"source":["#Using the Number MNIST Dataset\n"]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"R1rHq2Y1uKZ2","executionInfo":{"status":"ok","timestamp":1660527020234,"user_tz":420,"elapsed":18019,"user":{"displayName":"Leo Huang","userId":"16558901284710269921"}},"outputId":"d9df7876-d28c-4b77-d2d6-d2eca59f49ec"},"source":["!pip install tensorflow\n","!pip3 install keras-visualizer"],"execution_count":1,"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Requirement already satisfied: tensorflow in /usr/local/lib/python3.7/dist-packages (2.8.2+zzzcolab20220719082949)\n","Requirement already satisfied: flatbuffers>=1.12 in /usr/local/lib/python3.7/dist-packages (from tensorflow) (2.0)\n","Requirement already satisfied: tensorflow-estimator<2.9,>=2.8 in /usr/local/lib/python3.7/dist-packages (from tensorflow) (2.8.0)\n","Requirement already satisfied: absl-py>=0.4.0 in /usr/local/lib/python3.7/dist-packages (from tensorflow) (1.2.0)\n","Requirement already satisfied: google-pasta>=0.1.1 in /usr/local/lib/python3.7/dist-packages (from tensorflow) (0.2.0)\n","Requirement already satisfied: keras-preprocessing>=1.1.1 in /usr/local/lib/python3.7/dist-packages (from tensorflow) (1.1.2)\n","Requirement already satisfied: tensorflow-io-gcs-filesystem>=0.23.1 in /usr/local/lib/python3.7/dist-packages (from tensorflow) (0.26.0)\n","Requirement already satisfied: grpcio<2.0,>=1.24.3 in /usr/local/lib/python3.7/dist-packages (from tensorflow) (1.47.0)\n","Requirement already satisfied: wrapt>=1.11.0 in /usr/local/lib/python3.7/dist-packages (from tensorflow) (1.14.1)\n","Requirement already satisfied: gast>=0.2.1 in /usr/local/lib/python3.7/dist-packages (from tensorflow) (0.5.3)\n","Requirement already satisfied: typing-extensions>=3.6.6 in /usr/local/lib/python3.7/dist-packages (from tensorflow) (4.1.1)\n","Requirement already satisfied: six>=1.12.0 in /usr/local/lib/python3.7/dist-packages (from tensorflow) (1.15.0)\n","Requirement already satisfied: h5py>=2.9.0 in /usr/local/lib/python3.7/dist-packages (from tensorflow) (3.1.0)\n","Requirement already satisfied: libclang>=9.0.1 in /usr/local/lib/python3.7/dist-packages (from tensorflow) (14.0.6)\n","Requirement already satisfied: setuptools in /usr/local/lib/python3.7/dist-packages (from tensorflow) (57.4.0)\n","Requirement already satisfied: termcolor>=1.1.0 in /usr/local/lib/python3.7/dist-packages (from tensorflow) (1.1.0)\n","Requirement already satisfied: tensorboard<2.9,>=2.8 in /usr/local/lib/python3.7/dist-packages (from tensorflow) (2.8.0)\n","Requirement already satisfied: keras<2.9,>=2.8.0rc0 in /usr/local/lib/python3.7/dist-packages (from tensorflow) (2.8.0)\n","Requirement already satisfied: numpy>=1.20 in /usr/local/lib/python3.7/dist-packages (from tensorflow) (1.21.6)\n","Requirement already satisfied: protobuf<3.20,>=3.9.2 in /usr/local/lib/python3.7/dist-packages (from tensorflow) (3.17.3)\n","Requirement already satisfied: opt-einsum>=2.3.2 in /usr/local/lib/python3.7/dist-packages (from tensorflow) (3.3.0)\n","Requirement already satisfied: astunparse>=1.6.0 in /usr/local/lib/python3.7/dist-packages (from tensorflow) (1.6.3)\n","Requirement already satisfied: wheel<1.0,>=0.23.0 in /usr/local/lib/python3.7/dist-packages (from astunparse>=1.6.0->tensorflow) (0.37.1)\n","Requirement already satisfied: cached-property in /usr/local/lib/python3.7/dist-packages (from h5py>=2.9.0->tensorflow) (1.5.2)\n","Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in /usr/local/lib/python3.7/dist-packages (from tensorboard<2.9,>=2.8->tensorflow) (1.8.1)\n","Requirement already satisfied: google-auth<3,>=1.6.3 in /usr/local/lib/python3.7/dist-packages (from tensorboard<2.9,>=2.8->tensorflow) (1.35.0)\n","Requirement already satisfied: tensorboard-data-server<0.7.0,>=0.6.0 in /usr/local/lib/python3.7/dist-packages (from tensorboard<2.9,>=2.8->tensorflow) (0.6.1)\n","Requirement already satisfied: werkzeug>=0.11.15 in /usr/local/lib/python3.7/dist-packages (from tensorboard<2.9,>=2.8->tensorflow) (1.0.1)\n","Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in /usr/local/lib/python3.7/dist-packages (from tensorboard<2.9,>=2.8->tensorflow) (0.4.6)\n","Requirement already satisfied: markdown>=2.6.8 in /usr/local/lib/python3.7/dist-packages (from tensorboard<2.9,>=2.8->tensorflow) (3.4.1)\n","Requirement already satisfied: requests<3,>=2.21.0 in /usr/local/lib/python3.7/dist-packages (from tensorboard<2.9,>=2.8->tensorflow) (2.23.0)\n","Requirement already satisfied: cachetools<5.0,>=2.0.0 in /usr/local/lib/python3.7/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.9,>=2.8->tensorflow) (4.2.4)\n","Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/local/lib/python3.7/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.9,>=2.8->tensorflow) (0.2.8)\n","Requirement already satisfied: rsa<5,>=3.1.4 in /usr/local/lib/python3.7/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.9,>=2.8->tensorflow) (4.9)\n","Requirement already satisfied: requests-oauthlib>=0.7.0 in /usr/local/lib/python3.7/dist-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard<2.9,>=2.8->tensorflow) (1.3.1)\n","Requirement already satisfied: importlib-metadata>=4.4 in /usr/local/lib/python3.7/dist-packages (from markdown>=2.6.8->tensorboard<2.9,>=2.8->tensorflow) (4.12.0)\n","Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.7/dist-packages (from importlib-metadata>=4.4->markdown>=2.6.8->tensorboard<2.9,>=2.8->tensorflow) (3.8.1)\n","Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in /usr/local/lib/python3.7/dist-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard<2.9,>=2.8->tensorflow) (0.4.8)\n","Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests<3,>=2.21.0->tensorboard<2.9,>=2.8->tensorflow) (2022.6.15)\n","Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests<3,>=2.21.0->tensorboard<2.9,>=2.8->tensorflow) (3.0.4)\n","Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests<3,>=2.21.0->tensorboard<2.9,>=2.8->tensorflow) (2.10)\n","Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests<3,>=2.21.0->tensorboard<2.9,>=2.8->tensorflow) (1.24.3)\n","Requirement already satisfied: oauthlib>=3.0.0 in /usr/local/lib/python3.7/dist-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard<2.9,>=2.8->tensorflow) (3.2.0)\n","Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Collecting keras-visualizer\n"," Downloading keras_visualizer-2.4-py3-none-any.whl (5.4 kB)\n","Installing collected packages: keras-visualizer\n","Successfully installed keras-visualizer-2.4\n"]}]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"22w5BO4XtGPK","executionInfo":{"status":"ok","timestamp":1660527023595,"user_tz":420,"elapsed":3368,"user":{"displayName":"Leo Huang","userId":"16558901284710269921"}},"outputId":"a84733c9-182a-4792-cd97-9bafe4839ad3"},"source":["import tensorflow as tf\n","from tensorflow import keras\n","import numpy as np\n","import matplotlib.pyplot as plt\n","from keras import models \n","from keras.layers import Dense, Conv2D, MaxPooling2D, Flatten, Activation \n","from keras_visualizer import visualizer \n","print(tf.version)"],"execution_count":2,"outputs":[{"output_type":"stream","name":"stdout","text":["<module 'tensorflow._api.v2.version' from '/usr/local/lib/python3.7/dist-packages/tensorflow/_api/v2/version/__init__.py'>\n"]}]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"D4-GrWoItVTU","executionInfo":{"status":"ok","timestamp":1660527024340,"user_tz":420,"elapsed":758,"user":{"displayName":"Leo Huang","userId":"16558901284710269921"}},"outputId":"c130a9b5-84c3-4684-eabc-04931eaae108"},"source":["mnist = keras.datasets.mnist \n","\n","(train_images, train_labels), (test_images, test_labels) = mnist.load_data() \n","\n","train_images.shape"],"execution_count":3,"outputs":[{"output_type":"stream","name":"stdout","text":["Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\n","11493376/11490434 [==============================] - 0s 0us/step\n","11501568/11490434 [==============================] - 0s 0us/step\n"]},{"output_type":"execute_result","data":{"text/plain":["(60000, 28, 28)"]},"metadata":{},"execution_count":3}]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":265},"id":"_luKY6uqtNFU","executionInfo":{"status":"ok","timestamp":1660527024612,"user_tz":420,"elapsed":274,"user":{"displayName":"Leo Huang","userId":"16558901284710269921"}},"outputId":"5b59925f-46be-49bd-af51-d81f3ceca0b0"},"source":["plt.figure()\n","plt.imshow(train_images[1], cmap ='gray')\n","plt.colorbar()\n","plt.grid(False)\n","plt.show()"],"execution_count":4,"outputs":[{"output_type":"display_data","data":{"text/plain":["<Figure size 432x288 with 2 Axes>"],"image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"code","metadata":{"id":"-kn9BXXxtigE","executionInfo":{"status":"ok","timestamp":1660527024800,"user_tz":420,"elapsed":192,"user":{"displayName":"Leo Huang","userId":"16558901284710269921"}}},"source":["# class_names = [YOUR CODE HERE]\n","class_names = ['0','1','2','3','4','5','6','7','8','9']\n","\n","train_images = train_images / 255 #to standardize the numbers (the pixel intensity is from 0 to 255)\n","\n","\n","test_images = test_images / 255 #HINT: preprocessing?"],"execution_count":5,"outputs":[]},{"cell_type":"code","metadata":{"id":"stxoC1XeuRM-","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1660527092085,"user_tz":420,"elapsed":67289,"user":{"displayName":"Leo Huang","userId":"16558901284710269921"}},"outputId":"b1259730-8a18-45e3-b1ea-6d76fa34eb89"},"source":["#Create model with layers\n","model = keras.Sequential([\n"," keras.layers.Flatten(input_shape=(28, 28)), # input layer (1)\n"," keras.layers.Dense(128, activation='relu'), # hidden layer (2)\n"," keras.layers.Dense(128, activation='relu'),\n"," keras.layers.Dense(10, activation='softmax') # output layer (3)\n","])\n","\n","#Compile mode1\n","model.compile(optimizer='adam',\n"," loss='sparse_categorical_crossentropy',\n"," metrics=['accuracy'])\n","\n","#Fit model\n","model.fit(train_images, train_labels, epochs=10)\n","\n","#use \n","test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=1)\n","print('Test accuracy:', test_acc) \n","# to check for accuracy"],"execution_count":6,"outputs":[{"output_type":"stream","name":"stdout","text":["Epoch 1/10\n","1875/1875 [==============================] - 13s 6ms/step - loss: 0.2292 - accuracy: 0.9322\n","Epoch 2/10\n","1875/1875 [==============================] - 8s 4ms/step - loss: 0.0968 - accuracy: 0.9706\n","Epoch 3/10\n","1875/1875 [==============================] - 6s 3ms/step - loss: 0.0675 - accuracy: 0.9787\n","Epoch 4/10\n","1875/1875 [==============================] - 6s 3ms/step - loss: 0.0514 - accuracy: 0.9832\n","Epoch 5/10\n","1875/1875 [==============================] - 6s 3ms/step - loss: 0.0409 - accuracy: 0.9866\n","Epoch 6/10\n","1875/1875 [==============================] - 6s 3ms/step - loss: 0.0329 - accuracy: 0.9895\n","Epoch 7/10\n","1875/1875 [==============================] - 6s 3ms/step - loss: 0.0286 - accuracy: 0.9901\n","Epoch 8/10\n","1875/1875 [==============================] - 6s 3ms/step - loss: 0.0248 - accuracy: 0.9916\n","Epoch 9/10\n","1875/1875 [==============================] - 6s 3ms/step - loss: 0.0196 - accuracy: 0.9933\n","Epoch 10/10\n","1875/1875 [==============================] - 6s 3ms/step - loss: 0.0184 - accuracy: 0.9935\n","313/313 [==============================] - 1s 2ms/step - loss: 0.0944 - accuracy: 0.9804\n","Test accuracy: 0.980400025844574\n"]}]},{"cell_type":"code","source":["train_loss, train_acc = model.evaluate(train_images, train_labels, verbose=1)\n","print(\"Train accuracy:\", train_acc)\n","test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=1)\n","print('Test accuracy:', test_acc) \n","\n","i = 1\n","\n","while i < 10:\n"," img = train_images[i]\n"," print(train_labels[i])\n","\n"," plt.figure()\n"," plt.imshow(img, cmap=plt.cm.binary)\n"," plt.show()\n"," \n"," prediction = model.predict(np.array([img]))\n"," print(prediction)\n"," i += 1\n","\n"," "],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":1000},"id":"BU4jKcajZJWJ","executionInfo":{"status":"ok","timestamp":1653939682124,"user_tz":420,"elapsed":13354,"user":{"displayName":"Leo Huang","userId":"16558901284710269921"}},"outputId":"011ef330-8c7a-444e-c8df-49431f50e0f0"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["1875/1875 [==============================] - 5s 3ms/step - loss: 0.0172 - accuracy: 0.9946\n","Train accuracy: 0.9945999979972839\n","313/313 [==============================] - 1s 2ms/step - loss: 0.1062 - accuracy: 0.9762\n","Test accuracy: 0.9761999845504761\n","0\n"]},{"output_type":"display_data","data":{"text/plain":["<Figure size 432x288 with 1 Axes>"],"image/png":"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\n"},"metadata":{"needs_background":"light"}},{"output_type":"stream","name":"stdout","text":["[[1.0000000e+00 4.5521634e-14 3.2402344e-08 5.6933750e-12 3.2730453e-18\n"," 1.7268857e-12 7.4671442e-09 4.0259750e-11 5.2181255e-14 3.8771649e-08]]\n","4\n"]},{"output_type":"display_data","data":{"text/plain":["<Figure size 432x288 with 1 Axes>"],"image/png":"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\n"},"metadata":{"needs_background":"light"}},{"output_type":"stream","name":"stdout","text":["[[2.8973860e-14 2.3388048e-11 7.9760270e-12 3.9529916e-13 1.0000000e+00\n"," 4.8777351e-14 2.7208406e-14 1.9613038e-10 5.1330394e-12 2.9189055e-08]]\n","1\n"]},{"output_type":"display_data","data":{"text/plain":["<Figure size 432x288 with 1 Axes>"],"image/png":"iVBORw0KGgoAAAANSUhEUgAAAPsAAAD4CAYAAAAq5pAIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAMl0lEQVR4nO3db6hc9Z3H8c9n77Y+MEVjM1yjDaYWMchC0zLExWrNKhvUB8b6QJoHNYo0BaOkUGSDK9YHPojL2lJhKaSbkHTpWgqtGkS0MdQ/eVK8StZEZVdXbmhiTOaiEvvErrfffXBPym28c+7NnHPmzM33/YJhZs535vy+nNxPzsw5M/NzRAjA2e9v2m4AwHAQdiAJwg4kQdiBJAg7kMTfDnOwZcuWxcqVK4c5JJDK5OSkpqamPFetUtht3yDpJ5LGJP17RGwre/zKlSs1MTFRZUgAJbrdbt/awC/jbY9J+jdJN0q6QtIG21cMuj4Azarynn2NpHci4t2I+JOkX0paX09bAOpWJewXS/rDrPtHimV/xfYm2xO2J3q9XoXhAFTR+NH4iNgeEd2I6HY6naaHA9BHlbAflbRi1v0vFcsAjKAqYX9F0mW2v2z785K+LWlPPW0BqNvAp94i4lPb90h6TjOn3nZGxBu1dQagVpXOs0fEM5KeqakXAA3i47JAEoQdSIKwA0kQdiAJwg4kQdiBJAg7kARhB5Ig7EAShB1IgrADSRB2IAnCDiRB2IEkCDuQBGEHkiDsQBKEHUiCsANJEHYgCcIOJEHYgSQIO5AEYQeSIOxAEoQdSIKwA0kQdiAJwg4kUWkWV6BJDz/8cGn9wQcfLK1HRN/aCy+8UPrca6+9trS+GFUKu+1JSR9Lmpb0aUR062gKQP3q2LP/Q0RM1bAeAA3iPTuQRNWwh6Tf2n7V9qa5HmB7k+0J2xO9Xq/icAAGVTXsV0fE1yXdKGmz7W+e/oCI2B4R3YjodjqdisMBGFSlsEfE0eL6hKQnJK2poykA9Rs47LbPtf2FU7clrZN0qK7GANSrytH4cUlP2D61nv+MiGdr6Qop7Nq1q7S+bdu20vrY2FhpfXp6um+t+LtNZeCwR8S7kr5aYy8AGsSpNyAJwg4kQdiBJAg7kARhB5LgK65ozeHDh0vrn3zyyZA6yYE9O5AEYQeSIOxAEoQdSIKwA0kQdiAJwg4kwXl2NOr555/vW3vssccqrXvVqlWl9aeffrpvbXx8vNLYixF7diAJwg4kQdiBJAg7kARhB5Ig7EAShB1IgvPsqGT//v2l9TvuuKNv7eTJk5XGvu+++0rrl1xySaX1n23YswNJEHYgCcIOJEHYgSQIO5AEYQeSIOxAEpxnRyW7d+8urb/33nsDr3vt2rWl9dtvv33gdWc0757d9k7bJ2wfmrXsAtt7bb9dXC9ttk0AVS3kZfwuSTectmyrpH0RcZmkfcV9ACNs3rBHxEuSPjht8XpJp16/7ZZ0S819AajZoAfoxiPiWHH7fUl9f9DL9ibbE7Yner3egMMBqKry0fiICElRUt8eEd2I6HY6narDARjQoGE/bnu5JBXXJ+prCUATBg37Hkkbi9sbJT1VTzsAmjLveXbbj0taK2mZ7SOSfihpm6Rf2b5L0mFJtzXZJNozNTVVWt+xY0dpfWxsrG/t/PPPL33uAw88UFrHmZk37BGxoU/p+pp7AdAgPi4LJEHYgSQIO5AEYQeSIOxAEnzFNbnJycnS+q233trY2Pfee29p/brrrmts7IzYswNJEHYgCcIOJEHYgSQIO5AEYQeSIOxAEpxnT+7ZZ58trR88eLDS+q+/vv+XI7ds2VJp3Tgz7NmBJAg7kARhB5Ig7EAShB1IgrADSRB2IAnOs5/lnnzyydL61q3V5uS85pprSutlUzqfd955lcbGmWHPDiRB2IEkCDuQBGEHkiDsQBKEHUiCsANJcJ79LFD22+9N/u67JF166aWl9fHx8UbHx8LNu2e3vdP2CduHZi17yPZR2weKy03NtgmgqoW8jN8l6YY5lv84IlYXl2fqbQtA3eYNe0S8JOmDIfQCoEFVDtDdY/v14mX+0n4Psr3J9oTtiV6vV2E4AFUMGvafSvqKpNWSjkl6tN8DI2J7RHQjotvpdAYcDkBVA4U9Io5HxHRE/FnSzyStqbctAHUbKOy2l8+6+y1Jh/o9FsBomPc8u+3HJa2VtMz2EUk/lLTW9mpJIWlS0vca7BHzeOSRR/rWxsbGGh276vfhMTzzhj0iNsyxeEcDvQBoEB+XBZIg7EAShB1IgrADSRB2IAm+4roIHDhwoLT+3HPPNTb2zTffXFq//PLLGxsb9WLPDiRB2IEkCDuQBGEHkiDsQBKEHUiCsANJcJ59EVi3bl1p/cMPPxx43VdeeWVpvWzKZSwu7NmBJAg7kARhB5Ig7EAShB1IgrADSRB2IAnOsy8CU1NTpfUqPxe9efPm0vqSJUsGXjdGC3t2IAnCDiRB2IEkCDuQBGEHkiDsQBKEHUiC8+wj4M477yytR0RpfXp6euCxr7rqqoGfi8Vl3j277RW2f2f7Tdtv2N5SLL/A9l7bbxfXS5tvF8CgFvIy/lNJP4iIKyT9vaTNtq+QtFXSvoi4TNK+4j6AETVv2CPiWES8Vtz+WNJbki6WtF7Sqd8s2i3plqaaBFDdGR2gs71S0tck/V7SeEQcK0rvSxrv85xNtidsT/R6vQqtAqhiwWG3vUTSryV9PyJOzq7FzBGkOY8iRcT2iOhGRLfT6VRqFsDgFhR225/TTNB/ERG/KRYft728qC+XdKKZFgHUYd5Tb7YtaYektyLiR7NKeyRtlLStuH6qkQ7PAvNNubx3797S+sw/QX/nnHNO39rdd99d+tzx8TnffeEstJDz7N+Q9B1JB22f+qu9XzMh/5XtuyQdlnRbMy0CqMO8YY+I/ZL67Vqur7cdAE3h47JAEoQdSIKwA0kQdiAJwg4kwVdch+Cjjz4qrR8/frzS+i+66KK+tUcffbTSunH2YM8OJEHYgSQIO5AEYQeSIOxAEoQdSIKwA0kQdiAJwg4kQdiBJAg7kARhB5Ig7EAShB1IgrADSfB99iFYtWpVaX2+aZNffvnlOttBUuzZgSQIO5AEYQeSIOxAEoQdSIKwA0kQdiCJhczPvkLSzyWNSwpJ2yPiJ7YfkvRdSb3iofdHxDNNNbqYXXjhhaX1F198cUidILOFfKjmU0k/iIjXbH9B0qu29xa1H0fEvzbXHoC6LGR+9mOSjhW3P7b9lqSLm24MQL3O6D277ZWSvibp98Wie2y/bnun7aV9nrPJ9oTtiV6vN9dDAAzBgsNue4mkX0v6fkSclPRTSV+RtFoze/45JxWLiO0R0Y2IbqfTqaFlAINYUNhtf04zQf9FRPxGkiLieERMR8SfJf1M0prm2gRQ1bxht21JOyS9FRE/mrV8+ayHfUvSofrbA1CXhRyN/4ak70g6aPtAsex+SRtsr9bM6bhJSd9rpEMAtVjI0fj9kjxHiXPqwCLCJ+iAJAg7kARhB5Ig7EAShB1IgrADSRB2IAnCDiRB2IEkCDuQBGEHkiDsQBKEHUiCsANJOCKGN5jdk3R41qJlkqaG1sCZGdXeRrUvid4GVWdvl0TEnL//NtSwf2ZweyIiuq01UGJUexvVviR6G9SweuNlPJAEYQeSaDvs21sev8yo9jaqfUn0Nqih9Nbqe3YAw9P2nh3AkBB2IIlWwm77Btv/bfsd21vb6KEf25O2D9o+YHui5V522j5h+9CsZRfY3mv77eJ6zjn2WurtIdtHi213wPZNLfW2wvbvbL9p+w3bW4rlrW67kr6Gst2G/p7d9pik/5H0j5KOSHpF0oaIeHOojfRhe1JSNyJa/wCG7W9K+qOkn0fE3xXL/kXSBxGxrfiPcmlE/NOI9PaQpD+2PY13MVvR8tnTjEu6RdIdanHblfR1m4aw3drYs6+R9E5EvBsRf5L0S0nrW+hj5EXES5I+OG3xekm7i9u7NfPHMnR9ehsJEXEsIl4rbn8s6dQ0461uu5K+hqKNsF8s6Q+z7h/RaM33HpJ+a/tV25vabmYO4xFxrLj9vqTxNpuZw7zTeA/TadOMj8y2G2T686o4QPdZV0fE1yXdKGlz8XJ1JMXMe7BROne6oGm8h2WOacb/os1tN+j051W1EfajklbMuv+lYtlIiIijxfUJSU9o9KaiPn5qBt3i+kTL/fzFKE3jPdc04xqBbdfm9OdthP0VSZfZ/rLtz0v6tqQ9LfTxGbbPLQ6cyPa5ktZp9Kai3iNpY3F7o6SnWuzlr4zKNN79phlXy9uu9enPI2LoF0k3aeaI/P9K+uc2eujT16WS/qu4vNF2b5Ie18zLuv/TzLGNuyR9UdI+SW9Lel7SBSPU239IOijpdc0Ea3lLvV2tmZfor0s6UFxuanvblfQ1lO3Gx2WBJDhAByRB2IEkCDuQBGEHkiDsQBKEHUiCsANJ/D8K28WFOQm56wAAAABJRU5ErkJggg==\n"},"metadata":{"needs_background":"light"}},{"output_type":"stream","name":"stdout","text":["[[2.4575214e-10 9.9999988e-01 2.8233006e-11 5.8119166e-15 6.2503382e-08\n"," 1.0949834e-13 2.6958717e-12 4.8721477e-10 7.7060963e-10 1.2654802e-13]]\n","9\n"]},{"output_type":"display_data","data":{"text/plain":["<Figure size 432x288 with 1 Axes>"],"image/png":"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\n"},"metadata":{"needs_background":"light"}},{"output_type":"stream","name":"stdout","text":["[[4.6193910e-11 9.9483543e-07 1.2709210e-10 1.0721106e-06 5.1731771e-05\n"," 4.3203130e-08 5.7274923e-12 6.7070971e-08 5.0241870e-05 9.9989581e-01]]\n","2\n"]},{"output_type":"display_data","data":{"text/plain":["<Figure size 432x288 with 1 Axes>"],"image/png":"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\n"},"metadata":{"needs_background":"light"}},{"output_type":"stream","name":"stdout","text":["[[8.9221665e-11 1.2172882e-08 9.9999917e-01 7.6761768e-07 8.6475707e-09\n"," 5.5842042e-10 2.4225663e-12 1.0230768e-08 3.6599793e-08 1.4259254e-12]]\n","1\n"]},{"output_type":"display_data","data":{"text/plain":["<Figure size 432x288 with 1 Axes>"],"image/png":"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\n"},"metadata":{"needs_background":"light"}},{"output_type":"stream","name":"stdout","text":["[[5.8529662e-13 9.9999893e-01 1.0847059e-08 1.2363484e-09 5.2204086e-07\n"," 3.0847899e-10 3.6290988e-09 2.3978886e-08 4.6764833e-07 2.3407571e-11]]\n","3\n"]},{"output_type":"display_data","data":{"text/plain":["<Figure size 432x288 with 1 Axes>"],"image/png":"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\n"},"metadata":{"needs_background":"light"}},{"output_type":"stream","name":"stdout","text":["[[7.4833381e-32 9.4228140e-22 1.0442576e-19 1.0000000e+00 2.2711576e-30\n"," 6.1444997e-19 2.8610724e-31 8.3366006e-14 4.4488416e-18 1.7886522e-16]]\n","1\n"]},{"output_type":"display_data","data":{"text/plain":["<Figure size 432x288 with 1 Axes>"],"image/png":"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\n"},"metadata":{"needs_background":"light"}},{"output_type":"stream","name":"stdout","text":["[[2.0392699e-09 9.9999380e-01 1.4619867e-08 2.1222755e-07 2.2346426e-06\n"," 1.9855304e-07 1.4260247e-07 1.5958395e-06 1.6637063e-06 8.7588468e-08]]\n","4\n"]},{"output_type":"display_data","data":{"text/plain":["<Figure size 432x288 with 1 Axes>"],"image/png":"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\n"},"metadata":{"needs_background":"light"}},{"output_type":"stream","name":"stdout","text":["[[4.8005262e-15 7.9781835e-13 6.5630661e-12 7.2445802e-18 1.0000000e+00\n"," 5.4200701e-16 3.3093513e-12 2.7356112e-12 4.6134217e-13 2.0533309e-15]]\n"]}]},{"cell_type":"code","source":["import random\n","\n","predictions = model.predict(test_images)\n","COLOR = 'white'\n","plt.rcParams['text.color'] = COLOR\n","plt.rcParams['axes.labelcolor'] = COLOR\n","\n","def predict(model, image, correct_label):\n"," prediction = model.predict(np.array([image]))\n"," predicted_class = class_names[np.argmax(prediction)]\n"," show_image(image, class_names[correct_label], predicted_class)\n","\n","\n","def show_image(img, label, guess):\n"," plt.figure()\n"," plt.imshow(img, cmap=plt.cm.binary)\n"," plt.title(\"Expected: \" + label)\n"," plt.xlabel(\"Guess: \" + guess)\n"," plt.colorbar()\n"," plt.grid(False)\n"," plt.show()\n"," print(\"Expected: \" + label)\n"," print(\"Guess: \" + guess)\n","\n","num = random.randint(0, 10000)\n","image = test_images[num]\n","label = test_labels[num]\n","predict(model, image, label)"],"metadata":{"id":"AiREmEW8T5WO","colab":{"base_uri":"https://localhost:8080/","height":330},"executionInfo":{"status":"ok","timestamp":1660527256222,"user_tz":420,"elapsed":1602,"user":{"displayName":"Leo Huang","userId":"16558901284710269921"}},"outputId":"e0412c5f-4162-45f3-9205-b4fc5d8e43b3"},"execution_count":7,"outputs":[{"output_type":"display_data","data":{"text/plain":["<Figure size 432x288 with 2 Axes>"],"image/png":"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\n"},"metadata":{"needs_background":"light"}},{"output_type":"stream","name":"stdout","text":["Expected: 7\n","Guess: 7\n"]}]},{"cell_type":"code","source":[""],"metadata":{"id":"47_We7h-XyVE"},"execution_count":null,"outputs":[]}]}