├── .gitignore
├── requirements.txt
├── assets
├── demo1.png
└── demo2.png
├── LICENSE
├── README.md
└── training.ipynb
/.gitignore:
--------------------------------------------------------------------------------
1 | .ipynb_checkpoints
2 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | torch
2 | transformers
3 | accelerate
4 | pandas
5 | numpy
6 | tqdm
--------------------------------------------------------------------------------
/assets/demo1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/morrisalp/taatiknet/HEAD/assets/demo1.png
--------------------------------------------------------------------------------
/assets/demo2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/morrisalp/taatiknet/HEAD/assets/demo2.png
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Contents are dual licensed under the the Creative Commons Attribution-ShareAlike 3.0 Unported License (CC-BY-SA) and the GNU Free Documentation License (GFDL).
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # TaatikNet: Converting between Hebrew text and Latin transliteration
2 | ## A simple demonstration of character-level seq2seq learning
3 |
4 |
5 | Modern transformer networks are great for complex text-to-text tasks like machine translation, text summarization, paraphrasing and more. This repo shows a simple example of how to train a model given a dataset of paired examples, using a particularly interesting character-level task: **converting between Hebrew text and Latin transliteration**.
6 |
7 | Please see the accompanying blog post (TBD) for more information.
8 |
9 | ## Dataset
10 |
11 | The data in `data/he_transliterations.csv` contains nearly 15K Hebrew words along with nikkud (vowel symbols) and Latin transliterations. These were scraped from the [Hebrew Wiktionary](https://he.wiktionary.com/) in mid-2023. See the blog post for more details.
12 |
13 | ## Training
14 |
15 | See the contents of the accompanying [Jupyter notebook](training.ipynb) for simple, annotated training code for TaatikNet. It is fine-tuned on our training dataset using the base model ByT5-small ([paper](https://arxiv.org/abs/2105.13626), [HF model page](https://huggingface.co/google/byt5-small)), a byte-level (tokenizer-free) encoder-decoder transformer model.
16 |
17 | TaatikNet is trained to predict in both directions (Hebrew text ↔ Latin transliteration); additionally, vowel marks (in Hebrew) and stress accent marks (in transliteration) are sometimes randomly dropped in the input so the model learns to infer with or without them provided.
18 |
19 | ## Inference
20 |
21 | Inference on single words is simple with the HF Transformers "text2text-generation" pipeline API:
22 |
23 | ```
24 | from transformers import pipeline
25 |
26 | pipe = pipeline("text2text-generation", model="malper/taatiknet")
27 |
28 | pipe("kornel")[0]['generated_text']
29 | # returns 'קוֹרְנֶל'
30 |
31 | pipe("אולגוסטרביה", num_beams=10, num_return_sequences=10, max_length=100)
32 | # returns [{'generated_text': 'olgostrávya'}, ...]
33 | ```
34 |
35 | Note that long outputs are likely to be cut off unless you increase `max_length` from the default value.
36 |
37 | If you want to use your own weights, replace `malper/taatiknet` with the model's location.
38 |
39 | To run inference on multiple words, you are recommended to split the text by whitespace. You may also want to group words into minibatches, and to normalize the input text (NFC Unicode normalization and handling some special characters) to match the model's training. See [the HuggingFace Spaces demo code](https://huggingface.co/spaces/malper/taatiknet/blob/main/app.py) for a demonstration of these points.
40 |
41 | ## Examples
42 |
43 | Check out some examples of inputs and outputs to the resulting model **TaatikNet**:
44 |
45 | 
46 | 
47 |
48 | (This uses beam search with 5 beams; the first result is the top beam.)
49 |
50 | You may play with this yourself at the [interactive demo](https://huggingface.co/spaces/malper/taatiknet) hosted by Hugging Face Spaces.
51 |
--------------------------------------------------------------------------------
/training.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {
6 | "id": "4C5kLduzDXci"
7 | },
8 | "source": [
9 | "# TaatikNet: Converting between Hebrew text and Latin transliteration\n",
10 | "## A simple demonstration of character-level seq2seq training\n",
11 | "\n",
12 | "Many NLP tasks require converting an input text sequence into some other text -- **seq2seq tasks**:\n",
13 | "* Machine translation (e.g. English to German)\n",
14 | "* Text summarization and paraphrasing (e.g. long English to short English)\n",
15 | "* Spelling correction (misspelled text to valid text)\n",
16 | "\n",
17 | "Given a dataset of paired text data, how can we easily train a deep learning model to convert from one domain to another?\n",
18 | "\n",
19 | "Let's see how to do this using an interesting and challenging example -- converting between **Hebrew text** (with or without vowel marks) and **Latin transliteration**. We call our resulting model **TaatikNet** (תעתיק *taatik* means \"transliteration\" in Hebrew).\n",
20 | "\n",
21 | "Let's get started!"
22 | ]
23 | },
24 | {
25 | "cell_type": "markdown",
26 | "metadata": {
27 | "id": "Mh1BxwxAEeoQ"
28 | },
29 | "source": [
30 | "# Requirements\n",
31 | "\n",
32 | "Make sure the requirements from `requirements.txt` are installed (`pip install -r requirements.txt`).\n",
33 | "\n",
34 | "If you run this notebook in Google Colab, uncomment the following line. You will also need to upload the dataset csv file manually."
35 | ]
36 | },
37 | {
38 | "cell_type": "code",
39 | "execution_count": 1,
40 | "metadata": {
41 | "id": "NmW6Cj_FAwla"
42 | },
43 | "outputs": [],
44 | "source": [
45 | "# pip install transformers accelerate"
46 | ]
47 | },
48 | {
49 | "cell_type": "markdown",
50 | "metadata": {
51 | "id": "BEvRG8NyFSNL"
52 | },
53 | "source": [
54 | "Let's get our imports out of the way now..."
55 | ]
56 | },
57 | {
58 | "cell_type": "code",
59 | "execution_count": 2,
60 | "metadata": {
61 | "id": "jQIMqMYPFTy7"
62 | },
63 | "outputs": [
64 | {
65 | "name": "stderr",
66 | "output_type": "stream",
67 | "text": [
68 | "2023-06-25 07:00:08.645229: I tensorflow/core/util/port.cc:110] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n",
69 | "2023-06-25 07:00:08.668081: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n",
70 | "To enable the following instructions: AVX2 AVX_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n",
71 | "2023-06-25 07:00:09.025064: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n"
72 | ]
73 | }
74 | ],
75 | "source": [
76 | "import pandas as pd\n",
77 | "from torch.utils.data import Dataset, DataLoader\n",
78 | "import numpy as np\n",
79 | "from transformers import pipeline\n",
80 | "from tqdm.auto import trange, tqdm\n",
81 | "import torch"
82 | ]
83 | },
84 | {
85 | "cell_type": "markdown",
86 | "metadata": {
87 | "id": "YpCC5EvrAI5N"
88 | },
89 | "source": [
90 | "# Data wrangling\n",
91 | "\n",
92 | "We'll use the provided dataset of Hebrew words and Latin transliterations, derived from the [Hebrew Wiktionary](https://he.wiktionary.org)."
93 | ]
94 | },
95 | {
96 | "cell_type": "code",
97 | "execution_count": 3,
98 | "metadata": {
99 | "id": "J4x6OCF-AI5V"
100 | },
101 | "outputs": [],
102 | "source": [
103 | "df = pd.read_csv('data/he_transliterations.csv')"
104 | ]
105 | },
106 | {
107 | "cell_type": "markdown",
108 | "metadata": {
109 | "id": "K0sOfIGPFoA3"
110 | },
111 | "source": [
112 | "We see it contains nearly 15K words. The transliterations usually have an accented vowel to mark stress:"
113 | ]
114 | },
115 | {
116 | "cell_type": "code",
117 | "execution_count": 4,
118 | "metadata": {
119 | "colab": {
120 | "base_uri": "https://localhost:8080/",
121 | "height": 224
122 | },
123 | "id": "46iVV36eAI5W",
124 | "outputId": "2546e9f1-6cbc-41ee-ec33-3b432c19f2dc"
125 | },
126 | "outputs": [
127 | {
128 | "name": "stdout",
129 | "output_type": "stream",
130 | "text": [
131 | "2 rows\n"
132 | ]
133 | },
134 | {
135 | "data": {
136 | "text/html": [
137 | "
\n",
138 | "\n",
151 | "
\n",
152 | " \n",
153 | " \n",
154 | " \n",
155 | " word \n",
156 | " nikkud \n",
157 | " transliteration \n",
158 | " \n",
159 | " \n",
160 | " \n",
161 | " \n",
162 | " 0 \n",
163 | " אאוגניקה \n",
164 | " אֵאוּגֶנִיקָה \n",
165 | " eugénika \n",
166 | " \n",
167 | " \n",
168 | " 1 \n",
169 | " אאוזינופיל \n",
170 | " אֵאוֹזִינוֹפִיל \n",
171 | " e'ozinofil \n",
172 | " \n",
173 | " \n",
174 | " 2 \n",
175 | " אאוטינג \n",
176 | " אָאוּטִינְג \n",
177 | " autíng \n",
178 | " \n",
179 | " \n",
180 | " 3 \n",
181 | " אב \n",
182 | " אָב \n",
183 | " av \n",
184 | " \n",
185 | " \n",
186 | " 4 \n",
187 | " אב \n",
188 | " אַב \n",
189 | " av \n",
190 | " \n",
191 | " \n",
192 | "
\n",
193 | "
"
194 | ],
195 | "text/plain": [
196 | " word nikkud transliteration\n",
197 | "0 אאוגניקה אֵאוּגֶנִיקָה eugénika\n",
198 | "1 אאוזינופיל אֵאוֹזִינוֹפִיל e'ozinofil\n",
199 | "2 אאוטינג אָאוּטִינְג autíng\n",
200 | "3 אב אָב av\n",
201 | "4 אב אַב av"
202 | ]
203 | },
204 | "execution_count": 4,
205 | "metadata": {},
206 | "output_type": "execute_result"
207 | }
208 | ],
209 | "source": [
210 | "print(len(df.shape), 'rows')\n",
211 | "df.head()"
212 | ]
213 | },
214 | {
215 | "cell_type": "markdown",
216 | "metadata": {
217 | "id": "sb44MqSYF4xK"
218 | },
219 | "source": [
220 | "To make this useable for training our model, we must convert it into a PyTorch Dataset object:"
221 | ]
222 | },
223 | {
224 | "cell_type": "code",
225 | "execution_count": 5,
226 | "metadata": {
227 | "id": "uIf-8CZiAI5Z"
228 | },
229 | "outputs": [],
230 | "source": [
231 | "def randomly_remove_accent(text, prob):\n",
232 | " if np.random.random() < prob:\n",
233 | " return text.replace(f'\\u0341', '')\n",
234 | " return text\n",
235 | "\n",
236 | "class DS(Dataset):\n",
237 | " def __init__(self):\n",
238 | " self.df = df\n",
239 | "\n",
240 | " def __len__(self):\n",
241 | " return len(self.df)\n",
242 | "\n",
243 | " def __getitem__(self, idx):\n",
244 | " row = self.df.iloc[idx]\n",
245 | " out = {}\n",
246 | " if np.random.random() < 0.5:\n",
247 | " out['input'] = row.word if np.random.random() < 0.2 else row.nikkud\n",
248 | " out['target'] = row.transliteration\n",
249 | " else:\n",
250 | " out['input'] = randomly_remove_accent(row.transliteration, 0.5)\n",
251 | " out['target'] = row.nikkud\n",
252 | " return out\n",
253 | "\n",
254 | "ds = DS()"
255 | ]
256 | },
257 | {
258 | "cell_type": "markdown",
259 | "metadata": {
260 | "id": "0vizQikrG42b"
261 | },
262 | "source": [
263 | "We've added code to randomly augment our data by having Hebrew text as either input or output, and by randomly dropping vowels or accent signs in the input text, as seen below:"
264 | ]
265 | },
266 | {
267 | "cell_type": "code",
268 | "execution_count": 6,
269 | "metadata": {
270 | "colab": {
271 | "base_uri": "https://localhost:8080/"
272 | },
273 | "id": "id0BVh9MAI5b",
274 | "outputId": "a0c6aba9-8597-42df-b4e9-403d12b1fd60"
275 | },
276 | "outputs": [
277 | {
278 | "name": "stdout",
279 | "output_type": "stream",
280 | "text": [
281 | "{'input': 'אֵאוּגֶנִיקָה', 'target': 'eugénika'}\n",
282 | "{'input': 'eugenika', 'target': 'אֵאוּגֶנִיקָה'}\n",
283 | "{'input': 'eugénika', 'target': 'אֵאוּגֶנִיקָה'}\n",
284 | "{'input': 'eugénika', 'target': 'אֵאוּגֶנִיקָה'}\n",
285 | "{'input': 'eugenika', 'target': 'אֵאוּגֶנִיקָה'}\n",
286 | "{'input': 'אאוגניקה', 'target': 'eugénika'}\n",
287 | "{'input': 'eugénika', 'target': 'אֵאוּגֶנִיקָה'}\n",
288 | "{'input': 'אֵאוּגֶנִיקָה', 'target': 'eugénika'}\n",
289 | "{'input': 'אֵאוּגֶנִיקָה', 'target': 'eugénika'}\n",
290 | "{'input': 'אֵאוּגֶנִיקָה', 'target': 'eugénika'}\n"
291 | ]
292 | }
293 | ],
294 | "source": [
295 | "for _ in range(10):\n",
296 | " print(ds[0])"
297 | ]
298 | },
299 | {
300 | "cell_type": "markdown",
301 | "metadata": {
302 | "id": "23SjFY98GHA5"
303 | },
304 | "source": [
305 | "\n",
306 | "\n",
307 | "This would be slightly simpler if we only wanted to convert from one row of our DataFrame to the other (e.g. training a model to transliteration Hebrew text with vowels). Then we could replace all the code in `__getitem__` with something like `return row.to_dict()`. However, with this augmentation our model learns something more interesting -- to convert in either direction, and to handle input that may or may not contain vowels or accents."
308 | ]
309 | },
310 | {
311 | "cell_type": "markdown",
312 | "metadata": {
313 | "id": "UPC8G4JEAI5c"
314 | },
315 | "source": [
316 | "# Base model: ByT5"
317 | ]
318 | },
319 | {
320 | "cell_type": "markdown",
321 | "metadata": {
322 | "id": "jzySK-AgHaae"
323 | },
324 | "source": [
325 | "We first load our base model ByT5-small ([paper](https://arxiv.org/abs/2105.13626), [HF model page](https://huggingface.co/google/byt5-small)), a byte-level (tokenizer-free) encoder-decoder transformer model:"
326 | ]
327 | },
328 | {
329 | "cell_type": "code",
330 | "execution_count": 7,
331 | "metadata": {
332 | "id": "1vQrnWBCAI5c"
333 | },
334 | "outputs": [],
335 | "source": [
336 | "pipe = pipeline(\"text2text-generation\", model='google/byt5-small', device_map='auto')"
337 | ]
338 | },
339 | {
340 | "cell_type": "markdown",
341 | "metadata": {
342 | "id": "R44Y0aWIHiiV"
343 | },
344 | "source": [
345 | "For other seq2seq tasks you could simply replace BytT5 with any other encoder-decoder model. In our case, since our tasks uses non-Latin characters and involves reasoning on the character level, this model is more appropriate.\n",
346 | "\n",
347 | "\n",
348 | "Note: The related UNIKUD project ([post](https://towardsdatascience.com/unikud-adding-vowels-to-hebrew-text-with-deep-learning-powered-by-dagshub-56d238e22d3f), [repo](https://github.com/morrisalp/unikud)) used the encoder-only model CANINE as a base; here we use an encoder-decoder model since we must output text of arbitrary length."
349 | ]
350 | },
351 | {
352 | "cell_type": "markdown",
353 | "metadata": {
354 | "id": "HbwidY4gAI5d"
355 | },
356 | "source": [
357 | "# Training\n",
358 | "\n",
359 | "We use the following settings:"
360 | ]
361 | },
362 | {
363 | "cell_type": "code",
364 | "execution_count": 8,
365 | "metadata": {
366 | "id": "uSLaCqocAI5d"
367 | },
368 | "outputs": [],
369 | "source": [
370 | "epochs = 10\n",
371 | "batch_size = 32\n",
372 | "lr = 1e-3"
373 | ]
374 | },
375 | {
376 | "cell_type": "markdown",
377 | "metadata": {
378 | "id": "khHkTEBJJLWD"
379 | },
380 | "source": [
381 | "We did not extensively tune these hyperparameters -- try playing with them and see if you can improve our results!\n",
382 | "\n",
383 | "We set up data loading with simple collation (adding padding to inputs and converting them into tensors per minibatch):"
384 | ]
385 | },
386 | {
387 | "cell_type": "code",
388 | "execution_count": 9,
389 | "metadata": {
390 | "id": "5K3Grio4JCV1"
391 | },
392 | "outputs": [],
393 | "source": [
394 | "def collate(B):\n",
395 | " inputs = [x['input'] for x in B]\n",
396 | " targets = [x['target'] for x in B]\n",
397 | " inp = pipe.tokenizer(\n",
398 | " inputs,\n",
399 | " text_target=targets,\n",
400 | " max_length=100,\n",
401 | " padding=True,\n",
402 | " truncation=True,\n",
403 | " return_tensors='pt'\n",
404 | " )\n",
405 | " return inp\n",
406 | "\n",
407 | "dl = DataLoader(\n",
408 | " ds,\n",
409 | " collate_fn=collate,\n",
410 | " shuffle=True,\n",
411 | " batch_size=batch_size\n",
412 | ")"
413 | ]
414 | },
415 | {
416 | "cell_type": "markdown",
417 | "metadata": {
418 | "id": "JJ0Qy4o1Ji55"
419 | },
420 | "source": [
421 | "Note that we do not bother here with validation or testing splits since this is just a simple demo.\n",
422 | "\n",
423 | "Our model is not yet tuned for our task so as expected, it outputs gibberish:"
424 | ]
425 | },
426 | {
427 | "cell_type": "code",
428 | "execution_count": 10,
429 | "metadata": {
430 | "colab": {
431 | "base_uri": "https://localhost:8080/"
432 | },
433 | "id": "cgvUwKknJwcH",
434 | "outputId": "7dfb3905-55b0-4cb4-d9f8-718afbc109b2"
435 | },
436 | "outputs": [
437 | {
438 | "name": "stdout",
439 | "output_type": "stream",
440 | "text": [
441 | "Epoch 0: algoritm => 22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222\n",
442 | "Epoch 0: kokoro => okoroo-oroa-oroa-oroa-oroa-oroa-oroa-oroa-oroa-oroa-oroa-oroa-oroa-oroa-oroa-oroa-oroa-oroa-oroa-o\n",
443 | "Epoch 0: יִשְׂרָאֵל => אלאלאלאלאלאלאלאלאלאלאלאלאלאלאלאלאלאלאלאלאלאלאלאלא\n",
444 | "Epoch 0: דוריטוס => וסטריטוס\n",
445 | "סוריטוס\n",
446 | "סוריטוס\n",
447 | "סוריטוס\n",
448 | "סוריטוס\n",
449 | "סוריטוס\n",
450 | "סור\n",
451 | "Epoch 0: ajiliti => ajabiliti siti siti siti siti siti siti siti siti siti siti siti siti siti siti siti siti siti sit\n",
452 | "Epoch 0: פאנץ' => ץ'ץ'אנץ'ץ'ץ'ץ'ץ'ץ'ץ'ץ'ץ'ץ'ץ'ץ'ץ'ץ'ץ'ץ'ץ'ץ'ץ'ץ'ץ'ץ'ץ'ץ'ץ'ץ'ץ'ץ'ץ'\n",
453 | "Epoch 0: etherium => thethethethethethethethethethethethethethethethethethethethethethethethethethethethethethethetheth\n"
454 | ]
455 | }
456 | ],
457 | "source": [
458 | "def evaluate(i, items=['algoritm', 'kokoro', 'יִשְׂרָאֵל', 'דוריטוס', 'ajiliti', \"פאנץ'\", 'etherium']):\n",
459 | " pipe.model.eval()\n",
460 | " for x in items:\n",
461 | " print(f'Epoch {i}: {x} =>',\n",
462 | " pipe(x, max_length=100)[0]['generated_text'])\n",
463 | "\n",
464 | "evaluate(0)"
465 | ]
466 | },
467 | {
468 | "cell_type": "markdown",
469 | "metadata": {
470 | "id": "Kox37pUnJ0Jj"
471 | },
472 | "source": [
473 | "Now let's train our model and see how its output changes per epoch. This should take about half an hour to complete on GPU:"
474 | ]
475 | },
476 | {
477 | "cell_type": "code",
478 | "execution_count": 11,
479 | "metadata": {
480 | "colab": {
481 | "base_uri": "https://localhost:8080/",
482 | "height": 712,
483 | "referenced_widgets": [
484 | "879e8d35e93041d896fd84113ee150c8",
485 | "a5b73a6e13eb4a90b4e0e81e4fadc2c9",
486 | "3e2002a84eb04ed5bc55321eb5e55fa5",
487 | "b4a2873aecd441ea8f4d72e68b3b96ab",
488 | "8c8f319361d94f4a825993fa9fd3ef04",
489 | "bf966b183e4b4c15ad0124b5510461b3",
490 | "b16872b1d8a34c55bca9d03fee0c2d26",
491 | "c526abb4137248aaaf3c6f4e0bb3613f",
492 | "2965455bf5d648f59f449eb318dc0d9b",
493 | "946c2c6c9d8048a19d09c7f7e1cfa324",
494 | "97a86fdebe5d45e2b6e24596df7199db",
495 | "a0595d78a4d2428e877942bcf047468e",
496 | "1de8149168814805804464a51718cfb8",
497 | "16d8b74cb1974162ad75445b1dd8b6ed",
498 | "ae19f53afb454eda8d9b3009a5230dc3",
499 | "9e9a632bdceb440a94127e0c5740f334",
500 | "a28ba3cfaa4d4700ba951ba84fa180e6",
501 | "049fc17787cf4ea0b1d759ab23590ef0",
502 | "81b02dcc1f704cd8b9a2759237e20bdc",
503 | "379fd32ab1d84774a4de613a8eec825c",
504 | "4a93d608feb24a4a9a886c4663d4ad80",
505 | "cdc1819471c14cdbbb00b289f66c4aec",
506 | "37443314c73549b6a75e81c4abcdf074",
507 | "abef4362cc7f4fb3bf43ae84a40c5f11",
508 | "bda7ecb79e4443f9a7dd6b6737ce5563",
509 | "d572868d2e6b4394adf615b988618cb4",
510 | "502a104182c443508636b0426add3960",
511 | "d118a797f3d5439fabebb20378c292f8",
512 | "7036fc0fe6624106b4a11bdf5abd2b1c",
513 | "f8406e02408a4eb8a8265b5d2f985848",
514 | "d07f4bab5d654d4fa15aa9c8ab35e6ff",
515 | "ca0f870495654f299cb03882fa4debc6",
516 | "bb6c9093f7a047dda11ba79578456247",
517 | "5a0e7a0814294e9392efdbad9852985c",
518 | "8feaad6215514f34a8381821901224fa",
519 | "061b5bd45b674fc288a4434a569f88be",
520 | "626536db482849fc967f8ccdf49af04d",
521 | "c9a58f27b2f14ad18458a6f02b14a847",
522 | "ad3a6b34806b4812bb088ce6d9512b84",
523 | "77d4c73776aa425fae3204d05c2fef5c",
524 | "747d57495d054128baaafde4ca6b5eb5",
525 | "d9ed4c01ef164b209a2067ac6c80388e",
526 | "34bce401f2fc431fbbf1072bca3ed979",
527 | "c741db7d0550439f979759f588bcd7c7",
528 | "da8284c253c1427b9f5bd4b83279548b",
529 | "7d7b158fb7c34115b70da67ff9d02330",
530 | "473cdf8f4b384aa699a6ad078ad0a336",
531 | "2935e363a6f14ed08e209511245f0c6c",
532 | "12daa8b222de472dbe67b2d856276ffa",
533 | "9076a172c20a4f3ba860be80ed3c2987",
534 | "f31c06e20cf84f659480d8d0f4be50a6",
535 | "68cf6407acf74686b0e0ef472c51ad82",
536 | "2e96af9233014d379f9f55e689deeb34",
537 | "6f522324e2b04e7daed5e54582529b37",
538 | "8e8f66894fee4137914df1175ee9c75e",
539 | "20d4ef575aff48d78eab225843fb2446",
540 | "cf27cc3bafdd4482b441fc6e34366696",
541 | "862e43822549455fafbc742d8965c874",
542 | "2a4dca819f3c44d39908c932c02aff0c",
543 | "3d904c7a47c54174b6a45bcde4cad42f",
544 | "58ba589bb71047ccaca888f8b8f07223",
545 | "8ff3e9201c54476cacedb9b04d274f6d",
546 | "8b932843f727482586676c44607e7be9",
547 | "87cbfba9048a4fb49d29585458228721",
548 | "fe6b3020d51240538ad6f9b00067e889",
549 | "ac0a36ff698c46de9235e608a276b2a4",
550 | "e6ce6a08715a49f39f044ac3b873b14f",
551 | "96adc49910774c07b3751c3b2802e08b",
552 | "43d29fba0ede436b8dd6042cc27ac74f",
553 | "4572bf0fa8c54991aa7b165806e6ae65",
554 | "e1dbfff3fef7412ba89d507c58521366",
555 | "9c261204da454d96a71e4e7d535d1b05",
556 | "a76c97c50daa4b5d8b400d500f7442ca",
557 | "4bf6e5f2eebd4e20939d67cbf444e850",
558 | "51c92b9743964a4082b470d716dee956",
559 | "d1a57fe92fd543f1b4c72e33f4340fb3",
560 | "94d5eb5f48ca45558c49c50cd63d1b49"
561 | ]
562 | },
563 | "id": "PA2Nb3kyAI5e",
564 | "outputId": "72322d0f-b164-4cf8-9bd6-a4849201495b"
565 | },
566 | "outputs": [
567 | {
568 | "data": {
569 | "application/vnd.jupyter.widget-view+json": {
570 | "model_id": "a03384dde71d4c5dbf6482792581640f",
571 | "version_major": 2,
572 | "version_minor": 0
573 | },
574 | "text/plain": [
575 | " 0%| | 0/10 [00:00, ?it/s]"
576 | ]
577 | },
578 | "metadata": {},
579 | "output_type": "display_data"
580 | },
581 | {
582 | "data": {
583 | "application/vnd.jupyter.widget-view+json": {
584 | "model_id": "81f949f07ae94971964015711dfde00e",
585 | "version_major": 2,
586 | "version_minor": 0
587 | },
588 | "text/plain": [
589 | " 0%| | 0/452 [00:00, ?it/s]"
590 | ]
591 | },
592 | "metadata": {},
593 | "output_type": "display_data"
594 | },
595 | {
596 | "name": "stdout",
597 | "output_type": "stream",
598 | "text": [
599 | "Epoch 1: algoritm => מְשִׁית\n",
600 | "Epoch 1: kokoro => מְשִׁית\n",
601 | "Epoch 1: יִשְׂרָאֵל => mará\n",
602 | "Epoch 1: דוריטוס => mará\n"
603 | ]
604 | },
605 | {
606 | "name": "stderr",
607 | "output_type": "stream",
608 | "text": [
609 | "/home/morrisalper/miniconda3/envs/notebooks/lib/python3.9/site-packages/transformers/pipelines/base.py:1081: UserWarning: You seem to be using the pipelines sequentially on GPU. In order to maximize efficiency please use a dataset\n",
610 | " warnings.warn(\n"
611 | ]
612 | },
613 | {
614 | "name": "stdout",
615 | "output_type": "stream",
616 | "text": [
617 | "Epoch 1: ajiliti => מְשִׁית\n",
618 | "Epoch 1: פאנץ' => mará\n",
619 | "Epoch 1: etherium => מְשִׁית\n"
620 | ]
621 | },
622 | {
623 | "data": {
624 | "application/vnd.jupyter.widget-view+json": {
625 | "model_id": "c3e218cb846c4b749b67095836b34fbf",
626 | "version_major": 2,
627 | "version_minor": 0
628 | },
629 | "text/plain": [
630 | " 0%| | 0/452 [00:00, ?it/s]"
631 | ]
632 | },
633 | "metadata": {},
634 | "output_type": "display_data"
635 | },
636 | {
637 | "name": "stdout",
638 | "output_type": "stream",
639 | "text": [
640 | "Epoch 2: algoritm => אַלְגּוֹרִיטִיטִיטִיטִיטִיטִיטִיטִים\n",
641 | "Epoch 2: kokoro => כּוֹקוֹרְבּוֹרוֹר\n",
642 | "Epoch 2: יִשְׂרָאֵל => yishishál\n",
643 | "Epoch 2: דוריטוס => dirít\n",
644 | "Epoch 2: ajiliti => אַדִּיטִי\n",
645 | "Epoch 2: פאנץ' => pitsút\n",
646 | "Epoch 2: etherium => אֶתֶרִיוּם\n"
647 | ]
648 | },
649 | {
650 | "data": {
651 | "application/vnd.jupyter.widget-view+json": {
652 | "model_id": "d558291c243f4168ad7f4dad68de245e",
653 | "version_major": 2,
654 | "version_minor": 0
655 | },
656 | "text/plain": [
657 | " 0%| | 0/452 [00:00, ?it/s]"
658 | ]
659 | },
660 | "metadata": {},
661 | "output_type": "display_data"
662 | },
663 | {
664 | "name": "stdout",
665 | "output_type": "stream",
666 | "text": [
667 | "Epoch 3: algoritm => אַלְגּוֹרִיתְם\n",
668 | "Epoch 3: kokoro => כּוֹקוֹרוֹ\n",
669 | "Epoch 3: יִשְׂרָאֵל => yisra'él\n",
670 | "Epoch 3: דוריטוס => doritós\n",
671 | "Epoch 3: ajiliti => עֲגִילִיתִי\n",
672 | "Epoch 3: פאנץ' => pa'ants\n",
673 | "Epoch 3: etherium => אֶתְהֶרִיוּם\n"
674 | ]
675 | },
676 | {
677 | "data": {
678 | "application/vnd.jupyter.widget-view+json": {
679 | "model_id": "cc859b6004ce488795def9f1a65e3aa7",
680 | "version_major": 2,
681 | "version_minor": 0
682 | },
683 | "text/plain": [
684 | " 0%| | 0/452 [00:00, ?it/s]"
685 | ]
686 | },
687 | "metadata": {},
688 | "output_type": "display_data"
689 | },
690 | {
691 | "name": "stdout",
692 | "output_type": "stream",
693 | "text": [
694 | "Epoch 4: algoritm => אַלְגּוֹרִיטְם\n",
695 | "Epoch 4: kokoro => קוֹקוֹרוֹ\n",
696 | "Epoch 4: יִשְׂרָאֵל => yisraél\n",
697 | "Epoch 4: דוריטוס => doritós\n",
698 | "Epoch 4: ajiliti => אֲגִילִיטִיתִי\n",
699 | "Epoch 4: פאנץ' => pa'ants\n",
700 | "Epoch 4: etherium => אֶתְהֵרִיאוּם\n"
701 | ]
702 | },
703 | {
704 | "data": {
705 | "application/vnd.jupyter.widget-view+json": {
706 | "model_id": "2b70c7e1d4ed44ec8c3c3ab52de44fa4",
707 | "version_major": 2,
708 | "version_minor": 0
709 | },
710 | "text/plain": [
711 | " 0%| | 0/452 [00:00, ?it/s]"
712 | ]
713 | },
714 | "metadata": {},
715 | "output_type": "display_data"
716 | },
717 | {
718 | "name": "stdout",
719 | "output_type": "stream",
720 | "text": [
721 | "Epoch 5: algoritm => אַלְגּוֹרִיתְם\n",
722 | "Epoch 5: kokoro => קוֹקוֹרוֹ\n",
723 | "Epoch 5: יִשְׂרָאֵל => yisraél\n",
724 | "Epoch 5: דוריטוס => doritós\n",
725 | "Epoch 5: ajiliti => אֲגִילִיטִי\n",
726 | "Epoch 5: פאנץ' => pánts\n",
727 | "Epoch 5: etherium => אֶתְהֵרִים\n"
728 | ]
729 | },
730 | {
731 | "data": {
732 | "application/vnd.jupyter.widget-view+json": {
733 | "model_id": "accf2387d36d4fdebe5d44853147a51e",
734 | "version_major": 2,
735 | "version_minor": 0
736 | },
737 | "text/plain": [
738 | " 0%| | 0/452 [00:00, ?it/s]"
739 | ]
740 | },
741 | "metadata": {},
742 | "output_type": "display_data"
743 | },
744 | {
745 | "name": "stdout",
746 | "output_type": "stream",
747 | "text": [
748 | "Epoch 6: algoritm => אַלְגּוֹרִיטְם\n",
749 | "Epoch 6: kokoro => קוֹקוֹרוֹ\n",
750 | "Epoch 6: יִשְׂרָאֵל => yisraél\n",
751 | "Epoch 6: דוריטוס => doritós\n",
752 | "Epoch 6: ajiliti => אֲגִ'ילִיטִי\n",
753 | "Epoch 6: פאנץ' => pa'aná\n",
754 | "Epoch 6: etherium => אֶתֶרְיוּם\n"
755 | ]
756 | },
757 | {
758 | "data": {
759 | "application/vnd.jupyter.widget-view+json": {
760 | "model_id": "aa908259da4b475d86087eda4cf85ba9",
761 | "version_major": 2,
762 | "version_minor": 0
763 | },
764 | "text/plain": [
765 | " 0%| | 0/452 [00:00, ?it/s]"
766 | ]
767 | },
768 | "metadata": {},
769 | "output_type": "display_data"
770 | },
771 | {
772 | "name": "stdout",
773 | "output_type": "stream",
774 | "text": [
775 | "Epoch 7: algoritm => אַלְגּוֹרִיטְם\n",
776 | "Epoch 7: kokoro => קוֹקוֹרוֹ\n",
777 | "Epoch 7: יִשְׂרָאֵל => yisraél\n",
778 | "Epoch 7: דוריטוס => dorítos\n",
779 | "Epoch 7: ajiliti => אָגִ'ילִיטִי\n",
780 | "Epoch 7: פאנץ' => pa'anách\n",
781 | "Epoch 7: etherium => אֶתְהֵרְיוּם\n"
782 | ]
783 | },
784 | {
785 | "data": {
786 | "application/vnd.jupyter.widget-view+json": {
787 | "model_id": "7e67eef1b58a4516b2bdd409e013c591",
788 | "version_major": 2,
789 | "version_minor": 0
790 | },
791 | "text/plain": [
792 | " 0%| | 0/452 [00:00, ?it/s]"
793 | ]
794 | },
795 | "metadata": {},
796 | "output_type": "display_data"
797 | },
798 | {
799 | "name": "stdout",
800 | "output_type": "stream",
801 | "text": [
802 | "Epoch 8: algoritm => אַלְגּוֹרִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִ\n",
803 | "Epoch 8: kokoro => קוֹקוֹרוֹ\n",
804 | "Epoch 8: יִשְׂרָאֵל => yisrál\n",
805 | "Epoch 8: דוריטוס => dorítos\n",
806 | "Epoch 8: ajiliti => אֲגִ'ילִיטִי\n",
807 | "Epoch 8: פאנץ' => pántsh\n",
808 | "Epoch 8: etherium => אֶתֶרְיוּם\n"
809 | ]
810 | },
811 | {
812 | "data": {
813 | "application/vnd.jupyter.widget-view+json": {
814 | "model_id": "8defeb59a45c4e5f9961d749f5d07600",
815 | "version_major": 2,
816 | "version_minor": 0
817 | },
818 | "text/plain": [
819 | " 0%| | 0/452 [00:00, ?it/s]"
820 | ]
821 | },
822 | "metadata": {},
823 | "output_type": "display_data"
824 | },
825 | {
826 | "name": "stdout",
827 | "output_type": "stream",
828 | "text": [
829 | "Epoch 9: algoritm => אַלְגּוֹרִיטְם\n",
830 | "Epoch 9: kokoro => קוֹקוֹרוֹ\n",
831 | "Epoch 9: יִשְׂרָאֵל => yisraél\n",
832 | "Epoch 9: דוריטוס => dorítos\n",
833 | "Epoch 9: ajiliti => אָגִ'ילִיטִי\n",
834 | "Epoch 9: פאנץ' => pa'anátsh\n",
835 | "Epoch 9: etherium => אֶתְהֶרְיוּם\n"
836 | ]
837 | },
838 | {
839 | "data": {
840 | "application/vnd.jupyter.widget-view+json": {
841 | "model_id": "1007d70207be4670aa14e8480bcb3044",
842 | "version_major": 2,
843 | "version_minor": 0
844 | },
845 | "text/plain": [
846 | " 0%| | 0/452 [00:00, ?it/s]"
847 | ]
848 | },
849 | "metadata": {},
850 | "output_type": "display_data"
851 | },
852 | {
853 | "name": "stdout",
854 | "output_type": "stream",
855 | "text": [
856 | "Epoch 10: algoritm => אַלְגּוֹרִיטְם\n",
857 | "Epoch 10: kokoro => קוֹקוֹרוֹ\n",
858 | "Epoch 10: יִשְׂרָאֵל => yisraél\n",
859 | "Epoch 10: דוריטוס => dorítos\n",
860 | "Epoch 10: ajiliti => אָגִ'ילִיטִי\n",
861 | "Epoch 10: פאנץ' => pénetsh\n",
862 | "Epoch 10: etherium => אֶתֶרְיוּם\n"
863 | ]
864 | }
865 | ],
866 | "source": [
867 | "optimizer = torch.optim.AdamW(pipe.model.parameters(), lr=lr)\n",
868 | "losses = []\n",
869 | "\n",
870 | "for i in trange(epochs):\n",
871 | " pipe.model.train()\n",
872 | " for B in tqdm(dl):\n",
873 | " optimizer.zero_grad()\n",
874 | " loss = pipe.model(**B).loss\n",
875 | " losses.append(loss.item())\n",
876 | " loss.backward()\n",
877 | " optimizer.step()\n",
878 | " evaluate(i + 1)"
879 | ]
880 | },
881 | {
882 | "cell_type": "markdown",
883 | "metadata": {
884 | "id": "TAx6ObRNLQdb"
885 | },
886 | "source": [
887 | "# Final steps"
888 | ]
889 | },
890 | {
891 | "cell_type": "markdown",
892 | "metadata": {
893 | "id": "WW7Cm0GLKJjz"
894 | },
895 | "source": [
896 | "Check out the model's (train) loss curve, and compare it to the outputs. We suspect the model first masters the prior distributions on Hebrew words and transliterations, and only later manages to understand the connection between the two:"
897 | ]
898 | },
899 | {
900 | "cell_type": "code",
901 | "execution_count": 12,
902 | "metadata": {
903 | "colab": {
904 | "base_uri": "https://localhost:8080/",
905 | "height": 447
906 | },
907 | "id": "igIHz6hmAI5h",
908 | "outputId": "d82f8400-f0e6-4171-cb1f-299966c565bc"
909 | },
910 | "outputs": [
911 | {
912 | "data": {
913 | "text/plain": [
914 | ""
915 | ]
916 | },
917 | "execution_count": 12,
918 | "metadata": {},
919 | "output_type": "execute_result"
920 | },
921 | {
922 | "data": {
923 | "image/png": "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",
924 | "text/plain": [
925 | ""
926 | ]
927 | },
928 | "metadata": {},
929 | "output_type": "display_data"
930 | }
931 | ],
932 | "source": [
933 | "pd.Series(losses).plot(logy=True)"
934 | ]
935 | },
936 | {
937 | "cell_type": "markdown",
938 | "metadata": {
939 | "id": "F5cVCWR0KkGW"
940 | },
941 | "source": [
942 | "Finally, let's save our work 😊"
943 | ]
944 | },
945 | {
946 | "cell_type": "code",
947 | "execution_count": 13,
948 | "metadata": {
949 | "id": "f4dOspZaAI5h"
950 | },
951 | "outputs": [],
952 | "source": [
953 | "pipe.save_pretrained('taatiknet')"
954 | ]
955 | },
956 | {
957 | "cell_type": "markdown",
958 | "metadata": {
959 | "id": "Dr1HpvU7Kuqx"
960 | },
961 | "source": [
962 | "See the instructions in the README for inference. You may also play with a deployed version of TaatikNet at the [interactive demo](https://huggingface.co/spaces/malper/taatiknet) hosted by Hugging Face Spaces."
963 | ]
964 | },
965 | {
966 | "cell_type": "markdown",
967 | "metadata": {
968 | "id": "wWR4zYMoL1v7"
969 | },
970 | "source": [
971 | "If you went through this demo then congrats! You've trained a seq2seq model to solve a complex problem with a minimal amount of code. This demo could be easily adapted to training on datasets for most text-to-text generation problems by replacing ByT5 with any appropriate [encoder-decoder model](https://huggingface.co/docs/transformers/model_doc/encoder-decoder).\n",
972 | "\n",
973 | "Feel free to reach out to [Morris Alper](https://morrisalp.github.io/) with any questions, comments or suggestions on this demo."
974 | ]
975 | }
976 | ],
977 | "metadata": {
978 | "accelerator": "GPU",
979 | "colab": {
980 | "gpuType": "T4",
981 | "provenance": []
982 | },
983 | "kernelspec": {
984 | "display_name": "Python 3 (ipykernel)",
985 | "language": "python",
986 | "name": "python3"
987 | },
988 | "language_info": {
989 | "codemirror_mode": {
990 | "name": "ipython",
991 | "version": 3
992 | },
993 | "file_extension": ".py",
994 | "mimetype": "text/x-python",
995 | "name": "python",
996 | "nbconvert_exporter": "python",
997 | "pygments_lexer": "ipython3",
998 | "version": "3.9.16"
999 | },
1000 | "widgets": {
1001 | "application/vnd.jupyter.widget-state+json": {
1002 | "049fc17787cf4ea0b1d759ab23590ef0": {
1003 | "model_module": "@jupyter-widgets/controls",
1004 | "model_module_version": "1.5.0",
1005 | "model_name": "DescriptionStyleModel",
1006 | "state": {
1007 | "_model_module": "@jupyter-widgets/controls",
1008 | "_model_module_version": "1.5.0",
1009 | "_model_name": "DescriptionStyleModel",
1010 | "_view_count": null,
1011 | "_view_module": "@jupyter-widgets/base",
1012 | "_view_module_version": "1.2.0",
1013 | "_view_name": "StyleView",
1014 | "description_width": ""
1015 | }
1016 | },
1017 | "061b5bd45b674fc288a4434a569f88be": {
1018 | "model_module": "@jupyter-widgets/controls",
1019 | "model_module_version": "1.5.0",
1020 | "model_name": "FloatProgressModel",
1021 | "state": {
1022 | "_dom_classes": [],
1023 | "_model_module": "@jupyter-widgets/controls",
1024 | "_model_module_version": "1.5.0",
1025 | "_model_name": "FloatProgressModel",
1026 | "_view_count": null,
1027 | "_view_module": "@jupyter-widgets/controls",
1028 | "_view_module_version": "1.5.0",
1029 | "_view_name": "ProgressView",
1030 | "bar_style": "success",
1031 | "description": "",
1032 | "description_tooltip": null,
1033 | "layout": "IPY_MODEL_747d57495d054128baaafde4ca6b5eb5",
1034 | "max": 452,
1035 | "min": 0,
1036 | "orientation": "horizontal",
1037 | "style": "IPY_MODEL_d9ed4c01ef164b209a2067ac6c80388e",
1038 | "value": 452
1039 | }
1040 | },
1041 | "12daa8b222de472dbe67b2d856276ffa": {
1042 | "model_module": "@jupyter-widgets/base",
1043 | "model_module_version": "1.2.0",
1044 | "model_name": "LayoutModel",
1045 | "state": {
1046 | "_model_module": "@jupyter-widgets/base",
1047 | "_model_module_version": "1.2.0",
1048 | "_model_name": "LayoutModel",
1049 | "_view_count": null,
1050 | "_view_module": "@jupyter-widgets/base",
1051 | "_view_module_version": "1.2.0",
1052 | "_view_name": "LayoutView",
1053 | "align_content": null,
1054 | "align_items": null,
1055 | "align_self": null,
1056 | "border": null,
1057 | "bottom": null,
1058 | "display": null,
1059 | "flex": null,
1060 | "flex_flow": null,
1061 | "grid_area": null,
1062 | "grid_auto_columns": null,
1063 | "grid_auto_flow": null,
1064 | "grid_auto_rows": null,
1065 | "grid_column": null,
1066 | "grid_gap": null,
1067 | "grid_row": null,
1068 | "grid_template_areas": null,
1069 | "grid_template_columns": null,
1070 | "grid_template_rows": null,
1071 | "height": null,
1072 | "justify_content": null,
1073 | "justify_items": null,
1074 | "left": null,
1075 | "margin": null,
1076 | "max_height": null,
1077 | "max_width": null,
1078 | "min_height": null,
1079 | "min_width": null,
1080 | "object_fit": null,
1081 | "object_position": null,
1082 | "order": null,
1083 | "overflow": null,
1084 | "overflow_x": null,
1085 | "overflow_y": null,
1086 | "padding": null,
1087 | "right": null,
1088 | "top": null,
1089 | "visibility": null,
1090 | "width": null
1091 | }
1092 | },
1093 | "16d8b74cb1974162ad75445b1dd8b6ed": {
1094 | "model_module": "@jupyter-widgets/controls",
1095 | "model_module_version": "1.5.0",
1096 | "model_name": "FloatProgressModel",
1097 | "state": {
1098 | "_dom_classes": [],
1099 | "_model_module": "@jupyter-widgets/controls",
1100 | "_model_module_version": "1.5.0",
1101 | "_model_name": "FloatProgressModel",
1102 | "_view_count": null,
1103 | "_view_module": "@jupyter-widgets/controls",
1104 | "_view_module_version": "1.5.0",
1105 | "_view_name": "ProgressView",
1106 | "bar_style": "success",
1107 | "description": "",
1108 | "description_tooltip": null,
1109 | "layout": "IPY_MODEL_81b02dcc1f704cd8b9a2759237e20bdc",
1110 | "max": 452,
1111 | "min": 0,
1112 | "orientation": "horizontal",
1113 | "style": "IPY_MODEL_379fd32ab1d84774a4de613a8eec825c",
1114 | "value": 452
1115 | }
1116 | },
1117 | "1de8149168814805804464a51718cfb8": {
1118 | "model_module": "@jupyter-widgets/controls",
1119 | "model_module_version": "1.5.0",
1120 | "model_name": "HTMLModel",
1121 | "state": {
1122 | "_dom_classes": [],
1123 | "_model_module": "@jupyter-widgets/controls",
1124 | "_model_module_version": "1.5.0",
1125 | "_model_name": "HTMLModel",
1126 | "_view_count": null,
1127 | "_view_module": "@jupyter-widgets/controls",
1128 | "_view_module_version": "1.5.0",
1129 | "_view_name": "HTMLView",
1130 | "description": "",
1131 | "description_tooltip": null,
1132 | "layout": "IPY_MODEL_a28ba3cfaa4d4700ba951ba84fa180e6",
1133 | "placeholder": "",
1134 | "style": "IPY_MODEL_049fc17787cf4ea0b1d759ab23590ef0",
1135 | "value": "100%"
1136 | }
1137 | },
1138 | "20d4ef575aff48d78eab225843fb2446": {
1139 | "model_module": "@jupyter-widgets/controls",
1140 | "model_module_version": "1.5.0",
1141 | "model_name": "HBoxModel",
1142 | "state": {
1143 | "_dom_classes": [],
1144 | "_model_module": "@jupyter-widgets/controls",
1145 | "_model_module_version": "1.5.0",
1146 | "_model_name": "HBoxModel",
1147 | "_view_count": null,
1148 | "_view_module": "@jupyter-widgets/controls",
1149 | "_view_module_version": "1.5.0",
1150 | "_view_name": "HBoxView",
1151 | "box_style": "",
1152 | "children": [
1153 | "IPY_MODEL_cf27cc3bafdd4482b441fc6e34366696",
1154 | "IPY_MODEL_862e43822549455fafbc742d8965c874",
1155 | "IPY_MODEL_2a4dca819f3c44d39908c932c02aff0c"
1156 | ],
1157 | "layout": "IPY_MODEL_3d904c7a47c54174b6a45bcde4cad42f"
1158 | }
1159 | },
1160 | "2935e363a6f14ed08e209511245f0c6c": {
1161 | "model_module": "@jupyter-widgets/controls",
1162 | "model_module_version": "1.5.0",
1163 | "model_name": "HTMLModel",
1164 | "state": {
1165 | "_dom_classes": [],
1166 | "_model_module": "@jupyter-widgets/controls",
1167 | "_model_module_version": "1.5.0",
1168 | "_model_name": "HTMLModel",
1169 | "_view_count": null,
1170 | "_view_module": "@jupyter-widgets/controls",
1171 | "_view_module_version": "1.5.0",
1172 | "_view_name": "HTMLView",
1173 | "description": "",
1174 | "description_tooltip": null,
1175 | "layout": "IPY_MODEL_6f522324e2b04e7daed5e54582529b37",
1176 | "placeholder": "",
1177 | "style": "IPY_MODEL_8e8f66894fee4137914df1175ee9c75e",
1178 | "value": " 452/452 [05:03<00:00, 1.62it/s]"
1179 | }
1180 | },
1181 | "2965455bf5d648f59f449eb318dc0d9b": {
1182 | "model_module": "@jupyter-widgets/controls",
1183 | "model_module_version": "1.5.0",
1184 | "model_name": "ProgressStyleModel",
1185 | "state": {
1186 | "_model_module": "@jupyter-widgets/controls",
1187 | "_model_module_version": "1.5.0",
1188 | "_model_name": "ProgressStyleModel",
1189 | "_view_count": null,
1190 | "_view_module": "@jupyter-widgets/base",
1191 | "_view_module_version": "1.2.0",
1192 | "_view_name": "StyleView",
1193 | "bar_color": null,
1194 | "description_width": ""
1195 | }
1196 | },
1197 | "2a4dca819f3c44d39908c932c02aff0c": {
1198 | "model_module": "@jupyter-widgets/controls",
1199 | "model_module_version": "1.5.0",
1200 | "model_name": "HTMLModel",
1201 | "state": {
1202 | "_dom_classes": [],
1203 | "_model_module": "@jupyter-widgets/controls",
1204 | "_model_module_version": "1.5.0",
1205 | "_model_name": "HTMLModel",
1206 | "_view_count": null,
1207 | "_view_module": "@jupyter-widgets/controls",
1208 | "_view_module_version": "1.5.0",
1209 | "_view_name": "HTMLView",
1210 | "description": "",
1211 | "description_tooltip": null,
1212 | "layout": "IPY_MODEL_fe6b3020d51240538ad6f9b00067e889",
1213 | "placeholder": "",
1214 | "style": "IPY_MODEL_ac0a36ff698c46de9235e608a276b2a4",
1215 | "value": " 452/452 [05:02<00:00, 1.67it/s]"
1216 | }
1217 | },
1218 | "2e96af9233014d379f9f55e689deeb34": {
1219 | "model_module": "@jupyter-widgets/controls",
1220 | "model_module_version": "1.5.0",
1221 | "model_name": "ProgressStyleModel",
1222 | "state": {
1223 | "_model_module": "@jupyter-widgets/controls",
1224 | "_model_module_version": "1.5.0",
1225 | "_model_name": "ProgressStyleModel",
1226 | "_view_count": null,
1227 | "_view_module": "@jupyter-widgets/base",
1228 | "_view_module_version": "1.2.0",
1229 | "_view_name": "StyleView",
1230 | "bar_color": null,
1231 | "description_width": ""
1232 | }
1233 | },
1234 | "34bce401f2fc431fbbf1072bca3ed979": {
1235 | "model_module": "@jupyter-widgets/base",
1236 | "model_module_version": "1.2.0",
1237 | "model_name": "LayoutModel",
1238 | "state": {
1239 | "_model_module": "@jupyter-widgets/base",
1240 | "_model_module_version": "1.2.0",
1241 | "_model_name": "LayoutModel",
1242 | "_view_count": null,
1243 | "_view_module": "@jupyter-widgets/base",
1244 | "_view_module_version": "1.2.0",
1245 | "_view_name": "LayoutView",
1246 | "align_content": null,
1247 | "align_items": null,
1248 | "align_self": null,
1249 | "border": null,
1250 | "bottom": null,
1251 | "display": null,
1252 | "flex": null,
1253 | "flex_flow": null,
1254 | "grid_area": null,
1255 | "grid_auto_columns": null,
1256 | "grid_auto_flow": null,
1257 | "grid_auto_rows": null,
1258 | "grid_column": null,
1259 | "grid_gap": null,
1260 | "grid_row": null,
1261 | "grid_template_areas": null,
1262 | "grid_template_columns": null,
1263 | "grid_template_rows": null,
1264 | "height": null,
1265 | "justify_content": null,
1266 | "justify_items": null,
1267 | "left": null,
1268 | "margin": null,
1269 | "max_height": null,
1270 | "max_width": null,
1271 | "min_height": null,
1272 | "min_width": null,
1273 | "object_fit": null,
1274 | "object_position": null,
1275 | "order": null,
1276 | "overflow": null,
1277 | "overflow_x": null,
1278 | "overflow_y": null,
1279 | "padding": null,
1280 | "right": null,
1281 | "top": null,
1282 | "visibility": null,
1283 | "width": null
1284 | }
1285 | },
1286 | "37443314c73549b6a75e81c4abcdf074": {
1287 | "model_module": "@jupyter-widgets/controls",
1288 | "model_module_version": "1.5.0",
1289 | "model_name": "HBoxModel",
1290 | "state": {
1291 | "_dom_classes": [],
1292 | "_model_module": "@jupyter-widgets/controls",
1293 | "_model_module_version": "1.5.0",
1294 | "_model_name": "HBoxModel",
1295 | "_view_count": null,
1296 | "_view_module": "@jupyter-widgets/controls",
1297 | "_view_module_version": "1.5.0",
1298 | "_view_name": "HBoxView",
1299 | "box_style": "",
1300 | "children": [
1301 | "IPY_MODEL_abef4362cc7f4fb3bf43ae84a40c5f11",
1302 | "IPY_MODEL_bda7ecb79e4443f9a7dd6b6737ce5563",
1303 | "IPY_MODEL_d572868d2e6b4394adf615b988618cb4"
1304 | ],
1305 | "layout": "IPY_MODEL_502a104182c443508636b0426add3960"
1306 | }
1307 | },
1308 | "379fd32ab1d84774a4de613a8eec825c": {
1309 | "model_module": "@jupyter-widgets/controls",
1310 | "model_module_version": "1.5.0",
1311 | "model_name": "ProgressStyleModel",
1312 | "state": {
1313 | "_model_module": "@jupyter-widgets/controls",
1314 | "_model_module_version": "1.5.0",
1315 | "_model_name": "ProgressStyleModel",
1316 | "_view_count": null,
1317 | "_view_module": "@jupyter-widgets/base",
1318 | "_view_module_version": "1.2.0",
1319 | "_view_name": "StyleView",
1320 | "bar_color": null,
1321 | "description_width": ""
1322 | }
1323 | },
1324 | "3d904c7a47c54174b6a45bcde4cad42f": {
1325 | "model_module": "@jupyter-widgets/base",
1326 | "model_module_version": "1.2.0",
1327 | "model_name": "LayoutModel",
1328 | "state": {
1329 | "_model_module": "@jupyter-widgets/base",
1330 | "_model_module_version": "1.2.0",
1331 | "_model_name": "LayoutModel",
1332 | "_view_count": null,
1333 | "_view_module": "@jupyter-widgets/base",
1334 | "_view_module_version": "1.2.0",
1335 | "_view_name": "LayoutView",
1336 | "align_content": null,
1337 | "align_items": null,
1338 | "align_self": null,
1339 | "border": null,
1340 | "bottom": null,
1341 | "display": null,
1342 | "flex": null,
1343 | "flex_flow": null,
1344 | "grid_area": null,
1345 | "grid_auto_columns": null,
1346 | "grid_auto_flow": null,
1347 | "grid_auto_rows": null,
1348 | "grid_column": null,
1349 | "grid_gap": null,
1350 | "grid_row": null,
1351 | "grid_template_areas": null,
1352 | "grid_template_columns": null,
1353 | "grid_template_rows": null,
1354 | "height": null,
1355 | "justify_content": null,
1356 | "justify_items": null,
1357 | "left": null,
1358 | "margin": null,
1359 | "max_height": null,
1360 | "max_width": null,
1361 | "min_height": null,
1362 | "min_width": null,
1363 | "object_fit": null,
1364 | "object_position": null,
1365 | "order": null,
1366 | "overflow": null,
1367 | "overflow_x": null,
1368 | "overflow_y": null,
1369 | "padding": null,
1370 | "right": null,
1371 | "top": null,
1372 | "visibility": null,
1373 | "width": null
1374 | }
1375 | },
1376 | "3e2002a84eb04ed5bc55321eb5e55fa5": {
1377 | "model_module": "@jupyter-widgets/controls",
1378 | "model_module_version": "1.5.0",
1379 | "model_name": "FloatProgressModel",
1380 | "state": {
1381 | "_dom_classes": [],
1382 | "_model_module": "@jupyter-widgets/controls",
1383 | "_model_module_version": "1.5.0",
1384 | "_model_name": "FloatProgressModel",
1385 | "_view_count": null,
1386 | "_view_module": "@jupyter-widgets/controls",
1387 | "_view_module_version": "1.5.0",
1388 | "_view_name": "ProgressView",
1389 | "bar_style": "success",
1390 | "description": "",
1391 | "description_tooltip": null,
1392 | "layout": "IPY_MODEL_c526abb4137248aaaf3c6f4e0bb3613f",
1393 | "max": 6,
1394 | "min": 0,
1395 | "orientation": "horizontal",
1396 | "style": "IPY_MODEL_2965455bf5d648f59f449eb318dc0d9b",
1397 | "value": 6
1398 | }
1399 | },
1400 | "43d29fba0ede436b8dd6042cc27ac74f": {
1401 | "model_module": "@jupyter-widgets/controls",
1402 | "model_module_version": "1.5.0",
1403 | "model_name": "FloatProgressModel",
1404 | "state": {
1405 | "_dom_classes": [],
1406 | "_model_module": "@jupyter-widgets/controls",
1407 | "_model_module_version": "1.5.0",
1408 | "_model_name": "FloatProgressModel",
1409 | "_view_count": null,
1410 | "_view_module": "@jupyter-widgets/controls",
1411 | "_view_module_version": "1.5.0",
1412 | "_view_name": "ProgressView",
1413 | "bar_style": "success",
1414 | "description": "",
1415 | "description_tooltip": null,
1416 | "layout": "IPY_MODEL_4bf6e5f2eebd4e20939d67cbf444e850",
1417 | "max": 452,
1418 | "min": 0,
1419 | "orientation": "horizontal",
1420 | "style": "IPY_MODEL_51c92b9743964a4082b470d716dee956",
1421 | "value": 452
1422 | }
1423 | },
1424 | "4572bf0fa8c54991aa7b165806e6ae65": {
1425 | "model_module": "@jupyter-widgets/controls",
1426 | "model_module_version": "1.5.0",
1427 | "model_name": "HTMLModel",
1428 | "state": {
1429 | "_dom_classes": [],
1430 | "_model_module": "@jupyter-widgets/controls",
1431 | "_model_module_version": "1.5.0",
1432 | "_model_name": "HTMLModel",
1433 | "_view_count": null,
1434 | "_view_module": "@jupyter-widgets/controls",
1435 | "_view_module_version": "1.5.0",
1436 | "_view_name": "HTMLView",
1437 | "description": "",
1438 | "description_tooltip": null,
1439 | "layout": "IPY_MODEL_d1a57fe92fd543f1b4c72e33f4340fb3",
1440 | "placeholder": "",
1441 | "style": "IPY_MODEL_94d5eb5f48ca45558c49c50cd63d1b49",
1442 | "value": " 452/452 [05:02<00:00, 1.78it/s]"
1443 | }
1444 | },
1445 | "473cdf8f4b384aa699a6ad078ad0a336": {
1446 | "model_module": "@jupyter-widgets/controls",
1447 | "model_module_version": "1.5.0",
1448 | "model_name": "FloatProgressModel",
1449 | "state": {
1450 | "_dom_classes": [],
1451 | "_model_module": "@jupyter-widgets/controls",
1452 | "_model_module_version": "1.5.0",
1453 | "_model_name": "FloatProgressModel",
1454 | "_view_count": null,
1455 | "_view_module": "@jupyter-widgets/controls",
1456 | "_view_module_version": "1.5.0",
1457 | "_view_name": "ProgressView",
1458 | "bar_style": "success",
1459 | "description": "",
1460 | "description_tooltip": null,
1461 | "layout": "IPY_MODEL_68cf6407acf74686b0e0ef472c51ad82",
1462 | "max": 452,
1463 | "min": 0,
1464 | "orientation": "horizontal",
1465 | "style": "IPY_MODEL_2e96af9233014d379f9f55e689deeb34",
1466 | "value": 452
1467 | }
1468 | },
1469 | "4a93d608feb24a4a9a886c4663d4ad80": {
1470 | "model_module": "@jupyter-widgets/base",
1471 | "model_module_version": "1.2.0",
1472 | "model_name": "LayoutModel",
1473 | "state": {
1474 | "_model_module": "@jupyter-widgets/base",
1475 | "_model_module_version": "1.2.0",
1476 | "_model_name": "LayoutModel",
1477 | "_view_count": null,
1478 | "_view_module": "@jupyter-widgets/base",
1479 | "_view_module_version": "1.2.0",
1480 | "_view_name": "LayoutView",
1481 | "align_content": null,
1482 | "align_items": null,
1483 | "align_self": null,
1484 | "border": null,
1485 | "bottom": null,
1486 | "display": null,
1487 | "flex": null,
1488 | "flex_flow": null,
1489 | "grid_area": null,
1490 | "grid_auto_columns": null,
1491 | "grid_auto_flow": null,
1492 | "grid_auto_rows": null,
1493 | "grid_column": null,
1494 | "grid_gap": null,
1495 | "grid_row": null,
1496 | "grid_template_areas": null,
1497 | "grid_template_columns": null,
1498 | "grid_template_rows": null,
1499 | "height": null,
1500 | "justify_content": null,
1501 | "justify_items": null,
1502 | "left": null,
1503 | "margin": null,
1504 | "max_height": null,
1505 | "max_width": null,
1506 | "min_height": null,
1507 | "min_width": null,
1508 | "object_fit": null,
1509 | "object_position": null,
1510 | "order": null,
1511 | "overflow": null,
1512 | "overflow_x": null,
1513 | "overflow_y": null,
1514 | "padding": null,
1515 | "right": null,
1516 | "top": null,
1517 | "visibility": null,
1518 | "width": null
1519 | }
1520 | },
1521 | "4bf6e5f2eebd4e20939d67cbf444e850": {
1522 | "model_module": "@jupyter-widgets/base",
1523 | "model_module_version": "1.2.0",
1524 | "model_name": "LayoutModel",
1525 | "state": {
1526 | "_model_module": "@jupyter-widgets/base",
1527 | "_model_module_version": "1.2.0",
1528 | "_model_name": "LayoutModel",
1529 | "_view_count": null,
1530 | "_view_module": "@jupyter-widgets/base",
1531 | "_view_module_version": "1.2.0",
1532 | "_view_name": "LayoutView",
1533 | "align_content": null,
1534 | "align_items": null,
1535 | "align_self": null,
1536 | "border": null,
1537 | "bottom": null,
1538 | "display": null,
1539 | "flex": null,
1540 | "flex_flow": null,
1541 | "grid_area": null,
1542 | "grid_auto_columns": null,
1543 | "grid_auto_flow": null,
1544 | "grid_auto_rows": null,
1545 | "grid_column": null,
1546 | "grid_gap": null,
1547 | "grid_row": null,
1548 | "grid_template_areas": null,
1549 | "grid_template_columns": null,
1550 | "grid_template_rows": null,
1551 | "height": null,
1552 | "justify_content": null,
1553 | "justify_items": null,
1554 | "left": null,
1555 | "margin": null,
1556 | "max_height": null,
1557 | "max_width": null,
1558 | "min_height": null,
1559 | "min_width": null,
1560 | "object_fit": null,
1561 | "object_position": null,
1562 | "order": null,
1563 | "overflow": null,
1564 | "overflow_x": null,
1565 | "overflow_y": null,
1566 | "padding": null,
1567 | "right": null,
1568 | "top": null,
1569 | "visibility": null,
1570 | "width": null
1571 | }
1572 | },
1573 | "502a104182c443508636b0426add3960": {
1574 | "model_module": "@jupyter-widgets/base",
1575 | "model_module_version": "1.2.0",
1576 | "model_name": "LayoutModel",
1577 | "state": {
1578 | "_model_module": "@jupyter-widgets/base",
1579 | "_model_module_version": "1.2.0",
1580 | "_model_name": "LayoutModel",
1581 | "_view_count": null,
1582 | "_view_module": "@jupyter-widgets/base",
1583 | "_view_module_version": "1.2.0",
1584 | "_view_name": "LayoutView",
1585 | "align_content": null,
1586 | "align_items": null,
1587 | "align_self": null,
1588 | "border": null,
1589 | "bottom": null,
1590 | "display": null,
1591 | "flex": null,
1592 | "flex_flow": null,
1593 | "grid_area": null,
1594 | "grid_auto_columns": null,
1595 | "grid_auto_flow": null,
1596 | "grid_auto_rows": null,
1597 | "grid_column": null,
1598 | "grid_gap": null,
1599 | "grid_row": null,
1600 | "grid_template_areas": null,
1601 | "grid_template_columns": null,
1602 | "grid_template_rows": null,
1603 | "height": null,
1604 | "justify_content": null,
1605 | "justify_items": null,
1606 | "left": null,
1607 | "margin": null,
1608 | "max_height": null,
1609 | "max_width": null,
1610 | "min_height": null,
1611 | "min_width": null,
1612 | "object_fit": null,
1613 | "object_position": null,
1614 | "order": null,
1615 | "overflow": null,
1616 | "overflow_x": null,
1617 | "overflow_y": null,
1618 | "padding": null,
1619 | "right": null,
1620 | "top": null,
1621 | "visibility": null,
1622 | "width": null
1623 | }
1624 | },
1625 | "51c92b9743964a4082b470d716dee956": {
1626 | "model_module": "@jupyter-widgets/controls",
1627 | "model_module_version": "1.5.0",
1628 | "model_name": "ProgressStyleModel",
1629 | "state": {
1630 | "_model_module": "@jupyter-widgets/controls",
1631 | "_model_module_version": "1.5.0",
1632 | "_model_name": "ProgressStyleModel",
1633 | "_view_count": null,
1634 | "_view_module": "@jupyter-widgets/base",
1635 | "_view_module_version": "1.2.0",
1636 | "_view_name": "StyleView",
1637 | "bar_color": null,
1638 | "description_width": ""
1639 | }
1640 | },
1641 | "58ba589bb71047ccaca888f8b8f07223": {
1642 | "model_module": "@jupyter-widgets/base",
1643 | "model_module_version": "1.2.0",
1644 | "model_name": "LayoutModel",
1645 | "state": {
1646 | "_model_module": "@jupyter-widgets/base",
1647 | "_model_module_version": "1.2.0",
1648 | "_model_name": "LayoutModel",
1649 | "_view_count": null,
1650 | "_view_module": "@jupyter-widgets/base",
1651 | "_view_module_version": "1.2.0",
1652 | "_view_name": "LayoutView",
1653 | "align_content": null,
1654 | "align_items": null,
1655 | "align_self": null,
1656 | "border": null,
1657 | "bottom": null,
1658 | "display": null,
1659 | "flex": null,
1660 | "flex_flow": null,
1661 | "grid_area": null,
1662 | "grid_auto_columns": null,
1663 | "grid_auto_flow": null,
1664 | "grid_auto_rows": null,
1665 | "grid_column": null,
1666 | "grid_gap": null,
1667 | "grid_row": null,
1668 | "grid_template_areas": null,
1669 | "grid_template_columns": null,
1670 | "grid_template_rows": null,
1671 | "height": null,
1672 | "justify_content": null,
1673 | "justify_items": null,
1674 | "left": null,
1675 | "margin": null,
1676 | "max_height": null,
1677 | "max_width": null,
1678 | "min_height": null,
1679 | "min_width": null,
1680 | "object_fit": null,
1681 | "object_position": null,
1682 | "order": null,
1683 | "overflow": null,
1684 | "overflow_x": null,
1685 | "overflow_y": null,
1686 | "padding": null,
1687 | "right": null,
1688 | "top": null,
1689 | "visibility": null,
1690 | "width": null
1691 | }
1692 | },
1693 | "5a0e7a0814294e9392efdbad9852985c": {
1694 | "model_module": "@jupyter-widgets/controls",
1695 | "model_module_version": "1.5.0",
1696 | "model_name": "HBoxModel",
1697 | "state": {
1698 | "_dom_classes": [],
1699 | "_model_module": "@jupyter-widgets/controls",
1700 | "_model_module_version": "1.5.0",
1701 | "_model_name": "HBoxModel",
1702 | "_view_count": null,
1703 | "_view_module": "@jupyter-widgets/controls",
1704 | "_view_module_version": "1.5.0",
1705 | "_view_name": "HBoxView",
1706 | "box_style": "",
1707 | "children": [
1708 | "IPY_MODEL_8feaad6215514f34a8381821901224fa",
1709 | "IPY_MODEL_061b5bd45b674fc288a4434a569f88be",
1710 | "IPY_MODEL_626536db482849fc967f8ccdf49af04d"
1711 | ],
1712 | "layout": "IPY_MODEL_c9a58f27b2f14ad18458a6f02b14a847"
1713 | }
1714 | },
1715 | "626536db482849fc967f8ccdf49af04d": {
1716 | "model_module": "@jupyter-widgets/controls",
1717 | "model_module_version": "1.5.0",
1718 | "model_name": "HTMLModel",
1719 | "state": {
1720 | "_dom_classes": [],
1721 | "_model_module": "@jupyter-widgets/controls",
1722 | "_model_module_version": "1.5.0",
1723 | "_model_name": "HTMLModel",
1724 | "_view_count": null,
1725 | "_view_module": "@jupyter-widgets/controls",
1726 | "_view_module_version": "1.5.0",
1727 | "_view_name": "HTMLView",
1728 | "description": "",
1729 | "description_tooltip": null,
1730 | "layout": "IPY_MODEL_34bce401f2fc431fbbf1072bca3ed979",
1731 | "placeholder": "",
1732 | "style": "IPY_MODEL_c741db7d0550439f979759f588bcd7c7",
1733 | "value": " 452/452 [05:01<00:00, 1.80it/s]"
1734 | }
1735 | },
1736 | "68cf6407acf74686b0e0ef472c51ad82": {
1737 | "model_module": "@jupyter-widgets/base",
1738 | "model_module_version": "1.2.0",
1739 | "model_name": "LayoutModel",
1740 | "state": {
1741 | "_model_module": "@jupyter-widgets/base",
1742 | "_model_module_version": "1.2.0",
1743 | "_model_name": "LayoutModel",
1744 | "_view_count": null,
1745 | "_view_module": "@jupyter-widgets/base",
1746 | "_view_module_version": "1.2.0",
1747 | "_view_name": "LayoutView",
1748 | "align_content": null,
1749 | "align_items": null,
1750 | "align_self": null,
1751 | "border": null,
1752 | "bottom": null,
1753 | "display": null,
1754 | "flex": null,
1755 | "flex_flow": null,
1756 | "grid_area": null,
1757 | "grid_auto_columns": null,
1758 | "grid_auto_flow": null,
1759 | "grid_auto_rows": null,
1760 | "grid_column": null,
1761 | "grid_gap": null,
1762 | "grid_row": null,
1763 | "grid_template_areas": null,
1764 | "grid_template_columns": null,
1765 | "grid_template_rows": null,
1766 | "height": null,
1767 | "justify_content": null,
1768 | "justify_items": null,
1769 | "left": null,
1770 | "margin": null,
1771 | "max_height": null,
1772 | "max_width": null,
1773 | "min_height": null,
1774 | "min_width": null,
1775 | "object_fit": null,
1776 | "object_position": null,
1777 | "order": null,
1778 | "overflow": null,
1779 | "overflow_x": null,
1780 | "overflow_y": null,
1781 | "padding": null,
1782 | "right": null,
1783 | "top": null,
1784 | "visibility": null,
1785 | "width": null
1786 | }
1787 | },
1788 | "6f522324e2b04e7daed5e54582529b37": {
1789 | "model_module": "@jupyter-widgets/base",
1790 | "model_module_version": "1.2.0",
1791 | "model_name": "LayoutModel",
1792 | "state": {
1793 | "_model_module": "@jupyter-widgets/base",
1794 | "_model_module_version": "1.2.0",
1795 | "_model_name": "LayoutModel",
1796 | "_view_count": null,
1797 | "_view_module": "@jupyter-widgets/base",
1798 | "_view_module_version": "1.2.0",
1799 | "_view_name": "LayoutView",
1800 | "align_content": null,
1801 | "align_items": null,
1802 | "align_self": null,
1803 | "border": null,
1804 | "bottom": null,
1805 | "display": null,
1806 | "flex": null,
1807 | "flex_flow": null,
1808 | "grid_area": null,
1809 | "grid_auto_columns": null,
1810 | "grid_auto_flow": null,
1811 | "grid_auto_rows": null,
1812 | "grid_column": null,
1813 | "grid_gap": null,
1814 | "grid_row": null,
1815 | "grid_template_areas": null,
1816 | "grid_template_columns": null,
1817 | "grid_template_rows": null,
1818 | "height": null,
1819 | "justify_content": null,
1820 | "justify_items": null,
1821 | "left": null,
1822 | "margin": null,
1823 | "max_height": null,
1824 | "max_width": null,
1825 | "min_height": null,
1826 | "min_width": null,
1827 | "object_fit": null,
1828 | "object_position": null,
1829 | "order": null,
1830 | "overflow": null,
1831 | "overflow_x": null,
1832 | "overflow_y": null,
1833 | "padding": null,
1834 | "right": null,
1835 | "top": null,
1836 | "visibility": null,
1837 | "width": null
1838 | }
1839 | },
1840 | "7036fc0fe6624106b4a11bdf5abd2b1c": {
1841 | "model_module": "@jupyter-widgets/controls",
1842 | "model_module_version": "1.5.0",
1843 | "model_name": "DescriptionStyleModel",
1844 | "state": {
1845 | "_model_module": "@jupyter-widgets/controls",
1846 | "_model_module_version": "1.5.0",
1847 | "_model_name": "DescriptionStyleModel",
1848 | "_view_count": null,
1849 | "_view_module": "@jupyter-widgets/base",
1850 | "_view_module_version": "1.2.0",
1851 | "_view_name": "StyleView",
1852 | "description_width": ""
1853 | }
1854 | },
1855 | "747d57495d054128baaafde4ca6b5eb5": {
1856 | "model_module": "@jupyter-widgets/base",
1857 | "model_module_version": "1.2.0",
1858 | "model_name": "LayoutModel",
1859 | "state": {
1860 | "_model_module": "@jupyter-widgets/base",
1861 | "_model_module_version": "1.2.0",
1862 | "_model_name": "LayoutModel",
1863 | "_view_count": null,
1864 | "_view_module": "@jupyter-widgets/base",
1865 | "_view_module_version": "1.2.0",
1866 | "_view_name": "LayoutView",
1867 | "align_content": null,
1868 | "align_items": null,
1869 | "align_self": null,
1870 | "border": null,
1871 | "bottom": null,
1872 | "display": null,
1873 | "flex": null,
1874 | "flex_flow": null,
1875 | "grid_area": null,
1876 | "grid_auto_columns": null,
1877 | "grid_auto_flow": null,
1878 | "grid_auto_rows": null,
1879 | "grid_column": null,
1880 | "grid_gap": null,
1881 | "grid_row": null,
1882 | "grid_template_areas": null,
1883 | "grid_template_columns": null,
1884 | "grid_template_rows": null,
1885 | "height": null,
1886 | "justify_content": null,
1887 | "justify_items": null,
1888 | "left": null,
1889 | "margin": null,
1890 | "max_height": null,
1891 | "max_width": null,
1892 | "min_height": null,
1893 | "min_width": null,
1894 | "object_fit": null,
1895 | "object_position": null,
1896 | "order": null,
1897 | "overflow": null,
1898 | "overflow_x": null,
1899 | "overflow_y": null,
1900 | "padding": null,
1901 | "right": null,
1902 | "top": null,
1903 | "visibility": null,
1904 | "width": null
1905 | }
1906 | },
1907 | "77d4c73776aa425fae3204d05c2fef5c": {
1908 | "model_module": "@jupyter-widgets/controls",
1909 | "model_module_version": "1.5.0",
1910 | "model_name": "DescriptionStyleModel",
1911 | "state": {
1912 | "_model_module": "@jupyter-widgets/controls",
1913 | "_model_module_version": "1.5.0",
1914 | "_model_name": "DescriptionStyleModel",
1915 | "_view_count": null,
1916 | "_view_module": "@jupyter-widgets/base",
1917 | "_view_module_version": "1.2.0",
1918 | "_view_name": "StyleView",
1919 | "description_width": ""
1920 | }
1921 | },
1922 | "7d7b158fb7c34115b70da67ff9d02330": {
1923 | "model_module": "@jupyter-widgets/controls",
1924 | "model_module_version": "1.5.0",
1925 | "model_name": "HTMLModel",
1926 | "state": {
1927 | "_dom_classes": [],
1928 | "_model_module": "@jupyter-widgets/controls",
1929 | "_model_module_version": "1.5.0",
1930 | "_model_name": "HTMLModel",
1931 | "_view_count": null,
1932 | "_view_module": "@jupyter-widgets/controls",
1933 | "_view_module_version": "1.5.0",
1934 | "_view_name": "HTMLView",
1935 | "description": "",
1936 | "description_tooltip": null,
1937 | "layout": "IPY_MODEL_9076a172c20a4f3ba860be80ed3c2987",
1938 | "placeholder": "",
1939 | "style": "IPY_MODEL_f31c06e20cf84f659480d8d0f4be50a6",
1940 | "value": "100%"
1941 | }
1942 | },
1943 | "81b02dcc1f704cd8b9a2759237e20bdc": {
1944 | "model_module": "@jupyter-widgets/base",
1945 | "model_module_version": "1.2.0",
1946 | "model_name": "LayoutModel",
1947 | "state": {
1948 | "_model_module": "@jupyter-widgets/base",
1949 | "_model_module_version": "1.2.0",
1950 | "_model_name": "LayoutModel",
1951 | "_view_count": null,
1952 | "_view_module": "@jupyter-widgets/base",
1953 | "_view_module_version": "1.2.0",
1954 | "_view_name": "LayoutView",
1955 | "align_content": null,
1956 | "align_items": null,
1957 | "align_self": null,
1958 | "border": null,
1959 | "bottom": null,
1960 | "display": null,
1961 | "flex": null,
1962 | "flex_flow": null,
1963 | "grid_area": null,
1964 | "grid_auto_columns": null,
1965 | "grid_auto_flow": null,
1966 | "grid_auto_rows": null,
1967 | "grid_column": null,
1968 | "grid_gap": null,
1969 | "grid_row": null,
1970 | "grid_template_areas": null,
1971 | "grid_template_columns": null,
1972 | "grid_template_rows": null,
1973 | "height": null,
1974 | "justify_content": null,
1975 | "justify_items": null,
1976 | "left": null,
1977 | "margin": null,
1978 | "max_height": null,
1979 | "max_width": null,
1980 | "min_height": null,
1981 | "min_width": null,
1982 | "object_fit": null,
1983 | "object_position": null,
1984 | "order": null,
1985 | "overflow": null,
1986 | "overflow_x": null,
1987 | "overflow_y": null,
1988 | "padding": null,
1989 | "right": null,
1990 | "top": null,
1991 | "visibility": null,
1992 | "width": null
1993 | }
1994 | },
1995 | "862e43822549455fafbc742d8965c874": {
1996 | "model_module": "@jupyter-widgets/controls",
1997 | "model_module_version": "1.5.0",
1998 | "model_name": "FloatProgressModel",
1999 | "state": {
2000 | "_dom_classes": [],
2001 | "_model_module": "@jupyter-widgets/controls",
2002 | "_model_module_version": "1.5.0",
2003 | "_model_name": "FloatProgressModel",
2004 | "_view_count": null,
2005 | "_view_module": "@jupyter-widgets/controls",
2006 | "_view_module_version": "1.5.0",
2007 | "_view_name": "ProgressView",
2008 | "bar_style": "success",
2009 | "description": "",
2010 | "description_tooltip": null,
2011 | "layout": "IPY_MODEL_8b932843f727482586676c44607e7be9",
2012 | "max": 452,
2013 | "min": 0,
2014 | "orientation": "horizontal",
2015 | "style": "IPY_MODEL_87cbfba9048a4fb49d29585458228721",
2016 | "value": 452
2017 | }
2018 | },
2019 | "879e8d35e93041d896fd84113ee150c8": {
2020 | "model_module": "@jupyter-widgets/controls",
2021 | "model_module_version": "1.5.0",
2022 | "model_name": "HBoxModel",
2023 | "state": {
2024 | "_dom_classes": [],
2025 | "_model_module": "@jupyter-widgets/controls",
2026 | "_model_module_version": "1.5.0",
2027 | "_model_name": "HBoxModel",
2028 | "_view_count": null,
2029 | "_view_module": "@jupyter-widgets/controls",
2030 | "_view_module_version": "1.5.0",
2031 | "_view_name": "HBoxView",
2032 | "box_style": "",
2033 | "children": [
2034 | "IPY_MODEL_a5b73a6e13eb4a90b4e0e81e4fadc2c9",
2035 | "IPY_MODEL_3e2002a84eb04ed5bc55321eb5e55fa5",
2036 | "IPY_MODEL_b4a2873aecd441ea8f4d72e68b3b96ab"
2037 | ],
2038 | "layout": "IPY_MODEL_8c8f319361d94f4a825993fa9fd3ef04"
2039 | }
2040 | },
2041 | "87cbfba9048a4fb49d29585458228721": {
2042 | "model_module": "@jupyter-widgets/controls",
2043 | "model_module_version": "1.5.0",
2044 | "model_name": "ProgressStyleModel",
2045 | "state": {
2046 | "_model_module": "@jupyter-widgets/controls",
2047 | "_model_module_version": "1.5.0",
2048 | "_model_name": "ProgressStyleModel",
2049 | "_view_count": null,
2050 | "_view_module": "@jupyter-widgets/base",
2051 | "_view_module_version": "1.2.0",
2052 | "_view_name": "StyleView",
2053 | "bar_color": null,
2054 | "description_width": ""
2055 | }
2056 | },
2057 | "8b932843f727482586676c44607e7be9": {
2058 | "model_module": "@jupyter-widgets/base",
2059 | "model_module_version": "1.2.0",
2060 | "model_name": "LayoutModel",
2061 | "state": {
2062 | "_model_module": "@jupyter-widgets/base",
2063 | "_model_module_version": "1.2.0",
2064 | "_model_name": "LayoutModel",
2065 | "_view_count": null,
2066 | "_view_module": "@jupyter-widgets/base",
2067 | "_view_module_version": "1.2.0",
2068 | "_view_name": "LayoutView",
2069 | "align_content": null,
2070 | "align_items": null,
2071 | "align_self": null,
2072 | "border": null,
2073 | "bottom": null,
2074 | "display": null,
2075 | "flex": null,
2076 | "flex_flow": null,
2077 | "grid_area": null,
2078 | "grid_auto_columns": null,
2079 | "grid_auto_flow": null,
2080 | "grid_auto_rows": null,
2081 | "grid_column": null,
2082 | "grid_gap": null,
2083 | "grid_row": null,
2084 | "grid_template_areas": null,
2085 | "grid_template_columns": null,
2086 | "grid_template_rows": null,
2087 | "height": null,
2088 | "justify_content": null,
2089 | "justify_items": null,
2090 | "left": null,
2091 | "margin": null,
2092 | "max_height": null,
2093 | "max_width": null,
2094 | "min_height": null,
2095 | "min_width": null,
2096 | "object_fit": null,
2097 | "object_position": null,
2098 | "order": null,
2099 | "overflow": null,
2100 | "overflow_x": null,
2101 | "overflow_y": null,
2102 | "padding": null,
2103 | "right": null,
2104 | "top": null,
2105 | "visibility": null,
2106 | "width": null
2107 | }
2108 | },
2109 | "8c8f319361d94f4a825993fa9fd3ef04": {
2110 | "model_module": "@jupyter-widgets/base",
2111 | "model_module_version": "1.2.0",
2112 | "model_name": "LayoutModel",
2113 | "state": {
2114 | "_model_module": "@jupyter-widgets/base",
2115 | "_model_module_version": "1.2.0",
2116 | "_model_name": "LayoutModel",
2117 | "_view_count": null,
2118 | "_view_module": "@jupyter-widgets/base",
2119 | "_view_module_version": "1.2.0",
2120 | "_view_name": "LayoutView",
2121 | "align_content": null,
2122 | "align_items": null,
2123 | "align_self": null,
2124 | "border": null,
2125 | "bottom": null,
2126 | "display": null,
2127 | "flex": null,
2128 | "flex_flow": null,
2129 | "grid_area": null,
2130 | "grid_auto_columns": null,
2131 | "grid_auto_flow": null,
2132 | "grid_auto_rows": null,
2133 | "grid_column": null,
2134 | "grid_gap": null,
2135 | "grid_row": null,
2136 | "grid_template_areas": null,
2137 | "grid_template_columns": null,
2138 | "grid_template_rows": null,
2139 | "height": null,
2140 | "justify_content": null,
2141 | "justify_items": null,
2142 | "left": null,
2143 | "margin": null,
2144 | "max_height": null,
2145 | "max_width": null,
2146 | "min_height": null,
2147 | "min_width": null,
2148 | "object_fit": null,
2149 | "object_position": null,
2150 | "order": null,
2151 | "overflow": null,
2152 | "overflow_x": null,
2153 | "overflow_y": null,
2154 | "padding": null,
2155 | "right": null,
2156 | "top": null,
2157 | "visibility": null,
2158 | "width": null
2159 | }
2160 | },
2161 | "8e8f66894fee4137914df1175ee9c75e": {
2162 | "model_module": "@jupyter-widgets/controls",
2163 | "model_module_version": "1.5.0",
2164 | "model_name": "DescriptionStyleModel",
2165 | "state": {
2166 | "_model_module": "@jupyter-widgets/controls",
2167 | "_model_module_version": "1.5.0",
2168 | "_model_name": "DescriptionStyleModel",
2169 | "_view_count": null,
2170 | "_view_module": "@jupyter-widgets/base",
2171 | "_view_module_version": "1.2.0",
2172 | "_view_name": "StyleView",
2173 | "description_width": ""
2174 | }
2175 | },
2176 | "8feaad6215514f34a8381821901224fa": {
2177 | "model_module": "@jupyter-widgets/controls",
2178 | "model_module_version": "1.5.0",
2179 | "model_name": "HTMLModel",
2180 | "state": {
2181 | "_dom_classes": [],
2182 | "_model_module": "@jupyter-widgets/controls",
2183 | "_model_module_version": "1.5.0",
2184 | "_model_name": "HTMLModel",
2185 | "_view_count": null,
2186 | "_view_module": "@jupyter-widgets/controls",
2187 | "_view_module_version": "1.5.0",
2188 | "_view_name": "HTMLView",
2189 | "description": "",
2190 | "description_tooltip": null,
2191 | "layout": "IPY_MODEL_ad3a6b34806b4812bb088ce6d9512b84",
2192 | "placeholder": "",
2193 | "style": "IPY_MODEL_77d4c73776aa425fae3204d05c2fef5c",
2194 | "value": "100%"
2195 | }
2196 | },
2197 | "8ff3e9201c54476cacedb9b04d274f6d": {
2198 | "model_module": "@jupyter-widgets/controls",
2199 | "model_module_version": "1.5.0",
2200 | "model_name": "DescriptionStyleModel",
2201 | "state": {
2202 | "_model_module": "@jupyter-widgets/controls",
2203 | "_model_module_version": "1.5.0",
2204 | "_model_name": "DescriptionStyleModel",
2205 | "_view_count": null,
2206 | "_view_module": "@jupyter-widgets/base",
2207 | "_view_module_version": "1.2.0",
2208 | "_view_name": "StyleView",
2209 | "description_width": ""
2210 | }
2211 | },
2212 | "9076a172c20a4f3ba860be80ed3c2987": {
2213 | "model_module": "@jupyter-widgets/base",
2214 | "model_module_version": "1.2.0",
2215 | "model_name": "LayoutModel",
2216 | "state": {
2217 | "_model_module": "@jupyter-widgets/base",
2218 | "_model_module_version": "1.2.0",
2219 | "_model_name": "LayoutModel",
2220 | "_view_count": null,
2221 | "_view_module": "@jupyter-widgets/base",
2222 | "_view_module_version": "1.2.0",
2223 | "_view_name": "LayoutView",
2224 | "align_content": null,
2225 | "align_items": null,
2226 | "align_self": null,
2227 | "border": null,
2228 | "bottom": null,
2229 | "display": null,
2230 | "flex": null,
2231 | "flex_flow": null,
2232 | "grid_area": null,
2233 | "grid_auto_columns": null,
2234 | "grid_auto_flow": null,
2235 | "grid_auto_rows": null,
2236 | "grid_column": null,
2237 | "grid_gap": null,
2238 | "grid_row": null,
2239 | "grid_template_areas": null,
2240 | "grid_template_columns": null,
2241 | "grid_template_rows": null,
2242 | "height": null,
2243 | "justify_content": null,
2244 | "justify_items": null,
2245 | "left": null,
2246 | "margin": null,
2247 | "max_height": null,
2248 | "max_width": null,
2249 | "min_height": null,
2250 | "min_width": null,
2251 | "object_fit": null,
2252 | "object_position": null,
2253 | "order": null,
2254 | "overflow": null,
2255 | "overflow_x": null,
2256 | "overflow_y": null,
2257 | "padding": null,
2258 | "right": null,
2259 | "top": null,
2260 | "visibility": null,
2261 | "width": null
2262 | }
2263 | },
2264 | "946c2c6c9d8048a19d09c7f7e1cfa324": {
2265 | "model_module": "@jupyter-widgets/base",
2266 | "model_module_version": "1.2.0",
2267 | "model_name": "LayoutModel",
2268 | "state": {
2269 | "_model_module": "@jupyter-widgets/base",
2270 | "_model_module_version": "1.2.0",
2271 | "_model_name": "LayoutModel",
2272 | "_view_count": null,
2273 | "_view_module": "@jupyter-widgets/base",
2274 | "_view_module_version": "1.2.0",
2275 | "_view_name": "LayoutView",
2276 | "align_content": null,
2277 | "align_items": null,
2278 | "align_self": null,
2279 | "border": null,
2280 | "bottom": null,
2281 | "display": null,
2282 | "flex": null,
2283 | "flex_flow": null,
2284 | "grid_area": null,
2285 | "grid_auto_columns": null,
2286 | "grid_auto_flow": null,
2287 | "grid_auto_rows": null,
2288 | "grid_column": null,
2289 | "grid_gap": null,
2290 | "grid_row": null,
2291 | "grid_template_areas": null,
2292 | "grid_template_columns": null,
2293 | "grid_template_rows": null,
2294 | "height": null,
2295 | "justify_content": null,
2296 | "justify_items": null,
2297 | "left": null,
2298 | "margin": null,
2299 | "max_height": null,
2300 | "max_width": null,
2301 | "min_height": null,
2302 | "min_width": null,
2303 | "object_fit": null,
2304 | "object_position": null,
2305 | "order": null,
2306 | "overflow": null,
2307 | "overflow_x": null,
2308 | "overflow_y": null,
2309 | "padding": null,
2310 | "right": null,
2311 | "top": null,
2312 | "visibility": null,
2313 | "width": null
2314 | }
2315 | },
2316 | "94d5eb5f48ca45558c49c50cd63d1b49": {
2317 | "model_module": "@jupyter-widgets/controls",
2318 | "model_module_version": "1.5.0",
2319 | "model_name": "DescriptionStyleModel",
2320 | "state": {
2321 | "_model_module": "@jupyter-widgets/controls",
2322 | "_model_module_version": "1.5.0",
2323 | "_model_name": "DescriptionStyleModel",
2324 | "_view_count": null,
2325 | "_view_module": "@jupyter-widgets/base",
2326 | "_view_module_version": "1.2.0",
2327 | "_view_name": "StyleView",
2328 | "description_width": ""
2329 | }
2330 | },
2331 | "96adc49910774c07b3751c3b2802e08b": {
2332 | "model_module": "@jupyter-widgets/controls",
2333 | "model_module_version": "1.5.0",
2334 | "model_name": "HTMLModel",
2335 | "state": {
2336 | "_dom_classes": [],
2337 | "_model_module": "@jupyter-widgets/controls",
2338 | "_model_module_version": "1.5.0",
2339 | "_model_name": "HTMLModel",
2340 | "_view_count": null,
2341 | "_view_module": "@jupyter-widgets/controls",
2342 | "_view_module_version": "1.5.0",
2343 | "_view_name": "HTMLView",
2344 | "description": "",
2345 | "description_tooltip": null,
2346 | "layout": "IPY_MODEL_9c261204da454d96a71e4e7d535d1b05",
2347 | "placeholder": "",
2348 | "style": "IPY_MODEL_a76c97c50daa4b5d8b400d500f7442ca",
2349 | "value": "100%"
2350 | }
2351 | },
2352 | "97a86fdebe5d45e2b6e24596df7199db": {
2353 | "model_module": "@jupyter-widgets/controls",
2354 | "model_module_version": "1.5.0",
2355 | "model_name": "DescriptionStyleModel",
2356 | "state": {
2357 | "_model_module": "@jupyter-widgets/controls",
2358 | "_model_module_version": "1.5.0",
2359 | "_model_name": "DescriptionStyleModel",
2360 | "_view_count": null,
2361 | "_view_module": "@jupyter-widgets/base",
2362 | "_view_module_version": "1.2.0",
2363 | "_view_name": "StyleView",
2364 | "description_width": ""
2365 | }
2366 | },
2367 | "9c261204da454d96a71e4e7d535d1b05": {
2368 | "model_module": "@jupyter-widgets/base",
2369 | "model_module_version": "1.2.0",
2370 | "model_name": "LayoutModel",
2371 | "state": {
2372 | "_model_module": "@jupyter-widgets/base",
2373 | "_model_module_version": "1.2.0",
2374 | "_model_name": "LayoutModel",
2375 | "_view_count": null,
2376 | "_view_module": "@jupyter-widgets/base",
2377 | "_view_module_version": "1.2.0",
2378 | "_view_name": "LayoutView",
2379 | "align_content": null,
2380 | "align_items": null,
2381 | "align_self": null,
2382 | "border": null,
2383 | "bottom": null,
2384 | "display": null,
2385 | "flex": null,
2386 | "flex_flow": null,
2387 | "grid_area": null,
2388 | "grid_auto_columns": null,
2389 | "grid_auto_flow": null,
2390 | "grid_auto_rows": null,
2391 | "grid_column": null,
2392 | "grid_gap": null,
2393 | "grid_row": null,
2394 | "grid_template_areas": null,
2395 | "grid_template_columns": null,
2396 | "grid_template_rows": null,
2397 | "height": null,
2398 | "justify_content": null,
2399 | "justify_items": null,
2400 | "left": null,
2401 | "margin": null,
2402 | "max_height": null,
2403 | "max_width": null,
2404 | "min_height": null,
2405 | "min_width": null,
2406 | "object_fit": null,
2407 | "object_position": null,
2408 | "order": null,
2409 | "overflow": null,
2410 | "overflow_x": null,
2411 | "overflow_y": null,
2412 | "padding": null,
2413 | "right": null,
2414 | "top": null,
2415 | "visibility": null,
2416 | "width": null
2417 | }
2418 | },
2419 | "9e9a632bdceb440a94127e0c5740f334": {
2420 | "model_module": "@jupyter-widgets/base",
2421 | "model_module_version": "1.2.0",
2422 | "model_name": "LayoutModel",
2423 | "state": {
2424 | "_model_module": "@jupyter-widgets/base",
2425 | "_model_module_version": "1.2.0",
2426 | "_model_name": "LayoutModel",
2427 | "_view_count": null,
2428 | "_view_module": "@jupyter-widgets/base",
2429 | "_view_module_version": "1.2.0",
2430 | "_view_name": "LayoutView",
2431 | "align_content": null,
2432 | "align_items": null,
2433 | "align_self": null,
2434 | "border": null,
2435 | "bottom": null,
2436 | "display": null,
2437 | "flex": null,
2438 | "flex_flow": null,
2439 | "grid_area": null,
2440 | "grid_auto_columns": null,
2441 | "grid_auto_flow": null,
2442 | "grid_auto_rows": null,
2443 | "grid_column": null,
2444 | "grid_gap": null,
2445 | "grid_row": null,
2446 | "grid_template_areas": null,
2447 | "grid_template_columns": null,
2448 | "grid_template_rows": null,
2449 | "height": null,
2450 | "justify_content": null,
2451 | "justify_items": null,
2452 | "left": null,
2453 | "margin": null,
2454 | "max_height": null,
2455 | "max_width": null,
2456 | "min_height": null,
2457 | "min_width": null,
2458 | "object_fit": null,
2459 | "object_position": null,
2460 | "order": null,
2461 | "overflow": null,
2462 | "overflow_x": null,
2463 | "overflow_y": null,
2464 | "padding": null,
2465 | "right": null,
2466 | "top": null,
2467 | "visibility": null,
2468 | "width": null
2469 | }
2470 | },
2471 | "a0595d78a4d2428e877942bcf047468e": {
2472 | "model_module": "@jupyter-widgets/controls",
2473 | "model_module_version": "1.5.0",
2474 | "model_name": "HBoxModel",
2475 | "state": {
2476 | "_dom_classes": [],
2477 | "_model_module": "@jupyter-widgets/controls",
2478 | "_model_module_version": "1.5.0",
2479 | "_model_name": "HBoxModel",
2480 | "_view_count": null,
2481 | "_view_module": "@jupyter-widgets/controls",
2482 | "_view_module_version": "1.5.0",
2483 | "_view_name": "HBoxView",
2484 | "box_style": "",
2485 | "children": [
2486 | "IPY_MODEL_1de8149168814805804464a51718cfb8",
2487 | "IPY_MODEL_16d8b74cb1974162ad75445b1dd8b6ed",
2488 | "IPY_MODEL_ae19f53afb454eda8d9b3009a5230dc3"
2489 | ],
2490 | "layout": "IPY_MODEL_9e9a632bdceb440a94127e0c5740f334"
2491 | }
2492 | },
2493 | "a28ba3cfaa4d4700ba951ba84fa180e6": {
2494 | "model_module": "@jupyter-widgets/base",
2495 | "model_module_version": "1.2.0",
2496 | "model_name": "LayoutModel",
2497 | "state": {
2498 | "_model_module": "@jupyter-widgets/base",
2499 | "_model_module_version": "1.2.0",
2500 | "_model_name": "LayoutModel",
2501 | "_view_count": null,
2502 | "_view_module": "@jupyter-widgets/base",
2503 | "_view_module_version": "1.2.0",
2504 | "_view_name": "LayoutView",
2505 | "align_content": null,
2506 | "align_items": null,
2507 | "align_self": null,
2508 | "border": null,
2509 | "bottom": null,
2510 | "display": null,
2511 | "flex": null,
2512 | "flex_flow": null,
2513 | "grid_area": null,
2514 | "grid_auto_columns": null,
2515 | "grid_auto_flow": null,
2516 | "grid_auto_rows": null,
2517 | "grid_column": null,
2518 | "grid_gap": null,
2519 | "grid_row": null,
2520 | "grid_template_areas": null,
2521 | "grid_template_columns": null,
2522 | "grid_template_rows": null,
2523 | "height": null,
2524 | "justify_content": null,
2525 | "justify_items": null,
2526 | "left": null,
2527 | "margin": null,
2528 | "max_height": null,
2529 | "max_width": null,
2530 | "min_height": null,
2531 | "min_width": null,
2532 | "object_fit": null,
2533 | "object_position": null,
2534 | "order": null,
2535 | "overflow": null,
2536 | "overflow_x": null,
2537 | "overflow_y": null,
2538 | "padding": null,
2539 | "right": null,
2540 | "top": null,
2541 | "visibility": null,
2542 | "width": null
2543 | }
2544 | },
2545 | "a5b73a6e13eb4a90b4e0e81e4fadc2c9": {
2546 | "model_module": "@jupyter-widgets/controls",
2547 | "model_module_version": "1.5.0",
2548 | "model_name": "HTMLModel",
2549 | "state": {
2550 | "_dom_classes": [],
2551 | "_model_module": "@jupyter-widgets/controls",
2552 | "_model_module_version": "1.5.0",
2553 | "_model_name": "HTMLModel",
2554 | "_view_count": null,
2555 | "_view_module": "@jupyter-widgets/controls",
2556 | "_view_module_version": "1.5.0",
2557 | "_view_name": "HTMLView",
2558 | "description": "",
2559 | "description_tooltip": null,
2560 | "layout": "IPY_MODEL_bf966b183e4b4c15ad0124b5510461b3",
2561 | "placeholder": "",
2562 | "style": "IPY_MODEL_b16872b1d8a34c55bca9d03fee0c2d26",
2563 | "value": "100%"
2564 | }
2565 | },
2566 | "a76c97c50daa4b5d8b400d500f7442ca": {
2567 | "model_module": "@jupyter-widgets/controls",
2568 | "model_module_version": "1.5.0",
2569 | "model_name": "DescriptionStyleModel",
2570 | "state": {
2571 | "_model_module": "@jupyter-widgets/controls",
2572 | "_model_module_version": "1.5.0",
2573 | "_model_name": "DescriptionStyleModel",
2574 | "_view_count": null,
2575 | "_view_module": "@jupyter-widgets/base",
2576 | "_view_module_version": "1.2.0",
2577 | "_view_name": "StyleView",
2578 | "description_width": ""
2579 | }
2580 | },
2581 | "abef4362cc7f4fb3bf43ae84a40c5f11": {
2582 | "model_module": "@jupyter-widgets/controls",
2583 | "model_module_version": "1.5.0",
2584 | "model_name": "HTMLModel",
2585 | "state": {
2586 | "_dom_classes": [],
2587 | "_model_module": "@jupyter-widgets/controls",
2588 | "_model_module_version": "1.5.0",
2589 | "_model_name": "HTMLModel",
2590 | "_view_count": null,
2591 | "_view_module": "@jupyter-widgets/controls",
2592 | "_view_module_version": "1.5.0",
2593 | "_view_name": "HTMLView",
2594 | "description": "",
2595 | "description_tooltip": null,
2596 | "layout": "IPY_MODEL_d118a797f3d5439fabebb20378c292f8",
2597 | "placeholder": "",
2598 | "style": "IPY_MODEL_7036fc0fe6624106b4a11bdf5abd2b1c",
2599 | "value": "100%"
2600 | }
2601 | },
2602 | "ac0a36ff698c46de9235e608a276b2a4": {
2603 | "model_module": "@jupyter-widgets/controls",
2604 | "model_module_version": "1.5.0",
2605 | "model_name": "DescriptionStyleModel",
2606 | "state": {
2607 | "_model_module": "@jupyter-widgets/controls",
2608 | "_model_module_version": "1.5.0",
2609 | "_model_name": "DescriptionStyleModel",
2610 | "_view_count": null,
2611 | "_view_module": "@jupyter-widgets/base",
2612 | "_view_module_version": "1.2.0",
2613 | "_view_name": "StyleView",
2614 | "description_width": ""
2615 | }
2616 | },
2617 | "ad3a6b34806b4812bb088ce6d9512b84": {
2618 | "model_module": "@jupyter-widgets/base",
2619 | "model_module_version": "1.2.0",
2620 | "model_name": "LayoutModel",
2621 | "state": {
2622 | "_model_module": "@jupyter-widgets/base",
2623 | "_model_module_version": "1.2.0",
2624 | "_model_name": "LayoutModel",
2625 | "_view_count": null,
2626 | "_view_module": "@jupyter-widgets/base",
2627 | "_view_module_version": "1.2.0",
2628 | "_view_name": "LayoutView",
2629 | "align_content": null,
2630 | "align_items": null,
2631 | "align_self": null,
2632 | "border": null,
2633 | "bottom": null,
2634 | "display": null,
2635 | "flex": null,
2636 | "flex_flow": null,
2637 | "grid_area": null,
2638 | "grid_auto_columns": null,
2639 | "grid_auto_flow": null,
2640 | "grid_auto_rows": null,
2641 | "grid_column": null,
2642 | "grid_gap": null,
2643 | "grid_row": null,
2644 | "grid_template_areas": null,
2645 | "grid_template_columns": null,
2646 | "grid_template_rows": null,
2647 | "height": null,
2648 | "justify_content": null,
2649 | "justify_items": null,
2650 | "left": null,
2651 | "margin": null,
2652 | "max_height": null,
2653 | "max_width": null,
2654 | "min_height": null,
2655 | "min_width": null,
2656 | "object_fit": null,
2657 | "object_position": null,
2658 | "order": null,
2659 | "overflow": null,
2660 | "overflow_x": null,
2661 | "overflow_y": null,
2662 | "padding": null,
2663 | "right": null,
2664 | "top": null,
2665 | "visibility": null,
2666 | "width": null
2667 | }
2668 | },
2669 | "ae19f53afb454eda8d9b3009a5230dc3": {
2670 | "model_module": "@jupyter-widgets/controls",
2671 | "model_module_version": "1.5.0",
2672 | "model_name": "HTMLModel",
2673 | "state": {
2674 | "_dom_classes": [],
2675 | "_model_module": "@jupyter-widgets/controls",
2676 | "_model_module_version": "1.5.0",
2677 | "_model_name": "HTMLModel",
2678 | "_view_count": null,
2679 | "_view_module": "@jupyter-widgets/controls",
2680 | "_view_module_version": "1.5.0",
2681 | "_view_name": "HTMLView",
2682 | "description": "",
2683 | "description_tooltip": null,
2684 | "layout": "IPY_MODEL_4a93d608feb24a4a9a886c4663d4ad80",
2685 | "placeholder": "",
2686 | "style": "IPY_MODEL_cdc1819471c14cdbbb00b289f66c4aec",
2687 | "value": " 452/452 [05:03<00:00, 1.75it/s]"
2688 | }
2689 | },
2690 | "b16872b1d8a34c55bca9d03fee0c2d26": {
2691 | "model_module": "@jupyter-widgets/controls",
2692 | "model_module_version": "1.5.0",
2693 | "model_name": "DescriptionStyleModel",
2694 | "state": {
2695 | "_model_module": "@jupyter-widgets/controls",
2696 | "_model_module_version": "1.5.0",
2697 | "_model_name": "DescriptionStyleModel",
2698 | "_view_count": null,
2699 | "_view_module": "@jupyter-widgets/base",
2700 | "_view_module_version": "1.2.0",
2701 | "_view_name": "StyleView",
2702 | "description_width": ""
2703 | }
2704 | },
2705 | "b4a2873aecd441ea8f4d72e68b3b96ab": {
2706 | "model_module": "@jupyter-widgets/controls",
2707 | "model_module_version": "1.5.0",
2708 | "model_name": "HTMLModel",
2709 | "state": {
2710 | "_dom_classes": [],
2711 | "_model_module": "@jupyter-widgets/controls",
2712 | "_model_module_version": "1.5.0",
2713 | "_model_name": "HTMLModel",
2714 | "_view_count": null,
2715 | "_view_module": "@jupyter-widgets/controls",
2716 | "_view_module_version": "1.5.0",
2717 | "_view_name": "HTMLView",
2718 | "description": "",
2719 | "description_tooltip": null,
2720 | "layout": "IPY_MODEL_946c2c6c9d8048a19d09c7f7e1cfa324",
2721 | "placeholder": "",
2722 | "style": "IPY_MODEL_97a86fdebe5d45e2b6e24596df7199db",
2723 | "value": " 6/6 [30:21<00:00, 303.57s/it]"
2724 | }
2725 | },
2726 | "bb6c9093f7a047dda11ba79578456247": {
2727 | "model_module": "@jupyter-widgets/controls",
2728 | "model_module_version": "1.5.0",
2729 | "model_name": "DescriptionStyleModel",
2730 | "state": {
2731 | "_model_module": "@jupyter-widgets/controls",
2732 | "_model_module_version": "1.5.0",
2733 | "_model_name": "DescriptionStyleModel",
2734 | "_view_count": null,
2735 | "_view_module": "@jupyter-widgets/base",
2736 | "_view_module_version": "1.2.0",
2737 | "_view_name": "StyleView",
2738 | "description_width": ""
2739 | }
2740 | },
2741 | "bda7ecb79e4443f9a7dd6b6737ce5563": {
2742 | "model_module": "@jupyter-widgets/controls",
2743 | "model_module_version": "1.5.0",
2744 | "model_name": "FloatProgressModel",
2745 | "state": {
2746 | "_dom_classes": [],
2747 | "_model_module": "@jupyter-widgets/controls",
2748 | "_model_module_version": "1.5.0",
2749 | "_model_name": "FloatProgressModel",
2750 | "_view_count": null,
2751 | "_view_module": "@jupyter-widgets/controls",
2752 | "_view_module_version": "1.5.0",
2753 | "_view_name": "ProgressView",
2754 | "bar_style": "success",
2755 | "description": "",
2756 | "description_tooltip": null,
2757 | "layout": "IPY_MODEL_f8406e02408a4eb8a8265b5d2f985848",
2758 | "max": 452,
2759 | "min": 0,
2760 | "orientation": "horizontal",
2761 | "style": "IPY_MODEL_d07f4bab5d654d4fa15aa9c8ab35e6ff",
2762 | "value": 452
2763 | }
2764 | },
2765 | "bf966b183e4b4c15ad0124b5510461b3": {
2766 | "model_module": "@jupyter-widgets/base",
2767 | "model_module_version": "1.2.0",
2768 | "model_name": "LayoutModel",
2769 | "state": {
2770 | "_model_module": "@jupyter-widgets/base",
2771 | "_model_module_version": "1.2.0",
2772 | "_model_name": "LayoutModel",
2773 | "_view_count": null,
2774 | "_view_module": "@jupyter-widgets/base",
2775 | "_view_module_version": "1.2.0",
2776 | "_view_name": "LayoutView",
2777 | "align_content": null,
2778 | "align_items": null,
2779 | "align_self": null,
2780 | "border": null,
2781 | "bottom": null,
2782 | "display": null,
2783 | "flex": null,
2784 | "flex_flow": null,
2785 | "grid_area": null,
2786 | "grid_auto_columns": null,
2787 | "grid_auto_flow": null,
2788 | "grid_auto_rows": null,
2789 | "grid_column": null,
2790 | "grid_gap": null,
2791 | "grid_row": null,
2792 | "grid_template_areas": null,
2793 | "grid_template_columns": null,
2794 | "grid_template_rows": null,
2795 | "height": null,
2796 | "justify_content": null,
2797 | "justify_items": null,
2798 | "left": null,
2799 | "margin": null,
2800 | "max_height": null,
2801 | "max_width": null,
2802 | "min_height": null,
2803 | "min_width": null,
2804 | "object_fit": null,
2805 | "object_position": null,
2806 | "order": null,
2807 | "overflow": null,
2808 | "overflow_x": null,
2809 | "overflow_y": null,
2810 | "padding": null,
2811 | "right": null,
2812 | "top": null,
2813 | "visibility": null,
2814 | "width": null
2815 | }
2816 | },
2817 | "c526abb4137248aaaf3c6f4e0bb3613f": {
2818 | "model_module": "@jupyter-widgets/base",
2819 | "model_module_version": "1.2.0",
2820 | "model_name": "LayoutModel",
2821 | "state": {
2822 | "_model_module": "@jupyter-widgets/base",
2823 | "_model_module_version": "1.2.0",
2824 | "_model_name": "LayoutModel",
2825 | "_view_count": null,
2826 | "_view_module": "@jupyter-widgets/base",
2827 | "_view_module_version": "1.2.0",
2828 | "_view_name": "LayoutView",
2829 | "align_content": null,
2830 | "align_items": null,
2831 | "align_self": null,
2832 | "border": null,
2833 | "bottom": null,
2834 | "display": null,
2835 | "flex": null,
2836 | "flex_flow": null,
2837 | "grid_area": null,
2838 | "grid_auto_columns": null,
2839 | "grid_auto_flow": null,
2840 | "grid_auto_rows": null,
2841 | "grid_column": null,
2842 | "grid_gap": null,
2843 | "grid_row": null,
2844 | "grid_template_areas": null,
2845 | "grid_template_columns": null,
2846 | "grid_template_rows": null,
2847 | "height": null,
2848 | "justify_content": null,
2849 | "justify_items": null,
2850 | "left": null,
2851 | "margin": null,
2852 | "max_height": null,
2853 | "max_width": null,
2854 | "min_height": null,
2855 | "min_width": null,
2856 | "object_fit": null,
2857 | "object_position": null,
2858 | "order": null,
2859 | "overflow": null,
2860 | "overflow_x": null,
2861 | "overflow_y": null,
2862 | "padding": null,
2863 | "right": null,
2864 | "top": null,
2865 | "visibility": null,
2866 | "width": null
2867 | }
2868 | },
2869 | "c741db7d0550439f979759f588bcd7c7": {
2870 | "model_module": "@jupyter-widgets/controls",
2871 | "model_module_version": "1.5.0",
2872 | "model_name": "DescriptionStyleModel",
2873 | "state": {
2874 | "_model_module": "@jupyter-widgets/controls",
2875 | "_model_module_version": "1.5.0",
2876 | "_model_name": "DescriptionStyleModel",
2877 | "_view_count": null,
2878 | "_view_module": "@jupyter-widgets/base",
2879 | "_view_module_version": "1.2.0",
2880 | "_view_name": "StyleView",
2881 | "description_width": ""
2882 | }
2883 | },
2884 | "c9a58f27b2f14ad18458a6f02b14a847": {
2885 | "model_module": "@jupyter-widgets/base",
2886 | "model_module_version": "1.2.0",
2887 | "model_name": "LayoutModel",
2888 | "state": {
2889 | "_model_module": "@jupyter-widgets/base",
2890 | "_model_module_version": "1.2.0",
2891 | "_model_name": "LayoutModel",
2892 | "_view_count": null,
2893 | "_view_module": "@jupyter-widgets/base",
2894 | "_view_module_version": "1.2.0",
2895 | "_view_name": "LayoutView",
2896 | "align_content": null,
2897 | "align_items": null,
2898 | "align_self": null,
2899 | "border": null,
2900 | "bottom": null,
2901 | "display": null,
2902 | "flex": null,
2903 | "flex_flow": null,
2904 | "grid_area": null,
2905 | "grid_auto_columns": null,
2906 | "grid_auto_flow": null,
2907 | "grid_auto_rows": null,
2908 | "grid_column": null,
2909 | "grid_gap": null,
2910 | "grid_row": null,
2911 | "grid_template_areas": null,
2912 | "grid_template_columns": null,
2913 | "grid_template_rows": null,
2914 | "height": null,
2915 | "justify_content": null,
2916 | "justify_items": null,
2917 | "left": null,
2918 | "margin": null,
2919 | "max_height": null,
2920 | "max_width": null,
2921 | "min_height": null,
2922 | "min_width": null,
2923 | "object_fit": null,
2924 | "object_position": null,
2925 | "order": null,
2926 | "overflow": null,
2927 | "overflow_x": null,
2928 | "overflow_y": null,
2929 | "padding": null,
2930 | "right": null,
2931 | "top": null,
2932 | "visibility": null,
2933 | "width": null
2934 | }
2935 | },
2936 | "ca0f870495654f299cb03882fa4debc6": {
2937 | "model_module": "@jupyter-widgets/base",
2938 | "model_module_version": "1.2.0",
2939 | "model_name": "LayoutModel",
2940 | "state": {
2941 | "_model_module": "@jupyter-widgets/base",
2942 | "_model_module_version": "1.2.0",
2943 | "_model_name": "LayoutModel",
2944 | "_view_count": null,
2945 | "_view_module": "@jupyter-widgets/base",
2946 | "_view_module_version": "1.2.0",
2947 | "_view_name": "LayoutView",
2948 | "align_content": null,
2949 | "align_items": null,
2950 | "align_self": null,
2951 | "border": null,
2952 | "bottom": null,
2953 | "display": null,
2954 | "flex": null,
2955 | "flex_flow": null,
2956 | "grid_area": null,
2957 | "grid_auto_columns": null,
2958 | "grid_auto_flow": null,
2959 | "grid_auto_rows": null,
2960 | "grid_column": null,
2961 | "grid_gap": null,
2962 | "grid_row": null,
2963 | "grid_template_areas": null,
2964 | "grid_template_columns": null,
2965 | "grid_template_rows": null,
2966 | "height": null,
2967 | "justify_content": null,
2968 | "justify_items": null,
2969 | "left": null,
2970 | "margin": null,
2971 | "max_height": null,
2972 | "max_width": null,
2973 | "min_height": null,
2974 | "min_width": null,
2975 | "object_fit": null,
2976 | "object_position": null,
2977 | "order": null,
2978 | "overflow": null,
2979 | "overflow_x": null,
2980 | "overflow_y": null,
2981 | "padding": null,
2982 | "right": null,
2983 | "top": null,
2984 | "visibility": null,
2985 | "width": null
2986 | }
2987 | },
2988 | "cdc1819471c14cdbbb00b289f66c4aec": {
2989 | "model_module": "@jupyter-widgets/controls",
2990 | "model_module_version": "1.5.0",
2991 | "model_name": "DescriptionStyleModel",
2992 | "state": {
2993 | "_model_module": "@jupyter-widgets/controls",
2994 | "_model_module_version": "1.5.0",
2995 | "_model_name": "DescriptionStyleModel",
2996 | "_view_count": null,
2997 | "_view_module": "@jupyter-widgets/base",
2998 | "_view_module_version": "1.2.0",
2999 | "_view_name": "StyleView",
3000 | "description_width": ""
3001 | }
3002 | },
3003 | "cf27cc3bafdd4482b441fc6e34366696": {
3004 | "model_module": "@jupyter-widgets/controls",
3005 | "model_module_version": "1.5.0",
3006 | "model_name": "HTMLModel",
3007 | "state": {
3008 | "_dom_classes": [],
3009 | "_model_module": "@jupyter-widgets/controls",
3010 | "_model_module_version": "1.5.0",
3011 | "_model_name": "HTMLModel",
3012 | "_view_count": null,
3013 | "_view_module": "@jupyter-widgets/controls",
3014 | "_view_module_version": "1.5.0",
3015 | "_view_name": "HTMLView",
3016 | "description": "",
3017 | "description_tooltip": null,
3018 | "layout": "IPY_MODEL_58ba589bb71047ccaca888f8b8f07223",
3019 | "placeholder": "",
3020 | "style": "IPY_MODEL_8ff3e9201c54476cacedb9b04d274f6d",
3021 | "value": "100%"
3022 | }
3023 | },
3024 | "d07f4bab5d654d4fa15aa9c8ab35e6ff": {
3025 | "model_module": "@jupyter-widgets/controls",
3026 | "model_module_version": "1.5.0",
3027 | "model_name": "ProgressStyleModel",
3028 | "state": {
3029 | "_model_module": "@jupyter-widgets/controls",
3030 | "_model_module_version": "1.5.0",
3031 | "_model_name": "ProgressStyleModel",
3032 | "_view_count": null,
3033 | "_view_module": "@jupyter-widgets/base",
3034 | "_view_module_version": "1.2.0",
3035 | "_view_name": "StyleView",
3036 | "bar_color": null,
3037 | "description_width": ""
3038 | }
3039 | },
3040 | "d118a797f3d5439fabebb20378c292f8": {
3041 | "model_module": "@jupyter-widgets/base",
3042 | "model_module_version": "1.2.0",
3043 | "model_name": "LayoutModel",
3044 | "state": {
3045 | "_model_module": "@jupyter-widgets/base",
3046 | "_model_module_version": "1.2.0",
3047 | "_model_name": "LayoutModel",
3048 | "_view_count": null,
3049 | "_view_module": "@jupyter-widgets/base",
3050 | "_view_module_version": "1.2.0",
3051 | "_view_name": "LayoutView",
3052 | "align_content": null,
3053 | "align_items": null,
3054 | "align_self": null,
3055 | "border": null,
3056 | "bottom": null,
3057 | "display": null,
3058 | "flex": null,
3059 | "flex_flow": null,
3060 | "grid_area": null,
3061 | "grid_auto_columns": null,
3062 | "grid_auto_flow": null,
3063 | "grid_auto_rows": null,
3064 | "grid_column": null,
3065 | "grid_gap": null,
3066 | "grid_row": null,
3067 | "grid_template_areas": null,
3068 | "grid_template_columns": null,
3069 | "grid_template_rows": null,
3070 | "height": null,
3071 | "justify_content": null,
3072 | "justify_items": null,
3073 | "left": null,
3074 | "margin": null,
3075 | "max_height": null,
3076 | "max_width": null,
3077 | "min_height": null,
3078 | "min_width": null,
3079 | "object_fit": null,
3080 | "object_position": null,
3081 | "order": null,
3082 | "overflow": null,
3083 | "overflow_x": null,
3084 | "overflow_y": null,
3085 | "padding": null,
3086 | "right": null,
3087 | "top": null,
3088 | "visibility": null,
3089 | "width": null
3090 | }
3091 | },
3092 | "d1a57fe92fd543f1b4c72e33f4340fb3": {
3093 | "model_module": "@jupyter-widgets/base",
3094 | "model_module_version": "1.2.0",
3095 | "model_name": "LayoutModel",
3096 | "state": {
3097 | "_model_module": "@jupyter-widgets/base",
3098 | "_model_module_version": "1.2.0",
3099 | "_model_name": "LayoutModel",
3100 | "_view_count": null,
3101 | "_view_module": "@jupyter-widgets/base",
3102 | "_view_module_version": "1.2.0",
3103 | "_view_name": "LayoutView",
3104 | "align_content": null,
3105 | "align_items": null,
3106 | "align_self": null,
3107 | "border": null,
3108 | "bottom": null,
3109 | "display": null,
3110 | "flex": null,
3111 | "flex_flow": null,
3112 | "grid_area": null,
3113 | "grid_auto_columns": null,
3114 | "grid_auto_flow": null,
3115 | "grid_auto_rows": null,
3116 | "grid_column": null,
3117 | "grid_gap": null,
3118 | "grid_row": null,
3119 | "grid_template_areas": null,
3120 | "grid_template_columns": null,
3121 | "grid_template_rows": null,
3122 | "height": null,
3123 | "justify_content": null,
3124 | "justify_items": null,
3125 | "left": null,
3126 | "margin": null,
3127 | "max_height": null,
3128 | "max_width": null,
3129 | "min_height": null,
3130 | "min_width": null,
3131 | "object_fit": null,
3132 | "object_position": null,
3133 | "order": null,
3134 | "overflow": null,
3135 | "overflow_x": null,
3136 | "overflow_y": null,
3137 | "padding": null,
3138 | "right": null,
3139 | "top": null,
3140 | "visibility": null,
3141 | "width": null
3142 | }
3143 | },
3144 | "d572868d2e6b4394adf615b988618cb4": {
3145 | "model_module": "@jupyter-widgets/controls",
3146 | "model_module_version": "1.5.0",
3147 | "model_name": "HTMLModel",
3148 | "state": {
3149 | "_dom_classes": [],
3150 | "_model_module": "@jupyter-widgets/controls",
3151 | "_model_module_version": "1.5.0",
3152 | "_model_name": "HTMLModel",
3153 | "_view_count": null,
3154 | "_view_module": "@jupyter-widgets/controls",
3155 | "_view_module_version": "1.5.0",
3156 | "_view_name": "HTMLView",
3157 | "description": "",
3158 | "description_tooltip": null,
3159 | "layout": "IPY_MODEL_ca0f870495654f299cb03882fa4debc6",
3160 | "placeholder": "",
3161 | "style": "IPY_MODEL_bb6c9093f7a047dda11ba79578456247",
3162 | "value": " 452/452 [05:03<00:00, 1.67it/s]"
3163 | }
3164 | },
3165 | "d9ed4c01ef164b209a2067ac6c80388e": {
3166 | "model_module": "@jupyter-widgets/controls",
3167 | "model_module_version": "1.5.0",
3168 | "model_name": "ProgressStyleModel",
3169 | "state": {
3170 | "_model_module": "@jupyter-widgets/controls",
3171 | "_model_module_version": "1.5.0",
3172 | "_model_name": "ProgressStyleModel",
3173 | "_view_count": null,
3174 | "_view_module": "@jupyter-widgets/base",
3175 | "_view_module_version": "1.2.0",
3176 | "_view_name": "StyleView",
3177 | "bar_color": null,
3178 | "description_width": ""
3179 | }
3180 | },
3181 | "da8284c253c1427b9f5bd4b83279548b": {
3182 | "model_module": "@jupyter-widgets/controls",
3183 | "model_module_version": "1.5.0",
3184 | "model_name": "HBoxModel",
3185 | "state": {
3186 | "_dom_classes": [],
3187 | "_model_module": "@jupyter-widgets/controls",
3188 | "_model_module_version": "1.5.0",
3189 | "_model_name": "HBoxModel",
3190 | "_view_count": null,
3191 | "_view_module": "@jupyter-widgets/controls",
3192 | "_view_module_version": "1.5.0",
3193 | "_view_name": "HBoxView",
3194 | "box_style": "",
3195 | "children": [
3196 | "IPY_MODEL_7d7b158fb7c34115b70da67ff9d02330",
3197 | "IPY_MODEL_473cdf8f4b384aa699a6ad078ad0a336",
3198 | "IPY_MODEL_2935e363a6f14ed08e209511245f0c6c"
3199 | ],
3200 | "layout": "IPY_MODEL_12daa8b222de472dbe67b2d856276ffa"
3201 | }
3202 | },
3203 | "e1dbfff3fef7412ba89d507c58521366": {
3204 | "model_module": "@jupyter-widgets/base",
3205 | "model_module_version": "1.2.0",
3206 | "model_name": "LayoutModel",
3207 | "state": {
3208 | "_model_module": "@jupyter-widgets/base",
3209 | "_model_module_version": "1.2.0",
3210 | "_model_name": "LayoutModel",
3211 | "_view_count": null,
3212 | "_view_module": "@jupyter-widgets/base",
3213 | "_view_module_version": "1.2.0",
3214 | "_view_name": "LayoutView",
3215 | "align_content": null,
3216 | "align_items": null,
3217 | "align_self": null,
3218 | "border": null,
3219 | "bottom": null,
3220 | "display": null,
3221 | "flex": null,
3222 | "flex_flow": null,
3223 | "grid_area": null,
3224 | "grid_auto_columns": null,
3225 | "grid_auto_flow": null,
3226 | "grid_auto_rows": null,
3227 | "grid_column": null,
3228 | "grid_gap": null,
3229 | "grid_row": null,
3230 | "grid_template_areas": null,
3231 | "grid_template_columns": null,
3232 | "grid_template_rows": null,
3233 | "height": null,
3234 | "justify_content": null,
3235 | "justify_items": null,
3236 | "left": null,
3237 | "margin": null,
3238 | "max_height": null,
3239 | "max_width": null,
3240 | "min_height": null,
3241 | "min_width": null,
3242 | "object_fit": null,
3243 | "object_position": null,
3244 | "order": null,
3245 | "overflow": null,
3246 | "overflow_x": null,
3247 | "overflow_y": null,
3248 | "padding": null,
3249 | "right": null,
3250 | "top": null,
3251 | "visibility": null,
3252 | "width": null
3253 | }
3254 | },
3255 | "e6ce6a08715a49f39f044ac3b873b14f": {
3256 | "model_module": "@jupyter-widgets/controls",
3257 | "model_module_version": "1.5.0",
3258 | "model_name": "HBoxModel",
3259 | "state": {
3260 | "_dom_classes": [],
3261 | "_model_module": "@jupyter-widgets/controls",
3262 | "_model_module_version": "1.5.0",
3263 | "_model_name": "HBoxModel",
3264 | "_view_count": null,
3265 | "_view_module": "@jupyter-widgets/controls",
3266 | "_view_module_version": "1.5.0",
3267 | "_view_name": "HBoxView",
3268 | "box_style": "",
3269 | "children": [
3270 | "IPY_MODEL_96adc49910774c07b3751c3b2802e08b",
3271 | "IPY_MODEL_43d29fba0ede436b8dd6042cc27ac74f",
3272 | "IPY_MODEL_4572bf0fa8c54991aa7b165806e6ae65"
3273 | ],
3274 | "layout": "IPY_MODEL_e1dbfff3fef7412ba89d507c58521366"
3275 | }
3276 | },
3277 | "f31c06e20cf84f659480d8d0f4be50a6": {
3278 | "model_module": "@jupyter-widgets/controls",
3279 | "model_module_version": "1.5.0",
3280 | "model_name": "DescriptionStyleModel",
3281 | "state": {
3282 | "_model_module": "@jupyter-widgets/controls",
3283 | "_model_module_version": "1.5.0",
3284 | "_model_name": "DescriptionStyleModel",
3285 | "_view_count": null,
3286 | "_view_module": "@jupyter-widgets/base",
3287 | "_view_module_version": "1.2.0",
3288 | "_view_name": "StyleView",
3289 | "description_width": ""
3290 | }
3291 | },
3292 | "f8406e02408a4eb8a8265b5d2f985848": {
3293 | "model_module": "@jupyter-widgets/base",
3294 | "model_module_version": "1.2.0",
3295 | "model_name": "LayoutModel",
3296 | "state": {
3297 | "_model_module": "@jupyter-widgets/base",
3298 | "_model_module_version": "1.2.0",
3299 | "_model_name": "LayoutModel",
3300 | "_view_count": null,
3301 | "_view_module": "@jupyter-widgets/base",
3302 | "_view_module_version": "1.2.0",
3303 | "_view_name": "LayoutView",
3304 | "align_content": null,
3305 | "align_items": null,
3306 | "align_self": null,
3307 | "border": null,
3308 | "bottom": null,
3309 | "display": null,
3310 | "flex": null,
3311 | "flex_flow": null,
3312 | "grid_area": null,
3313 | "grid_auto_columns": null,
3314 | "grid_auto_flow": null,
3315 | "grid_auto_rows": null,
3316 | "grid_column": null,
3317 | "grid_gap": null,
3318 | "grid_row": null,
3319 | "grid_template_areas": null,
3320 | "grid_template_columns": null,
3321 | "grid_template_rows": null,
3322 | "height": null,
3323 | "justify_content": null,
3324 | "justify_items": null,
3325 | "left": null,
3326 | "margin": null,
3327 | "max_height": null,
3328 | "max_width": null,
3329 | "min_height": null,
3330 | "min_width": null,
3331 | "object_fit": null,
3332 | "object_position": null,
3333 | "order": null,
3334 | "overflow": null,
3335 | "overflow_x": null,
3336 | "overflow_y": null,
3337 | "padding": null,
3338 | "right": null,
3339 | "top": null,
3340 | "visibility": null,
3341 | "width": null
3342 | }
3343 | },
3344 | "fe6b3020d51240538ad6f9b00067e889": {
3345 | "model_module": "@jupyter-widgets/base",
3346 | "model_module_version": "1.2.0",
3347 | "model_name": "LayoutModel",
3348 | "state": {
3349 | "_model_module": "@jupyter-widgets/base",
3350 | "_model_module_version": "1.2.0",
3351 | "_model_name": "LayoutModel",
3352 | "_view_count": null,
3353 | "_view_module": "@jupyter-widgets/base",
3354 | "_view_module_version": "1.2.0",
3355 | "_view_name": "LayoutView",
3356 | "align_content": null,
3357 | "align_items": null,
3358 | "align_self": null,
3359 | "border": null,
3360 | "bottom": null,
3361 | "display": null,
3362 | "flex": null,
3363 | "flex_flow": null,
3364 | "grid_area": null,
3365 | "grid_auto_columns": null,
3366 | "grid_auto_flow": null,
3367 | "grid_auto_rows": null,
3368 | "grid_column": null,
3369 | "grid_gap": null,
3370 | "grid_row": null,
3371 | "grid_template_areas": null,
3372 | "grid_template_columns": null,
3373 | "grid_template_rows": null,
3374 | "height": null,
3375 | "justify_content": null,
3376 | "justify_items": null,
3377 | "left": null,
3378 | "margin": null,
3379 | "max_height": null,
3380 | "max_width": null,
3381 | "min_height": null,
3382 | "min_width": null,
3383 | "object_fit": null,
3384 | "object_position": null,
3385 | "order": null,
3386 | "overflow": null,
3387 | "overflow_x": null,
3388 | "overflow_y": null,
3389 | "padding": null,
3390 | "right": null,
3391 | "top": null,
3392 | "visibility": null,
3393 | "width": null
3394 | }
3395 | }
3396 | }
3397 | }
3398 | },
3399 | "nbformat": 4,
3400 | "nbformat_minor": 4
3401 | }
3402 |
--------------------------------------------------------------------------------