{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "cell-000",
   "metadata": {},
   "source": [
    "---\n",
    "title: MLP from Scratch on MNIST\n",
    "category: Deep Learning\n",
    "tags:\n",
    "  - deep learning\n",
    "  - mlp\n",
    "  - backpropagation\n",
    "  - mnist\n",
    "  - numpy\n",
    "date: 2026-07-31\n",
    "description: Implement a small multilayer perceptron with NumPy and train it on real handwritten digit data.\n",
    "notebook_page: false\n",
    "aliases:\n",
    "  - /deep-learning/mlp-from-scratch-on-mnist\n",
    "sources:\n",
    "  - https://huggingface.co/datasets/ylecun/mnist\n",
    "  - https://numpy.org/numpy-tutorials/tutorial-deep-learning-on-mnist/\n",
    "---\n",
    "\n",
    "## Goal\n",
    "\n",
    "Build a small multilayer perceptron from scratch with NumPy, train it on the real [MNIST dataset](https://huggingface.co/datasets/ylecun/mnist), and inspect where the implementation earns its accuracy. The main point is not raw leaderboard performance. The point is to expose each tensor in the forward and backward pass.\n",
    "\n",
    "## Why This Dataset\n",
    "\n",
    "MNIST is small enough to train on a laptop and still rich enough to show the shape of supervised learning. The input is a \\(28 \\times 28\\) image flattened into \\(784\\) features. The target is one of \\(10\\) classes.\n",
    "\n",
    "We will fit\n",
    "\n",
    "$$\n",
    "x \\\\in \\\\mathbb{R}^{784} \\\\rightarrow h = \\\\text{ReLU}(x W_1 + b_1) \\\\rightarrow \\\\hat{y} = \\\\text{softmax}(h W_2 + b_2).\n",
    "$$\n",
    "\n",
    "The loss for a minibatch of size \\(B\\) is\n",
    "\n",
    "$$\n",
    "\\\\mathcal{L} = -\\\\frac{1}{B} \\\\sum_{i=1}^{B} \\\\log p_{i, y_i}.\n",
    "$$\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "cell-001",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-07-31T21:58:41.998170Z",
     "iopub.status.busy": "2026-07-31T21:58:41.998069Z",
     "iopub.status.idle": "2026-07-31T21:58:42.916542Z",
     "shell.execute_reply": "2026-07-31T21:58:42.915981Z"
    }
   },
   "outputs": [],
   "source": [
    "## Uncomment this if you are running in a fresh environment.\n",
    "## %pip install -q datasets numpy matplotlib\n",
    "\n",
    "import math\n",
    "import random\n",
    "from dataclasses import dataclass\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "from datasets import load_dataset\n",
    "\n",
    "np.random.seed(7)\n",
    "random.seed(7)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "cell-002",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-07-31T21:58:42.918121Z",
     "iopub.status.busy": "2026-07-31T21:58:42.917934Z",
     "iopub.status.idle": "2026-07-31T21:58:48.003365Z",
     "shell.execute_reply": "2026-07-31T21:58:48.002798Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(20000, 784) (20000,) (10000, 784) (10000,)\n"
     ]
    }
   ],
   "source": [
    "ds = load_dataset(\"ylecun/mnist\")\n",
    "\n",
    "x_train = np.stack([np.array(example[\"image\"], dtype=np.float32).reshape(-1) for example in ds[\"train\"]]) / 255.0\n",
    "y_train = np.array(ds[\"train\"][\"label\"], dtype=np.int64)\n",
    "x_test = np.stack([np.array(example[\"image\"], dtype=np.float32).reshape(-1) for example in ds[\"test\"]]) / 255.0\n",
    "y_test = np.array(ds[\"test\"][\"label\"], dtype=np.int64)\n",
    "\n",
    "x_train = x_train[:20000]\n",
    "y_train = y_train[:20000]\n",
    "\n",
    "print(x_train.shape, y_train.shape, x_test.shape, y_test.shape)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cell-003",
   "metadata": {},
   "source": [
    "## NumPy Model\n",
    "\n",
    "The hidden layer is\n",
    "\n",
    "$$\n",
    "H = \\\\max(0, XW_1 + b_1)\n",
    "$$\n",
    "\n",
    "and the logits are\n",
    "\n",
    "$$\n",
    "Z = HW_2 + b_2.\n",
    "$$\n",
    "\n",
    "After the softmax, the derivative of cross-entropy with respect to the logits is\n",
    "\n",
    "$$\n",
    "\\\\frac{\\\\partial \\\\mathcal{L}}{\\\\partial Z} = \\\\frac{P - Y}{B},\n",
    "$$\n",
    "\n",
    "where \\(P\\) is the predicted probability matrix and \\(Y\\) is the one-hot target matrix.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "cell-004",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-07-31T21:58:48.004958Z",
     "iopub.status.busy": "2026-07-31T21:58:48.004833Z",
     "iopub.status.idle": "2026-07-31T21:58:48.010821Z",
     "shell.execute_reply": "2026-07-31T21:58:48.010253Z"
    }
   },
   "outputs": [],
   "source": [
    "def one_hot(y: np.ndarray, num_classes: int) -> np.ndarray:\n",
    "    out = np.zeros((len(y), num_classes), dtype=np.float32)\n",
    "    out[np.arange(len(y)), y] = 1.0\n",
    "    return out\n",
    "\n",
    "\n",
    "def relu(x: np.ndarray) -> np.ndarray:\n",
    "    return np.maximum(x, 0.0)\n",
    "\n",
    "\n",
    "def relu_grad(x: np.ndarray) -> np.ndarray:\n",
    "    return (x > 0).astype(np.float32)\n",
    "\n",
    "\n",
    "def softmax(logits: np.ndarray) -> np.ndarray:\n",
    "    shifted = logits - logits.max(axis=1, keepdims=True)\n",
    "    exp = np.exp(shifted)\n",
    "    return exp / exp.sum(axis=1, keepdims=True)\n",
    "\n",
    "\n",
    "def cross_entropy(probs: np.ndarray, y: np.ndarray) -> float:\n",
    "    eps = 1e-9\n",
    "    return float(-np.log(probs[np.arange(len(y)), y] + eps).mean())\n",
    "\n",
    "\n",
    "@dataclass\n",
    "class MLP:\n",
    "    hidden_dim: int = 256\n",
    "    input_dim: int = 784\n",
    "    output_dim: int = 10\n",
    "\n",
    "    def __post_init__(self) -> None:\n",
    "        scale1 = math.sqrt(2.0 / self.input_dim)\n",
    "        scale2 = math.sqrt(2.0 / self.hidden_dim)\n",
    "        self.W1 = np.random.randn(self.input_dim, self.hidden_dim).astype(np.float32) * scale1\n",
    "        self.b1 = np.zeros((1, self.hidden_dim), dtype=np.float32)\n",
    "        self.W2 = np.random.randn(self.hidden_dim, self.output_dim).astype(np.float32) * scale2\n",
    "        self.b2 = np.zeros((1, self.output_dim), dtype=np.float32)\n",
    "\n",
    "    def forward(self, x: np.ndarray) -> tuple[np.ndarray, dict[str, np.ndarray]]:\n",
    "        z1 = x @ self.W1 + self.b1\n",
    "        h1 = relu(z1)\n",
    "        z2 = h1 @ self.W2 + self.b2\n",
    "        probs = softmax(z2)\n",
    "        cache = {\"x\": x, \"z1\": z1, \"h1\": h1, \"z2\": z2, \"probs\": probs}\n",
    "        return probs, cache\n",
    "\n",
    "    def backward(self, cache: dict[str, np.ndarray], y: np.ndarray) -> dict[str, np.ndarray]:\n",
    "        x = cache[\"x\"]\n",
    "        z1 = cache[\"z1\"]\n",
    "        h1 = cache[\"h1\"]\n",
    "        probs = cache[\"probs\"].copy()\n",
    "        batch_size = len(y)\n",
    "\n",
    "        probs[np.arange(batch_size), y] -= 1.0\n",
    "        probs /= batch_size\n",
    "\n",
    "        dW2 = h1.T @ probs\n",
    "        db2 = probs.sum(axis=0, keepdims=True)\n",
    "        dh1 = probs @ self.W2.T\n",
    "        dz1 = dh1 * relu_grad(z1)\n",
    "        dW1 = x.T @ dz1\n",
    "        db1 = dz1.sum(axis=0, keepdims=True)\n",
    "        return {\"W1\": dW1, \"b1\": db1, \"W2\": dW2, \"b2\": db2}\n",
    "\n",
    "    def step(self, grads: dict[str, np.ndarray], lr: float) -> None:\n",
    "        self.W1 -= lr * grads[\"W1\"]\n",
    "        self.b1 -= lr * grads[\"b1\"]\n",
    "        self.W2 -= lr * grads[\"W2\"]\n",
    "        self.b2 -= lr * grads[\"b2\"]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "cell-005",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-07-31T21:58:48.012110Z",
     "iopub.status.busy": "2026-07-31T21:58:48.012019Z",
     "iopub.status.idle": "2026-07-31T21:58:48.568434Z",
     "shell.execute_reply": "2026-07-31T21:58:48.567613Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "epoch=00 loss=1.0016 train_acc=0.8632 test_acc=0.8637\n",
      "epoch=01 loss=0.4673 train_acc=0.8858 test_acc=0.8780\n",
      "epoch=02 loss=0.3784 train_acc=0.9095 test_acc=0.9027\n",
      "epoch=03 loss=0.3385 train_acc=0.9193 test_acc=0.9061\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "epoch=04 loss=0.3081 train_acc=0.9283 test_acc=0.9155\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "epoch=05 loss=0.2881 train_acc=0.9300 test_acc=0.9202\n",
      "epoch=06 loss=0.2729 train_acc=0.9353 test_acc=0.9221\n",
      "epoch=07 loss=0.2587 train_acc=0.9355 test_acc=0.9218\n",
      "epoch=08 loss=0.2465 train_acc=0.9420 test_acc=0.9274\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "epoch=09 loss=0.2387 train_acc=0.9435 test_acc=0.9268\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "epoch=10 loss=0.2259 train_acc=0.9435 test_acc=0.9330\n",
      "epoch=11 loss=0.2192 train_acc=0.9477 test_acc=0.9306\n"
     ]
    }
   ],
   "source": [
    "def accuracy(model: MLP, x: np.ndarray, y: np.ndarray, batch_size: int = 512) -> float:\n",
    "    preds = []\n",
    "    for start in range(0, len(x), batch_size):\n",
    "        xb = x[start : start + batch_size]\n",
    "        probs, _ = model.forward(xb)\n",
    "        preds.append(probs.argmax(axis=1))\n",
    "    pred = np.concatenate(preds)\n",
    "    return float((pred == y).mean())\n",
    "\n",
    "\n",
    "def iterate_minibatches(x: np.ndarray, y: np.ndarray, batch_size: int):\n",
    "    idx = np.random.permutation(len(x))\n",
    "    for start in range(0, len(x), batch_size):\n",
    "        batch_idx = idx[start : start + batch_size]\n",
    "        yield x[batch_idx], y[batch_idx]\n",
    "\n",
    "\n",
    "model = MLP(hidden_dim=256)\n",
    "history = {\"train_loss\": [], \"train_acc\": [], \"test_acc\": []}\n",
    "\n",
    "epochs = 12\n",
    "lr = 0.08\n",
    "batch_size = 256\n",
    "\n",
    "for epoch in range(epochs):\n",
    "    losses = []\n",
    "    for xb, yb in iterate_minibatches(x_train, y_train, batch_size):\n",
    "        probs, cache = model.forward(xb)\n",
    "        loss = cross_entropy(probs, yb)\n",
    "        grads = model.backward(cache, yb)\n",
    "        model.step(grads, lr=lr)\n",
    "        losses.append(loss)\n",
    "\n",
    "    train_acc = accuracy(model, x_train[:4000], y_train[:4000])\n",
    "    test_acc = accuracy(model, x_test, y_test)\n",
    "    history[\"train_loss\"].append(float(np.mean(losses)))\n",
    "    history[\"train_acc\"].append(train_acc)\n",
    "    history[\"test_acc\"].append(test_acc)\n",
    "    print(f\"epoch={epoch:02d} loss={history['train_loss'][-1]:.4f} train_acc={train_acc:.4f} test_acc={test_acc:.4f}\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "cell-006",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-07-31T21:58:48.570492Z",
     "iopub.status.busy": "2026-07-31T21:58:48.570247Z",
     "iopub.status.idle": "2026-07-31T21:58:48.727634Z",
     "shell.execute_reply": "2026-07-31T21:58:48.727124Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+kAAAGICAYAAAA9CqGpAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvctoD+AAAAAlwSFlzAAAPYQAAD2EBqD+naQAAnwVJREFUeJzt3Qd4U+X3B/Bv926BUtoCLXuVvbeADNmgMgRElgPcov4VFyIq7oWKCoggKIrykyEggoAge+9VNnQXunfzf84bEpo2bdOZpPl+nuc+SW5ukstt6c2573nPsdNoNBoQERERERERkdnZm3sHiIiIiIiIiEiLQToRERERERGRhWCQTkRERERERGQhGKQTERERERERWQgG6UREREREREQWgkE6ERERERERkYVgkE5ERERERERkIRikExEREREREVkIBulEFUx0dDQaN26MZcuWmeX1JWXuzyciIiIiMidHs346kQ3ZunUrpk6datK2f/zxhwpUiyMzMxNnzpzBzZs3zfL6kjL35xMREVmK/v3749KlS3j33Xdx3333mXt3iKicMEgnKift27dXwXdO3bt3R40aNbB8+XKD9XXq1Cn25/j5+eHUqVMICAgwy+uJiIio5Pbs2YO//voLXl5e+PLLLxmkE9kQBulE5cTDwyPP6LiDgwNcXV2LPWpujLxnSd6vpK8nIiKikps/f766kD9z5kw89thjOH/+POrXr89DS2QDOCedyIJcvHhRBcj/+9//sGvXLnXVvFmzZtixY4d6Xp7TLS1atMCgQYOwaNEiaDSaAud053zfffv2Yfjw4WjVqhVGjx6tRs1zKunrRXJyMt5880107NgRnTp1wnvvvYesrCz1b/nggw+KnQb/1VdfoW/fvurfLrfz5s1T63Nat24dRowYgXbt2uHuu+/GjBkz1L+pqNsQERGZS2JiIn755Rc88sgjePDBB1GpUiUsWLDA6LZyfv3+++8xZMgQdW6W7wbyODs72+Rt5LPkPH/9+nWD975y5Ypa/9tvvxlM35N1Bw8exJo1azBgwAA0bdpUbavbXrfIZ91///1YtWpVkfZbLkg0adJEPc5NztfyeR999FGJjjGRJeNIOpEFSUtLU/OxJb0tLCwMTz75pDoZ6QLRnOny8fHx2L59O5544gk1X23WrFn5zunWve+WLVtw48YN9b4yYv7888+jV69e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ytDQUIN9kveQkW357pJfNp/0Opc55/I6+Z4j92Vp1KhRniDblP0eNGiQSpmXfZPtiCo6BulEVC4WL16MiRMnYseOHXnmkBMREREZo8vM69evn2rlRmQLmO5ORKVO0tWkz6vOrl271FxwmfPGAJ2IiIhMNXfuXJXR9+KLL/Kgkc1gCzYiKnUhISFq1FzmtumqvUormXnz5vFoExERUaG+/PJLNUVOpqa99tprLBhHNoXp7kRUZnTzzCRNzd3dnUeaiIiITCJz2GNjY1WNmvxq0BBVVAzSiYiIiIiIiCwE56QTERERERERWQibm5OenZ2t2kJJyyX2WSQiIksgbY+kdoO0FpK2hVQyPNcTEZE1n+ttLkiXAD0oKMjcu0FERJSH9B6uWbMmj0wJ8VxPRETWfK63uSBdRtB1B4dFKIiIyBLEx8erC8i6cxSVDM/1RERkzed6mwvSdSnuEqAzSCciIkvCaVilexx5riciIms813PiGxEREREREZGFYJBOREREREREZCEYpBMRERERERFZCJubk05EREQksrKykJGRwYNRTM7OzmwZSERUBhikExERkc31qg0PD8etW7fMvStWTfr81qlTRwXrRERUehikExERkU3RBejVqlWDu7s7q+oXQ3Z2tupHHxYWhuDgYB5DIqJSxCC9mLKyNdh7MRaRCamo5uWKDnWqwMG+8HL6REREZN4Ud12A7uvryx9FCfj5+alAPTMzE05OTjyWRFShZJkx3nM0d7rZX3/9hV9++QXVq1fHO++8Y9Jrfv75Z2zevBmurq4YNWoUevTogfK04XgYZq05ibC4VP26QB9XzBwSgv7NAst1X4iIiMh0ujnoMoJOJaNLc5cLHwzSiagi2WDmeM/enCfJBg0a4JNPPsHFixdVsG6KadOmYfr06WjSpAkqVaqEvn374ocffkB5/sCmLT1o8AMT4XGpar08T0RERJbNzo7ZbzyGRESWGe+ZbSTdwcEBGzduRN26dfHss89ix44dhb7m+PHj+Pbbb7Fp0yb07t1bfxX3hRdewNixY8u8cImkPMgVFY2R52SdnO7l+b4hAUx9JyIiIiIisiJZFhLv2ZuzIqgE6EWxbt06NX+sV69e+nWjR49GTEwMdu/ejbImcxJyX1HJ/YOT52U7IiIiIktWv359fPPNN+beDSIii7HXQuI9swXpxREaGoqaNWsa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JyejVatWPBwAli1bhmeeeQbLly9X/48kQ+z+++9XGWO2KikpCRMmTFDHRc5f8r35p59+Um2dben/kfz96N69u/pb4uDgYHSb7777Dj/++KP6nnjixAn8+++/6nvSr7/+igrP3FcJrI1c0ZErX2+//bbBerk6yCumhnbs2KGujJ05c0Zj6z7++GNNr169NJGRkRxJ12g058+f19jZ2Wl+/fVXc/9oLMrixYs1Tk5OmoyMDP26n3/+WePg4KAyeGzNli1bjI6kx8bGqmOydOlS/bq0tDQ1UvPhhx+aYU+pIpJR827duhmse/bZZzX16tUz2z5ZKk9PT83nn3+usXWHDh3SVK9eXXP9+nVN27Zt+b1Qo1EZF48++qi5fzQWRX4/5Ny2adMmg+wwWbdu3TqNLZJzurGR9A4dOqjR9pwGDx6sueeeezQVHUfSi0hGiGXUuG3btgbr27dvr0a+6A6ZO+Ls7IygoCCbPixy9U9GXiTjws7Ozty7YxH++ecfdSwGDhyoRotlPpZcWbZ19913H1q3bq2usP/111/45Zdf8Oabb2LWrFlwc3Mz9+5ZDKl7IRk6Of8Oy9+ali1b8u8wlRo5p+c+10uGmIz62PL8UWOjYYmJiahfvz5smZzDRo8erTILqlevbu7dsQgXL15UWadDhgxR353l+5BNzSnOh/x+PP300/i///s/rFy5UmXRSbZlv3790LdvX3PvnkVloR45csTo32FbiLkYpBejuIHw9fU1WC+Pdc8RVDqTBBcvvPCCTQcX8kXugQceUOlvNWvWNPfuWIwbN26gSpUqePzxx9GjRw+VplytWjV8/PHHsGWenp7qxP3333+rdG85gctxktRAuoN/h6m8fs+Mnetz/g7aOplyMmnSJPWl+Z577oEtk/OZpO7KxVa6c64XctE5JCQEDz/8MIKDgzFmzBibLzgo09jkYrOc62WRonoyddbR0ZG/PjkufKWlpdlszMUgvYicnJz0J6acpLKwjOSQtuq9nKz79OmDt956y6YPyauvvgo/Pz8EBgaqypV79uxR62VelowG2vL/I7maXrlyZTWSLnOQly5dqi7q/Pfff7BVv//+OyZPnow1a9aoOWpybOQihizsInEH/w5Tef2eGTvXC57voTpPjBo1ClFRUWo0ML85pbZg3bp1+OOPP1QNETnXyyLZBWFhYeq+jAja8t9qyayUDBQZ/ZTvP3Ih+r333oMtX7zo2bMnHnzwQXVc5DvQwoULce+996o516Rl6+d6Xq4pIrkCKGm6uVtIyGN5ztZJgC5/eCRl9+eff7bpk7ZuZNTe3h4vv/yyepyZmaluFy9erKZOSFqcLapdu7a6lWJDuikAcnKS0fTt27eja9eusEVSoKpdu3bo2LGjeizHRkZn5MvM7t27VSocAbVq1dL/3c05nUYeywUNotL6PTN2rndxcVF/q2w9QJfUbgkutm7dqgrH2vrxaN68Od5++22D3xW5uCqto2SKly0EFfmd6yVbTr4P6dbJQI6c623Vli1b1CjxE088oV8nx6RevXrqe8Bdd91l1v2zFC4uLvD397fZmIsj6UUk1aflC/Tq1asNUprlD7CtzyO5du0aevXqpeaFStVF3RUwW/buu+/qr6rLIn98xfvvv2+zAbq4++67VUpXzj+88v9IvtBI5oGtkn+7jLzkrOQuF3N0z5GWpE3KnL6cf4dl3qNkp9j632EqPfK7JGm66enp+nWrVq1Sf79s+QK0XGyWaVySnisBui18WS7MsGHDDM71sjRq1Eilvst9WwzQhVzMkir3uYMs+b5oy+c03b9djoOOjBZLVootH5f8/g6vWbNG/1imCMh3aVs413MkvRjeeecddcWrTp06ah6WzDeWL4xTpkyBrZKCIBKgy4lI5tTq0rqFXF328fEx6/6RZQkICFBzsGQkffbs2fD29sbnn3+u/h+NHDkStkr+hnz11VeqVZ8Uj7t586aq7SDzHOXily1l5MiimxIiqZKS+i9feuULjGSnzJkzR81vlLlp8rdYfo+6deuGwYMHm3v3qYJ46qmnsGDBApXC/Mgjj6iWbNJ6zJZHAMVDDz2kCl3JsdH9XxWS1aLLciHS+eCDD1RdFfnbLd8H5Xdn165d6uKFrZKMrxYtWqjvOzItUmo3zZs3T2XP2VKrXmnDl3Pqp7Sjk98LGT1v0KCBWiftVaU4t5zv5WKYtKqT+ejyHbKis5MS7+beCWskJ+mvv/4akZGR6suzpDPbcvqbzDF69NFHjT4nI8aS/k7aP0iDBg1SJ60uXbrY9CGRPz2S9i9zGeXKqPyOTJ8+XRVKs2VykpL/M2fPnoW7u7v6PZGUd7lvK+bPn69+N3J74403DFL+ZSRdtpMMjM6dO6uTtmQ7EZUWGemS6SZSwVxXkVm+MNqyAQMGGK1uL/Nrp06dapZ9skQSVDRt2hTPPfccbJ0EXhKEyndmSemWC2BybGz9+6Cc66UvumTrSIaY9E23pY5IUqNAfhdyk84/r7zyiv6x9EeXwsKXL19Wvz9SVNcWukkwSCciIiIiIiKyEJyTTkRERERERGQhGKQTERERERERWQgG6UREREREREQWgkE6ERERERERkYVgkE5ERERERERkIRikExEREREREVkIBulEREREREREFoJBOhGVu5s3b2L58uXIyMjg0SciIqqgVq5ciWvXrpl7N4isDoN0Iip3oaGhGDNmDJKSknj0iYiIKqjJkydj9+7d5t4NIqvDIJ2IiIiIiIjIQjiaeweIqHzFxsZiz549cHR0ROvWrVG1alWDNPS//voL999/P86dO4fz58+jUaNGasntypUrOHjwIDw9PdG1a1e4ubnl2ebWrVv6z+rcuTPc3d3zbHPmzBn1WfXq1UOTJk3K4F9MRERkW9LT07Fr1y4kJCQgJCQEdevWzZOG3qFDB9jZ2eHo0aPw8fFR52l5nFN8fDx27typ3q9jx47w9/fP81kydU3O9XLOb9++vdFtwsPDcfjwYXh7e6NTp06wt+c4IVFB7DQajabALYiowvj+++8xffp0tG3bFg4ODti7dy++/PJLPPjgg+r5/fv3qxPsgAEDcPnyZVSvXh3bt2/Hq6++itdff13/PrNnz8acOXPQpUsXdeKNiYnB2rVr1fvqLFiwAM8++6z6ciAn5Rs3buC3335Tj3WfM2TIEFy9ehWBgYHYsmULZsyYgTfeeMMsx4aIiKgikAvow4cPh5+fnzqPS7A+evRofPXVV/ptKlWqpIL0kydPokWLFur7gJzD16xZA2dnZ7XNxo0bMWrUKDRo0AAeHh5qm88//xyPPPKI/n3kfC4X9p2cnNQFfXm/d999V01p032OBP9yMV4uxMv2jRs3xqZNm9T3ECLKhwTpRFTxHTp0SOPp6ak5ePCgft2mTZs07u7umuvXr6vH+/btk4t2mpEjR2qysrLUuvXr12vs7e01x48f129jZ2en+fvvv9Xj7OxszdixYzUtW7bUv0a2kdcsXbpU/1mXL1/Wf7buc1544QX987/99pvGyclJExcXVy7Hg4iIqKJJTU3VBAUFaebOnatfFx4ervH399esWLFCv87Hx0dTp04dTUxMjHos3wP8/Pw0X3zxhXqclJSkqVGjhubll1/Wv2bBggUaV1dXzaVLl9TjlJQUTfXq1TVTpkzRZGZmqnXJycmav/76y+BzOnfurNaLsLAwjZubm2b16tVlfiyIrBlzTYhsxJIlS1C7dm1VtG3FihX49ddf1Qi4XMmWNLWcnn/+eX0qWv/+/dGsWTM1Ci5++eUXNQrep08f9VhS41555RUcOXIEp0+fVut+/PFHdWV+3Lhx+vcMDg5W6fU5TZs2TX+/Z8+eKmXuwoULZXgUiIiIKq7Nmzfj+vXraiqbnLflfL9t2zaV7i4ZazlNmTIFVapUUfdlxH38+PHqu4GQLDrJgHv55ZcNisDJ9qtWrVKP//77b7XN+++/rx8Vl6lv/fr1M/iciRMn6qfEBQQEqBF3mepGRPnjnHQiG3Hp0iU1N00XbOsMHDgQXl5eBuskmM+pTp06Kv1dyG3uuW0yn1z3nKSzy3z1hg0bFrpPui8HwsXFRd2mpqYW+d9GRERE2nO9pKv/8ccfBodDLpRL2nph53oJ6nXnc19fXzVXXUcuyuf8PiDnejmPy3amnut153ue64kKxiCdyEbIvHA5SUt/8sJIAbmchV/ksS7olqvzMhqfuxid7jndHDSZa05ERETle66XIm9Sg8ZYsdac5Nye+7HuPC63cXFxyM7ONijyJuf7nOd6KSyXmZmpCsQSUelhujuRjZC0danQKlVcc5ITbu4r2jmvwEsqm/Q4lQruolu3bioNLioqSr+NXHmvXLmyGkUXkuom21y8eFG/jdSolPR6IiIiKht33323Sj2X4q05SSAdERGR77leztH/+9//9Od6XeV3KSSnc/z4cTWtTb4HiF69eqltfvrpJ4P3zfn9gIiKh5e9iGyEVGj9/fff1dzvp59+GjVr1sSJEyfUCVjmpLu6uuq3/eKLL9QVdNlGqsHKyXro0KHquQceeADz5s1TJ2eZUx4WFoaPPvpIvUaqvwqpIisnbTnZP/XUU+rKvgTyUr39nnvuMdsxICIiqshkbvmnn36quqtIpXWpISOZbXL+//DDD9UFex2pJSPfDaTGzOrVq1X6ui4ol/P/Sy+9hIceekjdyqj8xx9/jJEjR6J79+76z3rvvffw6KOPqvZqUr19x44dqmOLrCei4uNIOpGNkHQ1KQgjKXBylVtGx2Vu2YEDB/LMJ9u6davqfy6tUiZMmIANGzboe6fK+0ixGAnQ9+3bp/qirl+/Xp2kc36WXKGXE7qMpp89exZvv/22PkCX+WkSyOvavAhp3yLrcvZtJyIioqJ54okn1MV3mU8uWW0ysi590XMG6GLu3Lno3bu3OtdLgC3n9Bo1auiff+utt1TRWZmDLll40n512bJlBu8hbV2lWJ2kxUuLtr59+6oWrTrSni0oKMjgNbJN06ZN+WMlKgD7pBORnq5/ucxLk7lmREREVPHIOV5S4keMGGHuXSEiIziSTkRERERERGQhGKQTkZ6xNHQiIiKqWIyloROR5WC6OxEREREREZGF4Eg6ERERERERkYVgkE5ERERERERkIRikExEREREREVkIBulEREREREREFoJBOhEREREREZGFYJBOREREREREZCEYpBMRERERERFZCAbpRERERERERBaCQToRERERERERLMP/AzXybHfufDBsAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1200x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, axes = plt.subplots(1, 2, figsize=(12, 4))\n",
    "axes[0].plot(history[\"train_loss\"], marker=\"o\")\n",
    "axes[0].set_title(\"Training loss\")\n",
    "axes[0].set_xlabel(\"epoch\")\n",
    "axes[0].set_ylabel(\"cross entropy\")\n",
    "\n",
    "axes[1].plot(history[\"train_acc\"], marker=\"o\", label=\"train\")\n",
    "axes[1].plot(history[\"test_acc\"], marker=\"o\", label=\"test\")\n",
    "axes[1].set_title(\"Accuracy\")\n",
    "axes[1].set_xlabel(\"epoch\")\n",
    "axes[1].legend()\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "cell-007",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-07-31T21:58:48.729421Z",
     "iopub.status.busy": "2026-07-31T21:58:48.729279Z",
     "iopub.status.idle": "2026-07-31T21:58:48.966155Z",
     "shell.execute_reply": "2026-07-31T21:58:48.965631Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA94AAAMXCAYAAADMio1XAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvctoD+AAAAAlwSFlzAAAPYQAAD2EBqD+naQAAdLpJREFUeJzt3QW4HNX5OOC5SdBgIbgT3CkUKQQN7lYo0iLBpdBCoTgFihQoVkopRYIVD+5QHIoEd3d3CZbs//nm9990c3Mzs/fuPbn2vs+T0uw3Ozt7MmfnfHPOnNNUqVQqGQAAAJBErzS7BQAAACTeAAAAkJgebwAAAEhI4g0AAAAJSbwBAAAgIYk3AAAAJCTxBgAAgIQk3gAAAJCQxLuD3XvvvdkGG2yQvfbaax19KEA7+fzzz/N6fe211ypT6EZ233337Oijj+7owwDa0T/+8Y9syy23VKYk1yf9R1Dk7bffzq6++urssMMOa7ignnvuuWz//fdvMfa73/0uW2GFFQrff9lll2UXXnhhdvHFF2cTTjhh1hU1WgbQHr777ru8Xq+44ortVqDPPPNMdskll2RPPfVU9vOf/zw78MADW1UnDjrooPx9XVlbywDay2233ZbNO++87bKvQw89NHviiSfGeH366afPTj/99NL3b7zxxtm6666bbbPNNllX1WgZQHt4/PHHs+uvvz5JYZ511ln5Tfh55pknO/bYY+uqE9988012/PHHZ13Ze++9l5199tnZ008/nU0wwQTZ8ssvn/3617/OxhtvvKwnk3h3I5988kne2P/jH/+YLbXUUqPF5phjjtL3v/DCC/n7f/rpp6ynlgF0RksuuWT27bffZptuumneOPjxxx9bXSe23377rKeWAXRG9913X/bKK69kJ5544mivTzLJJHW9P+r17LPPnvXkMoDOLG4S77bbbtmIESOy999/v+46EaPmurL//ve/2RprrJHNPffc2Q477JB9/fXX2cEHH5z961//ym699dasb9++WU8l8e6GIuGMYa49mTKgO4mRKHPNNVf+/4866qisJ1IGdEeTTz55j79eKwO6ox9++CHv4Y2bxXfccUfWk2y99dbZFFNMkd199915b3dYa621sgUWWCA74ogjsmOOOSbrqXrsM97vvPNOfrGLyvDqq69m++yzT/arX/0qO/zww/MeorFt++abb2YHHHBAtskmm2SPPfZYHh85cmR2xRVXZDvvvHNewWJfTz755Bif+dlnn2VHHnlk/jm///3vs5deeinrLE477bTsoosuyv//5ptvnn/f+BN3okPE4u/xXW+55ZZsxx13zCtWOOWUU7Jtt912jH3edddd+XuizGrVW17QFtGze9JJJ+V3WGNYV5zPe+21Vz7caWzbxrCu6HHZYostsnPPPXdU/IEHHsj23nvvbLPNNst22mmnFoeixQiRGEq21VZb5Xd2//Of/7T7P1w16W6tqIPxexX+/Oc/j6rX0VMWot7F3+O/MSQ9fpdi+GrU2fi9i1j8/tWK38d4/YYbbhjj8+opr3FdBnQPUU+jvlYqlez888/PfvOb3+R/b+k8rG4bLr300vz6FNeZqjfeeCO/1sdvQ+znzDPPzL7//vsx9hM9M1Gno/EcQybj2tUZVOtgHE/U5Wq9jjoe4vX4e1y3Y9tod0SdjLL68MMP89jNN988xn532WWX7C9/+csYr9dbXtCWRzfifIze4JjzKNqW8az1GWecMcaoptpto0c1epI32mij/NGu8NVXX+Vt2WibRjs7zvs435t7/vnn8+tUnM9RZ7744osk/3AxZDyGWzcfzVEk6mBcj6PtXa3XcZxVcT2PP9HuiHoYv03VOhtld8IJJ4yxzyiTqLfN1VterRW5TYygjTypmnSH6P1eaqml8l7vGAHQU/XYHu844eKCNf/88+eVPS5Ks846a3bqqafmJ8X999+fzTTTTKNtG3dq4lnsX/7yl/kzCh999FE+9HHttdfOnw+Jxv3AgQPzOzyLL754NmTIkLwhH959991smWWWyXr37p399re/zcYff/xs8ODBLT5zHJXukEMOqet7xL5WXnnl0V6LyhgX3Ikmmig/jqiY/fr1K9zPsssum3/naHzHj171Ge/+/fvn/3322WfzMjj55JOzhx9+OFt11VXzRkkYNmxYdtNNN42xz7feeit/T1TmqnrLqyPKgO4hzsWos5H0xTPWq622Wj5vQZwHcT7G8Kfm29544435ubjccsuNuvDst99++UUsGvDrrLNOPgFi/E7EBezvf/97vk1cPOIZyziH//CHP2SzzTZbfiMq6npz0RiORkI94nyO87pR8XjFmmuumd1zzz3ZoEGDRj3jHb9lIb5rlEm8HjcM4kZYNHa+/PLLPPmOWPM708OHD89fX2WVVUZ7vZ7y6ogyoHt45JFHsjvvvDNvMEdPUpx/Dz74YH6uxfwFkRg23zaS7bjmxLOF0VAPV155ZX6Ni9+GuMkUjfa4QRfXjKgD1SGQMbIk5hCI63Rc7+I6F43ilkRDOK6RZaaZZprsn//852ivRcM8bgzEzb9oc6y//vqlc5HEMcZz3fHcaNTl6jPe0003Xf7fakIe+4tJo9Zbb728wRsJS5RH89/BqrimL7rooqO9Vm95jesyoHt4/fXX8/MxrplxnYrrQ9zsjetpzOcRHT19+vQZbdtor8ZN5Q033DBPxiMJjUQv6mmcj9GpM9lkk+WjpOJ6HOdp9ZoXN5SjDfqLX/wiP6+jHR/nW7T/m4s2ZNy4q0ec03Fu1w4Xj4Q49lFtR9cj6li0xaMuVOt19fuHaGuEuK7OPPPMeT15+eWX89eirOLa3Vx0Eja/QVlvebWlDKKTMUw55ZRjbNO/f//8ZmAk5+01V0aXU+mhnnvuuUp8/VlmmaXyxRdfjHr9ww8/rEw22WSVTTbZZIxtZ5555tG2/e677yp77rlnZfzxx6889dRTo+1/3333rfTt27fyySef5H/fYostKpNMMknl/fffH7XNV199VZl99tnzfT/22GOjXr/11lvz1+r5c84554x63z333FOZZ555KocddljlggsuqBxxxBGVaaedNv/z6KOPlpZJbB/7jONq7sADD8xju+6662jfP2y99db5ZzR3/vnn5++pLZt6y6ujyoCub8YZZ6xMMMEElXvvvXfUayNGjKissMIKlemmm27UeVu77d133z3qtYgPHTo0P7f++c9/jrbvG264IX/9pptuyv8e8fj7ddddN9p2v/zlL/PXTzzxxFGv/fjjj3Wf01GnxiaOd+211667PKJOxD6vvfbaMWLVevazn/2s8v33349WBlGvIha/f7Xeeuut/PVTTz111Gv1lldHlQFd35ZbbplfO/785z+P9vpBBx1UaWpqGu0aWt32yCOPHO2cfueddyoTTTRRfj2uFdflSSedtPLHP/4x/3uc87169arss88+o213wgkn5Ofe+uuvP9rryy67bF3n9Kyzzjra+9Zcc83KVlttVTnjjDPyPxtttFG+3Q477FAZOXJkaZn07t27svfee4/xerWexXd65ZVXRiuD1157LY+dfvrpY7xvjjnmqGy88caj/l5veXVkGdC1nXnm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u+xSGP/73/9eGH/ooYdKP2OppZZq9XEBAPR0erwBAAAgIYk3AAAAJCTxBgAAgIQk3gAAAJCQxBsAAAASkngDAABAQhJvAAAASMg63j1U3759C+OLLLJIYXyjjTYqjK+77rqlxzDnnHNmKZWt0V3PNrPMMkthfPPNNy+MH3nkkaXHAONK2fk+99xzj7NjAYCO0KtXeb/jeuutVxgfOnRoYfyee+4pjK+zzjqlx/Dll1+WbkPXoscbAAAAEpJ4AwAAQEISbwAAAEhI4g0AAAAJSbwBAAAgIYk3AAAAJCTxBgAAgISaKvUsdhwbNjWlPA7a0fTTT1+6zc0331wYX2CBBRo6H+o8rZKq55xt9Diff/75hsqxPTTyHdTr7uXSSy8tjG+yySaF8S+++KL0M/r169fq46Jt1G3oftTrjrfggguWbvPEE08kPYatt966dJsLLrgg6TEw7uu1Hm8AAABISOINAAAACUm8AQAAICGJNwAAACQk8QYAAICEJN4AAACQkMQbAAAAEuqTcud0jBNPPLF0m3GxvnRqb7zxRmH8u+++K93HlFNOWRifeuqpC+O333576WfAuDLHHHMobKDdTTrppIXxvn37lu5j+PDhhfGJJpooS+2zzz4rjH///ffJj4GOt+666za8j0033bQwPv/88xfGr7rqqoaPga5HjzcAAAAkJPEGAAAAiTcAAAB0TXq8AQAAICGJNwAAACQk8QYAAICEJN4AAACQkMQbAAAAEmqqVCqVujZsakp5HD3K3HPPXRg/66yzCuO77LJLYfw///lP6TFMOeWUWSPKzofLL7+8dB9ffPFFYfyiiy4qjD/66KOF8S+//LL0GGacccbC+KyzzloYf/jhhwvjP/74Y5ZanVW4Rep11zLHHHMUxh955JHC+OSTT95QnQz9+vUr3Yb2oW73DPvtt19hfKWVVkp+DGXXgrnmmquha2V49913G7oeN1IfqoYNG1YYX2KJJbLU1Ov0JptsssL4iy++WLqP7777rjC+9NJLF8bff//90s+g+6i3XuvxBgAAgIQk3gAAAJCQxBsAAAASkngDAABAQhJvAAAASEjiDQAAAAlJvAEAACChPil33hMtv/zypdvceeedDa2n+eSTT2aNeuKJJwrje+yxR2H83nvvzbqDd955p6E4jEu77rprQ+t0l3n00Ucbej/QekcffXSPKLaydbrL2j7tYbrppkv+GXS8QYMGFcannnrq0n0ceuihhXHrdNMWerwBAAAgIYk3AAAAJCTxBgAAgIQk3gAAAJCQxBsAAAASkngDAABAQhJvAAAASMg63q00wQQTFMb333//0n1UKpWsEWVrS6+yyiql+/joo48K459++mmrjwtIa6KJJkq6/8ceeyzp/qG7mXTSSUu3ueuuuxr6jLI2w4svvli6j+HDhxfG77vvvsL466+/XhifbbbZSo+hbB+NevbZZ0u3uf/++5MeA93HtNNO29GHQDekxxsAAAASkngDAABAQhJvAAAASEjiDQAAAAlJvAEAACAhiTcAAAAkJPEGAACAhKzj3UprrLFGYXy11VbLUtt2220L4y+88ELyYwDGva233rqh95et5XvPPfc0tH/obqaZZprC+HHHHVe6j0UWWaShY9h+++0L4xdffHHDdR+6k2HDhhXGP//889J9DBo0qDA+ySSTFMa//vrr0s+g59HjDQAAAAlJvAEAACAhiTcAAAAkJPEGAACAhCTeAAAAkJDEGwAAABKSeAMAAEBCEm8AAABIqE/KnXdHm2++eUcfQjb//PMXxt9+++3SfXz44YeF8U8//bTVxwW03Zprrlm6zUQTTdRQET/66KOF8Wuuuaah/UN3c/DBBxfGt9pqq+THMPHEExfGJ5xwwtJ9DB8+vB2PCDq3N954ozD+xBNPlO5jhRVWKIwvssgihfH77rsv6+zWWWed0m122223wvgOO+zQcE7Sk+jxBgAAgIQk3gAAAJCQxBsAAAASkngDAABAQhJvAAAASEjiDQAAAAlJvAEAACChpkqlUqlrw6amlMfRZQwdOrQwvt566zX8GWVlXec/WaHXX3+9MP7uu+8Wxo899tjC+HXXXdem46L1Gjkf1OvO4+677y7dZuDAgQ19xr333lsYX3755RvaP+1L3U7vjDPOaGiN2q7itttuK4wffvjhDf12UD/1uuNNNdVUpdt88MEHhfGLLrqoML711lsXxkeOHJmlNueccxbGb7rpptJ99OpV3Ec733zzFca///77rCeo1NkW1+MNAAAACUm8AQAAICGJNwAAACQk8QYAAICEJN4AAACQkMQbAAAAEpJ4AwAAQEJ9Uu68Ozr33HML4+uvv37DnzEu1laeffbZG4pfe+21hfGHHnqo9BjWXHPNwvinn35aug/oLp5//vmG1/EeMWJEsvVjoStaZZVVGlqne1zUmbJr/tNPP93Q9ToMGjSoMD7TTDMVxpdaaqnC+FdffVV6DNBZDB8+vOF9bLHFFoXxYcOGFcZPPPHEho+hrE1w/vnnF8ZnmWWW0s9YfPHFC+M9ZZ3u9qLHGwAAABKSeAMAAEBCEm8AAABISOINAAAACUm8AQAAICGJNwAAACQk8QYAAICEJN4AAACQUFOlUqnUtWFTU8rj6DImmWSSwvj6669fuo+NNtqoML7ccssVxsv+yV588cXSY5hvvvkK4/369WvofKjntLr//vsL46uttlphfPjw4aWf0RPUWYVbpF6POxNPPHFh/Lzzzmv4t+PEE08sjH/wwQeF8b/85S+lx8C4o26nt8suuxTGt99++8L4ddddV/oZV1xxRdaIZ599tqE2Q7jtttsK4z/88ENhfJZZZimMf/TRR6XHwP9Rrzte7969S7fZfPPNC+NDhgwpjI8YMaIwPmzYsKxRiy22WEPf8/jjjy/9jAMOOKCh79lTVOpsi+vxBgAAgIQk3gAAAJCQxBsAAAASkngDAABAQhJvAAAASEjiDQAAAAlJvAEAACAh63j3UGXrke+0006F8eOOOy7ZOpVViy++eGH88ccfb/gzugNrgnYNm266aWH84osvbvgzvvnmm4bWCt9tt90aPgbaj7pNPfbZZ5/SbY499tjC+DPPPFMYX2qppQrjw4cPLz0G/o963TWUrYF95JFHFsa33XbbwnifPn1Kj6Ffv35ZI/75z38WxnfffffSfVinuz7W8QYAAIBOwFBzAAAASEjiDQAAAAlJvAEAACAhiTcAAAAkJPEGAACAhCTeAAAAkFD5InI9TP/+/Qvjv/rVrwrjE000UelnHH/88VlH+/rrrwvjJ5xwQmH8p59+Koz/9a9/zRp19tlnF8YXW2yxhj8DxpW33367MP7BBx+U7mPaaactjK+44oqF8U8++aT0M2BcWXDBBQvj//73vwvjN954Y+ln7Lvvvll3t9VWW5Vu09TUNE6OBbqLsvWr999//4biZflGeOCBBwrjs8wyS2H88ccfL4xbo3vc0+MNAAAACUm8AQAAICGJNwAAACQk8QYAAICEJN4AAACQkMQbAAAAEpJ4AwAAQELW8W7m6KOPLiywwYMHF8a//fbb0kK/6aabCuNPP/101tk98sgjyT9jggkmSP4ZMK589913Da3RXY/NNtss6+lrGtN1XH311YXx2WabrTC+zz77ZKlNNNFEhfGpp566dB/9+vUrjG+88caF8e23377h9YArlUphfIMNNiiMDx8+vPQzgPr16lXe99m7d+/C+P33318YP+OMM/yTdDJ6vAEAACAhiTcAAABIvAEAAKBr0uMNAAAACUm8AQAAICGJNwAAACQk8QYAAICEJN4AAACQUJ+sh1l22WUL49tvv31D++/bt2/pNkcddVRhfL311ss62rTTTlsY32ijjQrjTU1NDR/DRx991PA+oLPYYostkn9GPb8/0Fk8+uijhfHZZputMD5kyJDSz3jvvfcK43fccUdhfO211y6MTzXVVKXH0K9fv4aul5VKpTA+cuTI0mO4//77C+OfffZZ6T6A9jNgwIDSbcp+A88555x2PCLGBT3eAAAAkJDEGwAAABKSeAMAAEBCEm8AAABISOINAAAACUm8AQAAICGJNwAAACTU49bxHjZsWGH86quvTr7Gdtm6oGeeeWZh/KWXXmr4GH7+8583tN759NNP39C6o+GHH34ojG+zzTal+4CuYrLJJuvoQ4BO5dNPP23o/VNPPXXD2yyyyCINX8tSK1tje/DgwaX7KGvbAOPWmmuuqch7ID3eAAAAkJDEGwAAABKSeAMAAEBCEm8AAABISOINAAAACUm8AQAAICGJNwAAACTU49bxHj58eGH8vPPOK4wvueSShfHpppsua1TZmpydYV3R9nDGGWcUxl9//fVxdiyQ2qabbqqQocbOO+9cWB77779/YXydddYpLc8BAwYUxpdZZpkOv95eeOGFhfHLL7+8oXYN0PmU/TbV46KLLmqXY2Hc0eMNAAAACUm8AQAAICGJNwAAACQk8QYAAICEJN4AAACQkMQbAAAAEpJ4AwAAQEI9bh3vMkOHDi2Mf/fddw2tAx6mnHLKrKt77733CuO33XZb6T723Xffdjwi6NweeOCBwvgaa6xRuo9xsaYwdBafffZZYfz8888fZ8cC0J6++OKLhvex2WabFcaPPvrohj+D9qXHGwAAABKSeAMAAEBCEm8AAABISOINAAAACUm8AQAAICGJNwAAACQk8QYAAICEJN4AAACQUFOlUqnUtWFTU8rj6DYWWWSR0m123333wvjgwYML40888URh/JFHHik9hrnnnrswfv311xfGhwwZUhj/4IMPSo+B9lFnFW6Rej3uLLzwwoXxm2++uXQfL7/8cmF8r732Kow/+uijpZ9B56FuQ/ejXhPmnXfe0oJ44IEHCuOvvfZaYXyttdYqjL///vv+McZxvdbjDQAAAAlJvAEAACAhiTcAAAAkJPEGAACAhCTeAAAAkJDEGwAAABKSeAMAAEBC1vGGLs6aoNA9qdvQ/ajX1GvvvfcujK+zzjoNvX/YsGH+MdqJdbwBAACgEzDUHAAAABKSeAMAAEBCEm8AAABISOINAAAACUm8AQAAICGJNwAAACRkHW/o4qwJCt2Tug3dj3oN3Y91vAEAAKATMNQcAAAAEpJ4AwAAQEISbwAAAEhI4g0AAAAJSbwBAAAgIYk3AAAAJCTxBgAAgIQk3gAAAJCQxBsAAAASkngDAABAQhJvAAAASEjiDQAAAAlJvAEAACAhiTcAAAAkJPEGAACAhCTeAAAAkJDEGwAAABKSeAMAAEBCEm8AAABISOINAAAACUm8AQAAICGJNwAAACQk8QYAAICEmiqVSiXlBwAAAEBPpscbAAAAEpJ4AwAAQEISbwAAAEhI4g0AAAAJSbwBAAAgIYl3B/v666+zl19+Ofvhhx86+lCAdjJixIi8Xn/xxRfKFLqRN998M3v//fc7+jCAdvTRRx9lr732mjIlOYl3B7vuuuuyueaaK3v22Wfbdb/R4I+G/+eff173ez777LP8Pd1lhbm2lAG010U86vU555zTrgUaN+heeeWV7L333qv7Pd99911eD7799tusO2hLGUB7WW211bKdd9653W/UvfPOO62+AR/14JNPPsm6g7aWAbSHgw8+OPvZz37WroU5cuTI/Jz++OOPW/W+d999N3v77bez7qCtZdCdSby7kWhgDxkyJFt77bWzmWeeOW/4/+tf/6r7/aeddlr+nm+++SbrqWUAndHNN9+cbbvttqPO6R122KHu9z7yyCP5e+64446sp5YBdEY33HBDtvrqq2dTTDFFtuSSS2aTTDJJ/t/rr7++rvfPM8882dFHH5315DKAzphsHnnkkdnUU0+dLbjggvk1a7755stuueWWut7/m9/8Jttggw2ynlwG3ZnEuxt544038sb1rrvu2mMvWsqA7ih6zldYYYXshRdeyMYff/ysJ1IGdDdxMyl62j799NO8VyhGccw000zZuuuum919991ZT6AM6G4OPPDA7JBDDslOOumkfCTpl19+ma266qrZOuuskz344INZT6AMxq7HJt4//vhjPvzyq6++GtVTGkM7fvrpp9JtYyjU66+/PsbQzahc8fxX7KtoOFV8zvDhw9v9O8Xd72pv73jjjdfqobFx8Q+vvvpq/n3jz/fff5+/FrH4e+0w7iiD8OGHH476/615fr2e8hqXZUD3EOfiBx98MNrwxbENs67dNh6xiCFezYduRh1466238vO1SDz3meqxhosvvjjbZptt8l6h1og6GN8/RKO+Wq+rxxm/Q/H36u9R1MV4zi3qbPzeRSx+/1rz/Hq95TWuyoDuIepp7XUmrjvRqK1n26jTzYduVn8bYj9Foq5UfyPa28knn5wNHDhw1LWqf//+2V/+8pf8t+jKK68c6/uqdbB6fNV6Xfv4Rfy9ek2P7aNORp2NNk7EWqqfRc+v11te46oM6B7iPKy9zsQ5OrbHiJpvG6Mzo73a/PHIaM9GfY9zdmzimhfnc9E2bRHX3BNPPDFbb731sl//+tf5a3Fun3DCCdk000yTHXDAAYXvjzoYxxbX0Wq9ju9YFcdcvaaH+G2q1tnoeGrpt6rs+fV6ymtclkG3V+mhnnvuuaiplbPPPrty4IEHVqaaaqrKxBNPXJlyyikrf//731vc9pxzzqkcdthhlamnnroy4YQTVm688cY8fs8991SWXnrpSp8+fSrTTjttHtt2220rX3311Wj7OeOMMyr9+/evTDTRRPnn7bvvvpULL7ww3/djjz02artvv/228tJLL9X158svv2zx+z3wwAP5fo877ri6ymP//ffPv3u8Z8CAAZU55pgj//PUU0/l8SijiL399tuVVVddNf8e8R3C1ltvnX/v5s4///z8PdV9VNVTXh1RBnQPM844Y2XLLbesXHnllZWZZpopP6/HH3/8yg477FD57rvvWtz2mmuuqcw666yVySefvLL33nvnsbfeequy0UYb5e+dZpppKuONN15lxRVXrLzwwguj7ePee++tzDvvvJXevXvndWLttdeuPPvss/m5d+KJJ462bb3n9AcffDDW7zfBBBPkn1GPq666Kv+OcSzTTz/9qHr9r3/9K4/feuuteSx+y/bYY4/8+KNeRp2N37uIxe9frSiXeP3UU08d4/V6ymtclwHdQ9TTOJfjfFxkkUXy63BTU1NlpZVWqrzxxhstbhvn3hJLLJH/Biy++OJ5LH4D9tlnn8oUU0yR/4nr/txzz125/vrrR9vHO++8U1lttdXyz4jPmn/++SuPP/54ZZ555qmsv/76o20b18V6zunXX3+99Hs+8sgjef065phjxrrNe++9l9fj2C6+Q7Vex29c+PHHH/NYXLfPPPPMvO5PMskkeZ197bXX8tjpp58+xn5jHxtvvPFor9VbXuO6DOge4vyMf+thw4bl14/qNWjOOees/Oc//2lx22gv/+pXv8rboVE/q23HuK7NNttseZsy6nz8+ctf/jLaPn744YfKbrvtll9D+vXrl9eNiy66qLLTTjvl1/9an3zySd3Xq6hztefuEUccMcZ3XWuttSq9evWqfPbZZ2Mtj5VXXjnPEeL4qvV64YUXHhVfdtll8z/Rvo12R3yHap2NNsxmm202xj4HDx6cl1Vz9ZRXR5RBd9fjE+9lllmmcvLJJ1d++umn/M+RRx6ZnzAXXHDBGIl3nOzRkI7tolEYjdNodEcD8ze/+U3liy++yLePi338aKy55pqj9nHxxRfn+zj00EPzk3PEiBGV0047Ld9n88S72hiu5080jtsr6YxKEu9pfsOgNvHedNNN80oVbrvttlYn3vWWV0eVAV1fNLh//vOfV7baaqvK119/nb920003Vfr27VvZZpttWtw2Gupx3kfdvOuuuyoff/xxZZZZZsljcUEJcb6us846lRlmmKHy6aef5q+98sor+X7jYvL555/nr9199935ds0T72pjuJ4/UafaK+mMG12xz2uvvXaMWLWeRYIcv3kjR46svPzyy3njuDWJd73l1VFlQNcXdTQS4A022KDy6quv5q/FuRqJcDRAa2+q1W4b29Rer+K8icZ99e9xPY8b6nHj7L777hvVOI/GbjR6q+d/nPfrrrtuZeaZZx4j8a5ex8v+RMO4uagTUWfiZt3QoUMrCyywQH5junp9LBLHXL1R2Hyf1fbNnnvuWfn+++8r33zzTX5NbG3iXU95dWQZ0LVVk+lo/8X1KMS1OOpuJKC115/abW+55Zb8tfvvvz/vqImEMZLwU045JT9HQ9wciqTy2GOPHbWPXXbZJd/v1Vdfnf893hvtgqWWWmqMxLva7q3nT9Sr8MQTT+R/P+CAA8b4rnGTMGJxzEUGDRo06kZhc1HP4vduww03zPOQuGbfcccdrU686y2vjiqD7qxP1sNNPPHE2W9/+9vRnku4+uqrs8MPPzzbcsstR9s2nq3ca6+98v8fwyXiz7LLLptPGhATeFWHSs0999zZ8ccfn0+OEBMb/fznP88nGVh00UWzww47bNT+4lnsmNW8pWOaY4456jr+ySabLBuXYhKUxRdfPP//gwYNavX7991337rKqzOXAZ3fiy++mN1+++1Z3759R523Uc+POeaYvA7OOuuso7Z9/vnns9tuuy2f1Ccsv/zy+e9ADM2Mfcw555yjzrOzzjorP3/jv/vss08+nCqGbp599tnZ5JNPnm+33HLLZQ888MAYdbupqanuc3raaafNxqX4TtXfu3qPsdZf//rXusqrM5cBnV8MiYxr8Oyzz57/Pc6lU045Ja/fl1566ahhjdVt99hjj1HnW1yvbr311nz+kzgfq9ev3r17Z4ceemh21VVXZUcddVReb6+55prsySefzF+bd9558+3i2euDDjooW2qppbLFFltstOOKWD3ndWzXXAwNXWONNfLHPGKIbTwuFc+Gtsd1LR6dieGd8R2j/bL00ku3+FjY2NRbXp25DOgaol6tssoq+f+Pa3Gcc7PMMkt23HHH5f+/VrQR45np8Itf/CIfnh7X9a222iqv81VrrbVWvgJBTED4+9//Pn/k5J///Ge+TQyDDhNNNFE+sXBtm6AqHnuo93pVbc/GBGJTTjlldtNNN2V//vOfR/s9evjhh/P/P7ZHZFrTvonfqMhBwkorrdSq99dbXn369Om0ZdCV9fjEe+WVVx6jUOICEw30OEliRr6xbRvPl0QDe9NNN82fuag+ZxL/rTYaYyKFSCyffvrp/ERu6bNuvPHG0V5bZpllRnueurOXV73qLa/4Ue3MZUDnF+dQ80Zb1LW4oNx///2jXWTjRlI1aa6KRDwu+nHhiYbq/x8dlP+JhmN1gpT77rsvW2CBBcZIElu6KRUN1u5Yr1tTXp25DOj8omEXN7ZqRaOzV69e2b333jta4h3nWkxI2Pw8DfPPP/9o52monXE36nVL9SJm25500klbnH+grWacccZRdSKeyd5zzz3zZ56jYb3mmmtmjYjvH+XQVvWWV2cuA7qG5nUtErdY3ivqddm2cU2PeVzihljz83S22WbL50GIG+zxrHQ8x9z8/dHREzel7rnnntFe/93vfpf/ae1vVNws2H777fPZyXfbbbf8mee4mR/Xx9Do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PVcYn2+++Rr+jEUXXbQw/vTTT2fdgXoN3U+99VqPNwAAACQk8QYAAICEJN4AAACQkMQbAAAAEpJ4AwAAQEISbwAAAEhI4g0AAAAJSbwBAAAgoT4pd07ntd122xXGR44c2VAc6HzOOuuswnilUindx957710Yv+qqqwrjH330UelnQGfxq1/9qjC+5ZZbNvwZt956a8P1ssyzzz5bGL/pppsK419++WVh/L777mvTcQH0JHq8AQAAICGJNwAAACQk8QYAAICEJN4AAACQkMQbAAAAEpJ4AwAAQEISbwAAAEjIOt7d0GyzzVa6zSKLLDJOjgXoPHW/qampMH7HHXeUfsa+++5bGLdON93JPvvsUxg/9dRTG/6Mp59+OutoCyywQGH8mGOOafgzzjrrrML4K6+80vBnQHsZf/zxC+NrrrlmYXzgwIEN/baESqWSNeKcc84pjP/2t78t3cc333zT0DEwOj3eAAAAkJDEGwAAABKSeAMAAEBCEm8AAABISOINAAAACUm8AQAAICGJNwAAACRkHe8euo73wgsvPE6OBWg/AwYMKIzffPPNDa0Jeu6555Yew7Bhw0q3ge7iq6++6vRrcLeHsjWJ11prrYbXG7788ssL48OHDy/dB9Rj4oknLozvsccepfs45JBDCuMTTjhhQ/8YN910U9aofv36Fca32Wabhup1eOONNxr6HocddljpZ/QkerwBAAAgIYk3AAAAJCTxBgAAgIQk3gAAAJCQxBsAAAASkngDAABAQhJvAAAAkHgDAABA19Snow8AgPosu+yyhfEBAwYoSuhhJphggtJt9txzz8L4wQcfXBivVCqF8eOOO670GG699dbSbaAeiyyySGH8lFNOKYwPHDiw9DMefvjhwvjZZ59dGL/ssssK45999lnWqPHGG6+h77DQQguVfsY000xTGF988cUL4zfddFNh/MEHH8x6EkPNAQAAICGJNwAAACQk8QYAAICEJN4AAACQkMQbAAAAEpJ4AwAAQEISbwAAAEjIOt49VK9evRqKv/7664Xxww8/vE3HBYxd3759C4unqampMP7hhx8Wxi+44ALFD51M2Tq5Rx99dOk+Vl555YaO4c477yyM77///g3tH2rNMssshQVyww03FManmGKKwviZZ55ZWuB77rlnYfz777/POtqPP/5YGD/ssMMK41dccUXDx/Dvf/+7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Ro83AAAAJCTxBgAAgIQk3gAAAJCQxBsAAAASkngDAABAQhJvAAAASEjiDQAAAAlZxxsAaHefffZZYfy9994rjA8aNKiheHj66acbWiN79tlnL4xPMskkWaO+++67wvjf//73wvjhhx9e+hnW6Yb2teCCCxbG+/bt2/Bn7LjjjoXxESNGNPwZjFt6vAEAACAhiTcAAAAkJPEGAACAhCTeAAAAkJDEGwAAABKSeAMAAEBCEm8AAABIyDreXdDrr7/e0JqgYcIJJ2zHIwLKnHfeeYXxLbfcUiHSrbz55puF8XXXXbcwftNNNxXGp5pqqtJjWGihhRpax7s9nH766Q2tw/3RRx+18xEBZSabbLLC+CWXXNJQIZ500kml26j73Y8ebwAAAEhI4g0AAAAJSbwBAAAgIYk3AAAAJCTxBgAAgIQk3gAAAJCQxBsAAAASso53FzRkyJDC+EwzzVS6j8MOO6wwftZZZ7X6uICxe/bZZwuL54033igtvkceeUQR0208/vjjhfHppptunB0LQK3VV1+9sEBmm222hgrs97//vQLvgfR4AwAAQEISbwAAAEhI4g0AAAAJSbwBAAAgIYk3AAAAJCTxBgAAgIQk3gAAAJCQxBsAAAASaqpUKpW6NmxqSnkcQBvVWYVbpF5D56VuQ/ejXne8eto+l1xySWF84403LozffvvthfHVVlut9BjofvVajzcAAAAkJPEGAACAhCTeAAAAkJDEGwAAABKSeAMAAEBCEm8AAABISOINAAAACVnHG7o4a4JC96RuQ/ejXne8GWecsXSbN998szD+ww8/FMYHDBhQGH/vvfdKj4GuwzreAAAA0AkYag4AAAAJSbwBAAAgIYk3AAAAJCTxBgAAgIQk3gAAAJCQxBsAAAASso43dHHWBIXuSd2G7ke9hu7HOt4AAADQCRhqDgAAAAlJvAEAACAhiTcAAAAkJPEGAACAhCTeAAAAkJDEGwAAADrDOt4AAABA6+nxBgAAgIQk3gAAAJCQxBsAAAASkngDAABAQhJvAAAASEjiDQAAAAlJvDvYsGHDst133z175513OvpQgHby1Vdf5fX6zjvvVKbQjRx55JHZmWee2dGHAbSjSy65JNt3332VKclZx7uDXXzxxdnmm2+ePfbYY9miiy7aLvu85ZZbskceeST77LPPshlnnDFba621srnnnrv0fTfffHN27bXXZn/961+z8ccfP+vK2loG0B7ef//9bPrpp89OPPHEbK+99mq3m3Q33HBDfk7PNtts2S9/+ctsuummK33fq6++mtfpXXbZJVtggQWyrqytZQDtZd55583/XHXVVe2yv++++y676aab8pt0vXv3zk444YS637vnnntmK620UrbBBhtkXVkjZQDtYeedd87b459//nm7F+g111yTt0lnn332bO+99y7d/m9/+1s2fPjw7A9/+EPWXbS2DLozPd7dyJdffpn94he/yDbZZJPsgw8+yKaeeurs7rvvzuaff/7soIMOKn3/ww8/nJ122mnZDz/8kPXUMoDOaL/99st+/vOfZ88//3w21VRTZVdeeWU2zzzzZLfffnvpe9999928Xr/22mtZTy0D6IyOOuqobJZZZsnOPffc7MYbb8zOOOOMVr0/6vW9996b9eQygM7s9ddfz7baaqvs73//e3bZZZfV9Z64qRc98D25DLqzPh19ALSfuEv24IMP5r3W66yzzqjXt9122+zPf/5z9pvf/Kbb9/oqA7qb66+/PvvLX/6SN1D333///LU//vGP2XrrrZePlnnppZeyySefPOvOlAHd0aqrrprtscce2aSTTpqtscYaPfKRM2VAdzVy5Mhs6623zpZffvns8ccfz3oiZTCmHpt4R2/oEUcckf3617/O5pprruy8887L3n777bxndMstt8wmmGCCFreNHpaLLrooe/HFF7Oddtopm2+++fJt/vvf/2a33npr9umnn+Z3bzfddNNshhlmGO0zoyc53vv000/nsUiE21P0bIUlllhitNeXWmqp/G5yxMeWeMdxXXfddfn/j2Eg4403Xv7/45mX+D4Ri6Fgp5xySvbMM89kQ4cOzb799tvsmGOOyS644ILs2WefzROD5j3oQ4YMyQ488MB82G2tesprXJcB3cPBBx+c1+ktttgiv2scF7xpp502r9fNz8PqthGLHtQ4Z5dZZplRQzejlzjuPsdvwxRTTJGtu+66LT4SEo9p/Oc//8kmmmiifPjzlFNO2W7fp3qHOIaKVzU1NWW77rprXi/jO+64444tvje+Twx3D//4xz/yOhw23HDDbNCgQdkLL7yQnXrqqXnjP77fhRdemL3xxht5Yv/mm29m559/fl5GUX5VMRQvRo9EnY0GRa16y2tclgHdQ1yj4yZTXIujrsX1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27DhhhsWxg899NDC+DvvvJN1tP79+xfGN91009J9lK3DXbbO4gEHHFAYv+qqq0qP4fnnny/dhu5v/vnnb3gfF1xwQWH8yiuvzDq7bbbZpnSbP/3pT4XxqaeeujD+6aeftvq4oLOqZ/3rsrq/7LLLFsZ79SruI2lqaio9hksvvbQw3rt379J9AO3niSeeKN1mwIABhfENNtigMH7ssce2+rhIS483AAAAJCTxBgAAgIQk3gAAAJCQxBsAAAASkngDAABAQhJvAAAASEjiDQAAAAk1VSqVSl0b1rFOJFm2zjrrlBbDZZdd1lB8l112KYx/8803Df9TLL300oXxQw45pDC+xhprlH7GsGHDCuOnnnpqYfy6664rjH/yySdZT1BnFW6Rev1/hg4dWlpW6623XmF8kUUWKYw//fTTWWoDBw4sjO+3336F8bXXXrvh861sne6ydUm/+uqr0mPoKdTtnmHEiBGF8ZEjRza0znc9+xhvvPFK90H7UK/TW2211QrjN910U8OfMdNMMxXG33333Yau1+Huu+8ujD/66KOF8SWWWKL0Mxi39VqPNwAAACQk8QYAAICEJN4AAACQkMQbAAAAEpJ4AwAAQEISbwAAAEhI4g0AAAAJ9Um5856obG3pcOyxxza0RvZFF11UGJ922mlLj2HHHXcsjC+44IINrQl6wQUXlB7DXnvt1dB6wNBe6lnPvGybf//734Xx0047rTC+6KKLlh7DsssuWxhfYIEFCuM//PBDYfyaa65peD3z8847rzBunW4Y3X//+9/CIllqqaUa/v2qZ61v6C6+/vrrwviIESNK99G7d+/C+Mknn1wYP+644wrjTzzxROkxvPbaa4XxKaecsjA+4YQTFsa/++670mOgffklBgAAgIQk3gAAAJCQxBsAAAASkngDAABAQhJvAAAASEjiDQAAAAlJvAEAACAhiTcAAAAk1FSpVCp1bdjUlPI4epTBgwcXxs8888zC+EcffVQYn3jiiUuPoW/fvoXxp556qjB++OGHF8avuOKK0mOgfdRZhVukXv+fddddt7SsLrrooobrXZGRI0eWbnPjjTcWxu+9997C+DXXXFMYv+yyy0qPYf755y+Mb7LJJoXxoUOHln4G/0fd7hl++ctfNvTb06tXr4Z/X/bdd9/C+Iknnlj6GdRHve54n3zySek2/fr1S3oML730Uuk2s8wyS2F8ggkmKIyfdtppDeUTYfjw4Q21K0aMGFEYf/nll7OeVK/1eAMAAEBCEm8AAABISOINAAAACUm8AQAAICGJNwAAACQk8QYAAICEJN4AAACQUJ+UOyeNqaeeujD++eefN7yW+FVXXVUY/+yzz0o/A7qKa6+9tnSbpZZaqjC+9tprN3QMDzzwQOk2Zet0lxk0aFBhfIEFFijdx4cfflgYv+uuu1p9XEDb1+luampqeB9LL720fwJ6jL333rt0m4MOOqgwPmDAgIaOYa655spS22233ZJ/xrHHHlsY/+mnnwrjyy+/fOlnPPjgg1l3occbAAAAEpJ4AwAAQEISbwAAAEhI4g0AAAAJSbwBAAAgIYk3AAAAJCTxBgAAgISs493Oa2ifcsoppfuYd955C+PPP/98Yfz+++9veD3he+65pzBunW4Y3bPPPttQvDNojzU9L7zwwsL4p59+2vBnAP8zcuTIhtbormcflUpFkdNjnHvuuaXbXHHFFYXxZZZZpjC+8sorF8anmGKK0mNYbbXVCuMzzDBDYXy88cbLGjVixIjC+Ntvv10Y//HHHwvjH3/8cdaT6PEGAACAhCTeAAAAkJDEGwAAABKSeAMAAEBCEm8AAABISOINAAAACUm8AQAAICHreDfTv3//wgK77rrrCuNLLLFEaaFfeumlhfHBgwcXxqeccsrC+KKLLlp6DKeffnphfPfddy+Mv/DCC6WfAYxb8847b2F8rbXWangt30suuaTVxwWM3VtvvVVYPO+++25hfOaZZy4t3rK1vpuamkr3AT3JV199VRi/+eabG4q3h7K1xjfccMPC+HbbbVf6GU8++WRhfNiwYaX74H/0eAMAAEBCEm8AAABISOINAAAACUm8AQAAICGJNwAAACQk8QYAAICEJN4AAACQkMQbAAAAEuqTcudd0fbbb18YX2KJJQrju+yyS+lnnHfeeYXx4cOHF8a/+eabwvj+++9fegzXXnttYXzOOecsjL/wwgulnwGMW1tuuWVhfLzxxiuM//e//y39jIceeqjVxwWM3YMPPlhYPA888EBhfKaZZiot3pEjRxbGl1566YbiZd8BaH+XX355YXzDDTds+DOGDRvW8D74Hz3eAAAAkJDEGwAAABKSeAMAAEBCEm8AAABISOINAAAACUm8AQAAICGJNwAAACRkHe9xvKZePet0N+rWW28t3ebAAw8sjP/tb38rjH/00UeFcWv9QvubeOKJC+NbbbVVQ/u/4oorGno/0P6ampoaiodevYr7WWaeeeaG1woHxq1G19j+05/+VLrNBRdcUBj/6aefGjqGnkaPNwAAACQk8QYAAICEJN4AAACQkMQbAAAAEpJ4AwAAQEISbwAAAEhI4g0AAAAJNVUqlUpdG9axTmR3sN9++xXGjz766ML4brvt1vCaeF999VXW0crWAp900kkL48svv3zpZ/zwww+tPi7GVGcV7tH1uruYd955C+PPPPNMYfzxxx8vjP/iF78oPQb1dtxRtwlLL710YUHcd999pQU1cuTIhtb5vv/++wvjyy23XOkx8H/Ua9rLnHPOWRh/7rnnCuO9e/cu/YxlllmmMP7ggw+W7qMnqNTZFtfjDQAAAAlJvAEAACAhiTcAAAAkJPEGAAAAiTcAAAB0TXq8AQAAICGJNwAAACTUJ+XOu6JG16g97bTTSrfZddddC+Nrr712Yfztt99uaL3O0KdP8T/9ySefXBi/5pprCuPHHXdc6THsueeepdsA/7PJJps0tC77m2++WRife+65S4t78ODBDa0pfPnll5d+BlD/Orll9b6edbrr2QfQubz88suF8aeffrowvsgii7TzEVFGjzcAAAAkJPEGAACAhCTeAAAAkJDEGwAAABKSeAMAAEBCEm8AAABISOINAAAACUm8AQAAIKE+KXfeFZ144omF8UqlUhg/5JBDSj9jrrnmKoy//PLLhfEhQ4YUxj/77LPSY5h99tkL45tssklD5fDll1+WHgPwPxNPPHFpcWy33XYN1cs555yzMH7nnXeWHsMtt9xSGL/88stL9wG0nxNOOKF0m7322qsw/uCDDxbGN99881YfF9Cx7r777sL4IossMs6Ohf+jxxsAAAASkngDAABAQhJvAAAASEjiDQAAAAlJvAEAACAhiTcAAAAkJPEGAACAhJoqZQu/Vjdsakp5HNRYcMEFC8vj1FNPLYzffvvtpeW50047Fcaff/75htYiHzRoUOkxvPLKK6XbUK7OKtwi9brzmGqqqUq3+eCDD5Iew/3331+6zWqrrVYYHz58eDseUc+mbkP3o14zrkw77bSF8Ycffrh0HyuvvHJh/OWXX271cfXkeq3HGwAAABKSeAMAAEBCEm8AAABISOINAAAACUm8AQAAICGJNwAAACQk8QYAAICErOMNXZw1QbuHXr3K74OedtpphfEdd9yxMH7UUUcVxo899tjSY/j6669Lt6F9qNvQ/ajX0P1YxxsAAAA6AUPNAQAAICGJNwAAACQk8QYAAICEJN4AAACQkMQbAAAAEpJ4AwAAQELW8YYuzpqg0D2p29D9qNfQ/VjHGwAAADoBQ80BAAAgIYk3AAAAJCTxBgAAgIQk3gAAAJCQxBsAAAASkngDAABAQhJvAAAASEjiDQAAAAlJvAEAACAhiTcAAAAkJPEGAACAhCTeAAAAkJDEGwAAABKSeAMAAEBCEm8AAABIqKlSqVRSfgAAAAD0ZHq8AQAAICGJNwAAACQk8QYAAICEJN4AAACQkMQbAAAAEpJ4AwAAQEISbwAAAEhI4g0AAAAJSbwBAAAgS+f/AfWodZJZiB5/AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1000x800 with 12 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sample_idx = np.random.choice(len(x_test), size=12, replace=False)\n",
    "fig, axes = plt.subplots(3, 4, figsize=(10, 8))\n",
    "probs, _ = model.forward(x_test[sample_idx])\n",
    "preds = probs.argmax(axis=1)\n",
    "\n",
    "for ax, idx, pred in zip(axes.flat, sample_idx, preds):\n",
    "    ax.imshow(x_test[idx].reshape(28, 28), cmap=\"gray\")\n",
    "    ax.set_title(f\"pred={pred} true={y_test[idx]}\")\n",
    "    ax.axis(\"off\")\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cell-008",
   "metadata": {},
   "source": [
    "## What To Extend\n",
    "\n",
    "A few natural next steps:\n",
    "\n",
    "1. Replace plain SGD with momentum or Adam and compare convergence.\n",
    "2. Add another hidden layer and watch how the gradient norms change.\n",
    "3. Swap the full-batch NumPy implementation for a Torch version and compare ergonomics.\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
