{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "XznbrlmEuJC5" }, "source": [ "# Document AI | Inference APP at paragraph level with a Document Understanding model (LayoutXLM base fine-tuned on DocLayNet base dataset)" ] }, { "cell_type": "markdown", "metadata": { "id": "LW1SgajBuTuy" }, "source": [ "- Credit: \n", " - notebook created from the notebook [Fine_tuning_LayoutXLM_on_XFUND_for_token_classification_using_HuggingFace_Trainer.ipynb](https://github.com/NielsRogge/Transformers-Tutorials/blob/master/LayoutXLM/Fine_tuning_LayoutXLM_on_XFUND_for_token_classification_using_HuggingFace_Trainer.ipynb)\n", " - dataset from IBM Research ([DocLayNet](https://github.com/DS4SD/DocLayNet))\n", "- Author of this notebook: [Pierre GUILLOU](https://www.linkedin.com/in/pierreguillou/)\n", "- Date: 31/03/2023 \n", "- Blog posts: \n", " - Layout XLM base\n", " - (03/31/2023) [Document AI | Inference APP and fine-tuning notebook for Document Understanding at paragraph level with LayoutXLM base](https://medium.com/@pierre_guillou/document-ai-inference-app-and-fine-tuning-notebook-for-document-understanding-at-paragraph-level-3507af80573d)\n", " - (03/25/2023) [Document AI | APP to compare the Document Understanding LiLT and LayoutXLM (base) models at line level](https://medium.com/@pierre_guillou/document-ai-app-to-compare-the-document-understanding-lilt-and-layoutxlm-base-models-at-line-1c53eb481a15)\n", " - (03/05/2023) [Document AI | Inference APP and fine-tuning notebook for Document Understanding at line level with LayoutXLM base](https://medium.com/@pierre_guillou/document-ai-inference-app-and-fine-tuning-notebook-for-document-understanding-at-line-level-with-b08fdca5f4dc)\n", " - LiLT base\n", " - (02/16/2023) [Document AI | Inference APP and fine-tuning notebook for Document Understanding at paragraph level](https://medium.com/@pierre_guillou/document-ai-inference-app-and-fine-tuning-notebook-for-document-understanding-at-paragraph-level-c18d16e53cf8)\n", " - (02/14/2023) [Document AI | Inference APP for Document Understanding at line level](https://medium.com/@pierre_guillou/document-ai-inference-app-for-document-understanding-at-line-level-a35bbfa98893)\n", " - (02/10/2023) [Document AI | Document Understanding model at line level with LiLT, Tesseract and DocLayNet dataset](https://medium.com/@pierre_guillou/document-ai-document-understanding-model-at-line-level-with-lilt-tesseract-and-doclaynet-dataset-347107a643b8)\n", " - (01/31/2023) [Document AI | DocLayNet image viewer APP](https://medium.com/@pierre_guillou/document-ai-doclaynet-image-viewer-app-3ac54c19956)\n", " - (01/27/2023) [Document AI | Processing of DocLayNet dataset to be used by layout models of the Hugging Face hub (finetuning, inference)](https://medium.com/@pierre_guillou/document-ai-processing-of-doclaynet-dataset-to-be-used-by-layout-models-of-the-hugging-face-hub-308d8bd81cdb)\n", "- Notebooks (paragraph level)\n", " - Layout XLM base\n", " - [Document AI | Inference at paragraph level with a Document Understanding model (LayoutXLM base fine-tuned on DocLayNet dataset)](https://github.com/piegu/language-models/blob/master/inference_on_LayoutXLM_base_model_finetuned_on_DocLayNet_base_in_any_language_at_levelparagraphs_ml512.ipynb)\n", " - [Document AI | Inference APP at paragraph level with a Document Understanding model (LayoutXLM base fine-tuned on DocLayNet base dataset)](https://github.com/piegu/language-models/blob/master/Gradio_inference_on_LayoutXLM_base_model_finetuned_on_DocLayNet_base_in_any_language_at_levelparagraphs_ml512.ipynb)\n", " - [Document AI | Fine-tune LayoutXLM base on DocLayNet base in any language at paragraph level (chunk of 512 tokens with overlap)](https://github.com/piegu/language-models/blob/master/Fine_tune_LayoutXLM_base_on_DocLayNet_base_in_any_language_at_paragraphlevel_ml_512.ipynb)\n", " - LiLT base\n", " - [Document AI | Inference APP at paragraph level with a Document Understanding model (LiLT fine-tuned on DocLayNet dataset)](https://github.com/piegu/language-models/blob/master/Gradio_inference_on_LiLT_model_finetuned_on_DocLayNet_base_in_any_language_at_levelparagraphs_ml512.ipynb)\n", " - [Document AI | Inference at paragraph level with a Document Understanding model (LiLT fine-tuned on DocLayNet dataset)](https://github.com/piegu/language-models/blob/master/inference_on_LiLT_model_finetuned_on_DocLayNet_base_in_any_language_at_levelparagraphs_ml512.ipynb)\n", " - [Document AI | Fine-tune LiLT on DocLayNet base in any language at paragraph level (chunk of 512 tokens with overlap)](https://github.com/piegu/language-models/blob/master/Fine_tune_LiLT_on_DocLayNet_base_in_any_language_at_paragraphlevel_ml_512.ipynb)\n", "- Notebooks (line level)\n", " - Layout XLM base\n", " - [Document AI | Inference at line level with a Document Understanding model (LayoutXLM base fine-tuned on DocLayNet dataset)](https://github.com/piegu/language-models/blob/master/inference_on_LayoutXLM_base_model_finetuned_on_DocLayNet_base_in_any_language_at_levellines_ml384.ipynb)\n", " - [Document AI | Inference APP at line level with a Document Understanding model (LayoutXLM base fine-tuned on DocLayNet base dataset)](https://github.com/piegu/language-models/blob/master/Gradio_inference_on_LayoutXLM_base_model_finetuned_on_DocLayNet_base_in_any_language_at_levellines_ml384.ipynb)\n", " - [Document AI | Fine-tune LayoutXLM base on DocLayNet base in any language at line level (chunk of 384 tokens with overlap)](https://github.com/piegu/language-models/blob/master/Fine_tune_LayoutXLM_base_on_DocLayNet_base_in_any_language_at_linelevel_ml_384.ipynb)\n", " - LiLT base\n", " - [Document AI | Inference at line level with a Document Understanding model (LiLT fine-tuned on DocLayNet dataset)](https://github.com/piegu/language-models/blob/master/inference_on_LiLT_model_finetuned_on_DocLayNet_base_in_any_language_at_levellines_ml384.ipynb)\n", " - [Document AI | Inference APP at line level with a Document Understanding model (LiLT fine-tuned on DocLayNet dataset)](https://github.com/piegu/language-models/blob/master/Gradio_inference_on_LiLT_model_finetuned_on_DocLayNet_base_in_any_language_at_levellines_ml384.ipynb)\n", " - [Document AI | Fine-tune LiLT on DocLayNet base in any language at line level (chunk of 384 tokens with overlap)](https://github.com/piegu/language-models/blob/master/Fine_tune_LiLT_on_DocLayNet_base_in_any_language_at_linelevel_ml_384.ipynb)\n", " - [DocLayNet image viewer APP](https://github.com/piegu/language-models/blob/master/DocLayNet_image_viewer_APP.ipynb)\n", " - [Processing of DocLayNet dataset to be used by layout models of the Hugging Face hub (finetuning, inference)](processing_DocLayNet_dataset_to_be_used_by_layout_models_of_HF_hub.ipynb)" ] }, { "cell_type": "markdown", "metadata": { "id": "FpHg6WpKqVyV" }, "source": [ "## Inference at paragraph level" ] }, { "cell_type": "markdown", "metadata": { "id": "7GYz14mjI30i" }, "source": [ "LayoutXLM was proposed in [LayoutXLM: Multimodal Pre-training for Multilingual Visually-rich Document Understanding](https://arxiv.org/abs/2104.08836) by Yiheng Xu, Tengchao Lv, Lei Cui, Guoxin Wang, Yijuan Lu, Dinei Florencio, Cha Zhang, Furu Wei. \n", "\n", "It is a Document Understanding model that uses both layout and text in order to detect labels of bounding boxes. More, it’s a **multilingual extension of the LayoutLMv2 model trained on 53 languages**.\n", "\n", "It relies on an external OCR engine to get words and bboxes from the document image. Thus, let's run in this APP an OCR engine ourselves ([PyTesseract](https://github.com/madmaze/pytesseract#python-tesseract)) as we'll need to do it in real life to get the bounding boxes, then run LayoutXLM base (already fine-tuned on the DocLayNet dataset at paragraph level: [pierreguillou/lilt-xlm-roberta-base-finetuned-with-DocLayNet-base-at-paragraphlevel-ml512](https://huggingface.co/pierreguillou/lilt-xlm-roberta-base-finetuned-with-DocLayNet-base-at-paragraphlevel-ml512)) on the individual tokens and visualize the result at paragraph level!" ] }, { "cell_type": "markdown", "metadata": { "id": "-TEUFTN_ngoo" }, "source": [ "## Install Detectron 2, Pypdfium2, LangDetect & PyTesseract OCR " ] }, { "cell_type": "markdown", "source": [ "### Detectron 2" ], "metadata": { "id": "TVpB8L5mxgSx" } }, { "cell_type": "code", "source": [ "%%capture\n", "!pip install -q torch==1.10.0+cu111 torchvision==0.11+cu111 -f https://download.pytorch.org/whl/torch_stable.html\n", "!python -m pip install 'git+https://github.com/facebookresearch/detectron2.git'" ], "metadata": { "id": "M2m_1oLYxhwL" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "bflle1CCngoo" }, "source": [ "### Pypdfium2" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "yVYWSQdNngoo" }, "outputs": [], "source": [ "%%capture\n", "# !sudo apt-get install poppler-utils\n", "# !pip install pdf2image\n", "\n", "# source: https://levelup.gitconnected.com/4-python-libraries-to-convert-pdf-to-images-7a09eba83a09\n", "# source: https://pypi.org/project/pypdfium2/\n", "!pip install -U pypdfium2" ] }, { "cell_type": "markdown", "source": [ "### LangDetect" ], "metadata": { "id": "mnfTZnF4mQbh" } }, { "cell_type": "code", "source": [ "!pip install -q langdetect" ], "metadata": { "id": "ifCo1BUsmRqk", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "5d7cb2ff-9fae-4703-e110-1cd8212a1eb0" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/981.5 KB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K \u001b[91m━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m297.0/981.5 KB\u001b[0m \u001b[31m8.7 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m981.5/981.5 KB\u001b[0m \u001b[31m15.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Building wheel for langdetect (setup.py) ... \u001b[?25l\u001b[?25hdone\n" ] } ] }, { "cell_type": "markdown", "metadata": { "id": "ibTxXBjfngop" }, "source": [ "### Tesseract OCR" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "nJr6VB10ngop" }, "outputs": [], "source": [ "%%capture\n", "!sudo apt install tesseract-ocr-all # english + osd (Orientation and script detection module)\n", "# !sudo apt-get install tesseract-ocr-por # portuguese\n", "\n", "import os\n", "print(os.popen(f'cat /etc/debian_version').read())\n", "print(os.popen(f'cat /etc/issue').read())\n", "print(os.popen(f'apt search tesseract').read())\n", "\n", "!pip install pytesseract" ] }, { "cell_type": "markdown", "source": [ "## Set-up environment" ], "metadata": { "id": "XkVI_eWTDaAb" } }, { "cell_type": "markdown", "metadata": { "id": "gA3leN0cdb3g" }, "source": [ "### Libraries" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "-bkmxJuxdb3g", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "b41c2e5f-54ee-4bc7-aa5a-d25634170a8a" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m6.8/6.8 MB\u001b[0m \u001b[31m37.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.3/1.3 MB\u001b[0m \u001b[31m57.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m468.7/468.7 KB\u001b[0m \u001b[31m32.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m15.7/15.7 MB\u001b[0m \u001b[31m39.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m246.9/246.9 KB\u001b[0m \u001b[31m20.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m199.8/199.8 KB\u001b[0m \u001b[31m20.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.6/7.6 MB\u001b[0m \u001b[31m68.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.0/1.0 MB\u001b[0m \u001b[31m52.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m110.5/110.5 KB\u001b[0m \u001b[31m11.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m212.2/212.2 KB\u001b[0m \u001b[31m20.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m132.9/132.9 KB\u001b[0m \u001b[31m12.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m71.5/71.5 KB\u001b[0m \u001b[31m7.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m144.1/144.1 KB\u001b[0m \u001b[31m13.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m57.1/57.1 KB\u001b[0m \u001b[31m5.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m57.8/57.8 KB\u001b[0m \u001b[31m6.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m45.7/45.7 KB\u001b[0m \u001b[31m4.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m50.5/50.5 KB\u001b[0m \u001b[31m5.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m106.5/106.5 KB\u001b[0m \u001b[31m11.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m114.2/114.2 KB\u001b[0m \u001b[31m8.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m264.6/264.6 KB\u001b[0m \u001b[31m21.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m158.8/158.8 KB\u001b[0m \u001b[31m14.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m66.9/66.9 KB\u001b[0m \u001b[31m6.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m69.6/69.6 KB\u001b[0m \u001b[31m6.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m58.3/58.3 KB\u001b[0m \u001b[31m5.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m80.6/80.6 KB\u001b[0m \u001b[31m7.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25h Building wheel for ffmpy (setup.py) ... \u001b[?25l\u001b[?25hdone\n" ] } ], "source": [ "!pip install -q transformers sentencepiece datasets gradio pypdf" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "vgk_wOQ8xezs" }, "outputs": [], "source": [ "import os \n", "from operator import itemgetter\n", "import collections\n", "import string\n", "import re\n", "\n", "import pypdf\n", "from pypdf import PdfReader\n", "from pypdf.errors import PdfReadError\n", "\n", "import pypdfium2 as pdfium\n", "import langdetect\n", "from langdetect import detect_langs\n", "import pytesseract\n", "\n", "import pandas as pd\n", "import numpy as np\n", "import random\n", "from google.colab import files\n", "\n", "import tempfile\n", "from matplotlib import font_manager\n", "from PIL import Image, ImageDraw, ImageFont\n", "import cv2\n", "# In Colab, use cv2_imshow instead of cv2.imshow\n", "from google.colab.patches import cv2_imshow\n", "from IPython.display import display\n", "\n", "import itertools\n", "import gradio as gr\n", "\n", "import pathlib\n", "from pathlib import Path\n", "import shutil\n", "\n", "import transformers\n", "import datasets " ] }, { "cell_type": "markdown", "source": [ "### Key parameters" ], "metadata": { "id": "TrlF26R14NYP" } }, { "cell_type": "code", "source": [ "# categories colors\n", "label2color = {\n", " 'Caption': 'brown',\n", " 'Footnote': 'orange',\n", " 'Formula': 'gray',\n", " 'List-item': 'yellow',\n", " 'Page-footer': 'red',\n", " 'Page-header': 'red',\n", " 'Picture': 'violet',\n", " 'Section-header': 'orange',\n", " 'Table': 'green',\n", " 'Text': 'blue',\n", " 'Title': 'pink'\n", " }\n", "\n", "# bounding boxes start and end of a sequence\n", "cls_box = [0, 0, 0, 0]\n", "sep_box = [1000, 1000, 1000, 1000]\n", "\n", "# model\n", "model_id = \"pierreguillou/layout-xlm-base-finetuned-with-DocLayNet-base-at-paragraphlevel-ml512\"\n", "\n", "# tokenizer\n", "tokenizer_id = \"xlm-roberta-base\"\n", "\n", "# (tokenization) The maximum length of a feature (sequence)\n", "if str(384) in model_id:\n", " max_length = 384 \n", "elif str(512) in model_id:\n", " max_length = 512 \n", "else:\n", " print(\"Error with max_length of chunks!\")\n", "\n", "# (tokenization) overlap\n", "doc_stride = 128 # The authorized overlap between two part of the context when splitting it is needed.\n", "\n", "# max PDF page images that will be displayed\n", "max_imgboxes = 2\n", "\n", "# get files\n", "examples_dir = 'files/'\n", "Path(examples_dir).mkdir(parents=True, exist_ok=True)\n", "from huggingface_hub import hf_hub_download\n", "files = [\"example.pdf\", \"blank.pdf\", \"blank.png\", \"languages_iso.csv\", \"languages_tesseract.csv\", \"wo_content.png\"]\n", "for file_name in files:\n", " path_to_file = hf_hub_download(\n", " repo_id = \"pierreguillou/Inference-APP-Document-Understanding-at-paragraphlevel-v2\",\n", " filename = \"files/\" + file_name,\n", " repo_type = \"space\"\n", " )\n", " shutil.copy(path_to_file,examples_dir)\n", "\n", "# path to files\n", "image_wo_content = examples_dir + \"wo_content.png\" # image without content\n", "pdf_blank = examples_dir + \"blank.pdf\" # blank PDF\n", "image_blank = examples_dir + \"blank.png\" # blank image\n", "\n", "## get langdetect2Tesseract dictionary\n", "t = \"files/languages_tesseract.csv\"\n", "l = \"files/languages_iso.csv\"\n", "\n", "df_t = pd.read_csv(t)\n", "df_l = pd.read_csv(l)\n", "\n", "langs_t = df_t[\"Language\"].to_list()\n", "langs_t = [lang_t.lower().strip().translate(str.maketrans('', '', string.punctuation)) for lang_t in langs_t]\n", "langs_l = df_l[\"Language\"].to_list()\n", "langs_l = [lang_l.lower().strip().translate(str.maketrans('', '', string.punctuation)) for lang_l in langs_l]\n", "langscode_t = df_t[\"LangCode\"].to_list()\n", "langscode_l = df_l[\"LangCode\"].to_list()\n", "\n", "Tesseract2langdetect, langdetect2Tesseract = dict(), dict()\n", "for lang_t, langcode_t in zip(langs_t,langscode_t):\n", " try:\n", " if lang_t == \"Chinese - Simplified\".lower().strip().translate(str.maketrans('', '', string.punctuation)): lang_t = \"chinese\"\n", " index = langs_l.index(lang_t)\n", " langcode_l = langscode_l[index]\n", " Tesseract2langdetect[langcode_t] = langcode_l\n", " except: \n", " continue\n", "\n", "langdetect2Tesseract = {v:k for k,v in Tesseract2langdetect.items()}" ], "metadata": { "id": "M5lNEstH4P39", "colab": { "base_uri": "https://localhost:8080/", "referenced_widgets": [ "4c8001adf25e4a75a7e1c57fde9b37e1", "f43fe9645f134b4a82c7888ef451ffbf", "f9b94a89019e43548d8f1de80fad3128", "a0f76866692541f89618e0ba675f3aca", "2498de6a886d4900a5c89b3b67189228", "7077113b8ad248e0912eefd48c37a68f", "9f7965b427464622b08b773cd7fce32e", "57bc09c5a01649e7bc5e99543c201864", "86264c860f514fda9a883babef071a41", "4475bdf31e83446d8a48c619ac52b9d2", "ff5699632af943c8a2b3e829e6504660", "1f1a5aa4e8c14c0ebb3177519310482e", "97210646872a4ae19b2c906198aa3d09", "ce9de3bc610141ee948ceefbc8d72122", "acd311cb96c54d3d8d49e7905db95fbf", "b3f22b0b4cdd4833a463ffe41af9f681", "824a6739a11045a2a145e02af9f7abe6", "fa679fb4cf3f49a581fd289e7acaa745", "b8e65d8dd13347c3858771eaf8705968", "ad54cb754b084e699c6595ea2bccb9b7", "6f402740a0554008a8d4d7dd5a20aaba", "a03bcb2b3a8a4b98be484ea7de6573d0", "ce990ff6b31d457aaa415f0e8b5e6b2f", "e3c9d0f9700947b7b0c2e594bf403807", "efb22d6a618a4a97a83badb60cda0500", "03562ec22ee242458506d133d8e6964a", "7684f8d9c4be4b9b86037abe09f3152c", "cc41c283d9cb46068ccff80739e66bbe", "f2866a68ef734760b97fc5ac7f671188", "57f6b9dc5a234b809886df25144e941c", "f52ecee210084a5396c93c92cfdc9f18", "a037200de78242129f8312b6ca3248e5", "acb6112f81854cfb9d035cd8534c4b99", "3eccb2b5ce3340afbcdb5b3634f3b51e", "ed9d62ef79d645b38c402a37e6f2e4a9", "45132f3025354e128fa17904982f344e", "438ee831c93d413a848c8667ce764d4e", "b1730270d42b4db59f9ba29bab10e77a", "ec2f5ab867ce44a99a31dc5d3d8607c0", "d30c7e7389a24ed8836f0a692c39971d", "39024e327c5648cfbefb65b736cbdde2", "358e88d40ce24cfca04b995a55304234", "1a96a15745724fa1843b20d3cb637096", "deb60ac2ea4343f5bb45a8ce631978f2", "c6de0053654c4c4b96c176da5034566c", "8119d1abaab9413abd9f2808046c1220", "3c8d45173c4647cb867ba881a046f882", "6fbf389b3e314a3cb3742939f5a27e37", "4411801bf6f24e33a662d1ede5ee18f0", "11653bc1df8842bc93f190b257d64f9a", "edb05687951f47bc94742e7e341ed85e", "9c7250f75f0f47f087576bd29aa75322", "d6f1c98af4e345d19067186179652fd0", "af18641eef3c4b7da02ee9f6782c2d44", "c6be9fa3c9de46a2b45f4b21fef18b59", "33bc0fda05844ab884fcde2140487312", "fcca5f294e3846e3b31fd2580a526a9b", "02b1b6adea3548e6ac13784d71b69f83", "8946342fa3ea4fd6b94b7407d49ca41a", "81ba4349ca284ab387eff186ac2f6325", "5ca070d2aea84170aa6150f77881c776", "e8e09287973d41878bd5620b9fce178e", "5e99ba63906247c8b91503857e5d45da", "cbd5b39e85314d1f9e5d7de0b3c366c1", "39c45f9ee9124e39a19fb8aba16ff96b", "af08afda585440e58aaa5e8a3327c31c" ] }, "outputId": "cbbbbb7a-1dfb-4921-8abe-4fb8b9ea0b70" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "Downloading (…)in/files/example.pdf: 0%| | 0.00/343k [00:00= conf_min:\n", " tup = (text, left, top, width, height)\n", " if block_num in list(data.keys()):\n", " if par_num in list(data[block_num].keys()):\n", " if line_num in list(data[block_num][par_num].keys()):\n", " data[block_num][par_num][line_num].append(tup)\n", " else:\n", " data[block_num][par_num][line_num] = [tup]\n", " else:\n", " data[block_num][par_num] = {}\n", " data[block_num][par_num][line_num] = [tup]\n", " else:\n", " data[block_num] = {}\n", " data[block_num][par_num] = {}\n", " data[block_num][par_num][line_num] = [tup]\n", "\n", " # get paragraphs dicionnary with list of lines\n", " par_data = {}\n", " par_idx = 1\n", " for _, b in data.items():\n", " for _, p in b.items():\n", " line_data = {}\n", " line_idx = 1\n", " for _, l in p.items():\n", " line_data[line_idx] = l\n", " line_idx += 1\n", " par_data[par_idx] = line_data \n", " par_idx += 1\n", "\n", " # get lines of texts, grouped by paragraph\n", " texts_pars = list()\n", " row_indexes = list()\n", " texts_lines = list()\n", " texts_lines_par = list()\n", " row_index = 0\n", " for _,par in par_data.items():\n", " count_lines = 0\n", " lines_par = list()\n", " for _,line in par.items():\n", " if count_lines == 0: row_indexes.append(row_index)\n", " line_text = ' '.join([item[0] for item in line])\n", " texts_lines.append(line_text)\n", " lines_par.append(line_text)\n", " count_lines += 1\n", " row_index += 1\n", " # lines.append(\"\\n\")\n", " row_index += 1\n", " texts_lines_par.append(lines_par)\n", " texts_pars.append(' '.join(lines_par))\n", " # lines = lines[:-1]\n", " \n", " # get paragraphes boxes (par_boxes)\n", " # get lines boxes (line_boxes)\n", " par_boxes = list()\n", " par_idx = 1\n", " line_boxes, lines_par_boxes = list(), list()\n", " line_idx = 1\n", " for _, par in par_data.items():\n", " xmins, ymins, xmaxs, ymaxs = list(), list(), list(), list()\n", " line_boxes_par = list()\n", " count_line_par = 0\n", " for _, line in par.items():\n", " xmin, ymin = line[0][1], line[0][2]\n", " xmax, ymax = (line[-1][1] + line[-1][3]), (line[-1][2] + line[-1][4])\n", " line_boxes.append([int(xmin/factor), int(ymin/factor), int(xmax/factor), int(ymax/factor)])\n", " line_boxes_par.append([int(xmin/factor), int(ymin/factor), int(xmax/factor), int(ymax/factor)])\n", " xmins.append(xmin)\n", " ymins.append(ymin)\n", " xmaxs.append(xmax)\n", " ymaxs.append(ymax)\n", " line_idx += 1\n", " count_line_par += 1\n", " xmin, ymin, xmax, ymax = min(xmins), min(ymins), max(xmaxs), max(ymaxs)\n", " par_bbox = [int(xmin/factor), int(ymin/factor), int(xmax/factor), int(ymax/factor)]\n", " par_boxes.append(par_bbox)\n", " lines_par_boxes.append(line_boxes_par)\n", " par_idx += 1\n", "\n", " return texts_lines, texts_pars, texts_lines_par, row_indexes, par_boxes, line_boxes, lines_par_boxes \n", "\n", "# rescale image to get 300dpi\n", "def set_image_dpi_resize(image):\n", " \"\"\"\n", " Rescaling image to 300dpi while resizing\n", " :param image: An image\n", " :return: A rescaled image\n", " \"\"\"\n", " length_x, width_y = image.size\n", " factor = min(1, float(1024.0 / length_x))\n", " size = int(factor * length_x), int(factor * width_y)\n", " # image_resize = image.resize(size, Image.Resampling.LANCZOS)\n", " image_resize = image.resize(size, Image.LANCZOS)\n", " temp_file = tempfile.NamedTemporaryFile(delete=False, suffix='1.png')\n", " temp_filename = temp_file.name\n", " image_resize.save(temp_filename, dpi=(300, 300))\n", " return factor, temp_filename" ], "metadata": { "id": "cTBsm30Wkd-2" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "# it is important that each bounding box should be in (upper left, lower right) format.\n", "# source: https://github.com/NielsRogge/Transformers-Tutorials/issues/129\n", "def upperleft_to_lowerright(bbox):\n", " x0, y0, x1, y1 = tuple(bbox)\n", " if bbox[2] < bbox[0]:\n", " x0 = bbox[2]\n", " x1 = bbox[0] \n", " if bbox[3] < bbox[1]:\n", " y0 = bbox[3]\n", " y1 = bbox[1] \n", " return [x0, y0, x1, y1]\n", "\n", "# convert boundings boxes (left, top, width, height) format to (left, top, left+widght, top+height) format. \n", "def convert_box(bbox):\n", " x, y, w, h = tuple(bbox) # the row comes in (left, top, width, height) format\n", " return [x, y, x+w, y+h] # we turn it into (left, top, left+widght, top+height) to get the actual box \n", "\n", "# LiLT model gets 1000x10000 pixels images\n", "def normalize_box(bbox, width, height):\n", " return [\n", " int(1000 * (bbox[0] / width)),\n", " int(1000 * (bbox[1] / height)),\n", " int(1000 * (bbox[2] / width)),\n", " int(1000 * (bbox[3] / height)),\n", " ]\n", "\n", "# LiLT model gets 1000x10000 pixels images\n", "def denormalize_box(bbox, width, height):\n", " return [\n", " int(width * (bbox[0] / 1000)),\n", " int(height * (bbox[1] / 1000)),\n", " int(width* (bbox[2] / 1000)),\n", " int(height * (bbox[3] / 1000)),\n", " ]\n", "\n", "# get back original size\n", "def original_box(box, original_width, original_height, coco_width, coco_height):\n", " return [\n", " int(original_width * (box[0] / coco_width)),\n", " int(original_height * (box[1] / coco_height)),\n", " int(original_width * (box[2] / coco_width)),\n", " int(original_height* (box[3] / coco_height)),\n", " ]\n", "\n", "def get_blocks(bboxes_block, categories, texts):\n", "\n", " # get list of unique block boxes\n", " bbox_block_dict, bboxes_block_list, bbox_block_prec = dict(), list(), list()\n", " for count_block, bbox_block in enumerate(bboxes_block):\n", " if bbox_block != bbox_block_prec:\n", " bbox_block_indexes = [i for i, bbox in enumerate(bboxes_block) if bbox == bbox_block]\n", " bbox_block_dict[count_block] = bbox_block_indexes\n", " bboxes_block_list.append(bbox_block)\n", " bbox_block_prec = bbox_block\n", "\n", " # get list of categories and texts by unique block boxes\n", " category_block_list, text_block_list = list(), list()\n", " for bbox_block in bboxes_block_list:\n", " count_block = bboxes_block.index(bbox_block)\n", " bbox_block_indexes = bbox_block_dict[count_block]\n", " category_block = np.array(categories, dtype=object)[bbox_block_indexes].tolist()[0]\n", " category_block_list.append(category_block)\n", " text_block = np.array(texts, dtype=object)[bbox_block_indexes].tolist()\n", " text_block = [text.replace(\"\\n\",\"\").strip() for text in text_block]\n", " if id2label[category_block] == \"Text\" or id2label[category_block] == \"Caption\" or id2label[category_block] == \"Footnote\":\n", " text_block = ' '.join(text_block)\n", " else:\n", " text_block = '\\n'.join(text_block)\n", " text_block_list.append(text_block)\n", "\n", " return bboxes_block_list, category_block_list, text_block_list\n", "\n", "# function to sort bounding boxes\n", "def get_sorted_boxes(bboxes):\n", "\n", " # sort by y from page top to bottom \n", " sorted_bboxes = sorted(bboxes, key=itemgetter(1), reverse=False)\n", " y_list = [bbox[1] for bbox in sorted_bboxes]\n", "\n", " # sort by x from page left to right when boxes with same y\n", " if len(list(set(y_list))) != len(y_list):\n", " y_list_duplicates_indexes = dict()\n", " y_list_duplicates = [item for item, count in collections.Counter(y_list).items() if count > 1]\n", " for item in y_list_duplicates:\n", " y_list_duplicates_indexes[item] = [i for i, e in enumerate(y_list) if e == item]\n", " bbox_list_y_duplicates = sorted(np.array(sorted_bboxes, dtype=object)[y_list_duplicates_indexes[item]].tolist(), key=itemgetter(0), reverse=False)\n", " np_array_bboxes = np.array(sorted_bboxes)\n", " np_array_bboxes[y_list_duplicates_indexes[item]] = np.array(bbox_list_y_duplicates)\n", " sorted_bboxes = np_array_bboxes.tolist()\n", "\n", " return sorted_bboxes\n", "\n", "# sort data from y = 0 to end of page (and after, x=0 to end of page when necessary)\n", "def sort_data(bboxes, categories, texts):\n", "\n", " sorted_bboxes = get_sorted_boxes(bboxes)\n", " sorted_bboxes_indexes = [bboxes.index(bbox) for bbox in sorted_bboxes]\n", " sorted_categories = np.array(categories, dtype=object)[sorted_bboxes_indexes].tolist()\n", " sorted_texts = np.array(texts, dtype=object)[sorted_bboxes_indexes].tolist()\n", "\n", " return sorted_bboxes, sorted_categories, sorted_texts\n", "\n", "# sort data from y = 0 to end of page (and after, x=0 to end of page when necessary)\n", "def sort_data_wo_labels(bboxes, texts):\n", "\n", " sorted_bboxes = get_sorted_boxes(bboxes)\n", " sorted_bboxes_indexes = [bboxes.index(bbox) for bbox in sorted_bboxes]\n", " sorted_texts = np.array(texts, dtype=object)[sorted_bboxes_indexes].tolist()\n", "\n", " return sorted_bboxes, sorted_texts" ], "metadata": { "id": "vB4LOBjWHQgw" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "#### PDF processing" ], "metadata": { "id": "Q4N2b_hKLla-" } }, { "cell_type": "code", "source": [ "# get filename and images of PDF pages\n", "def pdf_to_images(uploaded_pdf):\n", "\n", " # Check if None object\n", " if uploaded_pdf is None:\n", " path_to_file = pdf_blank\n", " filename = path_to_file.replace(examples_dir,\"\")\n", " msg = \"Invalid PDF file.\"\n", " images = [Image.open(image_blank)]\n", " else:\n", " # path to the uploaded PDF\n", " path_to_file = uploaded_pdf.name\n", " filename = path_to_file.replace(\"/tmp/\",\"\")\n", "\n", " try:\n", " PdfReader(path_to_file)\n", " except PdfReadError:\n", " path_to_file = pdf_blank\n", " filename = path_to_file.replace(examples_dir,\"\")\n", " msg = \"Invalid PDF file.\"\n", " images = [Image.open(image_blank)]\n", " else:\n", " try:\n", " # images = convert_from_path(path_to_file, last_page=max_imgboxes)\n", "\n", " pdf = pdfium.PdfDocument(str(filename))\n", " version = pdf.get_version() # get the PDF standard version\n", " n_pages = len(pdf) # get the number of pages in the document\n", " page_indices = [i for i in range(n_pages)] # pages until last_page\n", " images = list(pdf.render(\n", " pdfium.PdfBitmap.to_pil,\n", " page_indices = page_indices,\n", " scale = 300/72, # 300dpi resolution\n", " ))\n", " \n", " num_imgs = len(images)\n", " msg = f'The PDF \"{filename}\" was converted into {num_imgs} images.'\n", " except:\n", " msg = f'Error with the PDF \"{filename}\": it was not converted into images.'\n", " images = [Image.open(image_wo_content)]\n", "\n", " return filename, msg, images" ], "metadata": { "id": "ih90VhoNI93W" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "# Extraction of image data (text and bounding boxes)\n", "def extraction_data_from_image(images):\n", "\n", " num_imgs = len(images)\n", "\n", " if num_imgs > 0:\n", "\n", " # https://pyimagesearch.com/2021/11/15/tesseract-page-segmentation-modes-psms-explained-how-to-improve-your-ocr-accuracy/\n", " custom_config = r'--oem 3 --psm 3 -l eng' # default config PyTesseract: --oem 3 --psm 3 -l eng+deu+fra+jpn+por+spa+rus+hin+chi_sim\n", " results, texts_lines, texts_pars, texts_lines_par, row_indexes, par_boxes, line_boxes, lines_par_boxes, images_pixels = dict(), dict(), dict(), dict(), dict(), dict(), dict(), dict(), dict()\n", " images_ids_list, texts_lines_list, texts_pars_list, texts_lines_par_list, par_boxes_list, line_boxes_list, lines_par_boxes_list, images_list, images_pixels_list, page_no_list, num_pages_list = list(), list(), list(), list(), list(), list(), list(), list(), list(), list(), list()\n", " \n", " try: \n", " for i,image in enumerate(images):\n", " # image preprocessing\n", " # https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_thresholding/py_thresholding.html\n", " img = image.copy()\n", " factor, path_to_img = set_image_dpi_resize(img) # Rescaling to 300dpi\n", " img = Image.open(path_to_img)\n", " img = np.array(img, dtype='uint8') # convert PIL to cv2\n", " img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # gray scale image\n", " ret,img = cv2.threshold(img,127,255,cv2.THRESH_BINARY)\n", " \n", " # OCR PyTesseract | get langs of page\n", " txt = pytesseract.image_to_string(img, config=custom_config)\n", " txt = txt.strip().lower()\n", " txt = re.sub(r\" +\", \" \", txt) # multiple space\n", " txt = re.sub(r\"(\\n\\s*)+\\n+\", \"\\n\", txt) # multiple line\n", " # txt = os.popen(f'tesseract {img_filepath} - {custom_config}').read()\n", " try:\n", " langs = detect_langs(txt)\n", " langs = [langdetect2Tesseract[langs[i].lang] for i in range(len(langs))]\n", " langs_string = '+'.join(langs)\n", " except:\n", " langs_string = \"eng\"\n", " langs_string += '+osd'\n", " custom_config = f'--oem 3 --psm 3 -l {langs_string}' # default config PyTesseract: --oem 3 --psm 3\n", "\n", " # OCR PyTesseract | get data\n", " results[i] = pytesseract.image_to_data(img, config=custom_config, output_type=pytesseract.Output.DICT)\n", " # results[i] = os.popen(f'tesseract {img_filepath} - {custom_config}').read()\n", "\n", " # get image pixels\n", " images_pixels[i] = feature_extractor(images[i], return_tensors=\"pt\").pixel_values\n", "\n", " texts_lines[i], texts_pars[i], texts_lines_par[i], row_indexes[i], par_boxes[i], line_boxes[i], lines_par_boxes[i] = get_data_paragraph(results[i], factor, conf_min=0)\n", " texts_lines_list.append(texts_lines[i])\n", " texts_pars_list.append(texts_pars[i])\n", " texts_lines_par_list.append(texts_lines_par[i])\n", " par_boxes_list.append(par_boxes[i])\n", " line_boxes_list.append(line_boxes[i])\n", " lines_par_boxes_list.append(lines_par_boxes[i])\n", " images_ids_list.append(i)\n", " images_pixels_list.append(images_pixels[i])\n", " images_list.append(images[i])\n", " page_no_list.append(i)\n", " num_pages_list.append(num_imgs) \n", "\n", " except:\n", " print(f\"There was an error within the extraction of PDF text by the OCR!\")\n", " else: \n", " from datasets import Dataset\n", " dataset = Dataset.from_dict({\"images_ids\": images_ids_list, \"images\": images_list, \"images_pixels\": images_pixels_list, \"page_no\": page_no_list, \"num_pages\": num_pages_list, \"texts_line\": texts_lines_list, \"texts_par\": texts_pars_list, \"texts_lines_par\": texts_lines_par_list, \"bboxes_par\": par_boxes_list, \"bboxes_lines_par\":lines_par_boxes_list})\n", " \n", "\n", " # print(f\"The text data was successfully extracted by the OCR!\")\n", "\n", " return dataset, texts_lines, texts_pars, texts_lines_par, row_indexes, par_boxes, line_boxes, lines_par_boxes" ], "metadata": { "id": "1e_gIhqJLn6H" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "#### Inference" ], "metadata": { "id": "9VJoRifzojvD" } }, { "cell_type": "code", "source": [ "def prepare_inference_features_paragraph(example, cls_box = cls_box, sep_box = sep_box):\n", "\n", " images_ids_list, chunks_ids_list, input_ids_list, attention_mask_list, bb_list, images_pixels_list = list(), list(), list(), list(), list(), list()\n", "\n", " # get batch\n", " # batch_page_hash = example[\"page_hash\"] \n", " batch_images_ids = example[\"images_ids\"]\n", " batch_images = example[\"images\"]\n", " batch_images_pixels = example[\"images_pixels\"]\n", " batch_bboxes_par = example[\"bboxes_par\"]\n", " batch_texts_par = example[\"texts_par\"] \n", " batch_images_size = [image.size for image in batch_images]\n", "\n", " batch_width, batch_height = [image_size[0] for image_size in batch_images_size], [image_size[1] for image_size in batch_images_size]\n", "\n", " # add a dimension if not a batch but only one image\n", " if not isinstance(batch_images_ids, list): \n", " batch_images_ids = [batch_images_ids]\n", " batch_images = [batch_images]\n", " batch_images_pixels = [batch_images_pixels]\n", " batch_bboxes_par = [batch_bboxes_par]\n", " batch_texts_par = [batch_texts_par]\n", " batch_width, batch_height = [batch_width], [batch_height] \n", "\n", " # process all images of the batch\n", " for num_batch, (image_id, image_pixels, boxes, texts_par, width, height) in enumerate(zip(batch_images_ids, batch_images_pixels, batch_bboxes_par, batch_texts_par, batch_width, batch_height)):\n", " tokens_list = []\n", " bboxes_list = []\n", "\n", " # add a dimension if only on image\n", " if not isinstance(texts_par, list):\n", " texts_par, boxes = [texts_par], [boxes]\n", "\n", " # convert boxes to original\n", " normalize_bboxes_par = [normalize_box(upperleft_to_lowerright(box), width, height) for box in boxes]\n", "\n", " # sort boxes with texts\n", " # we want sorted lists from top to bottom of the image\n", " boxes, texts_par = sort_data_wo_labels(normalize_bboxes_par, texts_par)\n", "\n", " count = 0\n", " for box, text_par in zip(boxes, texts_par):\n", " tokens_par = tokenizer.tokenize(text_par)\n", " num_tokens_par = len(tokens_par) # get number of tokens\n", " tokens_list.extend(tokens_par)\n", " bboxes_list.extend([box] * num_tokens_par) # number of boxes must be the same as the number of tokens\n", "\n", " # use of return_overflowing_tokens=True / stride=doc_stride\n", " # to get parts of image with overlap\n", " # source: https://huggingface.co/course/chapter6/3b?fw=tf#handling-long-contexts\n", " encodings = tokenizer(\" \".join(texts_par), \n", " truncation=True,\n", " padding=\"max_length\", \n", " max_length=max_length, \n", " stride=doc_stride, \n", " return_overflowing_tokens=True, \n", " return_offsets_mapping=True\n", " )\n", "\n", " otsm = encodings.pop(\"overflow_to_sample_mapping\")\n", " offset_mapping = encodings.pop(\"offset_mapping\")\n", "\n", " # Let's label those examples and get their boxes \n", " sequence_length_prev = 0 \n", " for i, offsets in enumerate(offset_mapping):\n", " # truncate tokens, boxes and labels based on length of chunk - 2 (special tokens and )\n", " sequence_length = len(encodings.input_ids[i]) - 2\n", " if i == 0: start = 0\n", " else: start += sequence_length_prev - doc_stride\n", " end = start + sequence_length\n", " sequence_length_prev = sequence_length\n", "\n", " # get tokens, boxes and labels of this image chunk\n", " bb = [cls_box] + bboxes_list[start:end] + [sep_box]\n", "\n", " # as the last chunk can have a length < max_length\n", " # we must to add [tokenizer.pad_token] (tokens), [sep_box] (boxes) and [-100] (labels)\n", " if len(bb) < max_length:\n", " bb = bb + [sep_box] * (max_length - len(bb))\n", "\n", " # append results\n", " input_ids_list.append(encodings[\"input_ids\"][i])\n", " attention_mask_list.append(encodings[\"attention_mask\"][i])\n", " bb_list.append(bb)\n", " images_ids_list.append(image_id)\n", " chunks_ids_list.append(i)\n", " images_pixels_list.append(image_pixels)\n", " \n", " return {\n", " \"images_ids\": images_ids_list,\n", " \"chunk_ids\": chunks_ids_list,\n", " \"input_ids\": input_ids_list,\n", " \"attention_mask\": attention_mask_list,\n", " \"normalized_bboxes\": bb_list,\n", " \"images_pixels\": images_pixels_list\n", " }" ], "metadata": { "id": "r7Dn5UwSlF2D" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "from torch.utils.data import Dataset\n", "\n", "class CustomDataset(Dataset):\n", " def __init__(self, dataset, tokenizer):\n", " self.dataset = dataset\n", " self.tokenizer = tokenizer\n", "\n", " def __len__(self):\n", " return len(self.dataset)\n", "\n", " def __getitem__(self, idx):\n", " # get item\n", " example = self.dataset[idx]\n", " encoding = dict()\n", " encoding[\"images_ids\"] = example[\"images_ids\"]\n", " encoding[\"chunk_ids\"] = example[\"chunk_ids\"]\n", " encoding[\"input_ids\"] = example[\"input_ids\"]\n", " encoding[\"attention_mask\"] = example[\"attention_mask\"]\n", " encoding[\"bbox\"] = example[\"normalized_bboxes\"]\n", " encoding[\"images_pixels\"] = example[\"images_pixels\"]\n", " \n", " return encoding" ], "metadata": { "id": "e-vcU4ru6_b9" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "import torch.nn.functional as F\n", "\n", "# get predictions at token level\n", "def predictions_token_level(images, custom_encoded_dataset):\n", "\n", " num_imgs = len(images)\n", " if num_imgs > 0:\n", "\n", " chunk_ids, input_ids, bboxes, pixels_values, outputs, token_predictions = dict(), dict(), dict(), dict(), dict(), dict()\n", " images_ids_list = list()\n", "\n", " for i,encoding in enumerate(custom_encoded_dataset):\n", "\n", " # get custom encoded data\n", " image_id = encoding['images_ids']\n", " chunk_id = encoding['chunk_ids']\n", " input_id = torch.tensor(encoding['input_ids'])[None]\n", " attention_mask = torch.tensor(encoding['attention_mask'])[None]\n", " bbox = torch.tensor(encoding['bbox'])[None]\n", " pixel_values = torch.tensor(encoding[\"images_pixels\"])\n", "\n", " # save data in dictionnaries\n", " if image_id not in images_ids_list: images_ids_list.append(image_id)\n", "\n", " if image_id in chunk_ids: chunk_ids[image_id].append(chunk_id)\n", " else: chunk_ids[image_id] = [chunk_id]\n", "\n", " if image_id in input_ids: input_ids[image_id].append(input_id)\n", " else: input_ids[image_id] = [input_id]\n", "\n", " if image_id in bboxes: bboxes[image_id].append(bbox)\n", " else: bboxes[image_id] = [bbox]\n", "\n", " if image_id in pixels_values: pixels_values[image_id].append(pixel_values)\n", " else: pixels_values[image_id] = [pixel_values]\n", "\n", " # get prediction with forward pass\n", " with torch.no_grad():\n", " output = model(\n", " input_ids=input_id.to(device),\n", " attention_mask=attention_mask.to(device),\n", " bbox=bbox.to(device),\n", " image=pixel_values.to(device)\n", " )\n", "\n", " # save probabilities of predictions in dictionnary\n", " if image_id in outputs: outputs[image_id].append(F.softmax(output.logits.squeeze(), dim=-1))\n", " else: outputs[image_id] = [F.softmax(output.logits.squeeze(), dim=-1)]\n", "\n", " return outputs, images_ids_list, chunk_ids, input_ids, bboxes\n", "\n", " else:\n", " print(\"An error occurred while getting predictions!\")" ], "metadata": { "id": "A-A9ipniOJhV" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "from functools import reduce\n", "\n", "# Get predictions (line level)\n", "def predictions_paragraph_level(dataset, outputs, images_ids_list, chunk_ids, input_ids, bboxes):\n", "\n", " ten_probs_dict, ten_input_ids_dict, ten_bboxes_dict = dict(), dict(), dict()\n", " bboxes_list_dict, input_ids_dict_dict, probs_dict_dict, df = dict(), dict(), dict(), dict()\n", "\n", " if len(images_ids_list) > 0:\n", "\n", " for i, image_id in enumerate(images_ids_list):\n", "\n", " # get image information\n", " images_list = dataset.filter(lambda example: example[\"images_ids\"] == image_id)[\"images\"]\n", " image = images_list[0]\n", " width, height = image.size\n", "\n", " # get data\n", " chunk_ids_list = chunk_ids[image_id]\n", " outputs_list = outputs[image_id]\n", " input_ids_list = input_ids[image_id]\n", " bboxes_list = bboxes[image_id]\n", "\n", " # create zeros tensors\n", " ten_probs = torch.zeros((outputs_list[0].shape[0] - 2)*len(outputs_list), outputs_list[0].shape[1])\n", " ten_input_ids = torch.ones(size=(1, (outputs_list[0].shape[0] - 2)*len(outputs_list)), dtype =int)\n", " ten_bboxes = torch.zeros(size=(1, (outputs_list[0].shape[0] - 2)*len(outputs_list), 4), dtype =int)\n", "\n", " if len(outputs_list) > 1:\n", " \n", " for num_output, (output, input_id, bbox) in enumerate(zip(outputs_list, input_ids_list, bboxes_list)):\n", " start = num_output*(max_length - 2) - max(0,num_output)*doc_stride\n", " end = start + (max_length - 2)\n", " \n", " if num_output == 0:\n", " ten_probs[start:end,:] += output[1:-1]\n", " ten_input_ids[:,start:end] = input_id[:,1:-1]\n", " ten_bboxes[:,start:end,:] = bbox[:,1:-1,:]\n", " else:\n", " ten_probs[start:start + doc_stride,:] += output[1:1 + doc_stride]\n", " ten_probs[start:start + doc_stride,:] = ten_probs[start:start + doc_stride,:] * 0.5\n", " ten_probs[start + doc_stride:end,:] += output[1 + doc_stride:-1]\n", "\n", " ten_input_ids[:,start:start + doc_stride] = input_id[:,1:1 + doc_stride]\n", " ten_input_ids[:,start + doc_stride:end] = input_id[:,1 + doc_stride:-1]\n", "\n", " ten_bboxes[:,start:start + doc_stride,:] = bbox[:,1:1 + doc_stride,:]\n", " ten_bboxes[:,start + doc_stride:end,:] = bbox[:,1 + doc_stride:-1,:]\n", " \n", " else:\n", " ten_probs += outputs_list[0][1:-1] \n", " ten_input_ids = input_ids_list[0][:,1:-1] \n", " ten_bboxes = bboxes_list[0][:,1:-1] \n", "\n", " ten_probs_list, ten_input_ids_list, ten_bboxes_list = ten_probs.tolist(), ten_input_ids.tolist()[0], ten_bboxes.tolist()[0]\n", " bboxes_list = list()\n", " input_ids_dict, probs_dict = dict(), dict()\n", " bbox_prev = [-100, -100, -100, -100]\n", " for probs, input_id, bbox in zip(ten_probs_list, ten_input_ids_list, ten_bboxes_list):\n", " bbox = denormalize_box(bbox, width, height)\n", " if bbox != bbox_prev and bbox != cls_box and bbox != sep_box and bbox[0] != bbox[2] and bbox[1] != bbox[3]:\n", " bboxes_list.append(bbox)\n", " input_ids_dict[str(bbox)] = [input_id]\n", " probs_dict[str(bbox)] = [probs]\n", " elif bbox != cls_box and bbox != sep_box and bbox[0] != bbox[2] and bbox[1] != bbox[3]:\n", " input_ids_dict[str(bbox)].append(input_id)\n", " probs_dict[str(bbox)].append(probs)\n", " bbox_prev = bbox\n", " \n", " probs_bbox = dict()\n", " for i,bbox in enumerate(bboxes_list):\n", " probs = probs_dict[str(bbox)]\n", " probs = np.array(probs).T.tolist()\n", " \n", " probs_label = list()\n", " for probs_list in probs:\n", " prob_label = reduce(lambda x, y: x*y, probs_list)\n", " prob_label = prob_label**(1./(len(probs_list))) # normalization\n", " probs_label.append(prob_label)\n", " max_value = max(probs_label)\n", " max_index = probs_label.index(max_value)\n", " probs_bbox[str(bbox)] = max_index\n", "\n", " bboxes_list_dict[image_id] = bboxes_list\n", " input_ids_dict_dict[image_id] = input_ids_dict\n", " probs_dict_dict[image_id] = probs_bbox\n", "\n", " df[image_id] = pd.DataFrame()\n", " df[image_id][\"bboxes\"] = bboxes_list\n", " df[image_id][\"texts\"] = [tokenizer.decode(input_ids_dict[str(bbox)]) for bbox in bboxes_list]\n", " df[image_id][\"labels\"] = [id2label[probs_bbox[str(bbox)]] for bbox in bboxes_list]\n", "\n", " return probs_bbox, bboxes_list_dict, input_ids_dict_dict, probs_dict_dict, df\n", "\n", " else:\n", " print(\"An error occurred while getting predictions!\")" ], "metadata": { "id": "pMfevZTrR6sb" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "# Get labeled images with lines bounding boxes\n", "def get_labeled_images(dataset, images_ids_list, bboxes_list_dict, probs_dict_dict):\n", "\n", " labeled_images = list()\n", "\n", " for i, image_id in enumerate(images_ids_list):\n", "\n", " # get image\n", " images_list = dataset.filter(lambda example: example[\"images_ids\"] == image_id)[\"images\"]\n", " image = images_list[0]\n", " width, height = image.size\n", "\n", " # get predicted boxes and labels\n", " bboxes_list = bboxes_list_dict[image_id]\n", " probs_bbox = probs_dict_dict[image_id]\n", "\n", " draw = ImageDraw.Draw(image)\n", " # https://stackoverflow.com/questions/66274858/choosing-a-pil-imagefont-by-font-name-rather-than-filename-and-cross-platform-f\n", " font = font_manager.FontProperties(family='sans-serif', weight='bold')\n", " font_file = font_manager.findfont(font)\n", " font_size = 30\n", " font = ImageFont.truetype(font_file, font_size)\n", "\n", " for bbox in bboxes_list:\n", " predicted_label = id2label[probs_bbox[str(bbox)]]\n", " draw.rectangle(bbox, outline=label2color[predicted_label])\n", " draw.text((bbox[0] + 10, bbox[1] - font_size), text=predicted_label, fill=label2color[predicted_label], font=font)\n", "\n", " labeled_images.append(image)\n", "\n", " return labeled_images" ], "metadata": { "id": "d9exNV7WS2XM" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "# get data of encoded chunk\n", "def get_encoded_chunk_inference(index_chunk=None):\n", "\n", " # get datasets\n", " example = dataset\n", " encoded_example = encoded_dataset\n", "\n", " # get randomly a document in dataset\n", " if index_chunk == None: index_chunk = random.randint(0, len(encoded_example)-1)\n", " encoded_example = encoded_example[index_chunk]\n", " encoded_image_ids = encoded_example[\"images_ids\"]\n", "\n", " # get the image\n", " example = example.filter(lambda example: example[\"images_ids\"] == encoded_image_ids)[0]\n", " image = example[\"images\"] # original image\n", " width, height = image.size\n", " page_no = example[\"page_no\"]\n", " num_pages = example[\"num_pages\"]\n", "\n", " # get boxes, texts, categories\n", " bboxes, input_ids = encoded_example[\"normalized_bboxes\"][1:-1], encoded_example[\"input_ids\"][1:-1]\n", " bboxes = [denormalize_box(bbox, width, height) for bbox in bboxes]\n", " num_tokens = len(input_ids) + 2\n", "\n", " # get unique bboxes and corresponding labels\n", " bboxes_list, input_ids_list = list(), list()\n", " input_ids_dict = dict()\n", " bbox_prev = [-100, -100, -100, -100]\n", " for i, (bbox, input_id) in enumerate(zip(bboxes, input_ids)):\n", " if bbox != bbox_prev:\n", " bboxes_list.append(bbox)\n", " input_ids_dict[str(bbox)] = [input_id]\n", " else:\n", " input_ids_dict[str(bbox)].append(input_id)\n", " \n", " # start_indexes_list.append(i)\n", " bbox_prev = bbox\n", " \n", " # do not keep \"...\"\n", " if input_ids_dict[str(bboxes_list[-1])][0] == (tokenizer.convert_tokens_to_ids('')):\n", " del input_ids_dict[str(bboxes_list[-1])]\n", " bboxes_list = bboxes_list[:-1]\n", "\n", " # get texts by line\n", " input_ids_list = input_ids_dict.values()\n", " texts_list = [tokenizer.decode(input_ids) for input_ids in input_ids_list]\n", " \n", " # display DataFrame\n", " df = pd.DataFrame({\"texts\": texts_list, \"input_ids\": input_ids_list, \"bboxes\": bboxes_list})\n", "\n", " return image, df, num_tokens, page_no, num_pages" ], "metadata": { "id": "5AyQ5NfQomMV" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "# display chunk of PDF image and its data\n", "def display_chunk_paragraphs_inference(index_chunk=None):\n", "\n", " # get image and image data\n", " image, df, num_tokens, page_no, num_pages = get_encoded_chunk_inference(index_chunk=index_chunk)\n", "\n", " # get data from dataframe\n", " input_ids = df[\"input_ids\"]\n", " texts = df[\"texts\"]\n", " bboxes = df[\"bboxes\"]\n", "\n", " print(f'Chunk ({num_tokens} tokens) of the PDF (page: {page_no+1} / {num_pages})\\n')\n", "\n", " # display image with bounding boxes\n", " print(\">> PDF image with bounding boxes of paragraphs\\n\")\n", " draw = ImageDraw.Draw(image)\n", " \n", " labels = list()\n", " for box, text in zip(bboxes, texts):\n", " color = \"red\"\n", " draw.rectangle(box, outline=color)\n", "\n", " # resize image to original\n", " width, height = image.size\n", " image = image.resize((int(0.5*width), int(0.5*height)))\n", "\n", " # convert to cv and display\n", " img = np.array(image, dtype='uint8') # PIL to cv2\n", " cv2_imshow(img)\n", " cv2.waitKey(0)\n", "\n", " # display image dataframe\n", " print(\"\\n>> Dataframe of annotated paragraphs\\n\")\n", " cols = [\"texts\",\t\"bboxes\"]\n", " df = df[cols]\n", " display(df)" ], "metadata": { "id": "yYeb88pWoUFS" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "#### APP function" ], "metadata": { "id": "QO-nRIOxCeko" } }, { "cell_type": "code", "source": [ "# APP outputs \n", "def app_outputs(uploaded_pdf):\n", " filename, msg, images = pdf_to_images(uploaded_pdf)\n", " num_images = len(images)\n", "\n", " if not msg.startswith(\"Error with the PDF\"):\n", "\n", " # Extraction of image data (text and bounding boxes)\n", " dataset, texts_lines, texts_pars, texts_lines_par, row_indexes, par_boxes, line_boxes, lines_par_boxes = extraction_data_from_image(images)\n", " # prepare our data in the format of the model\n", " encoded_dataset = dataset.map(prepare_inference_features_paragraph, batched=True, batch_size=64, remove_columns=dataset.column_names)\n", " custom_encoded_dataset = CustomDataset(encoded_dataset, tokenizer)\n", " # Get predictions (token level)\n", " outputs, images_ids_list, chunk_ids, input_ids, bboxes = predictions_token_level(images, custom_encoded_dataset)\n", " # Get predictions (paragraph level)\n", " probs_bbox, bboxes_list_dict, input_ids_dict_dict, probs_dict_dict, df = predictions_paragraph_level(dataset, outputs, images_ids_list, chunk_ids, input_ids, bboxes)\n", " # Get labeled images with lines bounding boxes\n", " images = get_labeled_images(dataset, images_ids_list, bboxes_list_dict, probs_dict_dict)\n", "\n", " img_files = list()\n", " # get image of PDF without bounding boxes\n", " for i in range(num_images):\n", " if filename != \"files/blank.png\": img_file = f\"img_{i}_\" + filename.replace(\".pdf\", \".png\")\n", " else: img_file = filename.replace(\".pdf\", \".png\")\n", " img_file = img_file.replace(\"/\", \"_\")\n", " images[i].save(img_file)\n", " img_files.append(img_file)\n", "\n", " if num_images < max_imgboxes:\n", " img_files += [image_blank]*(max_imgboxes - num_images)\n", " images += [Image.open(image_blank)]*(max_imgboxes - num_images)\n", " for count in range(max_imgboxes - num_images):\n", " df[num_images + count] = pd.DataFrame()\n", " else:\n", " img_files = img_files[:max_imgboxes]\n", " images = images[:max_imgboxes]\n", " df = dict(itertools.islice(df.items(), max_imgboxes))\n", "\n", " # save \n", " csv_files = list()\n", " for i in range(max_imgboxes):\n", " csv_file = f\"csv_{i}_\" + filename.replace(\".pdf\", \".csv\")\n", " csv_file = csv_file.replace(\"/\", \"_\")\n", " csv_files.append(gr.File.update(value=csv_file, visible=True))\n", " df[i].to_csv(csv_file, encoding=\"utf-8\", index=False)\n", "\n", " else: \n", " img_files, images, csv_files = [\"\"]*max_imgboxes, [\"\"]*max_imgboxes, [\"\"]*max_imgboxes\n", " img_files[0], img_files[1] = image_blank, image_blank\n", " images[0], images[1] = Image.open(image_blank), Image.open(image_blank)\n", " csv_file = \"csv_wo_content.csv\"\n", " csv_files[0], csv_files[1] = gr.File.update(value=csv_file, visible=True), gr.File.update(value=csv_file, visible=True)\n", " df, df_empty = dict(), pd.DataFrame()\n", " df[0], df[1] = df_empty.to_csv(csv_file, encoding=\"utf-8\", index=False), df_empty.to_csv(csv_file, encoding=\"utf-8\", index=False)\n", " \n", " return msg, img_files[0], img_files[1], images[0], images[1], csv_files[0], csv_files[1], df[0], df[1]" ], "metadata": { "id": "MbBPAYF8Cg8d" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "CQdS0CydNesH" }, "source": [ "## Model & tokenizer" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "referenced_widgets": [ "027eee36bc97498bb709774dc0d3aa58", "de7236ed3ef74572bce5c51ab1e875f8", "35da8f6e0144463db59109bf4f9e96a1", "43a7351aefb347bb87cebcdae425cfad", "0f7d488b0108488d9ccfa3f91195e658", "a517971b05df4430971c62cd4a8c551e", "4b736756f0cf4f9c96ce9bdd90330add", "73024298519c4ae887c260eff7b0a438", "001bd2e9bcd2403f9a8a2d3e1a62fcb9", "3c85e34f70e04da2aa7008c55b5f7e30", "bcf0ffb0f97b4be1b37c58cd73f5fb51", "2395de11a9d6435b933e96fd4caf25da", "d6c0ce418275488ca80973cf86c7c7b0", "125ac6893ad44604b18bbe467862197e", "0025d7e9137840bebbd4812c17338404", "de5f5e718ec94f8e84de486b464bb575", "534891d6741341e6873d6859d21f40e6", "8a88e1e639134d898c7ee06f0fdd8254", "8e433f5e62da4b07a2138c10e97bd8d3", "6b51307a4ea84974a445c21532595782", "8d2751c36dd442c382c7a81d109be5e7", "0ee248f16a684fb68cd201162d4b1824", "b506e265aae2423db0389026fb2bdc6e", "2952e9a0a4ff49a5aedaf3c6a44a72ef", "d1c05a0020cf4eba936aa2030bd9b98c", "64a2fb0c1c3e42efb834bbbdb326390d", "428ff9d9a0cf491e98911d10bb35f7b3", "f184e86b05af49a181393c50b13f174e", "02f1b8c5a11e4d2aadf379121bd41416", "dd11628422a74c98b4932604895599e5", "2ca8d06a3a0c4967be36180a131033a9", "89a38a12928c40cea4cfa78c8d79d455", "c96ceae863f840bd97581ecf34b37ba2", "31ab2545e4844b08b4c2cd4979f44505", "582d7e135eb540bdb5281d5887465601", "00e14e9b98db4c8d980f5b865f7c96ef", "6197b8032b77459692a67e973acb407d", "8f3993410c244d3eb8b2bfd19b9abaf6", "889a7cfcf6bc4e4abcdd56f998053830", "583dfe5b0057437c96238964f125c363", "8f460422a78846d785db489d00e986e3", "895870ec1faa43beb00c39ae92ed99e3", "63fb830c43b0460a8ffb6df7c5c00301", "1b3413caf0f34e81b8d561fdad9b8233", "176789e82ec44a5daca0fb9a003dc6d2", "56a58904cc074800a4614cf29d1a1495", "781ef653cff7443691643a2f2d1d5b26", "69e9045477154daf91c9a62cd20248ba", "e5c8e098d04a482a91e95827072c1984", "8ceffe1e5a7f4515ba50bd447a77fe4d", "d81a175e25394474b593f213876456f8", "f74d129f18b34a5e90c8ac78149ca01f", "d196db88ff964d1caa9eaaba98566f36", "34ba9b65e79a46a9b2eaf1ec2c9d89ed", "4e5d3b4011384c8e9c0d0174abd10327" ] }, "id": "RtvKqWjUNhM_", "outputId": "e345f95e-9a5a-426b-f92f-eefa158e6fb4" }, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "Downloading (…)lve/main/config.json: 0%| | 0.00/3.32k [00:00

Inference APP for Document Understanding at paragraph level (v2 - LayoutXLM base)

\n", "

(03/31/2023) This Inference APP uses the model Layout XLM base combined with XLM-RoBERTa base and finetuned on the dataset DocLayNet base at paragraph level (chunk size of 512 tokens).

\n", "

LayoutXLM: Multimodal Pre-training for Multilingual Visually-rich Document Understanding is a Document Understanding model that uses both layout and text in order to detect labels of bounding boxes. Combined with the model XML-RoBERTa base, this finetuned model has the capacity to understand any language. Finetuned on the dataset DocLayNet base, it can classifly any bounding box (and its OCR text) to 11 labels (Caption, Footnote, Formula, List-item, Page-footer, Page-header, Picture, Section-header, Table, Text, Title).

\n", "

It relies on an external OCR engine to get words and bounding boxes from the document image. Thus, let's run in this APP an OCR engine (PyTesseract) to get the bounding boxes, then run Layout XLM base (already fine-tuned on the dataset DocLayNet base at paragraph level) on the individual tokens and then, visualize the result at paragraph level!

\n", "

It allows to get all pages of any PDF (of any language) with bounding boxes labeled at paragraph level and the associated dataframes with labeled data (bounding boxes, texts, labels) :-)

\n", "

However, the inference time per page can be high when running the model on CPU due to the number of paragraph predictions to be made. Therefore, to avoid running this APP for too long, only the first 2 pages are processed by this APP. If you want to increase this limit, you can either clone this APP in Hugging Face Space (or run its notebook on your own plateform) and change the value of the parameter max_imgboxes, or run the inference notebook \"Document AI | Inference at paragraph level with a Document Understanding model (LayoutXLM base fine-tuned on DocLayNet dataset)\" on your own platform as it does not have this limit.

\n", "

More information about the DocLayNet datasets, the finetuning of the model and this APP in the following blog posts:

\n", "
\n", " \"\"\")\n", " with gr.Row():\n", " pdf_file = gr.File(label=\"PDF\")\n", " with gr.Row():\n", " submit_btn = gr.Button(f\"Display first {max_imgboxes} labeled PDF pages\")\n", " reset_btn = gr.Button(value=\"Clear\")\n", " with gr.Row():\n", " output_msg = gr.Textbox(label=\"Output message\")\n", " with gr.Row():\n", " fileboxes = []\n", " for num_page in range(max_imgboxes):\n", " file_path = gr.File(visible=True, label=f\"Image file of the PDF page n°{num_page}\")\n", " fileboxes.append(file_path)\n", " with gr.Row():\n", " imgboxes = []\n", " for num_page in range(max_imgboxes):\n", " img = gr.Image(type=\"pil\", label=f\"Image of the PDF page n°{num_page}\")\n", " imgboxes.append(img)\n", " with gr.Row():\n", " csvboxes = []\n", " for num_page in range(max_imgboxes):\n", " csv = gr.File(visible=True, label=f\"CSV file at paragraph level (page {num_page})\")\n", " csvboxes.append(csv)\n", " with gr.Row():\n", " dfboxes = []\n", " for num_page in range(max_imgboxes):\n", " df = gr.Dataframe(\n", " headers=[\"bounding boxes\", \"texts\", \"labels\"],\n", " datatype=[\"str\", \"str\", \"str\"],\n", " col_count=(3, \"fixed\"), \n", " visible=True,\n", " label=f\"Data of page {num_page}\",\n", " type=\"pandas\",\n", " wrap=True\n", " )\n", " dfboxes.append(df)\n", "\n", " outputboxes = [output_msg] + fileboxes + imgboxes + csvboxes + dfboxes\n", " submit_btn.click(app_outputs, inputs=[pdf_file], outputs=outputboxes)\n", " # https://github.com/gradio-app/gradio/pull/2044/files#diff-a91dd2749f68bb7d0099a0f4079a4fd2d10281e299e7b451cb1bb876a7c21975R91\n", " reset_btn.click(\n", " lambda: [pdf_file.update(value=None), output_msg.update(value=None)] + [filebox.update(value=None) for filebox in fileboxes] + [imgbox.update(value=None) for imgbox in imgboxes] + [csvbox.update(value=None) for csvbox in csvboxes] + [dfbox.update(value=None) for dfbox in dfboxes],\n", " inputs=[],\n", " outputs=[pdf_file, output_msg] + fileboxes + imgboxes + csvboxes + dfboxes\n", " )\n", " \n", " gr.Examples(\n", " [[\"files/example.pdf\"]],\n", " [pdf_file],\n", " outputboxes,\n", " fn=app_outputs,\n", " cache_examples=True,\n", " )\n", " \n", "demo.launch()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 636, "referenced_widgets": [ "63757a606b5a45c88daccb023a1c2547", "237b8a42bdf64eceaa9e073faa4cfad3", "7c5a5430aca34eb98a85a3155522b862", "2dd944ec66a045698e09c3c0b0cb276a", "5e5122267ee74087831b6f21a706b60f", "074b2977298d43f2b04c5950b7d37ee0", "69dc1a5406eb48c38d405d06ae3ae5b5", "bbeb74132fbf47b8bb8e844cb6c6ba75", "c9dc42adabd84e42b4ccf1ae3738768c", "db0d156650cb44d2b1e3f7eb6073d2ad", "436ae7ba0c4c4a35bd902b679aed9d9f", "7f84fa71b5a64bfb969f21ac41ea5b56", "f418e8a511c64476bbef86a11557afa9", "fddfdde741ee4a1985b1c8ebc369481f", "d176c02f18bd41dabaacc7af42d8d2c4", "056360642f8b43c182337bedd4d37c7c", "2087f46ab1be4e99ac880087eb87c32a", "5dac7b250acd4f3cb960b8dcde8162f5", "e5ce9b19f54948d49fcf516ca48fdb70", "95ea0e08bdca4f2b839be4f387853d03", "404b78450a014dd8913b3b26e05568e9", "88000ea84351452fb6757a0b83a82c61", "61e29aa2d46841559c9d46d8734deffd", "76313cd5bfd54af9996d151e445352bc", "c064033205724dac8749f2148cfc4964", "1c7d6f7054c74c28a1dd5023e7b70c6d", "eccb8cf34b3243b0a49368bcfc062bf3", "fa1a2e2ef7064f77950fd67b963338ae", "e93c0a76b8af4429bbafb72d60c0127c", "00ed3a0121a3468c824beeb9743e9831", "13b4b671811e4a0b959c31c571850619", "d1539f404ac84f4e86da4887a3b474a8", "092c486dd13f4436b51e858f44cfedb6", "a4dc76cda8ff423e8452e7c026ed38af", "36ae268290224d8eaa322516c900e09c", "e423dd6ea30f4b8a9df774eab1cc4205", "6193024ba7c2453892f926b3a845d646", "48e3ac163cc04dccad006ca260bcbaed", "713ac10c9d8d4adea71cb1766967ac1f", "a933ed8ebb69454ba60101aa44740a85", "725d657946e149f6a7ab64d8337e7991", "78c158b5c3534964888b3262aadf3d49", "06e4cc01b560462e81f26b3ea8a17056", "86ba70c385ab4c4c94ebb58b9b7ef918", "fcb8659ad385444f8dc1ce92e339cf23", "62cebf661c6e4ce9b807af6f14283730", "ea185489e92f427d902781316ab30938", "14e528ba7dc842f2b793563eb260fdd6", "cf5becd6b2374a6c90594531c69a77cd", "eb171d4cf8b64c619f2eda2dff7f2b32", "677cd7cc443547648af2298fc9d84433", "b13711fa9e754a1ea9aaf862724f14c2", "5d4b40d7c0dc4175bc79b10a18feb6c0", "fd5e8ac5f8014b0391b79a0be7775f19", "863cda03a3a14b68a51603c00c1c360a" ] }, "id": "RvYyMF7jXgJP", "outputId": "4c475214-bc7c-4d3d-e19c-78fbf4a4b375" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Caching examples at: '/content/gradio_cached_examples/92'\n" ] }, { "output_type": "display_data", "data": { "text/plain": [ "Map: 0%| | 0/2 [00:00" ], "application/javascript": [ "(async (port, path, width, height, cache, element) => {\n", " if (!google.colab.kernel.accessAllowed && !cache) {\n", " return;\n", " }\n", " element.appendChild(document.createTextNode(''));\n", " const url = await google.colab.kernel.proxyPort(port, {cache});\n", "\n", " const external_link = document.createElement('div');\n", " external_link.innerHTML = `\n", "
\n", " Running on \n", " https://localhost:${port}${path}\n", " \n", "
\n", " `;\n", " element.appendChild(external_link);\n", "\n", " const iframe = document.createElement('iframe');\n", " iframe.src = new URL(path, url).toString();\n", " iframe.height = height;\n", " iframe.allow = \"autoplay; camera; microphone; clipboard-read; clipboard-write;\"\n", " iframe.width = width;\n", " iframe.style.border = 0;\n", " element.appendChild(iframe);\n", " })(7861, \"/\", \"100%\", 500, false, window.element)" ] }, "metadata": {} }, { "output_type": "execute_result", "data": { "text/plain": [] }, "metadata": {}, "execution_count": 23 } ] }, { "cell_type": "markdown", "source": [ "# END" ], "metadata": { "id": "F2POOE3IOMyu" } } ], "metadata": { "colab": { "collapsed_sections": [ "TVpB8L5mxgSx", "bflle1CCngoo", "mnfTZnF4mQbh", "ibTxXBjfngop", "gA3leN0cdb3g", "TrlF26R14NYP", "WO1bn3pmNzmX", "Q4N2b_hKLla-", "CQdS0CydNesH", "F2POOE3IOMyu" ], "provenance": [] }, "gpuClass": "standard", "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.10" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "4c8001adf25e4a75a7e1c57fde9b37e1": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_f43fe9645f134b4a82c7888ef451ffbf", "IPY_MODEL_f9b94a89019e43548d8f1de80fad3128", "IPY_MODEL_a0f76866692541f89618e0ba675f3aca" ], "layout": "IPY_MODEL_2498de6a886d4900a5c89b3b67189228" } }, "f43fe9645f134b4a82c7888ef451ffbf": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_7077113b8ad248e0912eefd48c37a68f", "placeholder": "​", "style": "IPY_MODEL_9f7965b427464622b08b773cd7fce32e", "value": "Downloading (…)in/files/example.pdf: 100%" } }, "f9b94a89019e43548d8f1de80fad3128": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_57bc09c5a01649e7bc5e99543c201864", "max": 343416, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_86264c860f514fda9a883babef071a41", "value": 343416 } }, "a0f76866692541f89618e0ba675f3aca": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_4475bdf31e83446d8a48c619ac52b9d2", "placeholder": "​", "style": "IPY_MODEL_ff5699632af943c8a2b3e829e6504660", "value": " 343k/343k [00:00<00:00, 2.22MB/s]" } }, "2498de6a886d4900a5c89b3b67189228": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "7077113b8ad248e0912eefd48c37a68f": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "9f7965b427464622b08b773cd7fce32e": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "57bc09c5a01649e7bc5e99543c201864": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "86264c860f514fda9a883babef071a41": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "4475bdf31e83446d8a48c619ac52b9d2": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "ff5699632af943c8a2b3e829e6504660": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "1f1a5aa4e8c14c0ebb3177519310482e": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_97210646872a4ae19b2c906198aa3d09", "IPY_MODEL_ce9de3bc610141ee948ceefbc8d72122", "IPY_MODEL_acd311cb96c54d3d8d49e7905db95fbf" ], "layout": "IPY_MODEL_b3f22b0b4cdd4833a463ffe41af9f681" } }, "97210646872a4ae19b2c906198aa3d09": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_824a6739a11045a2a145e02af9f7abe6", "placeholder": "​", "style": "IPY_MODEL_fa679fb4cf3f49a581fd289e7acaa745", "value": "Downloading (…)main/files/blank.pdf: 100%" } }, "ce9de3bc610141ee948ceefbc8d72122": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_b8e65d8dd13347c3858771eaf8705968", "max": 1148, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_ad54cb754b084e699c6595ea2bccb9b7", "value": 1148 } }, "acd311cb96c54d3d8d49e7905db95fbf": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_6f402740a0554008a8d4d7dd5a20aaba", "placeholder": "​", "style": "IPY_MODEL_a03bcb2b3a8a4b98be484ea7de6573d0", "value": " 1.15k/1.15k [00:00<00:00, 28.6kB/s]" } }, "b3f22b0b4cdd4833a463ffe41af9f681": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "824a6739a11045a2a145e02af9f7abe6": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "fa679fb4cf3f49a581fd289e7acaa745": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "b8e65d8dd13347c3858771eaf8705968": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "ad54cb754b084e699c6595ea2bccb9b7": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "6f402740a0554008a8d4d7dd5a20aaba": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "a03bcb2b3a8a4b98be484ea7de6573d0": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "ce990ff6b31d457aaa415f0e8b5e6b2f": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_e3c9d0f9700947b7b0c2e594bf403807", "IPY_MODEL_efb22d6a618a4a97a83badb60cda0500", "IPY_MODEL_03562ec22ee242458506d133d8e6964a" ], "layout": "IPY_MODEL_7684f8d9c4be4b9b86037abe09f3152c" } }, "e3c9d0f9700947b7b0c2e594bf403807": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_cc41c283d9cb46068ccff80739e66bbe", "placeholder": "​", "style": "IPY_MODEL_f2866a68ef734760b97fc5ac7f671188", "value": "Downloading (…)main/files/blank.png: 100%" } }, "efb22d6a618a4a97a83badb60cda0500": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_57f6b9dc5a234b809886df25144e941c", "max": 3994, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_f52ecee210084a5396c93c92cfdc9f18", "value": 3994 } }, "03562ec22ee242458506d133d8e6964a": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_a037200de78242129f8312b6ca3248e5", "placeholder": "​", "style": "IPY_MODEL_acb6112f81854cfb9d035cd8534c4b99", "value": " 3.99k/3.99k [00:00<00:00, 139kB/s]" } }, "7684f8d9c4be4b9b86037abe09f3152c": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "cc41c283d9cb46068ccff80739e66bbe": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "f2866a68ef734760b97fc5ac7f671188": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "57f6b9dc5a234b809886df25144e941c": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "f52ecee210084a5396c93c92cfdc9f18": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "a037200de78242129f8312b6ca3248e5": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "acb6112f81854cfb9d035cd8534c4b99": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "3eccb2b5ce3340afbcdb5b3634f3b51e": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_ed9d62ef79d645b38c402a37e6f2e4a9", "IPY_MODEL_45132f3025354e128fa17904982f344e", "IPY_MODEL_438ee831c93d413a848c8667ce764d4e" ], "layout": "IPY_MODEL_b1730270d42b4db59f9ba29bab10e77a" } }, "ed9d62ef79d645b38c402a37e6f2e4a9": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_ec2f5ab867ce44a99a31dc5d3d8607c0", "placeholder": "​", "style": "IPY_MODEL_d30c7e7389a24ed8836f0a692c39971d", "value": "Downloading (…)es/languages_iso.csv: 100%" } }, "45132f3025354e128fa17904982f344e": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_39024e327c5648cfbefb65b736cbdde2", "max": 2522, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_358e88d40ce24cfca04b995a55304234", "value": 2522 } }, "438ee831c93d413a848c8667ce764d4e": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_1a96a15745724fa1843b20d3cb637096", "placeholder": "​", "style": "IPY_MODEL_deb60ac2ea4343f5bb45a8ce631978f2", "value": " 2.52k/2.52k [00:00<00:00, 100kB/s]" } }, "b1730270d42b4db59f9ba29bab10e77a": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "ec2f5ab867ce44a99a31dc5d3d8607c0": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "d30c7e7389a24ed8836f0a692c39971d": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "39024e327c5648cfbefb65b736cbdde2": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "358e88d40ce24cfca04b995a55304234": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "1a96a15745724fa1843b20d3cb637096": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "deb60ac2ea4343f5bb45a8ce631978f2": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "c6de0053654c4c4b96c176da5034566c": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_8119d1abaab9413abd9f2808046c1220", "IPY_MODEL_3c8d45173c4647cb867ba881a046f882", "IPY_MODEL_6fbf389b3e314a3cb3742939f5a27e37" ], "layout": "IPY_MODEL_4411801bf6f24e33a662d1ede5ee18f0" } }, "8119d1abaab9413abd9f2808046c1220": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_11653bc1df8842bc93f190b257d64f9a", "placeholder": "​", "style": "IPY_MODEL_edb05687951f47bc94742e7e341ed85e", "value": "Downloading (…)guages_tesseract.csv: 100%" } }, "3c8d45173c4647cb867ba881a046f882": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_9c7250f75f0f47f087576bd29aa75322", "max": 2130, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_d6f1c98af4e345d19067186179652fd0", "value": 2130 } }, "6fbf389b3e314a3cb3742939f5a27e37": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_af18641eef3c4b7da02ee9f6782c2d44", "placeholder": "​", "style": "IPY_MODEL_c6be9fa3c9de46a2b45f4b21fef18b59", "value": " 2.13k/2.13k [00:00<00:00, 77.8kB/s]" } }, "4411801bf6f24e33a662d1ede5ee18f0": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "11653bc1df8842bc93f190b257d64f9a": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "edb05687951f47bc94742e7e341ed85e": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "9c7250f75f0f47f087576bd29aa75322": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "d6f1c98af4e345d19067186179652fd0": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "af18641eef3c4b7da02ee9f6782c2d44": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "c6be9fa3c9de46a2b45f4b21fef18b59": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "33bc0fda05844ab884fcde2140487312": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_fcca5f294e3846e3b31fd2580a526a9b", "IPY_MODEL_02b1b6adea3548e6ac13784d71b69f83", "IPY_MODEL_8946342fa3ea4fd6b94b7407d49ca41a" ], "layout": "IPY_MODEL_81ba4349ca284ab387eff186ac2f6325" } }, "fcca5f294e3846e3b31fd2580a526a9b": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_5ca070d2aea84170aa6150f77881c776", "placeholder": "​", "style": "IPY_MODEL_e8e09287973d41878bd5620b9fce178e", "value": "Downloading (…)files/wo_content.png: 100%" } }, "02b1b6adea3548e6ac13784d71b69f83": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_5e99ba63906247c8b91503857e5d45da", "max": 27602, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_cbd5b39e85314d1f9e5d7de0b3c366c1", "value": 27602 } }, "8946342fa3ea4fd6b94b7407d49ca41a": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_39c45f9ee9124e39a19fb8aba16ff96b", "placeholder": "​", "style": "IPY_MODEL_af08afda585440e58aaa5e8a3327c31c", "value": " 27.6k/27.6k [00:00<00:00, 447kB/s]" } }, "81ba4349ca284ab387eff186ac2f6325": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "5ca070d2aea84170aa6150f77881c776": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "e8e09287973d41878bd5620b9fce178e": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "5e99ba63906247c8b91503857e5d45da": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "cbd5b39e85314d1f9e5d7de0b3c366c1": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "39c45f9ee9124e39a19fb8aba16ff96b": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "af08afda585440e58aaa5e8a3327c31c": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "027eee36bc97498bb709774dc0d3aa58": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_de7236ed3ef74572bce5c51ab1e875f8", "IPY_MODEL_35da8f6e0144463db59109bf4f9e96a1", "IPY_MODEL_43a7351aefb347bb87cebcdae425cfad" ], "layout": "IPY_MODEL_0f7d488b0108488d9ccfa3f91195e658" } }, "de7236ed3ef74572bce5c51ab1e875f8": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_a517971b05df4430971c62cd4a8c551e", "placeholder": "​", "style": "IPY_MODEL_4b736756f0cf4f9c96ce9bdd90330add", "value": "Downloading (…)lve/main/config.json: 100%" } }, "35da8f6e0144463db59109bf4f9e96a1": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_73024298519c4ae887c260eff7b0a438", "max": 3320, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_001bd2e9bcd2403f9a8a2d3e1a62fcb9", "value": 3320 } }, "43a7351aefb347bb87cebcdae425cfad": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_3c85e34f70e04da2aa7008c55b5f7e30", "placeholder": "​", "style": "IPY_MODEL_bcf0ffb0f97b4be1b37c58cd73f5fb51", "value": " 3.32k/3.32k [00:00<00:00, 42.6kB/s]" } }, "0f7d488b0108488d9ccfa3f91195e658": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "a517971b05df4430971c62cd4a8c551e": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "4b736756f0cf4f9c96ce9bdd90330add": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "73024298519c4ae887c260eff7b0a438": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "001bd2e9bcd2403f9a8a2d3e1a62fcb9": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "3c85e34f70e04da2aa7008c55b5f7e30": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "bcf0ffb0f97b4be1b37c58cd73f5fb51": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "2395de11a9d6435b933e96fd4caf25da": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_d6c0ce418275488ca80973cf86c7c7b0", "IPY_MODEL_125ac6893ad44604b18bbe467862197e", "IPY_MODEL_0025d7e9137840bebbd4812c17338404" ], "layout": "IPY_MODEL_de5f5e718ec94f8e84de486b464bb575" } }, "d6c0ce418275488ca80973cf86c7c7b0": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_534891d6741341e6873d6859d21f40e6", "placeholder": "​", "style": "IPY_MODEL_8a88e1e639134d898c7ee06f0fdd8254", "value": "Downloading pytorch_model.bin: 100%" } }, "125ac6893ad44604b18bbe467862197e": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_8e433f5e62da4b07a2138c10e97bd8d3", "max": 1476527911, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_6b51307a4ea84974a445c21532595782", "value": 1476527911 } }, "0025d7e9137840bebbd4812c17338404": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_8d2751c36dd442c382c7a81d109be5e7", "placeholder": "​", "style": "IPY_MODEL_0ee248f16a684fb68cd201162d4b1824", "value": " 1.48G/1.48G [00:22<00:00, 79.1MB/s]" } }, "de5f5e718ec94f8e84de486b464bb575": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "534891d6741341e6873d6859d21f40e6": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "8a88e1e639134d898c7ee06f0fdd8254": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "8e433f5e62da4b07a2138c10e97bd8d3": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "6b51307a4ea84974a445c21532595782": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "8d2751c36dd442c382c7a81d109be5e7": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "0ee248f16a684fb68cd201162d4b1824": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "b506e265aae2423db0389026fb2bdc6e": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_2952e9a0a4ff49a5aedaf3c6a44a72ef", "IPY_MODEL_d1c05a0020cf4eba936aa2030bd9b98c", "IPY_MODEL_64a2fb0c1c3e42efb834bbbdb326390d" ], "layout": "IPY_MODEL_428ff9d9a0cf491e98911d10bb35f7b3" } }, "2952e9a0a4ff49a5aedaf3c6a44a72ef": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_f184e86b05af49a181393c50b13f174e", "placeholder": "​", "style": "IPY_MODEL_02f1b8c5a11e4d2aadf379121bd41416", "value": "Downloading (…)lve/main/config.json: 100%" } }, "d1c05a0020cf4eba936aa2030bd9b98c": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_dd11628422a74c98b4932604895599e5", "max": 615, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_2ca8d06a3a0c4967be36180a131033a9", "value": 615 } }, "64a2fb0c1c3e42efb834bbbdb326390d": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_89a38a12928c40cea4cfa78c8d79d455", "placeholder": "​", "style": "IPY_MODEL_c96ceae863f840bd97581ecf34b37ba2", "value": " 615/615 [00:00<00:00, 12.1kB/s]" } }, "428ff9d9a0cf491e98911d10bb35f7b3": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "f184e86b05af49a181393c50b13f174e": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "02f1b8c5a11e4d2aadf379121bd41416": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "dd11628422a74c98b4932604895599e5": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "2ca8d06a3a0c4967be36180a131033a9": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "89a38a12928c40cea4cfa78c8d79d455": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "c96ceae863f840bd97581ecf34b37ba2": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "31ab2545e4844b08b4c2cd4979f44505": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_582d7e135eb540bdb5281d5887465601", "IPY_MODEL_00e14e9b98db4c8d980f5b865f7c96ef", "IPY_MODEL_6197b8032b77459692a67e973acb407d" ], "layout": "IPY_MODEL_8f3993410c244d3eb8b2bfd19b9abaf6" } }, "582d7e135eb540bdb5281d5887465601": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_889a7cfcf6bc4e4abcdd56f998053830", "placeholder": "​", "style": "IPY_MODEL_583dfe5b0057437c96238964f125c363", "value": "Downloading (…)tencepiece.bpe.model: 100%" } }, "00e14e9b98db4c8d980f5b865f7c96ef": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_8f460422a78846d785db489d00e986e3", "max": 5069051, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_895870ec1faa43beb00c39ae92ed99e3", "value": 5069051 } }, "6197b8032b77459692a67e973acb407d": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_63fb830c43b0460a8ffb6df7c5c00301", "placeholder": "​", "style": "IPY_MODEL_1b3413caf0f34e81b8d561fdad9b8233", "value": " 5.07M/5.07M [00:00<00:00, 21.5MB/s]" } }, "8f3993410c244d3eb8b2bfd19b9abaf6": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "889a7cfcf6bc4e4abcdd56f998053830": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "583dfe5b0057437c96238964f125c363": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "8f460422a78846d785db489d00e986e3": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "895870ec1faa43beb00c39ae92ed99e3": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "63fb830c43b0460a8ffb6df7c5c00301": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "1b3413caf0f34e81b8d561fdad9b8233": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "176789e82ec44a5daca0fb9a003dc6d2": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_56a58904cc074800a4614cf29d1a1495", "IPY_MODEL_781ef653cff7443691643a2f2d1d5b26", "IPY_MODEL_69e9045477154daf91c9a62cd20248ba" ], "layout": "IPY_MODEL_e5c8e098d04a482a91e95827072c1984" } }, "56a58904cc074800a4614cf29d1a1495": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_8ceffe1e5a7f4515ba50bd447a77fe4d", "placeholder": "​", "style": "IPY_MODEL_d81a175e25394474b593f213876456f8", "value": "Downloading (…)/main/tokenizer.json: 100%" } }, "781ef653cff7443691643a2f2d1d5b26": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_f74d129f18b34a5e90c8ac78149ca01f", "max": 9096718, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_d196db88ff964d1caa9eaaba98566f36", "value": 9096718 } }, "69e9045477154daf91c9a62cd20248ba": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_34ba9b65e79a46a9b2eaf1ec2c9d89ed", "placeholder": "​", "style": "IPY_MODEL_4e5d3b4011384c8e9c0d0174abd10327", "value": " 9.10M/9.10M [00:00<00:00, 30.3MB/s]" } }, "e5c8e098d04a482a91e95827072c1984": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "8ceffe1e5a7f4515ba50bd447a77fe4d": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "d81a175e25394474b593f213876456f8": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "f74d129f18b34a5e90c8ac78149ca01f": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "d196db88ff964d1caa9eaaba98566f36": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "34ba9b65e79a46a9b2eaf1ec2c9d89ed": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "4e5d3b4011384c8e9c0d0174abd10327": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "63757a606b5a45c88daccb023a1c2547": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_237b8a42bdf64eceaa9e073faa4cfad3", "IPY_MODEL_7c5a5430aca34eb98a85a3155522b862", "IPY_MODEL_2dd944ec66a045698e09c3c0b0cb276a" ], "layout": "IPY_MODEL_5e5122267ee74087831b6f21a706b60f" } }, "237b8a42bdf64eceaa9e073faa4cfad3": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_074b2977298d43f2b04c5950b7d37ee0", "placeholder": "​", "style": "IPY_MODEL_69dc1a5406eb48c38d405d06ae3ae5b5", "value": "Map: 100%" } }, "7c5a5430aca34eb98a85a3155522b862": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_bbeb74132fbf47b8bb8e844cb6c6ba75", "max": 2, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_c9dc42adabd84e42b4ccf1ae3738768c", "value": 2 } }, "2dd944ec66a045698e09c3c0b0cb276a": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_db0d156650cb44d2b1e3f7eb6073d2ad", "placeholder": "​", "style": "IPY_MODEL_436ae7ba0c4c4a35bd902b679aed9d9f", "value": " 2/2 [00:00<00:00, 6.89 examples/s]" } }, "5e5122267ee74087831b6f21a706b60f": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": "hidden", "width": null } }, "074b2977298d43f2b04c5950b7d37ee0": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "69dc1a5406eb48c38d405d06ae3ae5b5": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "bbeb74132fbf47b8bb8e844cb6c6ba75": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "c9dc42adabd84e42b4ccf1ae3738768c": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "db0d156650cb44d2b1e3f7eb6073d2ad": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "436ae7ba0c4c4a35bd902b679aed9d9f": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "7f84fa71b5a64bfb969f21ac41ea5b56": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_f418e8a511c64476bbef86a11557afa9", "IPY_MODEL_fddfdde741ee4a1985b1c8ebc369481f", "IPY_MODEL_d176c02f18bd41dabaacc7af42d8d2c4" ], "layout": "IPY_MODEL_056360642f8b43c182337bedd4d37c7c" } }, "f418e8a511c64476bbef86a11557afa9": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_2087f46ab1be4e99ac880087eb87c32a", "placeholder": "​", "style": "IPY_MODEL_5dac7b250acd4f3cb960b8dcde8162f5", "value": "Filter: 100%" } }, "fddfdde741ee4a1985b1c8ebc369481f": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_e5ce9b19f54948d49fcf516ca48fdb70", "max": 2, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_95ea0e08bdca4f2b839be4f387853d03", "value": 2 } }, "d176c02f18bd41dabaacc7af42d8d2c4": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_404b78450a014dd8913b3b26e05568e9", "placeholder": "​", "style": "IPY_MODEL_88000ea84351452fb6757a0b83a82c61", "value": " 2/2 [00:00<00:00, 6.70 examples/s]" } }, "056360642f8b43c182337bedd4d37c7c": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": "hidden", "width": null } }, "2087f46ab1be4e99ac880087eb87c32a": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "5dac7b250acd4f3cb960b8dcde8162f5": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "e5ce9b19f54948d49fcf516ca48fdb70": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "95ea0e08bdca4f2b839be4f387853d03": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "404b78450a014dd8913b3b26e05568e9": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "88000ea84351452fb6757a0b83a82c61": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "61e29aa2d46841559c9d46d8734deffd": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_76313cd5bfd54af9996d151e445352bc", "IPY_MODEL_c064033205724dac8749f2148cfc4964", "IPY_MODEL_1c7d6f7054c74c28a1dd5023e7b70c6d" ], "layout": "IPY_MODEL_eccb8cf34b3243b0a49368bcfc062bf3" } }, "76313cd5bfd54af9996d151e445352bc": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_fa1a2e2ef7064f77950fd67b963338ae", "placeholder": "​", "style": "IPY_MODEL_e93c0a76b8af4429bbafb72d60c0127c", "value": "Filter: 100%" } }, "c064033205724dac8749f2148cfc4964": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_00ed3a0121a3468c824beeb9743e9831", "max": 2, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_13b4b671811e4a0b959c31c571850619", "value": 2 } }, "1c7d6f7054c74c28a1dd5023e7b70c6d": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_d1539f404ac84f4e86da4887a3b474a8", "placeholder": "​", "style": "IPY_MODEL_092c486dd13f4436b51e858f44cfedb6", "value": " 2/2 [00:00<00:00, 8.78 examples/s]" } }, "eccb8cf34b3243b0a49368bcfc062bf3": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": "hidden", "width": null } }, "fa1a2e2ef7064f77950fd67b963338ae": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "e93c0a76b8af4429bbafb72d60c0127c": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "00ed3a0121a3468c824beeb9743e9831": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "13b4b671811e4a0b959c31c571850619": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "d1539f404ac84f4e86da4887a3b474a8": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "092c486dd13f4436b51e858f44cfedb6": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "a4dc76cda8ff423e8452e7c026ed38af": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_36ae268290224d8eaa322516c900e09c", "IPY_MODEL_e423dd6ea30f4b8a9df774eab1cc4205", "IPY_MODEL_6193024ba7c2453892f926b3a845d646" ], "layout": "IPY_MODEL_48e3ac163cc04dccad006ca260bcbaed" } }, "36ae268290224d8eaa322516c900e09c": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_713ac10c9d8d4adea71cb1766967ac1f", "placeholder": "​", "style": "IPY_MODEL_a933ed8ebb69454ba60101aa44740a85", "value": "Filter: 100%" } }, "e423dd6ea30f4b8a9df774eab1cc4205": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_725d657946e149f6a7ab64d8337e7991", "max": 2, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_78c158b5c3534964888b3262aadf3d49", "value": 2 } }, "6193024ba7c2453892f926b3a845d646": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_06e4cc01b560462e81f26b3ea8a17056", "placeholder": "​", "style": "IPY_MODEL_86ba70c385ab4c4c94ebb58b9b7ef918", "value": " 2/2 [00:00<00:00, 10.20 examples/s]" } }, "48e3ac163cc04dccad006ca260bcbaed": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": "hidden", "width": null } }, "713ac10c9d8d4adea71cb1766967ac1f": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "a933ed8ebb69454ba60101aa44740a85": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "725d657946e149f6a7ab64d8337e7991": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "78c158b5c3534964888b3262aadf3d49": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "06e4cc01b560462e81f26b3ea8a17056": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "86ba70c385ab4c4c94ebb58b9b7ef918": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "fcb8659ad385444f8dc1ce92e339cf23": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_62cebf661c6e4ce9b807af6f14283730", "IPY_MODEL_ea185489e92f427d902781316ab30938", "IPY_MODEL_14e528ba7dc842f2b793563eb260fdd6" ], "layout": "IPY_MODEL_cf5becd6b2374a6c90594531c69a77cd" } }, "62cebf661c6e4ce9b807af6f14283730": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_eb171d4cf8b64c619f2eda2dff7f2b32", "placeholder": "​", "style": "IPY_MODEL_677cd7cc443547648af2298fc9d84433", "value": "Filter: 100%" } }, "ea185489e92f427d902781316ab30938": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_b13711fa9e754a1ea9aaf862724f14c2", "max": 2, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_5d4b40d7c0dc4175bc79b10a18feb6c0", "value": 2 } }, "14e528ba7dc842f2b793563eb260fdd6": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_fd5e8ac5f8014b0391b79a0be7775f19", "placeholder": "​", "style": "IPY_MODEL_863cda03a3a14b68a51603c00c1c360a", "value": " 2/2 [00:00<00:00, 9.84 examples/s]" } }, "cf5becd6b2374a6c90594531c69a77cd": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": "hidden", "width": null } }, "eb171d4cf8b64c619f2eda2dff7f2b32": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "677cd7cc443547648af2298fc9d84433": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "b13711fa9e754a1ea9aaf862724f14c2": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "5d4b40d7c0dc4175bc79b10a18feb6c0": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "fd5e8ac5f8014b0391b79a0be7775f19": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "863cda03a3a14b68a51603c00c1c360a": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } } } } }, "nbformat": 4, "nbformat_minor": 0 }