notebooks/56_fine_tune_segformer.ipynb (6,016 lines of code) (raw):
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "tOQZT_SpMJWb"
},
"source": [
"**This guide shows how you can fine-tune Segformer, a state-of-the-art semantic segmentation model. Our goal is to build a model for a pizza delivery robot, so it can see where to drive and recognize obstacles 🍕🤖. We'll first label a set of sidewalk images on [Segments.ai](https://segments.ai?utm_source=hf&utm_medium=colab&utm_campaign=sem_seg). Then we'll fine-tune a pre-trained SegFormer model by using [`🤗 transformers`](https://huggingface.co/transformers), an open-source library that offers easy-to-use implementations of state-of-the-art models. Along the way, you'll learn how to work with the Hugging Face hub, the largest open-source catalog of models and datasets.**\n",
"\n",
"Semantic segmentation is the task of classifying each pixel in an image. You can see it as a more precise way of classifying an image. It has a wide range of use cases in fields such as medical imaging and autonomous driving. As an example, for our pizza delivery robot, it is important to know exactly where the sidewalk is in an image, not just whether there is a sidewalk or not.\n",
"\n",
"Because semantic segmentation is a type of classification, the network architectures that are used for image classification and semantic segmentation are very similar. In 2014, [a seminal paper](https://arxiv.org/abs/1411.4038) by Long et al. used convolutional neural networks for semantic segmentation. More recently, Transformers have been used for image classification (e.g. [ViT](https://huggingface.co/blog/fine-tune-vit)), and now they're also being used for semantic segmentation, pushing the state-of-the-art further.\n",
"\n",
"[SegFormer](https://arxiv.org/abs/2105.15203) is a model for semantic segmentation introduced by Xie et al in 2021. It has a hierarchical Transformer encoder that doesn't use positional encodings (in contrast to ViT) and a simple multi-layer perceptron decoder. SegFormer achieves state-of-the-art performance on multiple common datasets. Let's see how it performs for sidewalk images in our pizza delivery robot."
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
""
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "UfYigrqXm8wj"
},
"source": [
"Let's get started by installing the necessary dependencies and logging in to Hugging Face."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"background_save": true,
"base_uri": "https://localhost:8080/"
},
"id": "4RtsVDEeI8KL",
"outputId": "9cf98b07-b2dc-4689-ae19-1db4e1396b8f"
},
"outputs": [],
"source": [
"!pip install -q transformers datasets segments-ai evaluate"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 299
},
"id": "lECco8JEveg4",
"outputId": "fa55cd96-1d69-41b0-82ff-bb9f8cb5b642"
},
"outputs": [],
"source": [
"from huggingface_hub import notebook_login\n",
"\n",
"notebook_login()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "1WSBI4zoS3TD"
},
"outputs": [],
"source": [
"hf_username = \"tobiasc\""
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "34S5D1ntJReV"
},
"source": [
"# 1. Create/choose a dataset"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "4O2J9CWSwh7g"
},
"source": [
"The first step in any ML project is assembling a good dataset. In order to train a semantic segmentation model, we need a dataset with semantic segmentation labels. We can either use an existing dataset from the Hugging Face Hub, such as [ADE20k](https://huggingface.co/datasets/scene_parse_150), or create our own dataset.\n",
"\n",
"For our pizza delivery robot, we could use an existing autonomous driving dataset such as [CityScapes](https://www.cityscapes-dataset.com/) or [BDD100K](https://bdd100k.com/). However, these datasets were captured by cars driving on the road. Since our delivery robot will be driving on the sidewalk, there will be a mismatch between the images in these datasets and the data our robot will see in the real world. \n",
"\n",
"We don't want our delivery robot to get confused, so we'll create our own semantic segmentation dataset using images captured on sidewalks. In the next steps, we'll show how you can label the images we captured. If you just want to use our finished labeled dataset, you can skip the \"Create your own dataset\" section and continue from \"Use a dataset from the Hub\"."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "GdLqU-p2Lvdj"
},
"source": [
"## Create your own dataset"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "0wzVSFuCwlvm"
},
"source": [
"\n",
"To create your own semantic segmentation dataset, you'll need two things: 1) images covering the situations your model will encounter in the real world, 2) segmentation labels, i.e. images where each pixel represents a class/category.\n",
"\n",
"We went ahead and captured a thousand images of sidewalks in Belgium. Collecting and labeling such a dataset can take a long time, so you can also start with a smaller dataset, and expand it if the model does not perform well enough."
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {
"id": "nlYOPx3OFsnC"
},
"source": [
""
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "2I9DiKWlOVnp"
},
"source": [
"To obtain segmentation labels, we need to indicate the classes of all the regions/objects in these images. This can be a time-consuming endeavour, but using the right tools can speed up the task significantly. For labeling, we'll use [Segments.ai](https://segments.ai?utm_source=hf&utm_medium=colab&utm_campaign=sem_seg), since it has smart labeling tools for image segmentation, and an easy-to-use Python SDK."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "9T2Jr9t9y4HD"
},
"source": [
"### Set up the labeling task on Segments.ai"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "QJRdowdfyw0n"
},
"source": [
"First, create an account at [https://segments.ai/join](https://segments.ai/join?utm_source=hf&utm_medium=colab&utm_campaign=sem_seg). Next, you can create a dataset by using the web interface, or via the Python SDK. Here, we'll show how you can create a dataset programmatically."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "hilsN0r1yc-3"
},
"source": [
"We'll start by initializing the Segments.ai client using an API key. This key can be found on [the account page](https://segments.ai/account)."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "Ub7WR4ySPKij"
},
"outputs": [],
"source": [
"from segments import SegmentsClient\n",
"from getpass import getpass\n",
"\n",
"api_key = getpass('Enter your API key: ')\n",
"segments_client = SegmentsClient(api_key)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "fs0ITiinP8Lq"
},
"source": [
"Next, we'll create a new dataset by choosing a name and by listing the different categories we want to label."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "tNgrhLTnP7Yt"
},
"outputs": [],
"source": [
"dataset_name = \"sidewalk-imagery\""
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "b6cxqPREqKzV"
},
"source": [
"The next cell contains the `task_attributes` with the categories we want to label. The format for `task_attributes` is defined in the [docs](https://docs.segments.ai/reference/categories-and-task-attributes)."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"cellView": "form",
"id": "r2J-6b-OPXlu"
},
"outputs": [],
"source": [
"#@title `task_attributes = {...}`\n",
"\n",
"task_attributes = {\n",
" \"format_version\": \"0.1\",\n",
" \"categories\": [\n",
" {\n",
" \"name\": \"flat-road\",\n",
" \"id\": 1,\n",
" \"color\": [\n",
" 216,\n",
" 82,\n",
" 24,\n",
" 255\n",
" ],\n",
" \"attributes\": []\n",
" },\n",
" {\n",
" \"name\": \"flat-sidewalk\",\n",
" \"id\": 2,\n",
" \"color\": [\n",
" 255,\n",
" 255,\n",
" 0\n",
" ],\n",
" \"attributes\": []\n",
" },\n",
" {\n",
" \"name\": \"flat-crosswalk\",\n",
" \"id\": 3,\n",
" \"color\": [\n",
" 125,\n",
" 46,\n",
" 141,\n",
" 255\n",
" ],\n",
" \"attributes\": []\n",
" },\n",
" {\n",
" \"name\": \"flat-cyclinglane\",\n",
" \"id\": 4,\n",
" \"color\": [\n",
" 118,\n",
" 171,\n",
" 47,\n",
" 255\n",
" ],\n",
" \"attributes\": []\n",
" },\n",
" {\n",
" \"name\": \"flat-parkingdriveway\",\n",
" \"id\": 5,\n",
" \"color\": [\n",
" 161,\n",
" 19,\n",
" 46,\n",
" 255\n",
" ],\n",
" \"attributes\": []\n",
" },\n",
" {\n",
" \"name\": \"flat-railtrack\",\n",
" \"id\": 6,\n",
" \"color\": [\n",
" 255,\n",
" 0,\n",
" 0,\n",
" 255\n",
" ],\n",
" \"attributes\": []\n",
" },\n",
" {\n",
" \"name\": \"flat-curb\",\n",
" \"id\": 7,\n",
" \"color\": [\n",
" 0,\n",
" 128,\n",
" 128\n",
" ],\n",
" \"attributes\": []\n",
" },\n",
" {\n",
" \"name\": \"human-person\",\n",
" \"id\": 8,\n",
" \"attributes\": [\n",
" {\n",
" \"name\": \"is_crowd\",\n",
" \"input_type\": \"checkbox\",\n",
" \"default_value\": False\n",
" }\n",
" ],\n",
" \"color\": [\n",
" 190,\n",
" 190,\n",
" 0,\n",
" 255\n",
" ]\n",
" },\n",
" {\n",
" \"name\": \"human-rider\",\n",
" \"id\": 9,\n",
" \"attributes\": [\n",
" {\n",
" \"name\": \"is_crowd\",\n",
" \"input_type\": \"checkbox\",\n",
" \"default_value\": False\n",
" }\n",
" ],\n",
" \"color\": [\n",
" 0,\n",
" 255,\n",
" 0,\n",
" 255\n",
" ]\n",
" },\n",
" {\n",
" \"name\": \"vehicle-car\",\n",
" \"id\": 10,\n",
" \"attributes\": [\n",
" {\n",
" \"name\": \"is_crowd\",\n",
" \"input_type\": \"checkbox\",\n",
" \"default_value\": False\n",
" }\n",
" ],\n",
" \"color\": [\n",
" 0,\n",
" 0,\n",
" 255,\n",
" 255\n",
" ]\n",
" },\n",
" {\n",
" \"name\": \"vehicle-truck\",\n",
" \"id\": 11,\n",
" \"attributes\": [\n",
" {\n",
" \"name\": \"is_crowd\",\n",
" \"input_type\": \"checkbox\",\n",
" \"default_value\": False\n",
" }\n",
" ],\n",
" \"color\": [\n",
" 170,\n",
" 0,\n",
" 255,\n",
" 255\n",
" ]\n",
" },\n",
" {\n",
" \"name\": \"vehicle-bus\",\n",
" \"id\": 12,\n",
" \"attributes\": [\n",
" {\n",
" \"name\": \"is_crowd\",\n",
" \"input_type\": \"checkbox\",\n",
" \"default_value\": False\n",
" }\n",
" ],\n",
" \"color\": [\n",
" 84,\n",
" 84,\n",
" 0,\n",
" 255\n",
" ]\n",
" },\n",
" {\n",
" \"name\": \"vehicle-tramtrain\",\n",
" \"id\": 13,\n",
" \"attributes\": [\n",
" {\n",
" \"name\": \"is_crowd\",\n",
" \"input_type\": \"checkbox\",\n",
" \"default_value\": False\n",
" }\n",
" ],\n",
" \"color\": [\n",
" 84,\n",
" 170,\n",
" 0,\n",
" 255\n",
" ]\n",
" },\n",
" {\n",
" \"name\": \"vehicle-motorcycle\",\n",
" \"id\": 14,\n",
" \"attributes\": [\n",
" {\n",
" \"name\": \"is_crowd\",\n",
" \"input_type\": \"checkbox\",\n",
" \"default_value\": False\n",
" }\n",
" ],\n",
" \"color\": [\n",
" 84,\n",
" 255,\n",
" 0,\n",
" 255\n",
" ]\n",
" },\n",
" {\n",
" \"name\": \"vehicle-bicycle\",\n",
" \"id\": 15,\n",
" \"attributes\": [\n",
" {\n",
" \"name\": \"is_crowd\",\n",
" \"input_type\": \"checkbox\",\n",
" \"default_value\": False\n",
" }\n",
" ],\n",
" \"color\": [\n",
" 170,\n",
" 84,\n",
" 0,\n",
" 255\n",
" ]\n",
" },\n",
" {\n",
" \"name\": \"vehicle-caravan\",\n",
" \"id\": 16,\n",
" \"attributes\": [\n",
" {\n",
" \"name\": \"is_crowd\",\n",
" \"input_type\": \"checkbox\",\n",
" \"default_value\": False\n",
" }\n",
" ],\n",
" \"color\": [\n",
" 170,\n",
" 170,\n",
" 0,\n",
" 255\n",
" ]\n",
" },\n",
" {\n",
" \"name\": \"vehicle-cartrailer\",\n",
" \"id\": 17,\n",
" \"attributes\": [\n",
" {\n",
" \"name\": \"is_crowd\",\n",
" \"input_type\": \"checkbox\",\n",
" \"default_value\": False\n",
" }\n",
" ],\n",
" \"color\": [\n",
" 170,\n",
" 255,\n",
" 0,\n",
" 255\n",
" ]\n",
" },\n",
" {\n",
" \"name\": \"construction-building\",\n",
" \"id\": 18,\n",
" \"color\": [\n",
" 255,\n",
" 84,\n",
" 0,\n",
" 255\n",
" ],\n",
" \"attributes\": []\n",
" },\n",
" {\n",
" \"name\": \"construction-door\",\n",
" \"id\": 19,\n",
" \"color\": [\n",
" 255,\n",
" 170,\n",
" 0,\n",
" 255\n",
" ],\n",
" \"attributes\": []\n",
" },\n",
" {\n",
" \"name\": \"construction-wall\",\n",
" \"id\": 20,\n",
" \"color\": [\n",
" 255,\n",
" 255,\n",
" 0,\n",
" 255\n",
" ],\n",
" \"attributes\": []\n",
" },\n",
" {\n",
" \"name\": \"construction-fenceguardrail\",\n",
" \"id\": 21,\n",
" \"color\": [\n",
" 33,\n",
" 138,\n",
" 200\n",
" ],\n",
" \"attributes\": []\n",
" },\n",
" {\n",
" \"name\": \"construction-bridge\",\n",
" \"id\": 22,\n",
" \"color\": [\n",
" 0,\n",
" 170,\n",
" 127,\n",
" 255\n",
" ],\n",
" \"attributes\": []\n",
" },\n",
" {\n",
" \"name\": \"construction-tunnel\",\n",
" \"id\": 23,\n",
" \"color\": [\n",
" 0,\n",
" 255,\n",
" 127,\n",
" 255\n",
" ],\n",
" \"attributes\": []\n",
" },\n",
" {\n",
" \"name\": \"construction-stairs\",\n",
" \"id\": 24,\n",
" \"color\": [\n",
" 84,\n",
" 0,\n",
" 127,\n",
" 255\n",
" ],\n",
" \"attributes\": []\n",
" },\n",
" {\n",
" \"name\": \"object-pole\",\n",
" \"id\": 25,\n",
" \"attributes\": [\n",
" {\n",
" \"name\": \"is_crowd\",\n",
" \"input_type\": \"checkbox\",\n",
" \"default_value\": False\n",
" }\n",
" ],\n",
" \"color\": [\n",
" 84,\n",
" 84,\n",
" 127,\n",
" 255\n",
" ]\n",
" },\n",
" {\n",
" \"name\": \"object-trafficsign\",\n",
" \"id\": 26,\n",
" \"color\": [\n",
" 84,\n",
" 170,\n",
" 127,\n",
" 255\n",
" ],\n",
" \"attributes\": []\n",
" },\n",
" {\n",
" \"name\": \"object-trafficlight\",\n",
" \"id\": 27,\n",
" \"color\": [\n",
" 84,\n",
" 255,\n",
" 127,\n",
" 255\n",
" ],\n",
" \"attributes\": []\n",
" },\n",
" {\n",
" \"name\": \"nature-vegetation\",\n",
" \"id\": 28,\n",
" \"color\": [\n",
" 170,\n",
" 0,\n",
" 127,\n",
" 255\n",
" ],\n",
" \"attributes\": []\n",
" },\n",
" {\n",
" \"name\": \"nature-terrain\",\n",
" \"id\": 29,\n",
" \"color\": [\n",
" 170,\n",
" 84,\n",
" 127,\n",
" 255\n",
" ],\n",
" \"attributes\": []\n",
" },\n",
" {\n",
" \"name\": \"sky\",\n",
" \"id\": 30,\n",
" \"color\": [\n",
" 170,\n",
" 170,\n",
" 127,\n",
" 255\n",
" ],\n",
" \"attributes\": []\n",
" },\n",
" {\n",
" \"name\": \"void-ground\",\n",
" \"id\": 31,\n",
" \"color\": [\n",
" 170,\n",
" 255,\n",
" 127,\n",
" 255\n",
" ],\n",
" \"attributes\": []\n",
" },\n",
" {\n",
" \"name\": \"void-dynamic\",\n",
" \"id\": 32,\n",
" \"color\": [\n",
" 255,\n",
" 0,\n",
" 127,\n",
" 255\n",
" ],\n",
" \"attributes\": []\n",
" },\n",
" {\n",
" \"name\": \"void-static\",\n",
" \"id\": 33,\n",
" \"color\": [\n",
" 255,\n",
" 84,\n",
" 127,\n",
" 255\n",
" ],\n",
" \"attributes\": []\n",
" },\n",
" {\n",
" \"name\": \"void-unclear\",\n",
" \"id\": 34,\n",
" \"color\": [\n",
" 255,\n",
" 170,\n",
" 127,\n",
" 255\n",
" ],\n",
" \"attributes\": []\n",
" }\n",
" ]\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "GN3SGWhKPQv6"
},
"outputs": [],
"source": [
"dataset_response = segments_client.add_dataset(dataset_name, task_attributes=task_attributes, category='street_scenery')\n",
"dataset_identifier = f'{dataset_response.owner.username}/{dataset_name}'"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "4J1loXEnQQYn"
},
"source": [
"Now we can add images to the dataset. As an example, we'll add 10 examples images from the sidewalk dataset using `segments_client.add_sample()`."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"cellView": "form",
"id": "wg63cWzmQXaZ"
},
"outputs": [],
"source": [
"#@title `sample_attributes = [...]`\n",
"\n",
"sample_attributes = [\n",
" {\n",
" \"image\": {\n",
" \"url\": \"https://segmentsai-prod.s3.eu-west-2.amazonaws.com/assets/tobias/72939ba9-8488-4dfe-81a2-1a299f2e1d95.jpg\"\n",
" }\n",
" },\n",
" {\n",
" \"image\": {\n",
" \"url\": \"https://segmentsai-prod.s3.eu-west-2.amazonaws.com/assets/tobias/6ef02d5d-e7e4-40f6-b65a-47dee4815e7a.jpg\"\n",
" }\n",
" },\n",
" {\n",
" \"image\": {\n",
" \"url\": \"https://segmentsai-prod.s3.eu-west-2.amazonaws.com/assets/tobias/46216c90-7af9-4e06-af28-4a0734a1e3a2.jpg\"\n",
" }\n",
" },\n",
" {\n",
" \"image\": {\n",
" \"url\": \"https://segmentsai-prod.s3.eu-west-2.amazonaws.com/assets/tobias/545a233e-4413-4b35-9e89-659be3550ddf.jpg\"\n",
" }\n",
" },\n",
" {\n",
" \"image\": {\n",
" \"url\": \"https://segmentsai-prod.s3.eu-west-2.amazonaws.com/assets/tobias/3c0ef45e-6be6-48f3-b3cd-eb283ca3cb34.jpg\"\n",
" }\n",
" },\n",
" {\n",
" \"image\": {\n",
" \"url\": \"https://segmentsai-prod.s3.eu-west-2.amazonaws.com/assets/tobias/8683e29d-3112-4dff-9a64-c699bc6e1457.jpg\"\n",
" }\n",
" },\n",
" {\n",
" \"image\": {\n",
" \"url\": \"https://segmentsai-prod.s3.eu-west-2.amazonaws.com/assets/tobias/83ffe351-68ea-4730-b49c-4e6945ab5c18.jpg\"\n",
" }\n",
" },\n",
" {\n",
" \"image\": {\n",
" \"url\": \"https://segmentsai-prod.s3.eu-west-2.amazonaws.com/assets/tobias/653e6961-d2fa-4c1f-b450-9615707372ed.jpg\"\n",
" }\n",
" },\n",
" {\n",
" \"image\": {\n",
" \"url\": \"https://segmentsai-prod.s3.eu-west-2.amazonaws.com/assets/tobias/5ee54f18-f528-40dd-83a6-92ac4771fe75.jpg\"\n",
" }\n",
" },\n",
" {\n",
" \"image\": {\n",
" \"url\": \"https://segmentsai-prod.s3.eu-west-2.amazonaws.com/assets/tobias/54b0f15a-271e-4b0c-962f-23bbf179c554.jpg\"\n",
" }\n",
" },\n",
"]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "BBicN9QISi_T"
},
"outputs": [],
"source": [
"for attributes in sample_attributes:\n",
" name = attributes['image']['url'].split('/')[-1]\n",
" segments_client.add_sample(dataset_identifier, name, attributes)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "qMfjzufRss1f"
},
"source": [
"If you don't have URLs for the images you want to upload, you can use `segments_client.upload_asset()` first, see [this example](https://docs.segments.ai/reference/python-sdk#upload-a-file-as-an-asset). \n",
"\n",
"Alternatively, you can also drag and drop your files to the Samples tab of your dataset."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "k0dfgKViy754"
},
"source": [
"### Label the images"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "JHNUFJrMRbX4"
},
"source": [
"Now that the raw data is loaded, go to [segments.ai/home](https://segments.ai/home) and open the newly created dataset. Click \"Start labeling\" and create segmentation masks. You can use the ML-powered superpixel and autosegment tools to label faster."
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
""
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "EqVMiSORdWmr"
},
"source": [
"*Tip: when using the superpixel tool, scroll to change the superpixel size, and click and drag to select segments.*"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "k2jgvm8dy_63"
},
"source": [
"### Push the result to the Hugging Face Hub"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "qNgvwFxwRvLm"
},
"source": [
"When you're done labeling, create a new dataset release containing the labeled data. You can either do this on the releases tab on Segments.ai, or programmatically through the SDK as shown below. \n",
"\n",
"Note that creating the release can take a few seconds. You can check the releases tab on Segments.ai to check if your release is still being created."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "-NKKwvIgRk-_"
},
"outputs": [],
"source": [
"release_name = \"v0.1\"\n",
"\n",
"segments_client.add_release(dataset_identifier, release_name)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ltDp-tuqLCiB"
},
"source": [
"Now, we'll use the `release2dataset` function to convert our release to a [Hugging Face dataset](https://huggingface.co/docs/datasets/package_reference/main_classes.html#datasets.Dataset). This can take a while, depending on the size of your dataset."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "GKIiiPR1K9UJ"
},
"outputs": [],
"source": [
"from segments.huggingface import release2dataset\n",
"\n",
"release = segments_client.get_release(dataset_identifier, release_name)\n",
"hf_dataset = release2dataset(release)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "mS8FuWLLopHA"
},
"outputs": [],
"source": [
"hf_dataset.features"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ivsP2n49Ntoq"
},
"source": [
"If we inspect the features of the new dataset, we can see the image column and the corresponding label. The label consists of two parts: a list of annotations and a segmentation bitmap. The annotation corresponds to the different objects in the image. For each object, the annotation contains an `id` and a `category_id`. The segmentation bitmap is an image where each pixel contains the `id` of the object at that pixel. More information can be found in the [relevant docs](https://docs.segments.ai/reference/sample-and-label-types/label-types#segmentation-labels).\n",
"\n",
"For semantic segmentation, we need a semantic bitmap with a `category_id` for each pixel. We'll use the `get_semantic_bitmap` function from the Segments.ai SDK to convert the bitmaps to semantic bitmaps. In order to apply this function to all the rows in our dataset, we'll use [`dataset.map`](https://huggingface.co/docs/datasets/package_reference/main_classes#datasets.Dataset.map)."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "L8BPlz9eYUWP"
},
"outputs": [],
"source": [
"from segments.utils import get_semantic_bitmap\n",
"\n",
"\n",
"def convert_segmentation_bitmap(example):\n",
" return {\n",
" \"label.segmentation_bitmap\":\n",
" get_semantic_bitmap(\n",
" example[\"label.segmentation_bitmap\"],\n",
" example[\"label.annotations\"],\n",
" )\n",
" }\n",
"\n",
"\n",
"semantic_dataset = hf_dataset.map(\n",
" convert_segmentation_bitmap,\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "yxTx7KarZGjq"
},
"source": [
"\n",
"You can also rewrite the `convert_segmentation_bitmap` function to use batches and pass `batched=True` to `dataset.map`. This will speed up the mapping significantly, but you might need to tweak the `batch_size` to make sure the process doesn't run out of memory."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "pzcpvZMVFC2g"
},
"source": [
"The SegFormer model we're going to fine-tune later expects certain names for the features. For convenience, we'll already match this format now. Thus, we'll rename the `image` feature to `pixel_values`, the `label.segmentation_bitmap` to `label` and discard the other features."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "ee0wFzIb_GF6"
},
"outputs": [],
"source": [
"semantic_dataset = semantic_dataset.rename_column('image', 'pixel_values')\n",
"semantic_dataset = semantic_dataset.rename_column('label.segmentation_bitmap', 'label')\n",
"semantic_dataset = semantic_dataset.remove_columns(['name', 'uuid', 'status', 'label.annotations'])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "-coXlPirrt4R"
},
"outputs": [],
"source": [
"semantic_dataset.features"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ifsnD9a3R04Z"
},
"source": [
"We can now push the transformed dataset to the Hugging Face Hub. That way, your team and the Hugging Face community can make use of it. In the next section, we'll see how you can load the dataset from the hub."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "zq-ASpXQRyNr"
},
"outputs": [],
"source": [
"hf_dataset_identifier = f\"{hf_username}/{dataset_name}\"\n",
"\n",
"semantic_dataset.push_to_hub(hf_dataset_identifier)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "itStQ9reLLRb"
},
"source": [
"## Use a dataset from the Hub"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "0M0ibxWgwqyd"
},
"source": [
"If you don't want to create your own dataset, but found a suitable dataset for your use case on the Hugging Face Hub, you can define the identifier here.\n",
"\n",
"For example, you can use the full labeled sidewalk dataset. Note that you can check out the examples [directly in your browser](https://huggingface.co/datasets/segments/sidewalk-semantic)."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "7aMw7Sc_KVvS"
},
"outputs": [],
"source": [
"hf_dataset_identifier = \"segments/sidewalk-semantic\""
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "6ak5tUQSSMMv"
},
"source": [
"# 2. Load and prepare the Hugging Face dataset for training"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "kpwIB1_zEQ4m"
},
"source": [
"Now that we've created a new dataset and pushed it to the Hugging Face Hub, we can load the dataset in a single line."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 283,
"referenced_widgets": [
"a333fe7202cc4148b09813a9eb7c7835",
"2d8b1e187c754c24abd4357033c1053e",
"be90780c4aa44cf7b16bcf245a960f59",
"ab1871dc88fe439f852b1652808e35b3",
"fe409f2089ca42249b35fa5d892ed6d9",
"d6749f3d135e4ef2b7cda23d5c0b86d7",
"5fa9a52011fa4beb92f823d3d1c46a35",
"1ade57bbb0c74e929439612a27d6b461",
"e66ca393162a494a9c56c35c8bbddb59",
"b806c467df834477a7794f74bc30b049",
"43991a4fbdce48fc8a816faee5d76b20",
"8905921ad7e843d5864fb0bbc0fc9f97",
"217f7b6b976246278adf81a59debfa5a",
"78ed12b4b55f4af0ac0a0a674f525374",
"3a750da3b8034bcaa7c003e32aa5a6bd",
"42e24cc126e14bf5a1fd4bf43ad6ca0c",
"8ace8fb00ccc4a09bac71d6ff6deb051",
"080717aafa8f4512ad924afc5576c4c1",
"cc08910b015e41e58a16f8417a65b045",
"7cb8df8659c845db9bf813b6bc854880",
"28ee9291f1e1418999c9ab4a6924291b",
"5fc4cb70f837479dbe27a372baa86059",
"41da83b4059946aeb2c37067c3b136aa",
"72f5479f320a4869aae13f4ec852d425",
"ff68b3eda7f3401fbc5f2cf52d702c14",
"672f8b67867b40c68c352d0c65238975",
"0b2e67dfb1844bbd97b956bf37233000",
"93839cc922d94696a08f207274b64972",
"1fcda8ebbe7d421884815f2321fe2b11",
"8e5bf0a6382b40828386563657b1bedd",
"26ace754da054f3db4a81f5697819fea",
"e43eaee5d3ff4d03bc1bad37031b21bb",
"e01a28deac8e4d2683e8bfddfdf3fdce",
"9fe6950e856949bb8ab87a4297258ec3",
"d6b1b99b299a478080aad72a7f4b0ae8",
"8f9fced5333e4c698766836267b084bd",
"3ff882aec124413d8dcff4d50346f05e",
"ff1d05b7a4814825bbcfa67676fdf265",
"93b5f44097d54bb2b0e0844994723dd3",
"3fc2b3dd6d2d4b69996908a25b9b3d54",
"adf003e9917d4a959d0cad14735f6f11",
"a7d83738f6be4d4da4394636ee41a712",
"3c2bbc396857412abec28f3eaf4c5b5c",
"4404c1a831b144e7a466eadf1bbe18bc",
"71a3fa014a4744f5a551b6c52ffbd511",
"24c24151cb864078ac1c99e6f97d1bd9",
"4277bd6b06e8407ca5e2ac835beac227",
"8d10bd2fae664a93b3f48397ef64ee09",
"25b4f1cfa3cc425a8a3b1600a987c3ce",
"d4009b89253042708fdbec5960af10e0",
"f9bc284e1d17477b97139eaa597696f5",
"7d15aaf81a844a9384d11eae6e52a052",
"6e1ed941b44f467f8cc847e320ef291a",
"64fa7b9cd5f34a6895ee16595e81f6df",
"7c16c33137c74a4c8eb6e45454cfee77",
"a498c595ea514b9087013c4483af0ebd",
"f7349098575d4d859500cf4e3b015e6a",
"f349a6b0d60c47e7a7641aecc19ac179",
"5d95c48258ce4d8bb37ab64cdda30d26",
"a0c71dab400a4781b4eb563a90d89807",
"94bd515e333348af9d1f0174b3659177",
"d1b98c4b67b4496084c55c818ab80935",
"dfa28a6e7fa84c88b3e89463160348bf",
"e500fc12f99149c7a4ec2e67481550e0",
"677209c8307245838ccfddb67f11d832",
"2327fc96ad0e40aa8a98c4d29fdaea6c",
"d35e26d49c4c454dbde5c061fb708c3f",
"1345fff5d7eb436dbef9a9f8018a7b93",
"4b899362f3c742afb097116dfda00607",
"668f188c31a844a6a9aa45869718cd7b",
"fa68cab4efdb4132982c2c6461f3ffe0",
"bef11d6b389d4513a34d68e18b5c7816",
"3cd4ce7d5e9f43fe85bbc4df5b28019c",
"a91d2d3b0c264e338913841719956b5c",
"18290fc44a984892a24e2786ce4a0d4a",
"a2af25d5b022473bb462c910cee74a53",
"86983b8263974f8d8b5c51bd205085b7"
]
},
"id": "sHInIwdCSOTg",
"outputId": "4710dd4b-a93c-4c54-e322-ff9ad0c5b77a"
},
"outputs": [],
"source": [
"from datasets import load_dataset\n",
"\n",
"ds = load_dataset(hf_dataset_identifier)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "6LiseiI15Ea7"
},
"source": [
"Let's shuffle the dataset and split the dataset in a train and test set."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "fHedg8mf5NDK"
},
"outputs": [],
"source": [
"ds = ds.shuffle(seed=1)\n",
"ds = ds[\"train\"].train_test_split(test_size=0.2)\n",
"train_ds = ds[\"train\"]\n",
"test_ds = ds[\"test\"]"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "eSxDcDH6E6fE"
},
"source": [
"We'll extract the number of labels and the human-readable ids, so we can configure the segmentation model correctly later on."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 87,
"referenced_widgets": [
"e8a7d503141d4917918bbc9daf949ccd",
"4b17217df6a84c29945fbbe337abbf62",
"f656216b07eb40a2a6b3fd176d284455",
"ea96bd5c08f5485a8d5197f17b43cfb2",
"29615c3f76514ab295a55628e15e1160",
"c09bac6416c041e595c307f843b5c67a",
"7be11677747a4a268183d7f2a2cdc212",
"cfc7a4a16ab34cc8ab359b18102964d5",
"53fa9b65775241d78bbd3b6913f8063b",
"03337e4160434fa1a06d8b47a3c8f9ee",
"916862871cf74e4ca3dda0a20f6c5871"
]
},
"id": "hSlztvBBURBC",
"outputId": "23bb00f6-f9e9-4537-e366-d89ba11abbe3"
},
"outputs": [],
"source": [
"import json\n",
"from huggingface_hub import hf_hub_download\n",
"\n",
"filename = \"id2label.json\"\n",
"id2label = json.load(open(hf_hub_download(repo_id=hf_dataset_identifier, filename=filename, repo_type=\"dataset\"), \"r\"))\n",
"id2label = {int(k): v for k, v in id2label.items()}\n",
"label2id = {v: k for k, v in id2label.items()}\n",
"\n",
"num_labels = len(id2label)\n",
"print(\"Id2label:\", id2label)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "EobXJvy2EAQy"
},
"source": [
"## Image processor & data augmentation"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Za3n6MH1UuDb"
},
"source": [
"A SegFormer model expects the input to be of a certain shape. To transform our training data to match the expected shape, we can use `SegFormerImageProcessor`. We could use the `ds.map` function to apply the image processor to the whole training dataset in advance, but this can take up a lot of disk space. Instead, we'll use a *transform*, which will only prepare a batch of data when that data is actually used (on-the-fly). This way, we can start training without waiting for further data preprocessing.\n",
"\n",
"In our transform, we'll also define some data augmentations to make our model more resilient to different lighting conditions. We'll use the [`ColorJitter`](https://pytorch.org/vision/main/generated/torchvision.transforms.ColorJitter.html) function from `torchvision` to randomly change the brightness, contrast, saturation, and hue of the images in the batch."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 105,
"referenced_widgets": [
"982338bb1fd64ae593c5ba45ea7df33f",
"0ee80704b0b1450f9c5481c8a530f76f",
"8753fa3c37f345a2adf1af776d389aba",
"c413bd4815d44b17a6b151851dc49666",
"717790780b904ed0a4f8ee30ad4af4ef",
"752b6dc067284438878a92572fe74bfd",
"c4ceeb1dab4d4d43bff0f1321f4565c2",
"de4844e91374458d8e8b4a593984b48f",
"d5cabb26063545bba172d8b9db670ce0",
"ffe38865177443cb9d4b65b4ca55a8b6",
"eb62c77d660d47c6906220748b7820c0"
]
},
"id": "xhjJC91WUtWF",
"outputId": "40811010-9e99-4c8d-9159-f08f85675147"
},
"outputs": [],
"source": [
"from torchvision.transforms import ColorJitter\n",
"from transformers import (\n",
" SegformerImageProcessor,\n",
")\n",
"\n",
"processor = SegformerImageProcessor()\n",
"jitter = ColorJitter(brightness=0.25, contrast=0.25, saturation=0.25, hue=0.1) \n",
"\n",
"def train_transforms(example_batch):\n",
" images = [jitter(x) for x in example_batch['pixel_values']]\n",
" labels = [x for x in example_batch['label']]\n",
" inputs = processor(images, labels)\n",
" return inputs\n",
"\n",
"\n",
"def val_transforms(example_batch):\n",
" images = [x for x in example_batch['pixel_values']]\n",
" labels = [x for x in example_batch['label']]\n",
" inputs = processor(images, labels)\n",
" return inputs\n",
"\n",
"\n",
"# Set transforms\n",
"train_ds.set_transform(train_transforms)\n",
"test_ds.set_transform(val_transforms)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Plz_xtW1VXRP"
},
"source": [
"# 3. Fine-tune a SegFormer model"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "3ci_NXUQV02W"
},
"source": [
"## Load the model to fine-tune"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "kewn1jbTINC0"
},
"source": [
"The SegFormer authors define 5 models with increasing sizes: B0 to B5. The following chart (taken from the original paper) shows the performance of these different models on the ADE20K dataset, compared to other models."
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {
"id": "YP19G_pHJfWS"
},
"source": [
""
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "LeDcwGP_KDJ5"
},
"source": [
"Here, we'll load the smallest SegFormer model (B0), pre-trained on ImageNet-1k. It's only about 14MB in size!\n",
"\n",
"Using a small model will make sure that our model can run smoothly on our pizza delivery robot."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 190,
"referenced_widgets": [
"7132be16062d4328beb324872727b0ce",
"34bde1cac94041fcad69d631194885c6",
"ca4ffd6aabf040c98a8cc91ca1593e45",
"10102a9988b848c9a0f81172bbbd0a35",
"c3871f07f1094c3c827c37b1d90e3b8f",
"ab9ecfc3e19c44159752543430c5d133",
"5a6bcac80a134ce2abfdcc92ea925d38",
"f3a5136178754c7d9d116335464c294b",
"590646dbf32249c98af9b9b31b0725ef",
"3745898673414b54a7dfcdb964516751",
"2a6b1f70708b4caa8121c1ef0cc9b194",
"338c06e339744025b8333bd4301c0a8b",
"b7e63291402e4739971f7b8db65faaf8",
"af48af6f97cf4c6aa3f0c1f0f6d59fe4",
"1437c192d7e54418ae9345608d4231b0",
"18475c77baac42c08d4f9d3839198f88",
"fc9f20c3b880418cb7918532e242cda9",
"157cef99a08c4aaa8b74ea09b9a73d53",
"6af1e65a3d594244a33cda5ac9830389",
"5afb5adc1f1e4ac4902d4e21c51a7818",
"c0e3485b83934987a5efa44efe58a05d",
"5d7196ad4b1548ba87b963b267583019"
]
},
"id": "QGEY0JALVYLV",
"outputId": "f85a1b1d-a9bd-422a-eb0a-ec11ce99ddf5"
},
"outputs": [],
"source": [
"from transformers import SegformerForSemanticSegmentation\n",
"\n",
"pretrained_model_name = \"nvidia/mit-b0\" \n",
"model = SegformerForSemanticSegmentation.from_pretrained(\n",
" pretrained_model_name,\n",
" id2label=id2label,\n",
" label2id=label2id\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "d7nqNiuZV7du"
},
"source": [
"## Set up the Trainer"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "1keMOe9kKh-y"
},
"source": [
"To fine-tune the model on our data, we'll use Hugging Face's [Trainer API](https://huggingface.co/docs/transformers/main_classes/trainer). In order to use a Trainer, we need to set up the training configuration, and an evalutation metric."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "DxxFRO77WWAp"
},
"source": [
"First, we'll set up the [`TrainingArguments`](https://huggingface.co/docs/transformers/main_classes/trainer#transformers.TrainingArguments). This defines all training hyperparameters, such as learning rate and the number of epochs, frequency to save the model and so on. We also specify to push the model to the hub after training (`push_to_hub=True`) and specify a model name (`hub_model_id`)."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "fZJ2HJcyV8uQ"
},
"outputs": [],
"source": [
"from transformers import TrainingArguments\n",
"\n",
"epochs = 50\n",
"lr = 0.00006\n",
"batch_size = 2\n",
"\n",
"hub_model_id = \"segformer-b0-finetuned-segments-sidewalk-oct-22\"\n",
"\n",
"training_args = TrainingArguments(\n",
" \"segformer-b0-finetuned-segments-sidewalk-outputs\",\n",
" learning_rate=lr,\n",
" num_train_epochs=epochs,\n",
" per_device_train_batch_size=batch_size,\n",
" per_device_eval_batch_size=batch_size,\n",
" save_total_limit=3,\n",
" evaluation_strategy=\"steps\",\n",
" save_strategy=\"steps\",\n",
" save_steps=20,\n",
" eval_steps=20,\n",
" logging_steps=1,\n",
" eval_accumulation_steps=5,\n",
" load_best_model_at_end=True,\n",
" push_to_hub=True,\n",
" hub_model_id=hub_model_id,\n",
" hub_strategy=\"end\",\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "pPMzKQO8MmX6"
},
"source": [
"Next, we'll define a function that computes the evaluation metric we want to work with. Because we're doing semantic segmentation, we'll use the mean Intersection over Union (mIoU), directly accessible in the `datasets` library (see [here](https://huggingface.co/metrics/mean_iou)). IoU represents the overlap of segmentation masks. Mean IoU is the average of the IoU of all semantic classes. Take a look at [this blogpost](https://www.jeremyjordan.me/evaluating-image-segmentation-models/) for an overview of evaluation metrics for image segmentation.\n",
"\n",
"Because our model outputs logits with dimensions height/4 and width/4, we have to upscale them before we can compute the mIoU."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 49,
"referenced_widgets": [
"1f657a11f0e347ad8ba86800bbacde9f",
"92ba38d13cfb4891a880fe268778df6e",
"66bc569712af420e8e553e8e3463c0a8",
"a15906ccdc694bc68a19e20f48313469",
"4a9732e670204eafac847d7fad3f24b9",
"322a8d8fe9684c848cca7b97c68bbdcb",
"5dec25ed0f744fcc8a6b948c377b9bfc",
"c7025b8650fc4051a46beacb54ee76c7",
"504c5873466a4ddc9a509f41bc44a763",
"182c8515eec746f493318ce9f7438c19",
"8298a9c05f1341d691378291a344f5cc"
]
},
"id": "DKOHOKaOL9Ze",
"outputId": "a8b56e6e-96b0-4bd5-ef1f-ecb38c88d6be"
},
"outputs": [],
"source": [
"import torch\n",
"from torch import nn\n",
"import evaluate\n",
"import multiprocessing\n",
"\n",
"metric = evaluate.load(\"mean_iou\")\n",
"\n",
"def compute_metrics(eval_pred):\n",
" with torch.no_grad():\n",
" logits, labels = eval_pred\n",
" logits_tensor = torch.from_numpy(logits)\n",
" # scale the logits to the size of the label\n",
" logits_tensor = nn.functional.interpolate(\n",
" logits_tensor,\n",
" size=labels.shape[-2:],\n",
" mode=\"bilinear\",\n",
" align_corners=False,\n",
" ).argmax(dim=1)\n",
"\n",
" pred_labels = logits_tensor.detach().cpu().numpy()\n",
" metrics = metric._compute(\n",
" predictions=pred_labels,\n",
" references=labels,\n",
" num_labels=len(id2label),\n",
" ignore_index=0,\n",
" reduce_labels=processor.do_reduce_labels,\n",
" )\n",
" \n",
" # add per category metrics as individual key-value pairs\n",
" per_category_accuracy = metrics.pop(\"per_category_accuracy\").tolist()\n",
" per_category_iou = metrics.pop(\"per_category_iou\").tolist()\n",
"\n",
" metrics.update({f\"accuracy_{id2label[i]}\": v for i, v in enumerate(per_category_accuracy)})\n",
" metrics.update({f\"iou_{id2label[i]}\": v for i, v in enumerate(per_category_iou)})\n",
"\n",
" return metrics"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "3QjK0poxOBmj"
},
"source": [
"Finally, we can instantiate a `Trainer` object."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "NmyNBmg2Wacv",
"outputId": "b98a8806-9eeb-4c56-a534-a5c56efe4468"
},
"outputs": [],
"source": [
"from transformers import Trainer\n",
"\n",
"trainer = Trainer(\n",
" model=model,\n",
" args=training_args,\n",
" train_dataset=train_ds,\n",
" eval_dataset=test_ds,\n",
" compute_metrics=compute_metrics,\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "fcP5RRZfWsex"
},
"source": [
"Now that our trainer is set up, training is as simple as calling the `train` function. We don't need to worry about managing our GPU(s), the trainer will take care of that."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"background_save": true,
"base_uri": "https://localhost:8080/",
"height": 1000
},
"id": "7Up9QNqOWtSD",
"outputId": "32826f5e-88df-4b1a-e2e9-2613cc86fb15"
},
"outputs": [],
"source": [
"trainer.train()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "YlOal7giORmw"
},
"source": [
"When we're done with training, we can push our fine-tuned model and the image processor to the Hugging Face hub.\n",
"\n",
"This will also automatically create a model card with our results. We'll supply some extra information in `kwargs` to make the model card more complete."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "fdg5bKK0pjYm"
},
"outputs": [],
"source": [
"kwargs = {\n",
" \"tags\": [\"vision\", \"image-segmentation\"],\n",
" \"finetuned_from\": pretrained_model_name,\n",
" \"dataset\": hf_dataset_identifier,\n",
"}\n",
"\n",
"processor.push_to_hub(hub_model_id)\n",
"trainer.push_to_hub(**kwargs)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "yjd6WuBJW0qX"
},
"source": [
"# 4. Inference"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "9YBOUiDuOpXp"
},
"source": [
"Now comes the exciting part, using our fine-tuned model! In this section, we'll show how you can load your model from the hub and use it for inference. \n",
"\n",
"However, you can also try out your model directly on the Hugging Face Hub, thanks to the cool widgets powered by the [hosted inference API](https://api-inference.huggingface.co/docs/python/html/index.html). If you pushed your model to the hub in the previous step, you should see an inference widget on your model page. You can add default examples to the widget by defining example image URLs in your model card. See [this model card](https://huggingface.co/tobiasc/segformer-b0-finetuned-segments-sidewalk/blob/main/README.md) as an example."
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {
"id": "U69agBxj3TjE"
},
"source": [
""
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "lKigaXztQijt"
},
"source": [
"## Use the model from the hub"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "JFEwCwp0Qo7q"
},
"source": [
"We'll first load the model from the hub using `SegformerForSemanticSegmentation.from_pretrained()`.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "yHi_8qKIW1Sa"
},
"outputs": [],
"source": [
"from transformers import SegformerImageProcessor, SegformerForSemanticSegmentation\n",
"\n",
"processor = SegformerImageProcessor.from_pretrained(\"nvidia/segformer-b0-finetuned-ade-512-512\")\n",
"model = SegformerForSemanticSegmentation.from_pretrained(f\"{hf_username}/{hub_model_id}\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "SQJkEqGxQwz6"
},
"source": [
"Next, we'll load an image from our test dataset."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "R57X_iNkqv6H"
},
"outputs": [],
"source": [
"image = test_ds[0]['pixel_values']\n",
"gt_seg = test_ds[0]['label']\n",
"image"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "7m7IfMv6R3_5"
},
"source": [
"To segment this test image, we first need to prepare the image using the image processor. Then we forward it through the model.\n",
"\n",
"We also need to remember to upscale the output logits to the original image size. In order to get the actual category predictions, we just have to apply an `argmax` on the logits."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "8nNSSqEUBS2v"
},
"outputs": [],
"source": [
"from torch import nn\n",
"\n",
"inputs = processor(images=image, return_tensors=\"pt\")\n",
"outputs = model(**inputs)\n",
"logits = outputs.logits # shape (batch_size, num_labels, height/4, width/4)\n",
"\n",
"# First, rescale logits to original image size\n",
"upsampled_logits = nn.functional.interpolate(\n",
" logits,\n",
" size=image.size[::-1], # (height, width)\n",
" mode='bilinear',\n",
" align_corners=False\n",
")\n",
"\n",
"# Second, apply argmax on the class dimension\n",
"pred_seg = upsampled_logits.argmax(dim=1)[0]"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "oyHddde_SOgv"
},
"source": [
"Now it's time to display the result. The next cell defines the colors for each category, so that they match the \"category coloring\" on Segments.ai."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"cellView": "form",
"id": "Ky_8gHCRCJHj"
},
"outputs": [],
"source": [
"#@title `def sidewalk_palette()`\n",
"\n",
"def sidewalk_palette():\n",
" \"\"\"Sidewalk palette that maps each class to RGB values.\"\"\"\n",
" return [\n",
" [0, 0, 0],\n",
" [216, 82, 24],\n",
" [255, 255, 0],\n",
" [125, 46, 141],\n",
" [118, 171, 47],\n",
" [161, 19, 46],\n",
" [255, 0, 0],\n",
" [0, 128, 128],\n",
" [190, 190, 0],\n",
" [0, 255, 0],\n",
" [0, 0, 255],\n",
" [170, 0, 255],\n",
" [84, 84, 0],\n",
" [84, 170, 0],\n",
" [84, 255, 0],\n",
" [170, 84, 0],\n",
" [170, 170, 0],\n",
" [170, 255, 0],\n",
" [255, 84, 0],\n",
" [255, 170, 0],\n",
" [255, 255, 0],\n",
" [33, 138, 200],\n",
" [0, 170, 127],\n",
" [0, 255, 127],\n",
" [84, 0, 127],\n",
" [84, 84, 127],\n",
" [84, 170, 127],\n",
" [84, 255, 127],\n",
" [170, 0, 127],\n",
" [170, 84, 127],\n",
" [170, 170, 127],\n",
" [170, 255, 127],\n",
" [255, 0, 127],\n",
" [255, 84, 127],\n",
" [255, 170, 127],\n",
" ]"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "f4BzL0ISSePY"
},
"source": [
"The next function overlays the output segmentation map on the original image."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "G3HqZXyQB7gJ"
},
"outputs": [],
"source": [
"import numpy as np\n",
"\n",
"def get_seg_overlay(image, seg):\n",
" color_seg = np.zeros((seg.shape[0], seg.shape[1], 3), dtype=np.uint8) # height, width, 3\n",
" palette = np.array(sidewalk_palette())\n",
" for label, color in enumerate(palette):\n",
" color_seg[seg == label, :] = color\n",
"\n",
" # Show image + mask\n",
" img = np.array(image) * 0.5 + color_seg * 0.5\n",
" img = img.astype(np.uint8)\n",
"\n",
" return img"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "-yEXFytLSkht"
},
"source": [
"We'll display the result next to the ground-truth mask."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "vnSn2A2U0RMw"
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"pred_img = get_seg_overlay(image, pred_seg)\n",
"gt_img = get_seg_overlay(image, np.array(gt_seg))\n",
"\n",
"f, axs = plt.subplots(1, 2)\n",
"f.set_figheight(30)\n",
"f.set_figwidth(50)\n",
"\n",
"axs[0].set_title(\"Prediction\", {'fontsize': 40})\n",
"axs[0].imshow(pred_img)\n",
"axs[1].set_title(\"Ground truth\", {'fontsize': 40})\n",
"axs[1].imshow(gt_img)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "r3Chx4bXaCYa"
},
"source": [
"What do you think? Would you send our pizza delivery robot on the road with this segmentation information?\n",
"\n",
"The result might not be perfect yet, but we can always expand our dataset to make the model more robust. We can now also go train a larger SegFormer model, and see how it stacks up."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "-_p2KvvfT-tK"
},
"source": [
"# 5. Conclusion"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ZFUlFbJyTZ81"
},
"source": [
"That's it! You now know how to create your own image segmentation dataset and how to use it to fine-tune a semantic segmentation model.\n",
"\n",
"We introduced you to some useful tools along the way, such as:\n",
"\n",
"\n",
"* [Segments.ai](https://segments.ai) for labeling your data\n",
"* [🤗 datasets](https://huggingface.co/docs/datasets/) for creating and sharing a dataset\n",
"* [🤗 transformers](https://huggingface.co/transformers) for easily fine-tuning a state-of-the-art segmentation model\n",
"* [🤗 hub](https://huggingface.co/docs/hub/main) for sharing our dataset and model, and for creating an inference widget for our model\n",
"\n",
"\n",
"We hope you enjoyed this post and learned something. Feel free to share your own model with us on Twitter ([@TobiasCornille](https://twitter.com/tobiascornille), [@NielsRogge](https://twitter.com/nielsrogge), and [@huggingface](https://twitter.com/huggingface))."
]
}
],
"metadata": {
"accelerator": "GPU",
"colab": {
"collapsed_sections": [
"GdLqU-p2Lvdj"
],
"machine_shape": "hm",
"provenance": []
},
"gpuClass": "standard",
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"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.8.10"
},
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"03337e4160434fa1a06d8b47a3c8f9ee": {
"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
}
},
"080717aafa8f4512ad924afc5576c4c1": {
"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": ""
}
},
"0b2e67dfb1844bbd97b956bf37233000": {
"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
}
},
"0ee80704b0b1450f9c5481c8a530f76f": {
"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_752b6dc067284438878a92572fe74bfd",
"placeholder": "",
"style": "IPY_MODEL_c4ceeb1dab4d4d43bff0f1321f4565c2",
"value": ""
}
},
"10102a9988b848c9a0f81172bbbd0a35": {
"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_3745898673414b54a7dfcdb964516751",
"placeholder": "",
"style": "IPY_MODEL_2a6b1f70708b4caa8121c1ef0cc9b194",
"value": " 70.0k/70.0k [00:00<00:00, 118kB/s]"
}
},
"1345fff5d7eb436dbef9a9f8018a7b93": {
"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_bef11d6b389d4513a34d68e18b5c7816",
"placeholder": "",
"style": "IPY_MODEL_3cd4ce7d5e9f43fe85bbc4df5b28019c",
"value": "100%"
}
},
"1437c192d7e54418ae9345608d4231b0": {
"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_c0e3485b83934987a5efa44efe58a05d",
"placeholder": "",
"style": "IPY_MODEL_5d7196ad4b1548ba87b963b267583019",
"value": " 14.4M/14.4M [00:10<00:00, 4.03MB/s]"
}
},
"157cef99a08c4aaa8b74ea09b9a73d53": {
"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": ""
}
},
"18290fc44a984892a24e2786ce4a0d4a": {
"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": ""
}
},
"182c8515eec746f493318ce9f7438c19": {
"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
}
},
"18475c77baac42c08d4f9d3839198f88": {
"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
}
},
"1ade57bbb0c74e929439612a27d6b461": {
"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
}
},
"1f657a11f0e347ad8ba86800bbacde9f": {
"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_92ba38d13cfb4891a880fe268778df6e",
"IPY_MODEL_66bc569712af420e8e553e8e3463c0a8",
"IPY_MODEL_a15906ccdc694bc68a19e20f48313469"
],
"layout": "IPY_MODEL_4a9732e670204eafac847d7fad3f24b9"
}
},
"1fcda8ebbe7d421884815f2321fe2b11": {
"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": ""
}
},
"217f7b6b976246278adf81a59debfa5a": {
"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_8ace8fb00ccc4a09bac71d6ff6deb051",
"placeholder": "",
"style": "IPY_MODEL_080717aafa8f4512ad924afc5576c4c1",
"value": "Downloading readme: 100%"
}
},
"2327fc96ad0e40aa8a98c4d29fdaea6c": {
"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": ""
}
},
"24c24151cb864078ac1c99e6f97d1bd9": {
"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_d4009b89253042708fdbec5960af10e0",
"placeholder": "",
"style": "IPY_MODEL_f9bc284e1d17477b97139eaa597696f5",
"value": "Extracting data files: 100%"
}
},
"25b4f1cfa3cc425a8a3b1600a987c3ce": {
"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
}
},
"26ace754da054f3db4a81f5697819fea": {
"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": ""
}
},
"28ee9291f1e1418999c9ab4a6924291b": {
"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
}
},
"29615c3f76514ab295a55628e15e1160": {
"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
}
},
"2a6b1f70708b4caa8121c1ef0cc9b194": {
"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": ""
}
},
"2d8b1e187c754c24abd4357033c1053e": {
"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_d6749f3d135e4ef2b7cda23d5c0b86d7",
"placeholder": "",
"style": "IPY_MODEL_5fa9a52011fa4beb92f823d3d1c46a35",
"value": "Downloading metadata: 100%"
}
},
"322a8d8fe9684c848cca7b97c68bbdcb": {
"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
}
},
"338c06e339744025b8333bd4301c0a8b": {
"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_b7e63291402e4739971f7b8db65faaf8",
"IPY_MODEL_af48af6f97cf4c6aa3f0c1f0f6d59fe4",
"IPY_MODEL_1437c192d7e54418ae9345608d4231b0"
],
"layout": "IPY_MODEL_18475c77baac42c08d4f9d3839198f88"
}
},
"34bde1cac94041fcad69d631194885c6": {
"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_ab9ecfc3e19c44159752543430c5d133",
"placeholder": "",
"style": "IPY_MODEL_5a6bcac80a134ce2abfdcc92ea925d38",
"value": "Downloading: 100%"
}
},
"3745898673414b54a7dfcdb964516751": {
"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
}
},
"3a750da3b8034bcaa7c003e32aa5a6bd": {
"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_28ee9291f1e1418999c9ab4a6924291b",
"placeholder": "",
"style": "IPY_MODEL_5fc4cb70f837479dbe27a372baa86059",
"value": " 4.26k/4.26k [00:00<00:00, 179kB/s]"
}
},
"3c2bbc396857412abec28f3eaf4c5b5c": {
"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
}
},
"3cd4ce7d5e9f43fe85bbc4df5b28019c": {
"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": ""
}
},
"3fc2b3dd6d2d4b69996908a25b9b3d54": {
"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": ""
}
},
"3ff882aec124413d8dcff4d50346f05e": {
"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_3c2bbc396857412abec28f3eaf4c5b5c",
"placeholder": "",
"style": "IPY_MODEL_4404c1a831b144e7a466eadf1bbe18bc",
"value": " 324M/324M [00:16<00:00, 16.4MB/s]"
}
},
"41da83b4059946aeb2c37067c3b136aa": {
"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_72f5479f320a4869aae13f4ec852d425",
"IPY_MODEL_ff68b3eda7f3401fbc5f2cf52d702c14",
"IPY_MODEL_672f8b67867b40c68c352d0c65238975"
],
"layout": "IPY_MODEL_0b2e67dfb1844bbd97b956bf37233000"
}
},
"4277bd6b06e8407ca5e2ac835beac227": {
"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_7d15aaf81a844a9384d11eae6e52a052",
"max": 1,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_6e1ed941b44f467f8cc847e320ef291a",
"value": 1
}
},
"42e24cc126e14bf5a1fd4bf43ad6ca0c": {
"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
}
},
"43991a4fbdce48fc8a816faee5d76b20": {
"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": ""
}
},
"4404c1a831b144e7a466eadf1bbe18bc": {
"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": ""
}
},
"4a9732e670204eafac847d7fad3f24b9": {
"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
}
},
"4b17217df6a84c29945fbbe337abbf62": {
"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_c09bac6416c041e595c307f843b5c67a",
"placeholder": "",
"style": "IPY_MODEL_7be11677747a4a268183d7f2a2cdc212",
"value": "Downloading: 100%"
}
},
"4b899362f3c742afb097116dfda00607": {
"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_a91d2d3b0c264e338913841719956b5c",
"max": 1,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_18290fc44a984892a24e2786ce4a0d4a",
"value": 1
}
},
"504c5873466a4ddc9a509f41bc44a763": {
"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": ""
}
},
"53fa9b65775241d78bbd3b6913f8063b": {
"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": ""
}
},
"590646dbf32249c98af9b9b31b0725ef": {
"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": ""
}
},
"5a6bcac80a134ce2abfdcc92ea925d38": {
"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": ""
}
},
"5afb5adc1f1e4ac4902d4e21c51a7818": {
"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": ""
}
},
"5d7196ad4b1548ba87b963b267583019": {
"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": ""
}
},
"5d95c48258ce4d8bb37ab64cdda30d26": {
"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_677209c8307245838ccfddb67f11d832",
"placeholder": "",
"style": "IPY_MODEL_2327fc96ad0e40aa8a98c4d29fdaea6c",
"value": " 1/? [00:00<00:00, 1.13 tables/s]"
}
},
"5dec25ed0f744fcc8a6b948c377b9bfc": {
"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": ""
}
},
"5fa9a52011fa4beb92f823d3d1c46a35": {
"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": ""
}
},
"5fc4cb70f837479dbe27a372baa86059": {
"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": ""
}
},
"64fa7b9cd5f34a6895ee16595e81f6df": {
"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
}
},
"668f188c31a844a6a9aa45869718cd7b": {
"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_a2af25d5b022473bb462c910cee74a53",
"placeholder": "",
"style": "IPY_MODEL_86983b8263974f8d8b5c51bd205085b7",
"value": " 1/1 [00:00<00:00, 22.69it/s]"
}
},
"66bc569712af420e8e553e8e3463c0a8": {
"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_c7025b8650fc4051a46beacb54ee76c7",
"max": 13077,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_504c5873466a4ddc9a509f41bc44a763",
"value": 13077
}
},
"672f8b67867b40c68c352d0c65238975": {
"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_e43eaee5d3ff4d03bc1bad37031b21bb",
"placeholder": "",
"style": "IPY_MODEL_e01a28deac8e4d2683e8bfddfdf3fdce",
"value": " 1/1 [00:19<00:00, 19.19s/it]"
}
},
"677209c8307245838ccfddb67f11d832": {
"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
}
},
"6af1e65a3d594244a33cda5ac9830389": {
"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
}
},
"6e1ed941b44f467f8cc847e320ef291a": {
"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": ""
}
},
"7132be16062d4328beb324872727b0ce": {
"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_34bde1cac94041fcad69d631194885c6",
"IPY_MODEL_ca4ffd6aabf040c98a8cc91ca1593e45",
"IPY_MODEL_10102a9988b848c9a0f81172bbbd0a35"
],
"layout": "IPY_MODEL_c3871f07f1094c3c827c37b1d90e3b8f"
}
},
"717790780b904ed0a4f8ee30ad4af4ef": {
"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
}
},
"71a3fa014a4744f5a551b6c52ffbd511": {
"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_24c24151cb864078ac1c99e6f97d1bd9",
"IPY_MODEL_4277bd6b06e8407ca5e2ac835beac227",
"IPY_MODEL_8d10bd2fae664a93b3f48397ef64ee09"
],
"layout": "IPY_MODEL_25b4f1cfa3cc425a8a3b1600a987c3ce"
}
},
"72f5479f320a4869aae13f4ec852d425": {
"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_93839cc922d94696a08f207274b64972",
"placeholder": "",
"style": "IPY_MODEL_1fcda8ebbe7d421884815f2321fe2b11",
"value": "Downloading data files: 100%"
}
},
"752b6dc067284438878a92572fe74bfd": {
"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
}
},
"78ed12b4b55f4af0ac0a0a674f525374": {
"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_cc08910b015e41e58a16f8417a65b045",
"max": 4260,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_7cb8df8659c845db9bf813b6bc854880",
"value": 4260
}
},
"7be11677747a4a268183d7f2a2cdc212": {
"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": ""
}
},
"7c16c33137c74a4c8eb6e45454cfee77": {
"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": ""
}
},
"7cb8df8659c845db9bf813b6bc854880": {
"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": ""
}
},
"7d15aaf81a844a9384d11eae6e52a052": {
"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
}
},
"8298a9c05f1341d691378291a344f5cc": {
"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": ""
}
},
"86983b8263974f8d8b5c51bd205085b7": {
"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": ""
}
},
"8753fa3c37f345a2adf1af776d389aba": {
"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_de4844e91374458d8e8b4a593984b48f",
"max": 1,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_d5cabb26063545bba172d8b9db670ce0",
"value": 0
}
},
"8905921ad7e843d5864fb0bbc0fc9f97": {
"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_217f7b6b976246278adf81a59debfa5a",
"IPY_MODEL_78ed12b4b55f4af0ac0a0a674f525374",
"IPY_MODEL_3a750da3b8034bcaa7c003e32aa5a6bd"
],
"layout": "IPY_MODEL_42e24cc126e14bf5a1fd4bf43ad6ca0c"
}
},
"8ace8fb00ccc4a09bac71d6ff6deb051": {
"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
}
},
"8d10bd2fae664a93b3f48397ef64ee09": {
"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_64fa7b9cd5f34a6895ee16595e81f6df",
"placeholder": "",
"style": "IPY_MODEL_7c16c33137c74a4c8eb6e45454cfee77",
"value": " 1/1 [00:00<00:00, 35.09it/s]"
}
},
"8e5bf0a6382b40828386563657b1bedd": {
"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
}
},
"8f9fced5333e4c698766836267b084bd": {
"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_adf003e9917d4a959d0cad14735f6f11",
"max": 324302379,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_a7d83738f6be4d4da4394636ee41a712",
"value": 324302379
}
},
"916862871cf74e4ca3dda0a20f6c5871": {
"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": ""
}
},
"92ba38d13cfb4891a880fe268778df6e": {
"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_322a8d8fe9684c848cca7b97c68bbdcb",
"placeholder": "",
"style": "IPY_MODEL_5dec25ed0f744fcc8a6b948c377b9bfc",
"value": "Downloading builder script: 100%"
}
},
"93839cc922d94696a08f207274b64972": {
"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
}
},
"93b5f44097d54bb2b0e0844994723dd3": {
"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
}
},
"94bd515e333348af9d1f0174b3659177": {
"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
}
},
"982338bb1fd64ae593c5ba45ea7df33f": {
"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_0ee80704b0b1450f9c5481c8a530f76f",
"IPY_MODEL_8753fa3c37f345a2adf1af776d389aba",
"IPY_MODEL_c413bd4815d44b17a6b151851dc49666"
],
"layout": "IPY_MODEL_717790780b904ed0a4f8ee30ad4af4ef"
}
},
"9fe6950e856949bb8ab87a4297258ec3": {
"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_d6b1b99b299a478080aad72a7f4b0ae8",
"IPY_MODEL_8f9fced5333e4c698766836267b084bd",
"IPY_MODEL_3ff882aec124413d8dcff4d50346f05e"
],
"layout": "IPY_MODEL_ff1d05b7a4814825bbcfa67676fdf265"
}
},
"a0c71dab400a4781b4eb563a90d89807": {
"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": "hidden",
"width": null
}
},
"a15906ccdc694bc68a19e20f48313469": {
"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_182c8515eec746f493318ce9f7438c19",
"placeholder": "",
"style": "IPY_MODEL_8298a9c05f1341d691378291a344f5cc",
"value": " 13.1k/13.1k [00:00<00:00, 444kB/s]"
}
},
"a2af25d5b022473bb462c910cee74a53": {
"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
}
},
"a333fe7202cc4148b09813a9eb7c7835": {
"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_2d8b1e187c754c24abd4357033c1053e",
"IPY_MODEL_be90780c4aa44cf7b16bcf245a960f59",
"IPY_MODEL_ab1871dc88fe439f852b1652808e35b3"
],
"layout": "IPY_MODEL_fe409f2089ca42249b35fa5d892ed6d9"
}
},
"a498c595ea514b9087013c4483af0ebd": {
"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_f7349098575d4d859500cf4e3b015e6a",
"IPY_MODEL_f349a6b0d60c47e7a7641aecc19ac179",
"IPY_MODEL_5d95c48258ce4d8bb37ab64cdda30d26"
],
"layout": "IPY_MODEL_a0c71dab400a4781b4eb563a90d89807"
}
},
"a7d83738f6be4d4da4394636ee41a712": {
"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": ""
}
},
"a91d2d3b0c264e338913841719956b5c": {
"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
}
},
"ab1871dc88fe439f852b1652808e35b3": {
"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_b806c467df834477a7794f74bc30b049",
"placeholder": "",
"style": "IPY_MODEL_43991a4fbdce48fc8a816faee5d76b20",
"value": " 635/635 [00:00<00:00, 20.3kB/s]"
}
},
"ab9ecfc3e19c44159752543430c5d133": {
"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
}
},
"adf003e9917d4a959d0cad14735f6f11": {
"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
}
},
"af48af6f97cf4c6aa3f0c1f0f6d59fe4": {
"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_6af1e65a3d594244a33cda5ac9830389",
"max": 14380029,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_5afb5adc1f1e4ac4902d4e21c51a7818",
"value": 14380029
}
},
"b7e63291402e4739971f7b8db65faaf8": {
"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_fc9f20c3b880418cb7918532e242cda9",
"placeholder": "",
"style": "IPY_MODEL_157cef99a08c4aaa8b74ea09b9a73d53",
"value": "Downloading: 100%"
}
},
"b806c467df834477a7794f74bc30b049": {
"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
}
},
"be90780c4aa44cf7b16bcf245a960f59": {
"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_1ade57bbb0c74e929439612a27d6b461",
"max": 635,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_e66ca393162a494a9c56c35c8bbddb59",
"value": 635
}
},
"bef11d6b389d4513a34d68e18b5c7816": {
"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
}
},
"c09bac6416c041e595c307f843b5c67a": {
"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
}
},
"c0e3485b83934987a5efa44efe58a05d": {
"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
}
},
"c3871f07f1094c3c827c37b1d90e3b8f": {
"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
}
},
"c413bd4815d44b17a6b151851dc49666": {
"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_ffe38865177443cb9d4b65b4ca55a8b6",
"placeholder": "",
"style": "IPY_MODEL_eb62c77d660d47c6906220748b7820c0",
"value": " 0/0 [00:00<?, ?it/s]"
}
},
"c4ceeb1dab4d4d43bff0f1321f4565c2": {
"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": ""
}
},
"c7025b8650fc4051a46beacb54ee76c7": {
"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
}
},
"ca4ffd6aabf040c98a8cc91ca1593e45": {
"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_f3a5136178754c7d9d116335464c294b",
"max": 70043,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_590646dbf32249c98af9b9b31b0725ef",
"value": 70043
}
},
"cc08910b015e41e58a16f8417a65b045": {
"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
}
},
"cfc7a4a16ab34cc8ab359b18102964d5": {
"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
}
},
"d1b98c4b67b4496084c55c818ab80935": {
"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": ""
}
},
"d35e26d49c4c454dbde5c061fb708c3f": {
"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_1345fff5d7eb436dbef9a9f8018a7b93",
"IPY_MODEL_4b899362f3c742afb097116dfda00607",
"IPY_MODEL_668f188c31a844a6a9aa45869718cd7b"
],
"layout": "IPY_MODEL_fa68cab4efdb4132982c2c6461f3ffe0"
}
},
"d4009b89253042708fdbec5960af10e0": {
"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
}
},
"d5cabb26063545bba172d8b9db670ce0": {
"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": ""
}
},
"d6749f3d135e4ef2b7cda23d5c0b86d7": {
"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
}
},
"d6b1b99b299a478080aad72a7f4b0ae8": {
"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_93b5f44097d54bb2b0e0844994723dd3",
"placeholder": "",
"style": "IPY_MODEL_3fc2b3dd6d2d4b69996908a25b9b3d54",
"value": "Downloading data: 100%"
}
},
"de4844e91374458d8e8b4a593984b48f": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": "20px"
}
},
"dfa28a6e7fa84c88b3e89463160348bf": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": "20px"
}
},
"e01a28deac8e4d2683e8bfddfdf3fdce": {
"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": ""
}
},
"e43eaee5d3ff4d03bc1bad37031b21bb": {
"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
}
},
"e500fc12f99149c7a4ec2e67481550e0": {
"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": ""
}
},
"e66ca393162a494a9c56c35c8bbddb59": {
"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": ""
}
},
"e8a7d503141d4917918bbc9daf949ccd": {
"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_4b17217df6a84c29945fbbe337abbf62",
"IPY_MODEL_f656216b07eb40a2a6b3fd176d284455",
"IPY_MODEL_ea96bd5c08f5485a8d5197f17b43cfb2"
],
"layout": "IPY_MODEL_29615c3f76514ab295a55628e15e1160"
}
},
"ea96bd5c08f5485a8d5197f17b43cfb2": {
"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_03337e4160434fa1a06d8b47a3c8f9ee",
"placeholder": "",
"style": "IPY_MODEL_916862871cf74e4ca3dda0a20f6c5871",
"value": " 852/852 [00:00<00:00, 34.5kB/s]"
}
},
"eb62c77d660d47c6906220748b7820c0": {
"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": ""
}
},
"f349a6b0d60c47e7a7641aecc19ac179": {
"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": "info",
"description": "",
"description_tooltip": null,
"layout": "IPY_MODEL_dfa28a6e7fa84c88b3e89463160348bf",
"max": 1,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_e500fc12f99149c7a4ec2e67481550e0",
"value": 1
}
},
"f3a5136178754c7d9d116335464c294b": {
"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
}
},
"f656216b07eb40a2a6b3fd176d284455": {
"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_cfc7a4a16ab34cc8ab359b18102964d5",
"max": 852,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_53fa9b65775241d78bbd3b6913f8063b",
"value": 852
}
},
"f7349098575d4d859500cf4e3b015e6a": {
"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_94bd515e333348af9d1f0174b3659177",
"placeholder": "",
"style": "IPY_MODEL_d1b98c4b67b4496084c55c818ab80935",
"value": ""
}
},
"f9bc284e1d17477b97139eaa597696f5": {
"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": ""
}
},
"fa68cab4efdb4132982c2c6461f3ffe0": {
"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
}
},
"fc9f20c3b880418cb7918532e242cda9": {
"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
}
},
"fe409f2089ca42249b35fa5d892ed6d9": {
"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
}
},
"ff1d05b7a4814825bbcfa67676fdf265": {
"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
}
},
"ff68b3eda7f3401fbc5f2cf52d702c14": {
"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_8e5bf0a6382b40828386563657b1bedd",
"max": 1,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_26ace754da054f3db4a81f5697819fea",
"value": 1
}
},
"ffe38865177443cb9d4b65b4ca55a8b6": {
"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
}
}
}
}
},
"nbformat": 4,
"nbformat_minor": 0
}