Full Code of m3hrdadfi/soxan for AI

main 1cf82aa33892 cached
15 files
8.1 MB
2.1M tokens
26 symbols
1 requests
Download .txt
Showing preview only (8,455K chars total). Download the full file or copy to clipboard to get everything.
Repository: m3hrdadfi/soxan
Branch: main
Commit: 1cf82aa33892
Files: 15
Total size: 8.1 MB

Directory structure:
gitextract_xc5zf8sr/

├── .github/
│   └── workflows/
│       └── sync_streamlit_speech_text_emotion_to_space.yml
├── .gitignore
├── LICENSE
├── README.md
├── notebooks/
│   ├── Eating_Sound_Collection_using_Wav2Vec2.ipynb
│   ├── Emotion_recognition_in_Greek_speech_using_HuBERT.ipynb
│   ├── Emotion_recognition_in_Greek_speech_using_Wav2Vec2.ipynb
│   └── Regression_Example_Emotion_recognition_in_Greek_speech_using_Wav2Vec2.ipynb
├── requirements.txt
├── run_wav2vec_clf.py
└── src/
    ├── __init__.py
    ├── collator.py
    ├── modeling_outputs.py
    ├── models.py
    └── trainer.py

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/workflows/sync_streamlit_speech_text_emotion_to_space.yml
================================================
name: Sync Streamlit to Hugging Face space [speech-text-emotion]

on:
  push:
    branches: [streamlit-speech-text-emotion]

  # to run this workflow manually from the Actions tab
  workflow_dispatch:

jobs:
  sync-streamlit-to-space:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0
      - name: Push to space
        env:
          HF_TOKEN: ${{ secrets.HF_TOKEN }}
          HF_USERNAME: m3hrdadfi
          HF_SPACE: huggingface.co/spaces/m3hrdadfi/speech-text-emotion
          TARGET_BRANCH: main
          GIT_USER_EMAIL: m3hrdadfi@gmail.com
          GIT_USER_NAME: Mehrdad Farahani
        run: |
          echo "Cloning destination git repository"
          git config --global user.email "$GIT_USER_EMAIL"
          git config --global user.name "$GIT_USER_NAME"
          CLONE_DIR=$(mktemp -d)
          git clone "https://$HF_USERNAME:$HF_TOKEN@$HF_SPACE" "$CLONE_DIR"
          ls -la "$CLONE_DIR"
          echo "Copy contents to clone git repository"
          cp -rf ./apps/streamlit-speech-text-emotion/* "$CLONE_DIR"
          COMMIT_MESSAGE=$(git log --oneline --format=%B -n 1 HEAD | head -n 1)
          COMM=${COMM:=Synch with Github}
          echo "commit message:"
          echo "$COMMIT_MESSAGE"
          cd "$CLONE_DIR"
          echo "Remove wav files"
          rm -f *.wav
          echo "Files that will be pushed:"
          ls -la
          echo "git add:"
          git add -A
          echo "git status:"
          git status
          echo "git diff-index:"
          git diff-index --quiet HEAD || git commit --message "$COMMIT_MESSAGE"
          echo "git push origin:"
          git push "https://$HF_USERNAME:$HF_TOKEN@$HF_SPACE" "$TARGET_BRANCH"


================================================
FILE: .gitignore
================================================
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
.python-version

# pipenv
#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
#   However, in case of collaboration, if having platform-specific dependencies or dependencies
#   having no cross-platform support, pipenv may install dependencies that don't work, or not
#   install all needed dependencies.
#Pipfile.lock

# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/
.idea
*.tmp.py
.DS_Store
.DS_store

================================================
FILE: LICENSE
================================================
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.


================================================
FILE: README.md
================================================
# Soxan

> در زبان پارسی به نام سخن


This repository consists of models, scripts, and notebooks that help you to use all the benefits of Wav2Vec 2.0 in your
research. In the following, I'll show you how to train speech tasks in your dataset and how to use the pretrained
models.

## How to train

I'm just at the beginning of all the possible speech tasks. To start, we continue the training script with the speech
emotion recognition problem.

### Training - Notebook

| Task                                     | Notebook                                                                                                                                                                                                            |
|------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Speech Emotion Recognition (Wav2Vec 2.0) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/m3hrdadfi/soxan/blob/main/notebooks/Emotion_recognition_in_Greek_speech_using_Wav2Vec2.ipynb) |
| Speech Emotion Recognition (Hubert)      | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/m3hrdadfi/soxan/blob/main/notebooks/Emotion_recognition_in_Greek_speech_using_HuBERT.ipynb)   |
| Audio Classification (Wav2Vec 2.0)       | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/m3hrdadfi/soxan/blob/main/notebooks/Eating_Sound_Collection_using_Wav2Vec2.ipynb)             |

### Training - CMD

```bash
python3 run_wav2vec_clf.py \
    --pooling_mode="mean" \
    --model_name_or_path="lighteternal/wav2vec2-large-xlsr-53-greek" \
    --model_mode="wav2vec2" \ # or you can use hubert
    --output_dir=/path/to/output \
    --cache_dir=/path/to/cache/ \
    --train_file=/path/to/train.csv \
    --validation_file=/path/to/dev.csv \
    --test_file=/path/to/test.csv \
    --per_device_train_batch_size=4 \
    --per_device_eval_batch_size=4 \
    --gradient_accumulation_steps=2 \
    --learning_rate=1e-4 \
    --num_train_epochs=5.0 \
    --evaluation_strategy="steps"\
    --save_steps=100 \
    --eval_steps=100 \
    --logging_steps=100 \
    --save_total_limit=2 \
    --do_eval \
    --do_train \
    --fp16 \
    --freeze_feature_extractor
```

### Prediction

```python
import torch
import torch.nn as nn
import torch.nn.functional as F
import torchaudio
from transformers import AutoConfig, Wav2Vec2FeatureExtractor
from src.models import Wav2Vec2ForSpeechClassification, HubertForSpeechClassification

model_name_or_path = "path/to/your-pretrained-model"

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
config = AutoConfig.from_pretrained(model_name_or_path)
feature_extractor = Wav2Vec2FeatureExtractor.from_pretrained(model_name_or_path)
sampling_rate = feature_extractor.sampling_rate

# for wav2vec
model = Wav2Vec2ForSpeechClassification.from_pretrained(model_name_or_path).to(device)

# for hubert
model = HubertForSpeechClassification.from_pretrained(model_name_or_path).to(device)


def speech_file_to_array_fn(path, sampling_rate):
    speech_array, _sampling_rate = torchaudio.load(path)
    resampler = torchaudio.transforms.Resample(_sampling_rate, sampling_rate)
    speech = resampler(speech_array).squeeze().numpy()
    return speech


def predict(path, sampling_rate):
    speech = speech_file_to_array_fn(path, sampling_rate)
    inputs = feature_extractor(speech, sampling_rate=sampling_rate, return_tensors="pt", padding=True)
    inputs = {key: inputs[key].to(device) for key in inputs}

    with torch.no_grad():
        logits = model(**inputs).logits

    scores = F.softmax(logits, dim=1).detach().cpu().numpy()[0]
    outputs = [{"Emotion": config.id2label[i], "Score": f"{round(score * 100, 3):.1f}%"} for i, score in
               enumerate(scores)]
    return outputs


path = "/path/to/disgust.wav"
outputs = predict(path, sampling_rate)    
```

Output:

```bash
[
    {'Emotion': 'anger', 'Score': '0.0%'},
    {'Emotion': 'disgust', 'Score': '99.2%'},
    {'Emotion': 'fear', 'Score': '0.1%'},
    {'Emotion': 'happiness', 'Score': '0.3%'},
    {'Emotion': 'sadness', 'Score': '0.5%'}
]
```


## Demos

| Demo                                                     | Link                                                                                                               |
|----------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------|
| Speech To Text With Emotion Recognition (Persian) - soon | [huggingface.co/spaces/m3hrdadfi/speech-text-emotion](https://huggingface.co/spaces/m3hrdadfi/speech-text-emotion) |


## Models

| Dataset                                                                                                                      | Model                                                                                                                                           |
|------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|
| [ShEMO: a large-scale validated database for Persian speech emotion detection](https://github.com/mansourehk/ShEMO)          | [m3hrdadfi/wav2vec2-xlsr-persian-speech-emotion-recognition](https://huggingface.co/m3hrdadfi/wav2vec2-xlsr-persian-speech-emotion-recognition) |
| [ShEMO: a large-scale validated database for Persian speech emotion detection](https://github.com/mansourehk/ShEMO)          | [m3hrdadfi/hubert-base-persian-speech-emotion-recognition](https://huggingface.co/m3hrdadfi/hubert-base-persian-speech-emotion-recognition)     |
| [ShEMO: a large-scale validated database for Persian speech emotion detection](https://github.com/mansourehk/ShEMO)          | [m3hrdadfi/hubert-base-persian-speech-gender-recognition](https://huggingface.co/m3hrdadfi/hubert-base-persian-speech-gender-recognition)       |
| [Speech Emotion Recognition (Greek) (AESDD)](http://m3c.web.auth.gr/research/aesdd-speech-emotion-recognition/)              | [m3hrdadfi/hubert-large-greek-speech-emotion-recognition](https://huggingface.co/m3hrdadfi/hubert-large-greek-speech-emotion-recognition)       |
| [Speech Emotion Recognition (Greek) (AESDD)](http://m3c.web.auth.gr/research/aesdd-speech-emotion-recognition/)              | [m3hrdadfi/hubert-base-greek-speech-emotion-recognition](https://huggingface.co/m3hrdadfi/hubert-base-greek-speech-emotion-recognition)         |
| [Speech Emotion Recognition (Greek) (AESDD)](http://m3c.web.auth.gr/research/aesdd-speech-emotion-recognition/)              | [m3hrdadfi/wav2vec2-xlsr-greek-speech-emotion-recognition](https://huggingface.co/m3hrdadfi/wav2vec2-xlsr-greek-speech-emotion-recognition)     |
| [Eating Sound Collection](https://www.kaggle.com/mashijie/eating-sound-collection)                                           | [m3hrdadfi/wav2vec2-base-100k-eating-sound-collection](https://huggingface.co/m3hrdadfi/wav2vec2-base-100k-eating-sound-collection)             |
| [GTZAN Dataset - Music Genre Classification](https://www.kaggle.com/andradaolteanu/gtzan-dataset-music-genre-classification) | [m3hrdadfi/wav2vec2-base-100k-gtzan-music-genres](https://huggingface.co/m3hrdadfi/wav2vec2-base-100k-gtzan-music-genres)                       |

================================================
FILE: notebooks/Eating_Sound_Collection_using_Wav2Vec2.ipynb
================================================
{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "Eating Sound Collection using Wav2Vec2.ipynb",
      "provenance": [],
      "collapsed_sections": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    },
    "widgets": {
      "application/vnd.jupyter.widget-state+json": {
        "7384502538e549c3b0741894aee3d27c": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_6ce9b23933b6488091c804d92af38ef0",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_9aba1ce9df714720b5f8073901261257",
              "IPY_MODEL_5150a119ab86434f900789f3d4ccc1c6"
            ]
          }
        },
        "6ce9b23933b6488091c804d92af38ef0": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "9aba1ce9df714720b5f8073901261257": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_90e7a1bce7344f5f84957c3952b7dd59",
            "_dom_classes": [],
            "description": " #0: 100%",
            "_model_name": "FloatProgressModel",
            "bar_style": "success",
            "max": 3,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 3,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_4d8e9fd9c2b8499f83d1f75e664888e6"
          }
        },
        "5150a119ab86434f900789f3d4ccc1c6": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_fa7c0c8d327e4b798db1f87915986146",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 3/3 [00:13<00:00,  4.40s/ba]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_8c678e17db25490ab9d523b2f9c6d1c5"
          }
        },
        "90e7a1bce7344f5f84957c3952b7dd59": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "initial",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "4d8e9fd9c2b8499f83d1f75e664888e6": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "fa7c0c8d327e4b798db1f87915986146": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "8c678e17db25490ab9d523b2f9c6d1c5": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "c3201cfc4e0b4d82add46e49fa63ba4b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_f1960b37902f485b980cc6c6ca11cc5a",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_2976d0d39ea6484684053385a3f95e42",
              "IPY_MODEL_fbd7656edf714303a0dc9a8364e55953"
            ]
          }
        },
        "f1960b37902f485b980cc6c6ca11cc5a": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "2976d0d39ea6484684053385a3f95e42": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_6d513fec3a24462793ef7435e8d12b4d",
            "_dom_classes": [],
            "description": " #2: 100%",
            "_model_name": "FloatProgressModel",
            "bar_style": "success",
            "max": 3,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 3,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_dba87e891dc545949474dd1d123ddded"
          }
        },
        "fbd7656edf714303a0dc9a8364e55953": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_01a594c84d6a456291fbf2bf22de5fab",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 3/3 [00:13<00:00,  4.34s/ba]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_f0dd4abf684f4804a3e51a1c0d39097d"
          }
        },
        "6d513fec3a24462793ef7435e8d12b4d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "initial",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "dba87e891dc545949474dd1d123ddded": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "01a594c84d6a456291fbf2bf22de5fab": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "f0dd4abf684f4804a3e51a1c0d39097d": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "f39fffd0194c447197833a14a1cc91df": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_9adf97c4347940d9b804eae515afc7dd",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_7bed22a6fe3a49d6a09e5950487c1267",
              "IPY_MODEL_f3260ea2e25d44f8b5ee234101b902f0"
            ]
          }
        },
        "9adf97c4347940d9b804eae515afc7dd": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "7bed22a6fe3a49d6a09e5950487c1267": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_19d6eba32fff43579af4aa225b09f6bf",
            "_dom_classes": [],
            "description": " #1: 100%",
            "_model_name": "FloatProgressModel",
            "bar_style": "success",
            "max": 3,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 3,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_6d463da2011b4339a6bbaad1cafd2f9f"
          }
        },
        "f3260ea2e25d44f8b5ee234101b902f0": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_21e4e79ff3e7423f8e2424ee5718ffe0",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 3/3 [00:12<00:00,  4.30s/ba]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_000485a55b4f4648a76204f3725669df"
          }
        },
        "19d6eba32fff43579af4aa225b09f6bf": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "initial",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "6d463da2011b4339a6bbaad1cafd2f9f": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "21e4e79ff3e7423f8e2424ee5718ffe0": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "000485a55b4f4648a76204f3725669df": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "6ad90ca9ca854713a8237fb18477fb60": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_3424514218d34da2be8c565cb7c4f939",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_3395af9109fd4a1f861f8eecfa8f2033",
              "IPY_MODEL_e008c7a035a843ee83b6bfdeb48581f8"
            ]
          }
        },
        "3424514218d34da2be8c565cb7c4f939": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "3395af9109fd4a1f861f8eecfa8f2033": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_77adc5448ac44dfa92b2a7b6d50e89f8",
            "_dom_classes": [],
            "description": " #3: 100%",
            "_model_name": "FloatProgressModel",
            "bar_style": "success",
            "max": 3,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 3,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_4955552ebd944cc384e4166146c3a5b3"
          }
        },
        "e008c7a035a843ee83b6bfdeb48581f8": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_fa59b9db64614d90885026b74082a3b7",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 3/3 [00:12<00:00,  4.31s/ba]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_c13df8f668ae49468487f1ea062d4edc"
          }
        },
        "77adc5448ac44dfa92b2a7b6d50e89f8": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "initial",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "4955552ebd944cc384e4166146c3a5b3": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "fa59b9db64614d90885026b74082a3b7": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "c13df8f668ae49468487f1ea062d4edc": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "1757cd8704a444c8b7a90edc028ac93e": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_1450e205f5d44a0b9ff8ef3decbd74d4",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_08ba1ac5cb5d437193dfb4b446f25ac1",
              "IPY_MODEL_09e7de10a9b14ccf83314e00c14f2b44"
            ]
          }
        },
        "1450e205f5d44a0b9ff8ef3decbd74d4": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "08ba1ac5cb5d437193dfb4b446f25ac1": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_15367995b8744a818a312a8160ad60f2",
            "_dom_classes": [],
            "description": " #0: 100%",
            "_model_name": "FloatProgressModel",
            "bar_style": "success",
            "max": 3,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 3,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_350a8323dadc4798835aba80020ac439"
          }
        },
        "09e7de10a9b14ccf83314e00c14f2b44": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_5c25acc905294f69b89819d7aa140bed",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 3/3 [00:07<00:00,  2.45s/ba]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_837e87dd56e84ec396d6100bf08afeb5"
          }
        },
        "15367995b8744a818a312a8160ad60f2": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "initial",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "350a8323dadc4798835aba80020ac439": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "5c25acc905294f69b89819d7aa140bed": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "837e87dd56e84ec396d6100bf08afeb5": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "149f0975a5124dffa85a342557ec0649": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_3b466cf20cf3429480af691022b28816",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_ae46db9faf124d2f987dccb0ad62115b",
              "IPY_MODEL_6fa3ec2f85964814a7b408b0e8174f5f"
            ]
          }
        },
        "3b466cf20cf3429480af691022b28816": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "ae46db9faf124d2f987dccb0ad62115b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_4f4134b761624977ba1e9bf8b6c3497d",
            "_dom_classes": [],
            "description": " #1: 100%",
            "_model_name": "FloatProgressModel",
            "bar_style": "success",
            "max": 3,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 3,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_9770bc459ce24270963b8e230d2acf28"
          }
        },
        "6fa3ec2f85964814a7b408b0e8174f5f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_cf61da935f8e47aa914550d8fc3207b1",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 3/3 [00:07<00:00,  2.50s/ba]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_7aa86ce26ffd4e3499f03dd48c500c13"
          }
        },
        "4f4134b761624977ba1e9bf8b6c3497d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "initial",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "9770bc459ce24270963b8e230d2acf28": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "cf61da935f8e47aa914550d8fc3207b1": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "7aa86ce26ffd4e3499f03dd48c500c13": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "fb73f54ebd8245a1891f9855eadbaa86": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_11729cf2675d41b9b9375fae8ce38261",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_0d940cef72aa4db08f38cb86fcc2ae78",
              "IPY_MODEL_bb447d5d406e4275a1d4676a0e19a1ef"
            ]
          }
        },
        "11729cf2675d41b9b9375fae8ce38261": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "0d940cef72aa4db08f38cb86fcc2ae78": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_3fe5598e1eb746beb147e500467294ab",
            "_dom_classes": [],
            "description": " #2: 100%",
            "_model_name": "FloatProgressModel",
            "bar_style": "success",
            "max": 3,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 3,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_cff729db41224f5cb11149a157c13007"
          }
        },
        "bb447d5d406e4275a1d4676a0e19a1ef": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_6ec2b9da8ace49949a1b85a77eb69d05",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 3/3 [00:07<00:00,  2.46s/ba]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_32dffd51d28d4e5cb06eb050529a4507"
          }
        },
        "3fe5598e1eb746beb147e500467294ab": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "initial",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "cff729db41224f5cb11149a157c13007": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "6ec2b9da8ace49949a1b85a77eb69d05": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "32dffd51d28d4e5cb06eb050529a4507": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "d4656d9e97234b709166dbd4dd1d0e1d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_e03afb3588174ad2bbb36a760a0cc5f3",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_c3197ece4cd34397bf2edd566db66941",
              "IPY_MODEL_9cfd84cce50442d7a34c911f59cd09bb"
            ]
          }
        },
        "e03afb3588174ad2bbb36a760a0cc5f3": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "c3197ece4cd34397bf2edd566db66941": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_2f9a864fab77416ea51b92ffab1a0902",
            "_dom_classes": [],
            "description": " #3: 100%",
            "_model_name": "FloatProgressModel",
            "bar_style": "success",
            "max": 3,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 3,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_ab44cfdc232143209c7562e079998b10"
          }
        },
        "9cfd84cce50442d7a34c911f59cd09bb": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_af6b2f4647bf4017b4610d2a852effd7",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 3/3 [00:07<00:00,  2.51s/ba]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_edf00aba13aa4c03ab2fe52428a24a71"
          }
        },
        "2f9a864fab77416ea51b92ffab1a0902": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "initial",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "ab44cfdc232143209c7562e079998b10": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "af6b2f4647bf4017b4610d2a852effd7": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "edf00aba13aa4c03ab2fe52428a24a71": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "1dee66d422f94e97b5410bda7d630183": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_1140dc0960f54148a12d30ef4345ee96",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_36750aaa3f494df4984a6878f7fddec2",
              "IPY_MODEL_6f80a3a28a964c6383530cdd03ea4e47"
            ]
          }
        },
        "1140dc0960f54148a12d30ef4345ee96": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "36750aaa3f494df4984a6878f7fddec2": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_b182c0e62ff14820903daee05b60dec3",
            "_dom_classes": [],
            "description": "Downloading: 100%",
            "_model_name": "FloatProgressModel",
            "bar_style": "success",
            "max": 377569754,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 377569754,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_ea64efae2d8c4f8eb9f0475ebec11512"
          }
        },
        "6f80a3a28a964c6383530cdd03ea4e47": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_ec4c4a4c9dd84e7a9bf33b1b87c491d0",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 378M/378M [00:54<00:00, 6.91MB/s]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_8e3472f819d1468984cefd82c1217f00"
          }
        },
        "b182c0e62ff14820903daee05b60dec3": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "initial",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "ea64efae2d8c4f8eb9f0475ebec11512": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "ec4c4a4c9dd84e7a9bf33b1b87c491d0": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "8e3472f819d1468984cefd82c1217f00": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "c179789d1b5d45acbc5d6ac5bab0b832": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_e9d9abef9b964776a9a021520ba4d992",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_6c720dc5f44e4ea29514581abba8622e",
              "IPY_MODEL_e76ee2831f374af7942b991c86f213d7"
            ]
          }
        },
        "e9d9abef9b964776a9a021520ba4d992": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "6c720dc5f44e4ea29514581abba8622e": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_5fd40b7c360143348d565be3737d2da2",
            "_dom_classes": [],
            "description": "",
            "_model_name": "FloatProgressModel",
            "bar_style": "info",
            "max": 1,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 1,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_f83849e39ca84c3ab7cfd41db31f586f"
          }
        },
        "e76ee2831f374af7942b991c86f213d7": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_91df691fd8d64fc08e13918ab129b04d",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 1/? [00:00<00:00, 16.31 tables/s]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_f9307f431af0483b8529085b869d2135"
          }
        },
        "5fd40b7c360143348d565be3737d2da2": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "initial",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "f83849e39ca84c3ab7cfd41db31f586f": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "91df691fd8d64fc08e13918ab129b04d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "f9307f431af0483b8529085b869d2135": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "018dfa68a89c43c8b064050242e82181": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_3877cc93cf12456097b0575959f25e87",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_e7e6a8c03649466d875f7150e6ad5b72",
              "IPY_MODEL_85c562df9b824ef8b415bda19e334b54"
            ]
          }
        },
        "3877cc93cf12456097b0575959f25e87": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "e7e6a8c03649466d875f7150e6ad5b72": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_bfb450ba48414582806803bce59c268e",
            "_dom_classes": [],
            "description": "Downloading: 100%",
            "_model_name": "FloatProgressModel",
            "bar_style": "success",
            "max": 2270,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 2270,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_42ff79e2ae01425ba0134c58e2580cc0"
          }
        },
        "85c562df9b824ef8b415bda19e334b54": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_645a359bcf354e6d957dea3d0d0acf29",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 2.27k/2.27k [00:01<00:00, 1.17kB/s]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_9d6520c0051a43709fc2f3697cc80244"
          }
        },
        "bfb450ba48414582806803bce59c268e": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "initial",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "42ff79e2ae01425ba0134c58e2580cc0": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "645a359bcf354e6d957dea3d0d0acf29": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "9d6520c0051a43709fc2f3697cc80244": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "c16f2f140d6b4183b74fab44b7d20b2b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_c3a064ce28534052b4b4abac7b395a81",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_dc27704fed6e4a01b9a23f9d9b3dc3df",
              "IPY_MODEL_d976392882e04bc99cc477d9520c7bcf"
            ]
          }
        },
        "c3a064ce28534052b4b4abac7b395a81": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "dc27704fed6e4a01b9a23f9d9b3dc3df": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_8b853441e8c34071ba45b0f7191eb9f6",
            "_dom_classes": [],
            "description": "Downloading: 100%",
            "_model_name": "FloatProgressModel",
            "bar_style": "success",
            "max": 213,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 213,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_48a593d89da84f649fab9e7f87f8f767"
          }
        },
        "d976392882e04bc99cc477d9520c7bcf": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_ff209e55d853421a84770d8f9164f62c",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 213/213 [00:01<00:00, 162B/s]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_9c38ebf5864a4e8896cf002876fa7cec"
          }
        },
        "8b853441e8c34071ba45b0f7191eb9f6": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "initial",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "48a593d89da84f649fab9e7f87f8f767": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "ff209e55d853421a84770d8f9164f62c": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "9c38ebf5864a4e8896cf002876fa7cec": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "1fed03a5bc0e4333805eabf089b9b0ea": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_a7ad0056c5f64423b29be2fd88c78719",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_934b92e53b7d41d5b4fe32014e95cbed",
              "IPY_MODEL_d06b74a1da0048dbb711c7b73b4c0af3"
            ]
          }
        },
        "a7ad0056c5f64423b29be2fd88c78719": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "934b92e53b7d41d5b4fe32014e95cbed": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_b3288ffcd75841048ea74f0f75c6c6fd",
            "_dom_classes": [],
            "description": "Downloading: 100%",
            "_model_name": "FloatProgressModel",
            "bar_style": "success",
            "max": 380001726,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 380001726,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_bbaa7594bded475abb8e0bdf92054c86"
          }
        },
        "d06b74a1da0048dbb711c7b73b4c0af3": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_3187736ad3714b8e81224b53f0687664",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 380M/380M [00:16<00:00, 22.5MB/s]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_404bd7661d9e43a6901a6bc12b5c6f93"
          }
        },
        "b3288ffcd75841048ea74f0f75c6c6fd": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "initial",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "bbaa7594bded475abb8e0bdf92054c86": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "3187736ad3714b8e81224b53f0687664": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "404bd7661d9e43a6901a6bc12b5c6f93": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "c8839901ba094c8ab415d65748d3af49": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_245c287d72cb404f827736af171b8803",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_f843e9c85ceb48fa8828986330993260",
              "IPY_MODEL_9e9f79c923b94e90abccc36283252499"
            ]
          }
        },
        "245c287d72cb404f827736af171b8803": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "f843e9c85ceb48fa8828986330993260": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_6146d16c791242ed8415a8ef0478b420",
            "_dom_classes": [],
            "description": "100%",
            "_model_name": "FloatProgressModel",
            "bar_style": "success",
            "max": 2228,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 2228,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_75e6d16ae7cb40c3bea7723921f94ae9"
          }
        },
        "9e9f79c923b94e90abccc36283252499": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_e0d8f9cbacb64b8cbd82708309653734",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 2228/2228 [06:40<00:00,  5.56ex/s]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_221f9e32a50d4d18b478da3df315b5fa"
          }
        },
        "6146d16c791242ed8415a8ef0478b420": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "initial",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "75e6d16ae7cb40c3bea7723921f94ae9": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "e0d8f9cbacb64b8cbd82708309653734": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "221f9e32a50d4d18b478da3df315b5fa": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "1cf3d36ba8b24757a48ea06239b8c595": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_5b7655a0ec914ce285b4802a7265dd1b",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_07e02f90c9474a9bac60af6e157c5635",
              "IPY_MODEL_c6d50e8f952e455bae2bf13902960026"
            ]
          }
        },
        "5b7655a0ec914ce285b4802a7265dd1b": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "07e02f90c9474a9bac60af6e157c5635": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_4b725e6473e5477c9161eecf4af4113f",
            "_dom_classes": [],
            "description": "100%",
            "_model_name": "FloatProgressModel",
            "bar_style": "success",
            "max": 279,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 279,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_fc2deb84c1124cf9b28005f8eafdcc5f"
          }
        },
        "c6d50e8f952e455bae2bf13902960026": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_d3561462d3224124a63ed50cf42709f9",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 279/279 [03:45<00:00,  1.24ba/s]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_33189cc9393f494082c08f62c71f5d8d"
          }
        },
        "4b725e6473e5477c9161eecf4af4113f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "initial",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "fc2deb84c1124cf9b28005f8eafdcc5f": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "d3561462d3224124a63ed50cf42709f9": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "33189cc9393f494082c08f62c71f5d8d": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        }
      }
    },
    "accelerator": "GPU"
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "5fbCls1d2yBs"
      },
      "source": [
        "# Eating Sound Collection using Wav2Vec 2.0"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "sp37lZOV2042"
      },
      "source": [
        "**Wav2Vec 2.0** is a pretrained model for Automatic Speech Recognition (ASR) and was released in [September 2020](https://ai.facebook.com/blog/wav2vec-20-learning-the-structure-of-speech-from-raw-audio/) by Alexei Baevski, Michael Auli, and Alex Conneau.  Soon after the superior performance of Wav2Vec2 was demonstrated on the English ASR dataset LibriSpeech, *Facebook AI* presented XLSR-Wav2Vec2 (click [here](https://arxiv.org/abs/2006.13979)). XLSR stands for *cross-lingual  speech representations* and refers to XLSR-Wav2Vec2`s ability to learn speech representations that are useful across multiple languages.\n",
        "\n",
        "Similar to Wav2Vec2, XLSR-Wav2Vec2 learns powerful speech representations from hundreds of thousands of hours of speech in more than 50 languages of unlabeled speech. Similar, to [BERT's masked language modeling](http://jalammar.github.io/illustrated-bert/), the model learns contextualized speech representations by randomly masking feature vectors before passing them to a transformer network.\n",
        "\n",
        "![wav2vec2_structure](https://raw.githubusercontent.com/patrickvonplaten/scientific_images/master/xlsr_wav2vec2.png)\n",
        "\n",
        "The authors show for the first time that massively pretraining an ASR model on cross-lingual unlabeled speech data, followed by language-specific fine-tuning on very little labeled data achieves state-of-the-art results. See Table 1-5 of the official [paper](https://arxiv.org/pdf/2006.13979.pdf)."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "y0xJwDkA3QQR"
      },
      "source": [
        "During fine-tuning week hosted by HuggingFace, more than 300 people participated in tuning XLSR-Wav2Vec2's pretrained on low-resources ASR dataset for more than 50 languages. This model is fine-tuned using [Connectionist Temporal Classification](https://distill.pub/2017/ctc/) (CTC), an algorithm used to train neural networks for sequence-to-sequence problems and mainly in Automatic Speech Recognition and handwriting recognition. Follow this [notebook](https://colab.research.google.com/github/patrickvonplaten/notebooks/blob/master/Fine_Tune_XLSR_Wav2Vec2_on_Turkish_ASR_with_%F0%9F%A4%97_Transformers.ipynb#scrollTo=Gx9OdDYrCtQ1) for more information about XLSR-Wav2Vec2 fine-tuning.\n",
        "\n",
        "This model was shown significant results in many low-resources languages. You can see the [competition board](https://paperswithcode.com/dataset/common-voice) or even testing the models from the [HuggingFace hub](https://huggingface.co/models?filter=xlsr-fine-tuning-week). \n",
        "\n",
        "\n",
        "In this notebook, we will go through how to use this model to recognize the emotional aspects of speech in a language (or even as a general view using for every classification problem). Before going any further, we need to install some handy packages and define some enviroment values."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "TYsw43ULuXC_"
      },
      "source": [
        "%%capture\n",
        "\n",
        "!pip install git+https://github.com/huggingface/datasets.git\n",
        "!pip install git+https://github.com/huggingface/transformers.git\n",
        "!pip install jiwer\n",
        "!pip install torchaudio\n",
        "!pip install librosa\n",
        "\n",
        "# Monitor the training process\n",
        "# !pip install wandb"
      ],
      "execution_count": 1,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "cp4-LTa2uphv",
        "outputId": "e32a0dbd-8cd5-4bb9-87f6-c48e01a765b6"
      },
      "source": [
        "%env LC_ALL=C.UTF-8\n",
        "%env LANG=C.UTF-8\n",
        "%env TRANSFORMERS_CACHE=/content/cache\n",
        "%env HF_DATASETS_CACHE=/content/cache\n",
        "%env CUDA_LAUNCH_BLOCKING=1"
      ],
      "execution_count": 1,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "env: LC_ALL=C.UTF-8\n",
            "env: LANG=C.UTF-8\n",
            "env: TRANSFORMERS_CACHE=/content/cache\n",
            "env: HF_DATASETS_CACHE=/content/cache\n",
            "env: CUDA_LAUNCH_BLOCKING=1\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "A0B06FRmusKF"
      },
      "source": [
        "# # Uncomment this part if you want to setup your wandb project\n",
        "\n",
        "# %env WANDB_WATCH=all\n",
        "# %env WANDB_LOG_MODEL=1\n",
        "# %env WANDB_PROJECT=YOUR_PROJECT_NAME\n",
        "# !wandb login YOUR_API_KEY --relogin"
      ],
      "execution_count": 3,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "krC50MmmvBWJ"
      },
      "source": [
        "## Prepare Data\n",
        "\n",
        "For this particular example, we use [Eating Sound Collection](https://www.kaggle.com/mashijie/eating-sound-collection) provided by [Jeannette Shijie Ma](https://www.kaggle.com/mashijie). \n"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "cellView": "form",
        "id": "Pp1zdKtuu8xj"
      },
      "source": [
        "#@title Kaggle Credential\n",
        "\n",
        "import json\n",
        "\n",
        "username = \"\" #@param {type: \"string\"}\n",
        "api_key = \"\" #@param {type: \"string\"}\n",
        "\n",
        "\n",
        "if username and api_key:\n",
        "    token = {\"username\": username, \"key\": api_key}\n",
        "\n",
        "    !mkdir ~/.kaggle\n",
        "    !mkdir /content/.kaggle\n",
        "    with open('/content/.kaggle/kaggle.json', 'w') as f:\n",
        "        json.dump(token, f)\n",
        "\n",
        "    !cp /content/.kaggle/kaggle.json ~/.kaggle/kaggle.json\n",
        "    !chmod 600 /root/.kaggle/kaggle.json\n",
        "\n",
        "    print('Your are ready to use kaggle API!')"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "cellView": "form",
        "id": "r1JfdqZqvLwT",
        "outputId": "543a8648-7a00-43f8-a4b7-9b1b3ae2e69c"
      },
      "source": [
        "#@title Download the dataset\n",
        "\n",
        "!mkdir -p /content/data\n",
        "!kaggle datasets download mashijie/eating-sound-collection\n",
        "!unzip -q eating-sound-collection.zip -d /content/data\n",
        "!rm eating-sound-collection.zip"
      ],
      "execution_count": 6,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Downloading eating-sound-collection.zip to /content\n",
            "100% 5.63G/5.63G [01:59<00:00, 55.0MB/s]\n",
            "100% 5.63G/5.63G [01:59<00:00, 50.7MB/s]\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "pFSqZ0jwCMSv"
      },
      "source": [
        "import numpy as np\n",
        "import pandas as pd\n",
        "\n",
        "from pathlib import Path\n",
        "from tqdm import tqdm\n",
        "\n",
        "import torchaudio\n",
        "from sklearn.model_selection import train_test_split\n",
        "\n",
        "import os\n",
        "import sys"
      ],
      "execution_count": 2,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "7MXAESg_Dqr6",
        "outputId": "8bc4b0df-7a50-42ee-af4b-fdd52beae66a"
      },
      "source": [
        "data = []\n",
        "\n",
        "for path in tqdm(Path(\"/content/data/clips_rd/\").glob(\"**/*.wav\")):\n",
        "    name = str(path).split('/')[-1].split('.')[0]\n",
        "    label = str(path).split('/')[-2]\n",
        "    \n",
        "    try:\n",
        "        # There are some broken files\n",
        "        s = torchaudio.load(path)\n",
        "        data.append({\n",
        "            # \"name\": name,\n",
        "            \"path\": path,\n",
        "            \"label\": label\n",
        "        })\n",
        "    except Exception as e:\n",
        "        # print(str(path), e)\n",
        "        pass\n",
        "\n",
        "    # break"
      ],
      "execution_count": 8,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "11140it [02:23, 77.90it/s]\n"
          ],
          "name": "stderr"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 204
        },
        "id": "10b89ZpLDqx9",
        "outputId": "9aaf95d6-b1d1-40c3-fff1-244b164b1e9b"
      },
      "source": [
        "df = pd.DataFrame(data)\n",
        "df.head()"
      ],
      "execution_count": 9,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>path</th>\n",
              "      <th>label</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>/content/data/clips_rd/grapes/grapes_3_10.wav</td>\n",
              "      <td>grapes</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>/content/data/clips_rd/grapes/grapes_1_13.wav</td>\n",
              "      <td>grapes</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>/content/data/clips_rd/grapes/grapes_3_39.wav</td>\n",
              "      <td>grapes</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>/content/data/clips_rd/grapes/grapes_2_13.wav</td>\n",
              "      <td>grapes</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>/content/data/clips_rd/grapes/grapes_2_77.wav</td>\n",
              "      <td>grapes</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "                                            path   label\n",
              "0  /content/data/clips_rd/grapes/grapes_3_10.wav  grapes\n",
              "1  /content/data/clips_rd/grapes/grapes_1_13.wav  grapes\n",
              "2  /content/data/clips_rd/grapes/grapes_3_39.wav  grapes\n",
              "3  /content/data/clips_rd/grapes/grapes_2_13.wav  grapes\n",
              "4  /content/data/clips_rd/grapes/grapes_2_77.wav  grapes"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 9
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "iMhTHur8voOp",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 238
        },
        "outputId": "2e4e80c1-b63a-4254-c728-758ce27cec84"
      },
      "source": [
        "# Filter broken and non-existed paths\n",
        "\n",
        "print(f\"Step 0: {len(df)}\")\n",
        "\n",
        "df[\"status\"] = df[\"path\"].apply(lambda path: True if os.path.exists(path) else None)\n",
        "df = df.dropna(subset=[\"path\"])\n",
        "df = df.drop(\"status\", 1)\n",
        "print(f\"Step 1: {len(df)}\")\n",
        "\n",
        "df = df.sample(frac=1)\n",
        "df = df.reset_index(drop=True)\n",
        "df.head()"
      ],
      "execution_count": 10,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Step 0: 11140\n",
            "Step 1: 11140\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>path</th>\n",
              "      <th>label</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>/content/data/clips_rd/jelly/jelly_13_09.wav</td>\n",
              "      <td>jelly</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>/content/data/clips_rd/candied_fruits/candied_...</td>\n",
              "      <td>candied_fruits</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>/content/data/clips_rd/pickles/pickles_11_44.wav</td>\n",
              "      <td>pickles</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>/content/data/clips_rd/fries/fries_5_04.wav</td>\n",
              "      <td>fries</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>/content/data/clips_rd/carrots/carrots_4_54.wav</td>\n",
              "      <td>carrots</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "                                                path           label\n",
              "0       /content/data/clips_rd/jelly/jelly_13_09.wav           jelly\n",
              "1  /content/data/clips_rd/candied_fruits/candied_...  candied_fruits\n",
              "2   /content/data/clips_rd/pickles/pickles_11_44.wav         pickles\n",
              "3        /content/data/clips_rd/fries/fries_5_04.wav           fries\n",
              "4    /content/data/clips_rd/carrots/carrots_4_54.wav         carrots"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 10
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "TWku4ra3Bp52"
      },
      "source": [
        "Let's explore how many labels (sounds) are in the dataset with what distribution."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "beNpKMh5xXmX",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 768
        },
        "outputId": "bc1ba8fb-f105-4024-9c82-51898f9acc63"
      },
      "source": [
        "print(\"Labels: \", df[\"label\"].unique())\n",
        "print()\n",
        "df.groupby(\"label\").count()[[\"path\"]]"
      ],
      "execution_count": 11,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Labels:  ['jelly' 'candied_fruits' 'pickles' 'fries' 'carrots' 'aloe' 'chips'\n",
            " 'pizza' 'grapes' 'soup' 'gummies' 'ribs' 'salmon' 'wings' 'noodles'\n",
            " 'burger' 'cabbage' 'ice-cream' 'chocolate' 'drinks']\n",
            "\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>path</th>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>label</th>\n",
              "      <th></th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>aloe</th>\n",
              "      <td>546</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>burger</th>\n",
              "      <td>595</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>cabbage</th>\n",
              "      <td>499</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>candied_fruits</th>\n",
              "      <td>806</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>carrots</th>\n",
              "      <td>660</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>chips</th>\n",
              "      <td>719</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>chocolate</th>\n",
              "      <td>290</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>drinks</th>\n",
              "      <td>292</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>fries</th>\n",
              "      <td>644</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>grapes</th>\n",
              "      <td>579</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>gummies</th>\n",
              "      <td>678</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>ice-cream</th>\n",
              "      <td>727</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>jelly</th>\n",
              "      <td>442</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>noodles</th>\n",
              "      <td>411</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>pickles</th>\n",
              "      <td>872</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>pizza</th>\n",
              "      <td>609</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>ribs</th>\n",
              "      <td>488</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>salmon</th>\n",
              "      <td>501</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>soup</th>\n",
              "      <td>278</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>wings</th>\n",
              "      <td>504</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "                path\n",
              "label               \n",
              "aloe             546\n",
              "burger           595\n",
              "cabbage          499\n",
              "candied_fruits   806\n",
              "carrots          660\n",
              "chips            719\n",
              "chocolate        290\n",
              "drinks           292\n",
              "fries            644\n",
              "grapes           579\n",
              "gummies          678\n",
              "ice-cream        727\n",
              "jelly            442\n",
              "noodles          411\n",
              "pickles          872\n",
              "pizza            609\n",
              "ribs             488\n",
              "salmon           501\n",
              "soup             278\n",
              "wings            504"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 11
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "i2hwRai7BNrx"
      },
      "source": [
        "Let's display some random sample of the dataset and run it a couple of times to get a feeling for the audio and the sound label."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "DZaQ_sP5xkIX",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 103
        },
        "outputId": "797d1522-d574-4208-83e0-99ccc73cda10"
      },
      "source": [
        "import torchaudio\n",
        "import librosa\n",
        "import IPython.display as ipd\n",
        "import numpy as np\n",
        "\n",
        "idx = np.random.randint(0, len(df))\n",
        "sample = df.iloc[idx]\n",
        "path = sample[\"path\"]\n",
        "label = sample[\"label\"]\n",
        "\n",
        "\n",
        "print(f\"ID Location: {idx}\")\n",
        "print(f\"      Label: {label}\")\n",
        "print()\n",
        "\n",
        "speech, sr = torchaudio.load(path)\n",
        "speech = speech[0].numpy().squeeze()\n",
        "speech = librosa.resample(np.asarray(speech), sr, 16_000)\n",
        "ipd.Audio(data=np.asarray(speech), autoplay=True, rate=16000)"
      ],
      "execution_count": 12,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "ID Location: 1207\n",
            "      Label: chips\n",
            "\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "\n",
              "                <audio controls=\"controls\" autoplay=\"autoplay\">\n",
              "                    <source src=\"data:audio/wav;base64,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nf8kAdkAYP9IABMBdwBGAHUBWAB2/3YA2wGVAHEAJADW/xABSwBPAD8BEgAl/2AA8f8vAPMARv8v/1MAaf+s/5P/Tf/l/2b/JgAnAGX/tP9I/1X/ngDN/4D+WP8QAMz/0v9hALEAmP/+/tj/LgAHAEQAaf8F//D/kf+C/4n/aP8z/7r/vP+4/mP/nf8+/ysARgBE/6n/l/+F/0EACgBe/3MAeQDI/3YAyf/P/28AIQFyAHb/HQCLALf/LwCpAOL/NQBJAOr/1f+MAJsAGAAu/1b/MQCuAFUAEQDo/+X/DwHDAFAA9f80AOQACwELARgAuP82Ac4B/QBHAQAAI/9cAbwB+wABAJb/BAH2AMwAZAGrAN3/pAA4AcwAgQHDAIH/QQCUAHUAiQA7AWMAqf/1AJYA6f+QAOoArwBTANj/JQBmAN//oP9l/3//MwCXAJb/SP+t/2L/nf9CAMf/AP/0/lr/yv9h/2X/Pv+u/8//Lv9I/yr/X/8LAFcAWP/8/v3+kP81APT+qv8SAND+e/9q/wX/s/9b/4X/XQA7/+X+n/9v/+z/uv92/+r/8f9Y/8r/fQDx/7D/MQCMACQAdgCaADkAOQD6/xMAJgE9AZgAuwDEANgAggE8AVcATQD0AKMBsAFFAcX/XwD9AUEB6wAoAYIANAD6ACcBRgAbALYA7wADAYsAnv+J/6YAUgGKALX/9P+hAEoA2P8AADYAzAACAf7/NP8uAOEA5ADjAGMAIP+m/+kACwHqAOj/z/+CAOEAewAfAAwALAAqALYAugCp/8j/WQDRADQBZgBz/2AAlABWAO0AcwDr/zAA5QCxAdYASgC0AGIASgGvAfcA/gALAQIBiQFeAZ0BxAE7AX4BhQHJAWAB8QA6AcUBdgEjATQBTgEsAdcAtwG6AUUB6ADsALEBmAGFAJUA6ACzAE0BtQEjAR8ApACXASYBggEMASsADwGIAWcBNgHHAOoALQEqAVEBlgB/APkAAQF5AecAbAAKAacA9wBgATwAMgClAKcA6wAzARYBmQDm/1wAJgGoAKYAdgDb/1MAVAAwAMAAZAAYAEQAMABHABEAXf/d/1UAoP9f/6H/zv/l/yMAz/+N/83/MABQAJEAjADr//D/zwCLAJP/eQDwAJIA1ADAAAgAxQDJASYBLwHvAPn/kACoATYBswCMAKEAGwFoAfwAIwCLACUBewEKAfYA2AB9AO0ANgEeAdcAygCRAPsA5QC4APAAAwESAfIAugDtAPsAvQArAdwAkwD4ALAAnAD7AG4BNgGnAPIAnQAvAK8A6wDiANgAMwD5/+AAQQFGAHoA9gBGAA8ATwCBADoALgAbAPz/MgABAA0AuQDLAAsA6P9VAHYAoACSANkA8gCeAIkAiACwAMIA6ADnAKwAogCQAEoA5QBvAb8AcgDnAEEB+ADUABABRQF6AYYBAwH2AJcB+gC3AGIBqgEhAaYA/gByAQgB7AAaAagALAFFAdEA9gDiACMBggFVAUIB3QDJAFYB7QGqATYBWQG/AegBwQG7AVMBgQHhAb8BMgH1AJIB3AEOAhUCwAFbAZMBMALjAZEBmAHMAcYBigHmATMCmgFSATYBSgHBAWoBHAEpARsBtQDWAEMBLQEHAdsA5gCrAEwAoQDyAOUA/wCFAGAAtwCoABsB0gAxAJwApAA4AHsAjwBzAFsAHQAwAE4A/P+Y/xgAPwCE/2//x//f/+r/xv/E/yf/O//3/+f/6v/s/7j/DQB3AHAAcQCF//3/FAGWAE0AOgA9ACYBEQGMALoAZgAaAEYAmQCSALEAmQDRAK4AmQCIALUAHAEJASsBCgESAQYBWAGfAQoC/wGXAXUBdwG5AdMBGgIgAucBDwKSAWQB3gGPAaYBnAEUAe8AngHxAZUBMgFLAd4BwAFLAS4BGgE3Aa4BbQH4AKoAgQBoAU8BuADhAF8AowDKAGwANwAWACwAbgA1AGn/kv+c/4H/XP9b/0n/tP7j/tX+sv4k/0z+1f21/sn+lv6i/qv+ef5z/sf+3f6m/sv+I/8O/wz/U/8e/xv/af9m/2X/dv/W/67/df+i/7X/1f8WAE8AOQBzAF0AZQDDAKUAmwCyAOsAngBRAH0AXQGuAQMBJQGqAWMBSAGXAakBqAHoABkBkQGQAbMBxAHOAdwB9QGsAcUBCgIKAtMB/QH5AYcBzgEYAu8B7gGMAd8ACwEfAdsAYAF7AfEAqACLANcA7ADvANcAPADy/0MAugBtAPP/7v8BABwAAADu/7//2/8DAAMA5P+Z/4f/iv/m/6D/jP+B/zn/jv+x/3r/NP+b/8n/T/9H/4n/Vv8w/1r/hv+e/23/gv+o/0//RP+h/43/bv9B/wr/ff/l/8z/7//R/4b/wf8kACAA2P8hADcAaADOALkA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
Download .txt
gitextract_xc5zf8sr/

├── .github/
│   └── workflows/
│       └── sync_streamlit_speech_text_emotion_to_space.yml
├── .gitignore
├── LICENSE
├── README.md
├── notebooks/
│   ├── Eating_Sound_Collection_using_Wav2Vec2.ipynb
│   ├── Emotion_recognition_in_Greek_speech_using_HuBERT.ipynb
│   ├── Emotion_recognition_in_Greek_speech_using_Wav2Vec2.ipynb
│   └── Regression_Example_Emotion_recognition_in_Greek_speech_using_Wav2Vec2.ipynb
├── requirements.txt
├── run_wav2vec_clf.py
└── src/
    ├── __init__.py
    ├── collator.py
    ├── modeling_outputs.py
    ├── models.py
    └── trainer.py
Download .txt
SYMBOL INDEX (26 symbols across 5 files)

FILE: run_wav2vec_clf.py
  class ModelArguments (line 36) | class ModelArguments:
  class DataTrainingArguments (line 84) | class DataTrainingArguments:
    method __post_init__ (line 155) | def __post_init__(self):
  function main (line 165) | def main():
  function _mp_fn (line 485) | def _mp_fn(index):

FILE: src/collator.py
  class DataCollatorCTCWithPadding (line 10) | class DataCollatorCTCWithPadding:
    method __call__ (line 42) | def __call__(self, features: List[Dict[str, Union[List[int], torch.Ten...

FILE: src/modeling_outputs.py
  class SpeechClassifierOutput (line 8) | class SpeechClassifierOutput(ModelOutput):

FILE: src/models.py
  class Wav2Vec2ClassificationHead (line 17) | class Wav2Vec2ClassificationHead(nn.Module):
    method __init__ (line 20) | def __init__(self, config):
    method forward (line 26) | def forward(self, features, **kwargs):
  class Wav2Vec2ForSpeechClassification (line 36) | class Wav2Vec2ForSpeechClassification(Wav2Vec2PreTrainedModel):
    method __init__ (line 37) | def __init__(self, config):
    method freeze_feature_extractor (line 48) | def freeze_feature_extractor(self):
    method merged_strategy (line 51) | def merged_strategy(
    method forward (line 68) | def forward(
  class HubertClassificationHead (line 121) | class HubertClassificationHead(nn.Module):
    method __init__ (line 124) | def __init__(self, config):
    method forward (line 130) | def forward(self, features, **kwargs):
  class HubertForSpeechClassification (line 140) | class HubertForSpeechClassification(HubertPreTrainedModel):
    method __init__ (line 141) | def __init__(self, config):
    method freeze_feature_extractor (line 152) | def freeze_feature_extractor(self):
    method merged_strategy (line 155) | def merged_strategy(
    method forward (line 172) | def forward(

FILE: src/trainer.py
  class CTCTrainer (line 20) | class CTCTrainer(Trainer):
    method training_step (line 21) | def training_step(self, model: nn.Module, inputs: Dict[str, Union[torc...
Condensed preview — 15 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (8,559K chars).
[
  {
    "path": ".github/workflows/sync_streamlit_speech_text_emotion_to_space.yml",
    "chars": 1754,
    "preview": "name: Sync Streamlit to Hugging Face space [speech-text-emotion]\n\non:\n  push:\n    branches: [streamlit-speech-text-emoti"
  },
  {
    "path": ".gitignore",
    "chars": 1833,
    "preview": "# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*.so\n\n# Distribution / packagi"
  },
  {
    "path": "LICENSE",
    "chars": 11357,
    "preview": "                                 Apache License\n                           Version 2.0, January 2004\n                   "
  },
  {
    "path": "README.md",
    "chars": 7759,
    "preview": "# Soxan\n\n> در زبان پارسی به نام سخن\n\n\nThis repository consists of models, scripts, and notebooks that help you to use al"
  },
  {
    "path": "notebooks/Eating_Sound_Collection_using_Wav2Vec2.ipynb",
    "chars": 2518020,
    "preview": "{\n  \"nbformat\": 4,\n  \"nbformat_minor\": 0,\n  \"metadata\": {\n    \"colab\": {\n      \"name\": \"Eating Sound Collection using Wa"
  },
  {
    "path": "notebooks/Emotion_recognition_in_Greek_speech_using_HuBERT.ipynb",
    "chars": 1902452,
    "preview": "{\n  \"nbformat\": 4,\n  \"nbformat_minor\": 0,\n  \"metadata\": {\n    \"colab\": {\n      \"name\": \"Emotion recognition in Greek spe"
  },
  {
    "path": "notebooks/Emotion_recognition_in_Greek_speech_using_Wav2Vec2.ipynb",
    "chars": 2830890,
    "preview": "{\n  \"nbformat\": 4,\n  \"nbformat_minor\": 0,\n  \"metadata\": {\n    \"colab\": {\n      \"name\": \"Emotion recognition in Greek spe"
  },
  {
    "path": "notebooks/Regression_Example_Emotion_recognition_in_Greek_speech_using_Wav2Vec2.ipynb",
    "chars": 1143827,
    "preview": "{\n  \"nbformat\": 4,\n  \"nbformat_minor\": 0,\n  \"metadata\": {\n    \"colab\": {\n      \"name\": \"Multi Variable Regression - Emot"
  },
  {
    "path": "requirements.txt",
    "chars": 130,
    "preview": "torch\nnumpy\ngit+https://github.com/huggingface/datasets.git\ngit+https://github.com/huggingface/transformers.git\ntorchaud"
  },
  {
    "path": "run_wav2vec_clf.py",
    "chars": 19901,
    "preview": "import logging\nimport os\nimport sys\nfrom dataclasses import dataclass, field\nfrom typing import Any, Dict, List, Optiona"
  },
  {
    "path": "src/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/collator.py",
    "chars": 2809,
    "preview": "from dataclasses import dataclass\nfrom typing import Dict, List, Optional, Union\nimport torch\n\nimport transformers\nfrom "
  },
  {
    "path": "src/modeling_outputs.py",
    "chars": 387,
    "preview": "from dataclasses import dataclass\nfrom typing import Optional, Tuple\nimport torch\nfrom transformers.file_utils import Mo"
  },
  {
    "path": "src/models.py",
    "chars": 7776,
    "preview": "import torch\nimport torch.nn as nn\nfrom torch.nn import BCEWithLogitsLoss, CrossEntropyLoss, MSELoss\n\nfrom transformers."
  },
  {
    "path": "src/trainer.py",
    "chars": 1870,
    "preview": "from typing import Any, Dict, Union\n\nimport torch\nfrom packaging import version\nfrom torch import nn\n\nfrom transformers "
  }
]

About this extraction

This page contains the full source code of the m3hrdadfi/soxan GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 15 files (8.1 MB), approximately 2.1M tokens, and a symbol index with 26 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!