Commit 3e1da264 authored by Mirko Birbaumer's avatar Mirko Birbaumer
Browse files

Test of notebooks. Path adapted

parent 0033a614
......@@ -13,7 +13,7 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 1,
"metadata": {
"nbpresent": {
"id": "409a1ab7-fe1d-4430-b904-7694020a6223"
......@@ -50,7 +50,7 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 2,
"metadata": {
"nbpresent": {
"id": "f77bd9ec-de3b-4c56-b08d-4a65f0780408"
......@@ -63,7 +63,7 @@
"dict"
]
},
"execution_count": 3,
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
......@@ -85,7 +85,7 @@
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 3,
"metadata": {
"nbpresent": {
"id": "c874a7c9-de0c-4ccd-a0f1-8f8a3265a0b6"
......@@ -98,7 +98,7 @@
"dict_keys([b'batch_label', b'labels', b'data', b'filenames'])"
]
},
"execution_count": 4,
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
......
%% Cell type:markdown id: tags:
# Exercise 1 - K-Nearest Neighbor Classifier for MNIST
%% Cell type:markdown id: tags:
In this exercise, we'll apply KNN Classifiers to the MNIST dataset. The aim of the exercise is to get acquainted with the MNIST dataset.
This guide uses [tf.keras](https://www.tensorflow.org/guide/keras), a high-level API to build and train models in TensorFlow.
%% Cell type:markdown id: tags:
## Install and import dependencies
We'll need [TensorFlow Datasets](https://www.tensorflow.org/datasets/), an API that simplifies downloading and accessing datasets, and provides several sample datasets to work with. We're also using a few helper libraries.
%% Cell type:code id: tags:
``` python
!pip install -U tensorflow_datasets
```
%%%% Output: stream
Requirement already up-to-date: tensorflow_datasets in /opt/conda/lib/python3.7/site-packages (4.6.0)
Requirement already satisfied, skipping upgrade: absl-py in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (1.2.0)
Collecting tensorflow_datasets
Downloading tensorflow_datasets-4.6.0-py3-none-any.whl (4.3 MB)
 |████████████████████████████████| 4.3 MB 5.1 MB/s eta 0:00:01
[?25hRequirement already satisfied, skipping upgrade: termcolor in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (2.0.1)
Requirement already satisfied, skipping upgrade: typing-extensions; python_version < "3.8" in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (3.7.4.3)
Requirement already satisfied, skipping upgrade: dill in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (0.3.5.1)
Requirement already satisfied, skipping upgrade: termcolor in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (2.0.1)
Requirement already satisfied, skipping upgrade: toml in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (0.10.2)
Requirement already satisfied, skipping upgrade: numpy in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (1.19.1)
Requirement already satisfied, skipping upgrade: protobuf>=3.12.2 in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (3.20.2)
Requirement already satisfied, skipping upgrade: importlib-resources; python_version < "3.9" in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (5.9.0)
Requirement already satisfied, skipping upgrade: tensorflow-metadata in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (1.10.0)
Requirement already satisfied, skipping upgrade: etils[epath] in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (0.8.0)
Requirement already satisfied, skipping upgrade: tqdm in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (4.45.0)
Requirement already satisfied, skipping upgrade: numpy in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (1.19.1)
Requirement already satisfied, skipping upgrade: requests>=2.19.0 in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (2.23.0)
Requirement already satisfied, skipping upgrade: six in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (1.14.0)
Collecting dill
Downloading dill-0.3.5.1-py2.py3-none-any.whl (95 kB)
 |████████████████████████████████| 95 kB 3.4 MB/s eta 0:00:01
[?25hRequirement already satisfied, skipping upgrade: six in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (1.14.0)
Requirement already satisfied, skipping upgrade: protobuf>=3.12.2 in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (3.20.0)
Requirement already satisfied, skipping upgrade: toml in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (0.10.2)
Collecting importlib-resources; python_version < "3.9"
Downloading importlib_resources-5.9.0-py3-none-any.whl (33 kB)
Collecting etils[epath]
Downloading etils-0.8.0-py3-none-any.whl (127 kB)
 |████████████████████████████████| 127 kB 41.0 MB/s eta 0:00:01
[?25hRequirement already satisfied, skipping upgrade: absl-py in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (1.2.0)
Requirement already satisfied, skipping upgrade: promise in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets) (2.3)
Requirement already satisfied, skipping upgrade: zipp>=3.1.0; python_version < "3.10" in /opt/conda/lib/python3.7/site-packages (from importlib-resources; python_version < "3.9"->tensorflow_datasets) (3.1.0)
Requirement already satisfied, skipping upgrade: googleapis-common-protos<2,>=1.52.0 in /opt/conda/lib/python3.7/site-packages (from tensorflow-metadata->tensorflow_datasets) (1.56.4)
Collecting tensorflow-metadata
Downloading tensorflow_metadata-1.10.0-py3-none-any.whl (50 kB)
 |████████████████████████████████| 50 kB 6.5 MB/s eta 0:00:01
[?25hRequirement already satisfied, skipping upgrade: chardet<4,>=3.0.2 in /opt/conda/lib/python3.7/site-packages (from requests>=2.19.0->tensorflow_datasets) (3.0.4)
Requirement already satisfied, skipping upgrade: idna<3,>=2.5 in /opt/conda/lib/python3.7/site-packages (from requests>=2.19.0->tensorflow_datasets) (2.9)
Requirement already satisfied, skipping upgrade: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /opt/conda/lib/python3.7/site-packages (from requests>=2.19.0->tensorflow_datasets) (1.25.11)
Requirement already satisfied, skipping upgrade: certifi>=2017.4.17 in /opt/conda/lib/python3.7/site-packages (from requests>=2.19.0->tensorflow_datasets) (2020.6.20)
Requirement already satisfied, skipping upgrade: chardet<4,>=3.0.2 in /opt/conda/lib/python3.7/site-packages (from requests>=2.19.0->tensorflow_datasets) (3.0.4)
Requirement already satisfied, skipping upgrade: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /opt/conda/lib/python3.7/site-packages (from requests>=2.19.0->tensorflow_datasets) (1.25.9)
Requirement already satisfied, skipping upgrade: zipp>=3.1.0; python_version < "3.10" in /opt/conda/lib/python3.7/site-packages (from importlib-resources; python_version < "3.9"->tensorflow_datasets) (3.1.0)
Collecting googleapis-common-protos<2,>=1.52.0
Downloading googleapis_common_protos-1.56.4-py2.py3-none-any.whl (211 kB)
 |████████████████████████████████| 211 kB 39.6 MB/s eta 0:00:01
[?25hInstalling collected packages: dill, importlib-resources, etils, googleapis-common-protos, tensorflow-metadata, tensorflow-datasets
Successfully installed dill-0.3.5.1 etils-0.8.0 googleapis-common-protos-1.56.4 importlib-resources-5.9.0 tensorflow-datasets-4.6.0 tensorflow-metadata-1.10.0
WARNING: You are using pip version 20.2.4; however, version 22.2.2 is available.
You should consider upgrading via the '/opt/conda/bin/python3 -m pip install --upgrade pip' command.
%% Cell type:code id: tags:
``` python
# Import TensorFlow
# FOR COLAB USERS:
# If you run this notebook in Colab, then execute the following line (uncomment it)
# %tensorflow_version 2.x
# If you run this noteook in your tensorflow 2.x environment, then
# verify you have version > 2.0
import tensorflow as tf
print(tf.__version__)
# Now you should get version 2.x
# If you still get version 1.x, then execute (uncomment) the following lines and run the cell
#!pip uninstall tensorflow
#!pip install --upgrade pip
#!pip install --upgrade tensorflow
#!python3 -c "import tensorflow as tf;print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
#try:
# import tensorflow as tf
#except Exception:
# pass
#print(tf.__version__)
```
%%%% Output: stream
2.7.1
%% Cell type:code id: tags:
``` python
from __future__ import absolute_import, division, print_function, unicode_literals
# Import TensorFlow Datasets
import tensorflow as tf
import tensorflow_datasets as tfds
tfds.disable_progress_bar()
# Helper libraries
import math
import numpy as np
import matplotlib.pyplot as plt
```
%% Cell type:code id: tags:
``` python
import logging
logger = tf.get_logger()
logger.setLevel(logging.ERROR)
!python -V
```
%%%% Output: stream
Python 3.7.6
%% Cell type:markdown id: tags:
## Import the MNIST dataset
%% Cell type:markdown id: tags:
This guide uses the [MNIST](http://yann.lecun.com/exdb/mnist/) dataset—often used as the "Hello, World" of machine learning programs for computer vision. The MNIST dataset contains images of handwritten digits (0, 1, 2, etc)
We will use 60,000 images to train the network and 10,000 images to evaluate how accurately the network learned to classify images. You can access the MNIST directly from TensorFlow, using the [Datasets](https://www.tensorflow.org/datasets) API:
%% Cell type:code id: tags:
``` python
dataset, metadata = tfds.load('mnist', as_supervised=True, with_info=True)
train_dataset, test_dataset = dataset['train'], dataset['test']
```
%%%% Output: stream
Downloading and preparing dataset 11.06 MiB (download: 11.06 MiB, generated: 21.00 MiB, total: 32.06 MiB) to ~/tensorflow_datasets/mnist/3.0.1...
Dataset mnist downloaded and prepared to ~/tensorflow_datasets/mnist/3.0.1. Subsequent calls will reuse this data.
%% Cell type:markdown id: tags:
Loading the dataset returns metadata as well as a *training dataset* and *test dataset*.
* The model is trained using `train_dataset`.
* The model is tested against `test_dataset`.
The images are 28 $\times$ 28 arrays, with pixel values in the range `[0, 255]`. The *labels* are an array of integers, in the range `[0, 9]`. These correspond to the handwritten numbers.
Each image is mapped to a single label. Since the *class names* are not included with the dataset, store them here to use later when plotting the images:
%% Cell type:code id: tags:
``` python
class_names = ['Zero', 'One', 'Two', 'Three', 'Four', 'Five',
'Six', 'Seven', 'Eight', 'Nine']
```
%% Cell type:markdown id: tags:
### Explore the data
Let's explore the format of the dataset before training the model. The following shows there are 60,000 images in the training set, and 10000 images in the test set:
%% Cell type:code id: tags:
``` python
num_train_examples = metadata.splits['train'].num_examples
num_test_examples = metadata.splits['test'].num_examples
print("Number of training examples: {}".format(num_train_examples))
print("Number of test examples: {}".format(num_test_examples))
```
%%%% Output: stream
Number of training examples: 60000
Number of test examples: 10000
%% Cell type:markdown id: tags:
Let's plot an image to see what it looks like.
%% Cell type:code id: tags:
``` python
# Take a single image, and remove the color dimension by reshaping
for image, label in test_dataset.take(1):
break
image = image.numpy().reshape((28,28))
# Plot the image - voila an example of a handwritten digit
plt.figure()
plt.imshow(image, cmap=plt.cm.binary)
plt.colorbar()
plt.grid(False)
plt.show()
```
%%%% Output: display_data
![](data:image/png;base64,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)
%% Cell type:markdown id: tags:
Display the first 25 images from the *test set* and display the class name below each image. Verify that the data is in the correct format and we're ready to build and train the network.
%% Cell type:code id: tags:
``` python
plt.figure(figsize=(10,10))
i = 0
for (image, label) in test_dataset.take(25):
image = image.numpy().reshape((28,28))
plt.subplot(5,5,i+1)
plt.xticks([])
plt.yticks([])
plt.grid(False)
plt.imshow(image, cmap=plt.cm.binary)
plt.xlabel(class_names[label])
i += 1
plt.show()
```
%%%% Output: display_data
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAj0AAAI8CAYAAAAazRqkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAABklklEQVR4nO3debzV0/4/8NdbA6UiqitTx6VBUmlAaFI3CVcUihKZ8lU/mcrUZK64IZqUkClDkS7K1OAidWimAZUhDYYUDar1+2Pvlvf6OHv3Oefseb2ej4eH1+d81v7slY+9z+qzJjHGgIiIiCjX7ZPuChARERGlAhs9RERE5AU2eoiIiMgLbPQQERGRF9joISIiIi+w0UNEREReKFmYwpUqVTJ5eXlJqgoVZNWqVdi4caMk+rq8l+mRn5+/0RhTOdHX5f1MPX42c0syPpu8l+kR714WqtGTl5eHefPmJaZWFEqjRo2Scl3ey/QQkdXJuC7vZ+rxs5lbkvHZ5L1Mj3j3kt1bRERE5AU2eoiIiMgLbPQQERGRF9joISIiIi+w0UNEREReYKOHiIiIvMBGDxEREXmBjR4iIiLyAhs9RERE5AU2eoiIiMgLbPQQERGRFwq195Zv1q5d6xz/9NNPNpcqVcrmmjVrpqxO2e6zzz5zjseOHWvzyJEjbW7fvr1Trk2bNqGuX7t2bZubN29ehBoSEVGu4pMeIiIi8gIbPUREROQFNnqIiIjICxzTE7By5UqbW7Zs6Zz74YcfbC5durTN1157rVPuP//5T5Jql53mz59v81lnneWcW7dunc0iYvPrr7/ulAsex1KxYkWb9ZieG2+80Sl3+OGH25yXlxfq2kRElN34pIeIiIi8wEYPEREReSGnurdmzZrlHF9wwQU2666Tyy+/3Ck3c+ZMm5csWWLz5s2bnXL6Gjt27LBZT7UGgAULFtj83nvvhap7LtHdWQBw3nnn2ay7s5Lh559/tvm1114rMAPAcccdZ/PFF19s88033+yU00sT+GTRokU2t2rVyjl39dVX23zPPfekrE7as88+6xy//PLLNj/55JM2H3zwwSmrE4Wnvweef/5551zw+2OPXr16OceNGjVKeL0o9/FJDxEREXmBjR4iIiLyQtZ3b/366682X3bZZc65DRs22Ky7poYMGRLzeocddpjN48aNi1lu4MCBNn/xxRfOuX333Tfm63zQrVs353j16tVpqklsuhvzjjvusDnY/fbwww+nqkoZZfz48TbrzxEAvPHGGzZfccUVzrmjjjoquRWLuu+++5xj/Rns0aOHzbrbi1Jr165dzrH+3tUzXHfv3u2U013Ump49CwDvvPNOcauYdfT/5zfccINz7rvvvrO5cePGzrnevXvbXK9eveRULkvwSQ8RERF5gY0eIiIi8gIbPUREROSFrBzT8+mnn9p855132hx27Ej37t2d43/+85826+nshxxySMxr9OvXL+a5o48+OlQ9KLZatWo5x3pF5v3228/mF154wSk3e/Zsm3/55RebP/roo1DvO2LECOfYGGPzQw895JwrWTIrPz4x6fFxenxAvHJ66YZk++abb2zeunVrzHLvvvtuKqpDBdDLdehxj4C7bIQefzlgwACn3BFHHGFz165dbf7ggw9C1+PHH3+0Od73eLZZv369zdOmTYtZTo9ZBNwlHqpXr25z06ZNQ71vu3btnOMyZcrYPGnSJJs7d+4c6nrBVfCrVasW6nWJwCc9RERE5AU2eoiIiMgLWfl8/s0337Q53qPs0047zWbdDaKnpReVnlapu0AA4KCDDir29bPN1KlTbS7qFPUqVarYrKdFA7G7DPv06RPzWN+j4KPxq666ymbdXbNz506n3PDhw20OThHNtY1KFy5caHO8qd66y6FmzZpJrZP2xBNP2Lxq1aqUvS/F9/HHH9ushwd89dVXTrmxY8cWWG6ffWL/3Xvo0KE2n3nmmc65/Px8mwcNGuScq1u3rs3pWjU8GU4++WSbg11Jwa5+TX+v6WnvweVWYhkzZkyocqNHjw5Vrnz58s6xnmKf7F0M+KSHiIiIvMBGDxEREXmBjR4iIiLyQlaO6dE7ZF944YU216lTxymnp7Mngu6T/u2332zWW1wAwEUXXZTQ980G3377rc36v01h6D7qREz712OrOnTo4JxbsWKFzbfffnuo651zzjnOsR53lAvje/Tu6ZlCT4EeOXJkqNfkwr3IJnpLiWXLltmsl5kAgH//+9+Fvvb+++9v8/fff++c07us33333c65G2+8sdDvlQ30FkdPPvmkc65///42B6ez6zE0EyZMsHnNmjXFrtPatWttDo7P+v333wt8zebNm53jBg0aFLseYfFJDxEREXmBjR4iIiLyQlZ2b11wwQUF5mR7/vnnbdYr0bZu3dopV6NGjZTVKVMk4nHy22+/bfOwYcOKfb149PRz3ZUWr2syuMppp06dbP7kk08SWLv00KvYZort27fbrJcWiOfRRx9NUm0IcFfGBoBXX33V5muuucbmYHdwWLrLpVevXjbrFdYBoEePHjbffPPNzjm9anuuCv4Z9Sr2wRXtteCOBMW1fPlym4NT4M877zyb9dIuwW6w4NCUZOKTHiIiIvICGz1ERETkhazs3kqVOXPmOMdLly4tsJxe3RfIvY0ow9i2bZvNwdlsYelVdvUGeQDQpUuXIl0zFj0LolWrVjafcsopTrl4G5XqP3M2Cm70GJxRsYfekBcArr322qTViTJfsBtUd1s0b97c5uD3gF4VWM/Ee//9951yupv7mGOOsVl3owFu1wmlj97A9NZbb3XOBXcr2OPBBx90jrt165b4isXAJz1ERETkBTZ6iIiIyAts9BAREZEX/Bt8sheLFi2yuV27ds45PWVW9123adMm6fXygZ6eHFx9NZn0ys0VK1ZM2fum2+rVq53j3bt3F1jujz/+cI6/++47mw877LDEV4wyml4lO6hSpUo2jxo1yjn3+OOP27x48WKbg5+5vn372qynrB988MGFrywl3YwZM2yePHlyzHJ6WRO9ZEiq8UkPEREReYGNHiIiIvJCxnZv6cefr732mnNOb/Q4d+7cmNfQ0+X09MkTTzzRKac3rnvhhRds/vnnn51yBx54oM0DBw60uUKFCjHr4IumTZvaPHv27GJfL9ZUx2R77LHHnOOpU6fGLBtrM8xsmdIdXMVWbxCpu3KDU5T1StR6umoybNq0qdCv0VPx9fRnAChdunSx6+S7jRs3xjx39tln2/znn38650444QSbn3rqKZv1/0+Au5wEZSa9+XZwyRZNd10megPwouKTHiIiIvICGz1ERETkhbR2b73yyis2jxgxwjmnR4THW+E37Oq/ulywSyxWF1nw2rqOzZo1C/W+vujcubPNH374YejX6a7GqlWr2nzFFVckpmKF9NVXXznHRfn/K1sEN/nTq0/r1W6XLVvmlNMrZ+ucKT744AOb9aaUAPDkk0+mujo5Yfr06TYPGTIkZjndfai7SwGgbdu2ia8YpYSesQkAjzzySKjXjRkzxuZMmRnLJz1ERETkBTZ6iIiIyAts9BAREZEXUj6mZ9KkSTZ37drV5h07djjlqlSp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fHmbr7zySpurVKnilNt3332LW0VKoy+++MI5bteunc2rVq2K+bpPPvnE5meeecbmnj17Jq5yWUp/Vy1btsw5N3r06GJfX4/JmTVrls3GGKecHgcS5ueAe18pfeKN1Zk5c2bqKpIAfNJDREREXmCjh4iIiLyQ091b+tH4hx9+aHO8x666e0RPXweAESNG2FyxYkWbe/fuXey6+uKee+5xju++++5Qr9P3TF/j9NNPd8q1bt26wNywYcNC1ZNSRy8h0bZtW+fcmjVrbL7mmmts7t+/v1Pu6KOPtll35xCwfv16m48//vg01iScsmXL2tyhQ4c01oTCmDFjRrqrUCh80kNEREReYKOHiIiIvJD13Vtffvmlzeeee65zTj8aj+fggw+2+YknnrC5ffv2Trkff/zR5s6dOxemml574YUXbNYrrALxZ26E8f7778c81jMOTjjhBKdcp06dbG7evLnN9erVK1Z9KJytW7farLuRg5/ZM8880+aHHnrI5v33398pd84559hcp06dhNWTUk93eV9++eVprAntkW0ztOLhkx4iIiLyAhs9RERE5AU2eoiIiMgLWTmmR6/q++ijj9q8YsWKUK+vVq2ac/yf//zH5uA4Hi24kjOFE3ZaeqLpHZ/nzJnjnNPHerXn4FitkSNHJql2fhs/frzNEydOtPmoo45yyr300ks2B8fxaIMHD7b58MMPT0QVc8ZBBx1kc/fu3Z1zYb/TGjRoYHNw1Ww9PissPS09+P1wySWXFPp6lHh6Knq8ael6l/VswCc9RERE5AU2eoiIiMgLWdG9paelA26X1qhRowp9vXgbF1Lx9erVyznW9y+4GnZYJUqUsPnQQw+1WU89B9xVuPVU9B9++MEpp7tUhg0bZnPw/6c33njD5smTJzvn9DT4kiWz4qOUNnPnznWO9TR13f3y8ssvO+XKlSsX6vrBbjH6i15lXn93AkC3bt1CXaN+/fo2B1c3X7lyZbHqwWnpmSnbVloOi096iIiIyAts9BAREZEX2OghIiIiL2TFQIRgn3HYcTxt2rSxuWfPngmtE7k2b95s86xZs5xz8baaqFChgs16fEF+fr5T7owzzrC5X79+ha6fHgcEuGNKqlatavPFF1/slNM7gJ988snOuREjRtisdwCnvxs+fLhzvGPHDptPOeUUm4PjRSixypQp4xyfdtppoV6nx+CE3d6nVKlSzrFe/iHsWCLKfHq7n2zAJz1ERETkBTZ6iIiIyAtZ0b2lV0yO58ADD3SO77//fpuDu2xTYk2aNMnmxYsXh36dXo01ONU9VfS09ylTpjjn9NT2oDfffNNmdm/93aeffmrzc88955yrUaOGzc8//3zK6kTh6S7Jvn372qy7JuMZN26cc9ylS5fEVIxSYtCgQTHPtWjRInUVSTA+6SEiIiIvsNFDREREXsiK7q2vv/46VLlnnnnGOWaXVnLpVY7Dzo4LzqK68sorE1qn4jrkkENCl9UzuyhCd33oGTq7d+92ynXt2tVmveHrtm3bYl5Pz/SjxHvsscec4z59+tgctktLY3dW9gk7E+uDDz5IbkWSiE96iIiIyAts9BAREZEX2OghIiIiL2TsmB493Xz16tWhXtOsWbNQ5YJTqmfPnl1guWnTpjnHr7/+eoHl2rdv7xzrac6lS5cOVads9P7779v8+++/h3qNHr8B/H2F2HTbsmWLcxxvV/imTZsmuzpZRy9d8OWXX8Yst3z5cpv1Duk7d+50yunj/fbbz+bOnTs75fT02uBKwBTb5MmTbX788cedc0UZx6Pdd999znGsldnPO+8857hWrVrFel8qunjT1HMFn/QQERGRF9joISIiIi9kTPdW8LG23tQu3oaVvXv3tnn//fd3zi1YsMBmvSHmhRde6JT78ccfQ9UxVj2C3V562m0ud2999tlnNse7R9rVV1+drOoU2dSpU20eO3ascy7en2ufffh3hqC5c+eGKjdhwgSb9913X5uDSxjo7s+nn37aZt39DQBt27a1OWw3t49WrFjhHHfo0CFp73XHHXc4x7E+S8FyF110kc133XWXzdWrV09g7chX/NYmIiIiL7DRQ0RERF7ImO6t4Oyf0aNHh3rdAQccYLOeTQS4K4Ju2LDB5uCMnFiPXfVjd8Dtgtu1a1eo+pFLb+6ZKfTGoYVxzDHHJLgm2eePP/5wjsP+t8zLy7P53nvvtfniiy+O+Zrzzz/f5lNOOcU5pzd8zc/Pt7ls2bKh6uOrsN3SqXyvl156yeY5c+bYrGeaAcBxxx1nc8mSGfOrLKuEXYF5wIABya1ICvFJDxEREXmBjR4iIiLyAhs9RERE5IWs7whN9AqS5557rs09evRwzulxA3pKva8+//zzUOUaNmxoc9WqVZNVnULRU2HHjRsX6jU1atRwjjNxfFKqvfHGG85xrFWYDz/8cOf4nXfesTns2KhGjRrFPKffV6+qzTE9rn/84x/OsV41efz48c45PV7rt99+s3n79u1OOf3fuHLlyjYHx07qcZWbNm0KVV+9Gn+DBg2cc5988onNjRs3DnU9AmbMmGFz2N+fYcf+ZAM+6SEiIiIvsNFDREREXsj67q2iOPvss53j6667zma9cvN///tfp9wPP/xQ4PWCG+T5Mn1SPyaNNx01EzbmXLRokXM8atQom//880+bg4/k9bIFzz33nHNOL5fgq7Vr14Yqd+aZZzrHnO6fHhUqVHCO+/btW2AG3JXqV61aZfOvv/7qlDvkkENsrl+/fsz3nj9/vs165e5hw4Y55ZYtWxbzGppelVtv8gxw09l49Pd2PLk0TV3jkx4iIiLyAhs9RERE5IWc7ofRm33eeOONNt92221OuenTp9usN7uLp2bNmjYHZ7D4MmNEd2ll4sacuksr2KW5bt06m3Xdg6twP/zwwzYHZ49QeB07diz2NeJtDKxX5y1fvnyx34vcbiudi0p3fel81llnOeVatGhh81dffRXzenqj559//tk5F5ylRn+ZOXNmqHL6PuQSPukhIiIiL7DRQ0RERF5go4eIiIi8kNNjeg488MACf37BBRc4x3pMT1gPPfSQzUcffXShX58L9ArFK1asSGNN/qJXWtbT0vUYnniGDx/uHF955ZWJqViOOvjgg0OVO/3004t0/Z07d9rcrVu3mOUuvfRSm8uUKVOk98pVegXlV1991Tk3evRom4844gjnXO/evW2Otxp2USxcuNDmIUOGOOfijePRdH31+E36Oz1NPeyUdY7pISIiIspibPQQERGRFzKmeyu4Em4irF+/3uYHHngg5nvFmm5dp04d5/jiiy+2uU2bNomoYlZr166dzY888kjK3nfq1Kk233PPPc45vQmqXmk53pT6kSNH2szurMIJ+znQG1YCwEEHHVRgOX3PAGDSpEk2f/DBBzYHNzC9/vrrQ9XDR0OHDrW5MKvs6hXpjzrqKJvr1avnlNPfA5rezBRwP4PfffedzT/99FPoOmnPP/+8zRUrVizSNXwRtkvLB3zSQ0RERF5go4eIiIi8kDHdW+XKlXOOZ82aZXPw0bXuwki0eCstV6tWLWnvm430yrfxuieDXRux/PHHHzYHH3nffffdNo8dOzbU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5JE2Dxo0yCmnp6lnum3btjnH++23X5pqkj6tWrWyOdjPnypbtmxxjmfMmGFzro/p0Std67EURVWUsXN6fEjwWN+be++91ylXtWrVQr8XuX7//XfnuGvXrjbr6ebB+xocu7O3nxfm3KWXXmrzGWec4ZSrXLlyzGuQ64svvrD52muvtXn27NlOuVj3JbhTQZ06dWw+99xzbT711FOdcqeccorNeoxtcEyPVqZMmZjnEoFPeoiIiMgLbPQQERGRFzKme2vdunXOsZ7qtmDBAufcYYcdZrN+/J2IR/KppKf3Bh/Xf/7556muTlp8/fXXNgenRqdD8DHuySefnKaapN7ChQuLfQ3d9VGuXDmb8/LynHKxui937NgR89p6dWzdrQ0AAwcODF9JKlBwKrpekTfWdPOgDh062Ky7PQC3iyxed5mmz+nXAMDVV18d83W+01PAAWD06NE266noQXp3Av07qXbt2k65008/PVQ9Nm3aZHNwtXutdOnSNgc3m040PukhIiIiL7DRQ0RERF5go4eIiIi8kDFjem677TbnWI/jCU4Vnjt3rs26LzBT6Km/wal5ejuMpUuX2qyn4ecyPY4JAP7f//t/NutlChLt+OOPd45jLW0enLb7ySef2HziiScmvmIZ5IQTTrC5U6dONi9evNgpV7LkX18bPXr0cM7985//tLl169ah3ldvP3Leeec556ZPn17ga4JT2/XWND4u91BUehxdcFxhrC0lgvfo1VdfDfVejzzySIHXC4p3jmLTY3X0GJ7gOa1du3bOsd52J+y4nXguvPBCm7/99tuY5fQ4Hj0uLBn4pIeIiIi8wEYPEREReSFjurfOOuss5/itt96yOfh4XU9n79evn80tW7ZMaJ30dDsA+OWXX2x+9tlnbX7ppZeccvpxffAaV155pc1PPvmkzfXq1SteZTOYfrTav39/51xxu7Quvvhi5zjWdMcSJUo4x2eeeabN8R67Pv744zbrrrhcpP8bPf/88yl7X70C64svvuic012KK1eutHnOnDlOuQcffNBmvRs7xaenqQenjutj3aU1YcKEYr9v2Cnw+tz5559f7PfNZXrZl3jT0nW3s16WAPj792RhffDBB87xrFmzCiwXXMKiS5cuxXrfwuCTHiIiIvICGz1ERETkhYzp3gqO2D766KNt1hukAe4jtPz8fJu7devmlOvTp4/Nhx9+uM3BGTp6RtHTTz9tc/AR4apVq2zWK8IGR7kfe+yxNnfv3t05V6lSJfimffv2Nn/55ZfFvt7BBx9ss77HwN9nacXSrFkzm5977rmY5fSK0cHH+npDRkqMAw880Dlu3ry5zbp7K+i///2vzXomaHEf1/sk7IwqvXllkF41OTirS6/CHfa99OxXH787k0F/9yXi86FnfD322GPOuZ07d9pcvXp1m/XwFcCd9ZlsfNJDREREXmCjh4iIiLzARg8RERF5IWPG9ATVr1/f5tmzZzvnHnjgAZufeOIJm4cPH+6U08d6StyUKVOccr/99pvNekyBnl4OuOOOfNp9u7CCU/gTMY6ncePGNusdtYOrdceyevVq5zjWSr9BenXfRKxQSoXTpEkTm8eNGxeznJ7Cvnv3bps5pie8eFPWX3vtNZuD05z1GJxYqzgXdP1YP9fT42vVqrWXWtMeDRo0sDm40vKbb75ps17eoU2bNk65WKvO6yVaAHfcnF6WRY/hCdJjIFM5hieIT3qIiIjIC2z0EBERkRcytntL27Jli3OsNzHTU4rHjx8f8xrBx3OxrnfDDTfYzC6s8PRKugMGDHDO6Q1YwwqutDxy5Eiby5cvX+jr6emyALBhw4ZQr9PdI4cddlih35dSQy+LwC6t8HT3UXBzZK0oG4SGfU3lypWdc2E3MCWX3nw72O2vu7f0cA49VARwl4cZNmyYzf/73/+ccps3by6wDnqpGcBdDiRTdh3gkx4iIiLyAhs9RERE5IWM7d7SszGuv/76mOf22eevdlvFihWdcp06dbJZd2dMmjTJKTdjxgyb9QamFN6aNWtsXrFiRZGuMXbsWJsvuOAC51xRurQ+/PBDm4OrdYd16aWXFul1lBjbt28PVe6QQw6xWX8nUHx6lXHdtQ8AS5cutbl27doxr6HLxfucxZq9dfvtt++1nlQ4wU139abdU6dOtVnPyivoOBbdlaZncgU3Dg12d2UCfjsQERGRF9joISIiIi+w0UNEREReyNgxPTfffLPNegwP4Pbf33rrrTYHx/7EctdddznHeop1q1atbA6u2pspU+5yiV4BW694XJQxPIA7jkePC1q3bl2o11eoUME57t27d5HqQYkxZsyYUOWqVKmS5JrkPr2ib0HHsegxknoqerwp62eccYbNYb+3Kb4dO3bYHBxXWdxV8YPjrvQK+eeee26xrp1qfNJDREREXmCjh4iIiLyQMd1bDz30kHP80Ucf2Rycgqo3GT377LML/V533HGHc/zee+/ZPGvWLJuDqzizeyvx9P3Ly8sL9Rq9eWhwpWU9ZTZsl5amp2IC6d0Yz0fr1693jn/99dcCy/3jH/9wjq+66qpkVYn24r777rM51rT04Dk9VZ6KRk9DB4B77rnH5uCmz7GUKlXKOY61en6LFi2c49atW4e6fibikx4iIiLyAhs9RERE5IWM6d4KrgS5e/dum/XKykDRurS04IaEJUsW/J8h2L3Vp08fm4Ob5FHR6M1k9aNVPRMBcDe869q1q81hNw4NK7iqN6XWM8884xzrrkytUaNGzjE3g00d/fkDwm84es0119hcqVKlxFfMM+PGjXOO43Vp7bvvvjbr32MHHHCAU07Pmtbef/9955jdW0REREQZjo0eIiIi8gIbPUREROSFjBnTE9yNVa+sm65xFsEp6hzHk3h6LNfFF19s86ZNm5xy7777btLqcPnll9t8yy23JO19qGD6Xj/22GMxy+lxCbxPqfXFF1/YHBx/qaei6xz8vuSyAsXXq1cvm0eNGhWznP4uDZYtV66czY888kio93377bedY71MQbbhkx4iIiLyAhs9RERE5IWM6d466aSTnOOnn37a5kRMS9ablganoutVmPUUvjvvvLPY70vhvfrqq0m79lFHHeUc6+4RvdporVq1klYHKpj+rK9ZsyZmuWbNmhWYKfl098bvv//unIs1Zf2SSy5xjsNuYEqxTZw40eZdu3Y55+rXr2/z6NGjnXP7779/sd63bt26xXp9JuGTHiIiIvICGz1ERETkhYzp3tIbRQLAO++8Y/OkSZOcc6effnqBObhZ2osvvmjzypUrbdarPQPu5oX68eFpp50Wqu4EtGrVyubgaqs//fSTzbEehSeD7tIKzj6oXr16yupBf/fZZ5/ZHLYb+ZxzzklWdWgv9IytsJuK3n777cmsEgXo2Y1hu7NWrVoVqlyXLl2KUqWMxCc9RERE5AU2eoiIiMgLbPQQERGRFzJmTE/ZsmWdYz2tPLjz8uDBg23u169fqOvrnYH11D7AXZGXu2wXTcOGDW1ev369c06vsjtgwADn3C+//BLq+iVKlLBZj8kqVaqUU+6yyy6zWe8YfMwxx4R6H0qNadOm2bxly5aY5Q499FCbr7zyyqTW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9zI9RGR1Mq7L+5l6/GzmlmR8Nnkv0yPevWT3FhEREXmBjR4iIiLyAhs9RERE5AU2eoiIiMgLbPQQERGRFwo1eytXTZ8+3ebHHnvM5nfeeccp97///c/mBg0aJL9iVKBVq1bZ3LlzZ+fc7bffbvM555yTqioREVEW4JMeIiIi8gIbPUREROQFL7u33n33Xee4ffv2Nh9zzDE2L1y40ClXvXr1pNaLYtu2bZvNXbt2tfnYY491yp111lkpqxMRUbps3rzZOR46dKjNb7zxhnNu/vz5NlepUsXma665xil36KGH2nzFFVfYXKpUqWLVNZPwSQ8RERF5gY0eIiIi8oI33VvfffedzR07dnTOnX766TaPHz/e5sqVE74vJBXRhAkTbN64caPNb731llNun33Yjk+0lStXOse6q/Hrr792zr3++us2689S0IEHHmhzv379bL7kkkuccvpRPCWe/l688MILnXMff/xxga858cQTneOzzz7bZn3/jjjiCKdcLnWRpMv27dttbtWqlXMu3h5fIn/ti7thwwab77nnnpivuf/++20OzpK98sorbdZDQrIBf0MQERGRF9joISIiIi+w0UNEREReyOkxPfn5+Tb37NnT5mD/5MiRI1NWJwonOI7klltusfm2226zuVy5cimrU67TY2v06uPBsQJbtmyxWY8VAIB9993XZj1GZNq0aU65X3/91eabb77ZZj12CwA+++yzMFWnImrXrp3Ny5cvd87VrFnT5nXr1tk8d+5cp5w+HjBggM3BMSfjxo2z+cgjjyxijf2mP2/B8W7VqlWzuXfv3jGvocf0jB492jmnp8F/++23Ng8ZMsQp99JLL9msP9vZsKwLn/QQERGRF9joISIiIi/kdPfWsGHDbNZT/didlfn69+/vHNeuXdtm3R1CRRfsQnziiSds1o/Ag/Rj9Msvv9w5V7ZsWZv16tgzZswIVaetW7eGKkeJcdddd9kcXOFXd31t2rTJ5uAqvu+9916B1w7+/KSTTrL5hRdesLlFixbhK+y50qVL2zx16tRiXy84ZV1fc/DgwTYHu7j1ps833HCDzZMnT3bKZeIyBXzSQ0RERF5go4eIiIi8kPXdW7/88ovNvXr1cs5NmTLF5kGDBqWsTlQ0H374oc2vvvqqc27p0qU2lyhRImV1ymXBlVTvvvtum3v06GHzQw895JQ755xzbD766KOdc7obpG7dujbH6y5r0qSJzbG6Sig59GbLQWvWrLG5b9++NgfvUYUKFWzW3dA//fSTU07PDjvzzDNtHj58uFNOr/ZLqaVX19Y52AU5a9Ysm998802bly1b5pSrU6dOgmtYfHzSQ0RERF5go4eIiIi8wEYPEREReSErx/Ts2rXL5iuuuMLm4I7bTz31lM0XXXRR0utFxTNixAibg6tmB8eOUOLp6eennnqqzcH/9nrV5SC9NITewTuetm3bhro2Jdeff/7pHA8dOtRmPcbusMMOc8o9/vjjNv/73/+OeX29+q9eVV1PjQaA448/3mY9zZ3S56CDDkp3FRKGT3qIiIjIC2z0EBERkReysnvrqquusvm1116z+YEHHnDKsUsr8+kVPCdOnGgzpy6nXsmSf30d6KnHhaE3QdQrPF933XVOuW3bttmsNzddv359zOtRcgVXqtfdVpqeogy43VHx6JWcv/rqK5sffPBBp5zu7pw/f77NeiVwSq1DDjkk3VVIGD7pISIiIi+w0UNEREReYKOHiIiIvJAVY3q6dOniHD/33HM26+XR+/Tpk7I6UWLosR3HHXeczU2bNk1HdSiBunfvbvOSJUucc8OGDbN5+vTpNp9++ulOuccee8xm7sadeGPGjLF5wIABzjm93ct9991ns/6cFpXe3Tu4XcX48eNt1uN73n33XadccOo8JdbixYttfuWVV2KWO/DAA20uW7ZsMquUEHzSQ0RERF5go4eIiIi8kLHdW3pH3tdff905d8kll9h81113paxOlHh6t94LL7zQZu6knluCO7Ufe+yxNt9yyy02f/HFF065WLtxcyfuxNDdh5s2bXLO6dWQ9T1KhNKlS9s8btw455zu7poyZYrNutsLAO68886E1omAzZs326y7NDdu3BjzNV27drX5n//8Z3IqlkB80kNEREReYKOHiIiIvJCx3Vt61H5wI7zbb7/dZv2YNBF0t5p+tBrUsmVLmxs2bJjQOvjk448/trljx46Ffv2nn37qHOvuzpkzZ9oc7C6bNm2azdzUMPV095T+rOsZX4C7Mrde0Xeffdy/rwVfRwXbsGGDc6y7M4LOP//8ZFenQP369bNZfwcHV4hu166dzQ0aNEh+xTygf7e++OKLMcvpoQh6Jl424JMeIiIi8gIbPUREROQFNnqIiIjICxk7puebb76xOdiX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)
%% Cell type:markdown id: tags:
## Import the Fashion MNIST dataset
%% Cell type:markdown id: tags:
If numbers are not your thing then use the [Fashion MNIST](https://github.com/zalandoresearch/fashion-mnist) dataset, which contains 70,000 grayscale images in 10 categories. The images show individual articles of clothing at low resolution (28 $\times$ 28 pixels), as seen here:
<table>
<tr><td>
<img src="https://tensorflow.org/images/fashion-mnist-sprite.png"
alt="Fashion MNIST sprite" width="600">
</td></tr>
<tr><td align="center">
<b>Figure 1.</b> <a href="https://github.com/zalandoresearch/fashion-mnist">Fashion-MNIST samples</a> (by Zalando, MIT License).<br/>&nbsp;
</td></tr>
</table>
You may use Fashion MNIST for variety, and because it's a slightly more challenging problem than regular MNIST. Both datasets are relatively small and are used to verify that an algorithm works as expected. They're good starting points to test and debug code.
We will use 60,000 images to train the network and 10,000 images to evaluate how accurately the network learned to classify images. You can access the Fashion MNIST directly from TensorFlow, using the [Datasets](https://www.tensorflow.org/datasets) API:
%% Cell type:code id: tags:
``` python
dataset, metadata = tfds.load('fashion_mnist', as_supervised=True, with_info=True)
train_dataset, test_dataset = dataset['train'], dataset['test']
```
%%%% Output: stream
Downloading and preparing dataset 29.45 MiB (download: 29.45 MiB, generated: 36.42 MiB, total: 65.87 MiB) to ~/tensorflow_datasets/fashion_mnist/3.0.1...
Dataset fashion_mnist downloaded and prepared to ~/tensorflow_datasets/fashion_mnist/3.0.1. Subsequent calls will reuse this data.
%% Cell type:markdown id: tags:
Loading the dataset returns metadata as well as a *training dataset* and *test dataset*.
* The model is trained using `train_dataset`.
* The model is tested against `test_dataset`.
The images are 28 $\times$ 28 arrays, with pixel values in the range `[0, 255]`. The *labels* are an array of integers, in the range `[0, 9]`. These correspond to the *class* of clothing the image represents:
<table>
<tr>
<th>Label</th>
<th>Class</th>
</tr>
<tr>
<td>0</td>
<td>T-shirt/top</td>
</tr>
<tr>
<td>1</td>
<td>Trouser</td>
</tr>
<tr>
<td>2</td>
<td>Pullover</td>
</tr>
<tr>
<td>3</td>
<td>Dress</td>
</tr>
<tr>
<td>4</td>
<td>Coat</td>
</tr>
<tr>
<td>5</td>
<td>Sandal</td>
</tr>
<tr>
<td>6</td>
<td>Shirt</td>
</tr>
<tr>
<td>7</td>
<td>Sneaker</td>
</tr>
<tr>
<td>8</td>
<td>Bag</td>
</tr>
<tr>
<td>9</td>
<td>Ankle boot</td>
</tr>
</table>
Each image is mapped to a single label. Since the *class names* are not included with the dataset, store them here to use later when plotting the images:
%% Cell type:code id: tags:
``` python
class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',
'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']
```
%% Cell type:markdown id: tags:
### Explore the data
Let's explore the format of the dataset before training the model. The following shows there are 60,000 images in the training set, and 10000 images in the test set:
%% Cell type:code id: tags:
``` python
num_train_examples = metadata.splits['train'].num_examples
num_test_examples = metadata.splits['test'].num_examples
print("Number of training examples: {}".format(num_train_examples))
print("Number of test examples: {}".format(num_test_examples))
```
%%%% Output: stream
Number of training examples: 60000
Number of test examples: 10000
%% Cell type:markdown id: tags:
Let's plot an image to see what it looks like.
%% Cell type:code id: tags:
``` python
# Take a single image, and remove the color dimension by reshaping
for image, label in test_dataset.take(1):
break
image = image.numpy().reshape((28,28))
# Plot the image - voila a piece of fashion clothing
plt.figure()
plt.imshow(image, cmap=plt.cm.binary)
plt.colorbar()
plt.grid(False)
plt.show()
```
%%%% Output: display_data
![](data:image/png;base64,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)
%% Cell type:markdown id: tags:
Display the first 25 images from the *test set* and display the class name below each image. Verify that the data is in the correct format and we're ready to build and train the network.
%% Cell type:code id: tags:
``` python
plt.figure(figsize=(10,10))
i = 0
for (image, label) in test_dataset.take(25):
image = image.numpy().reshape((28,28))
plt.subplot(5,5,i+1)
plt.xticks([])
plt.yticks([])
plt.grid(False)
plt.imshow(image, cmap=plt.cm.binary)
plt.xlabel(class_names[label])
i += 1
plt.show()
```
%%%% Output: display_data
![](data:image/png;base64,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5ZJR677k0gdmLTvczz77LNoLFixItuX1kS+58NFHCwvBdu7cudnPtCVjxoyZH0LoUuv9ttXYLDONMjZFddRjbLaXvnzvvfeizffT//73v0k7vmeusMIK0f7444+TdjyfrrbawtqfK63UPtb0LerLJboT9OrVC6NHj67NUS0Br732WvL6yCOPjPaHHy6sNTZ//vykHd8AV1lllWivvPLKSTvutLXXXjvaI0aMQFszaNCguuy3Fn3JDxw8kL7whS+0aH/vvPNOtK+99tpk2xprrBFtfpjxD8STJy+sb3b88cdHu1OnTi06Jp4E/MNcSx7uzKyo2m2LaauxWWba89gUS049xmZ76cuHH3442nPnzo32rFnpT+b7Kf/RP23atKQdz8G77bZbtLfccsulP9gaUNSX7ePP38Xgb4Djx4+P9nrrrRdtfngB0k7jm9fzzz+ftOMOnDJlSrRHjRqVtBs8ePASHHXHgz0xQOp9KXrQ4YfPm2++OdnGffv44wsLevoH0//85z/R5n6YOnVq0u7NN9+M9rnnnhvtQw89NGl3xBEL187cddddc4/dewWZPE+iEELUG69ssPflmWfSQst8X9tpp52i3adPutbvvHnzos3z9hZbpKuEsBPhl7/8ZbRPPvnkpB3PrfwH6vLLL4+2QjO1EEIIIUqBHnqEEEIIUQr00COEEEKIUtAQMT1vvfVW8nqTTTaJNgfT+kj0t99+u1mbY3iAVAvlGCEfQF12OIbHc8stt0T70ksvTbZxnM27776bbONYGK8v5+2D43h8n2+22WbR5n599NFHk3b8eq211oq2j0369re/HW0OoPfHrvietqXaeIGZM2dGuz1k1QjRUooyUm+44Ybk9Q477NDs59Zcc82kXdeuXaPNiRocEwSk2WDHHntstG+99dakHcf0tJcMWs3OQgghhCgFeugRQgghRCloH/6mxeAL1XEq3eqrr577Oa45sOKKKzZrA6l8xjLKhAkTknYHHHBAdQfc4FQr1fTv3z/ab7zxRrQ5nREAVl111WZtD0sU3hXK9ZO4X7mAFpAeO6fY+xR4lrH4emK3LQCceeaZ0b7pppuSbezKlaRVf7hvfbE0LorGtUf23XffpB337/Dhw5Ntw4YNa/Z7i0o1CNEe8fdMnj851GPMmDFJu7wyJL7UyDHHHBPtvn37Rvviiy/OPaaWFq2tNZqp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0Lt372i3Vd95ivpyiR56evXqhdGjR9fmqBw+i8wtDFtXXnhhYTHl8ePHR/u5555L2u2+++7RHjKkmuKXS8+gQfVZP7OefSnyMbO6LIip/mx9OtrYfO+995LXf/jDH6L9s5/9LNorrdSyBbEXLFgQ7d///vfRPu2005J2a6yxRov2v7TUY2zWoi/53tjS++JFF10UbT6ezp07J+34wZQflGbMmJG0YwfAzTff3Oz7bUlRX7abOj1FnekfiI455phor7LKKtFee+21k3b/7//9v2jvvffe0d50002Tdj169Ij2+uuvH+1tt902aTd27MLyL1OnTo32N7/5zdxjF0KIelPtH418gwLSB5unnkprtPJceNZZZ+Xuu2fPntHm+Xjy5Mm5x9utW7don3vuucm2oUMXrkf5178uXMt24403zt1fW/7RXG/yfsvbb7+dvH7ppZdyP8PKxKOPLlxNyasZb731VrT5gahr13Q1isMPPzzaL774YrOfB9J+5v77whe+gLZCMT1CCCGEKAV66BFCCCFEKdBDjxBCCCFKQZvG9FQboPWDH/wgee21zCY4UA4A+vfvH+2tt9462ttvv33SjrMWOCrdfw/H/kyZMiXaHDsEAGeccUazxyeEEPWgaP780Y9+FO0rr7wy2bbaaqtFe7PNNsvdR9++faPN2a7+uzkQ1sfgLL/88tHmuZ+PAUjjJTlY/Pjjj0/anXfewoXGO1IMTxHPPPNMtN99991kGwcRr7jiism2gw8+ONrHHntstF9++eWkHd9DOaDcZ6DxvZGz/DwcDP3qq69Gm++lwKJxtvVEnh4hhBBClAI99AghhBCiFLSblHXPY489Fm0upgQAG220UbS5lg6/DwC//OUvo83pd/Pnz0/asbuWXa0+/W7atGnR5rTKn//850m7YcOGRXunnXaCEEK0FXfffXe0u3RJ67VxcTqWpoBU9ufaPCuvvHLSjj/HMhPLWQDw2WefNdvOS1NrrbVWtHk+vummm5J2LG91ZLiuDqeY+xItnAbO5xpIa9Fxn3NKOZCWKeDihM8//3zSju+Z3M++2CFLZHw9zZw5M2nH15eXvmpRp4iRp0cIIYQQpUAPPUIIIYQoBW0qbxW5qu68885od+/ePdm25pprRptdejvuuGPSjtcB4Shyv3YMryvCn3n//feTdtOnT482S1hHHnlk0m7kyJHRlrwlhGhtOFPmnXfeiTZXTAaAjz/+OHcfLFWwXOLXV+J21VbW5/15KYZlEM5C8stkjBkzJtoDBw7M/d5G44MPPkhe8+9medLLkXwfY4kQSO+TfP+cN29e7ndzv/o+535mGczLW9yOj8FXeOZq0l7eqnVmnjw9QgghhCgFeugRQgghRCnQQ48QQgghSkGrx/TkacOs6QFppUgfq8MpclxdmTVNID8d0+uYvD+uSOkrj7JO/uabb0bba5Djx49vdn/AommGQghRa1577bVoc8kPTg32+BTzvLRyHxPJcyvP6T4Wo9r95cX++PmYy5V0pJgeX2mZ467Y9n3JMag+Ff3111+PNt8X/f1ovfXWa/Y4OnXqlLTjeyjH5/hUdD5e/l7flxwX5OPMVlhhBdQSeXqEEEIIUQr00COEEEKIUtDq8pZPfWvi5ptvTl7zAqFc1RFIZSx26Xl3qnehNeHdZ+xO5f2tuuqqufvjdpyKB6Qp9v/+97+TbQceeGCzxySEELWCwwU4BdyTt9iyx6ci523j/fG8Ciw6T+a143nWb2PGjRsX7aOOOiq3XaPh7098z+SKzL6/1llnnWj7Pmfpkrf5+zFLodxfvlwAp8QXLR7L21gu8xIe37t9mIrkLSGEEEKIFqCHHiGEEEKUgrrLW77aJrvTZs2aFe1XXnklaTdo0KBoe5mK3W7sqvNuMf4ct/Ouv7fffjvaXK3Sf6933TX3eSB19/ICbkJ0NLz8UG311LzFJz15ksvFF1+cvD755JObbefHOu+vpcfeCDzyyCPR5t/lz0fRvMhwdk1LzxPLNnwf8H3M7Xib/17O3upIeCkpT97xFZl5TPkFQrmydVF17bw+KoL35yXMvKreRRKWXwkh777bUuTpEUIIIUQp0EOPEEIIIUqBHnqEEEIIUQrqHtNTlAbJVZerTYkEUi2T9+81zpVXXjnaXKHUr0A7Y8aMZvfh0+oYXrV99dVXT7Z961vfinZHihNoj3BlbCCtUlpUfbbaVN1q4evBX1++0m1Hotrr28fPFMVq5PGVr3wl2r6SLMf4nHjiidH2sQMc2+CPieMZuM+qjW1oT0yZMiXaRXMkV5nv2bNnso37hc+Bn4/5vPFnfDs+3xwv6cfHW2+9FW1eFd7Hi0yfPh0dkXfeeSd5zbEwXEbFx8vmVV0G0lR0pmjscX/5sZJXNduPN74H8zH5tPx111032pyWXw/k6RFCCCFEKdBDjxBCCCFKQd3lrSL3WZHrkt2pRamURdJEtbLFdtttF+0HHngg2t4VzMfEx3v88cdX9T1lhfuvaBHCIq688spoX3311dGeNGlS0m7EiBHR3nnnnXP3l3dteJdx0cKI7IZmmc0vujd48ODc4+hosNub05zzqvF6pk6dmry+6KKLon3QQQdF20vKp5xySrS5GvEf//jHpF1RxXWWvhodlq34GvbSydlnnx3tM888M9nGi1bmpTwDaboxSxMsbQDp9cC2L1ey9957R/vxxx+PtperOTyiI+FLpfBrloH8YtY8P/lrmcdlkbSfd6/18zTfC/l6KLrnsvxWFIqSt5JCrZCnRwghhBClQA89QgghhCgFeugRQgghRClo9VXWGY6D8Ppv0eq6DOt/XmvmlHNeDsKXL999992jvfHGG0d77NixSTsu7X3nnXfmHhMfe0dOWWf9lzVaH7/RkpTw4447Lnn98MMPR5v16o022ihpd8YZZ0R7v/32i/YxxxyTtOvatWuz37sk6clrrLFGs/YHH3xQ9T4akWpjtIrieDgO7rLLLou2j3/60Y9+FG0ecw8++GDSbpdddom2j+NhfBwPc8IJJ0R7n332iTZfR40Cx7twzA3H6QDpePExPZxWzH3u+5XHI/e/j9tgeJz5dn/729+ivf/++0d79OjRSbt6x360FX5MzZs3L9qbb755tP154372Ket8roqWJcmj2vuxP3ZeQoLLevjrkH9LUfmaWiBPjxBCCCFKgR56hBBCCFEK2lTe4vRUXt3c4+URdoVxBUjvWvPVIZvw6a5c2XPLLbeMtnefcpplXspec8fbyBStyMu/s9qU5Pvvvz95fdNNN0X78ssvj3avXr2Sdttvv320uWIru0yBNP313HPPjfZf//rXpB3LWwcccEC0uf+BVLaaNm1asu13v/tdtH/2s59F+6GHHkra7bHHHmgNmlzV9b7+qt0/VwX+xz/+kWzj15yK7qvs/s///E+0X3zxxWh7Keb000+v6pgYn7596623RpuvsUaQt/xc17lz52hzqvDAgQOr3ieniLMMwvMgkMq5fBwtXcWeJUieBx599NGk3XrrrZe7bciQIVV9V3vEryrO8hafXz8f8+tah1X4/XHf8vf665DL0nA4C8t0QFrqoEiCrgUd5+4shBBCCFGAHnqE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)
%% Cell type:markdown id: tags:
Decide whether you want to work with the traditional or Fashin MNIST dataset, then extract 5000 training examples and
500 test examples.
%% Cell type:code id: tags:
``` python
i=0
for (image, label) in train_dataset.take(5000):
if i==0:
X_train = image.numpy().reshape((1,28*28))
y_train = np.array([label])
else:
X_train = np.concatenate([X_train, image.numpy().reshape((1,28*28))], axis=0)
y_train = np.concatenate([y_train, np.array([label])], axis=0)
i+=1
print("Shape of image training data : ", X_train.shape)
print("Shape of training data labels : ", y_train.shape)
```
%%%% Output: stream
Shape of image training data : (5000, 784)
Shape of training data labels : (5000,)
%% Cell type:code id: tags:
``` python
j=0
for (image, label) in test_dataset.take(500):
if j==0:
X_test = image.numpy().reshape((1,28*28))
y_test = np.array([label])
else:
X_test = np.concatenate([X_test, image.