diff --git "a/E_Commerce_Category_Classification.ipynb" "b/E_Commerce_Category_Classification.ipynb"
new file mode 100644--- /dev/null
+++ "b/E_Commerce_Category_Classification.ipynb"
@@ -0,0 +1,2647 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "DRi1KwDDZz3a"
+ },
+ "source": [
+ "# Downloading The Data\n",
+ "The data for this project is Downloaded from kaggle(A Famous platform for Data Sience), If you want to reproduce this note book follow the steps explained in [this article](https://www.analyticsvidhya.com/blog/2021/06/how-to-load-kaggle-datasets-directly-into-google-colab/) .\n",
+ "\n",
+ "After downloading your kaggle credentials, upload the kaggle.json file to your google drive in a folder called kaggle."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "eTNtUJkEaJXk"
+ },
+ "outputs": [],
+ "source": [
+ "from google.colab import drive\n",
+ "drive.mount('/content/gdrive')\n",
+ "\n",
+ "!cp '/content/gdrive/My Drive/Kaggle/kaggle.json' kaggle.json\n",
+ "\n",
+ "! pip install kaggle\n",
+ "! mkdir ~/.kaggle\n",
+ "! cp kaggle.json ~/.kaggle/\n",
+ "! chmod 600 ~/.kaggle/kaggle.json\n",
+ "\n",
+ "! kaggle datasets download -d saurabhshahane/ecommerce-text-classification"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "KZ_HtjFDpUsL"
+ },
+ "outputs": [],
+ "source": [
+ "! unzip /content/ecommerce-text-classification.zip -d /content/data"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Introduction\n",
+ "In this note book we will fine tune a text classification **Bert** model on an **Ecomerce category data**.\n",
+ "We have 4 Categories, **Electronics**, **Household**, **Books** and **Clothing & Accessories**.\n",
+ "\n",
+ "### Metrics\n",
+ "We'll use **Precision**, **Recall**, **F1-score** and **Accuracy**.\n",
+ "\n",
+ "### Strategy Overview\n",
+ "The main library used in this notebook is **transormers** form **Hugging Face**, The framework is **TensorFlow** and we are fine tuning the **distilbert-base-uncased** model form **Hugging Face** which is a text classification model."
+ ],
+ "metadata": {
+ "id": "cPuZWyvwhhbF"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Packages"
+ ],
+ "metadata": {
+ "id": "SHFaGM2ff-3X"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "We'll install Theses packages:\n",
+ "\n",
+ "\n",
+ "* **datasets** for importing the data to transformers.\n",
+ "* **transformers** that provides a variety of NLP functionality.\n",
+ "* **evaluate** for model evalution.\n",
+ "* **seqeval** for the metrics used for evaluation.\n",
+ "* **seaborn** for data visualisation.\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "metadata": {
+ "id": "LvkcQ8AmgChy"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "ODGTcxKabJtK"
+ },
+ "outputs": [],
+ "source": [
+ "! pip install datasets\n",
+ "! pip install transformers\n",
+ "! pip install evaluate\n",
+ "! pip install seqeval"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "import tensorflow as tf\n",
+ "import pandas as pd\n",
+ "import matplotlib.pyplot as plt\n",
+ "import seaborn as sns"
+ ],
+ "metadata": {
+ "id": "4IlTLKSKg4Cx"
+ },
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Data Preprocessing"
+ ],
+ "metadata": {
+ "id": "OFFqNJbsN8Dj"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Missing Values"
+ ],
+ "metadata": {
+ "id": "3KcEvH4Re2Uh"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Our data has 2 columns, **label** and **text**."
+ ],
+ "metadata": {
+ "id": "xVDTZdnCNywQ"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "dataset_df = pd.read_csv(\"/content/data/ecommerceDataset.csv\")\n",
+ "dataset_df = pd.DataFrame({'label': dataset_df.iloc[:,0] , 'text': dataset_df.iloc[:,1]})\n",
+ "dataset_df.head()"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 206
+ },
+ "id": "j1071yyIN6lw",
+ "outputId": "0aef50ae-7393-4e48-fe4e-8a4bea2d7215"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " label text\n",
+ "0 Household SAF 'Floral' Framed Painting (Wood, 30 inch x ...\n",
+ "1 Household SAF 'UV Textured Modern Art Print Framed' Pain...\n",
+ "2 Household SAF Flower Print Framed Painting (Synthetic, 1...\n",
+ "3 Household Incredible Gifts India Wooden Happy Birthday U...\n",
+ "4 Household Pitaara Box Romantic Venice Canvas Painting 6m..."
+ ],
+ "text/html": [
+ "\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " label \n",
+ " text \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " Household \n",
+ " SAF 'Floral' Framed Painting (Wood, 30 inch x ... \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " Household \n",
+ " SAF 'UV Textured Modern Art Print Framed' Pain... \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " Household \n",
+ " SAF Flower Print Framed Painting (Synthetic, 1... \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " Household \n",
+ " Incredible Gifts India Wooden Happy Birthday U... \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " Household \n",
+ " Pitaara Box Romantic Venice Canvas Painting 6m... \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ "
\n",
+ "
\n",
+ " "
+ ]
+ },
+ "metadata": {},
+ "execution_count": 21
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Let's see how much of our data is missing."
+ ],
+ "metadata": {
+ "id": "N0zflXUEOGOD"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "u_8qypcicIBr",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 281
+ },
+ "outputId": "9ccfa94e-86c4-44a1-e550-c969c8bccdf6"
+ },
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "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\n"
+ },
+ "metadata": {
+ "needs_background": "light"
+ }
+ }
+ ],
+ "source": [
+ "\n",
+ "dataset_df.isna().value_counts().plot(kind='barh', title='Bar plot for missing values.')\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "As we can see, there's just one missing value so will simply drop it."
+ ],
+ "metadata": {
+ "id": "qnqWeSCNNfem"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "dataset_df.dropna(inplace=True)"
+ ],
+ "metadata": {
+ "id": "PdsqnQhWK4wJ"
+ },
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Data Transformation"
+ ],
+ "metadata": {
+ "id": "gREgDKDwhuAE"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "In this task we have 4 Categories, **Electronics**, **Household**, **Books** and **Clothing & Accessories**. We'll encode the categorical variable **label** using label encoding. \n",
+ "\n",
+ "\n"
+ ],
+ "metadata": {
+ "id": "A-xsEQwLObgI"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "mapping = {\"Electronics\": 0, \"Household\": 1, \"Books\": 2, \"Clothing & Accessories\": 3}\n",
+ "dataset_df.replace(mapping, inplace=True)"
+ ],
+ "metadata": {
+ "id": "RacWZaP3hNd_"
+ },
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Now we'll use the **datasets** library to convert the data to a **transformers** compatible format. also we'll split the data to **train** and **test** splits, the **test** split is 30% of the total data."
+ ],
+ "metadata": {
+ "id": "kLpgMF5fPGzJ"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "xZVOPl-iKEmh"
+ },
+ "outputs": [],
+ "source": [
+ "from datasets import Dataset\n",
+ "dataset = Dataset.from_pandas(dataset_df, split='train')\n",
+ "dataset = dataset.train_test_split(test_size=0.3)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Let's take a look at an example from the train set."
+ ],
+ "metadata": {
+ "id": "bD4yHqmzeWtU"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "VwRGbTEBgseQ",
+ "outputId": "b312479b-01c8-4fb0-89bf-2af22a162df8"
+ },
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "{'label': 1,\n",
+ " 'text': 'SEECO SE-2001C Rear Footrest for Royal Bullet Classic SEECO SE-2001C Rear Footrest for Royal Bullet Classic.',\n",
+ " '__index_level_0__': 2730}"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 26
+ }
+ ],
+ "source": [
+ "dataset['train'][1000]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Now we'll use the appropriate Tokenizer and Collator for our task. padding is also required for batching."
+ ],
+ "metadata": {
+ "id": "T1CE70HbPrRt"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "PKdFpTO-hmbV",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 81,
+ "referenced_widgets": [
+ "a104262d43954832b39f358f201c113b",
+ "a373ca4f2548466f94a717c02d3d3a03",
+ "108d7b482e4841549eb1d665389c95aa",
+ "c9cbf60a26444ed093af95e3401212ca",
+ "4b36fe3afe3745c6b3604789dcd394d9",
+ "6aa019c6a4fa4351b4a59b7f0745a99c",
+ "7c61ad527a184364af7b2ff5ef9678ae",
+ "7acfae07c26142feb18f3822e7fee982",
+ "2df2b76b7fa3493e91be7686990f5906",
+ "06d345ff4bcc495e886f55041e85f51e",
+ "808c04a3cb96411198f428df77ed170d",
+ "f2082105e72c4cd8a9a39d3c6aeb5514",
+ "4a7f6763d3124ea3bed7d39d35215c08",
+ "909a539d091e4345b22c80c084703515",
+ "f9e59832311241728c56d0fbb296d6fe",
+ "035c67a6fc784317b2b96a3f141d4088",
+ "ab11ed7eab414e94b11c4ca2f114e4b8",
+ "bc2dce4c8dde4261a07238d26c3b6a72",
+ "fa5f04cced5240099883c6028f24e964",
+ "8ee9843a3eee4b63b4996ca2f1d33b01",
+ "1f8e044c1edd4f459284073509a9e8ea",
+ "f7c894bab65a450b935f7a2d187539e0"
+ ]
+ },
+ "outputId": "0d9bd069-6b12-48fd-9168-4898ab63bf4f"
+ },
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " 0%| | 0/36 [00:00, ?ba/s]"
+ ],
+ "application/vnd.jupyter.widget-view+json": {
+ "version_major": 2,
+ "version_minor": 0,
+ "model_id": "a104262d43954832b39f358f201c113b"
+ }
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " 0%| | 0/16 [00:00, ?ba/s]"
+ ],
+ "application/vnd.jupyter.widget-view+json": {
+ "version_major": 2,
+ "version_minor": 0,
+ "model_id": "f2082105e72c4cd8a9a39d3c6aeb5514"
+ }
+ },
+ "metadata": {}
+ }
+ ],
+ "source": [
+ "from transformers import AutoTokenizer\n",
+ "from transformers import DataCollatorWithPadding\n",
+ "\n",
+ "tokenizer = AutoTokenizer.from_pretrained(\"distilbert-base-uncased\")\n",
+ "\n",
+ "def preprocess_function(examples):\n",
+ " return tokenizer(examples[\"text\"], truncation=True)\n",
+ "\n",
+ "tokenized_ds = dataset.map(preprocess_function, batched=True)\n",
+ "data_collator = DataCollatorWithPadding(tokenizer=tokenizer, return_tensors=\"tf\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Model Definition And Training"
+ ],
+ "metadata": {
+ "id": "t7FvRYoVQCc3"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "In this notebook we'll use the **distilbert-base-uncased** model from **Hugging Face**."
+ ],
+ "metadata": {
+ "id": "0jWUFcQ_TeRk"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "from transformers import TFAutoModelForSequenceClassification\n",
+ "\n",
+ "model = TFAutoModelForSequenceClassification.from_pretrained(\"distilbert-base-uncased\", num_labels=4)\n",
+ "\n",
+ "id2label = {0: \"Electronics\", 1: \"Household\", 2: \"Books\", 3: \"Clothing & Accessories\"}\n",
+ "label2id = {\"Electronics\": 0, \"Household\": 1, \"Books\": 2, \"Clothing & Accessories\": 3}\n",
+ "\n",
+ "model = TFAutoModelForSequenceClassification.from_pretrained(\n",
+ " \"distilbert-base-uncased\", num_labels=4, id2label=id2label, label2id=label2id\n",
+ ")"
+ ],
+ "metadata": {
+ "id": "CsQt19u7OWws"
+ },
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Now we prepare the data using the data collator."
+ ],
+ "metadata": {
+ "id": "hkDCyrBSTxI_"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "tf_train_set = model.prepare_tf_dataset(\n",
+ " tokenized_ds[\"train\"],\n",
+ " shuffle=True,\n",
+ " batch_size=16,\n",
+ " collate_fn=data_collator,\n",
+ ")\n",
+ "\n",
+ "tf_validation_set = model.prepare_tf_dataset(\n",
+ " tokenized_ds[\"test\"],\n",
+ " shuffle=False,\n",
+ " batch_size=16,\n",
+ " collate_fn=data_collator,\n",
+ ")"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "lY5DFAdaTaGu",
+ "outputId": "4fc8fa92-7c74-423e-9bae-b274a76392fd"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stderr",
+ "text": [
+ "You're using a DistilBertTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Now we'll create the optimzer and we'll be ready to compile our model."
+ ],
+ "metadata": {
+ "id": "XRq0uebYT8U6"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "from transformers import create_optimizer\n",
+ "\n",
+ "batch_size = 16\n",
+ "num_epochs = 5\n",
+ "batches_per_epoch = len(tokenized_ds[\"train\"]) // batch_size\n",
+ "total_train_steps = int(batches_per_epoch * num_epochs)\n",
+ "optimizer, schedule = create_optimizer(init_lr=2e-5, num_warmup_steps=0, num_train_steps=total_train_steps)\n",
+ "\n",
+ "model.compile(optimizer=optimizer)"
+ ],
+ "metadata": {
+ "id": "M6HRna5jObIS",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "outputId": "f116f95f-ff7b-43bb-a37f-92a4e634c81d"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stderr",
+ "text": [
+ "No loss specified in compile() - the model's internal loss computation will be used as the loss. Don't panic - this is a common way to train TensorFlow models in Transformers! To disable this behaviour please pass a loss argument, or explicitly pass `loss=None` if you do not want your model to compute a loss.\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "It's time for training our model, but first we need to login to **Hugging Face** so we can push our model."
+ ],
+ "metadata": {
+ "id": "ci30MXkpZsji"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "from huggingface_hub import notebook_login\n",
+ "\n",
+ "notebook_login()"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 331,
+ "referenced_widgets": [
+ "85fae21cbbdf4dd1bd466356c35370e3",
+ "d8f7d4642791474f9d9278beaf77c980",
+ "c7a217c50ce24f9598338a17f6d76865",
+ "686d29b40b1247ec9d5b7273db83a893",
+ "ecdabeee65684707b5c4f455d67a0ace",
+ "06d647d92a4f484faf37fb940ad0e00b",
+ "7142cfeafe2343fb8cfb07742768f44e",
+ "049983ddf3c64b208c6332ba2361e58c",
+ "24d5ded9f8ad4429a97c7288f7d5bb2b",
+ "bc30b6e3a7f346639505cc466a11ccc5",
+ "cd859ba94c89478eba9a92db90a2b94c",
+ "238afda0c11d47baae046947900fa26e",
+ "1e497012b6914a1a9560a3362e1590a5",
+ "9597c30d61ea48d09dedc2fc6c376b7e",
+ "415c8799936f494695dcc5b5bdeb7f56",
+ "dc8e86ff0a7f46d199a3e9aeafdf3e13",
+ "26e8928d782349d0a6ff644ceb643ec8"
+ ]
+ },
+ "id": "xCR_gJHPsgXg",
+ "outputId": "185ee086-de88-4208-aa07-2fb6eb53d735"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Token is valid.\n",
+ "Your token has been saved in your configured git credential helpers (store).\n",
+ "Your token has been saved to /root/.cache/huggingface/token\n",
+ "Login successful\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "Q2UxsJExuTgd"
+ },
+ "outputs": [],
+ "source": [
+ "from transformers.keras_callbacks import PushToHubCallback\n",
+ "\n",
+ "callback = PushToHubCallback(output_dir=\"e-comerce-category-classification\"\n",
+ " , tokenizer=tokenizer\n",
+ " )\n",
+ "\n",
+ "model.fit(x=tf_train_set, \n",
+ " validation_data=tf_validation_set,\n",
+ " callbacks=[callback],\n",
+ " epochs=3)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Let's test our model with a simple example."
+ ],
+ "metadata": {
+ "id": "w0_sIaAkZzW-"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 36
+ },
+ "id": "lGUtCP9zNVSP",
+ "outputId": "616fc249-0e28-42d1-96d4-948e30ada590"
+ },
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "'Electronics'"
+ ],
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "type": "string"
+ }
+ },
+ "metadata": {},
+ "execution_count": 42
+ }
+ ],
+ "source": [
+ "inputs = tokenizer('I want to sell a laptop')\n",
+ "model_inputs = tf.constant(inputs['input_ids'])\n",
+ "outputs = model(model_inputs)\n",
+ "\n",
+ "predictions = tf.math.softmax(outputs.logits, axis=-1)\n",
+ "model.config.id2label[tf.math.argmax(tf.squeeze(predictions)).numpy()]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "I will save the weights for the future in my google drive."
+ ],
+ "metadata": {
+ "id": "bKmV1Du7Z4YU"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "eU3QbPWqRrfF"
+ },
+ "outputs": [],
+ "source": [
+ "model.save_pretrained(\"/content/saved_model\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "yKhmaCwMSA4k",
+ "outputId": "7a85c90f-f328-4f24-b94a-551143e0547d"
+ },
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Drive already mounted at /content/gdrive; to attempt to forcibly remount, call drive.mount(\"/content/gdrive\", force_remount=True).\n"
+ ]
+ }
+ ],
+ "source": [
+ "from google.colab import drive\n",
+ "drive.mount('/content/gdrive')\n",
+ "\n",
+ "!cp '/content/saved_model.zip' /content/gdrive/MyDrive/saved_models"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "4x53a0kOgpaF"
+ },
+ "source": [
+ "# Evaluation"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Let's copy our wieghts form my google drive."
+ ],
+ "metadata": {
+ "id": "XEJYbWbLaAqY"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "h1plBeEVU3sl"
+ },
+ "outputs": [],
+ "source": [
+ "from google.colab import drive\n",
+ "drive.mount('/content/gdrive')\n",
+ "\n",
+ "!cp '/content/gdrive/MyDrive/saved_models/saved_model.zip' /content"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "eaKXca1jVz3I"
+ },
+ "outputs": [],
+ "source": [
+ "! unzip /content/saved_model.zip -d /content/model"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here, We're loading the weights to our model."
+ ],
+ "metadata": {
+ "id": "WmQmNmxGUesI"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "4jAEFk77W9VG",
+ "outputId": "6744cf36-04b9-4b49-d524-4e2a593907c6"
+ },
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stderr",
+ "text": [
+ "Some layers from the model checkpoint at /content/model were not used when initializing TFDistilBertForSequenceClassification: ['dropout_39']\n",
+ "- This IS expected if you are initializing TFDistilBertForSequenceClassification from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).\n",
+ "- This IS NOT expected if you are initializing TFDistilBertForSequenceClassification from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).\n",
+ "Some layers of TFDistilBertForSequenceClassification were not initialized from the model checkpoint at /content/model and are newly initialized: ['dropout_119']\n",
+ "You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.\n"
+ ]
+ }
+ ],
+ "source": [
+ "model = model.from_pretrained('/content/model')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "We have trained our model, and now we are ready for the **Evaluation**."
+ ],
+ "metadata": {
+ "id": "0UIeNalKU3-2"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "import evaluate\n",
+ "\n",
+ "metric = evaluate.load(\"seqeval\")"
+ ],
+ "metadata": {
+ "id": "UmpV35HZAJWV",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 49,
+ "referenced_widgets": [
+ "8e16d263cdb44f67a16da316ad96e386",
+ "47e90e19d0fa444684f3471781f7a6e3",
+ "51ada4e3d6d24ba881f1c1406becd311",
+ "de50e0f6b7a44481a959faab5f853397",
+ "6407dbe823c346b0812114e2a0019045",
+ "1551e6fc0a4e45edac9735fdbd033323",
+ "695e43ab2fea441b8e8182700bc5f995",
+ "31f747d987b14f95875aa37478373630",
+ "5c784f85c4c34da9aeb869b15e599454",
+ "8de399c31cad4345b758c8b00729f34e",
+ "0aadd91ba84b433e85fc97840dbeee03"
+ ]
+ },
+ "outputId": "1aa9cf11-e3c4-44ce-bbc0-b60d87e88887"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ "Downloading builder script: 0%| | 0.00/6.34k [00:00, ?B/s]"
+ ],
+ "application/vnd.jupyter.widget-view+json": {
+ "version_major": 2,
+ "version_minor": 0,
+ "model_id": "8e16d263cdb44f67a16da316ad96e386"
+ }
+ },
+ "metadata": {}
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "We'll simply use our model to predict the labels for the test set. then we'll use **precision**, **recall**, **f1-score** and **accuracy** to evaluate our model."
+ ],
+ "metadata": {
+ "id": "6sWJ8AZKVDKt"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "YF1dg2upijJH",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "outputId": "c56e3d20-4592-4b9f-b1fe-4944bd5284bc"
+ },
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stderr",
+ "text": [
+ "/usr/local/lib/python3.8/dist-packages/seqeval/metrics/sequence_labeling.py:171: UserWarning: Household seems not to be NE tag.\n",
+ " warnings.warn('{} seems not to be NE tag.'.format(chunk))\n",
+ "/usr/local/lib/python3.8/dist-packages/seqeval/metrics/sequence_labeling.py:171: UserWarning: Clothing & Accessories seems not to be NE tag.\n",
+ " warnings.warn('{} seems not to be NE tag.'.format(chunk))\n",
+ "/usr/local/lib/python3.8/dist-packages/seqeval/metrics/sequence_labeling.py:171: UserWarning: Books seems not to be NE tag.\n",
+ " warnings.warn('{} seems not to be NE tag.'.format(chunk))\n",
+ "/usr/local/lib/python3.8/dist-packages/seqeval/metrics/sequence_labeling.py:171: UserWarning: Electronics seems not to be NE tag.\n",
+ " warnings.warn('{} seems not to be NE tag.'.format(chunk))\n"
+ ]
+ },
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "{'lectronics': {'precision': 0.9801796221740476,\n",
+ " 'recall': 0.9912308174130912,\n",
+ " 'f1': 0.9856742447835565,\n",
+ " 'number': 3193},\n",
+ " 'lothing & Accessories': {'precision': 0.989843028624192,\n",
+ " 'recall': 0.9912159038372631,\n",
+ " 'f1': 0.9905289905289906,\n",
+ " 'number': 2163},\n",
+ " 'ooks': {'precision': 0.9959862385321101,\n",
+ " 'recall': 0.9866515194547004,\n",
+ " 'f1': 0.9912969039805964,\n",
+ " 'number': 3521},\n",
+ " 'ousehold': {'precision': 0.9735228539576366,\n",
+ " 'recall': 0.9710870169585766,\n",
+ " 'f1': 0.9723034098816979,\n",
+ " 'number': 3597},\n",
+ " 'overall_precision': 0.9843637238393071,\n",
+ " 'overall_recall': 0.9841269841269841,\n",
+ " 'overall_f1': 0.9842453397474443,\n",
+ " 'overall_accuracy': 0.990348383684802}"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 49
+ }
+ ],
+ "source": [
+ "import numpy as np\n",
+ "\n",
+ "all_predictions = []\n",
+ "all_labels = []\n",
+ "\n",
+ "for batch in tf_validation_set:\n",
+ " logits = model.predict_on_batch(batch)[\"logits\"]\n",
+ " labels = batch[1]\n",
+ " predictions = np.argmax(logits, axis=-1)\n",
+ " for prediction, label in zip(predictions, labels):\n",
+ " all_predictions.append(id2label[prediction])\n",
+ " all_labels.append(id2label[label.numpy()])\n",
+ "\n",
+ "metric.compute(predictions=[all_predictions], references=[all_labels])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Conclusion\n",
+ "We had pretty good results in this notebook. all the metrics are above 98%."
+ ],
+ "metadata": {
+ "id": "0V66jZq6PV8K"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "| Syntax | Description |\n",
+ "| ----------- | ----------- |\n",
+ "| Precision | 0.98 |\n",
+ "| Recall | 0.98 |\n",
+ "| F1-score | 0.98 |\n",
+ "| Accuracy | 0.99 |"
+ ],
+ "metadata": {
+ "id": "gTEl73H_Y05N"
+ }
+ }
+ ],
+ "metadata": {
+ "accelerator": "GPU",
+ "colab": {
+ "provenance": []
+ },
+ "gpuClass": "standard",
+ "kernelspec": {
+ "display_name": "Python 3",
+ "name": "python3"
+ },
+ "language_info": {
+ "name": "python"
+ },
+ "widgets": {
+ "application/vnd.jupyter.widget-state+json": {
+ "a104262d43954832b39f358f201c113b": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HBoxModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HBoxModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HBoxView",
+ "box_style": "",
+ "children": [
+ "IPY_MODEL_a373ca4f2548466f94a717c02d3d3a03",
+ "IPY_MODEL_108d7b482e4841549eb1d665389c95aa",
+ "IPY_MODEL_c9cbf60a26444ed093af95e3401212ca"
+ ],
+ "layout": "IPY_MODEL_4b36fe3afe3745c6b3604789dcd394d9"
+ }
+ },
+ "a373ca4f2548466f94a717c02d3d3a03": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_6aa019c6a4fa4351b4a59b7f0745a99c",
+ "placeholder": "",
+ "style": "IPY_MODEL_7c61ad527a184364af7b2ff5ef9678ae",
+ "value": "100%"
+ }
+ },
+ "108d7b482e4841549eb1d665389c95aa": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "FloatProgressModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "FloatProgressModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "ProgressView",
+ "bar_style": "success",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_7acfae07c26142feb18f3822e7fee982",
+ "max": 36,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_2df2b76b7fa3493e91be7686990f5906",
+ "value": 36
+ }
+ },
+ "c9cbf60a26444ed093af95e3401212ca": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_06d345ff4bcc495e886f55041e85f51e",
+ "placeholder": "",
+ "style": "IPY_MODEL_808c04a3cb96411198f428df77ed170d",
+ "value": " 36/36 [00:18<00:00, 1.72ba/s]"
+ }
+ },
+ "4b36fe3afe3745c6b3604789dcd394d9": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "6aa019c6a4fa4351b4a59b7f0745a99c": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "7c61ad527a184364af7b2ff5ef9678ae": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "7acfae07c26142feb18f3822e7fee982": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "2df2b76b7fa3493e91be7686990f5906": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "ProgressStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "ProgressStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "bar_color": null,
+ "description_width": ""
+ }
+ },
+ "06d345ff4bcc495e886f55041e85f51e": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "808c04a3cb96411198f428df77ed170d": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "f2082105e72c4cd8a9a39d3c6aeb5514": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HBoxModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HBoxModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HBoxView",
+ "box_style": "",
+ "children": [
+ "IPY_MODEL_4a7f6763d3124ea3bed7d39d35215c08",
+ "IPY_MODEL_909a539d091e4345b22c80c084703515",
+ "IPY_MODEL_f9e59832311241728c56d0fbb296d6fe"
+ ],
+ "layout": "IPY_MODEL_035c67a6fc784317b2b96a3f141d4088"
+ }
+ },
+ "4a7f6763d3124ea3bed7d39d35215c08": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_ab11ed7eab414e94b11c4ca2f114e4b8",
+ "placeholder": "",
+ "style": "IPY_MODEL_bc2dce4c8dde4261a07238d26c3b6a72",
+ "value": "100%"
+ }
+ },
+ "909a539d091e4345b22c80c084703515": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "FloatProgressModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "FloatProgressModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "ProgressView",
+ "bar_style": "success",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_fa5f04cced5240099883c6028f24e964",
+ "max": 16,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_8ee9843a3eee4b63b4996ca2f1d33b01",
+ "value": 16
+ }
+ },
+ "f9e59832311241728c56d0fbb296d6fe": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_1f8e044c1edd4f459284073509a9e8ea",
+ "placeholder": "",
+ "style": "IPY_MODEL_f7c894bab65a450b935f7a2d187539e0",
+ "value": " 16/16 [00:10<00:00, 1.76ba/s]"
+ }
+ },
+ "035c67a6fc784317b2b96a3f141d4088": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "ab11ed7eab414e94b11c4ca2f114e4b8": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "bc2dce4c8dde4261a07238d26c3b6a72": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "fa5f04cced5240099883c6028f24e964": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "8ee9843a3eee4b63b4996ca2f1d33b01": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "ProgressStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "ProgressStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "bar_color": null,
+ "description_width": ""
+ }
+ },
+ "1f8e044c1edd4f459284073509a9e8ea": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "f7c894bab65a450b935f7a2d187539e0": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "85fae21cbbdf4dd1bd466356c35370e3": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "VBoxModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "VBoxModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "VBoxView",
+ "box_style": "",
+ "children": [
+ "IPY_MODEL_d8f7d4642791474f9d9278beaf77c980",
+ "IPY_MODEL_c7a217c50ce24f9598338a17f6d76865",
+ "IPY_MODEL_686d29b40b1247ec9d5b7273db83a893",
+ "IPY_MODEL_ecdabeee65684707b5c4f455d67a0ace",
+ "IPY_MODEL_06d647d92a4f484faf37fb940ad0e00b"
+ ],
+ "layout": "IPY_MODEL_7142cfeafe2343fb8cfb07742768f44e"
+ }
+ },
+ "d8f7d4642791474f9d9278beaf77c980": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_049983ddf3c64b208c6332ba2361e58c",
+ "placeholder": "",
+ "style": "IPY_MODEL_24d5ded9f8ad4429a97c7288f7d5bb2b",
+ "value": " Copy a token from your Hugging Face\ntokens page and paste it below. Immediately click login after copying\nyour token or it might be stored in plain text in this notebook file. "
+ }
+ },
+ "c7a217c50ce24f9598338a17f6d76865": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "PasswordModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "PasswordModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "PasswordView",
+ "continuous_update": true,
+ "description": "Token:",
+ "description_tooltip": null,
+ "disabled": false,
+ "layout": "IPY_MODEL_bc30b6e3a7f346639505cc466a11ccc5",
+ "placeholder": "",
+ "style": "IPY_MODEL_cd859ba94c89478eba9a92db90a2b94c",
+ "value": ""
+ }
+ },
+ "686d29b40b1247ec9d5b7273db83a893": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "CheckboxModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "CheckboxModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "CheckboxView",
+ "description": "Add token as git credential?",
+ "description_tooltip": null,
+ "disabled": false,
+ "indent": true,
+ "layout": "IPY_MODEL_238afda0c11d47baae046947900fa26e",
+ "style": "IPY_MODEL_1e497012b6914a1a9560a3362e1590a5",
+ "value": true
+ }
+ },
+ "ecdabeee65684707b5c4f455d67a0ace": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "ButtonModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "ButtonModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "ButtonView",
+ "button_style": "",
+ "description": "Login",
+ "disabled": false,
+ "icon": "",
+ "layout": "IPY_MODEL_9597c30d61ea48d09dedc2fc6c376b7e",
+ "style": "IPY_MODEL_415c8799936f494695dcc5b5bdeb7f56",
+ "tooltip": ""
+ }
+ },
+ "06d647d92a4f484faf37fb940ad0e00b": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_dc8e86ff0a7f46d199a3e9aeafdf3e13",
+ "placeholder": "",
+ "style": "IPY_MODEL_26e8928d782349d0a6ff644ceb643ec8",
+ "value": "\nPro Tip: If you don't already have one, you can create a dedicated\n'notebooks' token with 'write' access, that you can then easily reuse for all\nnotebooks. "
+ }
+ },
+ "7142cfeafe2343fb8cfb07742768f44e": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": "center",
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": "flex",
+ "flex": null,
+ "flex_flow": "column",
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": "50%"
+ }
+ },
+ "049983ddf3c64b208c6332ba2361e58c": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "24d5ded9f8ad4429a97c7288f7d5bb2b": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "bc30b6e3a7f346639505cc466a11ccc5": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "cd859ba94c89478eba9a92db90a2b94c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "238afda0c11d47baae046947900fa26e": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "1e497012b6914a1a9560a3362e1590a5": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "9597c30d61ea48d09dedc2fc6c376b7e": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "415c8799936f494695dcc5b5bdeb7f56": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "ButtonStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "ButtonStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "button_color": null,
+ "font_weight": ""
+ }
+ },
+ "dc8e86ff0a7f46d199a3e9aeafdf3e13": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "26e8928d782349d0a6ff644ceb643ec8": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "8e16d263cdb44f67a16da316ad96e386": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HBoxModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HBoxModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HBoxView",
+ "box_style": "",
+ "children": [
+ "IPY_MODEL_47e90e19d0fa444684f3471781f7a6e3",
+ "IPY_MODEL_51ada4e3d6d24ba881f1c1406becd311",
+ "IPY_MODEL_de50e0f6b7a44481a959faab5f853397"
+ ],
+ "layout": "IPY_MODEL_6407dbe823c346b0812114e2a0019045"
+ }
+ },
+ "47e90e19d0fa444684f3471781f7a6e3": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_1551e6fc0a4e45edac9735fdbd033323",
+ "placeholder": "",
+ "style": "IPY_MODEL_695e43ab2fea441b8e8182700bc5f995",
+ "value": "Downloading builder script: 100%"
+ }
+ },
+ "51ada4e3d6d24ba881f1c1406becd311": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "FloatProgressModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "FloatProgressModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "ProgressView",
+ "bar_style": "success",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_31f747d987b14f95875aa37478373630",
+ "max": 6338,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_5c784f85c4c34da9aeb869b15e599454",
+ "value": 6338
+ }
+ },
+ "de50e0f6b7a44481a959faab5f853397": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_8de399c31cad4345b758c8b00729f34e",
+ "placeholder": "",
+ "style": "IPY_MODEL_0aadd91ba84b433e85fc97840dbeee03",
+ "value": " 6.34k/6.34k [00:00<00:00, 412kB/s]"
+ }
+ },
+ "6407dbe823c346b0812114e2a0019045": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "1551e6fc0a4e45edac9735fdbd033323": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "695e43ab2fea441b8e8182700bc5f995": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "31f747d987b14f95875aa37478373630": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "5c784f85c4c34da9aeb869b15e599454": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "ProgressStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "ProgressStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "bar_color": null,
+ "description_width": ""
+ }
+ },
+ "8de399c31cad4345b758c8b00729f34e": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "0aadd91ba84b433e85fc97840dbeee03": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ }
+ }
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
\ No newline at end of file