summaryrefslogtreecommitdiff
path: root/src/notebooks/01-look-at-emnist.ipynb
blob: d727cb448e9b5a88a1c4a4dd1579036ff047488e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
{
 "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(train=False, sample_to_balance=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "dataset.load_or_generate_data()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "from torch.utils.data import random_split, DataLoader"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "d1, d2 = random_split(dataset, [len(dataset)-10, 10])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "55898"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(d1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [],
   "source": [
    "dl = DataLoader(d1, batch_size=16)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3494"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(dl)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tensor([[  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,\n",
       "           0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0],\n",
       "        [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,\n",
       "           0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0],\n",
       "        [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,\n",
       "           0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0],\n",
       "        [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,\n",
       "           0,   0,   0,   0,   4,   4,   4,   4,   4,   2,   0,   0,   0,   0],\n",
       "        [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,\n",
       "           0,   2,   4,   9,  32,  37,  37,  37,  32,  20,   1,   0,   0,   0],\n",
       "        [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,\n",
       "           3,  65, 109, 140, 204, 215, 217, 217, 201, 154,  22,   0,   0,   0],\n",
       "        [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   3,\n",
       "          12, 122, 190, 222, 245, 249, 250, 250, 242, 206,  46,   0,   0,   0],\n",
       "        [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   1,   8,  79,\n",
       "         127, 222, 247, 253, 235, 228, 249, 254, 254, 245, 114,   4,   0,   0],\n",
       "        [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   1,  35,  91, 219,\n",
       "         244, 252, 247, 207, 100,  84, 223, 251, 254, 250, 127,   4,   0,   0],\n",
       "        [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   9,  91, 163, 246,\n",
       "         252, 244, 220, 127,  39,  48, 218, 250, 255, 250, 127,   4,   0,   0],\n",
       "        [  0,   0,   0,   0,   0,   0,   0,   0,   5,  20,  95, 219, 246, 246,\n",
       "         221, 127,  79,  10,   5,  37, 217, 250, 254, 249, 125,   4,   0,   0],\n",
       "        [  0,   0,   0,   0,   0,   0,   0,   0,  20,  67, 175, 246, 252, 219,\n",
       "         164,  47,  22,   1,   5,  39, 218, 250, 254, 245, 114,   4,   0,   0],\n",
       "        [  0,   0,   0,   0,   0,   0,   1,   9,  95, 175, 250, 246, 219,  91,\n",
       "          35,   1,   0,   0,  22,  84, 234, 252, 250, 220,  50,   0,   0,   0],\n",
       "        [  0,   0,   0,   0,   0,   0,   9,  35, 164, 221, 252, 219, 163,  35,\n",
       "           9,   0,   0,   0,  46, 127, 246, 254, 245, 204,  34,   0,   0,   0],\n",
       "        [  0,   0,   0,   0,   0,   7,  91, 163, 246, 252, 219,  91,  35,   1,\n",
       "           0,   0,   0,  10, 128, 209, 254, 254, 220, 139,   9,   0,   0,   0],\n",
       "        [  0,   0,   0,   0,   3,  22, 159, 219, 252, 247, 164,  35,   9,   0,\n",
       "           0,   0,   1,  36, 175, 233, 254, 254, 204, 115,   4,   0,   0,   0],\n",
       "        [  0,   0,   0,   1,  36,  95, 232, 251, 232, 195,  47,   1,   0,   0,\n",
       "           0,   9,  35, 163, 246, 253, 249, 232, 122,  45,   0,   0,   0,   0],\n",
       "        [  0,   0,   0,   7,  91, 164, 247, 251, 187, 127,  20,   0,   0,   0,\n",
       "           1,  35,  91, 219, 253, 254, 234, 187,  67,  20,   0,   0,   0,   0],\n",
       "        [  0,   0,   0,  46, 207, 244, 247, 220,  80,  24,   1,   3,   8,  34,\n",
       "          52, 164, 219, 253, 249, 234, 155,  79,   4,   0,   0,   0,   0,   0],\n",
       "        [  0,   0,   2,  81, 232, 251, 235, 179,  39,  12,   5,  22,  46, 115,\n",
       "         139, 221, 246, 254, 234, 188,  79,  32,   0,   0,   0,   0,   0,   0],\n",
       "        [  0,   0,   3, 112, 244, 254, 236, 193, 130, 127, 129, 173, 209, 245,\n",
       "         250, 254, 253, 232, 154,  79,   4,   0,   0,   0,   0,   0,   0,   0],\n",
       "        [  0,   0,   0,  46, 206, 242, 249, 248, 249, 250, 250, 250, 250, 250,\n",
       "         250, 243, 219,  95,  22,   7,   0,   0,   0,   0,   0,   0,   0,   0],\n",
       "        [  0,   0,   0,  22, 154, 201, 217, 222, 245, 249, 249, 233, 222, 217,\n",
       "         217, 202, 158,  36,   3,   0,   0,   0,   0,   0,   0,   0,   0,   0],\n",
       "        [  0,   0,   0,   1,  20,  32,  39,  51, 114, 125, 125,  82,  51,  37,\n",
       "          37,  32,  20,   1,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0],\n",
       "        [  0,   0,   0,   0,   2,   4,   5,   9,  32,  37,  37,  21,   9,   4,\n",
       "           4,   4,   2,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0],\n",
       "        [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,\n",
       "           0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0],\n",
       "        [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,\n",
       "           0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0],\n",
       "        [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,\n",
       "           0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0]],\n",
       "       dtype=torch.uint8)"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "d1.dataset.data[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "torch.Tensor"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(dataset.data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "EMNIST Dataset\n",
      "Num classes: 80\n",
      "Input shape: [28, 28]\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",
      "\n"
     ]
    }
   ],
   "source": [
    "print(dataset)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "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.mapper(int(y)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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2LFDXo86N15NcuSM+MxSVFTksu985zsuU8Wm6dOnuywnJyeh61EFO1XeVWWlkydPRnqOsNejOktela/69Onjsp49e7pMnRG/c+dOl506dUpeD5o2VWLt1q2by+6++26XqYmeZrrAq9awytR7c4cOHSJdoyrJm1EqBAAAjYgNAQAAYEMAAADYEAAAAMuAUqGaIPWVr3zFZaNHj470tVGpYp6Z2ZYtW1xWUVHhshEjRrhs0qRJLps9e3ak51aFKjOzPXv2uKyqqsplFy9edBmT2lJDFQjnzJnjMlU6LSwsdFnUSYNhRdLTp0+7bNOmTS5TUwDPnz/vMnXUtypPPf744/J6JkyY4LKSkhKXqfKh+llMnDjRZep46OXLl8vr4XWRndSkT1XEe/jhh12mji+eOnWqy9QaNIs+mTNquVsVcFWZvmvXrvLrjx496rJkFA35hAAAALAhAAAAbAgAAICxIQAAAJbCUqEqIZmZDRw40GUPPvigy1S5QhU41BTAqEUpM7Mf/OAHLjt8+LDLevXq5bLvf//7LlMFqN69e0f6fma6dLZv3z6XqX+PmnJ46dIl+Tz448LKfg899JDLnn76aZdFPS5VrWs1QfPQoUPyel599VWXrVy50mW1tbWRnluVldR1f/e735XXo9b7k08+6bL777/fZarkpabGjR071mXvvfeevB5VwEVmUb93NUVQlQVVoVeV+Fq0aOGysKmc6nrUtFr1ulDvGypTpclUHGX+h/iEAAAAsCEAAABsCAAAgLEhAAAAlsJSoSrHmZktWLDAZapoqI48/eSTT1y2ZMkSl+3evdtlYYUsVd5SRasDBw647Hvf+57LVKFKTXSbMWOGvJ6ZM2dGeuzXvvY1l6mS14oVK1ymjsGFF3YUaY8ePVwW9bhU5cqVKy5TEzTDirEbNmxwmVrXifze1WuipqZGPlaV+FavXu0ydeyz+pmrqXFq0md+fn7k60F6hJXm1NHEzz77rMu6d+/usoKCApepYvlbb73lstdff11ej/r7NXToUJep170qHavXnppKe+7cOXk9jTVtk08IAAAAGwIAAMCGAAAAGBsCAABgKSwVdujQQebqWGM1FergwYMu++u//muXqfKVKmlFPaYyTNQpiarM9Td/8zcuU8fTmunJiaq4okpVjz76qMtUwVL9bCkaemFHkapjS9XR3FGnEqp19PLL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\n",
      "text/plain": [
       "<Figure size 648x648 with 9 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "display_images(dataset)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 648x648 with 9 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "display_images(dataset, 9)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "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.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}