{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "FhGuhbZ6M5tl" }, "source": [ "##### Copyright 2022 The TensorFlow Authors." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "cellView": "form", "execution": { "iopub.execute_input": "2024-08-15T02:42:37.904052Z", "iopub.status.busy": "2024-08-15T02:42:37.903750Z", "iopub.status.idle": "2024-08-15T02:42:37.907927Z", "shell.execute_reply": "2024-08-15T02:42:37.907393Z" }, "id": "AwOEIRJC6Une" }, "outputs": [], "source": [ "#@title Licensed under the Apache License, Version 2.0 (the \"License\");\n", "# you may not use this file except in compliance with the License.\n", "# You may obtain a copy of the License at\n", "#\n", "# https://www.apache.org/licenses/LICENSE-2.0\n", "#\n", "# Unless required by applicable law or agreed to in writing, software\n", "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "# See the License for the specific language governing permissions and\n", "# limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "id": "EIdT9iu_Z4Rb" }, "source": [ "# Multilayer perceptrons for digit recognition with Core APIs" ] }, { "cell_type": "markdown", "metadata": { "id": "bBIlTPscrIT9" }, "source": [ "\n", " \n", " \n", " \n", " \n", "
\n", " View on TensorFlow.org\n", " \n", " Run in Google Colab\n", " \n", " View source on GitHub\n", " \n", " Download notebook\n", "
" ] }, { "cell_type": "markdown", "metadata": { "id": "SjAxxRpBzVYg" }, "source": [ "This notebook uses the [TensorFlow Core low-level APIs](https://www.tensorflow.org/guide/core) to build an end-to-end machine learning workflow for handwritten digit classification with [multilayer perceptrons](https://developers.google.com/machine-learning/crash-course/introduction-to-neural-networks/anatomy) and the [MNIST dataset](http://yann.lecun.com/exdb/mnist). Visit the [Core APIs overview](https://www.tensorflow.org/guide/core) to learn more about TensorFlow Core and its intended use cases." ] }, { "cell_type": "markdown", "metadata": { "id": "GHVMVIFHSzl1" }, "source": [ "## Multilayer perceptron (MLP) overview\n", "\n", "The Multilayer Perceptron (MLP) is a type of feedforward neural network used to approach [multiclass classification](https://developers.google.com/machine-learning/crash-course/multi-class-neural-networks/video-lecture) problems. Before building an MLP, it is crucial to understand the concepts of perceptrons, layers, and activation functions.\n", "\n", "Multilayer Perceptrons are made up of functional units called perceptrons. The equation of a perceptron is as follows:\n", "\n", "$$Z = \\vec{w}⋅\\mathrm{X} + b$$\n", "\n", "where\n", "\n", "* $Z$: perceptron output\n", "* $\\mathrm{X}$: feature matrix\n", "* $\\vec{w}$: weight vector\n", "* $b$: bias\n", "\n", "When these perceptrons are stacked, they form structures called dense layers which can then be connected to build a neural network. A dense layer's equation is similar to that of a perceptron's but uses a weight matrix and a bias vector instead: \n", "\n", "$$Z = \\mathrm{W}⋅\\mathrm{X} + \\vec{b}$$\n", "\n", "where\n", "\n", "* $Z$: dense layer output\n", "* $\\mathrm{X}$: feature matrix\n", "* $\\mathrm{W}$: weight matrix\n", "* $\\vec{b}$: bias vector\n", "\n", "\n", "In an MLP, multiple dense layers are connected in such a way that the outputs of one layer are fully connected to the inputs of the next layer. Adding non-linear activation functions to the outputs of dense layers can help the MLP classifier learn complex decision boundaries and generalize well to unseen data." ] }, { "cell_type": "markdown", "metadata": { "id": "nchsZfwEVtVs" }, "source": [ "## Setup\n", "\n", "Import TensorFlow, [pandas](https://pandas.pydata.org), [Matplotlib](https://matplotlib.org) and [seaborn](https://seaborn.pydata.org) to get started." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:42:37.911404Z", "iopub.status.busy": "2024-08-15T02:42:37.911160Z", "iopub.status.idle": "2024-08-15T02:42:38.972888Z", "shell.execute_reply": "2024-08-15T02:42:38.971973Z" }, "id": "mSfgqmwBagw_" }, "outputs": [], "source": [ "# Use seaborn for countplot.\n", "!pip install -q seaborn" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:42:38.977320Z", "iopub.status.busy": "2024-08-15T02:42:38.977015Z", "iopub.status.idle": "2024-08-15T02:42:40.080782Z", "shell.execute_reply": "2024-08-15T02:42:40.080038Z" }, "id": "1rRo8oNqZ-Rj" }, "outputs": [], "source": [ "import pandas as pd\n", "import matplotlib\n", "from matplotlib import pyplot as plt\n", "import seaborn as sns\n", "import tempfile\n", "import os\n", "# Preset Matplotlib figure sizes.\n", "matplotlib.rcParams['figure.figsize'] = [9, 6]" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:42:40.084777Z", "iopub.status.busy": "2024-08-15T02:42:40.084427Z", "iopub.status.idle": "2024-08-15T02:42:42.330282Z", "shell.execute_reply": "2024-08-15T02:42:42.329593Z" }, "id": "9xQKvCJ85kCQ" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2024-08-15 02:42:40.333076: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:485] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n", "2024-08-15 02:42:40.354746: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:8454] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n", "2024-08-15 02:42:40.361197: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1452] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "2.17.0\n" ] } ], "source": [ "import tensorflow as tf\n", "import tensorflow_datasets as tfds\n", "print(tf.__version__)\n", "# Set random seed for reproducible results \n", "tf.random.set_seed(22)" ] }, { "cell_type": "markdown", "metadata": { "id": "F_72b0LCNbjx" }, "source": [ "## Load the data\n", "\n", "This tutorial uses the [MNIST dataset](http://yann.lecun.com/exdb/mnist), and demonstrates how to build an MLP model that can classify handwritten digits. The dataset is available from [TensorFlow Datasets](https://www.tensorflow.org/datasets/catalog/mnist).\n", "\n", "Split the MNIST dataset into training, validation, and testing sets. The validation set can be used to gauge the model's generalizability during training so that the test set can serve as a final unbiased estimator for the model's performance.\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:42:42.334192Z", "iopub.status.busy": "2024-08-15T02:42:42.333570Z", "iopub.status.idle": "2024-08-15T02:42:45.475022Z", "shell.execute_reply": "2024-08-15T02:42:45.474223Z" }, "id": "Uiuh0B098_3p" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n", "I0000 00:00:1723689763.643525 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "I0000 00:00:1723689763.647431 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689763.651238 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689763.654920 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689763.666036 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689763.669666 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689763.673186 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689763.676823 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689763.680217 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689763.683661 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689763.687067 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689763.690609 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689764.912743 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689764.914962 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689764.917035 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689764.919146 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689764.921130 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689764.923145 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689764.925108 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689764.927142 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689764.929008 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689764.931026 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689764.932989 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689764.935022 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689764.973656 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689764.975764 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689764.977753 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689764.979822 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689764.981723 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689764.983742 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689764.985714 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689764.987715 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689764.989620 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689764.992101 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689764.994475 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n", "I0000 00:00:1723689764.996904 128956 cuda_executor.cc:1015] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n" ] } ], "source": [ "train_data, val_data, test_data = tfds.load(\"mnist\", \n", " split=['train[10000:]', 'train[0:10000]', 'test'],\n", " batch_size=128, as_supervised=True)" ] }, { "cell_type": "markdown", "metadata": { "id": "X9uN3Lf6ANtn" }, "source": [ "The MNIST dataset consists of handwritten digits and their corresponding true labels. Visualize a couple of examples below." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:42:45.478547Z", "iopub.status.busy": "2024-08-15T02:42:45.478288Z", "iopub.status.idle": "2024-08-15T02:42:46.622668Z", "shell.execute_reply": "2024-08-15T02:42:46.622003Z" }, "id": "6V8hSqJ7AMjQ" }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x_viz, y_viz = tfds.load(\"mnist\", split=['train[:1500]'], batch_size=-1, as_supervised=True)[0]\n", "x_viz = tf.squeeze(x_viz, axis=3)\n", "\n", "for i in range(9):\n", " plt.subplot(3,3,1+i)\n", " plt.axis('off')\n", " plt.imshow(x_viz[i], cmap='gray')\n", " plt.title(f\"True Label: {y_viz[i]}\")\n", " plt.subplots_adjust(hspace=.5)\n" ] }, { "cell_type": "markdown", "metadata": { "id": "bRald9dSE4qS" }, "source": [ "Also review the distribution of digits in the training data to verify that each class is well represented in the dataset.\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:42:46.626775Z", "iopub.status.busy": "2024-08-15T02:42:46.626486Z", "iopub.status.idle": "2024-08-15T02:42:46.817862Z", "shell.execute_reply": "2024-08-15T02:42:46.817137Z" }, "id": "Rj3K4XgQE7qR" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwUAAAIjCAYAAABS57fmAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA+eUlEQVR4nO3deVxVdeL/8fcFZElZxGQzcKvcyj0NtVwiEdO0NLWYsjSdaTBT5mtK5dpCOmaMZpJWmg1kq5b2VTNNbHHFtM1cytBRgRoFFBMV7u+Pft7v3AFcEDj3+nk9H4/zeHQ/53PPfZ8zffveN2e5NrvdbhcAAAAAY3lYHQAAAACAtSgFAAAAgOEoBQAAAIDhKAUAAACA4SgFAAAAgOEoBQAAAIDhKAUAAACA4SgFAAAAgOEoBQAAAIDhKAUAAHXr1k3dunWr0HsffPBBNWjQoFLzXMiiRYtks9n0yy+/VPln/ff+/fLLL7LZbJo5c2aVf7YkTZkyRTabrVo+C4C5KAUAjHHui6TNZtMXX3xRar3dbldkZKRsNpv69OnjtO7c+1544YVyt7tt2zbH2Lkvcr/99pvT3OXLl6tr164KCQnRVVddpUaNGmnQoEFatWqVpD++nJ/7rPMtU6ZMKXc/H3zwQae5tWrVUqNGjTRw4EC9//77KikpuZTDdslOnjypKVOmaP369Rc1f/369U55fXx8FBoaqm7duum5557Tr7/+akmu6uTK2QCYwcvqAABQ3Xx9fZWenq4uXbo4jWdkZOhf//qXfHx8yn3v3//+dz3yyCO66qqrLvlzZ86cqXHjxqlr165KSkrSVVddpX379unTTz/VkiVL1KtXLz355JN6+OGHHe/ZunWrZs+erSeeeELNmjVzjLds2fK8n+Xj46NXX31VkvT7778rKytLy5cv18CBA9WtWzd9+OGHCggIcMz/5JNPLnl/zlmwYIFT0Th58qSmTp0qSZd09mH06NG66aabVFxcrF9//VVfffWVJk+erFmzZumdd95Rjx49HHPvv/9+DRky5Lz/W/23iub67/2rCufL9tRTT2nChAlV+vkAQCkAYJzevXvr3Xff1ezZs+Xl9X//GUxPT1e7du1K/XX/nNatW2vHjh1KTU1VYmLiJX3m2bNn9fTTT+v2228v8wt4bm6uJOn22293Gvf19dXs2bN1++23X9IXWS8vL/3pT39yGnvmmWf0/PPPKykpSSNGjNDbb7/tWOft7X0Je+OsRo0aFX7vf7rllls0cOBAp7GdO3eqZ8+eGjBggH744QeFh4dLkjw9PeXp6Vkpn1uewsJC1axZs9L2r6K8vLyc/j0FgKrA5UMAjHPvvffq3//+t9asWeMYO336tN577z3dd9995b6vc+fO6tGjh2bMmKHff//9kj7zt99+U0FBgTp37lzm+pCQkEvaXkVNmDBBPXv21Lvvvqs9e/Y4xsu6pyArK0t33nmnatasqZCQEI0dO1arV6+WzWZzuszlP6+5/+WXX1S3bl1J0tSpUy/qcqfzadWqlVJSUpSXl6eXXnrJMV7WPQXbtm1TbGysrr76avn5+alhw4YaNmzYReV68MEHVatWLf3000/q3bu3/P39FR8fX2r//tuLL76o+vXry8/PT127dtV3333ntL68ezUu5ZiVdU/BuZLZuHFj+fj4qEGDBnriiSdUVFTkNK9Bgwbq06ePvvjiC3Xo0EG+vr5q1KiRFi9eXPYBB2AsSgEA4zRo0EDR0dF66623HGMrV65Ufn6+hgwZct73TpkyRTk5OZo3b94lfWZISIj8/Py0fPlyHT16tEK5K8v9998vu93uVIr+W2FhoXr06KFPP/1Uo0eP1pNPPqmvvvpK48ePP++269at6zg2d911l9588029+eabuvvuuyucd+DAgfLz8zvvJU65ubnq2bOnfvnlF02YMEFz5sxRfHy8Nm3adNG5zp49q9jYWIWEhGjmzJkaMGDAeXMtXrxYs2fPVkJCgpKSkvTdd9+pR48eysnJuaT9q8gxe/jhhzVp0iS1bdtWL774orp27ark5OQy//3dt2+fBg4cqNtvv10vvPCCateurQcffFDff//9JeUEcGXjfCQAI913331KSkrS77//Lj8/P6Wlpalr166KiIg47/tuueUWde/e3XFvgZ+f30V9noeHh8aNG6dp06YpKipKt956q7p06aJevXqpbdu2lbFLF+2GG26QJP3000/lznnllVf0888/a9myZerXr58k6c9//rPatGlz3m3XrFlTAwcO1COPPKKWLVuWuoSpImrUqKHrr7/+vHm/+uorHTt2TJ988onat2/vGH/mmWcuOldRUZHuueceJScnX1Suffv2ae/evapXr54kqVevXurYsaOmT5+uWbNmXfT+Xeox27lzp9544w09/PDDWrBggSTpr3/9q6PMfPbZZ+revbtj/u7du7VhwwbdcsstkqRBgwYpMjJSCxcurLYnKAFwfZwpAGCkQYMG6ffff9eKFSt0/PhxrVix4ryXDv2nKVOmKDs7W6mpqZf0mVOnTlV6erratGmj1atX68knn1S7du3Utm1b7dq1qyK7USG1atWSJB0/frzcOatWrVK9evV05513OsZ8fX01YsSIKs9Xllq1ap03b1BQkCRpxYoVOnPmTIU/55FHHrnouf3793cUAknq0KGDOnbsqP/93/+t8OdfjHPb/+/7Wv72t79Jkj7++GOn8ebNmzsKgfTHmYkmTZro559/rtKcANwLpQCAkerWrauYmBilp6frgw8+UHFxcambXMtz6623qnv37hW6t+Dee+/V559/7vir9n333aevv/5affv21alTpyqyK5fsxIkTkiR/f/9y52RlZalx48alrmW/9tprqzRbeU6cOHHevF27dtWAAQM0depUXX311erXr58WLlxY6hr78/Hy8tI111xz0fOvu+66UmPXX399lf92QlZWljw8PEr9bxEWFqagoCBlZWU5jUdFRZXaRu3atXXs2LEqzQnAvVAKABjrvvvu08qVK5Wamqq4uDjHX5svxuTJk5Wdna1XXnmlQp8dEBCg22+/XWlpaRo6dKh++uknbd68uULbulTnboa16gv+pTpz5oz27Nlz3rw2m03vvfeeNm7cqFGjRunQoUMaNmyY2rVr5yhBF+Lj4yMPj8r9f4vl/ehYcXFxlW37v5X3lCa73X7ZGQBcOSgFAIx11113ycPDQ5s2bbroS4fO6dq1q7p166bp06df8tmC/3buGvgjR45c1nYu1ptvvimbzVbq8af/qX79+vrpp59KfXHct2/fBbdf2b+++9577+n3339XbGzsBefefPPNevbZZ7Vt2zalpaXp+++/15IlS6ok1969e0uN7dmzx+lJRbVr11ZeXl6pef/91/xLyVa/fn2VlJSU+vycnBzl5eWpfv36F70tADiHUgDAWLVq1dK8efM0ZcoU9e3b95Lff+7egvnz519w7smTJ7Vx48Yy161cuVKS1KRJk0vOcKmef/55ffLJJxo8eHCZl7+cExsbq0OHDumjjz5yjJ06dcpxY+v5nPtht7K+DF+qnTt3asyYMapdu7YSEhLKnXfs2LFSBaZ169aS5LiEqDJzSdKyZct06NAhx+stW7Zo8+bNiouLc4w1btxYP/74o9OvMu/cuVNffvml07YuJVvv3r0lSSkpKU7j525uvuOOOy5pPwBA4ulDAAw3dOjQCr+3a9eu6tq1qzIyMi449+TJk+rUqZNuvvlm9erVS5GRkcrLy9OyZcv0+eefq3///hd8ss+lOHv2rP75z39K+uPLfFZWlj766CN988036t69+wWLzJ///Ge99NJLuvfee/XYY48pPDxcaWlp8vX1lXT+v2z7+fmpefPmevvtt3X99dcrODhYN9xwg+OpR+X5/PPPderUKRUXF+vf//63vvzyS3300UcKDAzU0qVLFRYWVu5733jjDb388su666671LhxYx0/flwLFixQQECA40t0RXOV59prr1WXLl30yCOPqKioSCkpKapTp44ef/xxx5xhw4Zp1qxZio2N1fDhw5Wbm6vU1FS1aNFCBQUFFTpmrVq10tChQzV//nzl5eWpa9eu2rJli9544w3179/f6clDAHCxKAUAcBmmTJlyUV/CgoKCtGDBAn388cdauHChsrOz5enpqSZNmujvf/+7Ro8eXam5ioqKdP/990v646/QISEhateunSZNmuS4bOp8atWqpXXr1unRRx/VP/7xD9WqVUsPPPCAOnXqpAEDBjjKQXleffVVPfrooxo7dqxOnz6tyZMnX/DL9+zZsyX98QjSoKAgNWvWTFOnTtWIESMcP+5VnnNfjJcsWaKcnBwFBgaqQ4cOSktLU8OGDS8rV3keeOABeXh4KCUlRbm5uerQoYNeeuklx68uS1KzZs20ePFiTZo0SYmJiWrevLnefPNNpaenO/0A3KVme/XVV9WoUSMtWrTIUZiSkpI0efLkCu0LANjs3GkEALhIKSkpGjt2rP71r385PY4TAODeKAUAgDKd+2G3c06dOqU2bdqouLhYe/bssTAZAKCycfkQAKBMd999t6KiotS6dWvl5+frn//8p3788UelpaVZHQ0AUMkoBQCAMsXGxurVV19VWlqaiouL1bx5cy1ZskSDBw+2OhoAoJJx+RAAAABgOH6nAAAAADAcpQAAAAAwHPcUSCopKdHhw4fl7+9/ST81DwAAALgqu92u48ePKyIi4oK/T0MpkHT48GFFRkZaHQMAAACodAcPHtQ111xz3jmUAkn+/v6S/jhgAQEBFqcBAAAA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tHbtWq6HRil2u12jRo3S0qVLtW7dOjVs2NDqSC6rpKRERUVFVsewzG233aZvv/1WO3bscCzt27dXfHy8duzYQSH4/06cOKGffvpJ4eHhVkexVOfOnUs93njPnj2qX7++RYlcy8KFCxUSEqI77rjD6iiWO3nypDw8nL9Cenp6qqSkxKJErqdmzZoKDw/XsWPHtHr1avXr18/qSBfEmQIXkZiYqKFDh6p9+/bq0KGDUlJSVFhYqIceesjqaJY6ceKE01/v9u/frx07dig4OFhRUVEWJrNOQkKC0tPT9eGHH8rf31/Z2dmSpMDAQPn5+VmczjpJSUmKi4tTVFSUjh8/rvT0dK1fv16rV6+2Oppl/P39S91rUrNmTdWpU8foe1D+53/+R3379lX9+vV1+PBhTZ48WZ6enrr33nutjmapsWPHqlOnTnruuec0aNAgbdmyRfPnz9f8+fOtjma5kpISLVy4UEOHDpWXF1+d+vbtq2effVZRUVFq0aKFvv76a82aNUvDhg2zOprlVq9eLbvdriZNmmjfvn0aN26cmjZt6h7f56x+/BH+z5w5c+xRUVF2b29ve4cOHeybNm2yOpLlPvvsM7ukUsvQoUOtjmaZso6HJPvChQutjmapYcOG2evXr2/39va2161b137bbbfZP/nkE6tjuRweSWq3Dx482B4eHm739va216tXzz548GD7vn37rI7lEpYvX26/4YYb7D4+PvamTZva58+fb3Ukl7B69Wq7JPvu3butjuISCgoK7I899pg9KirK7uvra2/UqJH9ySeftBcVFVkdzXJvv/22vVGjRnZvb297WFiYPSEhwZ6Xl2d1rItis9v5+TkAAADAZNxTAAAAABiOUgAAAAAYjlIAAAAAGI5SAAAAABiOUgAAAAAYjlIAAAAAGI5SAAAAABiOUgAAAAAYjlIAAKhUNptNy5Ytu+j569evl81mU15eXpVlAgCcH6UAAHBRHnzwQdlsNtlsNtWoUUOhoaG6/fbb9frrr6ukpMQx78iRI4qLi7vo7Xbq1ElHjhxRYGCgJGnRokUKCgqq7PgAgPOgFAAALlqvXr105MgR/fLLL1q5cqW6d++uxx57TH369NHZs2clSWFhYfLx8bnobXp7eyssLEw2m62qYgMALoBSAAC4aD4+PgoLC1O9evXUtm1bPfHEE/rwww+1cuVKLVq0SFLpy4e++uortW7dWr6+vmrfvr2WLVsmm82mHTt2SHK+fGj9+vV66KGHlJ+f7zgrMWXKFEnSyy+/rOuuu06+vr4KDQ3VwIEDq3fnAeAK5mV1AACAe+vRo4datWqlDz74QA8//LDTuoKCAvXt21e9e/dWenq6srKyNGbMmHK31alTJ6WkpGjSpEnavXu3JKlWrVratm2bRo8erTfffFOdOnXS0aNH9fnnn1flbgGAUSgFAIDL1rRpU33zzTelxtPT02Wz2bRgwQL5+vqqefPmOnTokEaMGFHmdry9vRUYGCibzaawsDDH+IEDB1SzZk316dNH/v7+ql+/vtq0aVNl+wMApuHyIQDAZbPb7WXeE7B79261bNlSvr6+jrEOHTpc8vZvv/121a9fX40aNdL999+vtLQ0nTx58rIyAwD+D6UAAHDZdu3apYYNG1bZ9v39/bV9+3a99dZbCg8P16RJk9SqVSseYwoAlYRSAAC4LOvWrdO3336rAQMGlFrXpEkTffvttyoqKnKMbd269bzb8/b2VnFxcalxLy8vxcTEaMaMGfrmm2/0yy+/aN26dZe/AwAASgEA4OIVFRUpOztbhw4d0vbt2/Xcc8+pX79+6tOnjx544IFS8++77z6VlJRo5MiR2rVrl1avXq2ZM2dKUrmPIG3QoIFOnDihtWvX6rffftPJkye1YsUKzZ49Wzt27FBWVpYWL16skpISNWnSpEr3FwBMQSkAAFy0VatWKTw8XA0aNFCvXr302Wefafbs2frwww/l6elZan5AQICWL1+uHTt2qHXr1nryySc1adIkSXK6z+A/derUSX/5y180ePBg1a1bVzNmzFBQUJA++OAD9ejRQ82aNVNqaqreeusttWjRokr3FwBMYbPb7XarQwAAzJGWlub4LQI/Pz+r4wAAxCNJAQBVbPHixWrUqJHq1aunnTt3avz48Ro0aBCFAABcCKUAAFClsrOzNWnSJGVnZys8PFz33HOPnn32WatjAQD+A5cPAQAAAIbjRmMAAADAcJQCAAAAwHCUAgAAAMBwlAIAAADAcJQCAAAAwHCUAgAAAMBwlAIAAADAcJQCAAAAwHD/D2+GMf1XOiZ3AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sns.countplot(x=y_viz.numpy());\n", "plt.xlabel('Digits')\n", "plt.title(\"MNIST Digit Distribution\");" ] }, { "cell_type": "markdown", "metadata": { "id": "x_Wt4bDx_BRV" }, "source": [ "## Preprocess the data\n", "\n", "First, reshape the feature matrices to be 2-dimensional by flattening the images. Next, rescale the data so that the pixel values of [0,255] fit into the range of [0,1]. This step ensures that the input pixels have similar distributions and helps with training convergence." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:42:46.821650Z", "iopub.status.busy": "2024-08-15T02:42:46.821159Z", "iopub.status.idle": "2024-08-15T02:42:46.871252Z", "shell.execute_reply": "2024-08-15T02:42:46.870505Z" }, "id": "JSyCm2V2_AvI" }, "outputs": [], "source": [ "def preprocess(x, y):\n", " # Reshaping the data\n", " x = tf.reshape(x, shape=[-1, 784])\n", " # Rescaling the data\n", " x = x/255\n", " return x, y\n", "\n", "train_data, val_data = train_data.map(preprocess), val_data.map(preprocess)" ] }, { "cell_type": "markdown", "metadata": { "id": "6o3CrycBXA2s" }, "source": [ "## Build the MLP \n", "\n", "Start by visualizing the [ReLU](https://developers.google.com/machine-learning/glossary#ReLU) and [Softmax](https://developers.google.com/machine-learning/glossary#softmax) activation functions. Both functions are available in `tf.nn.relu` and `tf.nn.softmax` respectively. The ReLU is a non-linear activation function that outputs the input if it is positive and 0 otherwise: \n", "\n", "$$\\text{ReLU}(X) = max(0, X)$$" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:42:46.875173Z", "iopub.status.busy": "2024-08-15T02:42:46.874456Z", "iopub.status.idle": "2024-08-15T02:42:47.840520Z", "shell.execute_reply": "2024-08-15T02:42:47.839823Z" }, "id": "hYunzt3UyT9G" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwkAAAIjCAYAAABI21doAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABmk0lEQVR4nO3deVxU9eLG8WfYBkVBEWVRRNxwB9EkbVFvFJp1pcX93tSbdSutjKy0W9p2s9UspaxuZXXd0kwrzTLMzERNAbfU1HAXXFmVdc7vD6/za3IDBM4An/frNa/izPecec5xHOfhzPeMxTAMQwAAAADwPy5mBwAAAADgXCgJAAAAABxQEgAAAAA4oCQAAAAAcEBJAAAAAOCAkgAAAADAASUBAAAAgANKAgAAAAAHlAQAAAAADigJAIALGjFihJo1a2bKYz/zzDOyWCymPHZOTo5GjRqlgIAAWSwWjR071pQcl2PmMQJQ/VESANRIM2fOlMVisd/c3NzUuHFjjRgxQocOHSrTNleuXCmLxaIFCxZcdIzFYtGYMWMueN+CBQtksVi0cuXKMj1+WRw+fFjPPPOMUlJSKu0xzzl9+rSeeeaZSt3fknjxxRc1c+ZM3X///fr000/197//3bQsznqMAFR/bmYHAAAzPffccwoNDVVeXp7Wrl2rmTNnavXq1dq6das8PT3NjlfhDh8+rGeffVbNmjVTRESEw33vv/++bDZbhT326dOn9eyzz0qSevXq5XDfU089pfHjx1fYY1/KihUrdPXVV2vSpEmmPP4fOesxAlD9URIA1Gh9+/ZV165dJUmjRo2Sn5+fXn75ZX355ZcaOHCgyenM5e7ubtpju7m5yc3NnH+ijh49qnbt2pny2KVh5jECUP3xcSMA+IPrrrtOkrRnzx6H5Tt27NCdd94pX19feXp6qmvXrvryyy/NiKh9+/bpgQceUFhYmGrVqqUGDRpowIAB2rt373ljMzIy9Mgjj6hZs2ayWq1q0qSJ7rrrLh0/flwrV67UVVddJUkaOXKk/aNXM2fOlOQ4J6GwsFC+vr4aOXLkeY+RlZUlT09PjRs3TpJUUFCgiRMnqkuXLvLx8ZGXl5euu+46/fDDD/Z19u7dq4YNG0qSnn32WftjP/PMM5Iu/Hn7oqIiPf/882rRooWsVquaNWumJ598Uvn5+Q7jmjVrpltuuUWrV69Wt27d5OnpqebNm+uTTz655HE993Gx1NRULVmyxJ5p79699o+n/fkYn1vnjx8H6tWrlzp06KBff/1VvXv3Vu3atdW4cWO98sor5z1mXl6ennnmGbVu3Vqenp4KDAzU7bffrj179jjlMQJQc1ASAOAPzr0JrF+/vn3Ztm3bdPXVV2v79u0aP368Xn/9dXl5eSk2NlZffPFFpWf85ZdftGbNGg0ePFhvvfWW7rvvPiUkJKhXr146ffq0fVxOTo6uu+46TZs2TTfddJPefPNN3XfffdqxY4cOHjyotm3b6rnnnpMk3Xvvvfr000/16aef6vrrrz/vMd3d3XXbbbdp0aJFKigocLhv0aJFys/P1+DBgyWdLQ3/+c9/1KtXL7388st65plndOzYMcXExNjnPjRs2FDvvPOOJOm2226zP/btt99+0f0eNWqUJk6cqMjISL3xxhvq2bOnJk+ebH/cP9q9e7fuvPNO3XjjjXr99ddVv359jRgxQtu2bbvo9tu2batPP/1Ufn5+ioiIsGc690a9NE6dOqU+ffooPDxcr7/+utq0aaMnnnhC33zzjX1McXGxbrnlFj377LPq0qWLXn/9dT388MPKzMzU1q1bnfIYAahBDACogT766CNDkvH9998bx44dMw4cOGAsWLDAaNiwoWG1Wo0DBw7Yx95www1Gx44djby8PPsym81m9OjRw2jVqpV92Q8//GBIMubPn3/Rx5VkjB49+oL3zZ8/35Bk/PDDD5fMfvr06fOWJSYmGpKMTz75xL5s4sSJhiRj4cKF54232WyGYRjGL7/8YkgyPvroo/PGDB8+3AgJCbH//O233xqSjK+++sph3M0332w0b97c/nNRUZGRn5/vMObUqVOGv7+/8Y9//MO+7NixY4YkY9KkSec99qRJk4w//hOVkpJiSDJGjRrlMG7cuHGGJGPFihX2ZSEhIYYkY9WqVfZlR48eNaxWq/Hoo4+e91h/FhISYvTr189h2bnnS2pqqsPyc3/mf/wz69mz53l/Fvn5+UZAQIBxxx132Jd9+OGHhiRjypQp52U49+fjrMcIQPXHmQQANVp0dLQaNmyo4OBg3XnnnfLy8tKXX36pJk2aSJJOnjypFStWaODAgcrOztbx48d1/PhxnThxQjExMdq1a1eZr4ZUVrVq1bL/f2FhoU6cOKGWLVuqXr16SkpKst/3+eef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64knntDOnTu1cOHCio5smuPHj6u4uPiCz5kdO3ZccJ20tLQa/xyTynbswsLC9OGHH6pTp07KzMzUa6+9ph49emjbtm1q0qRJZcSusi72vMvKytKZM2dUq1Ytk5I5v8DAQM2YMUNdu3ZVfn6+/vOf/6hXr15at26dIiMjzY5nGpvNprFjx+qaa65Rhw4dLjrOWV/zOJNQQcaPH3/BSTx/vP35Rf7QoUPq06ePBgwYoHvuucek5M6hLMevNAYPHqy//vWv6tixo2JjY/X111/rl19+0cqVK8tvJ0xS0ceuOqvoY3fvvfcqJiZGHTt21LBhw/TJJ5/oiy++0J49e8pxL1CTde/eXXfddZciIiLUs2dPLVy4UA0bNtS7775rdjRUY2FhYfrnP/+pLl26qEePHvrwww/Vo0cPvfHGG2ZHM9Xo0aO1detWzZ071+woZcKZhAry6KOPasSIEZcc07x5c/v/Hz58WL1791aPHj303nvvXXK9gIAAFRQUKCMjw+FsQnp6ugICAq4kttMo7fG7Us2bN5efn592796tG264ody2a4aKPHbnnl/p6ekKDAy0L09PT1dERESZtulMSnrsAgICzps4WlRUpJMnT5bq72BUVJSks2cQW7RoUeq8VYGfn59cXV3Pu/rapV6vAgICSjW+uirLsfszd3d3de7cWbt3766IiNXKxZ533t7enEUog27dumn16tVmxzDNmDFj7Be1uNxZPGd9zaMkVJCGDRuqYcOGJRp76NAh9e7dW126dNFHH30kF5dLn+Dp0qWL3N3dlZCQoDvuuEPS2SsK7N+/X927d7/i7M6gNMevPBw8eFAnTpxweONbVVXksQsNDVVAQIASEhLspSArK0vr1q0r9dWlnFFJj1337t2VkZGhjRs3qkuXLpKkFStWyGaz2d/4l0RKSookVYvn3cV4eHioS5cuSkhIUGxsrKSzp+ATEhI0ZsyYC67TvXt3JSQkaOzYsfZly5cvrzavbyVVlmP3Z8XFxdqyZYtuvvnmCkxaPXTv3v28y07WxOddeUlJSanWr20XYxiGHnzwQX3xxRdauXKlQkNDL7uO077mmTptGsbBgweNli1bGjfccINx8OBB48iRI/bbH8eEhYUZ69atsy+77777jKZNmxorVqwwNmzYYHTv3t3o3r27Gbtgun379hnJycnGs88+a9SpU8dITk42kpOTjezsbPuYsLAwY+HChYZhGEZ2drYxbtw4IzEx0UhNTTW+//57IzIy0mjVqpWRl5dn1m6YorTHzjAM46WXXjLq1atnLF682Ni8ebPRv39/IzQ01Dhz5owZu2CaPn36GJ07dzbWrVtnrF692mjVqpUxZMgQ+/1//nu7e/du47nnnjM2bNhgpKamGosXLzaaN29uXH/99WbtQqWZO3euYbVajZkzZxq//vqrce+99xr16tUz0tLSDMMwjL///e/G+PHj7eN//vlnw83NzXjttdeM7du3G5MmTTLc3d2NLVu2mLULpintsXv22WeNb7/91tizZ4+xceNGY/DgwYanp6exbds2s3bBNNnZ2fbXNEnGlClTjOTkZGPfvn2GYRjG+PHjjb///e/28b///rtRu3Zt47HHHjO2b99uxMfHG66ursayZcvM2gXTlPbYvfHGG8aiRYuMXbt2GVu2bDEefvhhw8XFxfj+++/N2gXT3H///YaPj4+xcuVKh/d0p0+fto+pKq95lASTffTRR4akC97OSU1NNSQZP/zwg33ZmTNnjAceeMCoX7++Ubt2beO2225zKBY1yfDhwy94/P54vCQZH330kWEYhnH69GnjpptuMho2bGi4u7sbISEhxj333GP/R7cmKe2xM4yzl0F9+umnDX9/f8NqtRo33HCDsXPnzsoPb7ITJ04YQ4YMMerUqWN4e3sbI0eOdChXf/57u3//fuP66683fH19DavVarRs2dJ47LHHjMzMTJP2oHJNmzbNaNq0qeHh4WF069bNWLt2rf2+nj17GsOHD3cY/9lnnxmtW7c2PDw8jPbt2xtLliyp5MTOozTHbuzYsfax/v7+xs0332wkJSWZkNp85y7L+efbueM1fPhwo2fPnuetExERYXh4eBjNmzd3eO2rSUp77F5++WWjRYsWhqenp+Hr62v06tXLWLFihTnhTXax93R/fC5Vldc8i2EYRkWeqQAAAABQtXB1IwAAAAAOKAkAAAAAHFASAAAAADigJAAAAABwQEkAAAAA4ICSAAAAAMABJQEAAACAA0oCAAAAAAeUBAAAAAAOKAkAAAAAHFASAAAAADigJAAAKt2xY8cUEBCgF1980b5szZo18vDwUEJCgonJAACSZDEMwzA7BACg5lm6dKliY2O1Zs0ahYWFKSIiQv3799eUKVPMjgYANR4lAQBgmtGjR+v7779X165dtWXLFv3yyy+yWq1mxwKAGo+SAAAwzZkzZ9ShQwcdOHBAGzduVMeOHc2OBAAQcxIAACbas2ePDh8+LJvNpr1795odBwDwP5xJAACYoqCgQN26dVNERITCwsI0depUbdmyRY0aNTI7GgDUeJQEAIApHnvsMS1YsECbNm1SnTp11LNnT/n4+Ojrr782OxoA1Hh83AgAUOlWrlypqVOn6tNPP5W3t7dcXFz06aef6qefftI777xjdjwAqPE4kwAAAADAAWcSAAAAADigJAAAAABwQEkAAAAA4ICSAAAAAMABJQEAAACAA0oCAAAAAAeUBAAAAAAOKAkAAAAAHFASAAAAADigJAAAAABwQEkAAAAA4OD/AN7+ALik2+4/AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = tf.linspace(-2, 2, 201)\n", "x = tf.cast(x, tf.float32)\n", "plt.plot(x, tf.nn.relu(x));\n", "plt.xlabel('x')\n", "plt.ylabel('ReLU(x)')\n", "plt.title('ReLU activation function');" ] }, { "cell_type": "markdown", "metadata": { "id": "fuGrM9jMwsRM" }, "source": [ "The softmax activation function is a normalized exponential function that converts $m$ real numbers into a probability distribution with $m$ outcomes/classes. This is useful for predicting class probabilities from a neural network's output:\n", "\n", "$$\\text{Softmax}(X) = \\frac{e^{X}}{\\sum_{i=1}^{m}e^{X_i}}$$" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:42:47.844325Z", "iopub.status.busy": "2024-08-15T02:42:47.844030Z", "iopub.status.idle": "2024-08-15T02:42:48.036538Z", "shell.execute_reply": "2024-08-15T02:42:48.035916Z" }, "id": "fVM8pvhWwuwI" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxIAAAIjCAYAAACXlS13AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABuxElEQVR4nO3deVyVZf7/8fc5LAfZBRREUXDJXTFRxBY1KUqbxlZ1mjS/tn2nTKOm1K9pNVO0jI1TOjo2pU2TP82prMyx1GwbyQW1XNJRc1c2EVCQ7Zz79wdy8gQqIHhz4PV8PM7Aue7rvu/PfYPNeXNf131bDMMwBAAAAAA1YDW7AAAAAADuhyABAAAAoMYIEgAAAABqjCABAAAAoMYIEgAAAABqjCABAAAAoMYIEgAAAABqjCABAAAAoMYIEgAAAABqjCABALX0yiuvqH379vLw8FBsbKzZ5biNhQsXymKx6MCBA5d9319++aUsFou+/PLLy75vyT1+Z8w+RwDcB0ECQJOwbds23XHHHWrXrp18fHzUunVrXX/99Xr99ddrtb3PP/9cTz75pK666iotWLBAL7zwgo4dO6ZnnnlGW7durdvi3dQLL7ygZcuWmbLvv/71r1q4cKEp+z6fqn5nzNQQzxEA92IxDMMwuwgAqE/r1q3TkCFD1LZtW40dO1YRERE6fPiwvvvuO+3bt0979+6t8TYnT56sV155RWfOnJG3t7ckadOmTerXr58WLFige++9t46Pwv34+/vrjjvuqPRh1W63q7S0VDabTRaLpV723aNHD4WFhVX6q7rD4VBJSYm8vb1ltV7ev6VV9TtjpoZ4jgC4F0+zCwCA+vb8888rKChIGzduVHBwsMuyzMzMWm0zMzNTzZo1axAfCN2Nh4eHPDw8TNm31WqVj4+PKft2l98ZM88RAPfCnxoANHr79u1T9+7dK4UISWrZsqXL+7KyMv3hD39Qhw4dZLPZFB0dralTp6q4uNjZx2KxaMGCBSooKJDFYpHFYtHChQvVr18/SdK4ceNc2iVp8ODB6tGjh3744QcNGjRIvr6+6tixo/71r39Jkr766ivFx8erWbNm6ty5s1avXu1S18GDB/W73/1OnTt3VrNmzRQaGqo777zTZZ6BYRgaMmSIWrRo4RKQSkpK1LNnT3Xo0EEFBQXnPU8lJSWaPn26+vbtq6CgIPn5+emaa67R2rVrK/V1OBz6y1/+op49e8rHx0ctWrTQjTfeqE2bNjnPUUFBgd5++23nuai4SvPLORI333yz2rdvX2VNCQkJiouLc75fsGCBrrvuOrVs2VI2m03dunXT3LlzXdaJjo7Wjh079NVXXzn3PXjwYEnnH/+/dOlS9e3bV82aNVNYWJh++9vf6ujRoy597r33Xvn7++vo0aMaMWKE/P391aJFCz3xxBOy2+3nPa8V56Oq35kDBw64/J78cp1nnnnG+f6ZZ56RxWLR3r17de+99yo4OFhBQUEaN26cCgsLK63/z3/+U/3795evr6+aN2+ua6+9Vp9//nmDPUcA3A9BAkCj165dO6WlpWn79u0X7Xvfffdp+vTpuvLKK/XnP/9ZgwYNUkpKikaNGuXs88477+iaa66RzWbTO++8o3feeUddu3bVc889J0l64IEHnO3XXnutc72TJ0/q5ptvVnx8vF5++WXZbDaNGjVKS5Ys0ahRozRs2DC9+OKLKigo0B133KFTp0451924caPWrVunUaNG6bXXXtNDDz2kNWvWaPDgwc4PkRaLRW+99ZaKior00EMPOdedMWOGduzYoQULFsjPz++8x56fn6+///3vGjx4sF566SU988wzysrKUlJSUqV5H+PHj9ekSZMUFRWll156SZMnT5aPj4++++475zmy2Wy65pprnOfiwQcfrHK/I0eO1P79+7Vx40aX9oMHD+q7775zOfdz585Vu3btNHXqVM2cOVNRUVH63e9+pzlz5jj7zJo1S23atFGXLl2c+/6///u/8x73woULddddd8nDw0MpKSm6//779cEHH+jqq69Wbm6uS1+73a6kpCSFhobqT3/6kwYNGqSZM2dq/vz5591+xfn45e/Mub8bNXHXXXfp1KlTSklJ0V133aWFCxfq2Wefdenz7LPP6p577pGXl5eee+45Pfvss4qKitIXX3zRYM8RADdkAEAj9/nnnxseHh6Gh4eHkZCQYDz55JPGZ599ZpSUlLj027p1qyHJuO+++1zan3jiCUOS8cUXXzjbxo4da/j5+bn027hxoyHJWLBgQaUaBg0aZEgyFi1a5GzbtWuXIcmwWq3Gd99952z/7LPPKm2nsLCw0jZTU1MNScY//vEPl/a//e1vhiTjn//8p/Hdd98ZHh4exqRJk85/gs4qKysziouLXdpOnjxphIeH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F198Uffdd5/i4uL09ddf67///W+tt9exY0f93//9n/7whz/ommuu0W233SabzaaNGzcqMjJSKSkpktzrHAFooEy6WxQAXDb//ve/jf/5n/8xunTpYvj7+xve3t5Gx44djQkTJhgZGRkufUtLS41nn33WiImJMby8vIyoqChjypQpRlFRkUu/qm7laRiG8dFHHxndunUzPD09XW7rOWjQIKN79+6V+rdr184YPnx4pXZJxsMPP+x8f/LkSWPcuHFGWFiY4e/vbyQlJRm7du0y2rVr57zF6uHDh42goCDjV7/6VaXt3XrrrYafn5/x008/nfc8ORwO44UXXjDatWtn2Gw2o0+fPsby5cuNsWPHGu3atXPpW1ZWZrzyyitGly5dDG9vb6NFixbGTTfdZKSlpTn77Nq1y7j22muNZs2aGZKcdf7y9q/nuvvuuw1JRmJiYpU1fvzxx0avXr0MHx8fIzo62njppZeMt956q9L20tPTjeHDhxsBAQGGJOdtTn95a9MKS5YsMfr06WPYbDYjJCTEuPvuu40jR4649Dnfz7zitqwXc771CwsLjfHjxxtBQUFGQECAcddddxmZmZnnvf1rVlaWy/rnO59vvfWW85iaN29uDBo0yFi1alWDPkcA3IvFMBrI7CwAAAAAboM5EgAAAABqjCABAAAAoMYIEgAAAABqjCABAAAAoMYIEgAAAABqjCABAAAAoMZ4IF0tORwOHTt2TAEBAbJYLGaXAwAAAFwywzB06tQpRUZGymq98DUHgkQtHTt2TFFRUWaXAQAAANS5w4cPq02bNhfsQ5CopYCAAEnlJzkwMNDkagAAAIBLl5+fr6ioKOdn3QshSNRSxXCmwMBAggQAAAAaleoM3WeyNQAAAIAaI0gAAAAAqDGCBAAAAIAaI0gAAAAAqDGCBAAAAIAaI0gAAAAAqLEGESTmzJmj6Oho+fj4KD4+Xhs2bLhg/6VLl6pLly7y8fFRz549tWLFivP2feihh2SxWDRr1iyX9pycHN19990KDAxUcHCwxo8fr9OnT9fF4QAAAACNnulBYsmSJUpOTtaMGTO0efNm9e7dW0lJScrMzKyy/7p16zR69GiNHz9eW7Zs0YgRIzRixAht3769Ut8PP/xQ3333nSIjIystu/vuu7Vjxw6tWrVKy5cv19dff60HHnigzo8PAAAAaIwshmEYZhYQ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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = tf.linspace(-4, 4, 201)\n", "x = tf.cast(x, tf.float32)\n", "plt.plot(x, tf.nn.softmax(x, axis=0));\n", "plt.xlabel('x')\n", "plt.ylabel('Softmax(x)')\n", "plt.title('Softmax activation function');" ] }, { "cell_type": "markdown", "metadata": { "id": "OHW6Yvg2yS6H" }, "source": [ "### The dense layer\n", "\n", "Create a class for the dense layer. By definition, the outputs of one layer are fully connected to the inputs of the next layer in an MLP. Therefore, the input dimension for a dense layer can be inferred based on the output dimension of its previous layer and does not need to be specified upfront during its initialization. The weights should also be initialized properly to prevent activation outputs from becoming too large or small. One of the most popular weight initialization methods is the Xavier scheme, where each element of the weight matrix is sampled in the following manner:\n", "\n", "$$W_{ij} \\sim \\text{Uniform}(-\\frac{\\sqrt{6}}{\\sqrt{n + m}},\\frac{\\sqrt{6}}{\\sqrt{n + m}})$$\n", "\n", "The bias vector can be initialized to zeros." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:42:48.040058Z", "iopub.status.busy": "2024-08-15T02:42:48.039544Z", "iopub.status.idle": "2024-08-15T02:42:48.043575Z", "shell.execute_reply": "2024-08-15T02:42:48.043004Z" }, "id": "re1SSFyBdMrS" }, "outputs": [], "source": [ "def xavier_init(shape):\n", " # Computes the xavier initialization values for a weight matrix\n", " in_dim, out_dim = shape\n", " xavier_lim = tf.sqrt(6.)/tf.sqrt(tf.cast(in_dim + out_dim, tf.float32))\n", " weight_vals = tf.random.uniform(shape=(in_dim, out_dim), \n", " minval=-xavier_lim, maxval=xavier_lim, seed=22)\n", " return weight_vals" ] }, { "cell_type": "markdown", "metadata": { "id": "otDFX4u6e6ml" }, "source": [ "The Xavier initialization method can also be implemented with `tf.keras.initializers.GlorotUniform`." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:42:48.047074Z", "iopub.status.busy": "2024-08-15T02:42:48.046458Z", "iopub.status.idle": "2024-08-15T02:42:48.051753Z", "shell.execute_reply": "2024-08-15T02:42:48.051095Z" }, "id": "IM0yJos25FG5" }, "outputs": [], "source": [ "class DenseLayer(tf.Module):\n", "\n", " def __init__(self, out_dim, weight_init=xavier_init, activation=tf.identity):\n", " # Initialize the dimensions and activation functions\n", " self.out_dim = out_dim\n", " self.weight_init = weight_init\n", " self.activation = activation\n", " self.built = False\n", "\n", " def __call__(self, x):\n", " if not self.built:\n", " # Infer the input dimension based on first call\n", " self.in_dim = x.shape[1]\n", " # Initialize the weights and biases\n", " self.w = tf.Variable(self.weight_init(shape=(self.in_dim, self.out_dim)))\n", " self.b = tf.Variable(tf.zeros(shape=(self.out_dim,)))\n", " self.built = True\n", " # Compute the forward pass\n", " z = tf.add(tf.matmul(x, self.w), self.b)\n", " return self.activation(z)" ] }, { "cell_type": "markdown", "metadata": { "id": "X-7MzpjgyHg6" }, "source": [ "Next, build a class for the MLP model that executes layers sequentially.\n", "Remember that the model variables are only available after the first sequence of dense layer calls due to dimension inference." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:42:48.055044Z", "iopub.status.busy": "2024-08-15T02:42:48.054507Z", "iopub.status.idle": "2024-08-15T02:42:48.058780Z", "shell.execute_reply": "2024-08-15T02:42:48.058167Z" }, "id": "6XisRWiCyHAb" }, "outputs": [], "source": [ "class MLP(tf.Module):\n", "\n", " def __init__(self, layers):\n", " self.layers = layers\n", " \n", " @tf.function\n", " def __call__(self, x, preds=False): \n", " # Execute the model's layers sequentially\n", " for layer in self.layers:\n", " x = layer(x)\n", " return x" ] }, { "cell_type": "markdown", "metadata": { "id": "luXKup-43nd7" }, "source": [ "Initialize a MLP model with the following architecture:\n", "\n", "- Forward Pass: ReLU(784 x 700) x ReLU(700 x 500) x Softmax(500 x 10)\n", "\n", "The softmax activation function does not need to be applied by the MLP. It is computed separately in the loss and prediction functions." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:42:48.061788Z", "iopub.status.busy": "2024-08-15T02:42:48.061413Z", "iopub.status.idle": "2024-08-15T02:42:48.065656Z", "shell.execute_reply": "2024-08-15T02:42:48.065018Z" }, "id": "VmlACuki3oPi" }, "outputs": [], "source": [ "hidden_layer_1_size = 700\n", "hidden_layer_2_size = 500\n", "output_size = 10\n", "\n", "mlp_model = MLP([\n", " DenseLayer(out_dim=hidden_layer_1_size, activation=tf.nn.relu),\n", " DenseLayer(out_dim=hidden_layer_2_size, activation=tf.nn.relu),\n", " DenseLayer(out_dim=output_size)])" ] }, { "cell_type": "markdown", "metadata": { "id": "tyBATDoRmDkg" }, "source": [ "### Define the loss function\n", "\n", "The cross-entropy loss function is a great choice for multiclass classification problems since it measures the negative-log-likelihood of the data according to the model's probability predictions. The higher the probability assigned to the true class, the lower the loss. The equation for the cross-entropy loss is as follows:\n", "\n", "$$L = -\\frac{1}{n}\\sum_{i=1}^{n}\\sum_{i=j}^{n} {y_j}^{[i]}⋅\\log(\\hat{{y_j}}^{[i]})$$\n", "\n", "where\n", "\n", "* $\\underset{n\\times m}{\\hat{y}}$: a matrix of predicted class distributions\n", "* $\\underset{n\\times m}{y}$: a one hot encoded matrix of true classes\n", "\n", "The `tf.nn.sparse_softmax_cross_entropy_with_logits` function can be used to compute the cross-entropy loss. This function does not require the model's last layer to apply the softmax activation function nor does it require the class labels to be one hot encoded" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:42:48.068923Z", "iopub.status.busy": "2024-08-15T02:42:48.068423Z", "iopub.status.idle": "2024-08-15T02:42:48.071784Z", "shell.execute_reply": "2024-08-15T02:42:48.071198Z" }, "id": "rskOYA7FVCwg" }, "outputs": [], "source": [ "def cross_entropy_loss(y_pred, y):\n", " # Compute cross entropy loss with a sparse operation\n", " sparse_ce = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=y, logits=y_pred)\n", " return tf.reduce_mean(sparse_ce)" ] }, { "cell_type": "markdown", "metadata": { "id": "BvWxED1km8jh" }, "source": [ "Write a basic accuracy function that calculates the proportion of correct classifications during training. In order to generate class predictions from softmax outputs, return the index that corresponds to the largest class probability. " ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:42:48.075148Z", "iopub.status.busy": "2024-08-15T02:42:48.074549Z", "iopub.status.idle": "2024-08-15T02:42:48.078172Z", "shell.execute_reply": "2024-08-15T02:42:48.077574Z" }, "id": "jPJMWx2UgiBm" }, "outputs": [], "source": [ "def accuracy(y_pred, y):\n", " # Compute accuracy after extracting class predictions\n", " class_preds = tf.argmax(tf.nn.softmax(y_pred), axis=1)\n", " is_equal = tf.equal(y, class_preds)\n", " return tf.reduce_mean(tf.cast(is_equal, tf.float32))" ] }, { "cell_type": "markdown", "metadata": { "id": "JSiNRhTOnKZr" }, "source": [ "### Train the model\n", "\n", "Using an optimizer can result in significantly faster convergence compared to standard gradient descent. The Adam optimizer is implemented below. Visit the [Optimizers](https://www.tensorflow.org/guide/core/optimizers_core) guide to learn more about designing custom optimizers with TensorFlow Core." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:42:48.081517Z", "iopub.status.busy": "2024-08-15T02:42:48.080953Z", "iopub.status.idle": "2024-08-15T02:42:48.254119Z", "shell.execute_reply": "2024-08-15T02:42:48.253365Z" }, "id": "iGIBDk3cAv6a" }, "outputs": [], "source": [ "class Adam:\n", "\n", " def __init__(self, learning_rate=1e-3, beta_1=0.9, beta_2=0.999, ep=1e-7):\n", " # Initialize optimizer parameters and variable slots\n", " self.beta_1 = beta_1\n", " self.beta_2 = beta_2\n", " self.learning_rate = learning_rate\n", " self.ep = ep\n", " self.t = 1.\n", " self.v_dvar, self.s_dvar = [], []\n", " self.built = False\n", " \n", " def apply_gradients(self, grads, vars):\n", " # Initialize variables on the first call\n", " if not self.built:\n", " for var in vars:\n", " v = tf.Variable(tf.zeros(shape=var.shape))\n", " s = tf.Variable(tf.zeros(shape=var.shape))\n", " self.v_dvar.append(v)\n", " self.s_dvar.append(s)\n", " self.built = True\n", " # Update the model variables given their gradients\n", " for i, (d_var, var) in enumerate(zip(grads, vars)):\n", " self.v_dvar[i].assign(self.beta_1*self.v_dvar[i] + (1-self.beta_1)*d_var)\n", " self.s_dvar[i].assign(self.beta_2*self.s_dvar[i] + (1-self.beta_2)*tf.square(d_var))\n", " v_dvar_bc = self.v_dvar[i]/(1-(self.beta_1**self.t))\n", " s_dvar_bc = self.s_dvar[i]/(1-(self.beta_2**self.t))\n", " var.assign_sub(self.learning_rate*(v_dvar_bc/(tf.sqrt(s_dvar_bc) + self.ep)))\n", " self.t += 1.\n", " return " ] }, { "cell_type": "markdown", "metadata": { "id": "osEK3rqpYfKd" }, "source": [ "Now, write a custom training loop that updates the MLP parameters with mini-batch gradient descent. Using mini-batches for training provides both memory efficiency and faster convergence." ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:42:48.258087Z", "iopub.status.busy": "2024-08-15T02:42:48.257473Z", "iopub.status.idle": "2024-08-15T02:42:48.262162Z", "shell.execute_reply": "2024-08-15T02:42:48.261549Z" }, "id": "CJLeY2ao1aw6" }, "outputs": [], "source": [ "def train_step(x_batch, y_batch, loss, acc, model, optimizer):\n", " # Update the model state given a batch of data\n", " with tf.GradientTape() as tape:\n", " y_pred = model(x_batch)\n", " batch_loss = loss(y_pred, y_batch)\n", " batch_acc = acc(y_pred, y_batch)\n", " grads = tape.gradient(batch_loss, model.variables)\n", " optimizer.apply_gradients(grads, model.variables)\n", " return batch_loss, batch_acc\n", "\n", "def val_step(x_batch, y_batch, loss, acc, model):\n", " # Evaluate the model on given a batch of validation data\n", " y_pred = model(x_batch)\n", " batch_loss = loss(y_pred, y_batch)\n", " batch_acc = acc(y_pred, y_batch)\n", " return batch_loss, batch_acc" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:42:48.265629Z", "iopub.status.busy": "2024-08-15T02:42:48.265076Z", "iopub.status.idle": "2024-08-15T02:42:48.271347Z", "shell.execute_reply": "2024-08-15T02:42:48.270694Z" }, "id": "oC85kuZgmh3q" }, "outputs": [], "source": [ "def train_model(mlp, train_data, val_data, loss, acc, optimizer, epochs):\n", " # Initialize data structures\n", " train_losses, train_accs = [], []\n", " val_losses, val_accs = [], []\n", "\n", " # Format training loop and begin training\n", " for epoch in range(epochs):\n", " batch_losses_train, batch_accs_train = [], []\n", " batch_losses_val, batch_accs_val = [], []\n", "\n", " # Iterate over the training data\n", " for x_batch, y_batch in train_data:\n", " # Compute gradients and update the model's parameters\n", " batch_loss, batch_acc = train_step(x_batch, y_batch, loss, acc, mlp, optimizer)\n", " # Keep track of batch-level training performance\n", " batch_losses_train.append(batch_loss)\n", " batch_accs_train.append(batch_acc)\n", "\n", " # Iterate over the validation data\n", " for x_batch, y_batch in val_data:\n", " batch_loss, batch_acc = val_step(x_batch, y_batch, loss, acc, mlp)\n", " batch_losses_val.append(batch_loss)\n", " batch_accs_val.append(batch_acc)\n", "\n", " # Keep track of epoch-level model performance\n", " train_loss, train_acc = tf.reduce_mean(batch_losses_train), tf.reduce_mean(batch_accs_train)\n", " val_loss, val_acc = tf.reduce_mean(batch_losses_val), tf.reduce_mean(batch_accs_val)\n", " train_losses.append(train_loss)\n", " train_accs.append(train_acc)\n", " val_losses.append(val_loss)\n", " val_accs.append(val_acc)\n", " print(f\"Epoch: {epoch}\")\n", " print(f\"Training loss: {train_loss:.3f}, Training accuracy: {train_acc:.3f}\")\n", " print(f\"Validation loss: {val_loss:.3f}, Validation accuracy: {val_acc:.3f}\")\n", " return train_losses, train_accs, val_losses, val_accs" ] }, { "cell_type": "markdown", "metadata": { "id": "FvbfXlN5lwwB" }, "source": [ "Train the MLP model for 10 epochs with batch size of 128. Hardware accelerators like GPUs or TPUs can also help speed up training time. " ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:42:48.274538Z", "iopub.status.busy": "2024-08-15T02:42:48.274068Z", "iopub.status.idle": "2024-08-15T02:43:54.911805Z", "shell.execute_reply": "2024-08-15T02:43:54.910719Z" }, "id": "zPlT8QfxptYl" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 0\n", "Training loss: 0.222, Training accuracy: 0.934\n", "Validation loss: 0.121, Validation accuracy: 0.963\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 1\n", "Training loss: 0.079, Training accuracy: 0.975\n", "Validation loss: 0.099, Validation accuracy: 0.971\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 2\n", "Training loss: 0.047, Training accuracy: 0.986\n", "Validation loss: 0.088, Validation accuracy: 0.976\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 3\n", "Training loss: 0.034, Training accuracy: 0.989\n", "Validation loss: 0.095, Validation accuracy: 0.975\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 4\n", "Training loss: 0.026, Training accuracy: 0.992\n", "Validation loss: 0.110, Validation accuracy: 0.971\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 5\n", "Training loss: 0.023, Training accuracy: 0.992\n", "Validation loss: 0.103, Validation accuracy: 0.976\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 6\n", "Training loss: 0.018, Training accuracy: 0.994\n", "Validation loss: 0.096, Validation accuracy: 0.979\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 7\n", "Training loss: 0.017, Training accuracy: 0.994\n", "Validation loss: 0.110, Validation accuracy: 0.977\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 8\n", "Training loss: 0.017, Training accuracy: 0.994\n", "Validation loss: 0.117, Validation accuracy: 0.976\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 9\n", "Training loss: 0.013, Training accuracy: 0.996\n", "Validation loss: 0.107, Validation accuracy: 0.979\n" ] } ], "source": [ "train_losses, train_accs, val_losses, val_accs = train_model(mlp_model, train_data, val_data, \n", " loss=cross_entropy_loss, acc=accuracy,\n", " optimizer=Adam(), epochs=10)" ] }, { "cell_type": "markdown", "metadata": { "id": "j_RVmt43G12R" }, "source": [ "### Performance evaluation\n", "\n", "Start by writing a plotting function to visualize the model's loss and accuracy during training. " ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:43:54.915765Z", "iopub.status.busy": "2024-08-15T02:43:54.915450Z", "iopub.status.idle": "2024-08-15T02:43:54.920852Z", "shell.execute_reply": "2024-08-15T02:43:54.919862Z" }, "id": "VXTCYVtNDjAM" }, "outputs": [], "source": [ "def plot_metrics(train_metric, val_metric, metric_type):\n", " # Visualize metrics vs training Epochs\n", " plt.figure()\n", " plt.plot(range(len(train_metric)), train_metric, label = f\"Training {metric_type}\")\n", " plt.plot(range(len(val_metric)), val_metric, label = f\"Validation {metric_type}\")\n", " plt.xlabel(\"Epochs\")\n", " plt.ylabel(metric_type)\n", " plt.legend()\n", " plt.title(f\"{metric_type} vs Training epochs\");" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:43:54.924475Z", "iopub.status.busy": "2024-08-15T02:43:54.923946Z", "iopub.status.idle": "2024-08-15T02:43:55.086165Z", "shell.execute_reply": "2024-08-15T02:43:55.085331Z" }, "id": "DC-qIvZbHo0G" }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_metrics(train_losses, val_losses, \"cross entropy loss\")" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:43:55.089927Z", "iopub.status.busy": "2024-08-15T02:43:55.089243Z", "iopub.status.idle": "2024-08-15T02:43:55.255036Z", "shell.execute_reply": "2024-08-15T02:43:55.254143Z" }, "id": "P-w2xk2PIDve" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwkAAAIjCAYAAABI21doAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACDXElEQVR4nO3dd3gU1f7H8c+m9xBICCSEFjpC6AgooKIBFAVRQFGa5SpFkasCCoh6lZ+Ni4K9oIAFVOBiQwErSJMmCEhvEVIoqaTu/P4YssmSBEII7G7yfj3PPGZnZ2bPLgHns+d8z7EYhmEIAAAAAM5wc3QDAAAAADgXQgIAAAAAO4QEAAAAAHYICQAAAADsEBIAAAAA2CEkAAAAALBDSAAAAABgh5AAAAAAwA4hAQAAAIAdQgIAwCUNGzZMdevWLdO5U6dOlcViKd8GVRDdu3fXFVdc4ehmAHAwQgIAoFxZLJZSbT///LOjmwoAKIHFMAzD0Y0AAFQc8+bNs3s8Z84cLVu2THPnzrXbf/311ys8PLzMr5OTkyOr1Spvb+8LPjc3N1e5ubny8fEp8+tXVN27d1dSUpK2bdvm6KYAcCAPRzcAACqD9PR0+fv7O7oZl8Vdd91l93jNmjVatmxZkf1ny8jIkJ+fX6lfx9PTs0ztkyQPDw95ePC/QAAoCcONALikgwcPauTIkWrcuLF8fX1VrVo13X777Tpw4ECRY0+dOqVHHnlEdevWlbe3t2rVqqUhQ4YoKSnJdkxmZqamTp2qRo0aycfHRzVr1tStt96qvXv3SpJ+/vnnYofIHDhwQBaLRR9++KFt37BhwxQQEKC9e/eqd+/eCgwM1ODBgyVJv/32m26//XbVrl1b3t7eioqK0iOPPKLTp08XaffOnTs1YMAAhYWFydfXV40bN9aTTz4pSfrpp59ksVi0aNGiIud98sknslgsWr16dbGf3R9//CGLxaKPPvqoyHPff/+9LBaLvv76a0lSamqqxo4da/vsqlevruuvv14bN24s9tqllT/ufcOGDeratav8/Pz0xBNPSJL+97//6cYbb1RERIS8vb0VHR2tZ599Vnl5eXbXOLsmIf/P4uWXX9Y777yj6OhoeXt7q3379lq/fr3ducXVJFgsFo0ePVqLFy/WFVdcIW9vbzVv3lxLly4t0v6ff/5Z7dq1k4+Pj6Kjo/X2229fUJ3D2rVr1bNnTwUHB8vPz0/dunXTqlWrim1j/u9BUFCQqlWrpocffliZmZl2x+bm5urZZ5+1vee6devqiSeeUFZWVpHX/u6779StWzcFBgYqKChI7du31yeffFLkuO3bt+uaa66Rn5+fIiMj9eKLLxY5ZubMmWrevLn8/PwUEhKidu3aFXstAK6Hr1EAuKT169fr999/16BBg1SrVi0dOHBAb775prp3767t27fbvpFOS0vT1VdfrR07dmjEiBFq06aNkpKStGTJEh05ckShoaHKy8vTTTfdpBUrVmjQoEF6+OGHlZqaqmXLlmnbtm2Kjo6+4Pbl5uYqNjZWV111lV5++WVbez7//HNlZGTowQcfVLVq1bRu3TrNnDlTR44c0eeff247/88//9TVV18tT09P3X///apbt6727t2rr776Ss8995y6d++uqKgoffzxx+rXr5/da3/88ceKjo5Wp06dim1bu3btVL9+fS1YsEBDhw61e27+/PkKCQlRbGysJOmBBx7QF198odGjR6tZs2Y6fvy4Vq5cqR07dqhNmzYX/LkUdvz4cfXq1UuDBg3SXXfdZRt69OGHHyogIEDjxo1TQECAfvzxR02ZMkUpKSl66aWXznvdTz75RKmpqfrXv/4li8WiF198Ubfeeqv27dt33t6HlStXauHChRo5cqQCAwP12muvqX///jp06JCqVasmSdq0aZN69uypmjVr6umnn1ZeXp6eeeYZhYWFlep9//jjj+rVq5fatm2rp556Sm5ubpo9e7auvfZa/fbbb+rQoYPd8QMGDFDdunU1bdo0rVmzRq+99ppOnjypOXPm2I6599579dFHH+m2227Tv//9b61du1bTpk3Tjh077ILkhx9+qBEjRqh58+aaOHGiqlSpok2bNmnp0qW68847bcedPHlSPXv21K233qoBAwboiy++0Pjx49WiRQv16tVLkvTuu+/qoYce0m233WYLLn/++afWrl1rdy0ALsoAABeUkZFRZN/q1asNScacOXNs+6ZMmWJIMhYuXFjkeKvVahiGYXzwwQeGJGP69OklHvPTTz8ZkoyffvrJ7vn9+/cbkozZs2fb9g0dOtSQZEyYMKFU7Z42bZphsViMgwcP2vZ17drVCAwMtNtXuD2GYRgTJ040vL29jVOnTtn2JSQkGB4eHsZTTz1V5HUKmzhxouHp6WmcOHHCti8rK8uoUqWKMWLECNu+4OBgY9SoUee81vmMGjXKOPt/N926dTMkGW+99VaR44v7jP71r38Zfn5+RmZmpm3f0KFDjTp16tge5/9ZVKtWze59/e9//zMkGV999ZVt31NPPVWkTZIMLy8vY8+ePbZ9W7ZsMSQZM2fOtO3r06eP4efnZ8TFxdn27d692/Dw8ChyzbNZrVajYcOGRmxsrN2fZUZGhlGvXj3j+uuvL9LGm2++2e4aI0eONCQZW7ZsMQzDMDZv3mxIMu6991674x599FFDkvHjjz8ahmEYp06dMgIDA42OHTsap0+fLtKufPl/NoX/HmVlZRk1atQw+vfvb9t3yy23GM2bNz/n+wXguhhuBMAl+fr62n7OycnR8ePH1aBBA1WpUsVuKMyXX36pmJiYIt+2S7INDfnyyy8VGhqqMWPGlHhMWTz44IPnbHd6erqSkpLUuXNnGYahTZs2SZISExP166+/asSIEapdu3aJ7RkyZIiysrL0xRdf2PbNnz9fubm55x3/P3DgQOXk5GjhwoW2fT/88INOnTqlgQMH2vZVqVJFa9eu1T///FPKd1163t7eGj58eJH9hT+j1NRUJSUl6eqrr1ZGRoZ27tx53usOHDhQISEhtsdXX321JGnfvn3nPbdHjx52PUctW7ZUUFCQ7dy8vDwtX75cffv2VUREhO24Bg0a2L5hP5fNmzdr9+7duvPOO3X8+HElJSUpKSlJ6enpuu666/Trr7/KarXanTNq1Ci7x/m/p99++63df8eNG2d33L///W9J0jfffCNJWrZsmVJTUzVhwoQiBdtn/54HBATY/Q55eXmpQ4cOdp9hlSpVdOTIkSJDuQBUDIQEAC7p9OnTmjJliqKiouTt7a3Q0FCFhYXp1KlTSk5Oth23d+/e8875vnfvXjVu3LhcC1k9PDxUq1atIvsPHTqkYcOGqWrVqgoICFBYWJi6desmSbZ259+Ina/dTZo0Ufv27fXxxx/b9n388ce68sor1aBBg3OeGxMToyZNmmj+/Pm2ffPnz1doaKiuvfZa274XX3xR27ZtU1RUlDp06KCpU6eW6ma7NCIjI+Xl5VVk/19//aV+/fopODhYQUFBCgsLs92wFv6zLcnZwSo/MJw8efKCz80/P//chIQEnT59utjP93yfuSTt3r1bkjR06FCFhYXZbe+9956ysrKKvMeGDRvaPY6Ojpabm5ut/ubgwYNyc3Mr8vo1atRQlSpVdPDgQUmy1deUZg2EWrVqFQkOhT8HSRo/frwCAgLUoUMHNWzYUKNGjSpSVwHAdVGTAMAljRkzRrNnz9bYsWPVqVMnBQcHy2KxaNCgQUW+iS0PJfUonF1Mm8/b21tubm5Fjr3++ut14sQJjR8/Xk2aNJG/v7/i4uI0bNiwMrV7yJAhevjhh3XkyBFlZWVpzZo1mjVrVqnOHThwoJ577jklJSUpMDBQS5Ys0R133GEXlgYMGKCrr75aixYt0g8//KCXXnpJL7zwghYuXFiqb87PpXCPQb5Tp06pW7duCgoK0jPPPKPo6Gj5+Pho48aNGj9+fKk+I3d392L3G6WY8ftizi2N/Pa/9NJLatWqVbHHBAQEnPMaJf0uluficKX5HJo2baq///5bX3/9tZYuXaovv/xSb7zxhqZMmaKnn3663NoCwDEICQBc0hdffKGhQ4fqlVdese3LzMzUqVOn7I6Ljo4+73zv0dHRWrt2rXJyckosbM3/Nvrs6+d/S1saW7du1a5du/TRRx9pyJAhtv3Lli2zO65+/fqSVKp56gcNGqRx48bp008/1enTp+Xp6Wk3XOhcBg4cqKefflpffvmlwsPDlZKSokGDBhU5rmbNmho5cqRGjhyphIQEtWnTRs8999xFh4Ti/Pzzzzp+/LgWLlyorl272vbv37+/3F+rLKpXry4fHx/t2bOnyHPF7Ttb/lCmoKAg9ejRo1SvuXv3btWrV8/udaxWq21mpzp16shqtWr37t1q2rSp7bj4+HidOnVKderUsXvtbdu2larXozT8/f01cOBADRw4UNnZ2br11lv13HPPaeLEiaxBAbg4hhsBcEnu7u5Fvt2dOXNmkW/2+/fvry1bthQ7VWj++f3791dSUlKx38DnH1OnTh25u7vr119/tXv+jTfeuKA2F75m/s+vvvqq3XFhYWHq2rWrPvjgAx06dKjY9uQLDQ1Vr169NG/ePH388cfq2bOnQkNDS9Wepk2bqkWLFpo/f77mz5+vmjVr2t2Y5+XlFRn6Ur16dUVERBQ7tWZ5KO4zys7OvqDP+VJyd3dXjx49tHjxYrs6jT179ui777477/lt27ZVdHS0Xn75ZaWlpRV5PjExsci+119/3e7xzJkzJckW0nr37i1JmjFjht1x06dPlyTdeOONkqQbbrhBgYGBmjZtWpEpVMvSU3L8+HG7x15eXmrWrJkMw1BOTs4FXw+Ac6EnAYBLuummmzR37lwFBwerWbNmWr16tZYvX26bpjLfY489pi+++EK33367RowYobZt2+rEiRNasmSJ3nrrLcXExGjIkCGaM2eOxo0bp3Xr1unqq69Wenq6li9frpEjR+qWW25RcHCwbr/9ds2cOVMWi0XR0dH6+uuvlZCQUOo2N2nSRNHR0Xr00UcVFxenoKAgffnll8WOlX/ttdd01VVXqU2bNrr//vtVr149HThwQN988402b95sd+yQIUN02223SZKeffbZC/ocBw4cqClTpsjHx0f33HOP3RCp1NRU1apVS7fddptiYmIUEBCg5cuXa/369XY9OOWpc+fOCgkJ0dChQ/XQQw/JYrFo7ty55TbcpzxMnTpVP/zwg7p06aIHH3xQeXl5mjVrlq644ooifzZnc3Nz03vvvadevXqpefPmGj58uCIjIxUXF6effvpJQUFB+uqrr+zO2b9/v26++Wb17NlTq1ev1rx583TnnXcqJiZGkllfMnToUL3zzju24Vrr1q3TRx99pL59++qaa66RZPZe/Pe//9W9996r9u3b684771RISIi2bNmijIyMYtfNOJcbbrhBNWrUUJcuXRQeHq4dO3Zo1qxZuvHGGxUYGHhB1wLghBwxpRIAXKyTJ08aw4cPN0JDQ42AgAAjNjbW2Llzp1GnTh1j6NChdsceP37cGD16tBEZGWl4eXkZtWrVMoYOHWokJSXZjsnIyDCefPJJo169eoanp6dRo0YN47bbbjP27t1rOyYxMdHo37+/4efnZ4SEhBj/+te/jG3bthU7Baq/v3+x7d6+fbvRo0cPIyAgwAgNDTXuu+8+2zSbha9hGIaxbds2o1+/fkaVKlUMHx8fo3HjxsbkyZOLXDMrK8sICQkxgoODi0xteT67d+82JBmSjJUrVxa57mOPPWbExMQYgYGBhr+/vxETE2O88cYbF/QaJU2BWtL0matWrTKuvPJKw9fX14iIiDAef/xx4/vvvy8yBW1JU6C+9NJLRa4pyW5a2JKmQC1uutfifqdWrFhhtG7d2vDy8jKio6ON9957z/j3v/9t+Pj4lPAp2Nu0aZNx6623GtWqVTO8vb2NOnXqGAMGDDBWrFhRpI3bt283brvtNiMwMNAICQkxRo8eXeTPOScnx3j66adtv79RUVHGxIkT7aaMzbdkyRKjc+fOhq+vrxEUFGR06NDB+PTTT23Pl/Rnc/bn/fbbbxtdu3a1vYfo6GjjscceM5KTk0v1GQBwbhbDcKKvZwAAFyw3N1cRERHq06eP3n//fUc3p9Lq27ev/vrrL9sMRhdr6tSpevrpp5WYmFjqIWQAUF6oSQAAF7d48WIlJibaFUPj0jp9+rTd4927d+vbb79V9+7dHdMgAChn1CQAgItau3at/vzzTz377LNq3bq1bb0FXHr169fXsGHDVL9+fR08eFBvvvmmvLy89Pjjjzu6aQBQLggJAOCi3nzzTc2bN0+tWrXShx9+6OjmVCo9e/bUp59+qmPHjsnb21udOnXS888/X2ThMwBwVdQkAAAAALBDTQIAAAAAO4QEAAAAAHaoSSiG1WrVP//8o8DAQFksFkc3BwAAACgXhmEoNTVVERERdgtono2QUIx//vlHUVFRjm4GAAAAcEkcPnxYtWrVKvF5QkIx8peTP3z4sIKCghzcGgAAAKB8pKSkKCoqyna/WxJCQjHyhxgFBQUREgAAAFDhnG9IPYXLAAAAAOwQEgAAAADYISQAAAAAsENNQhkZhqHc3Fzl5eU5uilAuXJ3d5eHhwfT/wIAUIkREsogOztbR48eVUZGhqObAlwSfn5+qlmzpry8vBzdFAAA4ACEhAtktVq1f/9+ubu7KyIiQl5eXnzjigrDMAxlZ2crMTFR+/fvV8OGDc+50AoAAKiYCAkXKDs7W1arVVFRUfLz83N0c4By5+vrK09PTx08eFDZ2dny8fFxdJMAAMBlxleEZcS3q6jI+P0GAKBy404AAAAAgB1CAgAAAAA7hARclLp162rGjBmlPv7nn3+WxWLRqVOnLlmbAAAAcHEICZWExWI55zZ16tQyXXf9+vW6//77S318586ddfToUQUHB5fp9QAAAHDpMbtRJXH06FHbz/Pnz9eUKVP0999/2/YFBATYfjYMQ3l5efLwOP+vR1hY2AW1w8vLSzVq1LigcyqK7Oxs1h0AAAAugZ6EcmAYhjKycy/7ZhhGqdtYo0YN2xYcHCyLxWJ7vHPnTgUGBuq7775T27Zt5e3trZUrV2rv3r265ZZbFB4eroCAALVv317Lly+3u+7Zw40sFovee+899evXT35+fmrYsKGWLFlie/7s4UYffvihqlSpou+//15NmzZVQECAevbsaRdqcnNz9dBDD6lKlSqqVq2axo8fr6FDh6pv374lvt/jx4/rjjvuUGRkpPz8/NSiRQt9+umndsdYrVa9+OKLatCggby9vVW7dm0999xztuePHDmiO+64Q1WrVpW/v7/atWuntWvXSpKGDRtW5PXHjh2r7t272x53795do0eP1tixYxUaGqrY2FhJ0vTp09WiRQv5+/srKipKI0eOVFpamt21Vq1ape7du8vPz08hISGKjY3VyZMnNWfOHFWrVk1ZWVl2x/ft21d33313iZ8HAADAhaAnoRyczslTsynfX/bX3f5MrPy8yu+PcMKECXr55ZdVv359hYSE6PDhw+rdu7eee+45eXt7a86cOerTp4/+/vtv1a5du8TrPP3003rxxRf10ksvaebMmRo8eLAOHjyoqlWrFnt8RkaGXn75Zc2dO1dubm6666679Oijj+rjjz+WJL3wwgv6+OOPNXv2bDVt2lSvvvqqFi9erGuuuabENmRmZqpt27YaP368goKC9M033+juu+9WdHS0OnToIEmaOHGi3n33Xf33v//VVVddpaNHj2rnzp2SpLS0NHXr1k2RkZFasmSJatSooY0bN8pqtV7QZ/rRRx/pwQcf1KpVq2z73Nzc9Nprr6levXrat2+fRo4cqccff1xvvPGGJGnz5s267rrrNGLECL366qvy8PDQTz/9pLy8PN1+++166KGHtGTJEt1+++2SpISEBH3zzTf64YcfLqhtAAAAJSEkwOaZZ57R9ddfb3tctWpVxcTE2B4/++yzWrRokZYsWaLRo0eXeJ1hw4bpjjvukCQ9//zzeu2117Ru3Tr17Nmz2ONzcnL01ltvKTo6WpI0evRoPfPMM7bnZ86cqYkTJ6pfv36SpFmzZunbb78953uJjIzUo48+ans8ZswYff/991qwYIE6dOig1NRUvfrqq5o1a5aGDh0qSYqOjtZVV10lSfrkk0+UmJio9evX28JNgwYNzvmaxWnYsKFefPFFu31jx461/Vy3bl395z//0QMPPGALCS+++KLatWtneyxJzZs3t/185513avbs2baQMG/ePNWuXduuFwMAAOBiEBLKga+nu7Y/E+uQ1y1P7dq1s3uclpamqVOn6ptvvtHRo0eVm5ur06dP69ChQ+e8TsuWLW0/+/v7KygoSAkJCSUe7+fn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9Wr9+OOPCg0NlZubm9zd3XXVVVdp2rRpeuihh7Rp06bybiecGPUIAAAAFUuZehLy8vIUGBgoSQoNDdU///wjSapTp47+/vvvC7rW66+/rrp168rHx0cdO3bUunXrSjw2JydHzzzzjKKjo+Xj46OYmBgtXbq0yHFxcXG66667VK1aNfn6+qpFixb6448/LqhdKD3qEQAAACqWMoWEK664Qlu2bJEkdezYUS+++KJWrVqlZ555RvXr1y/1debPn69x48bpqaee0saNGxUTE6PY2FglJCQUe/ykSZP09ttva+bMmdq+fbseeOAB9evXz67n4uTJk+rSpYs8PT313Xffafv27XrllVcUEsLN66VCPQIAAEDFYjEMw7jQk77//nulp6fr1ltv1Z49e3TTTTdp165dqlatmubPn69rr722VNfp2LGj2rdvr1mzZkmSrFaroqKiNGbMGE2YMKHI8REREXryySc1atQo277+/fvL19dX8+bNkyRNmDBBq1at0m+//Xahb8smJSVFwcHBSk5OVlBQUJmvU1mMW7BZCzfGadQ10XostomjmwMAAIASlPY+t0w9CbGxsbr11lslSQ0aNNDOnTuVlJSkhISEUgeE7OxsbdiwQT169ChojJubevToodWrVxd7TlZWlnx8fOz2+fr6auXKlbbHS5YsUbt27XT77berevXqat26td59991ztiUrK0spKSl2G0qHegQAAICKp0whoThVq1a1mwb1fJKSkpSXl6fw8HC7/eHh4Tp27Fix58TGxmr69OnavXu3rFarli1bpoULF+ro0aO2Y/bt26c333xTDRs21Pfff68HH3xQDz30kD766KMS2zJt2jQFBwfbtqioqFK/j8ouvx7B0516BAAAgIqi3ELC5fDqq6+qYcOGatKkiby8vDR69GgNHz5cbm4Fb8NqtapNmzZ6/vnn1bp1a91///2677779NZbb5V43YkTJyo5Odm2HT58+HK8nQph9d4z9Qi1qEcAAACoKBwWEkJDQ+Xu7q74+Hi7/fHx8apRo0ax54SFhWnx4sVKT0/XwYMHtXPnTgUEBNgVS9esWVPNmjWzO69p06Y6dOhQiW3x9vZWUFCQ3YbSKVgfgaFGAAAAFYXDQoKXl5fatm2rFStW2PZZrVatWLFCnTp1Oue5Pj4+ioyMVG5urr788kvdcssttue6dOlSZBrW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9PLLL5d7ewGgoqMmAQBQLtasWVPkcdOmTSVJTZs21ZYtW5Senm57ftWqVXJzc1Pjxo0VGBiounXrasWKFRfVhrCwMA0dOlTz5s3TjBkz9M4771zU9QCgsqInAQBQKllZWTp27JjdPg8PD1tx8Oeff6527drpqquu0scff6x169bp/ffflyQNHjxYTz31lIYOHaqpU6cqMTFRY8aM0d13363w8HBJ0tSpU/XAAw+oevXq6tWrl1JTU7Vq1SqNGTOmVO2bMmWK2rZtq+bNmysrK0tff/21LaQAAC4MIQEAUCpLly5VzZo17fY1btxYO3fulGTOPPTZZ59p5MiRqlmzpj799FM1a9ZMkuTn56fvv/9eDz/8sNq3by8/Pz/1799f06dPt11r6NChyszM1H//+189+uijCg0N1W233Vbq9nl5eWnixIk6cOCAfH19dfXVV+uzzz4rh3cOAJUPsxsBAC6axWLRokWL1LdvX0c3BQBQDqhJAAAAAGCHkAAAAADADjUJAICLxshVAKhY6EkAAAAAYIeQAAAAAMAOIQEAAACAHUICAAAAADuEBAAAAAB2CAkAAAAA7BASAAAAANghJAAAAACw8//RLkgj38kTCAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_metrics(train_accs, val_accs, \"accuracy\")" ] }, { "cell_type": "markdown", "metadata": { "id": "tbrJJaFrD_XR" }, "source": [ "## Save and load the model\n", "\n", "Start by making an export module that takes in raw data and performs the following operations:\n", "- Data preprocessing \n", "- Probability prediction\n", "- Class prediction" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:43:55.258497Z", "iopub.status.busy": "2024-08-15T02:43:55.258226Z", "iopub.status.idle": "2024-08-15T02:43:55.263775Z", "shell.execute_reply": "2024-08-15T02:43:55.262953Z" }, "id": "1sszfWuJJZoo" }, "outputs": [], "source": [ "class ExportModule(tf.Module):\n", " def __init__(self, model, preprocess, class_pred):\n", " # Initialize pre and postprocessing functions\n", " self.model = model\n", " self.preprocess = preprocess\n", " self.class_pred = class_pred\n", "\n", " @tf.function(input_signature=[tf.TensorSpec(shape=[None, None, None, None], dtype=tf.uint8)]) \n", " def __call__(self, x):\n", " # Run the ExportModule for new data points\n", " x = self.preprocess(x)\n", " y = self.model(x)\n", " y = self.class_pred(y)\n", " return y " ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:43:55.267399Z", "iopub.status.busy": "2024-08-15T02:43:55.266725Z", "iopub.status.idle": "2024-08-15T02:43:55.271380Z", "shell.execute_reply": "2024-08-15T02:43:55.270420Z" }, "id": "p8x6gjTDVi5d" }, "outputs": [], "source": [ "def preprocess_test(x):\n", " # The export module takes in unprocessed and unlabeled data\n", " x = tf.reshape(x, shape=[-1, 784])\n", " x = x/255\n", " return x\n", "\n", "def class_pred_test(y):\n", " # Generate class predictions from MLP output\n", " return tf.argmax(tf.nn.softmax(y), axis=1)" ] }, { "cell_type": "markdown", "metadata": { "id": "vu9H5STrJzdo" }, "source": [ "This export module can now be saved with the `tf.saved_model.save` function. " ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:43:55.275018Z", "iopub.status.busy": "2024-08-15T02:43:55.274508Z", "iopub.status.idle": "2024-08-15T02:43:55.278258Z", "shell.execute_reply": "2024-08-15T02:43:55.277451Z" }, "id": "fN9pPBQTKTe3" }, "outputs": [], "source": [ "mlp_model_export = ExportModule(model=mlp_model,\n", " preprocess=preprocess_test,\n", " class_pred=class_pred_test)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:43:55.281459Z", "iopub.status.busy": "2024-08-15T02:43:55.280898Z", "iopub.status.idle": "2024-08-15T02:43:55.627445Z", "shell.execute_reply": "2024-08-15T02:43:55.626526Z" }, "id": "idS7rQKbKwRS" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "INFO:tensorflow:Assets written to: /tmpfs/tmp/tmp5xdaip83/mlp_model_export/assets\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:tensorflow:Assets written to: /tmpfs/tmp/tmp5xdaip83/mlp_model_export/assets\n" ] } ], "source": [ "models = tempfile.mkdtemp()\n", "save_path = os.path.join(models, 'mlp_model_export')\n", "tf.saved_model.save(mlp_model_export, save_path)" ] }, { "cell_type": "markdown", "metadata": { "id": "_zZxO8iqBGZ-" }, "source": [ "Load the saved model with `tf.saved_model.load` and examine its performance on the unseen test data." ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:43:55.631299Z", "iopub.status.busy": "2024-08-15T02:43:55.630977Z", "iopub.status.idle": "2024-08-15T02:43:55.707825Z", "shell.execute_reply": "2024-08-15T02:43:55.706935Z" }, "id": "W5cwBTUqxldW" }, "outputs": [], "source": [ "mlp_loaded = tf.saved_model.load(save_path)" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:43:55.711796Z", "iopub.status.busy": "2024-08-15T02:43:55.711221Z", "iopub.status.idle": "2024-08-15T02:43:56.828639Z", "shell.execute_reply": "2024-08-15T02:43:56.827660Z" }, "id": "bmv0u6j_b5OC" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Test Accuracy: 0.979\n" ] } ], "source": [ "def accuracy_score(y_pred, y):\n", " # Generic accuracy function\n", " is_equal = tf.equal(y_pred, y)\n", " return tf.reduce_mean(tf.cast(is_equal, tf.float32))\n", "\n", "x_test, y_test = tfds.load(\"mnist\", split=['test'], batch_size=-1, as_supervised=True)[0]\n", "test_classes = mlp_loaded(x_test)\n", "test_acc = accuracy_score(test_classes, y_test)\n", "print(f\"Test Accuracy: {test_acc:.3f}\")" ] }, { "cell_type": "markdown", "metadata": { "id": "j5t9vgv_ciQ_" }, "source": [ "The model does a great job of classifying handwritten digits in the training dataset and also generalizes well to unseen data. Now, examine the model's class-wise accuracy to ensure good performance for each digit. " ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:43:56.832659Z", "iopub.status.busy": "2024-08-15T02:43:56.832071Z", "iopub.status.idle": "2024-08-15T02:43:56.909047Z", "shell.execute_reply": "2024-08-15T02:43:56.908132Z" }, "id": "UD8YiC1Vfeyp" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accuracy breakdown by digit:\n", "---------------------------\n", "Digit 6: 0.969\n", "Digit 9: 0.972\n", "Digit 7: 0.973\n", "Digit 5: 0.974\n", "Digit 3: 0.977\n", "Digit 4: 0.979\n", "Digit 0: 0.981\n", "Digit 8: 0.982\n", "Digit 2: 0.987\n", "Digit 1: 0.992\n" ] } ], "source": [ "print(\"Accuracy breakdown by digit:\")\n", "print(\"---------------------------\")\n", "label_accs = {}\n", "for label in range(10):\n", " label_ind = (y_test == label)\n", " # extract predictions for specific true label\n", " pred_label = test_classes[label_ind]\n", " labels = y_test[label_ind]\n", " # compute class-wise accuracy\n", " label_accs[accuracy_score(pred_label, labels).numpy()] = label\n", "for key in sorted(label_accs):\n", " print(f\"Digit {label_accs[key]}: {key:.3f}\")" ] }, { "cell_type": "markdown", "metadata": { "id": "rcykuJFhdGb0" }, "source": [ "It looks like the model struggles with some digits a little more than others which is quite common in many multiclass classification problems. As a final exercise, plot a confusion matrix of the model's predictions and its corresponding true labels to gather more class-level insights. Sklearn and seaborn have functions for generating and visualizing confusion matrices. " ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "execution": { "iopub.execute_input": "2024-08-15T02:43:56.912989Z", "iopub.status.busy": "2024-08-15T02:43:56.912311Z", "iopub.status.idle": "2024-08-15T02:43:57.394332Z", "shell.execute_reply": "2024-08-15T02:43:57.393431Z" }, "id": "JqCaqPwwh1tN" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxgAAAMeCAYAAACeJKJ5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAD1AElEQVR4nOzdd1QTWRsG8CehrwWRiL27YqNZQIoNu669d11U7K5dVIpYWLti7xV7767lW9cCuLoKimCvgGiogkjN9wcYEokIJhowz++cOUdm7ty5b+5M4pt7ZyKQSCQSEBERERERqYBQ3Q0gIiIiIqKfBxMMIiIiIiJSGSYYRERERESkMkwwiIiIiIhIZZhgEBERERGRyjDBICIiIiIilWGCQUREREREKsMEg4iIiIiIVIYJBhERERERqYy2uhtARERERJSfGFiNUXcTvijx9ip1N+GrOIJBREREREQqwwSDiIiIiIhUhlOkiIiIiIhkCfgdvDL46hERERERkcowwSAiIiIiIpXhFCkiIiIiIlkCgbpbUKBxBIOIiIiIiFSGCQYREREREakMp0gREREREcniU6SUwlePiIiIiIhUhgkGERERERGpDKdIERERERHJ4lOklMIRDCIiIiIiUhkmGEREREREpDKcIkVEREREJItPkVIKXz0iIiIiIlIZJhhERERERKQynCJFRERERCSLT5FSCkcwiIiIiIhIZZhgEBERERGRynCKFBERERGRLD5FSil89YiIiIiISGWYYBARERERkcpwihQRERERkSw+RUopHMEgIiIiIiKVYYJBREREREQqwylSRERERESy+BQppfDVIyIiIiIilWGCQUREREREKsMpUkREREREsvgUKaVwBIOIiIiIiFSGCQYREREREakMp0gREREREcniU6SUwlePiIiIiIhUhgkGERERERGpDKdIERERERHJ4lOklMIRDCIiIiIiUhkmGEREREREpDKcIkVEREREJItPkVIKXz0iIiIiIlIZJhhERERERKQynCJFRERERCSLU6SUwlePiIiIiIhUhgkGERERERGpDKdIERERERHJEvKH9pTBEQwiIiIiIlIZJhhERERERKQynCJFRERERCSLT5FSCl89IiIiIiJSGSYYRERERESkMpwiRUREREQkS8CnSCmDIxhERERERKQyTDCIiD7z6NEjtGrVCoaGhhAI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kToIOUdKKXl+itTUqVNx6dIlrF27Fnp6eti0aRNmz56NMmXKYMeOHd+jjUREREREVEDkeQTjxIkT2LFjB5o2bYohQ4agUaNGqFatGipWrAgfHx/069fve7STiIiIiIgKgDyPYERFRaFKlSoAMu63iIqKAgA4ODjgn3/+UW3riIiIiIh+MIEg/y4FQZ4TjCpVquDZs2cAgBo1amD//v0AMkY2ihUrptLGERERERFRwZLnBGPIkCEICAgAAEyfPh2rV6+Gvr4+JkyYgClTpqi8gUREREREVHDk+R6MCRMmSP/dokULhISE4NatW6hWrRrMzc1V2jgiIiIioh9NUFDmIuVTSv0OBgBUrFgRFStWVEVbiIiIiIiogMtVguHt7Z3rCseNG/fNjSEiIiIiooItVwnGsmXLclWZQCBggkFEREREBVqeb1ImOblKMD49NYooP9LUaZJp6RJ1N0Etov1y94XHz8bIdqK6m6AW0b5L1d0Eou+OvxpNPxsmaEREREREpDJMMIiIiIiISGWUfooUEREREdHPhI+pVQ5HMIiIiIiISGWYYBARERERkcp8U4Jx5coV9O/fH7a2tggNDQUA7Ny5E1evXlVp44iIiIiIfjShIP8uBUGeE4xDhw6hdevWMDAwwO3bt5GUlAQAiI2Nxfz581XeQCIiIiIiKjjynGDMnTsX69atw8aNG6GjoyNdb29vj//++0+ljSMiIiIiooIlz0+RevDgARo3bpxtvaGhIWJiYlTRJiIiIiIitSkoU5HyqzyPYJQqVQqPHz/Otv7q1auoUqWKShpFREREREQFU54TjGHDhmH8+PHw9/eHQCBAWFgYfHx8MHnyZIwcOfJ7tJGIiIiIiAqIPE+Rmj59OtLT09G8eXN8+PABjRs3hp6eHiZPnoyxY8d+jzYSEREREf0w/KE95eQ5wRAIBJg5cyamTJmCx48fIz4+HrVq1ULhwoW/R/uIiIiIiKgAyXOC8Ymuri5q1aqlyrYQEREREVEBl+cEo1mzZjkOG126dEmpBhERERERqROfIqWcPCcYlpaWcn+npKTgzp07uHfvHgYNGqSqdhERERERUQGU5wRj2bJlCtd7eHggPj5e6QYREREREVHBlefH1H5J//79sWXLFlVVR0RERESkFgJB/l0KApUlGL6+vtDX11dVdUREREREVADleYpU165d5f6WSCQI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m+G+cB769syUu4dichfX462s3Os9PXD82BHp617dHQEA3lt3wNrGFioqKli73gsL581Bf6de0NTURKfOXTBy9FiF5M44z9ciIj33Oq9NmXK/lf5x/JL7y3nuuWYVqteoiZUenjLn+cV//sbsmdOlr6dNdgEAOI8YheGj0n7rYtJUV4jFYkwaPw6JSYmwt3eAq1vG754AwNUrl+C9yQtJiYkwMDTCqrXrpPdhKC73j7u+1dTUcObUSXit90RSYiKqVKmKX/sNRL8BGR+qiur1XXDOc76f5/fx9r12Fa9evcSrVy/RtqXs9Rr44JE0d36+nx88Fwh9ndKYNawdKuhp4e7jt+g8zlt643e1Cjoy91eoq5XA7OEdUKuKLmLjE3HmWhAGz96L6NjPMtttaVMP1SvpyH16lJlhVelTqh4ekR0dYth5IV6FRqFLKxOU1y2Nvj9bou/PltLlL99GwshxkUKyK4OosIxFKqBEgiDIv9vnB/n8+TOSk5NRurT8H4r5T9tU3I+kFirKPZLKU1h+1ZIUI7WYnujF9Y9dcb2+i+lpXmyPt4599j/gWZTF+y9XdhWy9Sz887cLKUntclkfD13QKK0H4wt5z9AmIiIiIqLCSekNDCIiIiKigqS49qYpSuF98DoRERERERU4bGAQEREREZHCcIgUEREREVEmHCGVN+zBICIiIiIihWEDg4iIiIiIFIZDpIiIiIiIMuMYqTxhDwYRERERESkMGxhERERERKQwHCJFRERERJSJiGOk8oQ9GEREREREpDBsYBARERERkcJwiBQRERERUSYijpDKE/ZgEBERERGRwrCBQURERERECsMhUkREREREmXCEVN6wB4OIiIiIiBSGDQwiIiIiIlIYDpEiIiIiIsqET5HKG/ZgEBERERGRwrCBQURERERECsMhUkREREREMjhGKi/Yg0FERERERArDBgYRERERESkMh0gREREREWXCp0jljUgQBEHZlSgqEhIS4O7uDldXV6irqyu7Oj8MczN3ccDczF0cMDdzU5o3HxKVXYVsVSmrpuwqfBMbGAoUExODMmXKIDo6Gtra2squzg/D3MxdHDA3cxcHzM3clIYNjLzhECkiIiIiokw4QipveJM3EREREREpDBsYRERERESkMBwipUDq6uqYPXt2sbtRirmZuzhgbuYuDpibuSkNnyKVN7zJm4iI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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import sklearn.metrics as sk_metrics\n", "\n", "def show_confusion_matrix(test_labels, test_classes):\n", " # Compute confusion matrix and normalize\n", " plt.figure(figsize=(10,10))\n", " confusion = sk_metrics.confusion_matrix(test_labels.numpy(), \n", " test_classes.numpy())\n", " confusion_normalized = confusion / confusion.sum(axis=1, keepdims=True)\n", " axis_labels = range(10)\n", " ax = sns.heatmap(\n", " confusion_normalized, xticklabels=axis_labels, yticklabels=axis_labels,\n", " cmap='Blues', annot=True, fmt='.4f', square=True)\n", " plt.title(\"Confusion matrix\")\n", " plt.ylabel(\"True label\")\n", " plt.xlabel(\"Predicted label\")\n", "\n", "show_confusion_matrix(y_test, test_classes)" ] }, { "cell_type": "markdown", "metadata": { "id": "JT-WA7GVda6d" }, "source": [ "Class-level insights can help identify reasons for misclassifications and improve model performance in future training cycles." ] }, { "cell_type": "markdown", "metadata": { "id": "VFLfEH4ManbW" }, "source": [ "## Conclusion\n", "\n", "This notebook introduced a few techniques to handle a multiclass classification problem with an [MLP](https://developers.google.com/machine-learning/crash-course/multi-class-neural-networks/softmax). Here are a few more tips that may help:\n", "\n", "- The [TensorFlow Core APIs](https://www.tensorflow.org/guide/core) can be used to build machine learning workflows with high levels of configurability\n", "- Initialization schemes can help prevent model parameters from vanishing or exploding during training.\n", "- Overfitting is another common problem for neural networks, though it wasn't a problem for this tutorial. Visit the [Overfit and underfit](overfit_and_underfit.ipynb) tutorial for more help with this.\n", "\n", "For more examples of using the TensorFlow Core APIs, check out the [guide](https://www.tensorflow.org/guide/core). If you want to learn more about loading and preparing data, see the tutorials on [image data loading](https://www.tensorflow.org/tutorials/load_data/images) or [CSV data loading](https://www.tensorflow.org/tutorials/load_data/csv)." ] } ], "metadata": { "accelerator": "GPU", "colab": { "collapsed_sections": [ "FhGuhbZ6M5tl" ], "name": "mlp_core.ipynb", "toc_visible": true }, "kernelspec": { "display_name": "Python 3", "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.9.19" } }, "nbformat": 4, "nbformat_minor": 0 }