diff --git a/colabs/intro/Intro_to_Weights_&_Biases.ipynb b/colabs/intro/Intro_to_Weights_&_Biases.ipynb new file mode 100644 index 00000000..e45b441a --- /dev/null +++ b/colabs/intro/Intro_to_Weights_&_Biases.ipynb @@ -0,0 +1,3666 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "lnkikWiFt8KA" + }, + "source": [ + "\"Open\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_24bQk7Nt8KD" + }, + "source": [ + "\"Weights\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "vvwz3IQUt8KE" + }, + "source": [ + "# πŸƒβ€β™€οΈ Quickstart\n", + "Use **[Weights & Biases](https://wandb.ai/site?utm_source=intro_colab&utm_medium=code&utm_campaign=intro)** for machine learning experiment tracking, model checkpointing, and collaboration with your team. See the full Weights & Biases Documentation **[here](https://docs.wandb.ai/quickstart)**" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "9_oAbm5Ct8KE" + }, + "source": [ + "## 🀩 A shared dashboard for your experiments\n", + "\n", + "With just a few lines of code,\n", + "you'll get rich, interactive, shareable dashboards [which you can see yourself here](https://wandb.ai/wandb/wandb_example).\n", + "![](https://i.imgur.com/Pell4Oo.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "4gg2YcZzt8KF" + }, + "source": [ + "\n", + "## πŸ”’ Data & Privacy\n", + "\n", + "We take security very seriously, and our cloud-hosted dashboard uses industry standard best practices for encryption. If you're working with models and datasets that cannot leave your enterprise cluster, we have [on-prem](https://docs.wandb.com/self-hosted) installations available.\n", + "\n", + "It's also easy to download all your data and export it to other tools β€” like custom analysis in a Jupyter notebook. Here's [more on our API](https://docs.wandb.com/library/api).\n", + "\n", + "---" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "vLBQCdG2t8KF" + }, + "source": [ + "## πŸͺ„ Install `wandb` library and login\n", + "\n", + "\n", + "Start by installing the library and logging in to your free account.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "dAcN38ZJt8KG", + "outputId": "afaf4799-1a78-4b9b-b4f7-b21c5c1e3da0" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.1/2.1 MB\u001b[0m \u001b[31m41.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m184.3/184.3 kB\u001b[0m \u001b[31m22.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m206.7/206.7 kB\u001b[0m \u001b[31m22.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m62.7/62.7 kB\u001b[0m \u001b[31m7.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25h Building wheel for pathtools (setup.py) ... \u001b[?25l\u001b[?25hdone\n" + ] + } + ], + "source": [ + "!pip install wandb -qU" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 121 + }, + "id": "9vLnXyNyt8KH", + "outputId": "17c69368-ac27-4ac2-948d-9913f5d7b3c4" + }, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " window._wandbApiKey = new Promise((resolve, reject) => {\n", + " function loadScript(url) {\n", + " return new Promise(function(resolve, reject) {\n", + " let newScript = document.createElement(\"script\");\n", + " newScript.onerror = reject;\n", + " newScript.onload = resolve;\n", + " document.body.appendChild(newScript);\n", + " newScript.src = url;\n", + " });\n", + " }\n", + " loadScript(\"https://cdn.jsdelivr.net/npm/postmate/build/postmate.min.js\").then(() => {\n", + " const iframe = document.createElement('iframe')\n", + " iframe.style.cssText = \"width:0;height:0;border:none\"\n", + " document.body.appendChild(iframe)\n", + " const handshake = new Postmate({\n", + " container: iframe,\n", + " url: 'https://wandb.ai/authorize'\n", + " });\n", + " const timeout = setTimeout(() => reject(\"Couldn't auto authenticate\"), 5000)\n", + " handshake.then(function(child) {\n", + " child.on('authorize', data => {\n", + " clearTimeout(timeout)\n", + " resolve(data)\n", + " });\n", + " });\n", + " })\n", + " });\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "metadata": { + "tags": null + }, + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[34m\u001b[1mwandb\u001b[0m: Logging into wandb.ai. (Learn how to deploy a W&B server locally: https://wandb.me/wandb-server)\n", + "\u001b[34m\u001b[1mwandb\u001b[0m: You can find your API key in your browser here: https://wandb.ai/authorize\n", + "wandb: Paste an API key from your profile and hit enter, or press ctrl+c to quit:" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Β·Β·Β·Β·Β·Β·Β·Β·Β·Β·\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "\u001b[34m\u001b[1mwandb\u001b[0m: Appending key for api.wandb.ai to your netrc file: /root/.netrc\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "True" + ] + }, + "metadata": {}, + "execution_count": 2 + } + ], + "source": [ + "# Log in to your W&B account\n", + "import wandb\n", + "wandb.login()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "3eWudlu1t8KH" + }, + "source": [ + "## πŸ‘Ÿ Run an experiment\n", + "1️⃣. **Start a new run** and pass in hyperparameters to track\n", + "\n", + "2️⃣. **Log metrics** from training or evaluation\n", + "\n", + "3️⃣. **Visualize results** in the dashboard" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000, + "referenced_widgets": [ + "f11e91c719cf42768cc05c1bb5188bce", + "9e5b273035134707961ec280e95fb6e8", + "07ec0669291746fdb522bc4cf4516ac4", + "9994bd5bc3f64c679e182e1ec7b50815", + "0816abeb0d174911bd52ed10ad57831f", + "337ab30bfbb8434fab95bb4bf12808bd", + "cdaaa28cc8ea4a61a1f7a7a47c9fafe4", + "842dc67eaf5941068e2c4fbcba7e03e1", + "0873388e0f834250875b084b694d78f8", + "2dd1526be3734a7a8740e867d86b4263", + "3b6060a1767b46b098cc87de3efd6885", + "b3b0978b144d4fbd97771431aeb98600", + "ef37b045d3ae4cfa8550ed2b96ebe5fa", + "af3a6514c86b4e5688260e1915aa0d14", + "e5b6b2805d414ceba996d75fc59c8521", + "d68f4cd9aaa14cffaabc581aaded28f2", + "477e68340ab84c8a8abcc0b04ca631f7", + "85c7932299b9421eb68d75f89c2f067b", + "f809893739454d73a8d3d4b5158b4091", + "ca313f0af29b4ba39e7467ded344edc6", + "b3aafd89369646cb80e0977dd4a7f6a5", + "d2b6a6c96eeb4e4589a6a835b4e52f11", + "4fb5d5e93e734046af6ceb013a0229ba", + "8cff1176ddd94464bead0fcea459cc08", + "91bc7228fbb94f0683bf798521777591", + "9548840103e64458a0573ee6c97fc00f", + "e620391f9d1347409b51b7cf2f1b555e", + "ae1094c5e27943cda46b43b7888c2114", + "a956c5c637b04d5cbd109230bf9bb738", + "928ec4b573b24bd9ad24139081dde374", + "033c70a9ced3411aa90e43b0ef7cd8b5", + "37cb938b57d94dab91560f953f4d17a2", + "13f067631577466eb52d7dab241b4003", + "a1706499943c47ae8b03bbbd120aba97", + "1f9457318c594ddcb6b7c8b96d4cdb26", + "7b1c9d26909c443ba099d3c4450b0f19", + "dcfb69b6ee6342798628c0810c37b89c", + "029aa0da172a4a7bbd2b6e6bda440c52", + "6f2fbeb18498432eb08d8ad895f89b46", + "1c38ff38b8c846fcb5203652f5c8d4f4" + ] + }, + "id": "VPPXnDx9t8KI", + "outputId": "1bd7da5f-872c-4830-8279-2b332571c839" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "\u001b[34m\u001b[1mwandb\u001b[0m: Currently logged in as: \u001b[33mrchawda29\u001b[0m. Use \u001b[1m`wandb login --relogin`\u001b[0m to force relogin\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Tracking run with wandb version 0.15.4" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Run data is saved locally in /content/wandb/run-20230620_074559-l72dgp51" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Syncing run experiment_0 to Weights & Biases (docs)
" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View project at https://wandb.ai/rchawda29/basic-intro" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View run at https://wandb.ai/rchawda29/basic-intro/runs/l72dgp51" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Waiting for W&B process to finish... (success)." + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "VBox(children=(Label(value='0.001 MB of 0.009 MB uploaded (0.000 MB deduped)\\r'), FloatProgress(value=0.129079…" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "f11e91c719cf42768cc05c1bb5188bce" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "

Run history:


accβ–„β–β–ˆβ–†β–ˆβ–‡β–ˆβ–ˆ
lossβ–ˆβ–†β–„β–ƒβ–‚β–ƒβ–‚β–

Run summary:


acc0.88454
loss0.06463

" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View run experiment_0 at: https://wandb.ai/rchawda29/basic-intro/runs/l72dgp51
Synced 4 W&B file(s), 0 media file(s), 0 artifact file(s) and 0 other file(s)" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Find logs at: ./wandb/run-20230620_074559-l72dgp51/logs" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Tracking run with wandb version 0.15.4" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Run data is saved locally in /content/wandb/run-20230620_074606-27l5at5i" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Syncing run experiment_1 to Weights & Biases (docs)
" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View project at https://wandb.ai/rchawda29/basic-intro" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View run at https://wandb.ai/rchawda29/basic-intro/runs/27l5at5i" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Waiting for W&B process to finish... (success)." + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "VBox(children=(Label(value='0.001 MB of 0.009 MB uploaded (0.000 MB deduped)\\r'), FloatProgress(value=0.129079…" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "0873388e0f834250875b084b694d78f8" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "

Run history:


accβ–β–‚β–†β–ˆβ–ˆβ–‡β–ˆβ–ˆ
lossβ–ˆβ–‡β–…β–ƒβ–‚β–‚β–‚β–

Run summary:


acc0.91691
loss0.11744

" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View run experiment_1 at: https://wandb.ai/rchawda29/basic-intro/runs/27l5at5i
Synced 4 W&B file(s), 0 media file(s), 0 artifact file(s) and 0 other file(s)" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Find logs at: ./wandb/run-20230620_074606-27l5at5i/logs" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Tracking run with wandb version 0.15.4" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Run data is saved locally in /content/wandb/run-20230620_074613-zgus7nry" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Syncing run experiment_2 to Weights & Biases (docs)
" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View project at https://wandb.ai/rchawda29/basic-intro" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View run at https://wandb.ai/rchawda29/basic-intro/runs/zgus7nry" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Waiting for W&B process to finish... (success)." + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "VBox(children=(Label(value='0.001 MB of 0.009 MB uploaded (0.000 MB deduped)\\r'), FloatProgress(value=0.129092…" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "477e68340ab84c8a8abcc0b04ca631f7" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "

Run history:


accβ–β–…β–†β–ˆβ–‡β–ˆβ–‡β–ˆ
lossβ–ˆβ–…β–ƒβ–„β–ƒβ–‚β–β–

Run summary:


acc0.79091
loss0.20306

" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View run experiment_2 at: https://wandb.ai/rchawda29/basic-intro/runs/zgus7nry
Synced 4 W&B file(s), 0 media file(s), 0 artifact file(s) and 0 other file(s)" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Find logs at: ./wandb/run-20230620_074613-zgus7nry/logs" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Tracking run with wandb version 0.15.4" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Run data is saved locally in /content/wandb/run-20230620_074619-hmtgb9zk" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Syncing run experiment_3 to Weights & Biases (docs)
" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View project at https://wandb.ai/rchawda29/basic-intro" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View run at https://wandb.ai/rchawda29/basic-intro/runs/hmtgb9zk" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Waiting for W&B process to finish... (success)." + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "VBox(children=(Label(value='0.001 MB of 0.009 MB uploaded (0.000 MB deduped)\\r'), FloatProgress(value=0.128988…" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "91bc7228fbb94f0683bf798521777591" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "

Run history:


accβ–β–…β–†β–…β–‡β–‡β–ˆβ–‡
lossβ–ˆβ–ƒβ–‚β–‚β–‚β–β–β–

Run summary:


acc0.79685
loss0.21223

" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View run experiment_3 at: https://wandb.ai/rchawda29/basic-intro/runs/hmtgb9zk
Synced 4 W&B file(s), 0 media file(s), 0 artifact file(s) and 0 other file(s)" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Find logs at: ./wandb/run-20230620_074619-hmtgb9zk/logs" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Tracking run with wandb version 0.15.4" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Run data is saved locally in /content/wandb/run-20230620_074624-t5uhm5xa" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Syncing run experiment_4 to Weights & Biases (docs)
" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View project at https://wandb.ai/rchawda29/basic-intro" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View run at https://wandb.ai/rchawda29/basic-intro/runs/t5uhm5xa" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Waiting for W&B process to finish... (success)." + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "VBox(children=(Label(value='0.001 MB of 0.009 MB uploaded (0.000 MB deduped)\\r'), FloatProgress(value=0.129065…" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "13f067631577466eb52d7dab241b4003" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "

Run history:


accβ–β–ƒβ–†β–†β–ˆβ–‡β–‡β–ˆ
lossβ–ˆβ–„β–†β–‚β–ƒβ–β–ƒβ–ƒ

Run summary:


acc0.9296
loss0.14465

" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View run experiment_4 at: https://wandb.ai/rchawda29/basic-intro/runs/t5uhm5xa
Synced 4 W&B file(s), 0 media file(s), 0 artifact file(s) and 0 other file(s)" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Find logs at: ./wandb/run-20230620_074624-t5uhm5xa/logs" + ] + }, + "metadata": {} + } + ], + "source": [ + "import random\n", + "\n", + "# Launch 5 simulated experiments\n", + "total_runs = 5\n", + "for run in range(total_runs):\n", + " # 🐝 1️⃣ Start a new run to track this script\n", + " wandb.init(\n", + " # Set the project where this run will be logged\n", + " project=\"basic-intro\",\n", + " # We pass a run name (otherwise it’ll be randomly assigned, like sunshine-lollypop-10)\n", + " name=f\"experiment_{run}\",\n", + " # Track hyperparameters and run metadata\n", + " config={\n", + " \"learning_rate\": 0.02,\n", + " \"architecture\": \"CNN\",\n", + " \"dataset\": \"CIFAR-100\",\n", + " \"epochs\": 10,\n", + " })\n", + "\n", + " # This simple block simulates a training loop logging metrics\n", + " epochs = 10\n", + " offset = random.random() / 5\n", + " for epoch in range(2, epochs):\n", + " acc = 1 - 2 ** -epoch - random.random() / epoch - offset\n", + " loss = 2 ** -epoch + random.random() / epoch + offset\n", + "\n", + " # 🐝 2️⃣ Log metrics from your script to W&B\n", + " wandb.log({\"acc\": acc, \"loss\": loss})\n", + "\n", + " # Mark the run as finished\n", + " wandb.finish()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "SCoKXnnot8KI" + }, + "source": [ + "3️⃣ You can find your interactive dashboard by clicking any of the πŸ‘† wandb links above." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Db9mJ_t-t8KI" + }, + "source": [ + "# πŸ”₯ Simple Pytorch Neural Network\n", + "\n", + "πŸ’ͺ Run this model to train a simple MNIST classifier, and click on the project page link to see your results stream in live to a W&B project.\n", + "\n", + "\n", + "Any run in `wandb` automatically logs [metrics](https://docs.wandb.ai/ref/app/pages/run-page#charts-tab),\n", + "[system information](https://docs.wandb.ai/ref/app/pages/run-page#system-tab),\n", + "[hyperparameters](https://docs.wandb.ai/ref/app/pages/run-page#overview-tab),\n", + "[terminal output](https://docs.wandb.ai/ref/app/pages/run-page#logs-tab) and\n", + "you'll see an [interactive table](https://docs.wandb.ai/guides/data-vis)\n", + "with model inputs and outputs." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ts0KvXvWt8KJ" + }, + "source": [ + "## Set up Dataloader" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "id": "NX8RTsS7t8KJ" + }, + "outputs": [], + "source": [ + "#@title\n", + "import wandb\n", + "import math\n", + "import random\n", + "import torch, torchvision\n", + "import torch.nn as nn\n", + "import torchvision.transforms as T\n", + "\n", + "device = \"cuda:0\" if torch.cuda.is_available() else \"cpu\"\n", + "\n", + "def get_dataloader(is_train, batch_size, slice=5):\n", + " \"Get a training dataloader\"\n", + " full_dataset = torchvision.datasets.MNIST(root=\".\", train=is_train, transform=T.ToTensor(), download=True)\n", + " sub_dataset = torch.utils.data.Subset(full_dataset, indices=range(0, len(full_dataset), slice))\n", + " loader = torch.utils.data.DataLoader(dataset=sub_dataset,\n", + " batch_size=batch_size,\n", + " shuffle=True if is_train else False,\n", + " pin_memory=True, num_workers=2)\n", + " return loader\n", + "\n", + "def get_model(dropout):\n", + " \"A simple model\"\n", + " model = nn.Sequential(nn.Flatten(),\n", + " nn.Linear(28*28, 256),\n", + " nn.BatchNorm1d(256),\n", + " nn.ReLU(),\n", + " nn.Dropout(dropout),\n", + " nn.Linear(256,10)).to(device)\n", + " return model\n", + "\n", + "def validate_model(model, valid_dl, loss_func, log_images=False, batch_idx=0):\n", + " \"Compute performance of the model on the validation dataset and log a wandb.Table\"\n", + " model.eval()\n", + " val_loss = 0.\n", + " with torch.inference_mode():\n", + " correct = 0\n", + " for i, (images, labels) in enumerate(valid_dl):\n", + " images, labels = images.to(device), labels.to(device)\n", + "\n", + " # Forward pass ➑\n", + " outputs = model(images)\n", + " val_loss += loss_func(outputs, labels)*labels.size(0)\n", + "\n", + " # Compute accuracy and accumulate\n", + " _, predicted = torch.max(outputs.data, 1)\n", + " correct += (predicted == labels).sum().item()\n", + "\n", + " # Log one batch of images to the dashboard, always same batch_idx.\n", + " if i==batch_idx and log_images:\n", + " log_image_table(images, predicted, labels, outputs.softmax(dim=1))\n", + " return val_loss / len(valid_dl.dataset), correct / len(valid_dl.dataset)\n", + "\n", + "def log_image_table(images, predicted, labels, probs):\n", + " \"Log a wandb.Table with (img, pred, target, scores)\"\n", + " # 🐝 Create a wandb Table to log images, labels and predictions to\n", + " table = wandb.Table(columns=[\"image\", \"pred\", \"target\"]+[f\"score_{i}\" for i in range(10)])\n", + " for img, pred, targ, prob in zip(images.to(\"cpu\"), predicted.to(\"cpu\"), labels.to(\"cpu\"), probs.to(\"cpu\")):\n", + " table.add_data(wandb.Image(img[0].numpy()*255), pred, targ, *prob.numpy())\n", + " wandb.log({\"predictions_table\":table}, commit=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "VDZjU5Qpt8KJ" + }, + "source": [ + "## Train Your Model" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "id": "YHNv8F6-t8KK", + "outputId": "614f95d1-f38e-4245-9538-1f908fffdfee" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Tracking run with wandb version 0.15.4" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Run data is saved locally in /content/wandb/run-20230620_074732-ytdd4ahf" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Syncing run genial-blaze-1 to Weights & Biases (docs)
" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View project at https://wandb.ai/rchawda29/pytorch-intro" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View run at https://wandb.ai/rchawda29/pytorch-intro/runs/ytdd4ahf" + ] + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Downloading http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz\n", + "Downloading http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz to ./MNIST/raw/train-images-idx3-ubyte.gz\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 9912422/9912422 [00:00<00:00, 213865727.26it/s]" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Extracting ./MNIST/raw/train-images-idx3-ubyte.gz to ./MNIST/raw\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "Downloading http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz\n", + "Downloading http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz to ./MNIST/raw/train-labels-idx1-ubyte.gz\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 28881/28881 [00:00<00:00, 42910270.57it/s]" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Extracting ./MNIST/raw/train-labels-idx1-ubyte.gz to ./MNIST/raw\n", + "\n", + "Downloading http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz\n", + "Downloading http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz to ./MNIST/raw/t10k-images-idx3-ubyte.gz\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "\n", + "100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 1648877/1648877 [00:00<00:00, 68359788.04it/s]\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Extracting ./MNIST/raw/t10k-images-idx3-ubyte.gz to ./MNIST/raw\n", + "\n", + "Downloading http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz\n", + "Downloading http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz to ./MNIST/raw/t10k-labels-idx1-ubyte.gz\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 4542/4542 [00:00<00:00, 968014.67it/s]" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Extracting ./MNIST/raw/t10k-labels-idx1-ubyte.gz to ./MNIST/raw\n", + "\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Train Loss: 0.411, Valid Loss: 0.292486, Accuracy: 0.92\n", + "Train Loss: 0.166, Valid Loss: 0.242532, Accuracy: 0.93\n", + "Train Loss: 0.178, Valid Loss: 0.208479, Accuracy: 0.93\n", + "Train Loss: 0.209, Valid Loss: 0.194668, Accuracy: 0.94\n", + "Train Loss: 0.121, Valid Loss: 0.182468, Accuracy: 0.94\n", + "Train Loss: 0.136, Valid Loss: 0.170212, Accuracy: 0.95\n", + "Train Loss: 0.140, Valid Loss: 0.165617, Accuracy: 0.94\n", + "Train Loss: 0.045, Valid Loss: 0.157013, Accuracy: 0.95\n", + "Train Loss: 0.049, Valid Loss: 0.153666, Accuracy: 0.95\n", + "Train Loss: 0.058, Valid Loss: 0.157175, Accuracy: 0.95\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Waiting for W&B process to finish... (success)." + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "

Run history:


train/epochβ–β–β–β–β–‚β–‚β–‚β–‚β–‚β–ƒβ–ƒβ–ƒβ–ƒβ–ƒβ–ƒβ–„β–„β–„β–„β–„β–…β–…β–…β–…β–…β–…β–†β–†β–†β–†β–†β–‡β–‡β–‡β–‡β–‡β–‡β–ˆβ–ˆβ–ˆ
train/example_ctβ–β–β–β–β–‚β–‚β–‚β–‚β–‚β–ƒβ–ƒβ–ƒβ–ƒβ–ƒβ–ƒβ–„β–„β–„β–„β–„β–…β–…β–…β–…β–…β–…β–†β–†β–†β–†β–†β–‡β–‡β–‡β–‡β–‡β–‡β–ˆβ–ˆβ–ˆ
train/train_lossβ–ˆβ–…β–„β–ƒβ–ƒβ–ƒβ–ƒβ–‚β–‚β–‚β–‚β–‚β–‚β–‚β–‚β–‚β–‚β–β–‚β–β–β–‚β–‚β–β–‚β–‚β–β–β–β–‚β–β–β–β–β–β–‚β–β–β–β–
val/val_accuracyβ–β–ƒβ–„β–„β–†β–‡β–†β–‡β–ˆβ–‡
val/val_lossβ–ˆβ–…β–„β–ƒβ–‚β–‚β–‚β–β–β–

Run summary:


test_accuracy0.8
train/epoch10.0
train/example_ct120000
train/train_loss0.05827
val/val_accuracy0.9475
val/val_loss0.15717

" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View run genial-blaze-1 at: https://wandb.ai/rchawda29/pytorch-intro/runs/ytdd4ahf
Synced 5 W&B file(s), 1 media file(s), 257 artifact file(s) and 0 other file(s)" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Find logs at: ./wandb/run-20230620_074732-ytdd4ahf/logs" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Tracking run with wandb version 0.15.4" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Run data is saved locally in /content/wandb/run-20230620_074820-b5bx6v3j" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Syncing run graceful-plasma-2 to Weights & Biases (docs)
" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View project at https://wandb.ai/rchawda29/pytorch-intro" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View run at https://wandb.ai/rchawda29/pytorch-intro/runs/b5bx6v3j" + ] + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Train Loss: 0.459, Valid Loss: 0.336807, Accuracy: 0.91\n", + "Train Loss: 0.351, Valid Loss: 0.273756, Accuracy: 0.92\n", + "Train Loss: 0.351, Valid Loss: 0.247641, Accuracy: 0.93\n", + "Train Loss: 0.507, Valid Loss: 0.227102, Accuracy: 0.93\n", + "Train Loss: 0.235, Valid Loss: 0.215825, Accuracy: 0.94\n", + "Train Loss: 0.153, Valid Loss: 0.208303, Accuracy: 0.93\n", + "Train Loss: 0.256, Valid Loss: 0.198542, Accuracy: 0.94\n", + "Train Loss: 0.248, Valid Loss: 0.190893, Accuracy: 0.94\n", + "Train Loss: 0.259, Valid Loss: 0.191759, Accuracy: 0.94\n", + "Train Loss: 0.263, Valid Loss: 0.187546, Accuracy: 0.94\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Waiting for W&B process to finish... (success)." + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "

Run history:


train/epochβ–β–β–β–β–‚β–‚β–‚β–‚β–‚β–ƒβ–ƒβ–ƒβ–ƒβ–ƒβ–ƒβ–„β–„β–„β–„β–„β–…β–…β–…β–…β–…β–…β–†β–†β–†β–†β–†β–‡β–‡β–‡β–‡β–‡β–‡β–ˆβ–ˆβ–ˆ
train/example_ctβ–β–β–β–β–‚β–‚β–‚β–‚β–‚β–ƒβ–ƒβ–ƒβ–ƒβ–ƒβ–ƒβ–„β–„β–„β–„β–„β–…β–…β–…β–…β–…β–…β–†β–†β–†β–†β–†β–‡β–‡β–‡β–‡β–‡β–‡β–ˆβ–ˆβ–ˆ
train/train_lossβ–ˆβ–…β–„β–ƒβ–ƒβ–‚β–ƒβ–ƒβ–ƒβ–‚β–‚β–‚β–ƒβ–‚β–‚β–‚β–‚β–‚β–‚β–‚β–‚β–‚β–‚β–‚β–‚β–‚β–β–‚β–‚β–β–‚β–β–‚β–‚β–β–β–β–β–β–
val/val_accuracyβ–β–„β–…β–†β–‡β–†β–ˆβ–‡β–‡β–ˆ
val/val_lossβ–ˆβ–…β–„β–ƒβ–‚β–‚β–‚β–β–β–

Run summary:


test_accuracy0.8
train/epoch10.0
train/example_ct120000
train/train_loss0.2626
val/val_accuracy0.9405
val/val_loss0.18755

" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View run graceful-plasma-2 at: https://wandb.ai/rchawda29/pytorch-intro/runs/b5bx6v3j
Synced 5 W&B file(s), 1 media file(s), 257 artifact file(s) and 0 other file(s)" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Find logs at: ./wandb/run-20230620_074820-b5bx6v3j/logs" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Tracking run with wandb version 0.15.4" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Run data is saved locally in /content/wandb/run-20230620_074858-g9dxusrg" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Syncing run dark-sponge-3 to Weights & Biases (docs)
" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View project at https://wandb.ai/rchawda29/pytorch-intro" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View run at https://wandb.ai/rchawda29/pytorch-intro/runs/g9dxusrg" + ] + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Train Loss: 0.384, Valid Loss: 0.297658, Accuracy: 0.92\n", + "Train Loss: 0.271, Valid Loss: 0.241992, Accuracy: 0.93\n", + "Train Loss: 0.235, Valid Loss: 0.219806, Accuracy: 0.93\n", + "Train Loss: 0.162, Valid Loss: 0.206646, Accuracy: 0.94\n", + "Train Loss: 0.204, Valid Loss: 0.189226, Accuracy: 0.94\n", + "Train Loss: 0.159, Valid Loss: 0.185785, Accuracy: 0.94\n", + "Train Loss: 0.102, Valid Loss: 0.172010, Accuracy: 0.95\n", + "Train Loss: 0.149, Valid Loss: 0.166821, Accuracy: 0.95\n", + "Train Loss: 0.138, Valid Loss: 0.156321, Accuracy: 0.95\n", + "Train Loss: 0.122, Valid Loss: 0.161072, Accuracy: 0.95\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Waiting for W&B process to finish... (success)." + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "

Run history:


train/epochβ–β–β–β–β–‚β–‚β–‚β–‚β–‚β–ƒβ–ƒβ–ƒβ–ƒβ–ƒβ–ƒβ–„β–„β–„β–„β–„β–…β–…β–…β–…β–…β–…β–†β–†β–†β–†β–†β–‡β–‡β–‡β–‡β–‡β–‡β–ˆβ–ˆβ–ˆ
train/example_ctβ–β–β–β–β–‚β–‚β–‚β–‚β–‚β–ƒβ–ƒβ–ƒβ–ƒβ–ƒβ–ƒβ–„β–„β–„β–„β–„β–…β–…β–…β–…β–…β–…β–†β–†β–†β–†β–†β–‡β–‡β–‡β–‡β–‡β–‡β–ˆβ–ˆβ–ˆ
train/train_lossβ–ˆβ–„β–„β–ƒβ–ƒβ–ƒβ–‚β–ƒβ–‚β–ƒβ–‚β–‚β–‚β–‚β–β–‚β–β–β–‚β–‚β–‚β–β–‚β–β–β–β–‚β–β–β–β–‚β–β–β–‚β–β–‚β–β–β–β–
val/val_accuracyβ–β–ƒβ–„β–†β–†β–†β–‡β–‡β–ˆβ–ˆ
val/val_lossβ–ˆβ–…β–„β–ƒβ–ƒβ–‚β–‚β–‚β–β–

Run summary:


test_accuracy0.8
train/epoch10.0
train/example_ct120000
train/train_loss0.12211
val/val_accuracy0.9515
val/val_loss0.16107

" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View run dark-sponge-3 at: https://wandb.ai/rchawda29/pytorch-intro/runs/g9dxusrg
Synced 5 W&B file(s), 1 media file(s), 257 artifact file(s) and 0 other file(s)" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Find logs at: ./wandb/run-20230620_074858-g9dxusrg/logs" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Tracking run with wandb version 0.15.4" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Run data is saved locally in /content/wandb/run-20230620_074938-0iz25z1p" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Syncing run denim-pine-4 to Weights & Biases (docs)
" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View project at https://wandb.ai/rchawda29/pytorch-intro" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View run at https://wandb.ai/rchawda29/pytorch-intro/runs/0iz25z1p" + ] + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Train Loss: 0.249, Valid Loss: 0.306176, Accuracy: 0.91\n", + "Train Loss: 0.306, Valid Loss: 0.242913, Accuracy: 0.93\n", + "Train Loss: 0.353, Valid Loss: 0.224740, Accuracy: 0.93\n", + "Train Loss: 0.096, Valid Loss: 0.198601, Accuracy: 0.94\n", + "Train Loss: 0.213, Valid Loss: 0.189731, Accuracy: 0.94\n", + "Train Loss: 0.115, Valid Loss: 0.177869, Accuracy: 0.95\n", + "Train Loss: 0.197, Valid Loss: 0.173276, Accuracy: 0.94\n", + "Train Loss: 0.220, Valid Loss: 0.177377, Accuracy: 0.94\n", + "Train Loss: 0.222, Valid Loss: 0.163168, Accuracy: 0.95\n", + "Train Loss: 0.124, Valid Loss: 0.160757, Accuracy: 0.95\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Waiting for W&B process to finish... (success)." + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "

Run history:


train/epochβ–β–β–β–β–‚β–‚β–‚β–‚β–‚β–ƒβ–ƒβ–ƒβ–ƒβ–ƒβ–ƒβ–„β–„β–„β–„β–„β–…β–…β–…β–…β–…β–…β–†β–†β–†β–†β–†β–‡β–‡β–‡β–‡β–‡β–‡β–ˆβ–ˆβ–ˆ
train/example_ctβ–β–β–β–β–‚β–‚β–‚β–‚β–‚β–ƒβ–ƒβ–ƒβ–ƒβ–ƒβ–ƒβ–„β–„β–„β–„β–„β–…β–…β–…β–…β–…β–…β–†β–†β–†β–†β–†β–‡β–‡β–‡β–‡β–‡β–‡β–ˆβ–ˆβ–ˆ
train/train_lossβ–ˆβ–„β–ƒβ–„β–ƒβ–‚β–‚β–‚β–‚β–‚β–ƒβ–‚β–‚β–‚β–‚β–‚β–β–‚β–‚β–‚β–β–‚β–‚β–β–β–‚β–β–‚β–‚β–‚β–β–‚β–β–β–β–β–β–β–β–
val/val_accuracyβ–β–…β–…β–‡β–‡β–ˆβ–‡β–‡β–ˆβ–ˆ
val/val_lossβ–ˆβ–…β–„β–ƒβ–‚β–‚β–‚β–‚β–β–

Run summary:


test_accuracy0.8
train/epoch10.0
train/example_ct120000
train/train_loss0.12409
val/val_accuracy0.9485
val/val_loss0.16076

" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View run denim-pine-4 at: https://wandb.ai/rchawda29/pytorch-intro/runs/0iz25z1p
Synced 5 W&B file(s), 1 media file(s), 257 artifact file(s) and 0 other file(s)" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Find logs at: ./wandb/run-20230620_074938-0iz25z1p/logs" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Tracking run with wandb version 0.15.4" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Run data is saved locally in /content/wandb/run-20230620_075017-gn4dxjen" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Syncing run driven-disco-5 to Weights & Biases (docs)
" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View project at https://wandb.ai/rchawda29/pytorch-intro" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View run at https://wandb.ai/rchawda29/pytorch-intro/runs/gn4dxjen" + ] + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Train Loss: 0.439, Valid Loss: 0.303936, Accuracy: 0.92\n", + "Train Loss: 0.195, Valid Loss: 0.246950, Accuracy: 0.93\n", + "Train Loss: 0.383, Valid Loss: 0.217149, Accuracy: 0.93\n", + "Train Loss: 0.269, Valid Loss: 0.202271, Accuracy: 0.94\n", + "Train Loss: 0.174, Valid Loss: 0.182781, Accuracy: 0.94\n", + "Train Loss: 0.149, Valid Loss: 0.177183, Accuracy: 0.94\n", + "Train Loss: 0.188, Valid Loss: 0.176381, Accuracy: 0.94\n", + "Train Loss: 0.133, Valid Loss: 0.165880, Accuracy: 0.95\n", + "Train Loss: 0.044, Valid Loss: 0.158186, Accuracy: 0.95\n", + "Train Loss: 0.095, Valid Loss: 0.159812, Accuracy: 0.95\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Waiting for W&B process to finish... (success)." + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "

Run history:


train/epochβ–β–β–β–β–‚β–‚β–‚β–‚β–‚β–ƒβ–ƒβ–ƒβ–ƒβ–ƒβ–ƒβ–„β–„β–„β–„β–„β–…β–…β–…β–…β–…β–…β–†β–†β–†β–†β–†β–‡β–‡β–‡β–‡β–‡β–‡β–ˆβ–ˆβ–ˆ
train/example_ctβ–β–β–β–β–‚β–‚β–‚β–‚β–‚β–ƒβ–ƒβ–ƒβ–ƒβ–ƒβ–ƒβ–„β–„β–„β–„β–„β–…β–…β–…β–…β–…β–…β–†β–†β–†β–†β–†β–‡β–‡β–‡β–‡β–‡β–‡β–ˆβ–ˆβ–ˆ
train/train_lossβ–ˆβ–…β–ƒβ–„β–ƒβ–‚β–‚β–‚β–β–β–ƒβ–‚β–‚β–‚β–‚β–‚β–β–‚β–β–‚β–‚β–β–‚β–β–β–‚β–β–β–β–β–β–‚β–β–β–β–β–β–‚β–β–
val/val_accuracyβ–β–ƒβ–„β–…β–†β–†β–†β–‡β–‡β–ˆ
val/val_lossβ–ˆβ–…β–„β–ƒβ–‚β–‚β–‚β–β–β–

Run summary:


test_accuracy0.8
train/epoch10.0
train/example_ct120000
train/train_loss0.09508
val/val_accuracy0.951
val/val_loss0.15981

" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View run driven-disco-5 at: https://wandb.ai/rchawda29/pytorch-intro/runs/gn4dxjen
Synced 5 W&B file(s), 1 media file(s), 257 artifact file(s) and 0 other file(s)" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Find logs at: ./wandb/run-20230620_075017-gn4dxjen/logs" + ] + }, + "metadata": {} + } + ], + "source": [ + "# Launch 5 experiments, trying different dropout rates\n", + "for _ in range(5):\n", + " # 🐝 initialise a wandb run\n", + " wandb.init(\n", + " project=\"pytorch-intro\",\n", + " config={\n", + " \"epochs\": 10,\n", + " \"batch_size\": 128,\n", + " \"lr\": 1e-3,\n", + " \"dropout\": random.uniform(0.01, 0.80),\n", + " })\n", + "\n", + " # Copy your config\n", + " config = wandb.config\n", + "\n", + " # Get the data\n", + " train_dl = get_dataloader(is_train=True, batch_size=config.batch_size)\n", + " valid_dl = get_dataloader(is_train=False, batch_size=2*config.batch_size)\n", + " n_steps_per_epoch = math.ceil(len(train_dl.dataset) / config.batch_size)\n", + "\n", + " # A simple MLP model\n", + " model = get_model(config.dropout)\n", + "\n", + " # Make the loss and optimizer\n", + " loss_func = nn.CrossEntropyLoss()\n", + " optimizer = torch.optim.Adam(model.parameters(), lr=config.lr)\n", + "\n", + " # Training\n", + " example_ct = 0\n", + " step_ct = 0\n", + " for epoch in range(config.epochs):\n", + " model.train()\n", + " for step, (images, labels) in enumerate(train_dl):\n", + " images, labels = images.to(device), labels.to(device)\n", + "\n", + " outputs = model(images)\n", + " train_loss = loss_func(outputs, labels)\n", + " optimizer.zero_grad()\n", + " train_loss.backward()\n", + " optimizer.step()\n", + "\n", + " example_ct += len(images)\n", + " metrics = {\"train/train_loss\": train_loss,\n", + " \"train/epoch\": (step + 1 + (n_steps_per_epoch * epoch)) / n_steps_per_epoch,\n", + " \"train/example_ct\": example_ct}\n", + "\n", + " if step + 1 < n_steps_per_epoch:\n", + " # 🐝 Log train metrics to wandb\n", + " wandb.log(metrics)\n", + "\n", + " step_ct += 1\n", + "\n", + " val_loss, accuracy = validate_model(model, valid_dl, loss_func, log_images=(epoch==(config.epochs-1)))\n", + "\n", + " # 🐝 Log train and validation metrics to wandb\n", + " val_metrics = {\"val/val_loss\": val_loss,\n", + " \"val/val_accuracy\": accuracy}\n", + " wandb.log({**metrics, **val_metrics})\n", + "\n", + " print(f\"Train Loss: {train_loss:.3f}, Valid Loss: {val_loss:3f}, Accuracy: {accuracy:.2f}\")\n", + "\n", + " # If you had a test set, this is how you could log it as a Summary metric\n", + " wandb.summary['test_accuracy'] = 0.8\n", + "\n", + " # 🐝 Close your wandb run\n", + " wandb.finish()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Q3ml5Jpdt8KK" + }, + "source": [ + "You have now trained your first model using wandb! πŸ‘† Click on the wandb link above to see your metrics" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "g0UiHy0zt8KK" + }, + "source": [ + "# πŸ”” Try W&B Alerts\n", + "\n", + "**[W&B Alerts](https://docs.wandb.ai/guides/track/alert)** allows you to send alerts, triggered from your Python code, to your Slack or email. There are 2 steps to follow the first time you'd like to send a Slack or email alert, triggered from your code:\n", + "\n", + "1) Turn on Alerts in your W&B [User Settings](https://wandb.ai/settings)\n", + "\n", + "2) Add `wandb.alert()` to your code:\n", + "\n", + "```python\n", + "wandb.alert(\n", + " title=\"Low accuracy\",\n", + " text=f\"Accuracy is below the acceptable threshold\"\n", + ")\n", + "```\n", + "\n", + "See the minimal example below to see how to use `wandb.alert`. You can find the full docs for **[W&B Alerts here](https://docs.wandb.ai/guides/track/alert)**" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 512, + "referenced_widgets": [ + "dc28f7e21b5944e98c8e6db6cf9350d7", + "6db6d296f5c24593839230a9ffe06b59", + "f2748e47229340c6b4d8a93026b15c3e", + "5b0e082cb319498dab44ea17d547ac60", + "1b1b097353aa4b0fa1cee3211c56c3b2", + "c89f1e30a84b490383cdce61a9341aa7", + "40eb5d2111364cb8b7c9e8a12b8356df", + "4f399058781442f4a5bcaf565e30545a" + ] + }, + "id": "Q5MRRFP9t8KK", + "outputId": "b183e7aa-78f6-4939-caf7-98b6be2e45fd" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Tracking run with wandb version 0.15.4" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Run data is saved locally in /content/wandb/run-20230620_075127-91yxcdmb" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Syncing run polar-brook-6 to Weights & Biases (docs)
" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View project at https://wandb.ai/rchawda29/pytorch-intro" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View run at https://wandb.ai/rchawda29/pytorch-intro/runs/91yxcdmb" + ] + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Accuracy is: 1.538, 0.3\n", + "Accuracy is: 1.492, 0.3\n", + "Accuracy is: 0.62, 0.3\n", + "Accuracy is: 1.352, 0.3\n", + "Accuracy is: 0.708, 0.3\n", + "Accuracy is: 1.156, 0.3\n", + "Accuracy is: 1.512, 0.3\n", + "Accuracy is: 0.125, 0.3\n", + "Alert triggered\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Waiting for W&B process to finish... (success)." + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "VBox(children=(Label(value='0.001 MB of 0.001 MB uploaded (0.000 MB deduped)\\r'), FloatProgress(value=1.0, max…" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "dc28f7e21b5944e98c8e6db6cf9350d7" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "

Run history:


Accuracyβ–ˆβ–ˆβ–ƒβ–‡β–„β–†β–ˆβ–

Run summary:


Accuracy0.125

" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + " View run polar-brook-6 at: https://wandb.ai/rchawda29/pytorch-intro/runs/91yxcdmb
Synced 5 W&B file(s), 0 media file(s), 0 artifact file(s) and 0 other file(s)" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "Find logs at: ./wandb/run-20230620_075127-91yxcdmb/logs" + ] + }, + "metadata": {} + } + ], + "source": [ + "# Start a wandb run\n", + "wandb.init(project=\"pytorch-intro\")\n", + "\n", + "# Simulating a model training loop\n", + "acc_threshold = 0.3\n", + "for training_step in range(1000):\n", + "\n", + " # Generate a random number for accuracy\n", + " accuracy = round(random.random() + random.random(), 3)\n", + " print(f'Accuracy is: {accuracy}, {acc_threshold}')\n", + "\n", + " # 🐝 Log accuracy to wandb\n", + " wandb.log({\"Accuracy\": accuracy})\n", + "\n", + " # πŸ”” If the accuracy is below the threshold, fire a W&B Alert and stop the run\n", + " if accuracy <= acc_threshold:\n", + " # 🐝 Send the wandb Alert\n", + " wandb.alert(\n", + " title='Low Accuracy',\n", + " text=f'Accuracy {accuracy} at step {training_step} is below the acceptable theshold, {acc_threshold}',\n", + " )\n", + " print('Alert triggered')\n", + " break\n", + "\n", + "# Mark the run as finished (useful in Jupyter notebooks)\n", + "wandb.finish()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "RYzn2rx3t8KL" + }, + "source": [ + "\n", + "# What's next πŸš€ ?\n", + "The next tutorial you will learn how to do hyperparameter optimization using W&B Sweeps:\n", + "## πŸ‘‰ [Hyperparameters sweeps using PyTorch](https://colab.research.google.com/github/wandb/examples/blob/master/colabs/pytorch/Organizing_Hyperparameter_Sweeps_in_PyTorch_with_W%26B.ipynb)" + ] + } + ], + "metadata": { + "accelerator": "GPU", + "colab": { + "provenance": [], + "toc_visible": true, + "include_colab_link": true + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "f11e91c719cf42768cc05c1bb5188bce": { + "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_9e5b273035134707961ec280e95fb6e8", + "IPY_MODEL_07ec0669291746fdb522bc4cf4516ac4" + ], + "layout": "IPY_MODEL_9994bd5bc3f64c679e182e1ec7b50815" + } + }, + "9e5b273035134707961ec280e95fb6e8": { + "model_module": "@jupyter-widgets/controls", + "model_name": "LabelModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "LabelModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "LabelView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_0816abeb0d174911bd52ed10ad57831f", + "placeholder": "​", + "style": "IPY_MODEL_337ab30bfbb8434fab95bb4bf12808bd", + "value": "0.001 MB of 0.009 MB uploaded (0.000 MB deduped)\r" + } + }, + "07ec0669291746fdb522bc4cf4516ac4": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_cdaaa28cc8ea4a61a1f7a7a47c9fafe4", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_842dc67eaf5941068e2c4fbcba7e03e1", + "value": 0.12907919351486177 + } + }, + "9994bd5bc3f64c679e182e1ec7b50815": { + "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 + } + }, + "0816abeb0d174911bd52ed10ad57831f": { + "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 + } + }, + "337ab30bfbb8434fab95bb4bf12808bd": { + "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": "" + } + }, + "cdaaa28cc8ea4a61a1f7a7a47c9fafe4": { + "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 + } + }, + "842dc67eaf5941068e2c4fbcba7e03e1": { + "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": "" + } + }, + "0873388e0f834250875b084b694d78f8": { + "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_2dd1526be3734a7a8740e867d86b4263", + "IPY_MODEL_3b6060a1767b46b098cc87de3efd6885" + ], + "layout": "IPY_MODEL_b3b0978b144d4fbd97771431aeb98600" + } + }, + "2dd1526be3734a7a8740e867d86b4263": { + "model_module": "@jupyter-widgets/controls", + "model_name": "LabelModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "LabelModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "LabelView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_ef37b045d3ae4cfa8550ed2b96ebe5fa", + "placeholder": "​", + "style": "IPY_MODEL_af3a6514c86b4e5688260e1915aa0d14", + "value": "0.001 MB of 0.009 MB uploaded (0.000 MB deduped)\r" + } + }, + "3b6060a1767b46b098cc87de3efd6885": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_e5b6b2805d414ceba996d75fc59c8521", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_d68f4cd9aaa14cffaabc581aaded28f2", + "value": 0.12907919351486177 + } + }, + "b3b0978b144d4fbd97771431aeb98600": { + "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 + } + }, + "ef37b045d3ae4cfa8550ed2b96ebe5fa": { + "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 + } + }, + "af3a6514c86b4e5688260e1915aa0d14": { + "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": "" + } + }, + "e5b6b2805d414ceba996d75fc59c8521": { + "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 + } + }, + "d68f4cd9aaa14cffaabc581aaded28f2": { + "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": "" + } + }, + "477e68340ab84c8a8abcc0b04ca631f7": { + "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_85c7932299b9421eb68d75f89c2f067b", + "IPY_MODEL_f809893739454d73a8d3d4b5158b4091" + ], + "layout": "IPY_MODEL_ca313f0af29b4ba39e7467ded344edc6" + } + }, + "85c7932299b9421eb68d75f89c2f067b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "LabelModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "LabelModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "LabelView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_b3aafd89369646cb80e0977dd4a7f6a5", + "placeholder": "​", + "style": "IPY_MODEL_d2b6a6c96eeb4e4589a6a835b4e52f11", + "value": "0.001 MB of 0.009 MB uploaded (0.000 MB deduped)\r" + } + }, + "f809893739454d73a8d3d4b5158b4091": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_4fb5d5e93e734046af6ceb013a0229ba", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_8cff1176ddd94464bead0fcea459cc08", + "value": 0.12909260991580918 + } + }, + "ca313f0af29b4ba39e7467ded344edc6": { + "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 + } + }, + "b3aafd89369646cb80e0977dd4a7f6a5": { + "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 + } + }, + "d2b6a6c96eeb4e4589a6a835b4e52f11": { + "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": "" + } + }, + "4fb5d5e93e734046af6ceb013a0229ba": { + "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 + } + }, + "8cff1176ddd94464bead0fcea459cc08": { + "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": "" + } + }, + "91bc7228fbb94f0683bf798521777591": { + "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_9548840103e64458a0573ee6c97fc00f", + "IPY_MODEL_e620391f9d1347409b51b7cf2f1b555e" + ], + "layout": "IPY_MODEL_ae1094c5e27943cda46b43b7888c2114" + } + }, + "9548840103e64458a0573ee6c97fc00f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "LabelModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "LabelModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "LabelView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_a956c5c637b04d5cbd109230bf9bb738", + "placeholder": "​", + "style": "IPY_MODEL_928ec4b573b24bd9ad24139081dde374", + "value": "0.001 MB of 0.009 MB uploaded (0.000 MB deduped)\r" + } + }, + "e620391f9d1347409b51b7cf2f1b555e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_033c70a9ced3411aa90e43b0ef7cd8b5", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_37cb938b57d94dab91560f953f4d17a2", + "value": 0.12898867061636005 + } + }, + "ae1094c5e27943cda46b43b7888c2114": { + "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 + } + }, + "a956c5c637b04d5cbd109230bf9bb738": { + "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 + } + }, + "928ec4b573b24bd9ad24139081dde374": { + "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": "" + } + }, + "033c70a9ced3411aa90e43b0ef7cd8b5": { + "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 + } + }, + "37cb938b57d94dab91560f953f4d17a2": { + "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": "" + } + }, + "13f067631577466eb52d7dab241b4003": { + "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_a1706499943c47ae8b03bbbd120aba97", + "IPY_MODEL_1f9457318c594ddcb6b7c8b96d4cdb26" + ], + "layout": "IPY_MODEL_7b1c9d26909c443ba099d3c4450b0f19" + } + }, + "a1706499943c47ae8b03bbbd120aba97": { + "model_module": "@jupyter-widgets/controls", + "model_name": "LabelModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "LabelModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "LabelView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_dcfb69b6ee6342798628c0810c37b89c", + "placeholder": "​", + "style": "IPY_MODEL_029aa0da172a4a7bbd2b6e6bda440c52", + "value": "0.001 MB of 0.009 MB uploaded (0.000 MB deduped)\r" + } + }, + "1f9457318c594ddcb6b7c8b96d4cdb26": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_6f2fbeb18498432eb08d8ad895f89b46", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_1c38ff38b8c846fcb5203652f5c8d4f4", + "value": 0.12906577990231735 + } + }, + "7b1c9d26909c443ba099d3c4450b0f19": { + "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 + } + }, + "dcfb69b6ee6342798628c0810c37b89c": { + "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 + } + }, + "029aa0da172a4a7bbd2b6e6bda440c52": { + "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": "" + } + }, + "6f2fbeb18498432eb08d8ad895f89b46": { + "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 + } + }, + "1c38ff38b8c846fcb5203652f5c8d4f4": { + "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": "" + } + }, + "dc28f7e21b5944e98c8e6db6cf9350d7": { + "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_6db6d296f5c24593839230a9ffe06b59", + "IPY_MODEL_f2748e47229340c6b4d8a93026b15c3e" + ], + "layout": "IPY_MODEL_5b0e082cb319498dab44ea17d547ac60" + } + }, + "6db6d296f5c24593839230a9ffe06b59": { + "model_module": "@jupyter-widgets/controls", + "model_name": "LabelModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "LabelModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "LabelView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_1b1b097353aa4b0fa1cee3211c56c3b2", + "placeholder": "​", + "style": "IPY_MODEL_c89f1e30a84b490383cdce61a9341aa7", + "value": "0.001 MB of 0.009 MB uploaded (0.000 MB deduped)\r" + } + }, + "f2748e47229340c6b4d8a93026b15c3e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_40eb5d2111364cb8b7c9e8a12b8356df", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_4f399058781442f4a5bcaf565e30545a", + "value": 0.12825547747002894 + } + }, + "5b0e082cb319498dab44ea17d547ac60": { + "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 + } + }, + "1b1b097353aa4b0fa1cee3211c56c3b2": { + "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 + } + }, + "c89f1e30a84b490383cdce61a9341aa7": { + "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": "" + } + }, + "40eb5d2111364cb8b7c9e8a12b8356df": { + "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 + } + }, + "4f399058781442f4a5bcaf565e30545a": { + "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": "" + } + } + } + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file