├── README.md └── DeepLearning.ipynb /README.md: -------------------------------------------------------------------------------- 1 | # Persian News Classification 2 | 3 | This repository contains Jupyter notebooks for analyzing and modeling a dataset of Persian news articles for classification purposes. 4 | 5 | ## Notebooks 6 | 7 | - **EDA.ipynb**: 8 | - Generates word clouds 9 | - Plots the distribution of labels 10 | - Displays dataframe information 11 | 12 | - **MachineLearning.ipynb**: 13 | - Preprocesses the data 14 | - Applies TF-IDF transformation 15 | - Trains multiple machine learning models using grid search for hyperparameter tuning 16 | - Models include ensemble methods, linear models, naive Bayes, nearest neighbors, decision trees, and gradient boosting 17 | 18 | - **DeepLearning.ipynb**: 19 | - Trains Convolutional Neural Networks (CNN) and Recurrent Neural Networks (RNN) 20 | 21 | For more details on the implementation and results, please refer to the individual notebooks. -------------------------------------------------------------------------------- /DeepLearning.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": { 6 | "id": "view-in-github", 7 | "colab_type": "text" 8 | }, 9 | "source": [ 10 | "\"Open" 11 | ] 12 | }, 13 | { 14 | "cell_type": "markdown", 15 | "metadata": { 16 | "id": "bu-uvwDp3LYq" 17 | }, 18 | "source": [ 19 | "# import and install libs" 20 | ] 21 | }, 22 | { 23 | "cell_type": "code", 24 | "execution_count": 1, 25 | "metadata": { 26 | "id": "Pp_d6_8RFgJK" 27 | }, 28 | "outputs": [], 29 | "source": [ 30 | "from google.colab import output\n", 31 | "!pip install hazm\n", 32 | "!pip install mapply\n", 33 | "\n", 34 | "\n", 35 | "import warnings\n", 36 | "import hazm\n", 37 | "from hazm import *\n", 38 | "import re\n", 39 | "import string\n", 40 | "import glob\n", 41 | "from hazm import stopwords_list\n", 42 | "import pandas as pd\n", 43 | "import time\n", 44 | "import os\n", 45 | "import mapply\n", 46 | "\n", 47 | "\n", 48 | "\n", 49 | "import torch\n", 50 | "import numpy as np\n", 51 | "from sklearn.preprocessing import LabelEncoder\n", 52 | "from torch.utils.data import Dataset, DataLoader\n", 53 | "from sklearn.model_selection import train_test_split\n", 54 | "from gensim.models import Word2Vec\n", 55 | "import torch.nn.functional as F\n", 56 | "import torch.nn as nn\n", 57 | "import torch.optim as optim\n", 58 | "from sklearn.metrics import accuracy_score\n", 59 | "\n", 60 | "from google.colab import drive\n", 61 | "drive.mount('/content/drive')\n", 62 | "\n", 63 | "\n", 64 | "output.clear()\n", 65 | "\n" 66 | ] 67 | }, 68 | { 69 | "cell_type": "markdown", 70 | "metadata": { 71 | "id": "zZHbdMF33SYT" 72 | }, 73 | "source": [ 74 | "# Initialization\n", 75 | "\n", 76 | "1. **Parallel Processing Setup:** \n", 77 | " - `mapply.init(...)` initializes a parallel processing framework with multiple workers (`n_workers=-1` uses all available processors), processing data in chunks (`chunk_size=100` and `max_chunks_per_worker=8`), with a visible progress bar.\n", 78 | "\n", 79 | "2. **Text Cleaning Components:** \n", 80 | " - **Punctuations:** \n", 81 | " - Combines English (`string.punctuation`) and Persian punctuation symbols (`persian_punctuations`) into a single list for later removal.\n", 82 | " - **Diacritics:** \n", 83 | " - Compiles a regex (`arabic_diacritics`) to remove common Arabic diacritics (e.g., Tashdid, Fatha, etc.).\n", 84 | " - **Lemmatization and Normalization:** \n", 85 | " - Initializes `hazm.Lemmatizer()` for lemmatizing Persian words. \n", 86 | " - Initializes a `Normalizer()` to standardize text.\n", 87 | "\n", 88 | "\n", 89 | "3. **Stopwords Loading:** \n", 90 | " - Uses `glob` to find all text files with Persian stopwords in a specific folder.\n", 91 | " - Reads each file and compiles a master list of stopwords.\n", 92 | " - Removes newline characters from each stopword.\n", 93 | " - Extends the list with additional stopwords from `stopwords_list()` from hazm.\n", 94 | "\n", 95 | "\n", 96 | "\n", 97 | "This setup prepares your environment to clean, normalize, and process Persian text data efficiently in a parallelized manner." 98 | ] 99 | }, 100 | { 101 | "cell_type": "code", 102 | "execution_count": 2, 103 | "metadata": { 104 | "id": "oZcxRsdKGNyu" 105 | }, 106 | "outputs": [], 107 | "source": [ 108 | "mapply.init(\n", 109 | " n_workers=-1,\n", 110 | " chunk_size=100,\n", 111 | " max_chunks_per_worker=8,\n", 112 | " progressbar=True,\n", 113 | ")\n", 114 | "\n", 115 | "persian_punctuations = '''`÷×؛#<>_()*&^%][ـ،/:\"؟.,'{}~¦+|!”…“–ـ'''\n", 116 | "punctuations_list = string.punctuation + persian_punctuations\n", 117 | "arabic_diacritics = re.compile(\"\"\"\n", 118 | " ّ | # Tashdid\n", 119 | " َ | # Fatha\n", 120 | " ً | # Tanwin Fath\n", 121 | " ُ | # Damma\n", 122 | " ٌ | # Tanwin Damm\n", 123 | " ِ | # Kasra\n", 124 | " ٍ | # Tanwin Kasr\n", 125 | " ْ | # Sukun\n", 126 | " ـ # Tatwil/Kashida\n", 127 | " \"\"\", re.VERBOSE)\n", 128 | "lemmatizer = hazm.Lemmatizer()\n", 129 | "normalizer = Normalizer()\n", 130 | "\n", 131 | "\n", 132 | "file_list = glob.glob('/content/drive/MyDrive/NLP/persian_stopwords' + '/*.txt')\n", 133 | "\n", 134 | "stop_words = []\n", 135 | "\n", 136 | "for file_path in file_list:\n", 137 | " with open(file_path) as f:\n", 138 | " stop_words.extend(f.readlines())\n", 139 | "\n", 140 | "for i in range(len(stop_words)):\n", 141 | " stop_words[i]=stop_words[i].replace('\\n','')\n", 142 | "\n", 143 | "stop_words.extend(stopwords_list())\n", 144 | "output.clear()" 145 | ] 146 | }, 147 | { 148 | "cell_type": "markdown", 149 | "metadata": { 150 | "id": "NVhuH0nwYgfa" 151 | }, 152 | "source": [ 153 | "# read dataset" 154 | ] 155 | }, 156 | { 157 | "cell_type": "code", 158 | "execution_count": 3, 159 | "metadata": { 160 | "colab": { 161 | "base_uri": "https://localhost:8080/", 162 | "height": 206 163 | }, 164 | "id": "tyuNT5RSGOFA", 165 | "outputId": "4316685a-dd35-4902-f7cc-6c335cc3af2d" 166 | }, 167 | "outputs": [ 168 | { 169 | "output_type": "execute_result", 170 | "data": { 171 | "text/plain": [ 172 | " title \\\n", 173 | "0 قارایی: در تلاشم تا سیاه نمایی درباره ایران با... \n", 174 | "1 توجه ویژه به اقوام و چهره های مردمی در فصل جدی... \n", 175 | "2 جان فدا| ویژه برنامه هاى تلویزیون در سومین سال... \n", 176 | "3 محمد علی صائب رئیس خبرگزاری صدا وسیما شد \n", 177 | "4 «همراه با خاطره ها» تمدید شد \n", 178 | "\n", 179 | " text label \n", 180 | "0 خبرگزاری فارس - گروه هنر و رسانه - علی عبدالهی... culture-media \n", 181 | "1 به گزارش خبرگزاری فارس، پویان هدایتی، تهیه کن... culture-media \n", 182 | "2 به گزارش خبرنگار رادیو و تلویزیون خبرگزاری فار... culture-media \n", 183 | "3 به گزارش خبرگزاری فارس، علیرضا خدابخشی، معاون ... culture-media \n", 184 | "4 به گزارش خبرگزاری فارس به نقل از روابط عمومی و... culture-media " 185 | ], 186 | "text/html": [ 187 | "\n", 188 | "
\n", 189 | "
\n", 190 | "\n", 203 | "\n", 204 | " \n", 205 | " \n", 206 | " \n", 207 | " \n", 208 | " \n", 209 | " \n", 210 | " \n", 211 | " \n", 212 | " \n", 213 | " \n", 214 | " \n", 215 | " \n", 216 | " \n", 217 | " \n", 218 | " \n", 219 | " \n", 220 | " \n", 221 | " \n", 222 | " \n", 223 | " \n", 224 | " \n", 225 | " \n", 226 | " \n", 227 | " \n", 228 | " \n", 229 | " \n", 230 | " \n", 231 | " \n", 232 | " \n", 233 | " \n", 234 | " \n", 235 | " \n", 236 | " \n", 237 | " \n", 238 | " \n", 239 | " \n", 240 | " \n", 241 | " \n", 242 | " \n", 243 | " \n", 244 | "
titletextlabel
0قارایی: در تلاشم تا سیاه نمایی درباره ایران با...خبرگزاری فارس - گروه هنر و رسانه - علی عبدالهی...culture-media
1توجه ویژه به اقوام و چهره های مردمی در فصل جدی...به گزارش خبرگزاری فارس، پویان هدایتی، تهیه کن...culture-media
2جان فدا| ویژه برنامه هاى تلویزیون در سومین سال...به گزارش خبرنگار رادیو و تلویزیون خبرگزاری فار...culture-media
3محمد علی صائب رئیس خبرگزاری صدا وسیما شدبه گزارش خبرگزاری فارس، علیرضا خدابخشی، معاون ...culture-media
4«همراه با خاطره ها» تمدید شدبه گزارش خبرگزاری فارس به نقل از روابط عمومی و...culture-media
\n", 245 | "
\n", 246 | "
\n", 247 | "\n", 248 | "
\n", 249 | " \n", 257 | "\n", 258 | " \n", 298 | "\n", 299 | " \n", 323 | "
\n", 324 | "\n", 325 | "\n", 326 | "
\n", 327 | " \n", 338 | "\n", 339 | "\n", 428 | "\n", 429 | " \n", 451 | "
\n", 452 | "\n", 453 | "
\n", 454 | "
\n" 455 | ], 456 | "application/vnd.google.colaboratory.intrinsic+json": { 457 | "type": "dataframe", 458 | "variable_name": "df", 459 | "summary": "{\n \"name\": \"df\",\n \"rows\": 64942,\n \"fields\": [\n {\n \"column\": \"title\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 64391,\n \"samples\": [\n \"\\u062f\\u06cc\\u062f\\u0627\\u0631 \\u062f\\u0628\\u06cc\\u0631 \\u0634\\u0648\\u0631\\u0627\\u06cc \\u0639\\u0627\\u0644\\u06cc \\u0627\\u0646\\u0642\\u0644\\u0627\\u0628 \\u0641\\u0631\\u0647\\u0646\\u06af\\u06cc \\u0628\\u0627 \\u062c\\u0645\\u0639\\u06cc \\u0627\\u0632 \\u0647\\u0646\\u0631\\u0645\\u0646\\u062f\\u0627\\u0646\",\n \"\\u0627\\u0642\\u062f\\u0627\\u0645 \\u062c\\u0627\\u0644\\u0628 \\u0644\\u06cc\\u06af \\u0628\\u0631\\u062a\\u0631 \\u0627\\u0646\\u06af\\u0644\\u06cc\\u0633 \\u062f\\u0631 \\u062d\\u0645\\u0627\\u06cc\\u062a \\u0627\\u0632 \\u0631\\u0648\\u0632\\u0647 \\u062f\\u0627\\u0631\\u0627\\u0646\",\n \"\\u0622\\u062e\\u0631\\u06cc\\u0646 \\u0648\\u0636\\u0639\\u06cc\\u062a \\u062d\\u0636\\u0648\\u0631 \\u0645\\u0644\\u06cc \\u067e\\u0648\\u0634\\u0627\\u0646 \\u062f\\u0631 \\u0627\\u0631\\u062f\\u0648/ \\u0641\\u062f\\u0631\\u0627\\u0633\\u06cc\\u0648\\u0646 \\u0627\\u0645\\u0631\\u0648\\u0632 \\u0648\\u06cc\\u0632\\u0627\\u06cc \\u0633\\u067e\\u0627\\u0647\\u0627\\u0646\\u06cc \\u0647\\u0627 \\u0631\\u0627 \\u0645\\u06cc \\u06af\\u06cc\\u0631\\u062f\\u061f\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"text\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 64631,\n \"samples\": [\n \"\\u06af\\u0631\\u0648\\u0647 \\u062a\\u0627\\u0631\\u06cc\\u062e \\u062e\\u0628\\u0631\\u06af\\u0632\\u0627\\u0631\\u06cc \\u0641\\u0627\\u0631\\u0633: \\u0648\\u0642\\u062a\\u06cc \\u0645\\u0646\\u0627\\u0641\\u0642\\u06cc\\u0646 \\u062f\\u0631 \\u062f\\u0647\\u0647 \\u06f6\\u06f0 \\u0628\\u0627 \\u062a\\u0631\\u0648\\u0631 \\u0645\\u0642\\u0627\\u0645\\u0627\\u062a \\u0646\\u0638\\u0627\\u0645 \\u0646\\u062a\\u0648\\u0627\\u0646\\u0633\\u062a\\u0646\\u062f \\u062c\\u0645\\u0647\\u0648\\u0631\\u06cc \\u0627\\u0633\\u0644\\u0627\\u0645\\u06cc \\u0631\\u0627 \\u0634\\u06a9\\u0633\\u062a \\u062f\\u0647\\u0646\\u062f \\u0628\\u0647 \\u06af\\u0645\\u0627\\u0646 \\u062e\\u0648\\u062f\\u0634\\u0627\\u0646 \\u0648\\u0627\\u0631\\u062f \\u0645\\u0631\\u062d\\u0644\\u0647 \\u062c\\u062f\\u06cc\\u062f\\u06cc \\u0634\\u062f\\u0646\\u062f \\u062a\\u0627 \\u0627\\u0632 \\u0637\\u0631\\u06cc\\u0642 \\u00ab\\u062e\\u0637 [\\u0631\\u0648\\u06cc\\u06a9\\u0631\\u062f] \\u067e\\u0627\\u0633\\u062f\\u0627\\u0631\\u06a9\\u0634\\u06cc \\u0648 \\u062d\\u0632\\u0628 \\u0627\\u0644\\u0644\\u0647 \\u06a9\\u064f\\u0634\\u06cc\\u00bb \\u0628\\u0647 \\u0628\\u062f\\u0646\\u0647 \\u0646\\u0638\\u0627\\u0645 \\u0636\\u0631\\u0628\\u0647 \\u0628\\u0632\\u0646\\u0646\\u062f \\u0648 \\u06cc\\u06a9\\u06cc \\u0627\\u0632 \\u0631\\u0648\\u0634 \\u0647\\u0627\\u06cc\\u0634\\u0627\\u0646 \\u06a9\\u0647 \\u062f\\u0631 \\u0646\\u0634\\u0631\\u06cc\\u0647 \\u0645\\u062c\\u0627\\u0647\\u062f [\\u0645\\u062a\\u0639\\u0644\\u0642 \\u0628\\u0647 \\u0645\\u0646\\u0627\\u0641\\u0642\\u06cc\\u0646] \\u0628\\u0627 \\u062a\\u06cc\\u062a\\u0631 \\u00ab\\u0639\\u0645\\u0644\\u06cc\\u0627\\u062a \\u0648\\u0627\\u062d\\u062f\\u0647\\u0627\\u06cc \\u0645\\u0648\\u062a\\u0648\\u0631\\u06cc\\u00bb \\u0627\\u0641\\u0634\\u0627\\u0621 \\u0634\\u062f\\u060c \\u0627\\u06cc\\u0646 \\u0637\\u0648\\u0631\\u06cc \\u0628\\u0648\\u062f: \\u00ab\\u067e\\u0631\\u062a\\u0627\\u0628 \\u0646\\u0627\\u0631\\u0646\\u062c\\u06a9 \\u0648 \\u0628\\u0645\\u0628 \\u0647\\u0627\\u06cc \\u0622\\u062a\\u0634 \\u0632\\u0627 \\u0628\\u0647 \\u0645\\u0631\\u0627\\u06a9\\u0632 \\u062f\\u0634\\u0645\\u0646\\u060c \\u0627\\u0639\\u062f\\u0627\\u0645 \\u0627\\u0646\\u0642\\u0644\\u0627\\u0628\\u06cc \\u0645\\u0632\\u062f\\u0648\\u0631\\u0627\\u0646 \\u062f\\u0634\\u0645\\u0646 \\u062f\\u0631 \\u0645\\u0631\\u0627\\u06a9\\u0632 \\u062d\\u0641\\u0627\\u0638\\u062a \\u0634\\u062f\\u0647 \\u062c\\u0627\\u0633\\u0648\\u0633\\u06cc \\u0648 \\u06a9\\u0633\\u0628 \\u0627\\u0637\\u0644\\u0627\\u0639\\u0627\\u062a \\u0648 \\u0647\\u0645\\u0686\\u0646\\u06cc\\u0646 \\u0627\\u0639\\u062f\\u0627\\u0645 \\u0627\\u0646\\u0642\\u0644\\u0627\\u0628\\u06cc \\u0645\\u0632\\u062f\\u0648\\u0631\\u0627\\u0646 \\u0645\\u0646\\u0641\\u0631\\u062f \\u062f\\u0634\\u0645\\u0646 \\u062f\\u0631 \\u0645\\u0633\\u06cc\\u0631 \\u062a\\u0631\\u062f\\u062f\\u060c \\u0622\\u0645\\u0648\\u0632\\u0634 \\u062f\\u0627\\u062f\\u0647 \\u0634\\u062f\\u0647 \\u0627\\u0633\\u062a... \\u06cc\\u06a9\\u06cc \\u0627\\u0632 \\u0637\\u0631\\u062d \\u0647\\u0627\\u06cc\\u06cc \\u06a9\\u0647 \\u0648\\u0627\\u062d\\u062f \\u0645\\u0648\\u062a\\u0648\\u0631\\u06cc \\u0628\\u0639\\u062f \\u0627\\u0632 \\u0641\\u0631\\u0627\\u06af\\u06cc\\u0631\\u06cc \\u0648 \\u06a9\\u0633\\u0628 \\u0622\\u0645\\u0648\\u0632\\u0634 \\u0647\\u0627\\u06cc \\u0646\\u0638\\u0627\\u0645\\u06cc \\u0645\\u06a9\\u0641\\u06cc \\u0645\\u06cc \\u062a\\u0648\\u0627\\u0646\\u062f \\u0627\\u0646\\u062c\\u0627\\u0645 \\u062f\\u0647\\u062f\\u060c \\u0628\\u0647 \\u0647\\u0644\\u0627\\u06a9\\u062a \\u0631\\u0633\\u0627\\u0646\\u062f\\u0646 \\u062a\\u06a9 \\u0645\\u0632\\u062f\\u0648\\u0631 \\u062f\\u0634\\u0645\\u0646 \\u062f\\u0631 \\u06a9\\u0648\\u0686\\u0647 \\u0648 \\u062e\\u06cc\\u0627\\u0628\\u0627\\u0646 \\u0627\\u0633\\u062a\\u00bb. \\u0646\\u062a\\u06cc\\u062c\\u0647 \\u0686\\u0647 \\u0628\\u0648\\u062f\\u061f \\u067e\\u0627\\u0633\\u062f\\u0627\\u0631\\u06a9\\u064f\\u0634\\u06cc \\u0622\\u0645\\u0627\\u0631\\u0647\\u0627\\u06cc \\u0639\\u062c\\u06cc\\u0628\\u06cc \\u062f\\u0627\\u0634\\u062a \\u0648 \\u0628\\u06cc\\u0634\\u062a\\u0631 \\u0645\\u0631\\u062f\\u0645 \\u0639\\u0627\\u062f\\u06cc \\u0628\\u0648\\u062f\\u0646\\u062f \\u06a9\\u0647 \\u062f\\u0631 \\u0627\\u06cc\\u0646 \\u0645\\u06cc\\u0627\\u0646 \\u06a9\\u0634\\u062a\\u0647 \\u0645\\u06cc \\u0634\\u062f\\u0646\\u062f \\u0648 \\u0628\\u0631\\u0627\\u06cc \\u0645\\u062b\\u0627\\u0644 \\u0628\\u0646\\u0627 \\u0628\\u0647 \\u06af\\u0632\\u0627\\u0631\\u0634\\u06cc \\u0627\\u0632 \\u0645\\u0642\\u0627\\u0645\\u0627\\u062a \\u0645\\u0646\\u0627\\u0641\\u0642\\u06cc\\u0646 \\u0648\\u0636\\u0639\\u06cc\\u062a \\u0627\\u06cc\\u0646 \\u0637\\u0648\\u0631\\u06cc \\u0628\\u0648\\u062f: \\u00ab\\u0627\\u0632 \\u0622\\u063a\\u0627\\u0632 \\u0645\\u0631\\u062d\\u0644\\u0647 \\u062f\\u0648\\u0645 \\u0645\\u0642\\u0627\\u0648\\u0645\\u062a... \\u0628\\u06cc\\u0634 \\u0627\\u0632 \\u0647\\u0632\\u0627\\u0631 \\u062a\\u0646 \\u0627\\u0632 \\u0627\\u06cc\\u0627\\u062f\\u06cc \\u0631\\u0698\\u06cc\\u0645 \\u0628\\u0647 \\u062f\\u0633\\u062a \\u0648\\u0627\\u062d\\u062f\\u0647\\u0627\\u06cc \\u0639\\u0645\\u0644\\u06cc\\u0627\\u062a\\u06cc \\u0633\\u0627\\u0632\\u0645\\u0627\\u0646 \\u062f\\u0631 \\u062a\\u0647\\u0631\\u0627\\u0646\\u060c \\u06af\\u06cc\\u0644\\u0627\\u0646\\u060c \\u0645\\u0627\\u0632\\u0646\\u062f\\u0631\\u0627\\u0646\\u060c \\u0641\\u0627\\u0631\\u0633\\u060c \\u0647\\u0645\\u062f\\u0627\\u0646\\u060c \\u0627\\u0631\\u0627\\u06a9\\u060c \\u062e\\u0631\\u0627\\u0633\\u0627\\u0646\\u060c \\u0627\\u0635\\u0641\\u0647\\u0627\\u0646\\u060c \\u06a9\\u0631\\u062f\\u0633\\u062a\\u0627\\u0646 \\u0648... \\u0646\\u0627\\u0628\\u0648\\u062f \\u0634\\u062f\\u0647 \\u0627\\u0646\\u062f \\u06a9\\u0647 \\u06f2\\u06f8 \\u0646\\u0641\\u0631 \\u0627\\u0632 \\u0622\\u0646\\u0627\\u0646 \\u0627\\u0632 \\u0646\\u06cc\\u0631\\u0648\\u0647\\u0627\\u06cc \\u0633\\u067e\\u0627\\u0647 \\u067e\\u0627\\u0633\\u062f\\u0627\\u0631\\u0627\\u0646 \\u0628\\u0648\\u062f\\u0647 \\u0627\\u0646\\u062f\\u00bb. \\u0648\\u0636\\u0639\\u06cc\\u062a \\u0645\\u0639\\u0644\\u0648\\u0645 \\u0634\\u062f \\u0648 \\u0627\\u06cc\\u0646 \\u0647\\u0645 \\u06cc\\u06a9 \\u0633\\u0646\\u062f \\u062f\\u06cc\\u06af\\u0631 \\u0627\\u0632 \\u0646\\u0634\\u0631\\u06cc\\u0647 \\u0645\\u062c\\u0627\\u0647\\u062f: \\u00ab\\u0627\\u0632 \\u06f3\\u06f0 \\u062e\\u0631\\u062f\\u0627\\u062f \\u06f1\\u06f3\\u06f6\\u06f1 \\u062a\\u0627 \\u06f3\\u06f0 \\u062e\\u0631\\u062f\\u0627\\u062f \\u06f1\\u06f3\\u06f6\\u06f2\\u060c \\u062d\\u062f\\u0627\\u0642\\u0644 \\u06f2\\u06f8\\u06f0\\u06f0 \\u062a\\u0646 \\u0627\\u0632 \\u0645\\u0632\\u062f\\u0648\\u0631\\u0627\\u0646 \\u0631\\u0698\\u06cc\\u0645 \\u0628\\u0631 \\u0627\\u062b\\u0631 \\u0622\\u062a\\u0634 \\u0631\\u0632\\u0645\\u0646\\u062f\\u06af\\u0627\\u0646 \\u0645\\u062c\\u0627\\u0647\\u062f \\u0633\\u0627\\u0632\\u0645\\u0627\\u0646 \\u0628\\u0647 \\u0647\\u0644\\u0627\\u06a9\\u062a \\u0631\\u0633\\u06cc\\u062f\\u0647 \\u0627\\u0646\\u062f \\u06a9\\u0647 \\u06f4\\u06f0 \\u062a\\u0646 \\u0627\\u0632 \\u0622\\u0646\\u0627\\u0646 \\u0627\\u0632 \\u0646\\u06cc\\u0631\\u0648\\u0647\\u0627\\u06cc \\u067e\\u0627\\u0633\\u062f\\u0627\\u0631 \\u0628\\u0648\\u062f\\u0647 \\u0627\\u0646\\u062f\\u00bb. \\u067e\\u0627\\u06cc\\u0627\\u0646 \\u067e\\u06cc\\u0627\\u0645/\",\n \"\\u0628\\u0647 \\u06af\\u0632\\u0627\\u0631\\u0634 \\u062e\\u0628\\u0631\\u0646\\u06af\\u0627\\u0631 \\u0648\\u0631\\u0632\\u0634\\u06cc \\u062e\\u0628\\u0631\\u06af\\u0632\\u0627\\u0631\\u06cc \\u0641\\u0627\\u0631\\u0633\\u060c \\u0645\\u0631\\u0627\\u0633\\u0645 \\u062a\\u0642\\u062f\\u06cc\\u0631 \\u0627\\u0632 \\u0634\\u0647\\u0631\\u062f\\u0627\\u0631\\u0627\\u0646 \\u0637\\u0631\\u062d \\u0645\\u0644\\u06cc \\u00ab\\u0634\\u0647\\u0631 \\u0641\\u0639\\u0627\\u0644\\u00bb \\u0628\\u0639\\u062f\\u0627\\u0632\\u0638\\u0647\\u0631 \\u0627\\u0645\\u0631\\u0648\\u0632 \\u0633\\u0647 \\u0634\\u0646\\u0628\\u0647 \\u0628\\u0627 \\u062d\\u0636\\u0648\\u0631 \\u0633\\u06cc\\u062f\\u0631\\u0636\\u0627 \\u0635\\u0627\\u0644\\u062d\\u06cc \\u0627\\u0645\\u06cc\\u0631\\u06cc \\u0631\\u0626\\u06cc\\u0633 \\u06a9\\u0645\\u06cc\\u062a\\u0647 \\u0645\\u0644\\u06cc \\u0627\\u0644\\u0645\\u067e\\u06cc\\u06a9\\u060c \\u0627\\u0641\\u0634\\u06cc\\u0646 \\u0645\\u0644\\u0627\\u06cc\\u06cc \\u0631\\u0626\\u06cc\\u0633 \\u0641\\u062f\\u0631\\u0627\\u0633\\u06cc\\u0648\\u0646 \\u0648\\u0631\\u0632\\u0634\\u0647\\u0627\\u06cc \\u0647\\u0645\\u06af\\u0627\\u0646\\u06cc\\u060c \\u0639\\u0628\\u062f\\u0627\\u0644\\u062d\\u0645\\u06cc\\u062f \\u0627\\u062d\\u0645\\u062f\\u06cc \\u0645\\u0634\\u0627\\u0648\\u0631 \\u0631\\u0626\\u06cc\\u0633 \\u06a9\\u0645\\u06cc\\u062a\\u0647 \\u0645\\u0644\\u06cc \\u0627\\u0644\\u0645\\u067e\\u06cc\\u06a9 \\u0648 \\u0645\\u0639\\u0627\\u0648\\u0646 \\u0633\\u0627\\u0628\\u0642 \\u062a\\u0648\\u0633\\u0639\\u0647 \\u0648\\u0631\\u0632\\u0634 \\u0647\\u0645\\u06af\\u0627\\u0646\\u06cc \\u0648\\u0632\\u0627\\u0631\\u062a \\u0648\\u0631\\u0632\\u0634 \\u0648 \\u0634\\u0647\\u0631\\u062f\\u0627\\u0631\\u0627\\u0646 \\u0634\\u0647\\u0631\\u0647\\u0627\\u06cc \\u0645\\u0634\\u0627\\u0631\\u06a9\\u062a \\u06a9\\u0646\\u0646\\u062f\\u0647 \\u0627\\u06cc\\u0646 \\u0637\\u0631\\u062d \\u0645\\u0644\\u06cc \\u062f\\u0631 \\u0633\\u0627\\u0644\\u0646 \\u0641\\u0627\\u0631\\u0633\\u06cc \\u0622\\u06a9\\u0627\\u062f\\u0645\\u06cc \\u0645\\u0644\\u06cc \\u0627\\u0644\\u0645\\u067e\\u06cc\\u06a9 \\u0628\\u0631\\u06af\\u0632\\u0627\\u0631 \\u0634\\u062f.\\u00a0 * \\u0627\\u0641\\u0634\\u06cc\\u0646 \\u0645\\u0644\\u0627\\u06cc\\u06cc \\u062f\\u0631 \\u0627\\u06cc\\u0646 \\u062c\\u0644\\u0633\\u0647 \\u0627\\u0638\\u0647\\u0627\\u0631\\u062f\\u0627\\u0634\\u062a: \\u06a9\\u0645 \\u062a\\u062d\\u0631\\u06a9\\u06cc \\u0686\\u0627\\u0644\\u0634 \\u0627\\u0645\\u0631\\u0648\\u0632 \\u0645\\u0627 \\u0648 \\u0628\\u062d\\u0631\\u0627\\u0646 \\u0641\\u0631\\u062f\\u0627\\u06cc \\u0627\\u06cc\\u0631\\u0627\\u0646 \\u0627\\u0633\\u062a\\u060c \\u0628\\u062d\\u0631\\u0627\\u0646\\u06cc \\u06a9\\u0647 \\u062e\\u0627\\u0646\\u0648\\u0627\\u062f\\u0647 \\u0647\\u0627\\u06cc \\u0627\\u06cc\\u0631\\u0627\\u0646\\u06cc \\u0631\\u0627 \\u062a\\u0647\\u062f\\u06cc\\u062f \\u0645\\u06cc \\u06a9\\u0646\\u062f . \\u067e\\u0631\\u0648\\u0698\\u0647 \\u0634\\u0647\\u0631 \\u0641\\u0639\\u0627\\u0644 \\u0647\\u0645 \\u067e\\u0627\\u0633\\u062e\\u06cc \\u0628\\u0647 \\u0627\\u06cc\\u0646 \\u0628\\u062d\\u0631\\u0627\\u0646 \\u0627\\u0633\\u062a. \\u0646\\u0642\\u0634 \\u0634\\u0647\\u0631\\u062f\\u0627\\u0631\\u0627\\u0646 \\u062f\\u0631 \\u0627\\u06cc\\u0646 \\u0645\\u0648\\u0636\\u0648\\u0639 \\u06a9\\u0627\\u0646\\u0648\\u0646\\u06cc \\u0627\\u0633\\u062a \\u06cc\\u0639\\u0646\\u06cc \\u062a\\u0645\\u0627\\u0645 \\u0631\\u0648\\u06cc\\u062f\\u0627\\u062f\\u0647\\u0627\\u06cc\\u06cc \\u06a9\\u0647 \\u062f\\u0631 \\u0639\\u0631\\u0635\\u0647 \\u0648\\u0631\\u0632\\u0634 \\u0647\\u0645\\u06af\\u0627\\u0646\\u06cc \\u062f\\u0631 \\u062d\\u0627\\u0644 \\u0627\\u062c\\u0631\\u0627\\u0633\\u062a \\u062a\\u0627 \\u0648\\u0642\\u062a\\u06cc \\u0627\\u0632 \\u0646\\u06af\\u0627\\u0647 \\u0634\\u0647\\u0631\\u06cc \\u0639\\u0628\\u0648\\u0631 \\u0646\\u06a9\\u0646\\u062f\\u060c \\u0628\\u0647 \\u0646\\u062a\\u06cc\\u062c\\u0647 \\u0646\\u062e\\u0648\\u0627\\u0647\\u062f \\u0631\\u0633\\u06cc\\u062f.\\u00a0 * \\u0627\\u062c\\u0631\\u0627\\u06cc \\u0627\\u06cc\\u0646 \\u0628\\u0631\\u0646\\u0627\\u0645\\u0647 \\u0628\\u0631\\u0639\\u0647\\u062f\\u0647 \\u0645\\u062d\\u0645\\u062f\\u0631\\u0636\\u0627 \\u0627\\u062d\\u0645\\u062f\\u06cc \\u0628\\u0648\\u062f. \\u0648\\u06cc \\u062f\\u0631 \\u062e\\u0635\\u0648\\u0635 \\u062a\\u0634\\u06a9\\u06cc\\u0644 \\u0641\\u062f\\u0631\\u0627\\u0633\\u06cc\\u0648\\u0646 \\u062c\\u062f\\u06cc\\u062f \\u0622\\u0645\\u0627\\u062f\\u06af\\u06cc \\u062c\\u0633\\u0645\\u0627\\u0646\\u06cc \\u06a9\\u0646\\u0627\\u06cc\\u0647 \\u0632\\u062f \\u0648 \\u0628\\u0647 \\u0635\\u0627\\u0644\\u062d\\u06cc \\u0627\\u0645\\u06cc\\u0631\\u06cc \\u06af\\u0641\\u062a \\u06a9\\u0647 \\u0627\\u0632 \\u0627\\u06cc\\u0646 \\u0628\\u0647 \\u0628\\u0639\\u062f \\u0648\\u06cc \\u0628\\u0627\\u0628\\u062f \\u0628\\u0648\\u062f\\u062c\\u0647 \\u0627\\u06cc \\u0631\\u0627 \\u0647\\u0645 \\u0628\\u0647 \\u0627\\u06cc\\u0646 \\u0641\\u062f\\u0631\\u0627\\u0633\\u06cc\\u0648\\u0646 \\u062c\\u062f\\u06cc\\u062f \\u0627\\u062e\\u062a\\u0635\\u0627\\u0635 \\u062f\\u0647\\u062f.\\u00a0 * \\u0633\\u06cc\\u062f\\u0631\\u0636\\u0627 \\u0635\\u0627\\u0644\\u062d\\u06cc \\u0627\\u0645\\u06cc\\u0631\\u06cc \\u062f\\u0631 \\u0627\\u06cc\\u0646 \\u0645\\u0631\\u0627\\u0633\\u0645 \\u06af\\u0641\\u062a: \\u062c\\u0627\\u0645\\u0639\\u0647 \\u0627\\u06cc\\u0631\\u0627\\u0646 \\u0627\\u0632 \\u0627\\u0646\\u0628\\u0648\\u0647\\u06cc \\u0622\\u0633\\u06cc\\u0628 \\u0647\\u0627\\u06cc \\u0627\\u062c\\u062a\\u0645\\u0627\\u0639\\u06cc \\u0631\\u0646\\u062c \\u0645\\u06cc \\u0628\\u0631\\u062f. \\u0645\\u0627 \\u062f\\u0686\\u0627\\u0631 \\u06cc\\u06a9 \\u0646\\u0648\\u0639 \\u0627\\u063a\\u062a\\u0634\\u0627\\u0634 \\u062f\\u0631 \\u0646\\u0638\\u0627\\u0645 \\u0628\\u0631\\u0646\\u0627\\u0645\\u0647 \\u0631\\u06cc\\u0632\\u06cc\\u060c \\u0646\\u0638\\u0627\\u0631\\u062a \\u0648 \\u0627\\u062c\\u0631\\u0627 \\u0647\\u0633\\u062a\\u06cc\\u0645 \\u0648 \\u0648\\u0636\\u0639\\u06cc\\u062a \\u0645\\u0634\\u0627\\u0631\\u06a9\\u062a \\u062f\\u0631 \\u0627\\u06cc\\u0631\\u0627\\u0646 \\u0628\\u0633\\u06cc\\u0627\\u0631 \\u067e\\u0627\\u06cc\\u06cc\\u0646 \\u0627\\u0633\\u062a. \\u0645\\u062f\\u06cc\\u0631\\u06cc\\u062a \\u0648 \\u0627\\u0644\\u06af\\u0648\\u06cc \\u0633\\u0628\\u06a9 \\u0632\\u0646\\u062f\\u06af\\u06cc \\u062f\\u0631 \\u0627\\u06cc\\u0631\\u0627\\u0646 \\u0646\\u0627\\u06a9\\u0627\\u0645 \\u0628\\u0648\\u062f\\u0647 \\u0686\\u0648\\u0646 \\u0632\\u06cc\\u0627\\u062f \\u0633\\u062e\\u0646 \\u0645\\u06cc \\u06af\\u0648\\u06cc\\u06cc\\u0645 \\u0648 \\u06a9\\u0645\\u062a\\u0631 \\u0639\\u0645\\u0644 \\u0645\\u06cc \\u06a9\\u0646\\u06cc\\u0645. \\u0647\\u0645\\u06af\\u0627\\u0646 \\u0645\\u062f\\u0639\\u06cc \\u0647\\u0633\\u062a\\u0646\\u062f \\u0627\\u0645\\u0627 \\u0627\\u062a\\u0641\\u0627\\u0642\\u06cc \\u0646\\u06cc\\u0641\\u062a\\u0627\\u062f\\u0647 \\u0627\\u0633\\u062a. \\u0645\\u0627 \\u0628\\u0627 \\u067e\\u062f\\u06cc\\u062f\\u0647 \\u0627\\u0632\\u062f\\u0648\\u0627\\u062c \\u0633\\u0641\\u06cc\\u062f\\u060c \\u0641\\u0631\\u0632\\u0646\\u062f\\u0627\\u0646 \\u0637\\u0644\\u0627\\u0642 \\u0648 . .. \\u0631\\u0648\\u0628\\u0647 \\u0631\\u0648 \\u0634\\u062f\\u0647 \\u0627\\u06cc\\u0645 \\u06a9\\u0647 \\u0645\\u0646 \\u062f\\u0631 \\u062a\\u062d\\u0644\\u06cc\\u0644\\u06cc \\u062f\\u0631 \\u06a9\\u062a\\u0627\\u0628\\u06cc \\u06a9\\u0647 \\u0646\\u0648\\u0634\\u062a\\u0647 \\u0627\\u0645 \\u0627\\u0634\\u0627\\u0631\\u0647 \\u06a9\\u0631\\u062f\\u0647 \\u0627\\u0645 \\u0641\\u0631\\u0648\\u067e\\u0627\\u0634\\u06cc \\u062e\\u0627\\u0646\\u0648\\u0627\\u062f\\u0647 \\u0628\\u0647 \\u0641\\u0631\\u0648\\u067e\\u0627\\u0634\\u06cc \\u0646\\u0638\\u0627\\u0645 \\u0645\\u06cc \\u0627\\u0646\\u062c\\u0627\\u0645\\u062f.\\u00a0 \\u0627\\u0646\\u062a\\u0647\\u0627\\u06cc \\u067e\\u06cc\\u0627\\u0645/\",\n \"\\u0633\\u06cc\\u062f \\u0639\\u0644\\u06cc \\u0627\\u0639\\u062a\\u062f\\u0627\\u0644\\u06cc \\u0645\\u062c\\u0631\\u06cc \\u0628\\u0631\\u06af\\u0632\\u0627\\u0631\\u06cc \\u0646\\u0645\\u0627\\u06cc\\u0634\\u06af\\u0627\\u0647 \\u062e\\u062f\\u0645\\u0627\\u062a \\u0634\\u0647\\u0631\\u06cc \\u062f\\u0631 \\u06af\\u0641\\u062a \\u0648\\u06af\\u0648 \\u0628\\u0627 \\u062e\\u0628\\u0631\\u0646\\u06af\\u0627\\u0631 \\u0641\\u0627\\u0631\\u0633 \\u0628\\u0627 \\u0627\\u0634\\u0627\\u0631\\u0647 \\u0628\\u0647 \\u0627\\u06cc\\u0646\\u06a9\\u0647 \\u0647\\u062c\\u062f\\u0647\\u0645\\u06cc\\u0646 \\u0646\\u0645\\u0627\\u06cc\\u0634\\u06af\\u0627\\u0647 \\u062d\\u0645\\u0644 \\u0648 \\u0646\\u0642\\u0644 \\u062a\\u0631\\u0627\\u0641\\u06cc\\u06a9\\u060c \\u062e\\u062f\\u0645\\u0627\\u062a \\u0634\\u0647\\u0631\\u06cc\\u060c \\u0634\\u0647\\u0631 \\u0647\\u0648\\u0634\\u0645\\u0646\\u062f\\u060c \\u0645\\u062f\\u06cc\\u0631\\u06cc\\u062a \\u062c\\u0627\\u0645\\u0639 \\u0634\\u0647\\u0631\\u06cc\\u060c \\u0645\\u0627\\u0634\\u06cc\\u0646 \\u0622\\u0644\\u0627\\u062a \\u0633\\u0646\\u06af\\u06cc\\u0646 \\u0648\\u0627\\u0628\\u0633\\u062a\\u0647 \\u0627\\u0645\\u0633\\u0627\\u0644 \\u062f\\u0631 \\u0641\\u0636\\u0627\\u06cc 16 \\u0647\\u0632\\u0627\\u0631 \\u0645\\u062a\\u0631\\u06cc \\u062f\\u0631 \\u0645\\u062d\\u0644 \\u0646\\u0645\\u0627\\u06cc\\u0634\\u06af\\u0627\\u0647 \\u0647\\u0627\\u06cc \\u0628\\u06cc\\u0646 \\u0627\\u0644\\u0645\\u0644\\u0644\\u06cc \\u0634\\u0647\\u0631 \\u0622\\u0641\\u062a\\u0627\\u0628 \\u0627\\u0632 27\\u00a0 \\u062a\\u0627 30\\u0645\\u0647\\u0631\\u0645\\u0627\\u0647 \\u0628\\u0631\\u06af\\u0632\\u0627\\u0631 \\u0645\\u06cc \\u0634\\u0648\\u062f\\u060c \\u06af\\u0641\\u062a: \\u062f\\u0631 \\u0627\\u06cc\\u0646 \\u0646\\u0645\\u0627\\u06cc\\u0634\\u06af\\u0627\\u0647 130 \\u0634\\u0631\\u06a9\\u062a \\u062d\\u0636\\u0648\\u0631 \\u062e\\u0648\\u0627\\u0647\\u0646\\u062f \\u062f\\u0627\\u0634\\u062a. \\u0648\\u06cc \\u0627\\u0641\\u0632\\u0648\\u062f: \\u0633\\u0627\\u0639\\u062a \\u0628\\u0627\\u0632\\u062f\\u06cc\\u062f \\u0627\\u06cc\\u0646 \\u0646\\u0645\\u0627\\u06cc\\u0634\\u06af\\u0627\\u0647 \\u06a9\\u0647 9 \\u0635\\u0628\\u062d \\u062a\\u0627 5 \\u0639\\u0635\\u0631 \\u062f\\u0631 \\u0646\\u0638\\u0631 \\u06af\\u0631\\u0641\\u062a\\u0647 \\u0634\\u062f\\u0647 \\u0627\\u0633\\u062a. \\u0627\\u0639\\u062a\\u062f\\u0627\\u0644\\u06cc \\u0634\\u0639\\u0627\\u0631 \\u0646\\u0645\\u0627\\u06cc\\u0634\\u06af\\u0627\\u0647 \\u0627\\u0645\\u0633\\u0627\\u0644 \\u0631\\u0627 \\u00ab\\u0634\\u0647\\u0631\\u062f\\u0627\\u0646\\u0634 \\u0628\\u0646\\u06cc\\u0627\\u0646\\u060c \\u0634\\u0647\\u0631\\u06a9\\u0627\\u0631\\u0622\\u0641\\u0631\\u06cc\\u0646\\u00bb \\u0639\\u0646\\u0648\\u0627\\u0646 \\u06a9\\u0631\\u062f \\u0648 \\u06af\\u0641\\u062a: \\u0627\\u06cc\\u0646 \\u0646\\u0645\\u0627\\u06cc\\u0634\\u06af\\u0627\\u0647 \\u0628\\u0627 \\u0631\\u0648\\u06cc\\u06a9\\u0631\\u062f \\u062a\\u0648\\u0644\\u06cc\\u062f \\u0627\\u06cc\\u0631\\u0627\\u0646\\u06cc \\u0648 \\u062f\\u0627\\u0646\\u0634 \\u0628\\u0646\\u06cc\\u0627\\u0646 \\u062f\\u0631 \\u062a\\u0648\\u0633\\u0639\\u0647 \\u0634\\u0647\\u0631\\u0647\\u0627\\u06cc \\u06a9\\u0634\\u0648\\u0631 \\u0627\\u062c\\u0631\\u0627 \\u0645\\u06cc \\u0634\\u0648\\u062f \\u0648 \\u0639\\u0631\\u0635\\u0647 \\u0627\\u06cc \\u0628\\u0631\\u0627\\u06cc \\u0646\\u0645\\u0627\\u06cc\\u0634 \\u062a\\u0648\\u0627\\u0646\\u0645\\u0646\\u062f\\u06cc \\u0647\\u0627\\u06cc \\u0627\\u062c\\u0631\\u0627\\u06cc\\u06cc \\u0648 \\u062f\\u0633\\u062a\\u0627\\u0648\\u0631\\u062f \\u06a9\\u0644\\u06cc\\u0647 \\u0645\\u0631\\u0627\\u06a9\\u0632\\u060c \\u0627\\u0631\\u06af\\u0627\\u0646 \\u0647\\u0627 \\u0648 \\u0634\\u0631\\u06a9\\u062a \\u0647\\u0627\\u06cc \\u0641\\u0639\\u0627\\u0644 \\u0627\\u06cc\\u0631\\u0627\\u0646\\u06cc \\u062f\\u0631 \\u0627\\u06cc\\u0646 \\u062d\\u0648\\u0632\\u0647 \\u0627\\u0633\\u062a. \\u0645\\u062c\\u0631\\u06cc \\u0628\\u0631\\u06af\\u0632\\u0627\\u0631\\u06cc \\u0646\\u0645\\u0627\\u06cc\\u0634\\u06af\\u0627\\u0647 \\u062e\\u062f\\u0645\\u0627\\u062a \\u0634\\u0647\\u0631\\u06cc \\u062d\\u0645\\u0627\\u06cc\\u062a \\u0627\\u0632 \\u0627\\u0642\\u062a\\u0635\\u0627\\u062f \\u062f\\u0627\\u0646\\u0634 \\u0628\\u0646\\u06cc\\u0627\\u0646 \\u0648 \\u06a9\\u0633\\u0628 \\u0648 \\u06a9\\u0627\\u0631\\u0647\\u0627\\u06cc \\u0645\\u0648\\u0641\\u0642\\u060c \\u062d\\u0645\\u0627\\u06cc\\u062a \\u0627\\u0632 \\u0634\\u0631\\u06a9\\u062a \\u0647\\u0627\\u06cc \\u062e\\u0635\\u0648\\u0635\\u06cc \\u0648 \\u06a9\\u0645\\u06a9 \\u0628\\u0647 \\u062a\\u0648\\u0633\\u0639\\u0647 \\u062f\\u0627\\u0646\\u0634 \\u0628\\u0646\\u06cc\\u0627\\u0646 \\u0647\\u0627\\u060c \\u0647\\u0645\\u0686\\u0646\\u06cc\\u0646 \\u062a\\u0639\\u0627\\u0645\\u0644 \\u0648 \\u0639\\u0631\\u0636\\u0647 \\u0648 \\u062a\\u0642\\u0627\\u0636\\u0627 \\u0628\\u06cc\\u0646 \\u0634\\u0631\\u06a9\\u062a \\u0647\\u0627\\u06cc \\u062a\\u0648\\u0644\\u06cc\\u062f\\u06a9\\u0646\\u0646\\u062f\\u0647 \\u0648 \\u0628\\u0647\\u0631\\u0647 \\u0628\\u0631\\u062f\\u0627\\u0631 \\u0631\\u0627 \\u0627\\u0632 \\u062f\\u06cc\\u06af\\u0631 \\u0627\\u0647\\u062f\\u0627\\u0641 \\u0627\\u06cc\\u0646 \\u0646\\u0645\\u0627\\u06cc\\u0634\\u06af\\u0627\\u0647 \\u0628\\u0631\\u0634\\u0645\\u0631\\u062f. \\u0648\\u06cc \\u0627\\u0632 \\u0631\\u0648\\u0646\\u0645\\u0627\\u06cc\\u06cc \\u0686\\u0646\\u062f \\u0645\\u062d\\u0635\\u0648\\u0644 \\u062c\\u062f\\u06cc\\u062f \\u0648 \\u0628\\u0631\\u06af\\u0632\\u0627\\u0631\\u06cc \\u06a9\\u0627\\u0631\\u06af\\u0627\\u0647 \\u0622\\u0645\\u0648\\u0632\\u0634\\u06cc \\u062f\\u0631 \\u062d\\u0627\\u0634\\u06cc\\u0647 \\u0627\\u06cc\\u0646 \\u0646\\u0645\\u0627\\u06cc\\u0634\\u06af\\u0627\\u0647 \\u062e\\u0628\\u0631\\u062f\\u0627\\u062f \\u0648 \\u06af\\u0641\\u062a: \\u0627\\u06cc\\u0646 \\u0631\\u0648\\u0646\\u0645\\u0627\\u06cc\\u06cc \\u0647\\u0627 \\u0645\\u0631\\u0628\\u0648\\u0637 \\u0628\\u0647 \\u0645\\u062d\\u0635\\u0648\\u0644\\u0627\\u062a \\u062c\\u062f\\u06cc\\u062f \\u0634\\u0631\\u06a9\\u062a \\u0647\\u0627\\u06cc \\u062f\\u0627\\u0646\\u0634 \\u0628\\u0646\\u06cc\\u0627\\u0646 \\u062e\\u0648\\u0627\\u0647\\u062f \\u0628\\u0648\\u062f. \\u0627\\u0639\\u062a\\u062f\\u0627\\u0644\\u06cc \\u0628\\u0627 \\u0627\\u0634\\u0627\\u0631\\u0647 \\u0628\\u0647 \\u0627\\u06cc\\u0646\\u06a9\\u0647 \\u0645\\u062e\\u0627\\u0637\\u0628 \\u0646\\u0645\\u0627\\u06cc\\u0634\\u06af\\u0627\\u0647 \\u062e\\u062f\\u0645\\u0627\\u062a \\u0634\\u0647\\u0631\\u06cc \\u0639\\u0645\\u0648\\u0645\\u0627 \\u0645\\u062f\\u06cc\\u0631\\u0627\\u0646 \\u0634\\u0647\\u0631\\u06cc \\u0648 \\u0634\\u0647\\u0631\\u062f\\u0627\\u0631\\u06cc \\u0647\\u0627 \\u0647\\u0633\\u062a\\u0646\\u062f\\u060c \\u06af\\u0641\\u062a: \\u0628\\u0647 \\u0647\\u0645\\u06cc\\u0646 \\u062f\\u0644\\u06cc\\u0644 \\u0628\\u0631\\u06af\\u0632\\u0627\\u0631\\u06cc \\u0646\\u0645\\u0627\\u06cc\\u0634\\u06af\\u0627\\u0647 \\u062f\\u0631 \\u0645\\u062c\\u0645\\u0648\\u0639\\u0647 \\u0634\\u0647\\u0631 \\u0622\\u0641\\u062a\\u0627\\u0628 \\u0628\\u0647 \\u062a\\u0645\\u0631\\u06a9\\u0632 \\u0628\\u06cc\\u0634\\u062a\\u0631 \\u0648 \\u062f\\u06cc\\u062f\\u0647 \\u0634\\u062f\\u0646 \\u0634\\u0631\\u06a9\\u062a \\u0647\\u0627\\u06cc \\u0641\\u0639\\u0627\\u0644 \\u062f\\u0631 \\u0627\\u06cc\\u0646 \\u062d\\u0648\\u0632\\u0647 \\u06a9\\u0645\\u06a9 \\u0645\\u06cc \\u06a9\\u0646\\u062f. \\u067e\\u0627\\u06cc\\u0627\\u0646 \\u067e\\u06cc\\u0627\\u0645/\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"label\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 5,\n \"samples\": [\n \"economy\",\n \"sports\",\n \"politics\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" 460 | } 461 | }, 462 | "metadata": {}, 463 | "execution_count": 3 464 | } 465 | ], 466 | "source": [ 467 | "df = pd.read_csv(\"/content/drive/MyDrive/get news/farsnews/farsnews_fainal.csv\")\n", 468 | "\n", 469 | "df = df.drop(['Unnamed: 0', 'date'], axis=1)\n", 470 | "df = df.dropna()\n", 471 | "df.head(5)" 472 | ] 473 | }, 474 | { 475 | "cell_type": "code", 476 | "execution_count": 4, 477 | "metadata": { 478 | "id": "DDvlsvAWGWgV" 479 | }, 480 | "outputs": [], 481 | "source": [ 482 | "class preprocessing:\n", 483 | " def __init__(self):\n", 484 | " pass\n", 485 | "\n", 486 | " def _remove_diacritics(self, text):\n", 487 | " text = re.sub(arabic_diacritics, '', text)\n", 488 | " return text\n", 489 | "\n", 490 | "\n", 491 | " def _remove_crash_data(self, text):\n", 492 | " if isinstance(text, str):\n", 493 | " return text\n", 494 | " else:\n", 495 | " return None\n", 496 | "\n", 497 | " def _remove_punctuations(self, text):\n", 498 | " translator = str.maketrans('', '', punctuations_list)\n", 499 | " return text.translate(translator)\n", 500 | "\n", 501 | " def _remove_repeating_char(self, text):\n", 502 | " return re.sub(r'(.)\\1+', r'\\1', text)\n", 503 | "\n", 504 | "\n", 505 | " def _normalize_persian(self, text):\n", 506 | " text = re.sub(\"[إأآا]\", \"ا\", text)\n", 507 | " text = re.sub(\"ي\", \"ی\", text)\n", 508 | " text = re.sub(\"ؤ\", \"و\", text)\n", 509 | " text = re.sub(\"ئ\", \"ی\", text)\n", 510 | " text = re.sub(\"ة\", \"ه\", text)\n", 511 | " text = re.sub(\"ك\" ,\"ک\" , text)\n", 512 | " text = re.sub(\"[^ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]\", \" \", text)\n", 513 | " text = re.sub(\"[^\\S\\n\\t]+\", ' ', text)\n", 514 | " text = normalizer.normalize(text)\n", 515 | " return text\n", 516 | "\n", 517 | "\n", 518 | " def _tokenize(self, text):\n", 519 | " return word_tokenize(text)\n", 520 | "\n", 521 | " def _remove_stopwords(self, words):\n", 522 | " return [word for word in words if word not in stop_words and len(word) > 2]\n", 523 | "\n", 524 | " def _lemmatizer(self, words):\n", 525 | " result = list()\n", 526 | " for token in words:\n", 527 | " result.append(lemmatizer.lemmatize(token))\n", 528 | " return self._remove_stopwords(result)" 529 | ] 530 | }, 531 | { 532 | "cell_type": "code", 533 | "execution_count": 5, 534 | "metadata": { 535 | "colab": { 536 | "base_uri": "https://localhost:8080/", 537 | "height": 241, 538 | "referenced_widgets": [ 539 | "6baf6a0ea60a423dbf7ffac0f5761e5c", 540 | "de6a7c5ce5284507aa82b1d4c0170393", 541 | "da8a4395ea2440f5875788f328419627", 542 | "225e86d7282b4b509f6b62f7899a243a", 543 | "0d7a51735dab4d549937b5e7e53591ba", 544 | "f31a2928f25b4fe78eeb69530f6a63d5", 545 | "1cf5fc27417a47c98e49ec203f33a2f2", 546 | "ac0186ce68c448e6b6259e3a2ebd46dd", 547 | "ef21bc1c2dd540ab98ea755c235eb156", 548 | "39ad9fa51dd040e6a920d27de9cc6f14", 549 | "6fd3144a82c14c7c95341193cb23b919", 550 | "fd9d2b5c879b4bf3bd4a98ad1652e046", 551 | "a114e175966c4c53b4ca8fcb4495a215", 552 | "5637b79669534291b55d68de556a7e52", 553 | "115837e3aed4403798cd17b5b1ead02d", 554 | "c71687f02e3b4066920152385763efb7", 555 | "ddeb7dc1af44465e83e662f3278a4ff1", 556 | "ea21f28286484130a45c3c537cac8b80", 557 | "3255e852649a4ee889330c1f209f1fcf", 558 | "0b8a896d3321495388be9ef990537d66", 559 | "5ff9d1e9c0b943aa9fbd46e73d5d26c8", 560 | "581443f16d324e3d9604f786d495d27d", 561 | "ae2e51d3d5014fa4a1cb602d0adcfca3", 562 | "306577b615234f1fab6dd7e5c01ac654", 563 | "ac745dae99444b91befa52b2328f42d6", 564 | "fab1d434c00a4bc7a202b94265cefd10", 565 | "9c35b59e342440d7a2168f8af58474ae", 566 | "d04f3ceea2e14c0ca79957017a6d106d", 567 | "fa2cd250648b42448d2b87bf69786806", 568 | "7c03309dca71444fb21a257e647830b4", 569 | "031edc1cc43e40abb8b53aeb75d02fe4", 570 | "54778f911d1942b7870f2e15204c4086", 571 | "6d98087402f5451d801cdefc9166fef4", 572 | "c8a65b8bbd8246c5a6779d605a15acda", 573 | "3e90afc7b1bd44f79180145ca551dfc5", 574 | "ecfd7754da16443e83c6dac4f0bf02c3", 575 | "168127473db44622972c91bcb69180eb", 576 | "ebd6950b63644a1ea4625b662fb78ae0", 577 | "841b320404c14f28af512b7809793e0a", 578 | "8891e9873adf43aba1285634f9ee3e60", 579 | "19744e7597894884814efeac0508d6e8", 580 | "4d30c02dc2ed4d728e44b540d57dd1a2", 581 | "c47744d043594db1ba02e170e22d1965", 582 | "3de3f487470a4c8abe8016e5f256cdce", 583 | "ad7d2b4774cd4181b4bbd0a3588f7cb4", 584 | "6f4f74e433c34b32b4874e717151cdc5", 585 | "11d6a99882fe440bb2e437d990656bbd", 586 | "71c90889df844b66af254e7af3087cc0", 587 | "d098d2b9a5d54d7fbed72fb602c3c9bd", 588 | "353c5973a79b402e92f2140b436e6c1d", 589 | "32dc283e573543c78866f706a5f93821", 590 | "fa75dee6148d400eb308a1a074d347f8", 591 | "35c78d8f8a874b1f84c8ee9af7fd983a", 592 | "d139ecb729a8412186359f745633608d", 593 | "cba0438ee33240c487effa861e7ef120", 594 | "44c526d02a4e4ccc8a8ceba0f3048b62", 595 | "406deff2072444be8ff157c18a0a3db4", 596 | "79e5bab57f704e729df0e6fb154ca65e", 597 | "dbdc4d1ccbf347038c546871ce61c162", 598 | "1245d881567d4a76ac1bd009d75e485b", 599 | "bc4a9355999047aa8f74658eefc57ac5", 600 | "12cda2b1613a4acc808542ee5bbe61d2", 601 | "1a21df1ffde5404a9c4d6f26b5b48f80", 602 | "69dbb3ac985f4ec58d309475bb7f6197", 603 | "0babb170cc3346b1bed2598728795253", 604 | "8b2b275049f34f8f858229ac032badc7", 605 | "e7ca008ce8ca4d659d918adb6d801c3a", 606 | "0d9e005f6d9a43d9b6e0817a7da29fe1", 607 | "a8e26ade5f19471b8f7bada0d0fa0992", 608 | "954cdf24e128439e85cb713a714308e0", 609 | "26160ed6b8bc45fc8f3c24077c4b47e7", 610 | "2bee186efbbc489aae07101939c02953", 611 | "13d35f069c69446ba91e53df0858cdd3", 612 | "cb2a3803b4814a6ea7ce4e0b0f1e8bff", 613 | "aa82c8e2500740a5906e80304eedcca9", 614 | "0d7cb55684f146128c57da44db95ae5c", 615 | "085a2bb9d5024835a4f834a4f251c9d7" 616 | ] 617 | }, 618 | "id": "YTw9q4LhGYHM", 619 | "outputId": "9eae4e03-22fb-4004-fc6b-a6e6d2167e77" 620 | }, 621 | "outputs": [ 622 | { 623 | "output_type": "display_data", 624 | "data": { 625 | "text/plain": [ 626 | " 0%| | 0/16 [00:00:10: UserWarning: Creating a tensor from a list of numpy.ndarrays is extremely slow. Please consider converting the list to a single numpy.ndarray with numpy.array() before converting to a tensor. (Triggered internally at /pytorch/torch/csrc/utils/tensor_new.cpp:254.)\n", 768 | " return torch.tensor(vectors, dtype=torch.float)\n" 769 | ] 770 | }, 771 | { 772 | "output_type": "stream", 773 | "name": "stdout", 774 | "text": [ 775 | "torch.Size([64942, 24, 100])\n" 776 | ] 777 | } 778 | ], 779 | "source": [ 780 | "sentences = df['title - preproces'].tolist()\n", 781 | "w2v_model = Word2Vec(sentences=sentences, vector_size=100, window=5, min_count=1, workers=4)\n", 782 | "\n", 783 | "max_length = max(len(tokens) for tokens in sentences)\n", 784 | "\n", 785 | "def transform_text_to_tensor(tokens, model, max_length):\n", 786 | " vectors = [model.wv[token] for token in tokens if token in model.wv]\n", 787 | " while len(vectors) < max_length:\n", 788 | " vectors.append(np.zeros(model.vector_size))\n", 789 | " return torch.tensor(vectors, dtype=torch.float)\n", 790 | "\n", 791 | "tensor_list = [transform_text_to_tensor(tokens, w2v_model, max_length) for tokens in sentences]\n", 792 | "final_tensor = torch.stack(tensor_list)\n", 793 | "print(final_tensor.shape)" 794 | ] 795 | }, 796 | { 797 | "cell_type": "markdown", 798 | "metadata": { 799 | "id": "zsoXznbJXIeL" 800 | }, 801 | "source": [ 802 | "## Split the data into Train and Test\n" 803 | ] 804 | }, 805 | { 806 | "cell_type": "code", 807 | "execution_count": 7, 808 | "metadata": { 809 | "id": "B60el6r0XdeJ" 810 | }, 811 | "outputs": [], 812 | "source": [ 813 | "X_train, X_test, y_train, y_test = train_test_split(final_tensor, df[\"label\"].values, test_size=0.2, random_state=42)" 814 | ] 815 | }, 816 | { 817 | "cell_type": "markdown", 818 | "metadata": { 819 | "id": "wJZQOdlfXUfy" 820 | }, 821 | "source": [ 822 | "## Convert to torch.Tensor\n" 823 | ] 824 | }, 825 | { 826 | "cell_type": "code", 827 | "execution_count": 8, 828 | "metadata": { 829 | "id": "MmNYBMF_XbPd" 830 | }, 831 | "outputs": [], 832 | "source": [ 833 | "label_encoder = LabelEncoder()\n", 834 | "y_train = label_encoder.fit_transform(y_train)\n", 835 | "y_test = label_encoder.transform(y_test)\n", 836 | "y_train = torch.tensor(y_train, dtype=torch.long)\n", 837 | "y_test = torch.tensor(y_test, dtype=torch.long)" 838 | ] 839 | }, 840 | { 841 | "cell_type": "markdown", 842 | "metadata": { 843 | "id": "POqNLxPpXj8Q" 844 | }, 845 | "source": [ 846 | "## Dataset and DataLoader\n" 847 | ] 848 | }, 849 | { 850 | "cell_type": "code", 851 | "execution_count": 9, 852 | "metadata": { 853 | "id": "_C2eMTd7O97y" 854 | }, 855 | "outputs": [], 856 | "source": [ 857 | "class TextDataset(Dataset):\n", 858 | " def __init__(self, X, y):\n", 859 | " self.X = X.unsqueeze(1) # Adding the channel dimension: (batch_size, 1, seq_len, embedding_dim)\n", 860 | " self.y = y\n", 861 | "\n", 862 | " def __len__(self):\n", 863 | " return len(self.X)\n", 864 | "\n", 865 | " def __getitem__(self, idx):\n", 866 | " return self.X[idx], self.y[idx]\n", 867 | "\n", 868 | "train_dataset = TextDataset(X_train, y_train)\n", 869 | "test_dataset = TextDataset(X_test, y_test)\n", 870 | "train_loader = DataLoader(train_dataset, batch_size=100, shuffle=True)\n", 871 | "test_loader = DataLoader(test_dataset, batch_size=100, shuffle=False)" 872 | ] 873 | }, 874 | { 875 | "cell_type": "markdown", 876 | "metadata": { 877 | "id": "JiR0Z1iKXps6" 878 | }, 879 | "source": [ 880 | "# Define the CNN model\n", 881 | "\n", 882 | "\n", 883 | "\n", 884 | "## Model Architecture\n", 885 | "The `TextCNN` model consists of:\n", 886 | "- Convolutional layers with varying kernel sizes (3, 4, 5) to capture different n-gram features.\n", 887 | "- ReLU activation function.\n", 888 | "- Max pooling layers to retain the most important features from each filter.\n", 889 | "- A fully connected layer for classification.\n", 890 | "- Dropout for regularization.\n", 891 | "\n" 892 | ] 893 | }, 894 | { 895 | "cell_type": "code", 896 | "execution_count": 10, 897 | "metadata": { 898 | "id": "fuLigzNHH75E" 899 | }, 900 | "outputs": [], 901 | "source": [ 902 | "class TextCNN(nn.Module):\n", 903 | " def __init__(self, embedding_dim, num_filters, num_classes, dropout=0.5):\n", 904 | " super(TextCNN, self).__init__()\n", 905 | "\n", 906 | " self.conv1 = nn.Conv2d(in_channels=1, out_channels=num_filters, kernel_size=(3, embedding_dim))\n", 907 | " self.conv2 = nn.Conv2d(in_channels=1, out_channels=num_filters, kernel_size=(4, embedding_dim))\n", 908 | " self.conv3 = nn.Conv2d(in_channels=1, out_channels=num_filters, kernel_size=(5, embedding_dim))\n", 909 | "\n", 910 | " self.dropout = nn.Dropout(dropout)\n", 911 | " self.fc = nn.Linear(num_filters * 3, num_classes)\n", 912 | "\n", 913 | " def forward(self, x):\n", 914 | " x1 = F.relu(self.conv1(x)).squeeze(3)\n", 915 | " x2 = F.relu(self.conv2(x)).squeeze(3)\n", 916 | " x3 = F.relu(self.conv3(x)).squeeze(3)\n", 917 | "\n", 918 | " x1 = F.max_pool1d(x1, kernel_size=x1.size(2)).squeeze(2)\n", 919 | " x2 = F.max_pool1d(x2, kernel_size=x2.size(2)).squeeze(2)\n", 920 | " x3 = F.max_pool1d(x3, kernel_size=x3.size(2)).squeeze(2)\n", 921 | "\n", 922 | " x = torch.cat([x1, x2, x3], dim=1)\n", 923 | " x = self.dropout(x)\n", 924 | " logits = self.fc(x)\n", 925 | " return logits\n" 926 | ] 927 | }, 928 | { 929 | "cell_type": "markdown", 930 | "metadata": { 931 | "id": "lB6XMveeYDSC" 932 | }, 933 | "source": [ 934 | "## Train the model\n", 935 | "\n", 936 | "\n", 937 | "\n", 938 | "### Hyperparameters\n", 939 | "Several hyperparameters are used in training the TextCNN model:\n", 940 | "- `embedding_dim`: The size of the word embeddings (e.g., 100, 300). This determines the dimensionality of word representations.\n", 941 | "- `num_filters`: The number of filters in each convolutional layer. A higher number allows the model to capture more features.\n", 942 | "- `num_classes`: The number of output classes for classification.\n", 943 | "- `dropout`: The dropout rate used for regularization to prevent overfitting.\n", 944 | "- `learning_rate`: The step size for the Adam optimizer. Typically set to 0.001.\n", 945 | "- `num_epochs`: The number of training iterations over the dataset.\n", 946 | "- `batch_size`: The number of samples processed before updating the model weights.\n" 947 | ] 948 | }, 949 | { 950 | "cell_type": "code", 951 | "execution_count": 11, 952 | "metadata": { 953 | "colab": { 954 | "base_uri": "https://localhost:8080/" 955 | }, 956 | "id": "F6Ic5Gx7OP9C", 957 | "outputId": "d74f64db-7200-477c-d432-957d9b37796e" 958 | }, 959 | "outputs": [ 960 | { 961 | "output_type": "stream", 962 | "name": "stdout", 963 | "text": [ 964 | "Epoch 1/25, Loss: 0.8109\n", 965 | "Epoch 2/25, Loss: 0.7159\n", 966 | "Epoch 3/25, Loss: 0.6884\n", 967 | "Epoch 4/25, Loss: 0.6679\n", 968 | "Epoch 5/25, Loss: 0.6549\n", 969 | "Epoch 6/25, Loss: 0.6437\n", 970 | "Epoch 7/25, Loss: 0.6369\n", 971 | "Epoch 8/25, Loss: 0.6282\n", 972 | "Epoch 9/25, Loss: 0.6220\n", 973 | "Epoch 10/25, Loss: 0.6153\n", 974 | "Epoch 11/25, Loss: 0.6121\n", 975 | "Epoch 12/25, Loss: 0.6029\n", 976 | "Epoch 13/25, Loss: 0.5987\n", 977 | "Epoch 14/25, Loss: 0.5952\n", 978 | "Epoch 15/25, Loss: 0.5936\n", 979 | "Epoch 16/25, Loss: 0.5910\n", 980 | "Epoch 17/25, Loss: 0.5841\n", 981 | "Epoch 18/25, Loss: 0.5823\n", 982 | "Epoch 19/25, Loss: 0.5806\n", 983 | "Epoch 20/25, Loss: 0.5758\n", 984 | "Epoch 21/25, Loss: 0.5720\n", 985 | "Epoch 22/25, Loss: 0.5702\n", 986 | "Epoch 23/25, Loss: 0.5696\n", 987 | "Epoch 24/25, Loss: 0.5606\n", 988 | "Epoch 25/25, Loss: 0.5618\n" 989 | ] 990 | } 991 | ], 992 | "source": [ 993 | "# Model, loss function, and optimizer\n", 994 | "embedding_dim = 100\n", 995 | "num_filters = 100\n", 996 | "num_classes = len(set(df[\"label\"]))\n", 997 | "model = TextCNN(embedding_dim, num_filters, num_classes)\n", 998 | "\n", 999 | "criterion = nn.CrossEntropyLoss()\n", 1000 | "optimizer = optim.Adam(model.parameters(), lr=0.001)\n", 1001 | "\n", 1002 | "num_epochs = 25\n", 1003 | "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n", 1004 | "model.to(device)\n", 1005 | "\n", 1006 | "for epoch in range(num_epochs):\n", 1007 | " model.train()\n", 1008 | " total_loss = 0\n", 1009 | " for X_batch, y_batch in train_loader:\n", 1010 | " X_batch, y_batch = X_batch.to(device), y_batch.to(device)\n", 1011 | " optimizer.zero_grad()\n", 1012 | " outputs = model(X_batch)\n", 1013 | " loss = criterion(outputs, y_batch)\n", 1014 | " loss.backward()\n", 1015 | " optimizer.step()\n", 1016 | " total_loss += loss.item()\n", 1017 | " print(f\"Epoch {epoch+1}/{num_epochs}, Loss: {total_loss/len(train_loader):.4f}\")" 1018 | ] 1019 | }, 1020 | { 1021 | "cell_type": "markdown", 1022 | "metadata": { 1023 | "id": "kfNlu2rCYXVI" 1024 | }, 1025 | "source": [ 1026 | "## Evaluate the model" 1027 | ] 1028 | }, 1029 | { 1030 | "cell_type": "code", 1031 | "execution_count": 12, 1032 | "metadata": { 1033 | "colab": { 1034 | "base_uri": "https://localhost:8080/" 1035 | }, 1036 | "id": "viNUEpTcQAg5", 1037 | "outputId": "49a01d49-d2e0-4c28-b23c-3a46fdae3545" 1038 | }, 1039 | "outputs": [ 1040 | { 1041 | "output_type": "stream", 1042 | "name": "stdout", 1043 | "text": [ 1044 | "Test Accuracy: 0.7991\n" 1045 | ] 1046 | } 1047 | ], 1048 | "source": [ 1049 | "model.eval()\n", 1050 | "all_preds = []\n", 1051 | "all_labels = []\n", 1052 | "with torch.no_grad():\n", 1053 | " for X_batch, y_batch in test_loader:\n", 1054 | " X_batch, y_batch = X_batch.to(device), y_batch.to(device)\n", 1055 | " outputs = model(X_batch)\n", 1056 | " preds = torch.argmax(outputs, dim=1)\n", 1057 | " all_preds.extend(preds.cpu().numpy())\n", 1058 | " all_labels.extend(y_batch.cpu().numpy())\n", 1059 | "\n", 1060 | "accuracy = accuracy_score(all_labels, all_preds)\n", 1061 | "print(f\"Test Accuracy: {accuracy:.4f}\")" 1062 | ] 1063 | }, 1064 | { 1065 | "cell_type": "markdown", 1066 | "metadata": { 1067 | "id": "B340vc08ZCS7" 1068 | }, 1069 | "source": [ 1070 | "# RNNModel\n", 1071 | "\n", 1072 | "\n", 1073 | "### **Architecture of `RNNModel`**\n", 1074 | "This model is designed to process **sequential input data** (such as time-series data, natural language, or any ordered input) and output a classification prediction.\n", 1075 | "\n", 1076 | "#### **1. Input Layer**\n", 1077 | "- The model takes input sequences of shape **(batch_size, sequence_length, input_size)**.\n", 1078 | "- `input_size`: The number of features in each time step.\n", 1079 | "- `batch_first=True` ensures that batch size is the first dimension.\n", 1080 | "\n", 1081 | "#### **2. LSTM Layer**\n", 1082 | "- `self.lstm = nn.LSTM(input_size, hidden_size, num_layers, batch_first=True)`\n", 1083 | "- This layer consists of **LSTM units** that process sequential data step-by-step, maintaining long-term dependencies.\n", 1084 | "- `hidden_size`: Defines the number of neurons in the LSTM hidden layers.\n", 1085 | "- `num_layers`: Specifies how many stacked LSTM layers are used.\n", 1086 | "- Outputs:\n", 1087 | " - `output`: Contains the output of all time steps in the sequence.\n", 1088 | " - `(h_n, c_n)`: The final hidden and cell states of the LSTM.\n", 1089 | "\n", 1090 | "#### **3. Fully Connected (FC) Layer**\n", 1091 | "- `self.fc = nn.Linear(hidden_size, num_classes)`\n", 1092 | "- The last hidden state of the LSTM (corresponding to the final time step) is passed through a fully connected (linear) layer.\n", 1093 | "- `num_classes`: Determines the output size, typically the number of categories in classification problems.\n", 1094 | "\n" 1095 | ] 1096 | }, 1097 | { 1098 | "cell_type": "code", 1099 | "execution_count": 13, 1100 | "metadata": { 1101 | "id": "2EPT0Lfo1Ug7" 1102 | }, 1103 | "outputs": [], 1104 | "source": [ 1105 | "class RNNModel(nn.Module):\n", 1106 | " def __init__(self, input_size, hidden_size, num_layers, num_classes):\n", 1107 | " super(RNNModel, self).__init__()\n", 1108 | " self.lstm = nn.LSTM(input_size, hidden_size, num_layers, batch_first=True)\n", 1109 | " self.fc = nn.Linear(hidden_size, num_classes)\n", 1110 | "\n", 1111 | " def forward(self, x):\n", 1112 | "\n", 1113 | " output, (h_n, c_n) = self.lstm(x)\n", 1114 | " last_output = output[:, -1, :]\n", 1115 | " out = self.fc(last_output)\n", 1116 | " return out" 1117 | ] 1118 | }, 1119 | { 1120 | "cell_type": "markdown", 1121 | "metadata": { 1122 | "id": "t4DvjdZ5ZV_A" 1123 | }, 1124 | "source": [ 1125 | "## Train the model\n", 1126 | "\n", 1127 | "\n", 1128 | "### **Hyperparameters in the RNN Model** \n", 1129 | "\n", 1130 | "Hyperparameters are key settings that define how the model learns. In the given `RNNModel`, several hyperparameters affect the performance, efficiency, and accuracy of the model. Let's break them down:\n", 1131 | "\n", 1132 | "---\n", 1133 | "\n", 1134 | "### **1. Model Architecture Hyperparameters**\n", 1135 | "These define the structure of the neural network.\n", 1136 | "\n", 1137 | "- **`input_size = 100`** \n", 1138 | " - Determines the number of features in each input time step. \n", 1139 | " - In this case, each input vector has 100 features. \n", 1140 | "\n", 1141 | "- **`hidden_size = 128`** \n", 1142 | " - Represents the number of neurons in the hidden layer of the LSTM. \n", 1143 | " - A larger hidden size allows the model to learn more complex patterns but increases computational cost. \n", 1144 | "\n", 1145 | "- **`num_layers = 1`** \n", 1146 | " - Defines the number of stacked LSTM layers. \n", 1147 | " - More layers allow the network to capture deeper sequential dependencies, but too many layers may lead to vanishing gradients or overfitting. \n", 1148 | "\n", 1149 | "- **`num_classes = len(label_encoder.classes_)`** \n", 1150 | " - Defines the output size, corresponding to the number of classes in a classification problem. \n", 1151 | " - The model outputs probabilities for each class using **CrossEntropyLoss**.\n", 1152 | "\n", 1153 | "---\n", 1154 | "\n", 1155 | "### **2. Training Hyperparameters**\n", 1156 | "These define how the model learns from data.\n", 1157 | "\n", 1158 | "- **`criterion = nn.CrossEntropyLoss()`** \n", 1159 | " - The loss function used to measure the difference between predicted outputs and true labels. \n", 1160 | " - Suitable for multi-class classification tasks. \n", 1161 | "\n", 1162 | "- **`optimizer = torch.optim.Adam(model.parameters(), lr=0.001)`** \n", 1163 | " - **Adam (Adaptive Moment Estimation)** is chosen as the optimizer, balancing speed and efficiency in training. \n", 1164 | " - The **learning rate (`lr=0.001`)** controls how much the model updates weights in response to loss gradients. \n", 1165 | " - A **higher learning rate** can make training faster but may cause the model to converge to a suboptimal solution. A **lower learning rate** improves stability but slows training.\n", 1166 | "\n", 1167 | "- **`num_epochs = 20`** \n", 1168 | " - Defines the number of times the entire dataset is passed through the model. \n", 1169 | " - More epochs allow better learning but can lead to overfitting if too high. \n", 1170 | "\n", 1171 | "- **Batch Processing (`train_loader`)** \n", 1172 | " - The training loop iterates over batches of data rather than the entire dataset. \n", 1173 | " - Helps in faster computation and better generalization. \n", 1174 | " - `batch_X.squeeze(1).to(device)` ensures correct input dimensions for LSTM processing. \n" 1175 | ] 1176 | }, 1177 | { 1178 | "cell_type": "code", 1179 | "execution_count": 14, 1180 | "metadata": { 1181 | "colab": { 1182 | "base_uri": "https://localhost:8080/" 1183 | }, 1184 | "id": "fAavF22W2i41", 1185 | "outputId": "2aed65ad-45c9-4e2c-881b-a183050b170c" 1186 | }, 1187 | "outputs": [ 1188 | { 1189 | "output_type": "stream", 1190 | "name": "stdout", 1191 | "text": [ 1192 | "Epoch [1/25], Avg Loss: 0.9610\n", 1193 | "Epoch [2/25], Avg Loss: 0.6857\n", 1194 | "Epoch [3/25], Avg Loss: 0.6236\n", 1195 | "Epoch [4/25], Avg Loss: 0.5804\n", 1196 | "Epoch [5/25], Avg Loss: 0.5535\n", 1197 | "Epoch [6/25], Avg Loss: 0.5326\n", 1198 | "Epoch [7/25], Avg Loss: 0.5120\n", 1199 | "Epoch [8/25], Avg Loss: 0.4948\n", 1200 | "Epoch [9/25], Avg Loss: 0.4770\n", 1201 | "Epoch [10/25], Avg Loss: 0.4670\n", 1202 | "Epoch [11/25], Avg Loss: 0.4544\n", 1203 | "Epoch [12/25], Avg Loss: 0.4398\n", 1204 | "Epoch [13/25], Avg Loss: 0.4297\n", 1205 | "Epoch [14/25], Avg Loss: 0.4167\n", 1206 | "Epoch [15/25], Avg Loss: 0.4042\n", 1207 | "Epoch [16/25], Avg Loss: 0.3953\n", 1208 | "Epoch [17/25], Avg Loss: 0.3866\n", 1209 | "Epoch [18/25], Avg Loss: 0.3731\n", 1210 | "Epoch [19/25], Avg Loss: 0.3620\n", 1211 | "Epoch [20/25], Avg Loss: 0.3543\n", 1212 | "Epoch [21/25], Avg Loss: 0.3471\n", 1213 | "Epoch [22/25], Avg Loss: 0.3354\n", 1214 | "Epoch [23/25], Avg Loss: 0.3247\n", 1215 | "Epoch [24/25], Avg Loss: 0.3126\n", 1216 | "Epoch [25/25], Avg Loss: 0.3041\n" 1217 | ] 1218 | } 1219 | ], 1220 | "source": [ 1221 | "input_size = 100\n", 1222 | "hidden_size = 128\n", 1223 | "num_layers = 1\n", 1224 | "num_classes = len(label_encoder.classes_)\n", 1225 | "model = RNNModel(input_size, hidden_size, num_layers, num_classes).to(device)\n", 1226 | "\n", 1227 | "criterion = nn.CrossEntropyLoss()\n", 1228 | "optimizer = torch.optim.Adam(model.parameters(), lr=0.001)\n", 1229 | "\n", 1230 | "num_epochs = 25\n", 1231 | "for epoch in range(num_epochs):\n", 1232 | " model.train()\n", 1233 | " total_loss = 0\n", 1234 | " for batch_X, batch_y in train_loader:\n", 1235 | " batch_X = batch_X.squeeze(1).to(device)\n", 1236 | " batch_y = batch_y.to(device)\n", 1237 | "\n", 1238 | " optimizer.zero_grad()\n", 1239 | " outputs = model(batch_X)\n", 1240 | " loss = criterion(outputs, batch_y)\n", 1241 | "\n", 1242 | " loss.backward()\n", 1243 | " optimizer.step()\n", 1244 | "\n", 1245 | " total_loss += loss.item()\n", 1246 | "\n", 1247 | " avg_loss = total_loss / len(train_loader)\n", 1248 | " print(f'Epoch [{epoch+1}/{num_epochs}], Avg Loss: {avg_loss:.4f}')" 1249 | ] 1250 | }, 1251 | { 1252 | "cell_type": "markdown", 1253 | "metadata": { 1254 | "id": "VUqsg8CcZj4m" 1255 | }, 1256 | "source": [ 1257 | "## Evaluate the model" 1258 | ] 1259 | }, 1260 | { 1261 | "cell_type": "code", 1262 | "execution_count": 15, 1263 | "metadata": { 1264 | "colab": { 1265 | "base_uri": "https://localhost:8080/" 1266 | }, 1267 | "id": "Lsud7tg32llQ", 1268 | "outputId": "68c223dc-848d-4849-a1f6-33d914629e9a" 1269 | }, 1270 | "outputs": [ 1271 | { 1272 | "output_type": "stream", 1273 | "name": "stdout", 1274 | "text": [ 1275 | "Test Accuracy: 83.36%\n" 1276 | ] 1277 | } 1278 | ], 1279 | "source": [ 1280 | "def evaluate(model, test_loader, device):\n", 1281 | " model.eval()\n", 1282 | " with torch.no_grad():\n", 1283 | " correct = 0\n", 1284 | " total = 0\n", 1285 | " for batch_X, batch_y in test_loader:\n", 1286 | " batch_X = batch_X.squeeze(1).to(device)\n", 1287 | " batch_y = batch_y.to(device)\n", 1288 | "\n", 1289 | " outputs = model(batch_X)\n", 1290 | " _, predicted = torch.max(outputs.data, 1)\n", 1291 | "\n", 1292 | " total += batch_y.size(0)\n", 1293 | " correct += (predicted == batch_y).sum().item()\n", 1294 | "\n", 1295 | " accuracy = 100 * correct / total\n", 1296 | " return accuracy\n", 1297 | "\n", 1298 | "accuracy = evaluate(model, test_loader, device)\n", 1299 | "print(f'Test Accuracy: {accuracy:.2f}%')" 1300 | ] 1301 | }, 1302 | { 1303 | "cell_type": "code", 1304 | "source": [], 1305 | "metadata": { 1306 | "id": "aOs4dBuPg_60" 1307 | }, 1308 | "execution_count": null, 1309 | "outputs": [] 1310 | } 1311 | ], 1312 | "metadata": { 1313 | "colab": { 1314 | "provenance": [], 1315 | "authorship_tag": "ABX9TyMALziu5FoPf3hlb+uNA7qS", 1316 | "include_colab_link": true 1317 | }, 1318 | "kernelspec": { 1319 | "display_name": "Python 3", 1320 | "name": "python3" 1321 | }, 1322 | "language_info": { 1323 | "name": "python" 1324 | }, 1325 | "widgets": { 1326 | "application/vnd.jupyter.widget-state+json": { 1327 | "6baf6a0ea60a423dbf7ffac0f5761e5c": { 1328 | "model_module": "@jupyter-widgets/controls", 1329 | "model_name": "HBoxModel", 1330 | "model_module_version": "1.5.0", 1331 | "state": { 1332 | "_dom_classes": [], 1333 | "_model_module": "@jupyter-widgets/controls", 1334 | "_model_module_version": "1.5.0", 1335 | "_model_name": "HBoxModel", 1336 | "_view_count": null, 1337 | "_view_module": "@jupyter-widgets/controls", 1338 | "_view_module_version": "1.5.0", 1339 | "_view_name": "HBoxView", 1340 | "box_style": "", 1341 | "children": [ 1342 | "IPY_MODEL_de6a7c5ce5284507aa82b1d4c0170393", 1343 | "IPY_MODEL_da8a4395ea2440f5875788f328419627", 1344 | "IPY_MODEL_225e86d7282b4b509f6b62f7899a243a" 1345 | ], 1346 | "layout": "IPY_MODEL_0d7a51735dab4d549937b5e7e53591ba" 1347 | } 1348 | }, 1349 | "de6a7c5ce5284507aa82b1d4c0170393": { 1350 | "model_module": "@jupyter-widgets/controls", 1351 | "model_name": "HTMLModel", 1352 | "model_module_version": "1.5.0", 1353 | "state": { 1354 | "_dom_classes": [], 1355 | "_model_module": "@jupyter-widgets/controls", 1356 | "_model_module_version": "1.5.0", 1357 | "_model_name": "HTMLModel", 1358 | "_view_count": null, 1359 | "_view_module": "@jupyter-widgets/controls", 1360 | "_view_module_version": "1.5.0", 1361 | "_view_name": "HTMLView", 1362 | "description": "", 1363 | "description_tooltip": null, 1364 | "layout": "IPY_MODEL_f31a2928f25b4fe78eeb69530f6a63d5", 1365 | "placeholder": "​", 1366 | "style": "IPY_MODEL_1cf5fc27417a47c98e49ec203f33a2f2", 1367 | "value": "100%" 1368 | } 1369 | }, 1370 | "da8a4395ea2440f5875788f328419627": { 1371 | "model_module": "@jupyter-widgets/controls", 1372 | "model_name": "FloatProgressModel", 1373 | "model_module_version": "1.5.0", 1374 | "state": { 1375 | "_dom_classes": [], 1376 | "_model_module": "@jupyter-widgets/controls", 1377 | "_model_module_version": "1.5.0", 1378 | "_model_name": "FloatProgressModel", 1379 | "_view_count": null, 1380 | "_view_module": "@jupyter-widgets/controls", 1381 | "_view_module_version": "1.5.0", 1382 | "_view_name": "ProgressView", 1383 | "bar_style": "success", 1384 | "description": "", 1385 | "description_tooltip": null, 1386 | "layout": "IPY_MODEL_ac0186ce68c448e6b6259e3a2ebd46dd", 1387 | "max": 16, 1388 | "min": 0, 1389 | "orientation": "horizontal", 1390 | "style": "IPY_MODEL_ef21bc1c2dd540ab98ea755c235eb156", 1391 | "value": 16 1392 | } 1393 | }, 1394 | "225e86d7282b4b509f6b62f7899a243a": { 1395 | "model_module": "@jupyter-widgets/controls", 1396 | "model_name": "HTMLModel", 1397 | "model_module_version": "1.5.0", 1398 | "state": { 1399 | "_dom_classes": [], 1400 | "_model_module": "@jupyter-widgets/controls", 1401 | "_model_module_version": "1.5.0", 1402 | "_model_name": "HTMLModel", 1403 | "_view_count": null, 1404 | "_view_module": "@jupyter-widgets/controls", 1405 | "_view_module_version": "1.5.0", 1406 | "_view_name": "HTMLView", 1407 | "description": "", 1408 | "description_tooltip": null, 1409 | "layout": "IPY_MODEL_39ad9fa51dd040e6a920d27de9cc6f14", 1410 | "placeholder": "​", 1411 | "style": "IPY_MODEL_6fd3144a82c14c7c95341193cb23b919", 1412 | "value": " 16/16 [00:01<00:00,  9.01it/s]" 1413 | } 1414 | }, 1415 | "0d7a51735dab4d549937b5e7e53591ba": { 1416 | "model_module": "@jupyter-widgets/base", 1417 | "model_name": "LayoutModel", 1418 | "model_module_version": "1.2.0", 1419 | "state": { 1420 | "_model_module": "@jupyter-widgets/base", 1421 | "_model_module_version": "1.2.0", 1422 | "_model_name": "LayoutModel", 1423 | "_view_count": null, 1424 | "_view_module": "@jupyter-widgets/base", 1425 | "_view_module_version": "1.2.0", 1426 | "_view_name": "LayoutView", 1427 | "align_content": null, 1428 | "align_items": null, 1429 | "align_self": null, 1430 | "border": null, 1431 | "bottom": null, 1432 | "display": "inline-flex", 1433 | "flex": null, 1434 | "flex_flow": "row wrap", 1435 | "grid_area": null, 1436 | "grid_auto_columns": null, 1437 | "grid_auto_flow": null, 1438 | "grid_auto_rows": null, 1439 | "grid_column": null, 1440 | "grid_gap": null, 1441 | "grid_row": null, 1442 | "grid_template_areas": null, 1443 | "grid_template_columns": null, 1444 | "grid_template_rows": null, 1445 | "height": null, 1446 | "justify_content": null, 1447 | "justify_items": null, 1448 | "left": null, 1449 | "margin": null, 1450 | "max_height": null, 1451 | "max_width": null, 1452 | "min_height": null, 1453 | "min_width": null, 1454 | "object_fit": null, 1455 | "object_position": null, 1456 | "order": null, 1457 | "overflow": null, 1458 | "overflow_x": null, 1459 | "overflow_y": null, 1460 | "padding": null, 1461 | "right": null, 1462 | "top": null, 1463 | "visibility": null, 1464 | "width": "100%" 1465 | } 1466 | }, 1467 | "f31a2928f25b4fe78eeb69530f6a63d5": { 1468 | "model_module": "@jupyter-widgets/base", 1469 | "model_name": "LayoutModel", 1470 | "model_module_version": "1.2.0", 1471 | "state": { 1472 | "_model_module": "@jupyter-widgets/base", 1473 | "_model_module_version": "1.2.0", 1474 | "_model_name": "LayoutModel", 1475 | "_view_count": null, 1476 | "_view_module": "@jupyter-widgets/base", 1477 | "_view_module_version": "1.2.0", 1478 | "_view_name": "LayoutView", 1479 | "align_content": null, 1480 | "align_items": null, 1481 | "align_self": null, 1482 | "border": null, 1483 | "bottom": null, 1484 | "display": null, 1485 | "flex": null, 1486 | "flex_flow": null, 1487 | "grid_area": null, 1488 | "grid_auto_columns": null, 1489 | "grid_auto_flow": null, 1490 | "grid_auto_rows": null, 1491 | "grid_column": null, 1492 | "grid_gap": null, 1493 | "grid_row": null, 1494 | "grid_template_areas": null, 1495 | "grid_template_columns": null, 1496 | "grid_template_rows": null, 1497 | "height": null, 1498 | "justify_content": null, 1499 | "justify_items": null, 1500 | "left": null, 1501 | "margin": null, 1502 | "max_height": null, 1503 | "max_width": null, 1504 | "min_height": null, 1505 | "min_width": null, 1506 | "object_fit": null, 1507 | "object_position": null, 1508 | "order": null, 1509 | "overflow": null, 1510 | "overflow_x": null, 1511 | "overflow_y": null, 1512 | "padding": null, 1513 | "right": null, 1514 | "top": null, 1515 | "visibility": null, 1516 | "width": null 1517 | } 1518 | }, 1519 | "1cf5fc27417a47c98e49ec203f33a2f2": { 1520 | "model_module": "@jupyter-widgets/controls", 1521 | "model_name": "DescriptionStyleModel", 1522 | "model_module_version": "1.5.0", 1523 | "state": { 1524 | "_model_module": "@jupyter-widgets/controls", 1525 | "_model_module_version": "1.5.0", 1526 | "_model_name": "DescriptionStyleModel", 1527 | "_view_count": null, 1528 | "_view_module": "@jupyter-widgets/base", 1529 | "_view_module_version": "1.2.0", 1530 | "_view_name": "StyleView", 1531 | "description_width": "" 1532 | } 1533 | }, 1534 | "ac0186ce68c448e6b6259e3a2ebd46dd": { 1535 | "model_module": "@jupyter-widgets/base", 1536 | "model_name": "LayoutModel", 1537 | "model_module_version": "1.2.0", 1538 | "state": { 1539 | "_model_module": "@jupyter-widgets/base", 1540 | "_model_module_version": "1.2.0", 1541 | "_model_name": "LayoutModel", 1542 | "_view_count": null, 1543 | "_view_module": "@jupyter-widgets/base", 1544 | "_view_module_version": "1.2.0", 1545 | "_view_name": "LayoutView", 1546 | "align_content": null, 1547 | "align_items": null, 1548 | "align_self": null, 1549 | "border": null, 1550 | "bottom": null, 1551 | "display": null, 1552 | "flex": "2", 1553 | "flex_flow": null, 1554 | "grid_area": null, 1555 | "grid_auto_columns": null, 1556 | "grid_auto_flow": null, 1557 | "grid_auto_rows": null, 1558 | "grid_column": null, 1559 | "grid_gap": null, 1560 | "grid_row": null, 1561 | "grid_template_areas": null, 1562 | "grid_template_columns": null, 1563 | "grid_template_rows": null, 1564 | "height": null, 1565 | "justify_content": null, 1566 | "justify_items": null, 1567 | "left": null, 1568 | "margin": null, 1569 | "max_height": null, 1570 | "max_width": null, 1571 | "min_height": null, 1572 | "min_width": null, 1573 | "object_fit": null, 1574 | "object_position": null, 1575 | "order": null, 1576 | "overflow": null, 1577 | "overflow_x": null, 1578 | "overflow_y": null, 1579 | "padding": null, 1580 | "right": null, 1581 | "top": null, 1582 | "visibility": null, 1583 | "width": null 1584 | } 1585 | }, 1586 | "ef21bc1c2dd540ab98ea755c235eb156": { 1587 | "model_module": "@jupyter-widgets/controls", 1588 | "model_name": "ProgressStyleModel", 1589 | "model_module_version": "1.5.0", 1590 | "state": { 1591 | "_model_module": "@jupyter-widgets/controls", 1592 | "_model_module_version": "1.5.0", 1593 | "_model_name": "ProgressStyleModel", 1594 | "_view_count": null, 1595 | "_view_module": "@jupyter-widgets/base", 1596 | "_view_module_version": "1.2.0", 1597 | "_view_name": "StyleView", 1598 | "bar_color": null, 1599 | "description_width": "" 1600 | } 1601 | }, 1602 | "39ad9fa51dd040e6a920d27de9cc6f14": { 1603 | "model_module": "@jupyter-widgets/base", 1604 | "model_name": "LayoutModel", 1605 | "model_module_version": "1.2.0", 1606 | "state": { 1607 | "_model_module": "@jupyter-widgets/base", 1608 | "_model_module_version": "1.2.0", 1609 | "_model_name": "LayoutModel", 1610 | "_view_count": null, 1611 | "_view_module": "@jupyter-widgets/base", 1612 | "_view_module_version": "1.2.0", 1613 | "_view_name": "LayoutView", 1614 | "align_content": null, 1615 | "align_items": null, 1616 | "align_self": null, 1617 | "border": null, 1618 | "bottom": null, 1619 | "display": null, 1620 | "flex": null, 1621 | "flex_flow": null, 1622 | "grid_area": null, 1623 | "grid_auto_columns": null, 1624 | "grid_auto_flow": null, 1625 | "grid_auto_rows": null, 1626 | "grid_column": null, 1627 | "grid_gap": null, 1628 | "grid_row": null, 1629 | "grid_template_areas": null, 1630 | "grid_template_columns": null, 1631 | "grid_template_rows": null, 1632 | "height": null, 1633 | "justify_content": null, 1634 | "justify_items": null, 1635 | "left": null, 1636 | "margin": null, 1637 | "max_height": null, 1638 | "max_width": null, 1639 | "min_height": null, 1640 | "min_width": null, 1641 | "object_fit": null, 1642 | "object_position": null, 1643 | "order": null, 1644 | "overflow": null, 1645 | "overflow_x": null, 1646 | "overflow_y": null, 1647 | "padding": null, 1648 | "right": null, 1649 | "top": null, 1650 | "visibility": null, 1651 | "width": null 1652 | } 1653 | }, 1654 | "6fd3144a82c14c7c95341193cb23b919": { 1655 | "model_module": "@jupyter-widgets/controls", 1656 | "model_name": "DescriptionStyleModel", 1657 | "model_module_version": "1.5.0", 1658 | "state": { 1659 | "_model_module": "@jupyter-widgets/controls", 1660 | "_model_module_version": "1.5.0", 1661 | "_model_name": "DescriptionStyleModel", 1662 | "_view_count": null, 1663 | "_view_module": "@jupyter-widgets/base", 1664 | "_view_module_version": "1.2.0", 1665 | "_view_name": "StyleView", 1666 | "description_width": "" 1667 | } 1668 | }, 1669 | "fd9d2b5c879b4bf3bd4a98ad1652e046": { 1670 | "model_module": "@jupyter-widgets/controls", 1671 | "model_name": "HBoxModel", 1672 | "model_module_version": "1.5.0", 1673 | "state": { 1674 | "_dom_classes": [], 1675 | "_model_module": "@jupyter-widgets/controls", 1676 | "_model_module_version": "1.5.0", 1677 | "_model_name": "HBoxModel", 1678 | "_view_count": null, 1679 | "_view_module": "@jupyter-widgets/controls", 1680 | "_view_module_version": "1.5.0", 1681 | "_view_name": "HBoxView", 1682 | "box_style": "", 1683 | "children": [ 1684 | "IPY_MODEL_a114e175966c4c53b4ca8fcb4495a215", 1685 | "IPY_MODEL_5637b79669534291b55d68de556a7e52", 1686 | "IPY_MODEL_115837e3aed4403798cd17b5b1ead02d" 1687 | ], 1688 | "layout": "IPY_MODEL_c71687f02e3b4066920152385763efb7" 1689 | } 1690 | }, 1691 | "a114e175966c4c53b4ca8fcb4495a215": { 1692 | "model_module": "@jupyter-widgets/controls", 1693 | "model_name": "HTMLModel", 1694 | "model_module_version": "1.5.0", 1695 | "state": { 1696 | "_dom_classes": [], 1697 | "_model_module": "@jupyter-widgets/controls", 1698 | "_model_module_version": "1.5.0", 1699 | "_model_name": "HTMLModel", 1700 | "_view_count": null, 1701 | "_view_module": "@jupyter-widgets/controls", 1702 | "_view_module_version": "1.5.0", 1703 | "_view_name": "HTMLView", 1704 | "description": "", 1705 | "description_tooltip": null, 1706 | "layout": "IPY_MODEL_ddeb7dc1af44465e83e662f3278a4ff1", 1707 | "placeholder": "​", 1708 | "style": "IPY_MODEL_ea21f28286484130a45c3c537cac8b80", 1709 | "value": "100%" 1710 | } 1711 | }, 1712 | "5637b79669534291b55d68de556a7e52": { 1713 | "model_module": "@jupyter-widgets/controls", 1714 | "model_name": "FloatProgressModel", 1715 | "model_module_version": "1.5.0", 1716 | "state": { 1717 | "_dom_classes": [], 1718 | "_model_module": "@jupyter-widgets/controls", 1719 | "_model_module_version": "1.5.0", 1720 | "_model_name": "FloatProgressModel", 1721 | "_view_count": null, 1722 | "_view_module": "@jupyter-widgets/controls", 1723 | "_view_module_version": "1.5.0", 1724 | "_view_name": "ProgressView", 1725 | "bar_style": "success", 1726 | "description": "", 1727 | "description_tooltip": null, 1728 | "layout": "IPY_MODEL_3255e852649a4ee889330c1f209f1fcf", 1729 | "max": 16, 1730 | "min": 0, 1731 | "orientation": "horizontal", 1732 | "style": "IPY_MODEL_0b8a896d3321495388be9ef990537d66", 1733 | "value": 16 1734 | } 1735 | }, 1736 | "115837e3aed4403798cd17b5b1ead02d": { 1737 | "model_module": "@jupyter-widgets/controls", 1738 | "model_name": "HTMLModel", 1739 | "model_module_version": "1.5.0", 1740 | "state": { 1741 | "_dom_classes": [], 1742 | "_model_module": "@jupyter-widgets/controls", 1743 | "_model_module_version": "1.5.0", 1744 | "_model_name": "HTMLModel", 1745 | "_view_count": null, 1746 | "_view_module": "@jupyter-widgets/controls", 1747 | "_view_module_version": "1.5.0", 1748 | "_view_name": "HTMLView", 1749 | "description": "", 1750 | "description_tooltip": null, 1751 | "layout": "IPY_MODEL_5ff9d1e9c0b943aa9fbd46e73d5d26c8", 1752 | "placeholder": "​", 1753 | "style": "IPY_MODEL_581443f16d324e3d9604f786d495d27d", 1754 | "value": " 16/16 [00:02<00:00,  5.30it/s]" 1755 | } 1756 | }, 1757 | "c71687f02e3b4066920152385763efb7": { 1758 | "model_module": "@jupyter-widgets/base", 1759 | "model_name": "LayoutModel", 1760 | "model_module_version": "1.2.0", 1761 | "state": { 1762 | "_model_module": "@jupyter-widgets/base", 1763 | "_model_module_version": "1.2.0", 1764 | "_model_name": "LayoutModel", 1765 | "_view_count": null, 1766 | "_view_module": "@jupyter-widgets/base", 1767 | "_view_module_version": "1.2.0", 1768 | "_view_name": "LayoutView", 1769 | "align_content": null, 1770 | "align_items": null, 1771 | "align_self": null, 1772 | "border": null, 1773 | "bottom": null, 1774 | "display": "inline-flex", 1775 | "flex": null, 1776 | "flex_flow": "row wrap", 1777 | "grid_area": null, 1778 | "grid_auto_columns": null, 1779 | "grid_auto_flow": null, 1780 | "grid_auto_rows": null, 1781 | "grid_column": null, 1782 | "grid_gap": null, 1783 | "grid_row": null, 1784 | "grid_template_areas": null, 1785 | "grid_template_columns": null, 1786 | "grid_template_rows": null, 1787 | "height": null, 1788 | "justify_content": null, 1789 | "justify_items": null, 1790 | "left": null, 1791 | "margin": null, 1792 | "max_height": null, 1793 | "max_width": null, 1794 | "min_height": null, 1795 | "min_width": null, 1796 | "object_fit": null, 1797 | "object_position": null, 1798 | "order": null, 1799 | "overflow": null, 1800 | "overflow_x": null, 1801 | "overflow_y": null, 1802 | "padding": null, 1803 | "right": null, 1804 | "top": null, 1805 | "visibility": null, 1806 | "width": "100%" 1807 | } 1808 | }, 1809 | "ddeb7dc1af44465e83e662f3278a4ff1": { 1810 | "model_module": "@jupyter-widgets/base", 1811 | "model_name": "LayoutModel", 1812 | "model_module_version": "1.2.0", 1813 | "state": { 1814 | "_model_module": "@jupyter-widgets/base", 1815 | "_model_module_version": "1.2.0", 1816 | "_model_name": "LayoutModel", 1817 | "_view_count": null, 1818 | "_view_module": "@jupyter-widgets/base", 1819 | "_view_module_version": "1.2.0", 1820 | "_view_name": "LayoutView", 1821 | "align_content": null, 1822 | "align_items": null, 1823 | "align_self": null, 1824 | "border": null, 1825 | "bottom": null, 1826 | "display": null, 1827 | "flex": null, 1828 | "flex_flow": null, 1829 | "grid_area": null, 1830 | "grid_auto_columns": null, 1831 | "grid_auto_flow": null, 1832 | "grid_auto_rows": null, 1833 | "grid_column": null, 1834 | "grid_gap": null, 1835 | "grid_row": null, 1836 | "grid_template_areas": null, 1837 | "grid_template_columns": null, 1838 | "grid_template_rows": null, 1839 | "height": null, 1840 | "justify_content": null, 1841 | "justify_items": null, 1842 | "left": null, 1843 | "margin": null, 1844 | "max_height": null, 1845 | "max_width": null, 1846 | "min_height": null, 1847 | "min_width": null, 1848 | "object_fit": null, 1849 | "object_position": null, 1850 | "order": null, 1851 | "overflow": null, 1852 | "overflow_x": null, 1853 | "overflow_y": null, 1854 | "padding": null, 1855 | "right": null, 1856 | "top": null, 1857 | "visibility": null, 1858 | "width": null 1859 | } 1860 | }, 1861 | "ea21f28286484130a45c3c537cac8b80": { 1862 | "model_module": "@jupyter-widgets/controls", 1863 | "model_name": "DescriptionStyleModel", 1864 | "model_module_version": "1.5.0", 1865 | "state": { 1866 | "_model_module": "@jupyter-widgets/controls", 1867 | "_model_module_version": "1.5.0", 1868 | "_model_name": "DescriptionStyleModel", 1869 | "_view_count": null, 1870 | "_view_module": "@jupyter-widgets/base", 1871 | "_view_module_version": "1.2.0", 1872 | "_view_name": "StyleView", 1873 | "description_width": "" 1874 | } 1875 | }, 1876 | "3255e852649a4ee889330c1f209f1fcf": { 1877 | "model_module": "@jupyter-widgets/base", 1878 | "model_name": "LayoutModel", 1879 | "model_module_version": "1.2.0", 1880 | "state": { 1881 | "_model_module": "@jupyter-widgets/base", 1882 | "_model_module_version": "1.2.0", 1883 | "_model_name": "LayoutModel", 1884 | "_view_count": null, 1885 | "_view_module": "@jupyter-widgets/base", 1886 | "_view_module_version": "1.2.0", 1887 | "_view_name": "LayoutView", 1888 | "align_content": null, 1889 | "align_items": null, 1890 | "align_self": null, 1891 | "border": null, 1892 | "bottom": null, 1893 | "display": null, 1894 | "flex": "2", 1895 | "flex_flow": null, 1896 | "grid_area": null, 1897 | "grid_auto_columns": null, 1898 | "grid_auto_flow": null, 1899 | "grid_auto_rows": null, 1900 | "grid_column": null, 1901 | "grid_gap": null, 1902 | "grid_row": null, 1903 | "grid_template_areas": null, 1904 | "grid_template_columns": null, 1905 | "grid_template_rows": null, 1906 | "height": null, 1907 | "justify_content": null, 1908 | "justify_items": null, 1909 | "left": null, 1910 | "margin": null, 1911 | "max_height": null, 1912 | "max_width": null, 1913 | "min_height": null, 1914 | "min_width": null, 1915 | "object_fit": null, 1916 | "object_position": null, 1917 | "order": null, 1918 | "overflow": null, 1919 | "overflow_x": null, 1920 | "overflow_y": null, 1921 | "padding": null, 1922 | "right": null, 1923 | "top": null, 1924 | "visibility": null, 1925 | "width": null 1926 | } 1927 | }, 1928 | "0b8a896d3321495388be9ef990537d66": { 1929 | "model_module": "@jupyter-widgets/controls", 1930 | "model_name": "ProgressStyleModel", 1931 | "model_module_version": "1.5.0", 1932 | "state": { 1933 | "_model_module": "@jupyter-widgets/controls", 1934 | "_model_module_version": "1.5.0", 1935 | "_model_name": "ProgressStyleModel", 1936 | "_view_count": null, 1937 | "_view_module": "@jupyter-widgets/base", 1938 | "_view_module_version": "1.2.0", 1939 | "_view_name": "StyleView", 1940 | "bar_color": null, 1941 | "description_width": "" 1942 | } 1943 | }, 1944 | "5ff9d1e9c0b943aa9fbd46e73d5d26c8": { 1945 | "model_module": "@jupyter-widgets/base", 1946 | "model_name": "LayoutModel", 1947 | "model_module_version": "1.2.0", 1948 | "state": { 1949 | "_model_module": "@jupyter-widgets/base", 1950 | "_model_module_version": "1.2.0", 1951 | "_model_name": "LayoutModel", 1952 | "_view_count": null, 1953 | "_view_module": "@jupyter-widgets/base", 1954 | "_view_module_version": "1.2.0", 1955 | "_view_name": "LayoutView", 1956 | "align_content": null, 1957 | "align_items": null, 1958 | "align_self": null, 1959 | "border": null, 1960 | "bottom": null, 1961 | "display": null, 1962 | "flex": null, 1963 | "flex_flow": null, 1964 | "grid_area": null, 1965 | "grid_auto_columns": null, 1966 | "grid_auto_flow": null, 1967 | "grid_auto_rows": null, 1968 | "grid_column": null, 1969 | "grid_gap": null, 1970 | "grid_row": null, 1971 | "grid_template_areas": null, 1972 | "grid_template_columns": null, 1973 | "grid_template_rows": null, 1974 | "height": null, 1975 | "justify_content": null, 1976 | "justify_items": null, 1977 | "left": null, 1978 | "margin": null, 1979 | "max_height": null, 1980 | "max_width": null, 1981 | "min_height": null, 1982 | "min_width": null, 1983 | "object_fit": null, 1984 | "object_position": null, 1985 | "order": null, 1986 | "overflow": null, 1987 | "overflow_x": null, 1988 | "overflow_y": null, 1989 | "padding": null, 1990 | "right": null, 1991 | "top": null, 1992 | "visibility": null, 1993 | "width": null 1994 | } 1995 | }, 1996 | "581443f16d324e3d9604f786d495d27d": { 1997 | "model_module": "@jupyter-widgets/controls", 1998 | "model_name": "DescriptionStyleModel", 1999 | "model_module_version": "1.5.0", 2000 | "state": { 2001 | "_model_module": "@jupyter-widgets/controls", 2002 | "_model_module_version": "1.5.0", 2003 | "_model_name": "DescriptionStyleModel", 2004 | "_view_count": null, 2005 | "_view_module": "@jupyter-widgets/base", 2006 | "_view_module_version": "1.2.0", 2007 | "_view_name": "StyleView", 2008 | "description_width": "" 2009 | } 2010 | }, 2011 | "ae2e51d3d5014fa4a1cb602d0adcfca3": { 2012 | "model_module": "@jupyter-widgets/controls", 2013 | "model_name": "HBoxModel", 2014 | "model_module_version": "1.5.0", 2015 | "state": { 2016 | "_dom_classes": [], 2017 | "_model_module": "@jupyter-widgets/controls", 2018 | "_model_module_version": "1.5.0", 2019 | "_model_name": "HBoxModel", 2020 | "_view_count": null, 2021 | "_view_module": "@jupyter-widgets/controls", 2022 | "_view_module_version": "1.5.0", 2023 | "_view_name": "HBoxView", 2024 | "box_style": "", 2025 | "children": [ 2026 | "IPY_MODEL_306577b615234f1fab6dd7e5c01ac654", 2027 | "IPY_MODEL_ac745dae99444b91befa52b2328f42d6", 2028 | "IPY_MODEL_fab1d434c00a4bc7a202b94265cefd10" 2029 | ], 2030 | "layout": "IPY_MODEL_9c35b59e342440d7a2168f8af58474ae" 2031 | } 2032 | }, 2033 | "306577b615234f1fab6dd7e5c01ac654": { 2034 | "model_module": "@jupyter-widgets/controls", 2035 | "model_name": "HTMLModel", 2036 | "model_module_version": "1.5.0", 2037 | "state": { 2038 | "_dom_classes": [], 2039 | "_model_module": "@jupyter-widgets/controls", 2040 | "_model_module_version": "1.5.0", 2041 | "_model_name": "HTMLModel", 2042 | "_view_count": null, 2043 | "_view_module": "@jupyter-widgets/controls", 2044 | "_view_module_version": "1.5.0", 2045 | "_view_name": "HTMLView", 2046 | "description": "", 2047 | "description_tooltip": null, 2048 | "layout": "IPY_MODEL_d04f3ceea2e14c0ca79957017a6d106d", 2049 | "placeholder": "​", 2050 | "style": "IPY_MODEL_fa2cd250648b42448d2b87bf69786806", 2051 | "value": "100%" 2052 | } 2053 | }, 2054 | "ac745dae99444b91befa52b2328f42d6": { 2055 | "model_module": "@jupyter-widgets/controls", 2056 | "model_name": "FloatProgressModel", 2057 | "model_module_version": "1.5.0", 2058 | "state": { 2059 | "_dom_classes": [], 2060 | "_model_module": "@jupyter-widgets/controls", 2061 | "_model_module_version": "1.5.0", 2062 | "_model_name": "FloatProgressModel", 2063 | "_view_count": null, 2064 | "_view_module": "@jupyter-widgets/controls", 2065 | "_view_module_version": "1.5.0", 2066 | "_view_name": "ProgressView", 2067 | "bar_style": "success", 2068 | "description": "", 2069 | "description_tooltip": null, 2070 | "layout": "IPY_MODEL_7c03309dca71444fb21a257e647830b4", 2071 | "max": 16, 2072 | "min": 0, 2073 | "orientation": "horizontal", 2074 | "style": "IPY_MODEL_031edc1cc43e40abb8b53aeb75d02fe4", 2075 | "value": 16 2076 | } 2077 | }, 2078 | "fab1d434c00a4bc7a202b94265cefd10": { 2079 | "model_module": "@jupyter-widgets/controls", 2080 | "model_name": "HTMLModel", 2081 | "model_module_version": "1.5.0", 2082 | "state": { 2083 | "_dom_classes": [], 2084 | "_model_module": "@jupyter-widgets/controls", 2085 | "_model_module_version": "1.5.0", 2086 | "_model_name": "HTMLModel", 2087 | "_view_count": null, 2088 | "_view_module": "@jupyter-widgets/controls", 2089 | "_view_module_version": "1.5.0", 2090 | "_view_name": "HTMLView", 2091 | "description": "", 2092 | "description_tooltip": null, 2093 | "layout": "IPY_MODEL_54778f911d1942b7870f2e15204c4086", 2094 | "placeholder": "​", 2095 | "style": "IPY_MODEL_6d98087402f5451d801cdefc9166fef4", 2096 | "value": " 16/16 [00:03<00:00,  4.82it/s]" 2097 | } 2098 | }, 2099 | "9c35b59e342440d7a2168f8af58474ae": { 2100 | "model_module": "@jupyter-widgets/base", 2101 | "model_name": "LayoutModel", 2102 | "model_module_version": "1.2.0", 2103 | "state": { 2104 | "_model_module": "@jupyter-widgets/base", 2105 | "_model_module_version": "1.2.0", 2106 | "_model_name": "LayoutModel", 2107 | "_view_count": null, 2108 | "_view_module": "@jupyter-widgets/base", 2109 | "_view_module_version": "1.2.0", 2110 | "_view_name": "LayoutView", 2111 | "align_content": null, 2112 | "align_items": null, 2113 | "align_self": null, 2114 | "border": null, 2115 | "bottom": null, 2116 | "display": "inline-flex", 2117 | "flex": null, 2118 | "flex_flow": "row wrap", 2119 | "grid_area": null, 2120 | "grid_auto_columns": null, 2121 | "grid_auto_flow": null, 2122 | "grid_auto_rows": null, 2123 | "grid_column": null, 2124 | "grid_gap": null, 2125 | "grid_row": null, 2126 | "grid_template_areas": null, 2127 | "grid_template_columns": null, 2128 | "grid_template_rows": null, 2129 | "height": null, 2130 | "justify_content": null, 2131 | "justify_items": null, 2132 | "left": null, 2133 | "margin": null, 2134 | "max_height": null, 2135 | "max_width": null, 2136 | "min_height": null, 2137 | "min_width": null, 2138 | "object_fit": null, 2139 | "object_position": null, 2140 | "order": null, 2141 | "overflow": null, 2142 | "overflow_x": null, 2143 | "overflow_y": null, 2144 | "padding": null, 2145 | "right": null, 2146 | "top": null, 2147 | "visibility": null, 2148 | "width": "100%" 2149 | } 2150 | }, 2151 | "d04f3ceea2e14c0ca79957017a6d106d": { 2152 | "model_module": "@jupyter-widgets/base", 2153 | "model_name": "LayoutModel", 2154 | "model_module_version": "1.2.0", 2155 | "state": { 2156 | "_model_module": "@jupyter-widgets/base", 2157 | "_model_module_version": "1.2.0", 2158 | "_model_name": "LayoutModel", 2159 | "_view_count": null, 2160 | "_view_module": "@jupyter-widgets/base", 2161 | "_view_module_version": "1.2.0", 2162 | "_view_name": "LayoutView", 2163 | "align_content": null, 2164 | "align_items": null, 2165 | "align_self": null, 2166 | "border": null, 2167 | "bottom": null, 2168 | "display": null, 2169 | "flex": null, 2170 | "flex_flow": null, 2171 | "grid_area": null, 2172 | "grid_auto_columns": null, 2173 | "grid_auto_flow": null, 2174 | "grid_auto_rows": null, 2175 | "grid_column": null, 2176 | "grid_gap": null, 2177 | "grid_row": null, 2178 | "grid_template_areas": null, 2179 | "grid_template_columns": null, 2180 | "grid_template_rows": null, 2181 | "height": null, 2182 | "justify_content": null, 2183 | "justify_items": null, 2184 | "left": null, 2185 | "margin": null, 2186 | "max_height": null, 2187 | "max_width": null, 2188 | "min_height": null, 2189 | "min_width": null, 2190 | "object_fit": null, 2191 | "object_position": null, 2192 | "order": null, 2193 | "overflow": null, 2194 | "overflow_x": null, 2195 | "overflow_y": null, 2196 | "padding": null, 2197 | "right": null, 2198 | "top": null, 2199 | "visibility": null, 2200 | "width": null 2201 | } 2202 | }, 2203 | "fa2cd250648b42448d2b87bf69786806": { 2204 | "model_module": "@jupyter-widgets/controls", 2205 | "model_name": "DescriptionStyleModel", 2206 | "model_module_version": "1.5.0", 2207 | "state": { 2208 | "_model_module": "@jupyter-widgets/controls", 2209 | "_model_module_version": "1.5.0", 2210 | "_model_name": "DescriptionStyleModel", 2211 | "_view_count": null, 2212 | "_view_module": "@jupyter-widgets/base", 2213 | "_view_module_version": "1.2.0", 2214 | "_view_name": "StyleView", 2215 | "description_width": "" 2216 | } 2217 | }, 2218 | "7c03309dca71444fb21a257e647830b4": { 2219 | "model_module": "@jupyter-widgets/base", 2220 | "model_name": "LayoutModel", 2221 | "model_module_version": "1.2.0", 2222 | "state": { 2223 | "_model_module": "@jupyter-widgets/base", 2224 | "_model_module_version": "1.2.0", 2225 | "_model_name": "LayoutModel", 2226 | "_view_count": null, 2227 | "_view_module": "@jupyter-widgets/base", 2228 | "_view_module_version": "1.2.0", 2229 | "_view_name": "LayoutView", 2230 | "align_content": null, 2231 | "align_items": null, 2232 | "align_self": null, 2233 | "border": null, 2234 | "bottom": null, 2235 | "display": null, 2236 | "flex": "2", 2237 | "flex_flow": null, 2238 | "grid_area": null, 2239 | "grid_auto_columns": null, 2240 | "grid_auto_flow": null, 2241 | "grid_auto_rows": null, 2242 | "grid_column": null, 2243 | "grid_gap": null, 2244 | "grid_row": null, 2245 | "grid_template_areas": null, 2246 | "grid_template_columns": null, 2247 | "grid_template_rows": null, 2248 | "height": null, 2249 | "justify_content": null, 2250 | "justify_items": null, 2251 | "left": null, 2252 | "margin": null, 2253 | "max_height": null, 2254 | "max_width": null, 2255 | "min_height": null, 2256 | "min_width": null, 2257 | "object_fit": null, 2258 | "object_position": null, 2259 | "order": null, 2260 | "overflow": null, 2261 | "overflow_x": null, 2262 | "overflow_y": null, 2263 | "padding": null, 2264 | "right": null, 2265 | "top": null, 2266 | "visibility": null, 2267 | "width": null 2268 | } 2269 | }, 2270 | "031edc1cc43e40abb8b53aeb75d02fe4": { 2271 | "model_module": "@jupyter-widgets/controls", 2272 | "model_name": "ProgressStyleModel", 2273 | "model_module_version": "1.5.0", 2274 | "state": { 2275 | "_model_module": "@jupyter-widgets/controls", 2276 | "_model_module_version": "1.5.0", 2277 | "_model_name": "ProgressStyleModel", 2278 | "_view_count": null, 2279 | "_view_module": "@jupyter-widgets/base", 2280 | "_view_module_version": "1.2.0", 2281 | "_view_name": "StyleView", 2282 | "bar_color": null, 2283 | "description_width": "" 2284 | } 2285 | }, 2286 | "54778f911d1942b7870f2e15204c4086": { 2287 | "model_module": "@jupyter-widgets/base", 2288 | "model_name": "LayoutModel", 2289 | "model_module_version": "1.2.0", 2290 | "state": { 2291 | "_model_module": "@jupyter-widgets/base", 2292 | "_model_module_version": "1.2.0", 2293 | "_model_name": "LayoutModel", 2294 | "_view_count": null, 2295 | "_view_module": "@jupyter-widgets/base", 2296 | "_view_module_version": "1.2.0", 2297 | "_view_name": "LayoutView", 2298 | "align_content": null, 2299 | "align_items": null, 2300 | "align_self": null, 2301 | "border": null, 2302 | "bottom": null, 2303 | "display": null, 2304 | "flex": null, 2305 | "flex_flow": null, 2306 | "grid_area": null, 2307 | "grid_auto_columns": null, 2308 | "grid_auto_flow": null, 2309 | "grid_auto_rows": null, 2310 | "grid_column": null, 2311 | "grid_gap": null, 2312 | "grid_row": null, 2313 | "grid_template_areas": null, 2314 | "grid_template_columns": null, 2315 | "grid_template_rows": null, 2316 | "height": null, 2317 | "justify_content": null, 2318 | "justify_items": null, 2319 | "left": null, 2320 | "margin": null, 2321 | "max_height": null, 2322 | "max_width": null, 2323 | "min_height": null, 2324 | "min_width": null, 2325 | "object_fit": null, 2326 | "object_position": null, 2327 | "order": null, 2328 | "overflow": null, 2329 | "overflow_x": null, 2330 | "overflow_y": null, 2331 | "padding": null, 2332 | "right": null, 2333 | "top": null, 2334 | "visibility": null, 2335 | "width": null 2336 | } 2337 | }, 2338 | "6d98087402f5451d801cdefc9166fef4": { 2339 | "model_module": "@jupyter-widgets/controls", 2340 | "model_name": "DescriptionStyleModel", 2341 | "model_module_version": "1.5.0", 2342 | "state": { 2343 | "_model_module": "@jupyter-widgets/controls", 2344 | "_model_module_version": "1.5.0", 2345 | "_model_name": "DescriptionStyleModel", 2346 | "_view_count": null, 2347 | "_view_module": "@jupyter-widgets/base", 2348 | "_view_module_version": "1.2.0", 2349 | "_view_name": "StyleView", 2350 | "description_width": "" 2351 | } 2352 | }, 2353 | "c8a65b8bbd8246c5a6779d605a15acda": { 2354 | "model_module": "@jupyter-widgets/controls", 2355 | "model_name": "HBoxModel", 2356 | "model_module_version": "1.5.0", 2357 | "state": { 2358 | "_dom_classes": [], 2359 | "_model_module": "@jupyter-widgets/controls", 2360 | "_model_module_version": "1.5.0", 2361 | "_model_name": "HBoxModel", 2362 | "_view_count": null, 2363 | "_view_module": "@jupyter-widgets/controls", 2364 | "_view_module_version": "1.5.0", 2365 | "_view_name": "HBoxView", 2366 | "box_style": "", 2367 | "children": [ 2368 | "IPY_MODEL_3e90afc7b1bd44f79180145ca551dfc5", 2369 | "IPY_MODEL_ecfd7754da16443e83c6dac4f0bf02c3", 2370 | "IPY_MODEL_168127473db44622972c91bcb69180eb" 2371 | ], 2372 | "layout": "IPY_MODEL_ebd6950b63644a1ea4625b662fb78ae0" 2373 | } 2374 | }, 2375 | "3e90afc7b1bd44f79180145ca551dfc5": { 2376 | "model_module": "@jupyter-widgets/controls", 2377 | "model_name": "HTMLModel", 2378 | "model_module_version": "1.5.0", 2379 | "state": { 2380 | "_dom_classes": [], 2381 | "_model_module": "@jupyter-widgets/controls", 2382 | "_model_module_version": "1.5.0", 2383 | "_model_name": "HTMLModel", 2384 | "_view_count": null, 2385 | "_view_module": "@jupyter-widgets/controls", 2386 | "_view_module_version": "1.5.0", 2387 | "_view_name": "HTMLView", 2388 | "description": "", 2389 | "description_tooltip": null, 2390 | "layout": "IPY_MODEL_841b320404c14f28af512b7809793e0a", 2391 | "placeholder": "​", 2392 | "style": "IPY_MODEL_8891e9873adf43aba1285634f9ee3e60", 2393 | "value": "100%" 2394 | } 2395 | }, 2396 | "ecfd7754da16443e83c6dac4f0bf02c3": { 2397 | "model_module": "@jupyter-widgets/controls", 2398 | "model_name": "FloatProgressModel", 2399 | "model_module_version": "1.5.0", 2400 | "state": { 2401 | "_dom_classes": [], 2402 | "_model_module": "@jupyter-widgets/controls", 2403 | "_model_module_version": "1.5.0", 2404 | "_model_name": "FloatProgressModel", 2405 | "_view_count": null, 2406 | "_view_module": "@jupyter-widgets/controls", 2407 | "_view_module_version": "1.5.0", 2408 | "_view_name": "ProgressView", 2409 | "bar_style": "success", 2410 | "description": "", 2411 | "description_tooltip": null, 2412 | "layout": "IPY_MODEL_19744e7597894884814efeac0508d6e8", 2413 | "max": 16, 2414 | "min": 0, 2415 | "orientation": "horizontal", 2416 | "style": "IPY_MODEL_4d30c02dc2ed4d728e44b540d57dd1a2", 2417 | "value": 16 2418 | } 2419 | }, 2420 | "168127473db44622972c91bcb69180eb": { 2421 | "model_module": "@jupyter-widgets/controls", 2422 | "model_name": "HTMLModel", 2423 | "model_module_version": "1.5.0", 2424 | "state": { 2425 | "_dom_classes": [], 2426 | "_model_module": "@jupyter-widgets/controls", 2427 | "_model_module_version": "1.5.0", 2428 | "_model_name": "HTMLModel", 2429 | "_view_count": null, 2430 | "_view_module": "@jupyter-widgets/controls", 2431 | "_view_module_version": "1.5.0", 2432 | "_view_name": "HTMLView", 2433 | "description": "", 2434 | "description_tooltip": null, 2435 | "layout": "IPY_MODEL_c47744d043594db1ba02e170e22d1965", 2436 | "placeholder": "​", 2437 | "style": "IPY_MODEL_3de3f487470a4c8abe8016e5f256cdce", 2438 | "value": " 16/16 [00:20<00:00,  1.35s/it]" 2439 | } 2440 | }, 2441 | "ebd6950b63644a1ea4625b662fb78ae0": { 2442 | "model_module": "@jupyter-widgets/base", 2443 | "model_name": "LayoutModel", 2444 | "model_module_version": "1.2.0", 2445 | "state": { 2446 | "_model_module": "@jupyter-widgets/base", 2447 | "_model_module_version": "1.2.0", 2448 | "_model_name": "LayoutModel", 2449 | "_view_count": null, 2450 | "_view_module": "@jupyter-widgets/base", 2451 | "_view_module_version": "1.2.0", 2452 | "_view_name": "LayoutView", 2453 | "align_content": null, 2454 | "align_items": null, 2455 | "align_self": null, 2456 | "border": null, 2457 | "bottom": null, 2458 | "display": "inline-flex", 2459 | "flex": null, 2460 | "flex_flow": "row wrap", 2461 | "grid_area": null, 2462 | "grid_auto_columns": null, 2463 | "grid_auto_flow": null, 2464 | "grid_auto_rows": null, 2465 | "grid_column": null, 2466 | "grid_gap": null, 2467 | "grid_row": null, 2468 | "grid_template_areas": null, 2469 | "grid_template_columns": null, 2470 | "grid_template_rows": null, 2471 | "height": null, 2472 | "justify_content": null, 2473 | "justify_items": null, 2474 | "left": null, 2475 | "margin": null, 2476 | "max_height": null, 2477 | "max_width": null, 2478 | "min_height": null, 2479 | "min_width": null, 2480 | "object_fit": null, 2481 | "object_position": null, 2482 | "order": null, 2483 | "overflow": null, 2484 | "overflow_x": null, 2485 | "overflow_y": null, 2486 | "padding": null, 2487 | "right": null, 2488 | "top": null, 2489 | "visibility": null, 2490 | "width": "100%" 2491 | } 2492 | }, 2493 | "841b320404c14f28af512b7809793e0a": { 2494 | "model_module": "@jupyter-widgets/base", 2495 | "model_name": "LayoutModel", 2496 | "model_module_version": "1.2.0", 2497 | "state": { 2498 | "_model_module": "@jupyter-widgets/base", 2499 | "_model_module_version": "1.2.0", 2500 | "_model_name": "LayoutModel", 2501 | "_view_count": null, 2502 | "_view_module": "@jupyter-widgets/base", 2503 | "_view_module_version": "1.2.0", 2504 | "_view_name": "LayoutView", 2505 | "align_content": null, 2506 | "align_items": null, 2507 | "align_self": null, 2508 | "border": null, 2509 | "bottom": null, 2510 | "display": null, 2511 | "flex": null, 2512 | "flex_flow": null, 2513 | "grid_area": null, 2514 | "grid_auto_columns": null, 2515 | "grid_auto_flow": null, 2516 | "grid_auto_rows": null, 2517 | "grid_column": null, 2518 | "grid_gap": null, 2519 | "grid_row": null, 2520 | "grid_template_areas": null, 2521 | "grid_template_columns": null, 2522 | "grid_template_rows": null, 2523 | "height": null, 2524 | "justify_content": null, 2525 | "justify_items": null, 2526 | "left": null, 2527 | "margin": null, 2528 | "max_height": null, 2529 | "max_width": null, 2530 | "min_height": null, 2531 | "min_width": null, 2532 | "object_fit": null, 2533 | "object_position": null, 2534 | "order": null, 2535 | "overflow": null, 2536 | "overflow_x": null, 2537 | "overflow_y": null, 2538 | "padding": null, 2539 | "right": null, 2540 | "top": null, 2541 | "visibility": null, 2542 | "width": null 2543 | } 2544 | }, 2545 | "8891e9873adf43aba1285634f9ee3e60": { 2546 | "model_module": "@jupyter-widgets/controls", 2547 | "model_name": "DescriptionStyleModel", 2548 | "model_module_version": "1.5.0", 2549 | "state": { 2550 | "_model_module": "@jupyter-widgets/controls", 2551 | "_model_module_version": "1.5.0", 2552 | "_model_name": "DescriptionStyleModel", 2553 | "_view_count": null, 2554 | "_view_module": "@jupyter-widgets/base", 2555 | "_view_module_version": "1.2.0", 2556 | "_view_name": "StyleView", 2557 | "description_width": "" 2558 | } 2559 | }, 2560 | "19744e7597894884814efeac0508d6e8": { 2561 | "model_module": "@jupyter-widgets/base", 2562 | "model_name": "LayoutModel", 2563 | "model_module_version": "1.2.0", 2564 | "state": { 2565 | "_model_module": "@jupyter-widgets/base", 2566 | "_model_module_version": "1.2.0", 2567 | "_model_name": "LayoutModel", 2568 | "_view_count": null, 2569 | "_view_module": "@jupyter-widgets/base", 2570 | "_view_module_version": "1.2.0", 2571 | "_view_name": "LayoutView", 2572 | "align_content": null, 2573 | "align_items": null, 2574 | "align_self": null, 2575 | "border": null, 2576 | "bottom": null, 2577 | "display": null, 2578 | "flex": "2", 2579 | "flex_flow": null, 2580 | "grid_area": null, 2581 | "grid_auto_columns": null, 2582 | "grid_auto_flow": null, 2583 | "grid_auto_rows": null, 2584 | "grid_column": null, 2585 | "grid_gap": null, 2586 | "grid_row": null, 2587 | "grid_template_areas": null, 2588 | "grid_template_columns": null, 2589 | "grid_template_rows": null, 2590 | "height": null, 2591 | "justify_content": null, 2592 | "justify_items": null, 2593 | "left": null, 2594 | "margin": null, 2595 | "max_height": null, 2596 | "max_width": null, 2597 | "min_height": null, 2598 | "min_width": null, 2599 | "object_fit": null, 2600 | "object_position": null, 2601 | "order": null, 2602 | "overflow": null, 2603 | "overflow_x": null, 2604 | "overflow_y": null, 2605 | "padding": null, 2606 | "right": null, 2607 | "top": null, 2608 | "visibility": null, 2609 | "width": null 2610 | } 2611 | }, 2612 | "4d30c02dc2ed4d728e44b540d57dd1a2": { 2613 | "model_module": "@jupyter-widgets/controls", 2614 | "model_name": "ProgressStyleModel", 2615 | "model_module_version": "1.5.0", 2616 | "state": { 2617 | "_model_module": "@jupyter-widgets/controls", 2618 | "_model_module_version": "1.5.0", 2619 | "_model_name": "ProgressStyleModel", 2620 | "_view_count": null, 2621 | "_view_module": "@jupyter-widgets/base", 2622 | "_view_module_version": "1.2.0", 2623 | "_view_name": "StyleView", 2624 | "bar_color": null, 2625 | "description_width": "" 2626 | } 2627 | }, 2628 | "c47744d043594db1ba02e170e22d1965": { 2629 | "model_module": "@jupyter-widgets/base", 2630 | "model_name": "LayoutModel", 2631 | "model_module_version": "1.2.0", 2632 | "state": { 2633 | "_model_module": "@jupyter-widgets/base", 2634 | "_model_module_version": "1.2.0", 2635 | "_model_name": "LayoutModel", 2636 | "_view_count": null, 2637 | "_view_module": "@jupyter-widgets/base", 2638 | "_view_module_version": "1.2.0", 2639 | "_view_name": "LayoutView", 2640 | "align_content": null, 2641 | "align_items": null, 2642 | "align_self": null, 2643 | "border": null, 2644 | "bottom": null, 2645 | "display": null, 2646 | "flex": null, 2647 | "flex_flow": null, 2648 | "grid_area": null, 2649 | "grid_auto_columns": null, 2650 | "grid_auto_flow": null, 2651 | "grid_auto_rows": null, 2652 | "grid_column": null, 2653 | "grid_gap": null, 2654 | "grid_row": null, 2655 | "grid_template_areas": null, 2656 | "grid_template_columns": null, 2657 | "grid_template_rows": null, 2658 | "height": null, 2659 | "justify_content": null, 2660 | "justify_items": null, 2661 | "left": null, 2662 | "margin": null, 2663 | "max_height": null, 2664 | "max_width": null, 2665 | "min_height": null, 2666 | "min_width": null, 2667 | "object_fit": null, 2668 | "object_position": null, 2669 | "order": null, 2670 | "overflow": null, 2671 | "overflow_x": null, 2672 | "overflow_y": null, 2673 | "padding": null, 2674 | "right": null, 2675 | "top": null, 2676 | "visibility": null, 2677 | "width": null 2678 | } 2679 | }, 2680 | "3de3f487470a4c8abe8016e5f256cdce": { 2681 | "model_module": "@jupyter-widgets/controls", 2682 | "model_name": "DescriptionStyleModel", 2683 | "model_module_version": "1.5.0", 2684 | "state": { 2685 | "_model_module": "@jupyter-widgets/controls", 2686 | "_model_module_version": "1.5.0", 2687 | "_model_name": "DescriptionStyleModel", 2688 | "_view_count": null, 2689 | "_view_module": "@jupyter-widgets/base", 2690 | "_view_module_version": "1.2.0", 2691 | "_view_name": "StyleView", 2692 | "description_width": "" 2693 | } 2694 | }, 2695 | "ad7d2b4774cd4181b4bbd0a3588f7cb4": { 2696 | "model_module": "@jupyter-widgets/controls", 2697 | "model_name": "HBoxModel", 2698 | "model_module_version": "1.5.0", 2699 | "state": { 2700 | "_dom_classes": [], 2701 | "_model_module": "@jupyter-widgets/controls", 2702 | "_model_module_version": "1.5.0", 2703 | "_model_name": "HBoxModel", 2704 | "_view_count": null, 2705 | "_view_module": "@jupyter-widgets/controls", 2706 | "_view_module_version": "1.5.0", 2707 | "_view_name": "HBoxView", 2708 | "box_style": "", 2709 | "children": [ 2710 | "IPY_MODEL_6f4f74e433c34b32b4874e717151cdc5", 2711 | "IPY_MODEL_11d6a99882fe440bb2e437d990656bbd", 2712 | "IPY_MODEL_71c90889df844b66af254e7af3087cc0" 2713 | ], 2714 | "layout": "IPY_MODEL_d098d2b9a5d54d7fbed72fb602c3c9bd" 2715 | } 2716 | }, 2717 | "6f4f74e433c34b32b4874e717151cdc5": { 2718 | "model_module": "@jupyter-widgets/controls", 2719 | "model_name": "HTMLModel", 2720 | "model_module_version": "1.5.0", 2721 | "state": { 2722 | "_dom_classes": [], 2723 | "_model_module": "@jupyter-widgets/controls", 2724 | "_model_module_version": "1.5.0", 2725 | "_model_name": "HTMLModel", 2726 | "_view_count": null, 2727 | "_view_module": "@jupyter-widgets/controls", 2728 | "_view_module_version": "1.5.0", 2729 | "_view_name": "HTMLView", 2730 | "description": "", 2731 | "description_tooltip": null, 2732 | "layout": "IPY_MODEL_353c5973a79b402e92f2140b436e6c1d", 2733 | "placeholder": "​", 2734 | "style": "IPY_MODEL_32dc283e573543c78866f706a5f93821", 2735 | "value": "100%" 2736 | } 2737 | }, 2738 | "11d6a99882fe440bb2e437d990656bbd": { 2739 | "model_module": "@jupyter-widgets/controls", 2740 | "model_name": "FloatProgressModel", 2741 | "model_module_version": "1.5.0", 2742 | "state": { 2743 | "_dom_classes": [], 2744 | "_model_module": "@jupyter-widgets/controls", 2745 | "_model_module_version": "1.5.0", 2746 | "_model_name": "FloatProgressModel", 2747 | "_view_count": null, 2748 | "_view_module": "@jupyter-widgets/controls", 2749 | "_view_module_version": "1.5.0", 2750 | "_view_name": "ProgressView", 2751 | "bar_style": "success", 2752 | "description": "", 2753 | "description_tooltip": null, 2754 | "layout": "IPY_MODEL_fa75dee6148d400eb308a1a074d347f8", 2755 | "max": 16, 2756 | "min": 0, 2757 | "orientation": "horizontal", 2758 | "style": "IPY_MODEL_35c78d8f8a874b1f84c8ee9af7fd983a", 2759 | "value": 16 2760 | } 2761 | }, 2762 | "71c90889df844b66af254e7af3087cc0": { 2763 | "model_module": "@jupyter-widgets/controls", 2764 | "model_name": "HTMLModel", 2765 | "model_module_version": "1.5.0", 2766 | "state": { 2767 | "_dom_classes": [], 2768 | "_model_module": "@jupyter-widgets/controls", 2769 | "_model_module_version": "1.5.0", 2770 | "_model_name": "HTMLModel", 2771 | "_view_count": null, 2772 | "_view_module": "@jupyter-widgets/controls", 2773 | "_view_module_version": "1.5.0", 2774 | "_view_name": "HTMLView", 2775 | "description": "", 2776 | "description_tooltip": null, 2777 | "layout": "IPY_MODEL_d139ecb729a8412186359f745633608d", 2778 | "placeholder": "​", 2779 | "style": "IPY_MODEL_cba0438ee33240c487effa861e7ef120", 2780 | "value": " 16/16 [00:07<00:00,  2.04it/s]" 2781 | } 2782 | }, 2783 | "d098d2b9a5d54d7fbed72fb602c3c9bd": { 2784 | "model_module": "@jupyter-widgets/base", 2785 | "model_name": "LayoutModel", 2786 | "model_module_version": "1.2.0", 2787 | "state": { 2788 | "_model_module": "@jupyter-widgets/base", 2789 | "_model_module_version": "1.2.0", 2790 | "_model_name": "LayoutModel", 2791 | "_view_count": null, 2792 | "_view_module": "@jupyter-widgets/base", 2793 | "_view_module_version": "1.2.0", 2794 | "_view_name": "LayoutView", 2795 | "align_content": null, 2796 | "align_items": null, 2797 | "align_self": null, 2798 | "border": null, 2799 | "bottom": null, 2800 | "display": "inline-flex", 2801 | "flex": null, 2802 | "flex_flow": "row wrap", 2803 | "grid_area": null, 2804 | "grid_auto_columns": null, 2805 | "grid_auto_flow": null, 2806 | "grid_auto_rows": null, 2807 | "grid_column": null, 2808 | "grid_gap": null, 2809 | "grid_row": null, 2810 | "grid_template_areas": null, 2811 | "grid_template_columns": null, 2812 | "grid_template_rows": null, 2813 | "height": null, 2814 | "justify_content": null, 2815 | "justify_items": null, 2816 | "left": null, 2817 | "margin": null, 2818 | "max_height": null, 2819 | "max_width": null, 2820 | "min_height": null, 2821 | "min_width": null, 2822 | "object_fit": null, 2823 | "object_position": null, 2824 | "order": null, 2825 | "overflow": null, 2826 | "overflow_x": null, 2827 | "overflow_y": null, 2828 | "padding": null, 2829 | "right": null, 2830 | "top": null, 2831 | "visibility": null, 2832 | "width": "100%" 2833 | } 2834 | }, 2835 | "353c5973a79b402e92f2140b436e6c1d": { 2836 | "model_module": "@jupyter-widgets/base", 2837 | "model_name": "LayoutModel", 2838 | "model_module_version": "1.2.0", 2839 | "state": { 2840 | "_model_module": "@jupyter-widgets/base", 2841 | "_model_module_version": "1.2.0", 2842 | "_model_name": "LayoutModel", 2843 | "_view_count": null, 2844 | "_view_module": "@jupyter-widgets/base", 2845 | "_view_module_version": "1.2.0", 2846 | "_view_name": "LayoutView", 2847 | "align_content": null, 2848 | "align_items": null, 2849 | "align_self": null, 2850 | "border": null, 2851 | "bottom": null, 2852 | "display": null, 2853 | "flex": null, 2854 | "flex_flow": null, 2855 | "grid_area": null, 2856 | "grid_auto_columns": null, 2857 | "grid_auto_flow": null, 2858 | "grid_auto_rows": null, 2859 | "grid_column": null, 2860 | "grid_gap": null, 2861 | "grid_row": null, 2862 | "grid_template_areas": null, 2863 | "grid_template_columns": null, 2864 | "grid_template_rows": null, 2865 | "height": null, 2866 | "justify_content": null, 2867 | "justify_items": null, 2868 | "left": null, 2869 | "margin": null, 2870 | "max_height": null, 2871 | "max_width": null, 2872 | "min_height": null, 2873 | "min_width": null, 2874 | "object_fit": null, 2875 | "object_position": null, 2876 | "order": null, 2877 | "overflow": null, 2878 | "overflow_x": null, 2879 | "overflow_y": null, 2880 | "padding": null, 2881 | "right": null, 2882 | "top": null, 2883 | "visibility": null, 2884 | "width": null 2885 | } 2886 | }, 2887 | "32dc283e573543c78866f706a5f93821": { 2888 | "model_module": "@jupyter-widgets/controls", 2889 | "model_name": "DescriptionStyleModel", 2890 | "model_module_version": "1.5.0", 2891 | "state": { 2892 | "_model_module": "@jupyter-widgets/controls", 2893 | "_model_module_version": "1.5.0", 2894 | "_model_name": "DescriptionStyleModel", 2895 | "_view_count": null, 2896 | "_view_module": "@jupyter-widgets/base", 2897 | "_view_module_version": "1.2.0", 2898 | "_view_name": "StyleView", 2899 | "description_width": "" 2900 | } 2901 | }, 2902 | "fa75dee6148d400eb308a1a074d347f8": { 2903 | "model_module": "@jupyter-widgets/base", 2904 | "model_name": "LayoutModel", 2905 | "model_module_version": "1.2.0", 2906 | "state": { 2907 | "_model_module": "@jupyter-widgets/base", 2908 | "_model_module_version": "1.2.0", 2909 | "_model_name": "LayoutModel", 2910 | "_view_count": null, 2911 | "_view_module": "@jupyter-widgets/base", 2912 | "_view_module_version": "1.2.0", 2913 | "_view_name": "LayoutView", 2914 | "align_content": null, 2915 | "align_items": null, 2916 | "align_self": null, 2917 | "border": null, 2918 | "bottom": null, 2919 | "display": null, 2920 | "flex": "2", 2921 | "flex_flow": null, 2922 | "grid_area": null, 2923 | "grid_auto_columns": null, 2924 | "grid_auto_flow": null, 2925 | "grid_auto_rows": null, 2926 | "grid_column": null, 2927 | "grid_gap": null, 2928 | "grid_row": null, 2929 | "grid_template_areas": null, 2930 | "grid_template_columns": null, 2931 | "grid_template_rows": null, 2932 | "height": null, 2933 | "justify_content": null, 2934 | "justify_items": null, 2935 | "left": null, 2936 | "margin": null, 2937 | "max_height": null, 2938 | "max_width": null, 2939 | "min_height": null, 2940 | "min_width": null, 2941 | "object_fit": null, 2942 | "object_position": null, 2943 | "order": null, 2944 | "overflow": null, 2945 | "overflow_x": null, 2946 | "overflow_y": null, 2947 | "padding": null, 2948 | "right": null, 2949 | "top": null, 2950 | "visibility": null, 2951 | "width": null 2952 | } 2953 | }, 2954 | "35c78d8f8a874b1f84c8ee9af7fd983a": { 2955 | "model_module": "@jupyter-widgets/controls", 2956 | "model_name": "ProgressStyleModel", 2957 | "model_module_version": "1.5.0", 2958 | "state": { 2959 | "_model_module": "@jupyter-widgets/controls", 2960 | "_model_module_version": "1.5.0", 2961 | "_model_name": "ProgressStyleModel", 2962 | "_view_count": null, 2963 | "_view_module": "@jupyter-widgets/base", 2964 | "_view_module_version": "1.2.0", 2965 | "_view_name": "StyleView", 2966 | "bar_color": null, 2967 | "description_width": "" 2968 | } 2969 | }, 2970 | "d139ecb729a8412186359f745633608d": { 2971 | "model_module": "@jupyter-widgets/base", 2972 | "model_name": "LayoutModel", 2973 | "model_module_version": "1.2.0", 2974 | "state": { 2975 | "_model_module": "@jupyter-widgets/base", 2976 | "_model_module_version": "1.2.0", 2977 | "_model_name": "LayoutModel", 2978 | "_view_count": null, 2979 | "_view_module": "@jupyter-widgets/base", 2980 | "_view_module_version": "1.2.0", 2981 | "_view_name": "LayoutView", 2982 | "align_content": null, 2983 | "align_items": null, 2984 | "align_self": null, 2985 | "border": null, 2986 | "bottom": null, 2987 | "display": null, 2988 | "flex": null, 2989 | "flex_flow": null, 2990 | "grid_area": null, 2991 | "grid_auto_columns": null, 2992 | "grid_auto_flow": null, 2993 | "grid_auto_rows": null, 2994 | "grid_column": null, 2995 | "grid_gap": null, 2996 | "grid_row": null, 2997 | "grid_template_areas": null, 2998 | "grid_template_columns": null, 2999 | "grid_template_rows": null, 3000 | "height": null, 3001 | "justify_content": null, 3002 | "justify_items": null, 3003 | "left": null, 3004 | "margin": null, 3005 | "max_height": null, 3006 | "max_width": null, 3007 | "min_height": null, 3008 | "min_width": null, 3009 | "object_fit": null, 3010 | "object_position": null, 3011 | "order": null, 3012 | "overflow": null, 3013 | "overflow_x": null, 3014 | "overflow_y": null, 3015 | "padding": null, 3016 | "right": null, 3017 | "top": null, 3018 | "visibility": null, 3019 | "width": null 3020 | } 3021 | }, 3022 | "cba0438ee33240c487effa861e7ef120": { 3023 | "model_module": "@jupyter-widgets/controls", 3024 | "model_name": "DescriptionStyleModel", 3025 | "model_module_version": "1.5.0", 3026 | "state": { 3027 | "_model_module": "@jupyter-widgets/controls", 3028 | "_model_module_version": "1.5.0", 3029 | "_model_name": "DescriptionStyleModel", 3030 | "_view_count": null, 3031 | "_view_module": "@jupyter-widgets/base", 3032 | "_view_module_version": "1.2.0", 3033 | "_view_name": "StyleView", 3034 | "description_width": "" 3035 | } 3036 | }, 3037 | "44c526d02a4e4ccc8a8ceba0f3048b62": { 3038 | "model_module": "@jupyter-widgets/controls", 3039 | "model_name": "HBoxModel", 3040 | "model_module_version": "1.5.0", 3041 | "state": { 3042 | "_dom_classes": [], 3043 | "_model_module": "@jupyter-widgets/controls", 3044 | "_model_module_version": "1.5.0", 3045 | "_model_name": "HBoxModel", 3046 | "_view_count": null, 3047 | "_view_module": "@jupyter-widgets/controls", 3048 | "_view_module_version": "1.5.0", 3049 | "_view_name": "HBoxView", 3050 | "box_style": "", 3051 | "children": [ 3052 | "IPY_MODEL_406deff2072444be8ff157c18a0a3db4", 3053 | "IPY_MODEL_79e5bab57f704e729df0e6fb154ca65e", 3054 | "IPY_MODEL_dbdc4d1ccbf347038c546871ce61c162" 3055 | ], 3056 | "layout": "IPY_MODEL_1245d881567d4a76ac1bd009d75e485b" 3057 | } 3058 | }, 3059 | "406deff2072444be8ff157c18a0a3db4": { 3060 | "model_module": "@jupyter-widgets/controls", 3061 | "model_name": "HTMLModel", 3062 | "model_module_version": "1.5.0", 3063 | "state": { 3064 | "_dom_classes": [], 3065 | "_model_module": "@jupyter-widgets/controls", 3066 | "_model_module_version": "1.5.0", 3067 | "_model_name": "HTMLModel", 3068 | "_view_count": null, 3069 | "_view_module": "@jupyter-widgets/controls", 3070 | "_view_module_version": "1.5.0", 3071 | "_view_name": "HTMLView", 3072 | "description": "", 3073 | "description_tooltip": null, 3074 | "layout": "IPY_MODEL_bc4a9355999047aa8f74658eefc57ac5", 3075 | "placeholder": "​", 3076 | "style": "IPY_MODEL_12cda2b1613a4acc808542ee5bbe61d2", 3077 | "value": "100%" 3078 | } 3079 | }, 3080 | "79e5bab57f704e729df0e6fb154ca65e": { 3081 | "model_module": "@jupyter-widgets/controls", 3082 | "model_name": "FloatProgressModel", 3083 | "model_module_version": "1.5.0", 3084 | "state": { 3085 | "_dom_classes": [], 3086 | "_model_module": "@jupyter-widgets/controls", 3087 | "_model_module_version": "1.5.0", 3088 | "_model_name": "FloatProgressModel", 3089 | "_view_count": null, 3090 | "_view_module": "@jupyter-widgets/controls", 3091 | "_view_module_version": "1.5.0", 3092 | "_view_name": "ProgressView", 3093 | "bar_style": "success", 3094 | "description": "", 3095 | "description_tooltip": null, 3096 | "layout": "IPY_MODEL_1a21df1ffde5404a9c4d6f26b5b48f80", 3097 | "max": 16, 3098 | "min": 0, 3099 | "orientation": "horizontal", 3100 | "style": "IPY_MODEL_69dbb3ac985f4ec58d309475bb7f6197", 3101 | "value": 16 3102 | } 3103 | }, 3104 | "dbdc4d1ccbf347038c546871ce61c162": { 3105 | "model_module": "@jupyter-widgets/controls", 3106 | "model_name": "HTMLModel", 3107 | "model_module_version": "1.5.0", 3108 | "state": { 3109 | "_dom_classes": [], 3110 | "_model_module": "@jupyter-widgets/controls", 3111 | "_model_module_version": "1.5.0", 3112 | "_model_name": "HTMLModel", 3113 | "_view_count": null, 3114 | "_view_module": "@jupyter-widgets/controls", 3115 | "_view_module_version": "1.5.0", 3116 | "_view_name": "HTMLView", 3117 | "description": "", 3118 | "description_tooltip": null, 3119 | "layout": "IPY_MODEL_0babb170cc3346b1bed2598728795253", 3120 | "placeholder": "​", 3121 | "style": "IPY_MODEL_8b2b275049f34f8f858229ac032badc7", 3122 | "value": " 16/16 [00:09<00:00,  1.65it/s]" 3123 | } 3124 | }, 3125 | "1245d881567d4a76ac1bd009d75e485b": { 3126 | "model_module": "@jupyter-widgets/base", 3127 | "model_name": "LayoutModel", 3128 | "model_module_version": "1.2.0", 3129 | "state": { 3130 | "_model_module": "@jupyter-widgets/base", 3131 | "_model_module_version": "1.2.0", 3132 | "_model_name": "LayoutModel", 3133 | "_view_count": null, 3134 | "_view_module": "@jupyter-widgets/base", 3135 | "_view_module_version": "1.2.0", 3136 | "_view_name": "LayoutView", 3137 | "align_content": null, 3138 | "align_items": null, 3139 | "align_self": null, 3140 | "border": null, 3141 | "bottom": null, 3142 | "display": "inline-flex", 3143 | "flex": null, 3144 | "flex_flow": "row wrap", 3145 | "grid_area": null, 3146 | "grid_auto_columns": null, 3147 | "grid_auto_flow": null, 3148 | "grid_auto_rows": null, 3149 | "grid_column": null, 3150 | "grid_gap": null, 3151 | "grid_row": null, 3152 | "grid_template_areas": null, 3153 | "grid_template_columns": null, 3154 | "grid_template_rows": null, 3155 | "height": null, 3156 | "justify_content": null, 3157 | "justify_items": null, 3158 | "left": null, 3159 | "margin": null, 3160 | "max_height": null, 3161 | "max_width": null, 3162 | "min_height": null, 3163 | "min_width": null, 3164 | "object_fit": null, 3165 | "object_position": null, 3166 | "order": null, 3167 | "overflow": null, 3168 | "overflow_x": null, 3169 | "overflow_y": null, 3170 | "padding": null, 3171 | "right": null, 3172 | "top": null, 3173 | "visibility": null, 3174 | "width": "100%" 3175 | } 3176 | }, 3177 | "bc4a9355999047aa8f74658eefc57ac5": { 3178 | "model_module": "@jupyter-widgets/base", 3179 | "model_name": "LayoutModel", 3180 | "model_module_version": "1.2.0", 3181 | "state": { 3182 | "_model_module": "@jupyter-widgets/base", 3183 | "_model_module_version": "1.2.0", 3184 | "_model_name": "LayoutModel", 3185 | "_view_count": null, 3186 | "_view_module": "@jupyter-widgets/base", 3187 | "_view_module_version": "1.2.0", 3188 | "_view_name": "LayoutView", 3189 | "align_content": null, 3190 | "align_items": null, 3191 | "align_self": null, 3192 | "border": null, 3193 | "bottom": null, 3194 | "display": null, 3195 | "flex": null, 3196 | "flex_flow": null, 3197 | "grid_area": null, 3198 | "grid_auto_columns": null, 3199 | "grid_auto_flow": null, 3200 | "grid_auto_rows": null, 3201 | "grid_column": null, 3202 | "grid_gap": null, 3203 | "grid_row": null, 3204 | "grid_template_areas": null, 3205 | "grid_template_columns": null, 3206 | "grid_template_rows": null, 3207 | "height": null, 3208 | "justify_content": null, 3209 | "justify_items": null, 3210 | "left": null, 3211 | "margin": null, 3212 | "max_height": null, 3213 | "max_width": null, 3214 | "min_height": null, 3215 | "min_width": null, 3216 | "object_fit": null, 3217 | "object_position": null, 3218 | "order": null, 3219 | "overflow": null, 3220 | "overflow_x": null, 3221 | "overflow_y": null, 3222 | "padding": null, 3223 | "right": null, 3224 | "top": null, 3225 | "visibility": null, 3226 | "width": null 3227 | } 3228 | }, 3229 | "12cda2b1613a4acc808542ee5bbe61d2": { 3230 | "model_module": "@jupyter-widgets/controls", 3231 | "model_name": "DescriptionStyleModel", 3232 | "model_module_version": "1.5.0", 3233 | "state": { 3234 | "_model_module": "@jupyter-widgets/controls", 3235 | "_model_module_version": "1.5.0", 3236 | "_model_name": "DescriptionStyleModel", 3237 | "_view_count": null, 3238 | "_view_module": "@jupyter-widgets/base", 3239 | "_view_module_version": "1.2.0", 3240 | "_view_name": "StyleView", 3241 | "description_width": "" 3242 | } 3243 | }, 3244 | "1a21df1ffde5404a9c4d6f26b5b48f80": { 3245 | "model_module": "@jupyter-widgets/base", 3246 | "model_name": "LayoutModel", 3247 | "model_module_version": "1.2.0", 3248 | "state": { 3249 | "_model_module": "@jupyter-widgets/base", 3250 | "_model_module_version": "1.2.0", 3251 | "_model_name": "LayoutModel", 3252 | "_view_count": null, 3253 | "_view_module": "@jupyter-widgets/base", 3254 | "_view_module_version": "1.2.0", 3255 | "_view_name": "LayoutView", 3256 | "align_content": null, 3257 | "align_items": null, 3258 | "align_self": null, 3259 | "border": null, 3260 | "bottom": null, 3261 | "display": null, 3262 | "flex": "2", 3263 | "flex_flow": null, 3264 | "grid_area": null, 3265 | "grid_auto_columns": null, 3266 | "grid_auto_flow": null, 3267 | "grid_auto_rows": null, 3268 | "grid_column": null, 3269 | "grid_gap": null, 3270 | "grid_row": null, 3271 | "grid_template_areas": null, 3272 | "grid_template_columns": null, 3273 | "grid_template_rows": null, 3274 | "height": null, 3275 | "justify_content": null, 3276 | "justify_items": null, 3277 | "left": null, 3278 | "margin": null, 3279 | "max_height": null, 3280 | "max_width": null, 3281 | "min_height": null, 3282 | "min_width": null, 3283 | "object_fit": null, 3284 | "object_position": null, 3285 | "order": null, 3286 | "overflow": null, 3287 | "overflow_x": null, 3288 | "overflow_y": null, 3289 | "padding": null, 3290 | "right": null, 3291 | "top": null, 3292 | "visibility": null, 3293 | "width": null 3294 | } 3295 | }, 3296 | "69dbb3ac985f4ec58d309475bb7f6197": { 3297 | "model_module": "@jupyter-widgets/controls", 3298 | "model_name": "ProgressStyleModel", 3299 | "model_module_version": "1.5.0", 3300 | "state": { 3301 | "_model_module": "@jupyter-widgets/controls", 3302 | "_model_module_version": "1.5.0", 3303 | "_model_name": "ProgressStyleModel", 3304 | "_view_count": null, 3305 | "_view_module": "@jupyter-widgets/base", 3306 | "_view_module_version": "1.2.0", 3307 | "_view_name": "StyleView", 3308 | "bar_color": null, 3309 | "description_width": "" 3310 | } 3311 | }, 3312 | "0babb170cc3346b1bed2598728795253": { 3313 | "model_module": "@jupyter-widgets/base", 3314 | "model_name": "LayoutModel", 3315 | "model_module_version": "1.2.0", 3316 | "state": { 3317 | "_model_module": "@jupyter-widgets/base", 3318 | "_model_module_version": "1.2.0", 3319 | "_model_name": "LayoutModel", 3320 | "_view_count": null, 3321 | "_view_module": "@jupyter-widgets/base", 3322 | "_view_module_version": "1.2.0", 3323 | "_view_name": "LayoutView", 3324 | "align_content": null, 3325 | "align_items": null, 3326 | "align_self": null, 3327 | "border": null, 3328 | "bottom": null, 3329 | "display": null, 3330 | "flex": null, 3331 | "flex_flow": null, 3332 | "grid_area": null, 3333 | "grid_auto_columns": null, 3334 | "grid_auto_flow": null, 3335 | "grid_auto_rows": null, 3336 | "grid_column": null, 3337 | "grid_gap": null, 3338 | "grid_row": null, 3339 | "grid_template_areas": null, 3340 | "grid_template_columns": null, 3341 | "grid_template_rows": null, 3342 | "height": null, 3343 | "justify_content": null, 3344 | "justify_items": null, 3345 | "left": null, 3346 | "margin": null, 3347 | "max_height": null, 3348 | "max_width": null, 3349 | "min_height": null, 3350 | "min_width": null, 3351 | "object_fit": null, 3352 | "object_position": null, 3353 | "order": null, 3354 | "overflow": null, 3355 | "overflow_x": null, 3356 | "overflow_y": null, 3357 | "padding": null, 3358 | "right": null, 3359 | "top": null, 3360 | "visibility": null, 3361 | "width": null 3362 | } 3363 | }, 3364 | "8b2b275049f34f8f858229ac032badc7": { 3365 | "model_module": "@jupyter-widgets/controls", 3366 | "model_name": "DescriptionStyleModel", 3367 | "model_module_version": "1.5.0", 3368 | "state": { 3369 | "_model_module": "@jupyter-widgets/controls", 3370 | "_model_module_version": "1.5.0", 3371 | "_model_name": "DescriptionStyleModel", 3372 | "_view_count": null, 3373 | "_view_module": "@jupyter-widgets/base", 3374 | "_view_module_version": "1.2.0", 3375 | "_view_name": "StyleView", 3376 | "description_width": "" 3377 | } 3378 | }, 3379 | "e7ca008ce8ca4d659d918adb6d801c3a": { 3380 | "model_module": "@jupyter-widgets/controls", 3381 | "model_name": "HBoxModel", 3382 | "model_module_version": "1.5.0", 3383 | "state": { 3384 | "_dom_classes": [], 3385 | "_model_module": "@jupyter-widgets/controls", 3386 | "_model_module_version": "1.5.0", 3387 | "_model_name": "HBoxModel", 3388 | "_view_count": null, 3389 | "_view_module": "@jupyter-widgets/controls", 3390 | "_view_module_version": "1.5.0", 3391 | "_view_name": "HBoxView", 3392 | "box_style": "", 3393 | "children": [ 3394 | "IPY_MODEL_0d9e005f6d9a43d9b6e0817a7da29fe1", 3395 | "IPY_MODEL_a8e26ade5f19471b8f7bada0d0fa0992", 3396 | "IPY_MODEL_954cdf24e128439e85cb713a714308e0" 3397 | ], 3398 | "layout": "IPY_MODEL_26160ed6b8bc45fc8f3c24077c4b47e7" 3399 | } 3400 | }, 3401 | "0d9e005f6d9a43d9b6e0817a7da29fe1": { 3402 | "model_module": "@jupyter-widgets/controls", 3403 | "model_name": "HTMLModel", 3404 | "model_module_version": "1.5.0", 3405 | "state": { 3406 | "_dom_classes": [], 3407 | "_model_module": "@jupyter-widgets/controls", 3408 | "_model_module_version": "1.5.0", 3409 | "_model_name": "HTMLModel", 3410 | "_view_count": null, 3411 | "_view_module": "@jupyter-widgets/controls", 3412 | "_view_module_version": "1.5.0", 3413 | "_view_name": "HTMLView", 3414 | "description": "", 3415 | "description_tooltip": null, 3416 | "layout": "IPY_MODEL_2bee186efbbc489aae07101939c02953", 3417 | "placeholder": "​", 3418 | "style": "IPY_MODEL_13d35f069c69446ba91e53df0858cdd3", 3419 | "value": "100%" 3420 | } 3421 | }, 3422 | "a8e26ade5f19471b8f7bada0d0fa0992": { 3423 | "model_module": "@jupyter-widgets/controls", 3424 | "model_name": "FloatProgressModel", 3425 | "model_module_version": "1.5.0", 3426 | "state": { 3427 | "_dom_classes": [], 3428 | "_model_module": "@jupyter-widgets/controls", 3429 | "_model_module_version": "1.5.0", 3430 | "_model_name": "FloatProgressModel", 3431 | "_view_count": null, 3432 | "_view_module": "@jupyter-widgets/controls", 3433 | "_view_module_version": "1.5.0", 3434 | "_view_name": "ProgressView", 3435 | "bar_style": "success", 3436 | "description": "", 3437 | "description_tooltip": null, 3438 | "layout": "IPY_MODEL_cb2a3803b4814a6ea7ce4e0b0f1e8bff", 3439 | "max": 16, 3440 | "min": 0, 3441 | "orientation": "horizontal", 3442 | "style": "IPY_MODEL_aa82c8e2500740a5906e80304eedcca9", 3443 | "value": 16 3444 | } 3445 | }, 3446 | "954cdf24e128439e85cb713a714308e0": { 3447 | "model_module": "@jupyter-widgets/controls", 3448 | "model_name": "HTMLModel", 3449 | "model_module_version": "1.5.0", 3450 | "state": { 3451 | "_dom_classes": [], 3452 | "_model_module": "@jupyter-widgets/controls", 3453 | "_model_module_version": "1.5.0", 3454 | "_model_name": "HTMLModel", 3455 | "_view_count": null, 3456 | "_view_module": "@jupyter-widgets/controls", 3457 | "_view_module_version": "1.5.0", 3458 | "_view_name": "HTMLView", 3459 | "description": "", 3460 | "description_tooltip": null, 3461 | "layout": "IPY_MODEL_0d7cb55684f146128c57da44db95ae5c", 3462 | "placeholder": "​", 3463 | "style": "IPY_MODEL_085a2bb9d5024835a4f834a4f251c9d7", 3464 | "value": " 16/16 [00:09<00:00,  1.54it/s]" 3465 | } 3466 | }, 3467 | "26160ed6b8bc45fc8f3c24077c4b47e7": { 3468 | "model_module": "@jupyter-widgets/base", 3469 | "model_name": "LayoutModel", 3470 | "model_module_version": "1.2.0", 3471 | "state": { 3472 | "_model_module": "@jupyter-widgets/base", 3473 | "_model_module_version": "1.2.0", 3474 | "_model_name": "LayoutModel", 3475 | "_view_count": null, 3476 | "_view_module": "@jupyter-widgets/base", 3477 | "_view_module_version": "1.2.0", 3478 | "_view_name": "LayoutView", 3479 | "align_content": null, 3480 | "align_items": null, 3481 | "align_self": null, 3482 | "border": null, 3483 | "bottom": null, 3484 | "display": "inline-flex", 3485 | "flex": null, 3486 | "flex_flow": "row wrap", 3487 | "grid_area": null, 3488 | "grid_auto_columns": null, 3489 | "grid_auto_flow": null, 3490 | "grid_auto_rows": null, 3491 | "grid_column": null, 3492 | "grid_gap": null, 3493 | "grid_row": null, 3494 | "grid_template_areas": null, 3495 | "grid_template_columns": null, 3496 | "grid_template_rows": null, 3497 | "height": null, 3498 | "justify_content": null, 3499 | "justify_items": null, 3500 | "left": null, 3501 | "margin": null, 3502 | "max_height": null, 3503 | "max_width": null, 3504 | "min_height": null, 3505 | "min_width": null, 3506 | "object_fit": null, 3507 | "object_position": null, 3508 | "order": null, 3509 | "overflow": null, 3510 | "overflow_x": null, 3511 | "overflow_y": null, 3512 | "padding": null, 3513 | "right": null, 3514 | "top": null, 3515 | "visibility": null, 3516 | "width": "100%" 3517 | } 3518 | }, 3519 | "2bee186efbbc489aae07101939c02953": { 3520 | "model_module": "@jupyter-widgets/base", 3521 | "model_name": "LayoutModel", 3522 | "model_module_version": "1.2.0", 3523 | "state": { 3524 | "_model_module": "@jupyter-widgets/base", 3525 | "_model_module_version": "1.2.0", 3526 | "_model_name": "LayoutModel", 3527 | "_view_count": null, 3528 | "_view_module": "@jupyter-widgets/base", 3529 | "_view_module_version": "1.2.0", 3530 | "_view_name": "LayoutView", 3531 | "align_content": null, 3532 | "align_items": null, 3533 | "align_self": null, 3534 | "border": null, 3535 | "bottom": null, 3536 | "display": null, 3537 | "flex": null, 3538 | "flex_flow": null, 3539 | "grid_area": null, 3540 | "grid_auto_columns": null, 3541 | "grid_auto_flow": null, 3542 | "grid_auto_rows": null, 3543 | "grid_column": null, 3544 | "grid_gap": null, 3545 | "grid_row": null, 3546 | "grid_template_areas": null, 3547 | "grid_template_columns": null, 3548 | "grid_template_rows": null, 3549 | "height": null, 3550 | "justify_content": null, 3551 | "justify_items": null, 3552 | "left": null, 3553 | "margin": null, 3554 | "max_height": null, 3555 | "max_width": null, 3556 | "min_height": null, 3557 | "min_width": null, 3558 | "object_fit": null, 3559 | "object_position": null, 3560 | "order": null, 3561 | "overflow": null, 3562 | "overflow_x": null, 3563 | "overflow_y": null, 3564 | "padding": null, 3565 | "right": null, 3566 | "top": null, 3567 | "visibility": null, 3568 | "width": null 3569 | } 3570 | }, 3571 | "13d35f069c69446ba91e53df0858cdd3": { 3572 | "model_module": "@jupyter-widgets/controls", 3573 | "model_name": "DescriptionStyleModel", 3574 | "model_module_version": "1.5.0", 3575 | "state": { 3576 | "_model_module": "@jupyter-widgets/controls", 3577 | "_model_module_version": "1.5.0", 3578 | "_model_name": "DescriptionStyleModel", 3579 | "_view_count": null, 3580 | "_view_module": "@jupyter-widgets/base", 3581 | "_view_module_version": "1.2.0", 3582 | "_view_name": "StyleView", 3583 | "description_width": "" 3584 | } 3585 | }, 3586 | "cb2a3803b4814a6ea7ce4e0b0f1e8bff": { 3587 | "model_module": "@jupyter-widgets/base", 3588 | "model_name": "LayoutModel", 3589 | "model_module_version": "1.2.0", 3590 | "state": { 3591 | "_model_module": "@jupyter-widgets/base", 3592 | "_model_module_version": "1.2.0", 3593 | "_model_name": "LayoutModel", 3594 | "_view_count": null, 3595 | "_view_module": "@jupyter-widgets/base", 3596 | "_view_module_version": "1.2.0", 3597 | "_view_name": "LayoutView", 3598 | "align_content": null, 3599 | "align_items": null, 3600 | "align_self": null, 3601 | "border": null, 3602 | "bottom": null, 3603 | "display": null, 3604 | "flex": "2", 3605 | "flex_flow": null, 3606 | "grid_area": null, 3607 | "grid_auto_columns": null, 3608 | "grid_auto_flow": null, 3609 | "grid_auto_rows": null, 3610 | "grid_column": null, 3611 | "grid_gap": null, 3612 | "grid_row": null, 3613 | "grid_template_areas": null, 3614 | "grid_template_columns": null, 3615 | "grid_template_rows": null, 3616 | "height": null, 3617 | "justify_content": null, 3618 | "justify_items": null, 3619 | "left": null, 3620 | "margin": null, 3621 | "max_height": null, 3622 | "max_width": null, 3623 | "min_height": null, 3624 | "min_width": null, 3625 | "object_fit": null, 3626 | "object_position": null, 3627 | "order": null, 3628 | "overflow": null, 3629 | "overflow_x": null, 3630 | "overflow_y": null, 3631 | "padding": null, 3632 | "right": null, 3633 | "top": null, 3634 | "visibility": null, 3635 | "width": null 3636 | } 3637 | }, 3638 | "aa82c8e2500740a5906e80304eedcca9": { 3639 | "model_module": "@jupyter-widgets/controls", 3640 | "model_name": "ProgressStyleModel", 3641 | "model_module_version": "1.5.0", 3642 | "state": { 3643 | "_model_module": "@jupyter-widgets/controls", 3644 | "_model_module_version": "1.5.0", 3645 | "_model_name": "ProgressStyleModel", 3646 | "_view_count": null, 3647 | "_view_module": "@jupyter-widgets/base", 3648 | "_view_module_version": "1.2.0", 3649 | "_view_name": "StyleView", 3650 | "bar_color": null, 3651 | "description_width": "" 3652 | } 3653 | }, 3654 | "0d7cb55684f146128c57da44db95ae5c": { 3655 | "model_module": "@jupyter-widgets/base", 3656 | "model_name": "LayoutModel", 3657 | "model_module_version": "1.2.0", 3658 | "state": { 3659 | "_model_module": "@jupyter-widgets/base", 3660 | "_model_module_version": "1.2.0", 3661 | "_model_name": "LayoutModel", 3662 | "_view_count": null, 3663 | "_view_module": "@jupyter-widgets/base", 3664 | "_view_module_version": "1.2.0", 3665 | "_view_name": "LayoutView", 3666 | "align_content": null, 3667 | "align_items": null, 3668 | "align_self": null, 3669 | "border": null, 3670 | "bottom": null, 3671 | "display": null, 3672 | "flex": null, 3673 | "flex_flow": null, 3674 | "grid_area": null, 3675 | "grid_auto_columns": null, 3676 | "grid_auto_flow": null, 3677 | "grid_auto_rows": null, 3678 | "grid_column": null, 3679 | "grid_gap": null, 3680 | "grid_row": null, 3681 | "grid_template_areas": null, 3682 | "grid_template_columns": null, 3683 | "grid_template_rows": null, 3684 | "height": null, 3685 | "justify_content": null, 3686 | "justify_items": null, 3687 | "left": null, 3688 | "margin": null, 3689 | "max_height": null, 3690 | "max_width": null, 3691 | "min_height": null, 3692 | "min_width": null, 3693 | "object_fit": null, 3694 | "object_position": null, 3695 | "order": null, 3696 | "overflow": null, 3697 | "overflow_x": null, 3698 | "overflow_y": null, 3699 | "padding": null, 3700 | "right": null, 3701 | "top": null, 3702 | "visibility": null, 3703 | "width": null 3704 | } 3705 | }, 3706 | "085a2bb9d5024835a4f834a4f251c9d7": { 3707 | "model_module": "@jupyter-widgets/controls", 3708 | "model_name": "DescriptionStyleModel", 3709 | "model_module_version": "1.5.0", 3710 | "state": { 3711 | "_model_module": "@jupyter-widgets/controls", 3712 | "_model_module_version": "1.5.0", 3713 | "_model_name": "DescriptionStyleModel", 3714 | "_view_count": null, 3715 | "_view_module": "@jupyter-widgets/base", 3716 | "_view_module_version": "1.2.0", 3717 | "_view_name": "StyleView", 3718 | "description_width": "" 3719 | } 3720 | } 3721 | } 3722 | } 3723 | }, 3724 | "nbformat": 4, 3725 | "nbformat_minor": 0 3726 | } --------------------------------------------------------------------------------