{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2\n", "\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "from PIL import Image\n", "import torch\n", "from importlib.util import find_spec\n", "if find_spec(\"text_recognizer\") is None:\n", " import sys\n", " sys.path.append('..')" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from text_recognizer.datasets import EmnistDataset" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "dataset = EmnistDataset()\n", "dataset.load_emnist_dataset()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "EMNIST Dataset\n", "Num classes: 80\n", "Mapping: {0: '0', 1: '1', 2: '2', 3: '3', 4: '4', 5: '5', 6: '6', 7: '7', 8: '8', 9: '9', 10: 'A', 11: 'B', 12: 'C', 13: 'D', 14: 'E', 15: 'F', 16: 'G', 17: 'H', 18: 'I', 19: 'J', 20: 'K', 21: 'L', 22: 'M', 23: 'N', 24: 'O', 25: 'P', 26: 'Q', 27: 'R', 28: 'S', 29: 'T', 30: 'U', 31: 'V', 32: 'W', 33: 'X', 34: 'Y', 35: 'Z', 36: 'a', 37: 'b', 38: 'c', 39: 'd', 40: 'e', 41: 'f', 42: 'g', 43: 'h', 44: 'i', 45: 'j', 46: 'k', 47: 'l', 48: 'm', 49: 'n', 50: 'o', 51: 'p', 52: 'q', 53: 'r', 54: 's', 55: 't', 56: 'u', 57: 'v', 58: 'w', 59: 'x', 60: 'y', 61: 'z', 62: ' ', 63: '!', 64: '\"', 65: '#', 66: '&', 67: \"'\", 68: '(', 69: ')', 70: '*', 71: '+', 72: ',', 73: '-', 74: '.', 75: '/', 76: ':', 77: ';', 78: '?', 79: '_'}\n", "Input shape: [28, 28]\n", "\n" ] } ], "source": [ "print(dataset)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "def display_images(dataset, shift=0):\n", " fig = plt.figure(figsize=(9, 9))\n", " for i in range(9):\n", " x, y = dataset[i + shift]\n", " ax = fig.add_subplot(3, 3, i + 1)\n", " x = x.squeeze(0).numpy()\n", " ax.imshow(x, cmap='gray')\n", " ax.set_xticks([])\n", " ax.set_yticks([])\n", " ax.set_title(dataset.translator(int(y)))" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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x6umxB07drhs586dLrvoootcphoSzXSTlzomUx2zrJp94o59Ru6pqamR+bp161w2ceJEl40YMSJRVttGVPVe6d+/v8tUA6Fa9+9//3uXqcl277zzjlwPTbTnTjVYX3vttS6bMmWKy9R017g93JAaCBXVELx582aXpXuvcocAAABQEAAAAAoCAABgFAQAAMAaYFNhbakmDtXEp5oSjx075rILLrjAZX369HFZhw4d5HrUhEd1/PH69etd9v7777usoTfrQE9/+/u//3uX9erVy2U33HCDy9TkQ3WcuWpsNTO76aabXPb1r3/dZeqYctVAqH6W48ePy9dG3WrXrp3L1DTWli1buqyiosJlZWVl8nVytfEzPz/fZervDzVRVx1bnm7cIQAAABQEAACAggAAABgFAQAAsEbcVKgmbpnpyYCtWrVymZq6pZqirrnmGpcNGTLEZerYZTOzqqoql6lGnGXLliW6LlebdZCcOjK1srLSZWpq5YABA1ym3hPqsffdd59cj5paV11d7bLf/e53Lps7d67LaCBMD3VE9ciRI12mplsqa9ascdnatWvltbnwOaXeA8XFxS5TkzrVVEJ1JHK6cYcAAABQEAAAAAoCAABgFAQAAMAoCAAAgDXAbxmoMZFt2rRx2YwZM+TjR40a5TI1krV169YuU99cKCkpcVnz5s1dptZtZrZ7926Xbdy40WUvvfSSy9Q3FNDw7dmzx2VLlixxWf/+/V3WokULl1188cUumzRpksuuvfZauZ4jR4647Ic//KHLnn32WZepEclIDzWmePr06S4rKipy2cGDB1321FNPuezAgQPnuLrMU2Pg1fjhU6dOuUx9iyIbxspzhwAAAFAQAAAACgIAAGAUBAAAwBpJU6FqjlHnsZuZXXTRRYmeU1GNIqq5Ro1tVeORzcw6dOjgMjUOWZ01/tprr7ls9erVLjtz5ox8beSmEydOuEw1Fd54440u69q1q8t+/OMfu0w1ku3atUuu5xe/+IXLFi1a5DK1h5E5amT1oEGDXKZGHKvPPdUMXVNTc46ryzzVRK5GO8eNpc9G3CEAAAAUBAAAgIIAAAAYBQEAALAG2FSoqKa5Y8eOyWtVk4tqFjx9+rTL1Jnz6rzv8vJyl5WWlsr1DB8+3GWqSfKKK65wmWp62bRpk8vUOdwnT56U60Fu2rt3r8u2bt3qsh49eris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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display_images(dataset)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgQAAAILCAYAAACXVIRDAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAAAzL0lEQVR4nO3de3SV5Zn38evmGE4BknBqBIIVkDODtVgFBAaLiBTRmYpFGaa8Di0wrb7jtH1HZ6y2zBqxHbGe6DvLV1uwjtoBERlwIaggUMeKqOEohSAgpwABEiDh8Lx/oGs6XL9dn2Qn2dnZ389a/tHf2ns/N/HOw9XHa193iKLIAABAZmuQ6gUAAIDUoyAAAAAUBAAAgIIAAAAYBQEAADAKAgAAYBQEAADAKAiqRQihIITwnyGEoyGE/SGEx0MIjVK9LiCOEELTEMLTIYRdIYQTIYQNIYQxqV4XUBUhhO4hhNMhhPmpXku6oSCoHk+a2UEz62RmA83sWjObnsoFAZXQyMx224V929rM7jOzF0MIBalcFFBFT5jZu6leRDqiIKge3czsxSiKTkdRtN/MlplZnxSvCYgliqKyKIp+HEVRURRF56MoetXMdprZFaleG1AZIYSJZlZiZitSvJS0REFQPeaY2cQQQvMQQr6ZjbELRQGQdkIIHcysh5ltTPVagLhCCNlm9qCZ/e9UryVdURBUj1V24YnAcTPbY2a/N7OXU7kgoCpCCI3N7Dkz+1UURVtSvR6gEn5iZk9HUbQn1QtJVxQESQohNLALTwMWmFkLM8szs7Zm9lAq1wVU1md7eZ6ZVZjZzBQvB4gthDDQzEaZ2SMpXkpaC5x2mJwQQp6ZHTKzNlEUHfssu8nMfhpFUd9Urg2IK4QQzOz/mVmBmd0QRdGp1K4IiC+EcJeZzTKzE59FLc2soZltjqJoUKrWlW4oCKpBCGGHmf1fM/uZXdiIz5jZqSiKvpXShQExhRDm2oVvyIyKoqg0xcsBKiWE0NzMsv8ouscuFLffjaLoUEoWlYb4TwbV42Yzu94uPCnYbmZnzOzulK4IiCmE0NXMptmFgmB/CKH0s38mpXZlQDxRFJ2Momj/5/+YWamZnaYYqByeEAAAAJ4QAAAACgIAAGAUBAAAwCgIAACAURAAAAC7cMpZbCEEvpKAZBRHUdQulQtgDyNJ7GGku4R7mCcEqE27Ur0AIEnsYaS7hHuYggAAAFAQAAAACgIAAGCVbCoEAABagwb+/2Or7Pz587Gy2sYTAgAAQEEAAAAoCAAAgFEQAAAAo6kwLWVlZbmsY8eOLmvUqOr/ektKSmR++PBhl0URg9MAYOzYsS7r37+/y9auXeuyt956y2W13WjIEwIAAEBBAAAAKAgAAIBREAAAAKOpsM5QjYJmZj169HDZhAkTXDZu3DiXtWrVKta1VePKqlWr5GvvvfdelxUXF8e6DgDUF6ppe/bs2S5T9/D169e77C//8i9dVlRUVLXFVRFPCAAAAAUBAACgIAAAAEZBAAAAjIIAAAAY3zJIifbt27ts6tSp8rW33nqry7p37+6yJk2auCyZkcLqDG8zs0suucRlfMugejVs2NBlOTk5LmvdunW1X/vs2bMu279/v8tOnz5d7ddG5kl0nwkhuOzcuXM1vZxKadq0aaxM/Vmys7Ndlsyo+erCEwIAAEBBAAAAKAgAAIBREAAAAKOpsFqphpKePXu6TI2ovPPOO+Vntm3b1mVHjx512Zo1a1xWWFjoMjWmuGXLli5TTS9muvFFNc0k09BYX6mfU7t27Vw2dOhQl6nm0n79+snrJGrUupjaC6WlpS5bsGCBy/7t3/7NZTSX4nOqMTY3N9dl11xzjXx/ly5dXDZ37lyXlZeXV2F1laf+PKNGjXJZp06dYn3eiRMnXKYaemsbTwgAAAAFAQAAoCAAAABGQQAAAIymwmp1/fXXu+z+++93mZo0eODAAfmZ8+bNc9natWtdppoKVfOhavZTkxOvvPJKuZ7du3fH+kx4Xbt2dZnaH2PGjHGZasiqiZ+7anzMz8932bZt21z28ssvy8+saxPmUPNuuOEGl02ePNllqoHWzCwrK8tlixYtcllRUVHlF1cFalLopEmTXKYay1Wz4BtvvOGyRH8H1CaeEAAAAAoCAABAQQAAAIyCAAAAGE2FVaYa8WbOnOmy3r17u2z16tUue+KJJ+R1li9f7rJTp065TE2dU9SkwS996Usu+8EPfiDf/+///u8ue+qpp1xWF6ZupZKabDZ+/HiX3XLLLbHeu3HjRpe9/vrr8tpqCpqiGqX69u3rsiFDhrhMTU5ctWqVvM6hQ4dirQfpSTWijh071mU33XSTyxJN1fzwww9dpo7hri3qd2XAgAGx3rtp0yaXqWZxdV+vbTwhAAAAFAQAAICCAAAAGAUBAAAwmgpjKSgocNnUqVNddtVVV7ls8+bNLnv88cddtmTJEnntuM15cY9evu6661w2bNgwlyU6WnfZsmWx1pPp1BTBHTt2uCxus+BLL73kso8//lhe+8yZM3GWKI9eVsfRqkbDQYMGuaxz587yOjQV1m/q3qPuhapZNtGR2XPmzHHZ6dOnK7+4SlJrNNP3wzZt2rhM3a/V73Oi391U4wkBAACgIAAAABQEAADAKAgAAIDRVOiophI1Yet73/uey1TT2N/+7d+67N1333VZZSb75eXluUxNBrvrrrtc1qNHj1jX2Lp1q8w3bNjgsrhTEjOJ+pl89NFHLlMNR6rBVDUhJTvZrKSkxGU7d+50WVlZmctatWrlMnW8sxl7pj5RUwlV83Lc+8yRI0dkvm7dusotrJqoY8bN9GRONb1Q7etjx465LG7jb23jCQEAAKAgAAAAFAQAAMAoCAAAgNFUGMvRo0ddpqZmqaOB33vvPZeVl5e7TE37MtPT326//XaXTZs2zWVqEp2aDLZ06VKXqUlhZmZbtmxxGQ1i8ezatctlDz/8sMtUs2BNNCGpRtbS0tJY127durXL+vTpI6+zePFil7Fn6j7VYH3jjTe6TO3hrKwsl6nm1Oeff15ee/fu3XGWmBR1FPykSZPka2+44QaXqZ9PYWGhyxYtWuSyuno8PE8IAAAABQEAAKAgAAAARkEAAACMggAAABjfMnAaN27ssm7durns8OHDLnv66addpjrGVXfr9ddfL9dz7733xlpPdna2y9Qo5VmzZrlMfcsg0Rn2URTJHF9M/eyOHz+egpVcoM5z7927d6zXqXGsGzdulNfhGwXpSY2injJlisvU/Uj9O3/zzTddtmzZMnntDh06uEx9SyeZ+5H6Ztcll1wiX6v+XlB/RvXtrERj4OsinhAAAAAKAgAAQEEAAACMggAAABhNhU5eXp7Lhg8f7rImTZq47MSJE7FeN2zYMJfNnDlTrmfAgAEuU6OUn3rqKZetWLHCZcuXL3eZGsOM+k+NH+7bt6/LVFPhzp07XUZTYfpSjc7jx4932ahRo1ymRviqf+dqv/3oRz+S6+nUqZPL1D2ypKREvj+OIUOGuOymm26Sr1U/HzXSe926dS5To+rrKp4QAAAACgIAAEBBAAAAjIIAAAAYTYWOmnxVUVHhMjXl6sorr3TZV7/6VZepqYTqvWZ6ktfKlStdps4VLy4udhkNXqnToIGvv1VWW1SjlMrUnlHnvqtmV6Svli1bukw1SStqX1999dWxrx1CcNmLL77oMtXYF1fbtm1dlpubG/v9ar+n++8ATwgAAAAFAQAAoCAAAABGQQAAACyDmwrVdC0zs6uuuspl/fv3d5lqrnniiSdcVlBQ4DI10XDBggVyPeq44qKiIpedPXtWvh81TzWY5ufnu0xNnVSTAWur0VA1UPXr189lam+98847Lkv3hqpMpv4dz5s3z2Wq2W/cuHEuU8ex1xZ1VLGafJiVleWyRMcpq2muajpsomPj0wVPCAAAAAUBAACgIAAAAEZBAAAALEOaClUDYbdu3eRrb7/9dpepI5FV45eamrVlyxaXPf744y5bunSpXI9qUknU+IKapZqQzMwmTJjgsrvvvttlXbp0cVmrVq2qvB7V4GWm97t6bdxMNcGqJrREU94OHz4c6/2oW1Tz8uzZs13261//2mVq4mVtUcd133///S4bO3asyxLdW7du3eqyhQsXVn5xdRxPCAAAAAUBAACgIAAAAEZBAAAALM2bCuNOiBs0aJDLJk2aJD9z9OjRLlNNWmpy1Q9/+EOXrVq1ymV79+51WXl5uVwPUkP9O1d7w8zsgQcecJlqWv3kk09c9txzz7ns+PHjcZaYcBqcanJUEzNVA6FqqlLXUXv9mmuuketZt26dy9544w2XHTlyxGUHDhxwWdwjb2lcrH7qvqeaD1Opffv2Lou7ZxJNGpwzZ47LVKNhuuMJAQAAoCAAAAAUBAAAwCgIAACApVFToZoWqCZNzZw502VqQlxOTk7sa587d85l+/btc9lLL73ksrKystjXQd2h9keiRlR1tGphYaHLfvazn7ns5ZdfdlncBlM1kc1MNwFOmTLFZarprrS01GWq0VD9fMaPHy/XM2bMGJepZkHVVPjmm2+6TE1OVI2YiSbJ7dq1y2VM/0xPanroDTfc4LIhQ4a4LO6Rz2ZmL774osvqYyM4TwgAAAAFAQAAoCAAAABGQQAAAIyCAAAAWB34loHqVlajJydOnOiyadOmxXpvRUWFyzZt2iTXo0YNDx482GVq7Gt97DrNVK1bt3ZZnz595GtVJ/w//uM/umzz5s0ui7tnmjVr5rJEo5RHjhzpMvU7sGDBApetXLnSZaqrX/1OjBgxQq5H/Y536NDBZZ07d3ZZ//795WdeTP0c+/XrJ1/7gx/8wGXFxcWxroPUadDA///X6667zmX/8A//4LLc3FyXqTHFa9euldfOlHs7TwgAAAAFAQAAoCAAAABGQQAAAKwWmwpVs5+Z2Xe+8x2XqQZC9X41ulU1iixdutRljz76qFyPGoH68MMPu0yNMz5//rz8TNRvaoy1Go+rGvuURo38r2V+fr7Lrr/+evn+jh07ukytcdmyZS575513XHbs2DGX7dixw2WffvqpXI9a+/Dhw12mmgrbtm3rsoYNG7pMNV326tVLrqdly5Yuo6mw7mvatKnLhg0b5rKCggKXqSZw9ffCmjVr5LUz5d7OEwIAAEBBAAAAKAgAAIBREAAAAKuhpsLmzZu77M4775SvnT59usvy8vJcdvToUZdt27bNZY888ojLVKOIakIyM5s8ebLL1IQ6dY59pjSeZCrVmGSmp/YNHDjQZbt373aZmoioGu5U85SaSGimG2OfeeYZly1cuNBlp06dclkURS5TzbsffvihXE/jxo1d1qlTJ5cNGDDAZVdffbXL1M9HeeWVV2Sufj6o+9SeUdMxVVPu2bNnXfbEE0+4TO3rTMITAgAAQEEAAAAoCAAAgFEQAAAAq4amQnUkpWp2mjJlinx/u3btXPbJJ5+47KGHHnKZOpJSTUv7+7//e5cNHTpUrkc1QP3Hf/yHy9SUK9QfajpfYWGhfO2NN97osqefftplZ86ccZnab+poYNUopaYhmpnNmjXLZUuWLHHZyZMn5furSjVuJcrVpMOioiKXqWmK6uej7N+/X+anT5+O9X6kjvp7RR0pnuhI8ouppnT1+6MaaDMJTwgAAAAFAQAAoCAAAABGQQAAAKyGJhWqRqns7OzY71fNRWrK29133+2ySy+91GWqcbG0tFRee/HixS6bPXu2yw4ePCjfj/rhyJEjLnvuuefka9VUwq5du7pMTTpUTUyqAWr16tUumz9/vlzPa6+95rJ0aKRTkz7V5ER1f0D9oibJqkZwdSSy+p1SDYTq9yzT8YQAAABQEAAAAAoCAABgFAQAAMCqoalQNQKpBsCysjL5/tzcXJcNGjTIZffcc4/L1HGYFRUVLlNTBV944QW5HtW8pY7EzPSJVvXduXPnXKaa9cz074BqNFTT19R71UREdYT34cOH5XrU2oG6SP1OmOlpt/n5+bE+U92v1VHHiSZrZjKeEAAAAAoCAABAQQAAAIyCAAAAWDU0FTZs2NBl6kjKkpIS+f7169e7bOPGjS5TR8eq16lMTaRSk+jMaMhCYomm/amjhZM5Hls1GqoMSHeJmgovu+wyl6lJn9u3b3fZ/fff77IFCxZUYXWZhycEAACAggAAAFAQAAAAoyAAAABGQQAAAKwavmWguvIXL17sMjV61czs2LFjLlPfSFCjgunGRl3APgSqJtH44IULF7qsRYsWLvvggw9ctnz5cpeVl5dXYXWZhycEAACAggAAAFAQAAAAoyAAAABmFlSzXsIXhxD/xYD3XhRFX0nlAtjDSBJ7OEUaNfI98DT0VknCPcwTAgAAQEEAAAAoCAAAgFEQAAAAq4ZJhQAA1LREUw1RfXhCAAAAKAgAAAAFAQAAMAoCAABglW8qLDazXTWxEGSErqlegLGHkRz2MNJdwj1cqdHFAACgfuI/GQAAAAoCAABAQQAAAIyCAAAAGAUBAAAwCgIAAGAUBAAAwCgIAACAURAAAACjIAAAAEZBAAAAjIIAwGdCCEUhhFGpXgeA1KAgSFIIoWkI4ekQwq4QwokQwoYQwphUrwsAMgX34epBQZC8Rma228yuNbPWZnafmb0YQihI5aIAIINwH64GjVK9gHQXRVGZmf34j6JXQwg7zewKMytKxZoAIJNwH64ePCGoZiGEDmbWw8w2pnotAJCJuA9XDQVBNQohNDaz58zsV1EUbUn1egAg03AfrjoKgmoSQmhgZvPMrMLMZqZ4OQCQcbgPJ4cegmoQQghm9rSZdTCzG6IoOpPiJQFARuE+nDwKgurxlJn1MrNRURSdSvViACADcR9OEv/JIEkhhK5mNs3MBprZ/hBC6Wf/TErtygAgM3Afrh4hiqJUrwEAAKQYTwgAAAAFAQAAoCAAAABGQQAAAIyCAAAAWCXnEIQQ+EoCklEcRVG7VC6APYwksYeR7hLuYZ4QoDbtSvUCgCSxh5HuEu5hCgIAAEBBAAAAKAgAAIBREAAAAKMgAAAARkEAAACMggAAABgFAQAAsEpOKsxUjRr5H1Pbtm1d1qJFC5eVlpa67PDhwy6LIoaPoXrk5OS4rFWrVi4rKytzGXsTyFw8IQAAABQEAACAggAAABgFAQAAsAxuKmzcuLHMe/bs6bLRo0e77Gtf+5rLunTp4rKNGze6bM6cOS7bsmWLXE95ebnMgYYNG8r8tttuc9nYsWNdtmfPHpfdd999Ljt48GAVVodMoZqulfPnz8fKkDo8IQAAABQEAACAggAAABgFAQAAMAoCAABgGfwtg/z8fJn/4he/cNngwYNd1rRpU5c1aODrq379+rls4MCBLps9e7Zcz8KFC112+vRp+VrATH+DRo0z7tixY6yMbxnUf+repe5xvXr1ctm1117rspYtW7qssLDQZR988IFcz86dO13GCO2axxMCAABAQQAAACgIAACAURAAAADL4KbCROM2VbNhs2bNqnwd1ZjTv39/lz3wwAPy/SdPnnTZq6++6rJz585VYXVIZ4n+na9atcplal9PmzbNZTfffLPLtm3b5jIaW9NTovve0KFDXTZmzBiXqf3RqVOnWNcpKSlx2a5du+R67rzzTpep8e6Mdq9ePCEAAAAUBAAAgIIAAAAYBQEAALAMbipM5OzZs9X6eSGEWK/r1q2bzCdNmuSytWvXuuzQoUOVWxjqrd27d7vsd7/7ncsmT57sshtvvNFlzz77rMv27Nnjsur+3UFyVEPzj370I/na7373uy5r3759rOvEvce1a9cuVmZmtnr1apf9/Oc/d9nDDz/sMtWIjXh4QgAAACgIAAAABQEAADAKAgAAYBncVHjkyBGZz58/32VTp051WefOnV0Wt7lGTfFq2LChfK2aati2bVuX0VSIz5WWlrqsqKjIZWVlZS5Tx9Ymmm6HukMdX/z1r3/dZTNmzJDvz8vLi3UddY9L5ljiRPdMtQ9VE+z27dtd9txzz1V5PZmOJwQAAICCAAAAUBAAAACjIAAAAEZTofPoo4+6rLCw0GUDBw50mWrsyc7OdtmECRNcVlBQINeTk5Pjsq997WsuU8eIcjRoZjpz5ozLjh075jI1WVDtYdR96t+bukfFbR40i99AqI7hPnHihMvUvbAy+03dI7///e+77IUXXnAZUzTj4bcfAABQEAAAAAoCAABgFAQAAMAyuKkwkVOnTrls3bp1Ltu8eXOsz2vTpo3LvvzlL7tMTT40M2vVqpXLhg8f7rIlS5a4TDWXnT9/Xl4HQPpSzX4lJSUuS9RorI5KVo14qsF6zpw5LnvjjTdc9nd/93cumz59ulxP3OmYXbt2dRmTXKuOJwQAAICCAAAAUBAAAACjIAAAAEZToaOac4qLi2NlijrWWB2xrKYPmpm1a9fOZV/96lddppoXVVMRTYX4nNoLcY/wRt2ipgU+//zzLhsxYoR8/+DBg122du1al/3kJz9x2datW12m9pa6HyVzdLKZvu+1bt3aZTQVxsMTAgAAQEEAAAAoCAAAgFEQAAAAoyAAAADGtwxqnOr+/eijj1ymOnDNzHJzc12mxiar8+75RgE+p8bQlpaWukyNykZ6Ut+EevTRR+VrVbe+Gtl+8ODBWNdW347q06ePyxo0iP//SdU3YPhWTPXiCQEAAKAgAAAAFAQAAMAoCAAAgNFUmBItW7Z0WePGjeVrVWPgxo0bXcaYYnxONbIeOXLEZevXr3fZkCFDamRNqBveeuutWrmO2kdDhw51WWWaCtWY42RHH+N/4gkBAACgIAAAABQEAADAKAgAAIClUVNhw4YNY71ONVSlUqNG/kc8bNgwl3Xo0CH2Z6pmQZpr8Dn1u5KTk+OyQYMGxXovUFn9+/d3mZqGmCzVTK2mtiIenhAAAAAKAgAAQEEAAACMggAAAFgdaCpUTUxdu3Z12bhx41ymjr5ctWqVy9SUtv3798v1nD59WuZVpSYQ5ufnx3qdmdmZM2dcdvz48eQXhoyimlubN2+egpWgvlHTBvv16+cyda9P9vhi1UCY6Ch5fDGeEAAAAAoCAABAQQAAAIyCAAAAWC02FSY65nL48OEumzlzpstGjRoV6zqHDh1y2eHDh1326quvyvcvXLjQZVu3bnVZeXl5rPV0797dZerPkmhC3J49e1ymjjA9e/ZsrPWg/lOTLFXz1aZNm1zWp0+fGlkT6q+mTZu6bODAgS6rzFHHcbVu3TpWVlxcXO3Xro94QgAAACgIAAAABQEAADAKAgAAYLXYVJibmyvzadOmuWzs2LEuU5PWFDV9TU0+7N27t3z/TTfd5LI5c+a47O2333ZZRUWFy26++WaX9ejRw2WJJnaphkg1eRH4nGoqVNPbNm7c6LJevXrVxJJQTzRr1sxl3/zmN12m7rk1Qd1zO3bs6DJ1f1W/E5U5Rr4+NnLzhAAAAFAQAAAACgIAAGAUBAAAwGqxqbBz584yHzRokMtUA6E6llgdYbx9+/ZY11bTtczMLr/8cpc9/PDDLlMTBNU0LNVAmJWV5bKysjK5nsWLF7ss0dHNAFBd1PRU1SR93333xXpvskcdK+3bt3fZb3/7W5cVFha6TDXVqoZcM33k/KpVq1ymJoIqe/fudZk66j7RehLlyeIJAQAAoCAAAAAUBAAAwCgIAACAURAAAACroW8ZqG8JXHvttfK1nTp1cpkaR7lw4UKXLVu2zGUrV650mRq3eckll8j1/PM//7PLrrjiCpfl5eW5TI29VJ216nUbNmyQ61F/RvXzAT6nzp1v06aNy/r06RPrvaj/1LeuRo8e7bIHH3zQZQUFBTWxpFgaN27sMvXNrssuu8xl3/jGN2JfR30D4MCBA7Fep74RsGTJEpepbyioEflmZm+88YbMk8VvPwAAoCAAAAAUBAAAwCgIAACA1eLo4pYtW+oFiAbEkydPuuzdd9912fvvv+8y1eihlJaWyvydd95xmWq+Us0syYzmVOOMzXTDjhq5eerUKZfV1HhL1G1qbGzbtm1d1rdvX5fVxHhZ1B2JRrZPnDjRZQ899JDL1KhgpSb2UTKfqX4nVJaIut9369Yt1ntVE3nPnj1jvffgwYMyv+qqq1xWVFQU6zP/FJ4QAAAACgIAAEBBAAAAjIIAAABYLTYVJmriO3v2rMvUZMGRI0e6TE1fW7x4scvUBCj1XjOzjh07uixRI87F4k4lVK8bOHCg/Ew1OfHKK6902dq1a132hz/8wWVbt251WXl5ubw20pNqIOzfv7/LcnJyXFZSUuIyphfWH2oyrJnZjBkzXNauXTuXJdPYp+6Fiai/F+JSjerJSubPHfe96ueTm5srX6smL+7atSvWZ/4p/KYDAAAKAgAAQEEAAACMggAAAFgNNRWqhpAVK1bI195xxx0u69evn8vGjBnjsj//8z932eTJk12mjqRUk6fMdNNNkyZN5Gsvdu7cOZepaYHq55OosU9NKvz+97/vMvVz3Ldvn8vmzJnjsqVLl7rs0KFDcj2VbVJB7VONsWoqoZoeGrepUDVuJdMIhtqRqOGudevWLkumSVq9TmWJ7jPz58932YkTJ1zWqlUrl40dO9Zlag+rvwPy8/Plempjgqf6+ahGQTOz7du3x3p/ZfGEAAAAUBAAAAAKAgAAYBQEAADAzEJlGhFCCFXuWkg07W/06NEuu/32212mJq2pZr8OHTq4TDWPJPpzq6YqlR0/ftxlqgFEHVWs3ltRUSHX8+1vf9tl6ujMuNMUVROPaipUzYdmZps2bXKZatpM4L0oir4S98U1IZk9XNckOr71e9/7nsu+9a1vuewrX/H/Ko4cOeKyX/3qVy7bsWOHy37zm9/I9ajPTGNpvYfVdEozfc/9xje+4TI1MVZRx/aq+8ysWbPk+1XTXFxxJxVWpqkwVdTfPWZmxcXFyXxswj3MEwIAAEBBAAAAKAgAAIBREAAAAKvF448TTeJbsmSJy9atW+cydaSrmrR27bXXuiw7O9tlaoKgmVlhYaHLVCOd+vOUlZW5TDWFqIbGRI0wb731lstuvvlml6mmINVgqY40nThxoss6d+4s1zN16lSXJZqmhZqVqDFWNWSpfX355Ze7TDXqqr1w4MCBOEtEHZOowXPu3LkuUw3RaqKh8i//8i8uW716tcsSTSpMRtyJmep1yTQz1gc8IQAAABQEAACAggAAABgFAQAAsFqcVFhb4k6pSkQ1GyZqQEyV5s2bu+y6665z2YABA1w2btw4l6nmzFWrVslr33vvvS6rxNSstJ7yli6ysrJcpo5EnjBhQqzPW7Rokcv279/vspMnT8b6vDSXMXtYHRncpUuXWO/dvXu3y9Tx8EgJJhUCAIDEKAgAAAAFAQAAoCAAAABGQQAAAKwefssgUzVs2NBl6rxv1W2uvpmR6Bzuw4cPu6wSeyhjOrRTKYTgMjWSuFOnTrE+b9++fS6rqKhwWWXuJWmMPYx0x7cMAABAYhQEAACAggAAAFAQAAAAM0tuzi/qDDUWVGVFRUW1sBqkkmruKy8vdxl7AcAf4wkBAACgIAAAABQEAADAKAgAAIBREAAAAKMgAAAARkEAAACMggAAABgFAQAAsMpPKiw2s101sRBkhK6pXoCxh5Ec9jDSXcI9HDLkDHMAAPAn8J8MAAAABQEAAKAgAAAARkEAAACMggAAABgFAQAAMAoCAABgFAQAAMAoCAAAgFEQAAAAoyAAAABGQQAAAIyCoFqEEOaHEPaFEI6HELaFEP5XqtcExBVCKL3on3MhhMdSvS7gi4QQ/k8IYelF2ccJsom1u7r0w2mH1SCE0MfMtkdRVB5CuNzM3jSzsVEUvZfalQGVE0JoaWb7zeyGKIpWpXo9wJ8SQrjGzP7TzHKiKDoXQuhkZuvMLMvM8v8o+/Sz//1pCpdb5/GEoBpEUbQxiqLyz//nZ/98OYVLAqrqFjM7aGarU70QIIZ3zayxmQ387H8PNbM3zGzrRdkfKAa+GAVBNQkhPBlCOGlmW8xsn12oWoF081dm9uuIR4dIA1EUVZjZO2Y27LNomF0oZt++KONpVwwUBNUkiqLpZtbKLlSjC8ys/E+/A6hbQghdzexaM/tVqtcCVMJb9t9/+Q+1CwXB6ouyt1KwrrRDQVCNoig6F0XR22Z2iZl9N9XrASrpDjN7O4qinaleCFAJq8xsSAghx8zaRVH0sZmtNbOrP8v6Gk8IYqEgqBmNjB4CpJ/JxtMBpJ91ZtbazO40szVmZlEUHbcLjYR3mtmnFLnxUBAkKYTQPoQwMYTQMoTQMIQw2sxuM7MVqV4bEFcI4Wozyzezl1K9FqAyoig6ZWa/N7P/bf+zGfbtzzKeDsREQZC8yC7854E9ZnbUzH5mZndFUfRKSlcFVM5fmdmCKIpOpHohQBW8ZWbt7UIR8LnVn2UUBDExhwAAAPCEAAAAUBAAAACjIAAAAEZBAAAA7ML35WMLIdCBiGQUR1HULpULYA8jSexhpLuEe5gnBKhNu1K9ACBJ7GGku4R7mIIAAABQEAAAAAoCAABglWwqrE8aNYr/R1fTHEMIsd57/vz5WBkA1CUNGsT7/4vcz+oPnhAAAAAKAgAAQEEAAACMggAAAFiaNxU2btzYZfn5+S7Lzc112bBhw+RnZmdnu6yoqMhleXl5LmvevLnLCgsLXfb++++77MCBA3I95eXlLqOJp25p2rSpyzp16uSyyjSy1oZjx47Fel3r1q1reCUXnD171mX79u1zWUVFhcs4xj05ag+PHDnSZSdPnnTZ22+/7bJz585Vz8JQq3hCAAAAKAgAAAAFAQAAMAoCAABgad5U2LVrV5ctWrTIZd27d3dZw4YN5WeqCYSqiS+ZKV6qUVA1T5mZrVq1ymXTp0932enTp2OtB1WX6N/517/+dZfdd999LlMNq3H3UbLUPty8eXOs9/bq1ctlNbFu1eT4yCOPuGzdunUuU42/iE81wf7TP/2Ty9R9avfu3S7bsWNH9Swszai/V1TDa11tDOcJAQAAoCAAAAAUBAAAwCgIAACAURAAAABL828ZqFGne/bscVllRsaWlpbGel3Lli1jf+bFOnfu7LJLL71UvlZ1/y5cuNBlS5YscVld7WRNV4k66y+77DKXXX755S7LyspymfpWS01Qnc5qpLeiRhfXxLrVt2/UNzjU+FzV6c743PjUPTInJ8dlffv2ddn48eNd9thjj7lM3a/Tmfr53HrrrS7btGmTy1avXu2yunC/5gkBAACgIAAAABQEAADAKAgAAICleVPh3r17XTZt2jSXVaapMG7jS9zPVKMsJ0+e7DK1bjPduDJw4ECXLV261GV1oUmlPlGNeWZ6z5w6dcplqqlQ7aNkG/YSrfNieXl5SV3nYpVZt1qj+lmMGTPGZW3atHHZRx995LJMHZ9bk5o2beqy/Px8lzVu3NhlmdBU+J3vfMdlr732msv+67/+y2XqnlHbeEIAAAAoCAAAAAUBAAAwCgIAAGBp3lR45swZl6XDuejvv/++yyozVS3uNEVUr0T/jl544QWXtW/f3mU33nijy3r37u0y1ZyXaEqiEreZVF0nbkNiZajrxP0ztmvXzmWjRo1yWdxpeWb1r7mtNqnGz+HDh7usQ4cOLkuHe3OyVNPliBEjXPbkk0+6rC78fHhCAAAAKAgAAAAFAQAAMAoCAABgad5UmA6aNWvmskmTJrlMTb0yMysrK3PZihUrXEajVOocOXLEZb///e9dphqt1PRC1ZjUokWL2OspKSmJ9brmzZu7rKKiwmXJ7i01tS47O9tl6ndANR82adLEZckcRw49UTWuVq1auawy02HjUk2nan+k8thrtR6112vi51MdeEIAAAAoCAAAAAUBAAAwCgIAAGA0FcaimqJ69uzpstGjR7ts2LBhLhs7dqzLdu7cKa/94x//2GXqqFekjmq6W7ZsmcvWrFnjMnWUr2pC6tKlS+z1bN68Odbr1GceOnTIZXEnYyaaptivXz+XqamNt99+u8tUs5v6eTO9M55ER1SrvaAaNdUky5po4lN7aejQoS5Tkz7V5FDV+Ftb1N8frVu3TsFKvhhPCAAAAAUBAACgIAAAAEZBAAAAjKbCWPLz8132i1/8wmWDBw92mZo698knn7jsgQcekNdesGCBy2riiFpUr/Ly8lhZcXFxrM/bsGFD7GvHPf5427ZtLktmbyWavqaaaFWjoWogPH36tMs+/vhjlzG9Mzlqb6qf365du1w2b948lyXbxKfum2ofqUbu5cuXV/t6kqEmlKpm8w8++MBltb2HeUIAAAAoCAAAAAUBAAAwCgIAAGA0FVaZmuKljrJVE7dUY45qlAI+F7dRsDKquzlVTWQz0025iY77vtj+/ftd9vrrr7uM3594Eh1zfMUVV7isbdu2Lnv++eddNnfuXJcdPXq0Cqv7b6oRb8SIES5T9+HamgKoGv6OHTvmsq5du7pMTSOtC3hCAAAAKAgAAAAFAQAAMAoCAABgFAQAAMD4lkEs6lsBt912m8vuu+8+l40ZM8ZlQ4YMcdnKlSvltdV42SlTprhsy5YtLlPjSIGaojq+zcwKCgpc1qJFi1ifeebMGZeVlZW5jDHFyVFd7+pbI02aNHFZTYxSV2Ow1Ro7duzostoaC7xv3z6XPfXUUy6bNWtWUtepTTwhAAAAFAQAAICCAAAAGAUBAAAwmgpjUU0zO3bscNkPf/hDl73yyisuU02BI0eOlNdW58Y/++yzLps9e7bLXn75ZZedOnVKXgeojBCCy9SIVjOzgQMHukyNxVWOHz/uspKSEpfVRGNbplPjsj/55BOXqSbPZCUasXwx1fhYW2OBVcPriRMnYr23VatWLlN/ltpuluUJAQAAoCAAAAAUBAAAwCgIAACA0VRYZaqJ6eDBgy5btGiRy9TUrDvuuENeR+Wq0fDBBx90WYMGvt77zW9+4zIasvCnqAav3Nxcl82YMUO+Pz8/32VqEp1qTlu8eLHLVqxY4TImFdYO1WiYzP1DNaeamXXp0sVliSZhpoq6v/bq1ctlOTk5Lhs0aFCs1+3du7eKq6sanhAAAAAKAgAAQEEAAACMggAAABhNhTVONeGoKYeqKdBMH6f585//3GV/8Rd/4bK5c+e6bM2aNS4rKiqS1wbM9AQ1deysmkhopo/MVQ4cOOAy1YC7f//+WJ+H9KWObj937lwKVpKYaohUzbLq74D169e77MiRI9WzsCTwhAAAAFAQAAAACgIAAGAUBAAAwGgqrDMSTftS0w8fffRRl11zzTUuu+SSS1ymml6Az6lGqZ49e7pswoQJsV6X6DPVZEE11fP111932cmTJ+V1kH6aNm0q8xEjRrgsLy8v1meqiYY1cbRwmzZtXNanTx+Xqf2vjklWxynXNp4QAAAACgIAAEBBAAAAjIIAAAAYTYVpieOKUVPUscZ33XWXy4YOHeqyrKys2NdRDVR79uxxmZpYx/6vP9TESzOzcePGuUztLzUFsFu3bi5TjYanTp2Ks8SE2rZt67K+ffu6TB0fXlfxhAAAAFAQAAAACgIAAGAUBAAAwNK8qVBNn+rRo4fLPv30U5cdPXq0RtZU3dSUq4kTJ7pMTSWk+QqVlZ2d7TI1fa1Dhw6xP1MdW6smtaljuFXTGOqPRJNTVRNg3OOBu3fv7rJOnTq57NChQy5T91szs3bt2rls2LBhLsvJyXGZug/X1X3NEwIAAEBBAAAAKAgAAIBREAAAAKMgAAAAlkbfMlDjH3v37u2yf/3Xf3XZ3/zN37isrn3LIFF366WXXuqym2++2WUNGvjabseOHS4rKSmp/OJQL6k9M2DAAJd17drVZc2aNXNZom+17Ny502Vr1qyJldXVbmxUXtOmTV2mvh1lpvfmiy++6DL1DZbJkye7TN0zd+/e7bIuXbrI9ajx3WPGjHGZ+paBug9v2LDBZXVhr/OEAAAAUBAAAAAKAgAAYBQEAADA0qipcPjw4S6bMWOGy9q3b++yY8eO1cSSqkw111x++eXytffcc4/LCgoKXKbGcM6aNctlhw8fjrFCZALVGHj11Ve7TJ37rpq+Dh48KK+j9qFqIFR7GOlJNYGPHj3aZQ888IB8vxo1rPbX5s2bXfbNb37TZarR8Etf+pLLBg8eLNejRuKr+7hqoFV/xuXLl7uMpkIAAFAnUBAAAAAKAgAAQEEAAACsjjYV5uXlueyXv/yly9R0v1tvvdVlxcXF1bOwL6AarVTj1ty5c1120003yc9s3ry5y1auXOmyxx9/3GXLli1zWaJpcqjf1N4cOXKkyyZMmOAy1SBWXl7usqVLl8prq1w1t7I36z61j7Kyslx22WWXuezb3/62y/r27Suvs2vXLpetX7/eZZs2bYr13j/7sz9z2V//9V+7TO31RE6fPu2yefPmuWzhwoWx3lsX8IQAAABQEAAAAAoCAABgFAQAAMDqaFNhmzZtXNa5c2eXFRUVuawmjvdVTTNqypU6OlZNfrvllltiXcNMN0SqBsIlS5a47OzZs/IzkXlUM5iavtahQweXqWa/EydOuOzNN9+U11aTQtWxtUgdNSVP7ZlBgwa5bOrUqS6bMmWKy9Q01kTNdao57/XXX3eZ2kc//elPXaYaCEeNGuWyJk2ayPWov1c2btzost/+9rcuO3nypPzMuognBAAAgIIAAABQEAAAAKMgAAAAVkebCuPKzc112cyZM132/vvvu6xLly7yMxs18j+S8ePHu6x79+4uU8dhqsacsrIyly1atEiuRzUQrlixQr4WMNN7TjXqqqNe1WRN1XB29OhRl/3ud7+T61FTDZEaiY7YLSwsdNnx48dddt1117lsyJAhLsvOzo51bTVN1Uw3FcZtzlMN1urPp+7rLVu2lJ+p3q/+Xtm7d2+cJdZZPCEAAAAUBAAAgIIAAAAYBQEAALA62lSopkLt3r3bZd26dXPZ9OnTXVZaWuqyFi1ayGurI5XVkZiqQUZNzVKTBp988kmXzZ8/X65HHeUJVAe1h8+cOeOyiooKl6nfUZoH675ETYUffPCBy9Q9t127di5TzdTqOmqy7LPPPivXk8x9T92Hd+zY4bLHHnss9meqP0+in2U64wkBAACgIAAAABQEAADAKAgAAIDV0abCw4cPu+yZZ55x2YwZM1yWl5fnskTTpxTVVPXhhx+6TB31qo55VROuli5d6rJEx4AClaWanY4cOeKyX/7yly5TR7qqptzt27e7bN++fXGXiDrm008/ddkrr7ziMnVktmq63rZtm8tmz57tstdee02upzaOx+Z4eI8nBAAAgIIAAABQEAAAAKMgAAAARkEAAADMLERRFP/FIcR/cTVTZ7zn5ua6LD8/P9bnqc5pM915umfPnlivwxd6L4qir6RyAancw3VNTk5OrEztdfX7o74dZGZWmXtMGsiYPVxQUOCyCRMmxHrvihUrXLZ161aXMe46JRLuYZ4QAAAACgIAAEBBAAAAjIIAAABYGjUVol7ImIYs1FsZvYcbNYo37Z6m6zqNpkIAAJAYBQEAAKAgAAAAFAQAAMDM4nWIAAAyHs2C9RtPCAAAAAUBAACgIAAAAEZBAAAArPJNhcVmtqsmFoKM0DXVCzD2MJLDHka6S7iHKzW6GAAA1E/8JwMAAEBBAAAAKAgAAIBREAAAAKMgAAAARkEAAACMggAAABgFAQAAMAoCAABgZv8fcv5SQYQsglsAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display_images(dataset, 9)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "torch.Size([1, 28, 28])" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataset[0][0].shape" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "torch.int64" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataset[0][1].dtype" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.8.2" } }, "nbformat": 4, "nbformat_minor": 4 }