{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "vRCda9pWYcZu" }, "source": [ "# Pytorch Implementation with Attention Layer" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "id": "zzqBIRVxcO_t", "outputId": "c07d1938-6818-4bc6-8347-0d686de098b5" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Using device: cuda\n", "\n", "Downloading datasets via kagglehub...\n", "All datasets downloaded.\n", "\n", "Dataset fused and balanced. Final class distribution:\n", "sentiment\n", "neutral 1663\n", "positive 1663\n", "negative 1663\n", "Name: count, dtype: int64\n", "\n", "Extracting features from the balanced dataset...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 4989/4989 [01:09<00:00, 72.25it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Feature extraction and DataLoaders with augmentation created.\n", "\n", "Model with Attention created.\n", "\n", "Training the v3 model (Augmentation + Attention)...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 1/80: 100%|██████████| 110/110 [00:03<00:00, 32.02it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1 | Train Loss: 1.0775 | Val Loss: 0.9739 | Train Acc: 0.3918 | Val Acc: 0.5094\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 2/80: 100%|██████████| 110/110 [00:02<00:00, 36.77it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 2 | Train Loss: 0.9884 | Val Loss: 0.9089 | Train Acc: 0.4785 | Val Acc: 0.5602\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 3/80: 100%|██████████| 110/110 [00:03<00:00, 29.39it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 3 | Train Loss: 0.9531 | Val Loss: 0.8522 | Train Acc: 0.5072 | Val Acc: 0.5829\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 4/80: 100%|██████████| 110/110 [00:03<00:00, 31.00it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 4 | Train Loss: 0.9110 | Val Loss: 0.8120 | Train Acc: 0.5438 | Val Acc: 0.6230\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 5/80: 100%|██████████| 110/110 [00:02<00:00, 37.34it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 5 | Train Loss: 0.8803 | Val Loss: 0.7971 | Train Acc: 0.5633 | Val Acc: 0.6096\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 6/80: 100%|██████████| 110/110 [00:03<00:00, 30.88it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 6 | Train Loss: 0.8571 | Val Loss: 0.8141 | Train Acc: 0.5819 | Val Acc: 0.6203\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 7/80: 100%|██████████| 110/110 [00:03<00:00, 33.63it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 7 | Train Loss: 0.8575 | Val Loss: 0.7452 | Train Acc: 0.5839 | Val Acc: 0.6644\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 8/80: 100%|██████████| 110/110 [00:02<00:00, 37.73it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 8 | Train Loss: 0.8260 | Val Loss: 1.0207 | Train Acc: 0.6065 | Val Acc: 0.4706\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 9/80: 100%|██████████| 110/110 [00:02<00:00, 38.23it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 9 | Train Loss: 0.8333 | Val Loss: 0.7718 | Train Acc: 0.6025 | Val Acc: 0.6524\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 10/80: 100%|██████████| 110/110 [00:03<00:00, 29.97it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 10 | Train Loss: 0.8338 | Val Loss: 0.7468 | Train Acc: 0.5985 | Val Acc: 0.6324\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 11/80: 100%|██████████| 110/110 [00:02<00:00, 37.12it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 11 | Train Loss: 0.8018 | Val Loss: 0.7142 | Train Acc: 0.6231 | Val Acc: 0.6604\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 12/80: 100%|██████████| 110/110 [00:02<00:00, 37.23it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 12 | Train Loss: 0.7818 | Val Loss: 0.7175 | Train Acc: 0.6380 | Val Acc: 0.6791\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 13/80: 100%|██████████| 110/110 [00:02<00:00, 37.67it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 13 | Train Loss: 0.7669 | Val Loss: 0.7158 | Train Acc: 0.6466 | Val Acc: 0.6791\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 14/80: 100%|██████████| 110/110 [00:03<00:00, 29.35it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 14 | Train Loss: 0.7457 | Val Loss: 0.7036 | Train Acc: 0.6523 | Val Acc: 0.6751\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 15/80: 100%|██████████| 110/110 [00:02<00:00, 37.76it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 15 | Train Loss: 0.7342 | Val Loss: 0.7170 | Train Acc: 0.6661 | Val Acc: 0.6698\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 16/80: 100%|██████████| 110/110 [00:02<00:00, 37.92it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 16 | Train Loss: 0.7273 | Val Loss: 0.6677 | Train Acc: 0.6764 | Val Acc: 0.6872\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 17/80: 100%|██████████| 110/110 [00:03<00:00, 34.81it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 17 | Train Loss: 0.7175 | Val Loss: 0.6622 | Train Acc: 0.6767 | Val Acc: 0.6885\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 18/80: 100%|██████████| 110/110 [00:03<00:00, 32.46it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 18 | Train Loss: 0.7013 | Val Loss: 0.6525 | Train Acc: 0.6850 | Val Acc: 0.6979\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 19/80: 100%|██████████| 110/110 [00:02<00:00, 37.85it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 19 | Train Loss: 0.6755 | Val Loss: 0.7202 | Train Acc: 0.6953 | Val Acc: 0.6765\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 20/80: 100%|██████████| 110/110 [00:02<00:00, 37.70it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 20 | Train Loss: 0.6726 | Val Loss: 0.6369 | Train Acc: 0.7027 | Val Acc: 0.6992\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 21/80: 100%|██████████| 110/110 [00:03<00:00, 30.93it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 21 | Train Loss: 0.6574 | Val Loss: 0.6206 | Train Acc: 0.7148 | Val Acc: 0.7126\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 22/80: 100%|██████████| 110/110 [00:03<00:00, 34.72it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 22 | Train Loss: 0.6522 | Val Loss: 0.6574 | Train Acc: 0.7222 | Val Acc: 0.7219\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 23/80: 100%|██████████| 110/110 [00:02<00:00, 37.16it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 23 | Train Loss: 0.6612 | Val Loss: 0.6821 | Train Acc: 0.7182 | Val Acc: 0.7059\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 24/80: 100%|██████████| 110/110 [00:02<00:00, 37.63it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 24 | Train Loss: 0.6384 | Val Loss: 0.6364 | Train Acc: 0.7211 | Val Acc: 0.7406\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 25/80: 100%|██████████| 110/110 [00:03<00:00, 29.91it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 25 | Train Loss: 0.6289 | Val Loss: 0.6569 | Train Acc: 0.7285 | Val Acc: 0.7112\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 26/80: 100%|██████████| 110/110 [00:02<00:00, 37.44it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 26 | Train Loss: 0.5836 | Val Loss: 0.6210 | Train Acc: 0.7506 | Val Acc: 0.7433\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 27/80: 100%|██████████| 110/110 [00:02<00:00, 36.80it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 27 | Train Loss: 0.5548 | Val Loss: 0.6165 | Train Acc: 0.7617 | Val Acc: 0.7353\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 28/80: 100%|██████████| 110/110 [00:03<00:00, 36.42it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 28 | Train Loss: 0.5445 | Val Loss: 0.6026 | Train Acc: 0.7655 | Val Acc: 0.7340\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 29/80: 100%|██████████| 110/110 [00:03<00:00, 30.49it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 29 | Train Loss: 0.5244 | Val Loss: 0.6278 | Train Acc: 0.7738 | Val Acc: 0.7406\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 30/80: 100%|██████████| 110/110 [00:02<00:00, 37.83it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 30 | Train Loss: 0.5259 | Val Loss: 0.6247 | Train Acc: 0.7763 | Val Acc: 0.7567\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 31/80: 100%|██████████| 110/110 [00:02<00:00, 36.70it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 31 | Train Loss: 0.5153 | Val Loss: 0.6223 | Train Acc: 0.7849 | Val Acc: 0.7366\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 32/80: 100%|██████████| 110/110 [00:03<00:00, 33.96it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 32 | Train Loss: 0.4965 | Val Loss: 0.6087 | Train Acc: 0.7927 | Val Acc: 0.7687\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 33/80: 100%|██████████| 110/110 [00:03<00:00, 33.92it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 33 | Train Loss: 0.4631 | Val Loss: 0.6442 | Train Acc: 0.8047 | Val Acc: 0.7647\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 34/80: 100%|██████████| 110/110 [00:02<00:00, 37.67it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 34 | Train Loss: 0.4657 | Val Loss: 0.6116 | Train Acc: 0.8067 | Val Acc: 0.7687\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 35/80: 100%|██████████| 110/110 [00:02<00:00, 38.09it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 35 | Train Loss: 0.4447 | Val Loss: 0.6205 | Train Acc: 0.8202 | Val Acc: 0.7741\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 36/80: 100%|██████████| 110/110 [00:04<00:00, 25.29it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 36 | Train Loss: 0.4459 | Val Loss: 0.6515 | Train Acc: 0.8107 | Val Acc: 0.7567\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 37/80: 100%|██████████| 110/110 [00:03<00:00, 35.74it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 37 | Train Loss: 0.4193 | Val Loss: 0.6158 | Train Acc: 0.8276 | Val Acc: 0.7834\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 38/80: 100%|██████████| 110/110 [00:02<00:00, 37.16it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 38 | Train Loss: 0.4063 | Val Loss: 0.6454 | Train Acc: 0.8325 | Val Acc: 0.7714\n", "Early stopping triggered.\n", "\n", "Evaluating the final v3 model...\n" ] }, { "data": { "image/png": "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kuKiiC+uIu256qqrSl2jhx56yEURX9wbb7xBr169CAgIICAggOjoaP73v/+V/L4uXRu4dHvq0rUR91Ff7ve617uX+nS/173eve8nute777UpT4NJqhcsWEBMTAwzZsxg8+bN9O7dmxEjRpCamurq0Kqse/fuJCUllTxWrVrl6pAqLDs7m969e/P666+X+fvnnnuOV155hdmzZ7Nu3Tr8/PwYMWIEubm5tRzppV2qLQAjR44871p99NFHtRhh5axYsYIpU6awdu1ali1bRkFBAcOHDyc7O7tkmz/+8Y988803fPrpp6xYsYKjR49y6623ujDq8lWkPQCTJk067xo999xzLor44lq3bs0///lPNm3axMaNG7nmmmsYNWoUO3fuBOrWtYFLtwfqzrUR91Df7ve617uP+nS/173eve8nute777Upl9FADBgwwJgyZUrJz0VFRUbLli2NWbNmuTCqqpsxY4bRu3dvV4fhFICxcOHCkp8dDocREhJiPP/88yXvpaWlGXa73fjoo49cEGHFXdgWwzCM8ePHG6NGjXJJPM6QmppqAMaKFSsMwzCvhaenp/Hpp5+WbLN7924DMNasWeOqMCvswvYYhmEMGTLEeOSRR1wXVDU1adLEePvtt+v8tSlW3B7DqPvXRmpffbrf617vvurb/V73evene717axA91fn5+WzatImhQ4eWvGe1Whk6dChr1qxxYWTV8+uvv9KyZUvat2/P3XffTWJioqtDcor4+HiSk5PPu16BgYFERUXV2eu1fPlyWrRoQZcuXZg8eTInTpxwdUgVlp6eDkDTpk0B2LRpEwUFBeddn65du9KmTZs6cX0ubE+xDz74gKCgIHr06MG0adPIyclxRXiVUlRUxMcff0x2djbR0dF1/tpc2J5idfHaiGvUx/u97vV1S1293+te7750r68bPFwdQG04fvw4RUVFBAcHn/d+cHAwe/bscVFU1RMVFcW8efPo0qULSUlJzJw5k8GDB7Njxw4aNWrk6vCqJTk5GaDM61X8u7pk5MiR3HrrrbRr1479+/fz+OOPc91117FmzRpsNpurw7soh8PBH/7wBwYNGkSPHj0A8/p4eXnRuHHj87atC9enrPYA3HXXXYSHh9OyZUu2bdvGY489RlxcHF988YULoy3f9u3biY6OJjc3F39/fxYuXEhERARbt26tk9emvPZA3bs24lr17X6ve33dUlfv97rXu+f9RPd69702ZWkQSXV9dN1115W87tWrF1FRUYSHh/PJJ58wceJEF0YmF7rjjjtKXvfs2ZNevXrRoUMHli9fzrXXXuvCyC5typQp7Nixo07N4buY8trzwAMPlLzu2bMnoaGhXHvttezfv58OHTrUdpiX1KVLF7Zu3Up6ejqfffYZ48ePZ8WKFa4Oq8rKa09ERESduzYizqR7fd1SV+/3ute75/1E93r3vTZlaRDDv4OCgrDZbKWq4qWkpBASEuKiqJyrcePGdO7cmX379rk6lGorvib19Xq1b9+eoKAgt79WU6dOZdGiRfz444+0bt265P2QkBDy8/NJS0s7b3t3vz7ltacsUVFRAG57jby8vOjYsSORkZHMmjWL3r178/LLL9fZa1Nee8ri7tdGXKu+3+91r69b6sL9Xvd6972f6F7vvtemLA0iqfby8iIyMpLY2NiS9xwOB7GxseeN5a/LsrKy2L9/P6Ghoa4OpdratWtHSEjIedcrIyODdevW1YvrdfjwYU6cOOG218owDKZOncrChQv54YcfaNeu3Xm/j4yMxNPT87zrExcXR2Jiolten0u1pyxbt24FcNtrdCGHw0FeXl6duzblKW5PWeratZHaVd/v97rX1y3ufL/Xvb7u3U90r3dzrq2TVns+/vhjw263G/PmzTN27dplPPDAA0bjxo2N5ORkV4dWJY8++qixfPlyIz4+3li9erUxdOhQIygoyEhNTXV1aBWSmZlpbNmyxdiyZYsBGC+++KKxZcsWIyEhwTAMw/jnP/9pNG7c2Pjqq6+Mbdu2GaNGjTLatWtnnD592sWRl3axtmRmZhp/+tOfjDVr1hjx8fHG999/b1x22WVGp06djNzcXFeHXqbJkycbgYGBxvLly42kpKSSR05OTsk2Dz30kNGmTRvjhx9+MDZu3GhER0cb0dHRLoy6fJdqz759+4wnn3zS2LhxoxEfH2989dVXRvv27Y0rr7zSxZGX7a9//auxYsUKIz4+3ti2bZvx17/+1bBYLMbSpUsNw6hb18YwLt6eunZtxD3Up/u97vXupT7d73Wvd+/7ie717nttytNgkmrDMIxXX33VaNOmjeHl5WUMGDDAWLt2ratDqrIxY8YYoaGhhpeXl9GqVStjzJgxxr59+1wdVoX9+OOPBlDqMX78eMMwzKU2/vGPfxjBwcGG3W43rr32WiMuLs61QZfjYm3Jyckxhg8fbjRv3tzw9PQ0wsPDjUmTJrn1h7uy2gIY7777bsk2p0+fNh5++GGjSZMmhq+vr3HLLbcYSUlJrgv6Ii7VnsTEROPKK680mjZtatjtdqNjx47Gn//8ZyM9Pd21gZfjvvvuM8LDww0vLy+jefPmxrXXXltykzWMunVtDOPi7alr10bcR3253+te717q0/1e93r3vp/oXu++16Y8FsMwDOf3f4uIiIiIiIjUfw1iTrWIiIiIiIhITVBSLSIiIiIiIlJFSqpFREREREREqkhJtYiIiIiIiEgVKakWERERERERqSIl1SIiIiIiIiJVpKRaREREREREpIqUVIuIiIiIiIhUkZJqERERERERkSpSUi0iIiIiIiJSRUqqRURERERERKpISbWIiIiIiIhIFf0/FQRc7mFPP9wAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "--- Final Classification Report on Fused Test Set (v3 Model) ---\n", " precision recall f1-score support\n", "\n", " negative 0.68 0.60 0.64 249\n", " neutral 0.74 0.89 0.81 250\n", " positive 0.75 0.68 0.71 250\n", "\n", " accuracy 0.72 749\n", " macro avg 0.72 0.72 0.72 749\n", "weighted avg 0.72 0.72 0.72 749\n", "\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# =============================================================================\n", "# SETUP & LIBRARIES\n", "# =============================================================================\n", "import os\n", "import numpy as np\n", "import pandas as pd\n", "import librosa\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "from tqdm import tqdm\n", "import kagglehub\n", "\n", "# Import PyTorch essentials\n", "import torch\n", "import torch.nn as nn\n", "import torch.nn.functional as F\n", "from torch.utils.data import DataLoader, Dataset\n", "from torch.optim.lr_scheduler import ReduceLROnPlateau\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.preprocessing import LabelEncoder\n", "from sklearn.metrics import classification_report, confusion_matrix\n", "\n", "# --- Setup Device (GPU/CPU) ---\n", "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n", "print(f\"\\nUsing device: {device}\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "93e14618" }, "outputs": [], "source": [ "# =============================================================================\n", "# DOWNLOAD & PROCESS DATASETS\n", "# =============================================================================\n", "print(\"\\nDownloading datasets via kagglehub...\")\n", "RAVDESS_PATH = kagglehub.dataset_download(\"uwrfkaggler/ravdess-emotional-speech-audio\")\n", "CREMA_D_PATH = kagglehub.dataset_download(\"ejlok1/cremad\")\n", "print(\"All datasets downloaded.\")\n", "\n", "# --- Define processing functions and fuse datasets ---\n", "sentiment_map = {'happy': 'positive', 'surprised': 'positive', 'sad': 'negative', 'angry': 'negative', 'fearful': 'negative', 'disgust': 'negative', 'neutral': 'neutral', 'calm': 'neutral'}\n", "ravdess_emotion_map = {'01': 'neutral', '02': 'calm', '03': 'happy', '04': 'sad', '05': 'angry', '06': 'fearful', '07': 'disgust', '08': 'surprised'}\n", "ravdess_data = []\n", "for dirpath, _, filenames in os.walk(RAVDESS_PATH):\n", " for filename in filenames:\n", " if filename.endswith('.wav'):\n", " emotion_code = filename.split('-')[2]\n", " emotion = ravdess_emotion_map.get(emotion_code)\n", " sentiment = sentiment_map.get(emotion)\n", " if sentiment: ravdess_data.append({\"filepath\": os.path.join(dirpath, filename), \"sentiment\": sentiment})\n", "ravdess_df = pd.DataFrame(ravdess_data)\n", "\n", "crema_emotion_map = {'HAP': 'happy', 'SAD': 'sad', 'ANG': 'angry', 'FEA': 'fearful', 'DIS': 'disgust', 'NEU': 'neutral'}\n", "crema_data = []\n", "crema_audio_path = os.path.join(CREMA_D_PATH, \"AudioWAV\")\n", "for filename in os.listdir(crema_audio_path):\n", " if filename.endswith('.wav'):\n", " emotion_code = filename.split('_')[2]\n", " emotion = crema_emotion_map.get(emotion_code)\n", " sentiment = sentiment_map.get(emotion)\n", " if sentiment: crema_data.append({\"filepath\": os.path.join(crema_audio_path, filename), \"sentiment\": sentiment})\n", "crema_df = pd.DataFrame(crema_data)\n", "\n", "combined_df = pd.concat([ravdess_df, crema_df], ignore_index=True)\n", "min_class_size = combined_df['sentiment'].value_counts().min()\n", "df_list = [combined_df[combined_df['sentiment'] == s].sample(min_class_size, random_state=42) for s in combined_df['sentiment'].unique()]\n", "balanced_df = pd.concat(df_list).sample(frac=1, random_state=42).reset_index(drop=True)\n", "print(\"\\nDataset fused and balanced. Final class distribution:\")\n", "print(balanced_df['sentiment'].value_counts())" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "8dfb5a81" }, "outputs": [], "source": [ "# =============================================================================\n", "# STEP 3: FEATURE EXTRACTION & DATASET CLASS (WITH AUGMENTATION)\n", "# =============================================================================\n", "def extract_features(file_path, n_mfcc=40, max_pad_len=216):\n", " try:\n", " audio, sr = librosa.load(file_path, res_type='kaiser_fast', sr=None)\n", " mfccs = librosa.feature.mfcc(y=audio, sr=sr, n_mfcc=n_mfcc)\n", " delta_mfccs = librosa.feature.delta(mfccs)\n", " delta2_mfccs = librosa.feature.delta(mfccs, order=2)\n", " all_features = np.concatenate((mfccs, delta_mfccs, delta2_mfccs))\n", " if all_features.shape[1] > max_pad_len: all_features = all_features[:, :max_pad_len]\n", " else:\n", " pad_width = max_pad_len - all_features.shape[1]\n", " all_features = np.pad(all_features, pad_width=((0, 0), (0, pad_width)), mode='constant')\n", " except Exception as e: return None\n", " return all_features\n", "\n", "class SpeechDataset(Dataset):\n", " def __init__(self, features, labels, augmentation=False):\n", " # Store features as a list of numpy arrays for easier augmentation\n", " self.features_list = [np.array(f) for f in features]\n", " self.labels = torch.tensor(labels, dtype=torch.long)\n", " self.augmentation = augmentation\n", "\n", " def __len__(self):\n", " return len(self.features_list)\n", "\n", " def __getitem__(self, idx):\n", " feature = self.features_list[idx]\n", "\n", " if self.augmentation:\n", " # 50% chance of adding noise\n", " if np.random.rand() < 0.5:\n", " noise_amp = 0.005 * np.random.uniform() * np.amax(feature)\n", " feature = feature + noise_amp * np.random.normal(size=feature.shape)\n", "\n", " # 50% chance of simulating a pitch shift\n", " if np.random.rand() < 0.5:\n", " steps = np.random.randint(-2, 2)\n", " feature = np.roll(feature, steps, axis=0)\n", "\n", " return torch.tensor(feature, dtype=torch.float32), self.labels[idx]\n", "\n", "print(\"\\nExtracting features from the balanced dataset...\")\n", "X = [extract_features(fp) for fp in tqdm(balanced_df['filepath'])]\n", "# Filter out any None values that may have occurred during extraction\n", "y_list = [y for x, y in zip(X, balanced_df['sentiment']) if x is not None]\n", "X_list = [x for x in X if x is not None]\n", "\n", "le = LabelEncoder()\n", "y = le.fit_transform(y_list)\n", "\n", "# Split data and create DataLoaders\n", "X_train, X_temp, y_train, y_temp = train_test_split(X_list, y, test_size=0.3, random_state=42, stratify=y)\n", "X_val, X_test, y_val, y_test = train_test_split(X_temp, y_temp, test_size=0.5, random_state=42, stratify=y_temp)\n", "\n", "train_dataset = SpeechDataset(X_train, y_train, augmentation=True)\n", "val_dataset = SpeechDataset(X_val, y_val, augmentation=False)\n", "test_dataset = SpeechDataset(X_test, y_test, augmentation=False)\n", "\n", "BATCH_SIZE = 32\n", "train_loader = DataLoader(train_dataset, batch_size=BATCH_SIZE, shuffle=True)\n", "val_loader = DataLoader(val_dataset, batch_size=BATCH_SIZE, shuffle=False)\n", "test_loader = DataLoader(test_dataset, batch_size=BATCH_SIZE, shuffle=False)\n", "print(\"\\nFeature extraction and DataLoaders with augmentation created.\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "e9cb6730" }, "outputs": [], "source": [ "# =============================================================================\n", "# STEP 4: MODEL ARCHITECTURE (WITH ATTENTION)\n", "# =============================================================================\n", "class Attention(nn.Module):\n", " def __init__(self, hidden_size):\n", " super(Attention, self).__init__()\n", " self.attention = nn.Linear(hidden_size, 1, bias=False)\n", "\n", " def forward(self, lstm_output):\n", " # (batch, seq_len, hidden_size) -> (batch, seq_len, 1)\n", " scores = self.attention(lstm_output)\n", " scores = scores.squeeze(2)\n", " # (batch, seq_len)\n", " weights = F.softmax(scores, dim=1)\n", " # (batch, 1, seq_len)\n", " weights = weights.unsqueeze(1)\n", " # (batch, 1, seq_len) x (batch, seq_len, hidden_size) -> (batch, 1, hidden_size)\n", " context = torch.bmm(weights, lstm_output)\n", " # (batch, hidden_size)\n", " return context.squeeze(1)\n", "\n", "class SpeechModel(nn.Module):\n", " def __init__(self, input_shape, num_classes):\n", " super(SpeechModel, self).__init__()\n", " self.conv_layers = nn.Sequential(\n", " nn.Conv1d(in_channels=input_shape[0], out_channels=128, kernel_size=5, padding='same'),\n", " nn.BatchNorm1d(128), nn.ReLU(), nn.MaxPool1d(kernel_size=2), nn.Dropout(0.2),\n", " nn.Conv1d(in_channels=128, out_channels=256, kernel_size=5, padding='same'),\n", " nn.BatchNorm1d(256), nn.ReLU(), nn.MaxPool1d(kernel_size=2), nn.Dropout(0.2)\n", " )\n", " with torch.no_grad():\n", " dummy_input = torch.zeros(1, input_shape[0], input_shape[1])\n", " dummy_output = self.conv_layers(dummy_input)\n", " lstm_input_size = dummy_output.shape[1]\n", "\n", " self.lstm = nn.LSTM(input_size=lstm_input_size, hidden_size=256, batch_first=True, bidirectional=True)\n", " self.attention = Attention(hidden_size=256 * 2)\n", " self.classifier = nn.Sequential(\n", " nn.Linear(256 * 2, 128),\n", " nn.ReLU(), nn.Dropout(0.4),\n", " nn.Linear(128, num_classes)\n", " )\n", "\n", " def forward(self, x):\n", " x = self.conv_layers(x)\n", " x = x.permute(0, 2, 1)\n", " lstm_out, _ = self.lstm(x)\n", " context_vector = self.attention(lstm_out)\n", " output = self.classifier(context_vector)\n", " return output\n", "\n", "# --- Instantiate model, loss, and optimizer ---\n", "INPUT_SHAPE = (120, 216) # (n_mfcc * 3, max_len)\n", "NUM_CLASSES = len(le.classes_)\n", "model = SpeechModel(input_shape=INPUT_SHAPE, num_classes=NUM_CLASSES).to(device)\n", "criterion = nn.CrossEntropyLoss()\n", "optimizer = torch.optim.AdamW(model.parameters(), lr=0.001) # Using AdamW\n", "scheduler = ReduceLROnPlateau(optimizer, mode='min', factor=0.5, patience=3)\n", "print(\"\\nModel with Attention created.\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "90e7efd0" }, "outputs": [], "source": [ "# =============================================================================\n", "# STEP 5: TRAIN THE MODEL\n", "# =============================================================================\n", "print(\"\\nTraining the v3 model (Augmentation + Attention)...\")\n", "EPOCHS = 80 # Increased epochs for this more complex setup\n", "patience = 10\n", "best_val_loss = float('inf')\n", "patience_counter = 0\n", "history = {'train_loss': [], 'val_loss': [], 'train_acc': [], 'val_acc': []}\n", "\n", "for epoch in range(EPOCHS):\n", " model.train(); train_loss, train_correct = 0.0, 0\n", " for features, labels in tqdm(train_loader, desc=f\"Epoch {epoch+1}/{EPOCHS}\"):\n", " features, labels = features.to(device), labels.to(device)\n", " optimizer.zero_grad()\n", " outputs = model(features)\n", " loss = criterion(outputs, labels)\n", " loss.backward()\n", " optimizer.step()\n", " train_loss += loss.item() * features.size(0)\n", " train_correct += (torch.max(outputs.data, 1)[1] == labels).sum().item()\n", "\n", " model.eval(); val_loss, val_correct = 0.0, 0\n", " with torch.no_grad():\n", " for features, labels in val_loader:\n", " features, labels = features.to(device), labels.to(device)\n", " outputs = model(features)\n", " loss = criterion(outputs, labels)\n", " val_loss += loss.item() * features.size(0)\n", " val_correct += (torch.max(outputs.data, 1)[1] == labels).sum().item()\n", "\n", " avg_train_loss=train_loss/len(train_loader.dataset); avg_val_loss=val_loss/len(val_loader.dataset)\n", " train_acc=train_correct/len(train_loader.dataset); val_acc=val_correct/len(val_loader.dataset)\n", " history['train_loss'].append(avg_train_loss); history['val_loss'].append(avg_val_loss)\n", " history['train_acc'].append(train_acc); history['val_acc'].append(val_acc)\n", " print(f\"Epoch {epoch+1} | Train Loss: {avg_train_loss:.4f} | Val Loss: {avg_val_loss:.4f} | Train Acc: {train_acc:.4f} | Val Acc: {val_acc:.4f}\")\n", "\n", " scheduler.step(avg_val_loss)\n", " if avg_val_loss < best_val_loss:\n", " best_val_loss = avg_val_loss; torch.save(model.state_dict(), 'best_fused_model_v3_attn.pth'); patience_counter = 0\n", " else:\n", " patience_counter += 1\n", " if patience_counter >= patience: print(\"Early stopping triggered.\"); break\n", "\n", "model.load_state_dict(torch.load('best_fused_model_v3_attn.pth'))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "a841f14f" }, "outputs": [], "source": [ "# =============================================================================\n", "# STEP 6: EVALUATE THE FINAL MODEL\n", "# =============================================================================\n", "print(\"\\nEvaluating the final v3 model...\")\n", "plt.figure(figsize=(12, 4))\n", "plt.subplot(1, 2, 1); plt.plot(history['train_acc'], label='Train Acc'); plt.plot(history['val_acc'], label='Val Acc')\n", "plt.title('Accuracy'); plt.legend(); plt.grid(True)\n", "plt.subplot(1, 2, 2); plt.plot(history['train_loss'], label='Train Loss'); plt.plot(history['val_loss'], label='Val Loss')\n", "plt.title('Loss'); plt.legend(); plt.grid(True)\n", "plt.show()\n", "\n", "model.eval()\n", "all_preds, all_labels = [], []\n", "with torch.no_grad():\n", " for features, labels in test_loader:\n", " features, labels = features.to(device), labels.to(device)\n", " outputs = model(features)\n", " _, predicted = torch.max(outputs.data, 1)\n", " all_preds.extend(predicted.cpu().numpy())\n", " all_labels.extend(labels.cpu().numpy())\n", "\n", "print(\"\\n--- Final Classification Report on Fused Test Set (v3 Model) ---\")\n", "print(classification_report(all_labels, all_preds, target_names=le.classes_))\n", "cm = confusion_matrix(all_labels, all_preds)\n", "plt.figure(figsize=(8, 6))\n", "sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', xticklabels=le.classes_, yticklabels=le.classes_)\n", "plt.title('Confusion Matrix on Fused Test Set (v3 Model)'); plt.ylabel('True Label'); plt.xlabel('Predicted Label')\n", "plt.show()" ] } ], "metadata": { "accelerator": "GPU", "colab": { "gpuType": "T4", "provenance": [] }, "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "name": "python" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "08d5f1ac3e9e43d28bf0f2a1ca3780a9": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "099820472ef94622bc930c7dcc27392a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "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": "" } }, "12ef45e353234cd187b89bd3b4adc885": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "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_8de1ae82920f4af996346673195773f2", "max": 159, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_ffb9e0b266b04194bb777818b49b7b1e", "value": 159 } }, "1622a1fc464742bdaeeec936fb81fd2c": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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": "20px" } }, "1b77a27420aa4d7d90af158073b07e0c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "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": "" } }, "25ce37ab6aaf4bf6b0dcb920e2d3cb3e": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "2d1043343d8d4d1f8eb0044e1fb0e48c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "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_ba121eca7b8f47559d54e7a3e02cc32c", "max": 380204696, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_8ab02e1b70cf46b6b2c2a38699d64de5", "value": 380204696 } }, "3719dfed7c0840e6bc152595a3c85487": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "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_5534f8d2d13b4f47b0dfacb3be042b68", "placeholder": "​", "style": "IPY_MODEL_099820472ef94622bc930c7dcc27392a", "value": " 380M/380M [00:06<00:00, 34.9MB/s]" } }, "3a4ece5788cb4e4fa02ed2e22c6c7416": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "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_880aab255d3c44798ec400644408b089", "placeholder": "​", "style": "IPY_MODEL_f8f99acab78d454b8505aa41c5b2fdb9", "value": "model.safetensors: 100%" } }, "3c66cc92b6dc443daa79dd82e564f407": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "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": "" } }, "40e143e654424e8f96a8acc62749b56c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "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_8a2b1e5cd1ed41208a04ce10bd37505d", "IPY_MODEL_12ef45e353234cd187b89bd3b4adc885", "IPY_MODEL_4934e2a2e84948d993219a887e6f932a" ], "layout": "IPY_MODEL_08d5f1ac3e9e43d28bf0f2a1ca3780a9" } }, "4934e2a2e84948d993219a887e6f932a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "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_fbdc89bc7bca4e7b9af17480f1b51770", "placeholder": "​", "style": "IPY_MODEL_9051309263bf4dcab2a84a14085e010f", "value": " 159/159 [00:00<00:00, 4.26kB/s]" } }, "4a05f692345540a7ab688eae2ff4c635": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "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_3a4ece5788cb4e4fa02ed2e22c6c7416", "IPY_MODEL_2d1043343d8d4d1f8eb0044e1fb0e48c", "IPY_MODEL_a7a6f6ff7cac4c1b8dce48b4038af21f" ], "layout": "IPY_MODEL_d90a3d5595744e57b456a64dce5a6662" } }, "4ce71846fdcc4524ae55b33671370e81": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "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": "" } }, "5534f8d2d13b4f47b0dfacb3be042b68": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "5d5dc262dd2a4ec282a1125b9dbaf63a": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "5e10377b33264c4a9ac9727d8b9e8e44": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "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": "" } }, "678984ff6763443b9e57ad16e65e0c14": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "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": "" } }, "789e1107230e4431a3b8fc36ccc0f370": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "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_aea70cfcdeb94841bc1bc616cbbd1530", "max": 380267417, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_678984ff6763443b9e57ad16e65e0c14", "value": 380267417 } }, "7bcc87bdc1de4542be9816c23ef918d8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "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_ddf902c6d15240f294215ca9ebcec5b9", "placeholder": "​", "style": "IPY_MODEL_3c66cc92b6dc443daa79dd82e564f407", "value": "pytorch_model.bin: 100%" } }, "82dc818a6f8049b08e9482b672cf3418": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "880aab255d3c44798ec400644408b089": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "8a2b1e5cd1ed41208a04ce10bd37505d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "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_25ce37ab6aaf4bf6b0dcb920e2d3cb3e", "placeholder": "​", "style": "IPY_MODEL_5e10377b33264c4a9ac9727d8b9e8e44", "value": "preprocessor_config.json: 100%" } }, "8ab02e1b70cf46b6b2c2a38699d64de5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "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": "" } }, "8de1ae82920f4af996346673195773f2": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "9051309263bf4dcab2a84a14085e010f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "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": "" } }, "99248a3e649b4b4fb4a6693fc781a3ae": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "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_82dc818a6f8049b08e9482b672cf3418", "placeholder": "​", "style": "IPY_MODEL_e27a9962ac30459c8dae3d495c40ab8c", "value": "config.json: " } }, "a7a6f6ff7cac4c1b8dce48b4038af21f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "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_c85639bd3d5240278f96912779017988", "placeholder": "​", "style": "IPY_MODEL_4ce71846fdcc4524ae55b33671370e81", "value": " 380M/380M [00:02<00:00, 167MB/s]" } }, "abc8a5b72f034606b3fe3b9e5d0ef8bb": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "aea70cfcdeb94841bc1bc616cbbd1530": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "b63361a7078549919d77d03dbe797aa9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "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_99248a3e649b4b4fb4a6693fc781a3ae", "IPY_MODEL_f77ea67f2d644e949477239def77cce3", "IPY_MODEL_d5b9e59652574ae39463a62e91acbc6e" ], "layout": "IPY_MODEL_ef93f9eb83cb461f90c8b5cb85fab024" } }, "ba121eca7b8f47559d54e7a3e02cc32c": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "c85639bd3d5240278f96912779017988": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "d5b9e59652574ae39463a62e91acbc6e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "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_abc8a5b72f034606b3fe3b9e5d0ef8bb", "placeholder": "​", "style": "IPY_MODEL_1b77a27420aa4d7d90af158073b07e0c", "value": " 1.84k/? [00:00<00:00, 33.1kB/s]" } }, "d90a3d5595744e57b456a64dce5a6662": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "dbfe5751c7a843cbac2f760232c268b2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "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_7bcc87bdc1de4542be9816c23ef918d8", "IPY_MODEL_789e1107230e4431a3b8fc36ccc0f370", "IPY_MODEL_3719dfed7c0840e6bc152595a3c85487" ], "layout": "IPY_MODEL_5d5dc262dd2a4ec282a1125b9dbaf63a" } }, "ddf902c6d15240f294215ca9ebcec5b9": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "e27a9962ac30459c8dae3d495c40ab8c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "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": "" } }, "ef93f9eb83cb461f90c8b5cb85fab024": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "f4f3e6103c844b89b42c71709ee180ba": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "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": "" } }, "f77ea67f2d644e949477239def77cce3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "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_1622a1fc464742bdaeeec936fb81fd2c", "max": 1, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_f4f3e6103c844b89b42c71709ee180ba", "value": 1 } }, "f8f99acab78d454b8505aa41c5b2fdb9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "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": "" } }, "fbdc89bc7bca4e7b9af17480f1b51770": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "ffb9e0b266b04194bb777818b49b7b1e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "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": "" } } } } }, "nbformat": 4, "nbformat_minor": 0 }