summaryrefslogtreecommitdiff
path: root/src/notebooks/Untitled.ipynb
blob: 7e812cd9018c43bed0c7c1d7dbb37041feeeb111 (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
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "%load_ext autoreload\n",
    "%autoreload 2\n",
    "\n",
    "import importlib\n",
    "import cv2\n",
    "import yaml\n",
    "\n",
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import torch\n",
    "from torch import nn\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": [
    "def convert_y_label_to_string(y, dataset):\n",
    "    return ''.join([dataset.mapper(int(i)) for i in y])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "from text_recognizer.models import TransformerModel\n",
    "from text_recognizer.datasets import IamLinesDataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "dataset = IamLinesDataset(train=False,\n",
    "        init_token=\"<sos>\",\n",
    "        pad_token=\"_\",\n",
    "        eos_token=\"<eos>\",\n",
    "        transform=[{\"type\": \"ToTensor\", \"args\": {}}],\n",
    "        target_transform=[\n",
    "            {\n",
    "                \"type\": \"AddTokens\",\n",
    "                \"args\": {\"init_token\": \"<sos>\", \"pad_token\": \"_\", \"eos_token\": \"<eos>\"},\n",
    "            }\n",
    "        ],\n",
    "    )\n",
    "dataset.load_or_generate_data()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "config_path = \"../training/experiments/TransformerModel_IamLinesDataset_CNNTransformer/1116_082932/config.yml\"\n",
    "with open(config_path, \"r\") as f:\n",
    "    experiment_config = yaml.safe_load(f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'CNNTransformer'"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "experiment_config[\"network\"][\"type\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-11-22 20:36:09.684 | DEBUG    | text_recognizer.models.base:load_weights:432 - Loading network with pretrained weights.\n"
     ]
    }
   ],
   "source": [
    "model = TransformerModel(network_fn=experiment_config[\"network\"][\"type\"], dataset=experiment_config[\"dataset\"][\"type\"], dataset_args=experiment_config[\"dataset\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-11-22 22:45:47.919 | DEBUG    | text_recognizer.models.base:load_from_checkpoint:379 - Loading checkpoint...\n",
      "2020-11-22 22:45:47.920 | DEBUG    | text_recognizer.models.base:load_from_checkpoint:381 - File does not exist {str(checkpoint_path)}\n"
     ]
    },
    {
     "ename": "FileNotFoundError",
     "evalue": "[Errno 2] No such file or directory: '../training/experiments/TransformerModel_IamLinesDataset_CNNTransformer/1110_073929/model/best.pt'",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mFileNotFoundError\u001b[0m                         Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-121-f064cb8bef04>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0mckpt_path\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"../training/experiments/TransformerModel_IamLinesDataset_CNNTransformer/1110_073929/model/best.pt\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload_from_checkpoint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mckpt_path\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m~/Documents/projects/quest-for-general-artifical-intelligence/projects/text-recognizer/src/text_recognizer/models/base.py\u001b[0m in \u001b[0;36mload_from_checkpoint\u001b[0;34m(self, checkpoint_path)\u001b[0m\n\u001b[1;32m    381\u001b[0m             \u001b[0mlogger\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdebug\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"File does not exist {str(checkpoint_path)}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    382\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 383\u001b[0;31m         \u001b[0mcheckpoint\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcheckpoint_path\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmap_location\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdevice\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    384\u001b[0m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_network\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload_state_dict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcheckpoint\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"model_state\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    385\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/.pyenv/versions/3.8.2/envs/text-recognizer/lib/python3.8/site-packages/torch/serialization.py\u001b[0m in \u001b[0;36mload\u001b[0;34m(f, map_location, pickle_module, **pickle_load_args)\u001b[0m\n\u001b[1;32m    579\u001b[0m         \u001b[0mpickle_load_args\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'encoding'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'utf-8'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    580\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 581\u001b[0;31m     \u001b[0;32mwith\u001b[0m \u001b[0m_open_file_like\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'rb'\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mopened_file\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    582\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0m_is_zipfile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mopened_file\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    583\u001b[0m             \u001b[0;31m# The zipfile reader is going to advance the current file position.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/.pyenv/versions/3.8.2/envs/text-recognizer/lib/python3.8/site-packages/torch/serialization.py\u001b[0m in \u001b[0;36m_open_file_like\u001b[0;34m(name_or_buffer, mode)\u001b[0m\n\u001b[1;32m    228\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_open_file_like\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname_or_buffer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmode\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    229\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0m_is_path\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname_or_buffer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 230\u001b[0;31m         \u001b[0;32mreturn\u001b[0m \u001b[0m_open_file\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname_or_buffer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmode\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    231\u001b[0m     \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    232\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0;34m'w'\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mmode\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/.pyenv/versions/3.8.2/envs/text-recognizer/lib/python3.8/site-packages/torch/serialization.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, name, mode)\u001b[0m\n\u001b[1;32m    209\u001b[0m \u001b[0;32mclass\u001b[0m \u001b[0m_open_file\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_opener\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    210\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmode\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 211\u001b[0;31m         \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_open_file\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmode\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    212\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    213\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m__exit__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: '../training/experiments/TransformerModel_IamLinesDataset_CNNTransformer/1110_073929/model/best.pt'"
     ]
    }
   ],
   "source": [
    "ckpt_path = \"../training/experiments/TransformerModel_IamLinesDataset_CNNTransformer/1110_073929/model/best.pt\"\n",
    "model.load_from_checkpoint(ckpt_path)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.eval()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [],
   "source": [
    "data, target = dataset[11]\n",
    "sentence = convert_y_label_to_string(target, dataset) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "torch.Size([98])"
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "target.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = data * (data > 0.1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [],
   "source": [
    "from torchvision import transforms"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [],
   "source": [
    "ra = transforms.RandomAffine((-1.1, 1.1), scale=(0.8, 1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = ra(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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AAAAAAAAAAAAAAAAAAAAiAk3JQEAAAAAAAAAAAAAAAAAAAAAAACISVppLPScc84xuWfPnk5t8+bNJj/11FNRz7lw4UKTn332Wad23333mdymTRuntmDBApMLCwud2rp160wuX768U2vYsKHJXbt2dWrNmjUzefLkyRF7CZKVleWMCwoKonpe9+7dnbHf29///neTly5d6tTWr19v8s6dO53ajh07Ita2b99e7ONERPbv329yfn6+U5syZYrJ33zzjVO74IILTLb3FxGRHj16mKy1dmo//vijyT/99JNT++6770w+ePCgU9u2bZvJ9j4oIrJ7926Tn3jiiYh9/u53v3Nqe/fujTinva19+/bti1jzKaVMrlq1qlObO3euydOnT496Tpv//rS3b1FRUVxzLl++3BkPGzbM5LPPPtup2fvTp59+6tTs9YvXuHHjnPF5553njO33sv9+sdnbRUTk4osvNvnaa691anl5eTH3ifi8//77znjw4MEmr1mzxqnFuz9H67bbbnPGTZo0Mfmjjz5yavax8U9/+pNTCzp2JFuXLl2c8cqVKxMyr308rlatWkLmjFfr1q1NHj16dMTH2ecOIiIXXXSRya1atXJqixYtSlB3sbvzzjudcbt27Zyx/dngf0bbhgwZ4ozXrl1rcsWKFZ1a0LESqdOpUydnvGHDBpMnTZrk1K688sqU9FScWbNmOWN/n43E38/Kli1r8uWXX+7Uxo8fH9WcDRo0cMZnnXWWyd26dXNqq1evdsavvPJKxN5ef/11k+3zA5H/vU6IxL4mERFp0aJFxMc+9NBDJvvXNtOmTYtqeaVt5MiRJj/88MNObdCgQSa/8MILKevpaNa8eXNnnJmZafKyZctS3U5SnHzyySZv3bo14uP861j/GBSttLRfvkbx3/Pz5s2La04k13vvvWey/z2Tfax86aWXnNqHH36Y3MZiYF8P29fQIiJnnnmmM87NzU1JT0ebGjVqmGx/ByTibsNkbT/7+HTSSSclfP4lS5Y444EDB5psf48m4n7P5l8j2N9/+t/x2d9z+d+5/fDDDyZ/9dVXTm3Tpk0m+98JBenVq5fJsVwL2+d1JbnWt5dZu3Ztpxbt97SffPKJM3788cdNzsnJcWpTp06NscPDs88Dzj33XKdmf4Z9/vnnTs3+PtD/zgIAAAAAAAAAAAAAfPxSEgAAAAAAAAAAAAAAAAAAAAAAAICYcFMSAAAAAAAAAAAAAAAAAAAAAAAAgJikJWqiXr16OePdu3eb/Nvf/tapHX/88Sa///77Tu2TTz4pcS9z5sxxxn/84x9NPuuss5xa+/btTb7kkkucmlLK5L179zq1MmV+uZ9r1qxZTu2NN94weenSpdG27SgoKIjreVOmTAkcN27c2OT69es7tfT09GKzb//+/c54y5YtJufn50ffrKWoqMgZv/LKK8VmX4MGDZxxxYoVTa5evbpTs/v++eefndry5cujbdXhv/alKSsryxmfcMIJJZ6zU6dOznjx4sUlntOXm5tbbC4NGzZscMYtW7Y0+eDBg07t8ssvN9k+Hoi42+nWW291amXLljV59uzZ8TeLw/I/X7Kzs00eOnSoU3vxxRdNjuV93bZtW5N79Ojh1OrVq2dyTk6OUxs5cqTJQcefnTt3OmP/WJls9mdGjRo1nNrMmTMTsoxp06aZfPPNNzu1m266KSHLiMTeJ0RERo8eHdXzCgsLnfGECRNMvvfeeyPWxowZE1uDETRr1szk1q1bO7U2bdqY/NVXXzm1Dz74wBlXqVLFZP/z9OKLLza5YcOGTm3YsGEmDxgwwKn5x1GUjq5duzpjez/07dixw2R73xKJ/zw2Xlu3bo3reW+++abJd911l1Pr0KGDyfb1iYhIrVq1TD7ttNOcmn1O8tprrzm1WM6HVqxYYXKLFi2c2uTJk6OaY926dc745JNPNtl+P4q4nxtPPPFEtG3GzT7/jPf6JciTTz7pjG+//XaTBw8e7NSGDx+e8OX/GvjnEhkZGaXUSeJ07tzZGV9xxRUmP/vssxGft2TJkoQsPzMz02T//Ykjg30eIyLSrl07k/3vnOxzJ/+a70gyf/58kydOnOjUHnnkEWf85z//2eRkXMMfrbTWJi9btsyp2ecByfpeYt68ecXmVJg0aVLg+EhVt25dkxctWhT18/xrG1ss19R79uwx2b52ioX/HnzrrbdM9q+l7M83/3lr1qwx2f7uU0SkSZMmJvvfhdqfU/73EkHfSdnPW716dcTHAQAAAAAAAAAAAIAIv5QEAAAAAAAAAAAAAAAAAAAAAAAAIEbclAQAAAAAAAAAAAAAAAAAAAAAAAAgJtyUBAAAAAAAAAAAAAAAAAAAAAAAACAmaYma6MCBA844MzPT5M8//9ypffjhh4labFSWLFlSbBYReeutt0y2exYRSU9PN3n58uVJ6i617PX4NaxTUVFRabdwxCgoKAgcx2Pv3r3OeM6cOSWe80g2ceJEZ3z99deb3KBBA6eWm5tr8gcffODUmjRpYnLv3r2d2uDBg02+5JJLnNqMGTNM3rhxo1PbuXNnxL7t16mwsDDi4451Q4cONfm2225zav379zf5D3/4g1PTWptcrlw5p7Zp0yaT//vf/zq1UaNGmRzL65KVlWVyRkZG1M9LhrPOOsvkMWPGJGUZI0eONPnNN990au+8847Jzz33nFPLyckp8bLz8/NLPIeIyPjx401evXq1U7vmmmtM7tSpk1Nbv369yWlp7ilZxYoVTa5cubJT27Ztm8n+cfmWW26J2GebNm2c8b333mtys2bNnJq9zz799NNOzf7srVSpklP76aefIi4fqVO+fHlnvGjRooiP3bdvn8n79+9PWk/RsI+p7dq1c2pz586N+LwpU6aYvHLlSqdm7/dly5Z1aosXLzb51VdfdWpB2ywWa9euNfnUU0+Naw7/dbHPSez5RUTuv//+uJYRL3tfGzZsmFOzX4u8vDyn5l8fRsv+zHj88ced2nXXXWeyfY13rPM/63744QeT+/bt69RGjx6dkp6i4V+bd+vWzeT27ds7NXu/mDlzZsQ5E3HuIOKen61atSohcyI62dnZJtvXXCIi5557rsn+dez7779vsv95Yl+v+edRp5xyiskvvvhiHB0nx/Dhw53xjh07nPHDDz9s8j//+U+ntmLFCpP978d+7erXr2+yvx+cccYZqW4HUfjoo49M7tKli1MLOt7b36f85je/cWr++WDQd2cnn3yyyV988UVws1EaO3asyf75kX29eN555zk1+7sI//sh+5pw1qxZTi3ez77jjjvO5IULF8Y1BwAAAAAAAAAAAIBjB7+UBAAAAAAAAAAAAAAAAAAAAAAAACAm3JQEAAAAAAAAAAAAAAAAAAAAAAAAICZpiZpowoQJiZqq1BQWFpZ2C8ARJScnxxkXFBSUTiMpsnDhwsBxtPLy8kx+8sknnVqrVq1Mbt26tVO78MILTU5PT3dqmzdvNnn16tVObfny5SZzHIvOiy++GLHWpEkTZ1yuXDmTt27d6tSKiooS2peISOXKlU0+ePBgwucP0rNnT2f8zTffpHT5119/vTMeMmSIycOGDXNq9r7+7bff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\n",
      "text/plain": [
       "<Figure size 4320x1440 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(60, 20))\n",
    "plt.title(sentence)\n",
    "plt.imshow(data.squeeze(0).numpy(), cmap='gray')\n",
    "plt.xticks([])\n",
    "plt.yticks([])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "('because droch fis at Caully<eos>', 0.2531574070453644)"
      ]
     },
     "execution_count": 119,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.predict_on_image(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [],
   "source": [
    "data, target = dataset[110]\n",
    "sentence = convert_y_label_to_string(target, dataset) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "([], [])"
      ]
     },
     "execution_count": 111,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x1440 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(20, 20))\n",
    "plt.title(sentence)\n",
    "plt.imshow(data.squeeze(0).numpy(), cmap='gray')\n",
    "plt.xticks([])\n",
    "plt.yticks([])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "('Boyis cheed iitrincy- tarisaing one', 0.3990435302257538)"
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.predict_on_image(data)"
   ]
  },
  {
   "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
}