{"cells": [{"cell_type": "markdown", "id": "3c91bf6c", "metadata": {"papermill": {"duration": 0.109446, "end_time": "2021-11-08T23:18:33.264784", "exception": false, "start_time": "2021-11-08T23:18:33.155338", "status": "completed"}, "tags": []}, "source": ["\n", "# Introduction to Pytorch Lightning\n", "\n", "* **Author:** PL team\n", "* **License:** CC BY-SA\n", "* **Generated:** 2021-11-09T00:18:24.296916\n", "\n", "In this notebook, we'll go over the basics of lightning by preparing models to train on the [MNIST Handwritten Digits dataset](https://en.wikipedia.org/wiki/MNIST_database).\n", "\n", "---\n", "Open in [![Open In Colab](data:image/png;base64,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){height=\"20px\" width=\"117px\"}](https://colab.research.google.com/github/PytorchLightning/lightning-tutorials/blob/publication/.notebooks/lightning_examples/mnist-hello-world.ipynb)\n", "\n", "Give us a \u2b50 [on Github](https://www.github.com/PytorchLightning/pytorch-lightning/)\n", "| Check out [the documentation](https://pytorch-lightning.readthedocs.io/en/latest/)\n", "| Join us [on Slack](https://join.slack.com/t/pytorch-lightning/shared_invite/zt-pw5v393p-qRaDgEk24~EjiZNBpSQFgQ)"]}, {"cell_type": "markdown", "id": "eadb9873", "metadata": {"papermill": {"duration": 0.038869, "end_time": "2021-11-08T23:18:34.547855", "exception": false, "start_time": "2021-11-08T23:18:34.508986", "status": "completed"}, "tags": []}, "source": ["## Setup\n", "This notebook requires some packages besides pytorch-lightning."]}, {"cell_type": "code", "execution_count": 1, "id": "c32e6f21", "metadata": {"colab": {}, "colab_type": "code", "execution": {"iopub.execute_input": "2021-11-08T23:18:34.654760Z", "iopub.status.busy": "2021-11-08T23:18:34.650271Z", "iopub.status.idle": "2021-11-08T23:18:37.117611Z", "shell.execute_reply": "2021-11-08T23:18:37.117990Z"}, "id": "LfrJLKPFyhsK", "lines_to_next_cell": 0, "papermill": {"duration": 2.510507, "end_time": "2021-11-08T23:18:37.118224", "exception": false, "start_time": "2021-11-08T23:18:34.607717", "status": "completed"}, "tags": []}, "outputs": [], "source": ["! pip install --quiet \"torchvision\" \"torch>=1.6, <1.9\" \"pytorch-lightning>=1.3\" \"torchmetrics>=0.3\""]}, {"cell_type": "code", "execution_count": 2, "id": "d3e3c486", "metadata": {"execution": {"iopub.execute_input": "2021-11-08T23:18:37.179082Z", "iopub.status.busy": "2021-11-08T23:18:37.178607Z", "iopub.status.idle": "2021-11-08T23:18:38.335674Z", "shell.execute_reply": "2021-11-08T23:18:38.335229Z"}, "papermill": {"duration": 1.189224, "end_time": "2021-11-08T23:18:38.335791", "exception": false, "start_time": "2021-11-08T23:18:37.146567", "status": "completed"}, "tags": []}, "outputs": [], "source": ["import os\n", "\n", "import torch\n", "from pytorch_lightning import LightningModule, Trainer\n", "from torch import nn\n", "from torch.nn import functional as F\n", "from torch.utils.data import DataLoader, random_split\n", "from torchmetrics import Accuracy\n", "from torchvision import transforms\n", "from torchvision.datasets import MNIST\n", "\n", "PATH_DATASETS = os.environ.get(\"PATH_DATASETS\", \".\")\n", "AVAIL_GPUS = min(1, torch.cuda.device_count())\n", "BATCH_SIZE = 256 if AVAIL_GPUS else 64"]}, {"cell_type": "markdown", "id": "9dfc4214", "metadata": {"lines_to_next_cell": 2, "papermill": {"duration": 0.028707, "end_time": "2021-11-08T23:18:38.393310", "exception": false, "start_time": "2021-11-08T23:18:38.364603", "status": "completed"}, "tags": []}, "source": ["## Simplest example\n", "\n", "Here's the simplest most minimal example with just a training loop (no validation, no testing).\n", "\n", "**Keep in Mind** - A `LightningModule` *is* a PyTorch `nn.Module` - it just has a few more helpful features."]}, {"cell_type": "code", "execution_count": 3, "id": "01833275", "metadata": {"execution": {"iopub.execute_input": "2021-11-08T23:18:38.459823Z", "iopub.status.busy": "2021-11-08T23:18:38.459352Z", "iopub.status.idle": "2021-11-08T23:18:38.461500Z", "shell.execute_reply": "2021-11-08T23:18:38.461030Z"}, "papermill": {"duration": 0.035319, "end_time": "2021-11-08T23:18:38.461602", "exception": false, "start_time": "2021-11-08T23:18:38.426283", "status": "completed"}, "tags": []}, "outputs": [], "source": ["class MNISTModel(LightningModule):\n", " def __init__(self):\n", " super().__init__()\n", " self.l1 = torch.nn.Linear(28 * 28, 10)\n", "\n", " def forward(self, x):\n", " return torch.relu(self.l1(x.view(x.size(0), -1)))\n", "\n", " def training_step(self, batch, batch_nb):\n", " x, y = batch\n", " loss = F.cross_entropy(self(x), y)\n", " return loss\n", "\n", " def configure_optimizers(self):\n", " return torch.optim.Adam(self.parameters(), lr=0.02)"]}, {"cell_type": "markdown", "id": "b9afdf04", "metadata": {"papermill": {"duration": 0.027934, "end_time": "2021-11-08T23:18:38.517704", "exception": false, "start_time": "2021-11-08T23:18:38.489770", "status": "completed"}, "tags": []}, "source": ["By using the `Trainer` you automatically get:\n", "1. Tensorboard logging\n", "2. Model checkpointing\n", "3. Training and validation loop\n", "4. early-stopping"]}, {"cell_type": "code", "execution_count": 4, "id": "3a94a85b", "metadata": {"execution": {"iopub.execute_input": "2021-11-08T23:18:38.577685Z", "iopub.status.busy": "2021-11-08T23:18:38.577207Z", "iopub.status.idle": "2021-11-08T23:18:58.656793Z", "shell.execute_reply": "2021-11-08T23:18:58.656365Z"}, "papermill": {"duration": 20.111137, "end_time": "2021-11-08T23:18:58.656912", "exception": false, "start_time": "2021-11-08T23:18:38.545775", "status": "completed"}, "tags": []}, "outputs": [{"name": "stderr", "output_type": "stream", "text": ["/home/AzDevOps_azpcontainer/.local/lib/python3.9/site-packages/pytorch_lightning/trainer/connectors/callback_connector.py:90: LightningDeprecationWarning: Setting `Trainer(progress_bar_refresh_rate=20)` is deprecated in v1.5 and will be removed in v1.7. Please pass `pytorch_lightning.callbacks.progress.TQDMProgressBar` with `refresh_rate` directly to the Trainer's `callbacks` argument instead. Or, to disable the progress bar pass `enable_progress_bar = False` to the Trainer.\n", " rank_zero_deprecation(\n", "GPU available: True, used: True\n"]}, {"name": "stderr", "output_type": "stream", "text": ["TPU available: False, using: 0 TPU cores\n"]}, {"name": "stderr", "output_type": "stream", "text": ["IPU available: False, using: 0 IPUs\n"]}, {"name": "stderr", "output_type": "stream", "text": ["LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0,1]\n"]}, {"name": "stderr", "output_type": "stream", "text": ["\n", " | Name | Type | Params\n", "--------------------------------\n", "0 | l1 | Linear | 7.9 K \n", "--------------------------------\n", "7.9 K Trainable params\n", "0 Non-trainable params\n", "7.9 K Total params\n", "0.031 Total estimated model params size (MB)\n"]}, {"name": "stderr", "output_type": "stream", "text": ["/home/AzDevOps_azpcontainer/.local/lib/python3.9/site-packages/pytorch_lightning/trainer/data_loading.py:110: UserWarning: The dataloader, train_dataloader, does not have many workers which may be a bottleneck. Consider increasing the value of the `num_workers` argument` (try 12 which is the number of cpus on this machine) in the `DataLoader` init to improve performance.\n", " rank_zero_warn(\n"]}, {"data": {"application/vnd.jupyter.widget-view+json": {"model_id": "4ae55b50b9e643ae9f9e89899e1349e4", "version_major": 2, "version_minor": 0}, "text/plain": ["Training: 0it [00:00, ?it/s]"]}, "metadata": {}, "output_type": "display_data"}], "source": ["# Init our model\n", "mnist_model = MNISTModel()\n", "\n", "# Init DataLoader from MNIST Dataset\n", "train_ds = MNIST(PATH_DATASETS, train=True, download=True, transform=transforms.ToTensor())\n", "train_loader = DataLoader(train_ds, batch_size=BATCH_SIZE)\n", "\n", "# Initialize a trainer\n", "trainer = Trainer(\n", " gpus=AVAIL_GPUS,\n", " max_epochs=3,\n", " progress_bar_refresh_rate=20,\n", ")\n", "\n", "# Train the model \u26a1\n", "trainer.fit(mnist_model, train_loader)"]}, {"cell_type": "markdown", "id": "d300bf04", "metadata": {"lines_to_next_cell": 2, "papermill": {"duration": 0.034159, "end_time": "2021-11-08T23:18:58.726532", "exception": false, "start_time": "2021-11-08T23:18:58.692373", "status": "completed"}, "tags": []}, "source": ["## A more complete MNIST Lightning Module Example\n", "\n", "That wasn't so hard was it?\n", "\n", "Now that we've got our feet wet, let's dive in a bit deeper and write a more complete `LightningModule` for MNIST...\n", "\n", "This time, we'll bake in all the dataset specific pieces directly in the `LightningModule`.\n", "This way, we can avoid writing extra code at the beginning of our script every time we want to run it.\n", "\n", "---\n", "\n", "### Note what the following built-in functions are doing:\n", "\n", "1. [prepare_data()](https://pytorch-lightning.readthedocs.io/en/latest/api/pytorch_lightning.core.lightning.html#pytorch_lightning.core.lightning.LightningModule.prepare_data) \ud83d\udcbe\n", " - This is where we can download the dataset. We point to our desired dataset and ask torchvision's `MNIST` dataset class to download if the dataset isn't found there.\n", " - **Note we do not make any state assignments in this function** (i.e. `self.something = ...`)\n", "\n", "2. [setup(stage)](https://pytorch-lightning.readthedocs.io/en/latest/common/lightning-module.html#setup) \u2699\ufe0f\n", " - Loads in data from file and prepares PyTorch tensor datasets for each split (train, val, test).\n", " - Setup expects a 'stage' arg which is used to separate logic for 'fit' and 'test'.\n", " - If you don't mind loading all your datasets at once, you can set up a condition to allow for both 'fit' related setup and 'test' related setup to run whenever `None` is passed to `stage` (or ignore it altogether and exclude any conditionals).\n", " - **Note this runs across all GPUs and it *is* safe to make state assignments here**\n", "\n", "3. [x_dataloader()](https://pytorch-lightning.readthedocs.io/en/latest/common/lightning-module.html#data-hooks) \u267b\ufe0f\n", " - `train_dataloader()`, `val_dataloader()`, and `test_dataloader()` all return PyTorch `DataLoader` instances that are created by wrapping their respective datasets that we prepared in `setup()`"]}, {"cell_type": "code", "execution_count": 5, "id": "04a05d49", "metadata": {"execution": {"iopub.execute_input": "2021-11-08T23:18:58.801918Z", "iopub.status.busy": "2021-11-08T23:18:58.796713Z", "iopub.status.idle": "2021-11-08T23:18:58.808546Z", "shell.execute_reply": "2021-11-08T23:18:58.808072Z"}, "papermill": {"duration": 0.048055, "end_time": "2021-11-08T23:18:58.808661", "exception": false, "start_time": "2021-11-08T23:18:58.760606", "status": "completed"}, "tags": []}, "outputs": [], "source": ["class LitMNIST(LightningModule):\n", " def __init__(self, data_dir=PATH_DATASETS, hidden_size=64, learning_rate=2e-4):\n", "\n", " super().__init__()\n", "\n", " # Set our init args as class attributes\n", " self.data_dir = data_dir\n", " self.hidden_size = hidden_size\n", " self.learning_rate = learning_rate\n", "\n", " # Hardcode some dataset specific attributes\n", " self.num_classes = 10\n", " self.dims = (1, 28, 28)\n", " channels, width, height = self.dims\n", " self.transform = transforms.Compose(\n", " [\n", " transforms.ToTensor(),\n", " transforms.Normalize((0.1307,), (0.3081,)),\n", " ]\n", " )\n", "\n", " # Define PyTorch model\n", " self.model = nn.Sequential(\n", " nn.Flatten(),\n", " nn.Linear(channels * width * height, hidden_size),\n", " nn.ReLU(),\n", " nn.Dropout(0.1),\n", " nn.Linear(hidden_size, hidden_size),\n", " nn.ReLU(),\n", " nn.Dropout(0.1),\n", " nn.Linear(hidden_size, self.num_classes),\n", " )\n", "\n", " self.accuracy = Accuracy()\n", "\n", " def forward(self, x):\n", " x = self.model(x)\n", " return F.log_softmax(x, dim=1)\n", "\n", " def training_step(self, batch, batch_idx):\n", " x, y = batch\n", " logits = self(x)\n", " loss = F.nll_loss(logits, y)\n", " return loss\n", "\n", " def validation_step(self, batch, batch_idx):\n", " x, y = batch\n", " logits = self(x)\n", " loss = F.nll_loss(logits, y)\n", " preds = torch.argmax(logits, dim=1)\n", " self.accuracy(preds, y)\n", "\n", " # Calling self.log will surface up scalars for you in TensorBoard\n", " self.log(\"val_loss\", loss, prog_bar=True)\n", " self.log(\"val_acc\", self.accuracy, prog_bar=True)\n", " return loss\n", "\n", " def test_step(self, batch, batch_idx):\n", " # Here we just reuse the validation_step for testing\n", " return self.validation_step(batch, batch_idx)\n", "\n", " def configure_optimizers(self):\n", " optimizer = torch.optim.Adam(self.parameters(), lr=self.learning_rate)\n", " return optimizer\n", "\n", " ####################\n", " # DATA RELATED HOOKS\n", " ####################\n", "\n", " def prepare_data(self):\n", " # download\n", " MNIST(self.data_dir, train=True, download=True)\n", " MNIST(self.data_dir, train=False, download=True)\n", "\n", " def setup(self, stage=None):\n", "\n", " # Assign train/val datasets for use in dataloaders\n", " if stage == \"fit\" or stage is None:\n", " mnist_full = MNIST(self.data_dir, train=True, transform=self.transform)\n", " self.mnist_train, self.mnist_val = random_split(mnist_full, [55000, 5000])\n", "\n", " # Assign test dataset for use in dataloader(s)\n", " if stage == \"test\" or stage is None:\n", " self.mnist_test = MNIST(self.data_dir, train=False, transform=self.transform)\n", "\n", " def train_dataloader(self):\n", " return DataLoader(self.mnist_train, batch_size=BATCH_SIZE)\n", "\n", " def val_dataloader(self):\n", " return DataLoader(self.mnist_val, batch_size=BATCH_SIZE)\n", "\n", " def test_dataloader(self):\n", " return DataLoader(self.mnist_test, batch_size=BATCH_SIZE)"]}, {"cell_type": "code", "execution_count": 6, "id": "201dca2c", "metadata": {"execution": {"iopub.execute_input": "2021-11-08T23:18:58.879727Z", "iopub.status.busy": "2021-11-08T23:18:58.879256Z", "iopub.status.idle": "2021-11-08T23:19:30.773813Z", "shell.execute_reply": "2021-11-08T23:19:30.773324Z"}, "papermill": {"duration": 31.931456, "end_time": "2021-11-08T23:19:30.773928", "exception": false, "start_time": "2021-11-08T23:18:58.842472", "status": "completed"}, "tags": []}, "outputs": [{"name": "stderr", "output_type": "stream", "text": ["GPU available: True, used: True\n"]}, {"name": "stderr", "output_type": "stream", "text": ["TPU available: False, using: 0 TPU cores\n"]}, {"name": "stderr", "output_type": "stream", "text": ["IPU available: False, using: 0 IPUs\n"]}, {"name": "stderr", "output_type": "stream", "text": ["LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0,1]\n"]}, {"name": "stderr", "output_type": "stream", "text": ["\n", " | Name | Type | Params\n", "----------------------------------------\n", "0 | model | Sequential | 55.1 K\n", "1 | accuracy | Accuracy | 0 \n", "----------------------------------------\n", "55.1 K Trainable params\n", "0 Non-trainable params\n", "55.1 K Total params\n", "0.220 Total estimated model params size (MB)\n"]}, {"data": {"application/vnd.jupyter.widget-view+json": {"model_id": "b1b790abe58c4f228d1bb29faea6415d", "version_major": 2, "version_minor": 0}, "text/plain": ["Validation sanity check: 0it [00:00, ?it/s]"]}, "metadata": {}, "output_type": "display_data"}, {"name": "stderr", "output_type": "stream", "text": ["/home/AzDevOps_azpcontainer/.local/lib/python3.9/site-packages/pytorch_lightning/trainer/data_loading.py:110: UserWarning: The dataloader, val_dataloader 0, does not have many workers which may be a bottleneck. Consider increasing the value of the `num_workers` argument` (try 12 which is the number of cpus on this machine) in the `DataLoader` init to improve performance.\n", " rank_zero_warn(\n"]}, {"data": {"application/vnd.jupyter.widget-view+json": {"model_id": "e48b30df90c7435f886cf1c69d483ae9", "version_major": 2, "version_minor": 0}, "text/plain": ["Training: 0it [00:00, ?it/s]"]}, "metadata": {}, "output_type": "display_data"}, {"data": {"application/vnd.jupyter.widget-view+json": {"model_id": "2b238e5fa8964e0980876d1934e4dafe", "version_major": 2, "version_minor": 0}, "text/plain": ["Validating: 0it [00:00, ?it/s]"]}, "metadata": {}, "output_type": "display_data"}, {"data": {"application/vnd.jupyter.widget-view+json": {"model_id": "a050f439a12641fc8808d7ff8aca8c36", "version_major": 2, "version_minor": 0}, "text/plain": ["Validating: 0it [00:00, ?it/s]"]}, "metadata": {}, "output_type": "display_data"}, {"data": {"application/vnd.jupyter.widget-view+json": {"model_id": "47c3bfd0e4414c5a8018d97426e210f8", "version_major": 2, "version_minor": 0}, "text/plain": ["Validating: 0it [00:00, ?it/s]"]}, "metadata": {}, "output_type": "display_data"}], "source": ["model = LitMNIST()\n", "trainer = Trainer(\n", " gpus=AVAIL_GPUS,\n", " max_epochs=3,\n", " progress_bar_refresh_rate=20,\n", ")\n", "trainer.fit(model)"]}, {"cell_type": "markdown", "id": "fff2ef09", "metadata": {"papermill": {"duration": 0.043891, "end_time": "2021-11-08T23:19:30.862291", "exception": false, "start_time": "2021-11-08T23:19:30.818400", "status": "completed"}, "tags": []}, "source": ["### Testing\n", "\n", "To test a model, call `trainer.test(model)`.\n", "\n", "Or, if you've just trained a model, you can just call `trainer.test()` and Lightning will automatically\n", "test using the best saved checkpoint (conditioned on val_loss)."]}, {"cell_type": "code", "execution_count": 7, "id": "7da7e9c5", "metadata": {"execution": {"iopub.execute_input": "2021-11-08T23:19:30.957784Z", "iopub.status.busy": "2021-11-08T23:19:30.957319Z", "iopub.status.idle": "2021-11-08T23:19:32.780140Z", "shell.execute_reply": "2021-11-08T23:19:32.779654Z"}, "papermill": {"duration": 1.86963, "end_time": "2021-11-08T23:19:32.780255", "exception": false, "start_time": "2021-11-08T23:19:30.910625", "status": "completed"}, "tags": []}, "outputs": [{"name": "stderr", "output_type": "stream", "text": ["/home/AzDevOps_azpcontainer/.local/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py:1391: UserWarning: `.test(ckpt_path=None)` was called without a model. The best model of the previous `fit` call will be used. You can pass `test(ckpt_path='best')` to use and best model checkpoint and avoid this warning or `ckpt_path=trainer.model_checkpoint.last_model_path` to use the last model.\n", " rank_zero_warn(\n", "Restoring states from the checkpoint path at /__w/1/s/lightning_logs/version_1/checkpoints/epoch=2-step=644.ckpt\n"]}, {"name": "stderr", "output_type": "stream", "text": ["LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0,1]\n"]}, {"name": "stderr", "output_type": "stream", "text": ["Loaded model weights from checkpoint at /__w/1/s/lightning_logs/version_1/checkpoints/epoch=2-step=644.ckpt\n"]}, {"name": "stderr", "output_type": "stream", "text": ["/home/AzDevOps_azpcontainer/.local/lib/python3.9/site-packages/pytorch_lightning/trainer/data_loading.py:110: UserWarning: The dataloader, test_dataloader 0, does not have many workers which may be a bottleneck. Consider increasing the value of the `num_workers` argument` (try 12 which is the number of cpus on this machine) in the `DataLoader` init to improve performance.\n", " rank_zero_warn(\n"]}, {"data": {"application/vnd.jupyter.widget-view+json": {"model_id": "7e266dcfa5c34b1286ee6835687283fc", "version_major": 2, "version_minor": 0}, "text/plain": ["Testing: 0it [00:00, ?it/s]"]}, "metadata": {}, "output_type": "display_data"}, {"name": "stdout", "output_type": "stream", "text": ["--------------------------------------------------------------------------------\n", "DATALOADER:0 TEST RESULTS\n", "{'val_acc': 0.9241999983787537, 'val_loss': 0.25223809480667114}\n", "--------------------------------------------------------------------------------\n"]}, {"data": {"text/plain": ["[{'val_loss': 0.25223809480667114, 'val_acc': 0.9241999983787537}]"]}, "execution_count": 7, "metadata": {}, "output_type": "execute_result"}], "source": ["trainer.test()"]}, {"cell_type": "markdown", "id": "f9cde6b4", "metadata": {"papermill": {"duration": 0.051185, "end_time": "2021-11-08T23:19:32.881877", "exception": false, "start_time": "2021-11-08T23:19:32.830692", "status": "completed"}, "tags": []}, "source": ["### Bonus Tip\n", "\n", "You can keep calling `trainer.fit(model)` as many times as you'd like to continue training"]}, {"cell_type": "code", "execution_count": 8, "id": "0a625d56", "metadata": {"execution": {"iopub.execute_input": "2021-11-08T23:19:32.986187Z", "iopub.status.busy": "2021-11-08T23:19:32.985717Z", "iopub.status.idle": "2021-11-08T23:19:33.200910Z", "shell.execute_reply": "2021-11-08T23:19:33.200400Z"}, "papermill": {"duration": 0.268516, "end_time": "2021-11-08T23:19:33.201028", "exception": false, "start_time": "2021-11-08T23:19:32.932512", "status": "completed"}, "tags": []}, "outputs": [{"name": "stderr", "output_type": "stream", "text": ["LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0,1]\n"]}, {"name": "stderr", "output_type": "stream", "text": ["\n", " | Name | Type | Params\n", "----------------------------------------\n", "0 | model | Sequential | 55.1 K\n", "1 | accuracy | Accuracy | 0 \n", "----------------------------------------\n", "55.1 K Trainable params\n", "0 Non-trainable params\n", "55.1 K Total params\n", "0.220 Total estimated model params size (MB)\n"]}, {"name": "stderr", "output_type": "stream", "text": ["/home/AzDevOps_azpcontainer/.local/lib/python3.9/site-packages/pytorch_lightning/callbacks/model_checkpoint.py:617: UserWarning: Checkpoint directory /__w/1/s/lightning_logs/version_1/checkpoints exists and is not empty.\n", " rank_zero_warn(f\"Checkpoint directory {dirpath} exists and is not empty.\")\n"]}, {"data": {"application/vnd.jupyter.widget-view+json": {"model_id": "9deedcf4260e4852be5d943a43f55ad8", "version_major": 2, "version_minor": 0}, "text/plain": ["Validation sanity check: 0it [00:00, ?it/s]"]}, "metadata": {}, "output_type": "display_data"}], "source": ["trainer.fit(model)"]}, {"cell_type": "markdown", "id": "4321acf6", "metadata": {"papermill": {"duration": 0.053287, "end_time": "2021-11-08T23:19:33.307722", "exception": false, "start_time": "2021-11-08T23:19:33.254435", "status": "completed"}, "tags": []}, "source": ["In Colab, you can use the TensorBoard magic function to view the logs that Lightning has created for you!"]}, {"cell_type": "code", "execution_count": 9, "id": "ca69a0b1", "metadata": {"execution": {"iopub.execute_input": "2021-11-08T23:19:33.418822Z", "iopub.status.busy": "2021-11-08T23:19:33.418357Z", "iopub.status.idle": "2021-11-08T23:19:34.958189Z", "shell.execute_reply": "2021-11-08T23:19:34.957706Z"}, "papermill": {"duration": 1.59697, "end_time": "2021-11-08T23:19:34.958305", "exception": false, "start_time": "2021-11-08T23:19:33.361335", "status": "completed"}, "tags": []}, "outputs": [{"data": {"text/html": ["\n", " \n", " \n", " "], "text/plain": [""]}, "metadata": {}, "output_type": "display_data"}], "source": ["# Start tensorboard.\n", "%load_ext tensorboard\n", "%tensorboard --logdir lightning_logs/"]}, {"cell_type": "markdown", "id": "70e5a331", "metadata": {"papermill": {"duration": 0.054654, "end_time": "2021-11-08T23:19:35.067946", "exception": false, "start_time": "2021-11-08T23:19:35.013292", "status": "completed"}, "tags": []}, "source": ["## Congratulations - Time to Join the Community!\n", "\n", "Congratulations on completing this notebook tutorial! If you enjoyed this and would like to join the Lightning\n", "movement, you can do so in the following ways!\n", "\n", "### Star [Lightning](https://github.com/PyTorchLightning/pytorch-lightning) on GitHub\n", "The easiest way to help our community is just by starring the GitHub repos! This helps raise awareness of the cool\n", "tools we're building.\n", "\n", "### Join our [Slack](https://join.slack.com/t/pytorch-lightning/shared_invite/zt-pw5v393p-qRaDgEk24~EjiZNBpSQFgQ)!\n", "The best way to keep up to date on the latest advancements is to join our community! Make sure to introduce yourself\n", "and share your interests in `#general` channel\n", "\n", "\n", "### Contributions !\n", "The best way to contribute to our community is to become a code contributor! At any time you can go to\n", "[Lightning](https://github.com/PyTorchLightning/pytorch-lightning) or [Bolt](https://github.com/PyTorchLightning/lightning-bolts)\n", "GitHub Issues page and filter for \"good first issue\".\n", "\n", "* [Lightning good first issue](https://github.com/PyTorchLightning/pytorch-lightning/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)\n", "* [Bolt good first issue](https://github.com/PyTorchLightning/lightning-bolts/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)\n", "* You can also contribute your own notebooks with useful examples !\n", "\n", "### Great thanks from the entire Pytorch Lightning Team for your interest !\n", "\n", "![Pytorch Lightning](data:image/png;base64,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){height=\"60px\" width=\"240px\"}"]}, {"cell_type": "raw", "metadata": {"raw_mimetype": "text/restructuredtext"}, "source": [".. customcarditem::\n", " :header: Introduction to Pytorch Lightning\n", " :card_description: In this notebook, we'll go over the basics of lightning by preparing models to train on the [MNIST Handwritten Digits dataset](https://en.wikipedia.org/wiki/MNIST_database).\n", " :tags: Image,GPU/TPU,Lightning-Examples"]}], "metadata": {"jupytext": {"cell_metadata_filter": "id,colab,colab_type,-all", "formats": "ipynb,py:percent", "main_language": "python"}, "language_info": {"codemirror_mode": {"name": "ipython", "version": 3}, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.7"}, "papermill": {"default_parameters": {}, "duration": 63.76316, "end_time": "2021-11-08T23:19:35.632197", "environment_variables": {}, "exception": null, "input_path": "lightning_examples/mnist-hello-world/hello-world.ipynb", "output_path": ".notebooks/lightning_examples/mnist-hello-world.ipynb", "parameters": {}, "start_time": "2021-11-08T23:18:31.869037", "version": "2.3.3"}, "widgets": {"application/vnd.jupyter.widget-state+json": {"state": {"004efe977bdf48438a408e5539aeba32": {"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": ""}}, "03453dcbab8b4eacaa091c4976068bd7": {"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": ""}}, "056f460d6e38414bae8b8e66ea74ef75": {"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": ""}}, "0797c3f050734c40a5b01ed14cea09dd": {"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": ""}}, "07d387ea0cda46dc85f5bb6a1e51d0ca": {"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": "inline-flex", "flex": null, "flex_flow": "row wrap", "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": "100%"}}, "0e70e50b097e4dfeaf73032b05df2b4c": {"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_969def0ca493425da3b518c2b9351864", "max": 235.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_4fda2d76c01640ac829d5c096b817b9b", "value": 235.0}}, "169710a4670245cf91dae9d4dd5c43a7": {"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": "danger", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_be91256a5ef14dd283ee71ebc028689d", "max": 2.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_004efe977bdf48438a408e5539aeba32", "value": 0.0}}, "1979c9a5fd1b42ee807b2abc3cbccba0": {"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_56f2f319ed4b40ba9003d1f2064a5221", "placeholder": "\u200b", "style": "IPY_MODEL_03453dcbab8b4eacaa091c4976068bd7", "value": "Validation sanity check: 0%"}}, "1f2d0a7e7c4b48d99a81f21bcf47aeae": {"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_58455e57ec4f4991934a28338905a8be", "placeholder": "\u200b", "style": "IPY_MODEL_0797c3f050734c40a5b01ed14cea09dd", "value": "Epoch 2: 100%"}}, "20013da6bb0b4cbc9bc980ffe3be8bb1": {"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}}, "22e4c8e02b5c4386901cca59b9369e1b": {"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}}, "22f1613645ce4e9cae28a9a9b6e1d7b9": {"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": "2", "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}}, "2501637edf6e4bd4b7f76649b3444492": {"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}}, "253b7a8784694f15be6ca2e5503c1771": {"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": ""}}, "2541843fca024aa8bac6ed1aa52fa297": {"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": "2", "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}}, "272ec8aeff2c4b9680bcd6e4f0ccbf6f": {"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": ""}}, "2b1048ac3b2047a4ac25d4f1f32efe65": {"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}}, "2b238e5fa8964e0980876d1934e4dafe": {"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_cb5beda7c27648b4912e96b9adb397da", "IPY_MODEL_afde03781a9f4848b05a549bacf958b6", "IPY_MODEL_d493f485c1f04f78bf59ac5ca6f4b90d"], "layout": "IPY_MODEL_dca9b176dfc84f44a0973f48ab490c89"}}, "2bc91053b501471d8acf00582a4c6e75": {"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": "", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_9a40a10d77d14dc1a5142f130a7d58bc", "max": 20.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_cfb3bbe314494d6da4618fabe01fac75", "value": 20.0}}, "32bd032e5673408ca97f2b5200dc8c38": {"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_e25fea338ac7465f852516b4c5ffd9b9", "max": 235.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_5ba99f44a4134f7393a48007cd2ad762", "value": 235.0}}, "34aef0ba06fa458cb2c80f3c92beb4a4": {"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": "inline-flex", "flex": null, "flex_flow": "row wrap", "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": "100%"}}, "360965f09e9c472aa9ea369da9d09c8e": {"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_7fb3a1207115415ca149bb44be466433", "placeholder": "\u200b", "style": "IPY_MODEL_8146c587d3634758a81f0f0aab259ad5", "value": " 40/40 [00:01<00:00, 22.83it/s]"}}, "36c89bdd7869496e97b831bcafb3327e": {"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": "danger", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_2541843fca024aa8bac6ed1aa52fa297", "max": 2.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_056f460d6e38414bae8b8e66ea74ef75", "value": 0.0}}, "3cb074f898ae46f380459a7aa9e55546": {"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_e7a17e95d6334b21a520503ba6a8dfae", "placeholder": "\u200b", "style": "IPY_MODEL_dec132e55cf44b12ac04e5dcd329279f", "value": " 235/235 [00:10<00:00, 22.37it/s, loss=0.323, v_num=1, val_loss=0.265, val_acc=0.918]"}}, "3e32bcc910d641c587c6201bdd319bb9": {"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": ""}}, "3f05d315260c4207a8dd74b64b4fc8d2": {"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}}, "4088408e70da4a69b6c26549d2159224": {"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_812be3d4a6634af78f5092e3e3936bc3", "placeholder": "\u200b", "style": "IPY_MODEL_5d4819e57c1643478f8b1eed5059ed11", "value": "Validating: 100%"}}, "44fdab6c91dd47cc8c171bc37ad3fd9e": {"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}}, "47c3bfd0e4414c5a8018d97426e210f8": {"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_4088408e70da4a69b6c26549d2159224", "IPY_MODEL_2bc91053b501471d8acf00582a4c6e75", "IPY_MODEL_96b99d92b7fd464bb6913f86a2f087f1"], "layout": "IPY_MODEL_a0af0d69cfe446e5afc94ca7245d4721"}}, "4ae55b50b9e643ae9f9e89899e1349e4": {"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_f8f2171d2cd04318a633b1d73691d2ce", "IPY_MODEL_32bd032e5673408ca97f2b5200dc8c38", "IPY_MODEL_b08031e38c8e49f880276e6063902dd3"], "layout": "IPY_MODEL_07d387ea0cda46dc85f5bb6a1e51d0ca"}}, "4fda2d76c01640ac829d5c096b817b9b": {"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": ""}}, "53a15178755046f693ca1612009b9d53": {"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": ""}}, "56f2f319ed4b40ba9003d1f2064a5221": {"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}}, "58455e57ec4f4991934a28338905a8be": {"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}}, "5896446fe5b842b295ce14b30cb42d1f": {"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": ""}}, "5ba99f44a4134f7393a48007cd2ad762": {"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": ""}}, "5d4819e57c1643478f8b1eed5059ed11": {"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": ""}}, "5e266c7fbc0e43b5a0b7ae683a6dd2cf": {"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": "inline-flex", "flex": null, "flex_flow": "row wrap", "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": "100%"}}, "6d461f6c92364bd69456c2656c62ff40": {"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": ""}}, "7422a87eb1604930a1887af098073b7a": {"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": "2", "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}}, "746ad586ae3f4dc7a7b61e44b128ed8d": {"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": ""}}, "76c1c0374a934ef1ab125181e0ae3be5": {"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": "inline-flex", "flex": null, "flex_flow": "row wrap", "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": "100%"}}, "7d1649a70abe41b7a48cff10c806151d": {"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": "2", "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}}, "7e266dcfa5c34b1286ee6835687283fc": {"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_e82ac404653c4b659284b04439241d28", "IPY_MODEL_986adc8c78a0443fae04d6cde3d89bb2", "IPY_MODEL_360965f09e9c472aa9ea369da9d09c8e"], "layout": "IPY_MODEL_951cdd4a2d0346099b7300de8a5a4571"}}, "7fb3a1207115415ca149bb44be466433": {"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}}, "812be3d4a6634af78f5092e3e3936bc3": {"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}}, "8146c587d3634758a81f0f0aab259ad5": {"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": ""}}, "8b09a56797664cd98ebec6427be0e80e": {"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": "inline-flex", "flex": null, "flex_flow": "row wrap", "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": "100%"}}, "951cdd4a2d0346099b7300de8a5a4571": {"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": "inline-flex", "flex": null, "flex_flow": "row wrap", "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": "100%"}}, "969def0ca493425da3b518c2b9351864": {"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": "2", "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}}, "96b99d92b7fd464bb6913f86a2f087f1": {"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_f6b59f567e3140b1a1f5a87130b28b32", "placeholder": "\u200b", "style": "IPY_MODEL_5896446fe5b842b295ce14b30cb42d1f", "value": " 20/20 [00:00<00:00, 22.69it/s]"}}, "986adc8c78a0443fae04d6cde3d89bb2": {"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_7d1649a70abe41b7a48cff10c806151d", "max": 1.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_53a15178755046f693ca1612009b9d53", "value": 1.0}}, "9975cdb9ea0649baad47b3b4b81c077b": {"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": ""}}, "9a40a10d77d14dc1a5142f130a7d58bc": {"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": "2", "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}}, "9deedcf4260e4852be5d943a43f55ad8": {"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_1979c9a5fd1b42ee807b2abc3cbccba0", "IPY_MODEL_36c89bdd7869496e97b831bcafb3327e", "IPY_MODEL_c81e412a1b7a44ee9bb449d34a048ffb"], "layout": "IPY_MODEL_34aef0ba06fa458cb2c80f3c92beb4a4"}}, "9f14ec49e6224c0785babba1e9a15a6c": {"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}}, "9f2efc720dd446e080e45c47050718b3": {"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": ""}}, "a050f439a12641fc8808d7ff8aca8c36": {"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_ea28f1cc1df14585a33f8ac7a3e2dffe", "IPY_MODEL_b45b879da31a478cb27935a60bb10582", "IPY_MODEL_f53d4acc7d224e99a90af76cc2c7e769"], "layout": "IPY_MODEL_5e266c7fbc0e43b5a0b7ae683a6dd2cf"}}, "a0af0d69cfe446e5afc94ca7245d4721": {"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": "inline-flex", "flex": null, "flex_flow": "row wrap", "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": "100%"}}, "a79e22657ce344b997c561437e0b2c32": {"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": ""}}, "ad45a09284f94708bc15f33abce46ddb": {"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": ""}}, "afde03781a9f4848b05a549bacf958b6": {"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": "", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_22f1613645ce4e9cae28a9a9b6e1d7b9", "max": 20.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_9975cdb9ea0649baad47b3b4b81c077b", "value": 20.0}}, "b08031e38c8e49f880276e6063902dd3": {"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_9f14ec49e6224c0785babba1e9a15a6c", "placeholder": "\u200b", "style": "IPY_MODEL_3e32bcc910d641c587c6201bdd319bb9", "value": " 235/235 [00:05<00:00, 43.22it/s, loss=1.02, v_num=0]"}}, "b1b790abe58c4f228d1bb29faea6415d": {"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_b4f6c0be1dad4754a8970359d1c98665", "IPY_MODEL_169710a4670245cf91dae9d4dd5c43a7", "IPY_MODEL_c20a7a0fb03d45128656f456b16b3ccb"], "layout": "IPY_MODEL_8b09a56797664cd98ebec6427be0e80e"}}, "b45b879da31a478cb27935a60bb10582": {"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": "", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_7422a87eb1604930a1887af098073b7a", "max": 20.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_c4bb71c7729a40b4b14bbef310a8b820", "value": 20.0}}, "b4f6c0be1dad4754a8970359d1c98665": {"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_22e4c8e02b5c4386901cca59b9369e1b", "placeholder": "\u200b", "style": "IPY_MODEL_746ad586ae3f4dc7a7b61e44b128ed8d", "value": "Validation sanity check: 0%"}}, "b60f1e8c6ac64ec0ad8088bae5e8242f": {"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}}, "be91256a5ef14dd283ee71ebc028689d": {"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": "2", "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}}, "c20a7a0fb03d45128656f456b16b3ccb": {"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_3f05d315260c4207a8dd74b64b4fc8d2", "placeholder": "\u200b", "style": "IPY_MODEL_dda48b9d6fc94990a4cc705591f7a0de", "value": " 0/2 [00:00<?, ?it/s]"}}, "c4bb71c7729a40b4b14bbef310a8b820": {"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": ""}}, "c56a7e16cd244a6e91a153d5b57237a3": {"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": ""}}, "c81e412a1b7a44ee9bb449d34a048ffb": {"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_b60f1e8c6ac64ec0ad8088bae5e8242f", "placeholder": "\u200b", "style": "IPY_MODEL_272ec8aeff2c4b9680bcd6e4f0ccbf6f", "value": " 0/2 [00:00<?, ?it/s]"}}, "cb5beda7c27648b4912e96b9adb397da": {"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_2501637edf6e4bd4b7f76649b3444492", "placeholder": "\u200b", "style": "IPY_MODEL_ad45a09284f94708bc15f33abce46ddb", "value": "Validating: 100%"}}, "cdfa0efd7465419dae2a927fc9183e64": {"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}}, "cfb3bbe314494d6da4618fabe01fac75": {"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": ""}}, "d179a3900ed944e59abe02ca2f3c9618": {"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}}, "d493f485c1f04f78bf59ac5ca6f4b90d": {"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_44fdab6c91dd47cc8c171bc37ad3fd9e", "placeholder": "\u200b", "style": "IPY_MODEL_253b7a8784694f15be6ca2e5503c1771", "value": " 20/20 [00:00<00:00, 22.92it/s]"}}, "dca9b176dfc84f44a0973f48ab490c89": {"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": "inline-flex", "flex": null, "flex_flow": "row wrap", "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": "100%"}}, "dda48b9d6fc94990a4cc705591f7a0de": {"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": ""}}, "dec132e55cf44b12ac04e5dcd329279f": {"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": ""}}, "e25fea338ac7465f852516b4c5ffd9b9": {"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": "2", "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}}, "e48b30df90c7435f886cf1c69d483ae9": {"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_1f2d0a7e7c4b48d99a81f21bcf47aeae", "IPY_MODEL_0e70e50b097e4dfeaf73032b05df2b4c", "IPY_MODEL_3cb074f898ae46f380459a7aa9e55546"], "layout": "IPY_MODEL_76c1c0374a934ef1ab125181e0ae3be5"}}, "e7a17e95d6334b21a520503ba6a8dfae": {"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}}, "e82ac404653c4b659284b04439241d28": {"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_cdfa0efd7465419dae2a927fc9183e64", "placeholder": "\u200b", "style": "IPY_MODEL_a79e22657ce344b997c561437e0b2c32", "value": "Testing: 100%"}}, "ea28f1cc1df14585a33f8ac7a3e2dffe": {"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_20013da6bb0b4cbc9bc980ffe3be8bb1", "placeholder": "\u200b", "style": "IPY_MODEL_6d461f6c92364bd69456c2656c62ff40", "value": "Validating: 100%"}}, "f53d4acc7d224e99a90af76cc2c7e769": {"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_2b1048ac3b2047a4ac25d4f1f32efe65", "placeholder": "\u200b", "style": "IPY_MODEL_9f2efc720dd446e080e45c47050718b3", "value": " 20/20 [00:00<00:00, 22.51it/s]"}}, "f6b59f567e3140b1a1f5a87130b28b32": {"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}}, "f8f2171d2cd04318a633b1d73691d2ce": {"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_d179a3900ed944e59abe02ca2f3c9618", "placeholder": "\u200b", "style": "IPY_MODEL_c56a7e16cd244a6e91a153d5b57237a3", "value": "Epoch 2: 100%"}}}, "version_major": 2, "version_minor": 0}}}, "nbformat": 4, "nbformat_minor": 5}