{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "Fine-tune-ConvNeXT-with-HF-trainer.ipynb",
      "provenance": [],
      "collapsed_sections": [],
      "authorship_tag": "ABX9TyOf7VFIRZU3lESamLLjgFT9",
      "include_colab_link": true
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    },
    "accelerator": "GPU",
    "widgets": {
      "application/vnd.jupyter.widget-state+json": {
        "f31b968bcbb2441cb109826e28582b1d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "VBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "VBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "VBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_3a85610ccbf04aeeb1f5380685202afd",
              "IPY_MODEL_f019ac477f424f56b196865736bec02a",
              "IPY_MODEL_6176c8ce51f94104a0ebea09b8593e48",
              "IPY_MODEL_7d53209b74e0429e82dfdcfad0e4c43e",
              "IPY_MODEL_aa620b5dcf1b4890bc90efccf8446cbe"
            ],
            "layout": "IPY_MODEL_f3ecd6be8311411b8d4233ef57bf1c38"
          }
        },
        "3a85610ccbf04aeeb1f5380685202afd": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_6455f0332c264e8aa77e70704a69fada",
            "placeholder": "​",
            "style": "IPY_MODEL_9021ee53f6f94288ab1ee084887944f8",
            "value": "<center> <img\nsrc=https://huggingface.co/front/assets/huggingface_logo-noborder.svg\nalt='Hugging Face'> <br> Copy a token from <a\nhref=\"https://huggingface.co/settings/tokens\" target=\"_blank\">your Hugging Face\ntokens page</a> and paste it below. <br> Immediately click login after copying\nyour token or it might be stored in plain text in this notebook file. </center>"
          }
        },
        "f019ac477f424f56b196865736bec02a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "PasswordModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "PasswordModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "PasswordView",
            "continuous_update": true,
            "description": "Token:",
            "description_tooltip": null,
            "disabled": false,
            "layout": "IPY_MODEL_1f00746a43a4468bb6c22933377ecfff",
            "placeholder": "​",
            "style": "IPY_MODEL_21274439c9a946dcbeae8d25c2588ca4",
            "value": ""
          }
        },
        "6176c8ce51f94104a0ebea09b8593e48": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ButtonModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ButtonModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ButtonView",
            "button_style": "",
            "description": "Login",
            "disabled": false,
            "icon": "",
            "layout": "IPY_MODEL_507e1f03d1574aa39dab1706b660794c",
            "style": "IPY_MODEL_1eafd0d0c9774f66a744c00728ca9a9b",
            "tooltip": ""
          }
        },
        "7d53209b74e0429e82dfdcfad0e4c43e": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_6751c59c1e9541de9bb62ef770dbbea0",
            "placeholder": "​",
            "style": "IPY_MODEL_3edab033dfdb4ccf8649db961610dd86",
            "value": "\n<b>Pro Tip:</b> If you don't already have one, you can create a dedicated\n'notebooks' token with 'write' access, that you can then easily reuse for all\nnotebooks. <br> <i>Logging in with your username and password is deprecated and\nwon't be possible anymore in the near future. You can still use them for now by\nclicking below.</i> </center>"
          }
        },
        "aa620b5dcf1b4890bc90efccf8446cbe": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ButtonModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ButtonModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ButtonView",
            "button_style": "",
            "description": "Use password",
            "disabled": false,
            "icon": "",
            "layout": "IPY_MODEL_b1d7803d19b44f988107c61550100463",
            "style": "IPY_MODEL_84f17019bac5499e8b9bb034b867aea4",
            "tooltip": ""
          }
        },
        "f3ecd6be8311411b8d4233ef57bf1c38": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": "center",
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": "flex",
            "flex": null,
            "flex_flow": "column",
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": "50%"
          }
        },
        "6455f0332c264e8aa77e70704a69fada": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "9021ee53f6f94288ab1ee084887944f8": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "1f00746a43a4468bb6c22933377ecfff": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "21274439c9a946dcbeae8d25c2588ca4": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "507e1f03d1574aa39dab1706b660794c": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "1eafd0d0c9774f66a744c00728ca9a9b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ButtonStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ButtonStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "button_color": null,
            "font_weight": ""
          }
        },
        "6751c59c1e9541de9bb62ef770dbbea0": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "3edab033dfdb4ccf8649db961610dd86": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "b1d7803d19b44f988107c61550100463": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "84f17019bac5499e8b9bb034b867aea4": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ButtonStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ButtonStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "button_color": null,
            "font_weight": ""
          }
        },
        "dfc73d063ad54d658c25269eae8e0f39": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_03a37c85b7fd4019adb72368a2a0656a",
              "IPY_MODEL_a2ac34593d0b47eead8837de7cd5dfdd",
              "IPY_MODEL_18200868fc3b4d9c8df210f57e347b7b"
            ],
            "layout": "IPY_MODEL_1d888cc1841f4403a49f6c3ea8b417e2"
          }
        },
        "03a37c85b7fd4019adb72368a2a0656a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_b41e144b874b4486a6f044002dfa0843",
            "placeholder": "​",
            "style": "IPY_MODEL_8500e7e38b3647e788043c1b7ed868a5",
            "value": "Downloading: 100%"
          }
        },
        "a2ac34593d0b47eead8837de7cd5dfdd": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_c86db3b7071d455da4222eef4b53494d",
            "max": 943,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_a689e26fdb8b4b518df27d550e7b1fa7",
            "value": 943
          }
        },
        "18200868fc3b4d9c8df210f57e347b7b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_742c3251088f4b83b6abcbb058fc736b",
            "placeholder": "​",
            "style": "IPY_MODEL_bc4a83c815cc405a906c0a86ce278c50",
            "value": " 943/943 [00:00&lt;00:00, 27.3kB/s]"
          }
        },
        "1d888cc1841f4403a49f6c3ea8b417e2": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "b41e144b874b4486a6f044002dfa0843": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "8500e7e38b3647e788043c1b7ed868a5": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "c86db3b7071d455da4222eef4b53494d": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "a689e26fdb8b4b518df27d550e7b1fa7": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "742c3251088f4b83b6abcbb058fc736b": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "bc4a83c815cc405a906c0a86ce278c50": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "5e157a253c1148d5b60ca51bb9117671": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_fc7cbbe1c0934d068f587dc2c07e862d",
              "IPY_MODEL_45cb8915f5f544bcaa16be19a78dbd6c",
              "IPY_MODEL_8516dc798fd24061afc9ad3cda68b7cd"
            ],
            "layout": "IPY_MODEL_2ff0634d55334484be6a5a9efba4be03"
          }
        },
        "fc7cbbe1c0934d068f587dc2c07e862d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_88092fdd85554789a26f705db4a4f002",
            "placeholder": "​",
            "style": "IPY_MODEL_3f7b85b662434a6e8ee13f0a6101e81a",
            "value": "Downloading data files: 100%"
          }
        },
        "45cb8915f5f544bcaa16be19a78dbd6c": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_212d8e4847404f159385f86c60637aff",
            "max": 1,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_985fed2fad9642bc9e67b33298e14e61",
            "value": 1
          }
        },
        "8516dc798fd24061afc9ad3cda68b7cd": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_07b7bdf0822d4c64bfb7c0455124c0be",
            "placeholder": "​",
            "style": "IPY_MODEL_b27c175291174fddbd75695581643d95",
            "value": " 1/1 [00:02&lt;00:00,  2.62s/it]"
          }
        },
        "2ff0634d55334484be6a5a9efba4be03": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "88092fdd85554789a26f705db4a4f002": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "3f7b85b662434a6e8ee13f0a6101e81a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "212d8e4847404f159385f86c60637aff": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "985fed2fad9642bc9e67b33298e14e61": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "07b7bdf0822d4c64bfb7c0455124c0be": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "b27c175291174fddbd75695581643d95": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "9fe653ef933b4d4fba5108a139e8a5c3": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_4de847d2c725442ca8d8795d288eadb8",
              "IPY_MODEL_64a7c46ed0a0489ca039ade467f2e91d",
              "IPY_MODEL_7df52ffca5524e85a3b806e2eb1e5233"
            ],
            "layout": "IPY_MODEL_f40430da69574fb28f4a79d0a088f534"
          }
        },
        "4de847d2c725442ca8d8795d288eadb8": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_14a513bb962846c3aec7f4d2f738f595",
            "placeholder": "​",
            "style": "IPY_MODEL_60e01c5282d341838c8565c4c77e5485",
            "value": "Downloading data: 100%"
          }
        },
        "64a7c46ed0a0489ca039ade467f2e91d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_4ef5c2ee6c6b42d79424d037b841a915",
            "max": 88441801,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_4aa6c3119b0043ffb416cc0d0ba9e8fd",
            "value": 88441801
          }
        },
        "7df52ffca5524e85a3b806e2eb1e5233": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_f2bf904ee1fe483e91caea5c0f512462",
            "placeholder": "​",
            "style": "IPY_MODEL_9472da44bec54ae38b3d0e0ee17a4b6d",
            "value": " 88.4M/88.4M [00:01&lt;00:00, 52.2MB/s]"
          }
        },
        "f40430da69574fb28f4a79d0a088f534": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "14a513bb962846c3aec7f4d2f738f595": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "60e01c5282d341838c8565c4c77e5485": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "4ef5c2ee6c6b42d79424d037b841a915": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "4aa6c3119b0043ffb416cc0d0ba9e8fd": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "f2bf904ee1fe483e91caea5c0f512462": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "9472da44bec54ae38b3d0e0ee17a4b6d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "2290f4d5df2948f0b904b7bbc2eedbf2": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_449c1abd11f44c6ab74788dc1e487c5c",
              "IPY_MODEL_a20002ac3fd747598a5e76c1ca9e06d8",
              "IPY_MODEL_7bb14396187842d8ab68921fec06284f"
            ],
            "layout": "IPY_MODEL_595b54cb3f3d454c86f256cb76e33a3b"
          }
        },
        "449c1abd11f44c6ab74788dc1e487c5c": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_0e3b44ed1554444c905b1f2c7da8dba1",
            "placeholder": "​",
            "style": "IPY_MODEL_13509e45271e4fe0b06fd76dcd0b496a",
            "value": "Extracting data files: 100%"
          }
        },
        "a20002ac3fd747598a5e76c1ca9e06d8": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_9e69c5ad67aa4f5b9acf970d61828a1b",
            "max": 1,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_6e155a5b921c40b6a43d669cb1bfad92",
            "value": 1
          }
        },
        "7bb14396187842d8ab68921fec06284f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_96c9a4fcc9b0409199acdbf16f683016",
            "placeholder": "​",
            "style": "IPY_MODEL_540d607542dc4340baf84675923f1be3",
            "value": " 1/1 [00:00&lt;00:00, 27.53it/s]"
          }
        },
        "595b54cb3f3d454c86f256cb76e33a3b": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "0e3b44ed1554444c905b1f2c7da8dba1": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "13509e45271e4fe0b06fd76dcd0b496a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "9e69c5ad67aa4f5b9acf970d61828a1b": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "6e155a5b921c40b6a43d669cb1bfad92": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "96c9a4fcc9b0409199acdbf16f683016": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "540d607542dc4340baf84675923f1be3": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "8ad69edc5b5c437b8fe3d4c213a08e70": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_5d062ffee33441c9819def6019a72a42",
              "IPY_MODEL_fa12f090d3784b1a9527b97de8991f7d",
              "IPY_MODEL_5b6e2e7679064200b69a113c5343749a"
            ],
            "layout": "IPY_MODEL_f7f84dba35364935ba1404369247e9a5"
          }
        },
        "5d062ffee33441c9819def6019a72a42": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_5f670584810e48e2a2852439fd9bd373",
            "placeholder": "​",
            "style": "IPY_MODEL_65e6c832532d4b9c958e5e1a3e670262",
            "value": "100%"
          }
        },
        "fa12f090d3784b1a9527b97de8991f7d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_03082a4e32f244db92429b852c4ca6de",
            "max": 1,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_63309e927f754f1e8144fad0ddec5de6",
            "value": 1
          }
        },
        "5b6e2e7679064200b69a113c5343749a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_e490bd9fa2564a6091165da6c950f097",
            "placeholder": "​",
            "style": "IPY_MODEL_ff5d51864e6e46da9a952f585444cc12",
            "value": " 1/1 [00:00&lt;00:00, 17.51it/s]"
          }
        },
        "f7f84dba35364935ba1404369247e9a5": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "5f670584810e48e2a2852439fd9bd373": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "65e6c832532d4b9c958e5e1a3e670262": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "03082a4e32f244db92429b852c4ca6de": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "63309e927f754f1e8144fad0ddec5de6": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "e490bd9fa2564a6091165da6c950f097": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "ff5d51864e6e46da9a952f585444cc12": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "b4db60766f9d47a3b0b8af9c7996fb88": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_792e78e691034ecba54d3ac235258803",
              "IPY_MODEL_c4bc588b8f0b4d00af5a5b1209f72baf",
              "IPY_MODEL_dc1157776f7c47cfa2d3b94b7a8648b8"
            ],
            "layout": "IPY_MODEL_ff3c66bb66054740969c363d42bd3090"
          }
        },
        "792e78e691034ecba54d3ac235258803": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_d0c4242bfe96442ab24554992cebb0c3",
            "placeholder": "​",
            "style": "IPY_MODEL_8f7a091c45474f598a29e158e364f593",
            "value": "Downloading: 100%"
          }
        },
        "c4bc588b8f0b4d00af5a5b1209f72baf": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_fd8f770ca4234637b9fae20b2216c6d6",
            "max": 69640,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_3bac8d6de7c247e8a65d653439f7440b",
            "value": 69640
          }
        },
        "dc1157776f7c47cfa2d3b94b7a8648b8": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_6abba98b1cce42618f97557ab6a4dbc3",
            "placeholder": "​",
            "style": "IPY_MODEL_57d681c24dd04379a1ef8b829ba95cd0",
            "value": " 68.0k/68.0k [00:00&lt;00:00, 197kB/s]"
          }
        },
        "ff3c66bb66054740969c363d42bd3090": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "d0c4242bfe96442ab24554992cebb0c3": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "8f7a091c45474f598a29e158e364f593": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "fd8f770ca4234637b9fae20b2216c6d6": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "3bac8d6de7c247e8a65d653439f7440b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "6abba98b1cce42618f97557ab6a4dbc3": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "57d681c24dd04379a1ef8b829ba95cd0": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "cf8dca2dc983421fa92d6c8a8823529b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_53522cf508024546bdd9d1aa30195fa4",
              "IPY_MODEL_9cdeecd3c0954832bfe18235e56763db",
              "IPY_MODEL_f47b114cd2ad468488e131ad012aa026"
            ],
            "layout": "IPY_MODEL_fd4feb7805a844fb82684a990df9eb98"
          }
        },
        "53522cf508024546bdd9d1aa30195fa4": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_e010ca4047bd462482ad44c15972c739",
            "placeholder": "​",
            "style": "IPY_MODEL_f571f54c8c3043df942223e129cd79ba",
            "value": "Downloading: 100%"
          }
        },
        "9cdeecd3c0954832bfe18235e56763db": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_51b76c7081db446e9de7e4d7a926c739",
            "max": 114423189,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_a555d02682904c91a702a8c528d6fe05",
            "value": 114423189
          }
        },
        "f47b114cd2ad468488e131ad012aa026": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_5a7dd315bfc24f3fa8b301e23d144284",
            "placeholder": "​",
            "style": "IPY_MODEL_c3189f7e49d245918dc7f8521cb36131",
            "value": " 109M/109M [00:02&lt;00:00, 50.8MB/s]"
          }
        },
        "fd4feb7805a844fb82684a990df9eb98": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "e010ca4047bd462482ad44c15972c739": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "f571f54c8c3043df942223e129cd79ba": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "51b76c7081db446e9de7e4d7a926c739": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "a555d02682904c91a702a8c528d6fe05": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "5a7dd315bfc24f3fa8b301e23d144284": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "c3189f7e49d245918dc7f8521cb36131": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "1b3365e8f33641e498806c80a3669a10": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_9630c64fc011477d9ec502ff3971611b",
              "IPY_MODEL_69863abe63584c85abbbce8eb9f4192b",
              "IPY_MODEL_c6fb6eed96eb47bb8ffc669d3778aa6a"
            ],
            "layout": "IPY_MODEL_646e1f7ea2c546db871490a6394431f2"
          }
        },
        "9630c64fc011477d9ec502ff3971611b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_1bc29e8a83d24797bedb63f7cb001c1a",
            "placeholder": "​",
            "style": "IPY_MODEL_7e560611a80444a69aa27bac4290a1e2",
            "value": "Downloading builder script: "
          }
        },
        "69863abe63584c85abbbce8eb9f4192b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_4601a88f6d7b47cbadb893cf2c8c0244",
            "max": 1411,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_02113b65b32345aba23984eea42a80c2",
            "value": 1411
          }
        },
        "c6fb6eed96eb47bb8ffc669d3778aa6a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_55f57f6526214102909e0476b75a056a",
            "placeholder": "​",
            "style": "IPY_MODEL_acc7802c143a47a99cf34ccae24f45fa",
            "value": " 3.19k/? [00:00&lt;00:00, 77.8kB/s]"
          }
        },
        "646e1f7ea2c546db871490a6394431f2": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "1bc29e8a83d24797bedb63f7cb001c1a": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "7e560611a80444a69aa27bac4290a1e2": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "4601a88f6d7b47cbadb893cf2c8c0244": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "02113b65b32345aba23984eea42a80c2": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "55f57f6526214102909e0476b75a056a": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "acc7802c143a47a99cf34ccae24f45fa": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        }
      }
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/mrm8488/shared_colab_notebooks/blob/master/Fine_tune_ConvNeXT_with_HF_trainer.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Fine-tune `ConvNeXT` on `EuroSAT` dataset with 🤗 Trainer API\n",
        "\n",
        "> Colab by [Manu Romero/mrm8488](https://twitter.com/mrm8488) heavily based on the [Niels Rogge](https://twitter.com/NielsRogge) [Youtube video](https://www.youtube.com/watch?v=Hn1IgPY42Bw). Please, check it out!"
      ],
      "metadata": {
        "id": "AonK0Smg-S4M"
      }
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Tjk8pxuMU7PQ",
        "outputId": "4d2dee3d-896e-47be-d5ce-137aa8477ae6"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Sat Apr 23 14:44:41 2022       \n",
            "+-----------------------------------------------------------------------------+\n",
            "| NVIDIA-SMI 460.32.03    Driver Version: 460.32.03    CUDA Version: 11.2     |\n",
            "|-------------------------------+----------------------+----------------------+\n",
            "| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\n",
            "| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |\n",
            "|                               |                      |               MIG M. |\n",
            "|===============================+======================+======================|\n",
            "|   0  Tesla V100-SXM2...  Off  | 00000000:00:04.0 Off |                    0 |\n",
            "| N/A   36C    P0    23W / 300W |      0MiB / 16160MiB |      0%      Default |\n",
            "|                               |                      |                  N/A |\n",
            "+-------------------------------+----------------------+----------------------+\n",
            "                                                                               \n",
            "+-----------------------------------------------------------------------------+\n",
            "| Processes:                                                                  |\n",
            "|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |\n",
            "|        ID   ID                                                   Usage      |\n",
            "|=============================================================================|\n",
            "|  No running processes found                                                 |\n",
            "+-----------------------------------------------------------------------------+\n"
          ]
        }
      ],
      "source": [
        "! nvidia-smi"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "## Set-up environment"
      ],
      "metadata": {
        "id": "NVQGQLrcVNlD"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "! pip install -q transformers datasets"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "IDn5qHXXlfsD",
        "outputId": "b67ab57b-2828-448e-bce7-cf5213c0cf38"
      },
      "execution_count": 2,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\u001b[K     |████████████████████████████████| 4.0 MB 6.7 MB/s \n",
            "\u001b[K     |████████████████████████████████| 325 kB 45.0 MB/s \n",
            "\u001b[K     |████████████████████████████████| 895 kB 50.6 MB/s \n",
            "\u001b[K     |████████████████████████████████| 77 kB 5.4 MB/s \n",
            "\u001b[K     |████████████████████████████████| 596 kB 29.0 MB/s \n",
            "\u001b[K     |████████████████████████████████| 6.6 MB 62.8 MB/s \n",
            "\u001b[K     |████████████████████████████████| 136 kB 13.9 MB/s \n",
            "\u001b[K     |████████████████████████████████| 1.1 MB 41.7 MB/s \n",
            "\u001b[K     |████████████████████████████████| 212 kB 53.8 MB/s \n",
            "\u001b[K     |████████████████████████████████| 127 kB 58.9 MB/s \n",
            "\u001b[K     |████████████████████████████████| 94 kB 3.9 MB/s \n",
            "\u001b[K     |████████████████████████████████| 271 kB 63.8 MB/s \n",
            "\u001b[K     |████████████████████████████████| 144 kB 70.6 MB/s \n",
            "\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n",
            "datascience 0.10.6 requires folium==0.2.1, but you have folium 0.8.3 which is incompatible.\u001b[0m\n",
            "\u001b[?25h"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "! sudo apt-get install git-lfs"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "5ka7aweh0NOU",
        "outputId": "6f640352-36b5-440c-b509-d3d96bb41dc9"
      },
      "execution_count": 3,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Reading package lists... Done\n",
            "Building dependency tree       \n",
            "Reading state information... Done\n",
            "git-lfs is already the newest version (2.3.4-1).\n",
            "0 upgraded, 0 newly installed, 0 to remove and 40 not upgraded.\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Log in the HF hub 🤗 🔐"
      ],
      "metadata": {
        "id": "cN1EiHGlXsGh"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "from huggingface_hub import notebook_login\n",
        "notebook_login()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 387,
          "referenced_widgets": [
            "f31b968bcbb2441cb109826e28582b1d",
            "3a85610ccbf04aeeb1f5380685202afd",
            "f019ac477f424f56b196865736bec02a",
            "6176c8ce51f94104a0ebea09b8593e48",
            "7d53209b74e0429e82dfdcfad0e4c43e",
            "aa620b5dcf1b4890bc90efccf8446cbe",
            "f3ecd6be8311411b8d4233ef57bf1c38",
            "6455f0332c264e8aa77e70704a69fada",
            "9021ee53f6f94288ab1ee084887944f8",
            "1f00746a43a4468bb6c22933377ecfff",
            "21274439c9a946dcbeae8d25c2588ca4",
            "507e1f03d1574aa39dab1706b660794c",
            "1eafd0d0c9774f66a744c00728ca9a9b",
            "6751c59c1e9541de9bb62ef770dbbea0",
            "3edab033dfdb4ccf8649db961610dd86",
            "b1d7803d19b44f988107c61550100463",
            "84f17019bac5499e8b9bb034b867aea4"
          ]
        },
        "id": "fVkEbdwLXZjp",
        "outputId": "58b6fe9c-ff3b-418f-901a-086cf6772a5d"
      },
      "execution_count": 4,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Login successful\n",
            "Your token has been saved to /root/.huggingface/token\n",
            "\u001b[1m\u001b[31mAuthenticated through git-credential store but this isn't the helper defined on your machine.\n",
            "You might have to re-authenticate when pushing to the Hugging Face Hub. Run the following command in your terminal in case you want to set this credential helper as the default\n",
            "\n",
            "git config --global credential.helper store\u001b[0m\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "! git config --global credential.helper store"
      ],
      "metadata": {
        "id": "hFQcCcHjXqjM"
      },
      "execution_count": 5,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "## Load dataset 📡 🖼"
      ],
      "metadata": {
        "id": "aWqc3MRoVnPC"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "from datasets import load_dataset"
      ],
      "metadata": {
        "id": "Tz66fQSdVSBQ"
      },
      "execution_count": 7,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "dataset = load_dataset('nielsr/eurosat-demo')"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 249,
          "referenced_widgets": [
            "dfc73d063ad54d658c25269eae8e0f39",
            "03a37c85b7fd4019adb72368a2a0656a",
            "a2ac34593d0b47eead8837de7cd5dfdd",
            "18200868fc3b4d9c8df210f57e347b7b",
            "1d888cc1841f4403a49f6c3ea8b417e2",
            "b41e144b874b4486a6f044002dfa0843",
            "8500e7e38b3647e788043c1b7ed868a5",
            "c86db3b7071d455da4222eef4b53494d",
            "a689e26fdb8b4b518df27d550e7b1fa7",
            "742c3251088f4b83b6abcbb058fc736b",
            "bc4a83c815cc405a906c0a86ce278c50",
            "5e157a253c1148d5b60ca51bb9117671",
            "fc7cbbe1c0934d068f587dc2c07e862d",
            "45cb8915f5f544bcaa16be19a78dbd6c",
            "8516dc798fd24061afc9ad3cda68b7cd",
            "2ff0634d55334484be6a5a9efba4be03",
            "88092fdd85554789a26f705db4a4f002",
            "3f7b85b662434a6e8ee13f0a6101e81a",
            "212d8e4847404f159385f86c60637aff",
            "985fed2fad9642bc9e67b33298e14e61",
            "07b7bdf0822d4c64bfb7c0455124c0be",
            "b27c175291174fddbd75695581643d95",
            "9fe653ef933b4d4fba5108a139e8a5c3",
            "4de847d2c725442ca8d8795d288eadb8",
            "64a7c46ed0a0489ca039ade467f2e91d",
            "7df52ffca5524e85a3b806e2eb1e5233",
            "f40430da69574fb28f4a79d0a088f534",
            "14a513bb962846c3aec7f4d2f738f595",
            "60e01c5282d341838c8565c4c77e5485",
            "4ef5c2ee6c6b42d79424d037b841a915",
            "4aa6c3119b0043ffb416cc0d0ba9e8fd",
            "f2bf904ee1fe483e91caea5c0f512462",
            "9472da44bec54ae38b3d0e0ee17a4b6d",
            "2290f4d5df2948f0b904b7bbc2eedbf2",
            "449c1abd11f44c6ab74788dc1e487c5c",
            "a20002ac3fd747598a5e76c1ca9e06d8",
            "7bb14396187842d8ab68921fec06284f",
            "595b54cb3f3d454c86f256cb76e33a3b",
            "0e3b44ed1554444c905b1f2c7da8dba1",
            "13509e45271e4fe0b06fd76dcd0b496a",
            "9e69c5ad67aa4f5b9acf970d61828a1b",
            "6e155a5b921c40b6a43d669cb1bfad92",
            "96c9a4fcc9b0409199acdbf16f683016",
            "540d607542dc4340baf84675923f1be3",
            "8ad69edc5b5c437b8fe3d4c213a08e70",
            "5d062ffee33441c9819def6019a72a42",
            "fa12f090d3784b1a9527b97de8991f7d",
            "5b6e2e7679064200b69a113c5343749a",
            "f7f84dba35364935ba1404369247e9a5",
            "5f670584810e48e2a2852439fd9bd373",
            "65e6c832532d4b9c958e5e1a3e670262",
            "03082a4e32f244db92429b852c4ca6de",
            "63309e927f754f1e8144fad0ddec5de6",
            "e490bd9fa2564a6091165da6c950f097",
            "ff5d51864e6e46da9a952f585444cc12"
          ]
        },
        "id": "Uu3-7eVEVqyy",
        "outputId": "5982f42c-5ab5-4963-acca-0ae96f572985"
      },
      "execution_count": 8,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading:   0%|          | 0.00/943 [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "dfc73d063ad54d658c25269eae8e0f39"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "Using custom data configuration nielsr--eurosat-demo-6d87f7d839540879\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Downloading and preparing dataset image_folder/default (download: 84.34 MiB, generated: 61.14 MiB, post-processed: Unknown size, total: 145.48 MiB) to /root/.cache/huggingface/datasets/parquet/nielsr--eurosat-demo-6d87f7d839540879/0.0.0/0b6d5799bb726b24ad7fc7be720c170d8e497f575d02d47537de9a5bac074901...\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading data files:   0%|          | 0/1 [00:00<?, ?it/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "5e157a253c1148d5b60ca51bb9117671"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading data:   0%|          | 0.00/88.4M [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "9fe653ef933b4d4fba5108a139e8a5c3"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Extracting data files:   0%|          | 0/1 [00:00<?, ?it/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "2290f4d5df2948f0b904b7bbc2eedbf2"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Dataset parquet downloaded and prepared to /root/.cache/huggingface/datasets/parquet/nielsr--eurosat-demo-6d87f7d839540879/0.0.0/0b6d5799bb726b24ad7fc7be720c170d8e497f575d02d47537de9a5bac074901. Subsequent calls will reuse this data.\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "  0%|          | 0/1 [00:00<?, ?it/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "8ad69edc5b5c437b8fe3d4c213a08e70"
            }
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "dataset"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "XAjzF7wlV2mB",
        "outputId": "59ac4e86-93df-4ecb-9940-4692803cfa2c"
      },
      "execution_count": 9,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "DatasetDict({\n",
              "    train: Dataset({\n",
              "        features: ['image', 'label'],\n",
              "        num_rows: 27000\n",
              "    })\n",
              "})"
            ]
          },
          "metadata": {},
          "execution_count": 9
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "dataset['train'].features"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "t7X_6DUIV4iu",
        "outputId": "5a1055c1-7981-4d99-8151-b0d4c79965f3"
      },
      "execution_count": 10,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "{'image': Image(decode=True, id=None),\n",
              " 'label': ClassLabel(num_classes=10, names=['AnnualCrop', 'Forest', 'HerbaceousVegetation', 'Highway', 'Industrial', 'Pasture', 'PermanentCrop', 'Residential', 'River', 'SeaLake'], id=None)}"
            ]
          },
          "metadata": {},
          "execution_count": 10
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Create mappings between ids and labesl"
      ],
      "metadata": {
        "id": "blg5sFqxW8pg"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "labels = dataset['train'].features['label'].names\n",
        "labels"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "9YbQDpUaWR5c",
        "outputId": "739a6797-0bfb-49d9-92de-a94f2bb96f91"
      },
      "execution_count": 11,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "['AnnualCrop',\n",
              " 'Forest',\n",
              " 'HerbaceousVegetation',\n",
              " 'Highway',\n",
              " 'Industrial',\n",
              " 'Pasture',\n",
              " 'PermanentCrop',\n",
              " 'Residential',\n",
              " 'River',\n",
              " 'SeaLake']"
            ]
          },
          "metadata": {},
          "execution_count": 11
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "id2label = {k:v for (k,v) in enumerate(labels)}\n",
        "id2label"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "bgDim6liWiZN",
        "outputId": "ffc5edd2-f21e-476b-d88c-5f0daf8aea18"
      },
      "execution_count": 12,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "{0: 'AnnualCrop',\n",
              " 1: 'Forest',\n",
              " 2: 'HerbaceousVegetation',\n",
              " 3: 'Highway',\n",
              " 4: 'Industrial',\n",
              " 5: 'Pasture',\n",
              " 6: 'PermanentCrop',\n",
              " 7: 'Residential',\n",
              " 8: 'River',\n",
              " 9: 'SeaLake'}"
            ]
          },
          "metadata": {},
          "execution_count": 12
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "label2id = {v:k for (k,v) in enumerate(labels)}\n",
        "label2id"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "mq42CoMpWyag",
        "outputId": "cfcc5825-b679-4ddc-e90d-5f442948f62e"
      },
      "execution_count": 13,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "{'AnnualCrop': 0,\n",
              " 'Forest': 1,\n",
              " 'HerbaceousVegetation': 2,\n",
              " 'Highway': 3,\n",
              " 'Industrial': 4,\n",
              " 'Pasture': 5,\n",
              " 'PermanentCrop': 6,\n",
              " 'Residential': 7,\n",
              " 'River': 8,\n",
              " 'SeaLake': 9}"
            ]
          },
          "metadata": {},
          "execution_count": 13
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Split the dataset"
      ],
      "metadata": {
        "id": "sGcq-d4e4LuN"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "splits = dataset['train'].train_test_split(test_size=0.15, shuffle=True, seed=46)"
      ],
      "metadata": {
        "id": "XIrOS2IFptnA"
      },
      "execution_count": 14,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "train_data = splits['train']\n",
        "test_data = splits['test']"
      ],
      "metadata": {
        "id": "65MX7MizptnB"
      },
      "execution_count": 15,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "train_data, test_data"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "WcFMnwnDqbBB",
        "outputId": "fdbdc43e-c297-4042-f08d-866038add52b"
      },
      "execution_count": 16,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(Dataset({\n",
              "     features: ['image', 'label'],\n",
              "     num_rows: 22950\n",
              " }), Dataset({\n",
              "     features: ['image', 'label'],\n",
              "     num_rows: 4050\n",
              " }))"
            ]
          },
          "metadata": {},
          "execution_count": 16
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "## Preprocess data 👷"
      ],
      "metadata": {
        "id": "2Y0JhpwWX4Nv"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "ckpt = 'facebook/convnext-tiny-224'\n",
        "\n",
        "from transformers import ConvNextFeatureExtractor\n",
        "\n",
        "feature_extractor = ConvNextFeatureExtractor(ckpt)\n",
        "\n",
        "feature_extractor"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "WTwRaU4tW5vt",
        "outputId": "b54d2ef4-ea9b-4267-b21e-7c4cc71784a2"
      },
      "execution_count": 17,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "ConvNextFeatureExtractor {\n",
              "  \"crop_pct\": null,\n",
              "  \"do_normalize\": true,\n",
              "  \"do_resize\": \"facebook/convnext-tiny-224\",\n",
              "  \"feature_extractor_type\": \"ConvNextFeatureExtractor\",\n",
              "  \"image_mean\": [\n",
              "    0.485,\n",
              "    0.456,\n",
              "    0.406\n",
              "  ],\n",
              "  \"image_std\": [\n",
              "    0.229,\n",
              "    0.224,\n",
              "    0.225\n",
              "  ],\n",
              "  \"resample\": 3,\n",
              "  \"size\": 224\n",
              "}"
            ]
          },
          "metadata": {},
          "execution_count": 17
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Define the image transformations 🖼 ✂ 🖼"
      ],
      "metadata": {
        "id": "0aVBbMPF4Qd3"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "from torchvision.transforms import (\n",
        "    CenterCrop,\n",
        "    Compose,\n",
        "    Normalize,\n",
        "    RandomHorizontalFlip,\n",
        "    RandomResizedCrop,\n",
        "    Resize,\n",
        "    ToTensor,\n",
        ")\n",
        "\n",
        "normalize = Normalize(mean=feature_extractor.image_mean, std=feature_extractor.image_std)\n",
        "\n",
        "\n",
        "_train_transforms = Compose(\n",
        "        [\n",
        "            RandomResizedCrop(feature_extractor.size),\n",
        "            RandomHorizontalFlip(),\n",
        "            ToTensor(),\n",
        "            normalize,\n",
        "        ]\n",
        "    )\n",
        "_val_transforms = Compose(\n",
        "        [\n",
        "            Resize(feature_extractor.size),\n",
        "            CenterCrop(feature_extractor.size),\n",
        "            ToTensor(),\n",
        "            normalize,\n",
        "        ]\n",
        "    )"
      ],
      "metadata": {
        "id": "P69D32gxYXHR"
      },
      "execution_count": 18,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "def train_transform_fn(examples):\n",
        "  examples['pixel_values'] = [_train_transforms(image.convert('RGB')) for image in examples['image']]\n",
        "  return examples"
      ],
      "metadata": {
        "id": "7YZdZEtUZ1x-"
      },
      "execution_count": 19,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "def val_transform_fn(examples):\n",
        "  examples['pixel_values'] = [_val_transforms(image.convert('RGB')) for image in examples['image']]\n",
        "  return examples"
      ],
      "metadata": {
        "id": "wveYT75WrPyh"
      },
      "execution_count": 20,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "train_data.set_transform(train_transform_fn)\n",
        "test_data.set_transform(val_transform_fn)"
      ],
      "metadata": {
        "id": "eYBMKNlcaRR-"
      },
      "execution_count": 21,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "train_data[0]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "4wboWPkWtOpc",
        "outputId": "09a29289-0ccc-42bc-957e-4b7679bd05b6"
      },
      "execution_count": 22,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "{'image': <PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=64x64 at 0x7FAD45A0FD10>,\n",
              " 'label': 0,\n",
              " 'pixel_values': tensor([[[0.8104, 0.8104, 0.8104,  ..., 0.4851, 0.4851, 0.4851],\n",
              "          [0.8104, 0.8104, 0.8104,  ..., 0.4851, 0.4851, 0.4851],\n",
              "          [0.8104, 0.8104, 0.8104,  ..., 0.4851, 0.4851, 0.4851],\n",
              "          ...,\n",
              "          [0.9988, 0.9988, 0.9988,  ..., 0.9474, 0.9474, 0.9474],\n",
              "          [0.9988, 0.9988, 0.9988,  ..., 0.9474, 0.9474, 0.9474],\n",
              "          [0.9988, 0.9988, 0.9988,  ..., 0.9474, 0.9474, 0.9474]],\n",
              " \n",
              "         [[0.3803, 0.3803, 0.3803,  ..., 0.1877, 0.1877, 0.1877],\n",
              "          [0.3803, 0.3803, 0.3803,  ..., 0.1877, 0.1877, 0.1877],\n",
              "          [0.3803, 0.3803, 0.3803,  ..., 0.1877, 0.1877, 0.1877],\n",
              "          ...,\n",
              "          [0.4503, 0.4503, 0.4503,  ..., 0.5203, 0.5203, 0.5203],\n",
              "          [0.4503, 0.4503, 0.4503,  ..., 0.5203, 0.5203, 0.5203],\n",
              "          [0.4503, 0.4503, 0.4503,  ..., 0.5203, 0.5203, 0.5203]],\n",
              " \n",
              "         [[0.4788, 0.4788, 0.4788,  ..., 0.2871, 0.2871, 0.2871],\n",
              "          [0.4788, 0.4788, 0.4788,  ..., 0.2871, 0.2871, 0.2871],\n",
              "          [0.4788, 0.4788, 0.4788,  ..., 0.2871, 0.2871, 0.2871],\n",
              "          ...,\n",
              "          [0.4962, 0.4962, 0.4962,  ..., 0.4788, 0.4788, 0.4788],\n",
              "          [0.4962, 0.4962, 0.4962,  ..., 0.4788, 0.4788, 0.4788],\n",
              "          [0.4962, 0.4962, 0.4962,  ..., 0.4788, 0.4788, 0.4788]]])}"
            ]
          },
          "metadata": {},
          "execution_count": 22
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "## Set the model 🧠"
      ],
      "metadata": {
        "id": "KZobE65_cET8"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "from transformers import ConvNextForImageClassification\n",
        "\n",
        "model = ConvNextForImageClassification.from_pretrained(ckpt,\n",
        "                                                       num_labels=len(labels),\n",
        "                                                       id2label=id2label,\n",
        "                                                       label2id=label2id, \n",
        "                                                       ignore_mismatched_sizes=True) # because it was fine-tuned on ImageNet (1000 classes)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 170,
          "referenced_widgets": [
            "b4db60766f9d47a3b0b8af9c7996fb88",
            "792e78e691034ecba54d3ac235258803",
            "c4bc588b8f0b4d00af5a5b1209f72baf",
            "dc1157776f7c47cfa2d3b94b7a8648b8",
            "ff3c66bb66054740969c363d42bd3090",
            "d0c4242bfe96442ab24554992cebb0c3",
            "8f7a091c45474f598a29e158e364f593",
            "fd8f770ca4234637b9fae20b2216c6d6",
            "3bac8d6de7c247e8a65d653439f7440b",
            "6abba98b1cce42618f97557ab6a4dbc3",
            "57d681c24dd04379a1ef8b829ba95cd0",
            "cf8dca2dc983421fa92d6c8a8823529b",
            "53522cf508024546bdd9d1aa30195fa4",
            "9cdeecd3c0954832bfe18235e56763db",
            "f47b114cd2ad468488e131ad012aa026",
            "fd4feb7805a844fb82684a990df9eb98",
            "e010ca4047bd462482ad44c15972c739",
            "f571f54c8c3043df942223e129cd79ba",
            "51b76c7081db446e9de7e4d7a926c739",
            "a555d02682904c91a702a8c528d6fe05",
            "5a7dd315bfc24f3fa8b301e23d144284",
            "c3189f7e49d245918dc7f8521cb36131"
          ]
        },
        "id": "sZhN87OPbxu-",
        "outputId": "b4796e2a-3120-4e8f-b03c-eef34872771f"
      },
      "execution_count": 23,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading:   0%|          | 0.00/68.0k [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "b4db60766f9d47a3b0b8af9c7996fb88"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading:   0%|          | 0.00/109M [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "cf8dca2dc983421fa92d6c8a8823529b"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "Some weights of ConvNextForImageClassification were not initialized from the model checkpoint at facebook/convnext-tiny-224 and are newly initialized because the shapes did not match:\n",
            "- classifier.weight: found shape torch.Size([1000, 768]) in the checkpoint and torch.Size([10, 768]) in the model instantiated\n",
            "- classifier.bias: found shape torch.Size([1000]) in the checkpoint and torch.Size([10]) in the model instantiated\n",
            "You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Define and initialize the metric 📏"
      ],
      "metadata": {
        "id": "A88X2QeFuKdd"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "from datasets import load_metric\n",
        "\n",
        "metric = load_metric(\"accuracy\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 49,
          "referenced_widgets": [
            "1b3365e8f33641e498806c80a3669a10",
            "9630c64fc011477d9ec502ff3971611b",
            "69863abe63584c85abbbce8eb9f4192b",
            "c6fb6eed96eb47bb8ffc669d3778aa6a",
            "646e1f7ea2c546db871490a6394431f2",
            "1bc29e8a83d24797bedb63f7cb001c1a",
            "7e560611a80444a69aa27bac4290a1e2",
            "4601a88f6d7b47cbadb893cf2c8c0244",
            "02113b65b32345aba23984eea42a80c2",
            "55f57f6526214102909e0476b75a056a",
            "acc7802c143a47a99cf34ccae24f45fa"
          ]
        },
        "id": "K-_jRPvBuCjz",
        "outputId": "b42ce3bf-f6e6-4d70-a88e-21c2d4a1b232"
      },
      "execution_count": 24,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading builder script:   0%|          | 0.00/1.41k [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "1b3365e8f33641e498806c80a3669a10"
            }
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "import numpy as np\n",
        "def compute_metrics(p):\n",
        "  \"\"\"Computes accuracy on a batch of predictions\"\"\"\n",
        "  return metric.compute(predictions=np.argmax(p.predictions, axis=1), references=p.label_ids)"
      ],
      "metadata": {
        "id": "c2MMQ2z3uGTF"
      },
      "execution_count": 25,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Set the training arguments 🧪"
      ],
      "metadata": {
        "id": "80zy_hY8dDlv"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "from transformers import TrainingArguments, Trainer"
      ],
      "metadata": {
        "id": "hE7y6w0lsWiU"
      },
      "execution_count": 26,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "output_dir = '/content/convnext-tiny-finetuned-eurosat-demo'\n",
        "\n",
        "training_args = TrainingArguments(\n",
        "    output_dir=output_dir,\n",
        "    overwrite_output_dir=True,\n",
        "    remove_unused_columns=False,\n",
        "    do_train=True,\n",
        "    do_eval=True,\n",
        "    evaluation_strategy=\"epoch\",\n",
        "    per_device_train_batch_size=32,\n",
        "    per_device_eval_batch_size=32,\n",
        "    learning_rate=5e-05,\n",
        "    num_train_epochs=5,\n",
        "    logging_strategy=\"steps\",\n",
        "    logging_steps=100,\n",
        "    save_strategy=\"epoch\",\n",
        "    save_total_limit=3,\n",
        "    load_best_model_at_end=True,\n",
        "    push_to_hub=True,\n",
        "    seed=7171,\n",
        ")"
      ],
      "metadata": {
        "id": "IbTW7pf_sTI1"
      },
      "execution_count": 27,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Initialize tensorboard to track the training 📐 📋"
      ],
      "metadata": {
        "id": "0MJWcwOvvYtR"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "%load_ext tensorboard\n",
        "%tensorboard --logdir /content/convnext-tiny-finetuned-eurosat-demo/runs"
      ],
      "metadata": {
        "colab": {
          "resources": {
            "https://localhost:6006/?tensorboardColab=true": {
              "data": "[encoded data, 252024 characters]",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "text/html; charset=utf-8"
                ]
              ],
              "status": 200,
              "status_text": ""
            },
            "https://localhost:6006/font-roboto/oMMgfZMQthOryQo9n22dcuvvDin1pK8aKteLpeZ5c0A.woff2": {
              "data": "[encoded data, 14332 characters]",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "font/woff2"
                ]
              ],
              "status": 200,
              "status_text": ""
            },
            "https://localhost:6006/index.js?_file_hash=4a366cbe": {
              "data": "[encoded data, 10228016 characters]",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "application/javascript; charset=utf-8"
                ]
              ],
              "status": 200,
              "status_text": ""
            },
            "https://localhost:6006/icon_bundle.svg": {
              "data": "[encoded data, 18556 characters]",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "image/svg+xml; charset=utf-8"
                ]
              ],
              "status": 200,
              "status_text": ""
            },
            "https://localhost:6006/data/plugins_listing": {
              "data": "eyJzY2FsYXJzIjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IHRydWUsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJzY2FsYXJzIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIkNVU1RPTV9FTEVNRU5UIiwgImVsZW1lbnRfbmFtZSI6ICJ0Zi1zY2FsYXItZGFzaGJvYXJkIn19LCAiY3VzdG9tX3NjYWxhcnMiOiB7ImRpc2FibGVfcmVsb2FkIjogZmFsc2UsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJDdXN0b20gU2NhbGFycyIsICJsb2FkaW5nX21lY2hhbmlzbSI6IHsidHlwZSI6ICJDVVNUT01fRUxFTUVOVCIsICJlbGVtZW50X25hbWUiOiAidGYtY3VzdG9tLXNjYWxhci1kYXNoYm9hcmQifX0sICJpbWFnZXMiOiB7ImRpc2FibGVfcmVsb2FkIjogZmFsc2UsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJpbWFnZXMiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiQ1VTVE9NX0VMRU1FTlQiLCAiZWxlbWVudF9uYW1lIjogInRmLWltYWdlLWRhc2hib2FyZCJ9fSwgImF1ZGlvIjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IGZhbHNlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAiYXVkaW8iLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiQ1VTVE9NX0VMRU1FTlQiLCAiZWxlbWVudF9uYW1lIjogInRmLWF1ZGlvLWRhc2hib2FyZCJ9fSwgImRlYnVnZ2VyLXYyIjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IGZhbHNlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAiRGVidWdnZXIgVjIiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiTkdfQ09NUE9ORU5UIn19LCAiZ3JhcGhzIjogeyJkaXNhYmxlX3JlbG9hZCI6IHRydWUsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJncmFwaHMiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiQ1VTVE9NX0VMRU1FTlQiLCAiZWxlbWVudF9uYW1lIjogInRmLWdyYXBoLWRhc2hib2FyZCJ9fSwgImRpc3RyaWJ1dGlvbnMiOiB7ImRpc2FibGVfcmVsb2FkIjogZmFsc2UsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJkaXN0cmlidXRpb25zIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIkNVU1RPTV9FTEVNRU5UIiwgImVsZW1lbnRfbmFtZSI6ICJ0Zi1kaXN0cmlidXRpb24tZGFzaGJvYXJkIn19LCAiaGlzdG9ncmFtcyI6IHsiZGlzYWJsZV9yZWxvYWQiOiBmYWxzZSwgImVuYWJsZWQiOiBmYWxzZSwgInJlbW92ZV9kb20iOiBmYWxzZSwgInRhYl9uYW1lIjogImhpc3RvZ3JhbXMiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiQ1VTVE9NX0VMRU1FTlQiLCAiZWxlbWVudF9uYW1lIjogInRmLWhpc3RvZ3JhbS1kYXNoYm9hcmQifX0sICJ0ZXh0IjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IHRydWUsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJ0ZXh0IiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIkNVU1RPTV9FTEVNRU5UIiwgImVsZW1lbnRfbmFtZSI6ICJ0Zi10ZXh0LWRhc2hib2FyZCJ9fSwgInByX2N1cnZlcyI6IHsiZGlzYWJsZV9yZWxvYWQiOiBmYWxzZSwgImVuYWJsZWQiOiBmYWxzZSwgInJlbW92ZV9kb20iOiBmYWxzZSwgInRhYl9uYW1lIjogIlBSIEN1cnZlcyIsICJsb2FkaW5nX21lY2hhbmlzbSI6IHsidHlwZSI6ICJDVVNUT01fRUxFTUVOVCIsICJlbGVtZW50X25hbWUiOiAidGYtcHItY3VydmUtZGFzaGJvYXJkIn19LCAicHJvZmlsZV9yZWRpcmVjdCI6IHsiZGlzYWJsZV9yZWxvYWQiOiBmYWxzZSwgImVuYWJsZWQiOiBmYWxzZSwgInJlbW92ZV9kb20iOiBmYWxzZSwgInRhYl9uYW1lIjogIlByb2ZpbGUiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiQ1VTVE9NX0VMRU1FTlQiLCAiZWxlbWVudF9uYW1lIjogInRmLXByb2ZpbGUtcmVkaXJlY3QtZGFzaGJvYXJkIn19LCAiaHBhcmFtcyI6IHsiZGlzYWJsZV9yZWxvYWQiOiBmYWxzZSwgImVuYWJsZWQiOiB0cnVlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAiaHBhcmFtcyIsICJsb2FkaW5nX21lY2hhbmlzbSI6IHsidHlwZSI6ICJDVVNUT01fRUxFTUVOVCIsICJlbGVtZW50X25hbWUiOiAidGYtaHBhcmFtcy1kYXNoYm9hcmQifX0sICJtZXNoIjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IGZhbHNlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAibWVzaCIsICJsb2FkaW5nX21lY2hhbmlzbSI6IHsidHlwZSI6ICJDVVNUT01fRUxFTUVOVCIsICJlbGVtZW50X25hbWUiOiAibWVzaC1kYXNoYm9hcmQifX0sICJ0aW1lc2VyaWVzIjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IHRydWUsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJUaW1lIFNlcmllcyIsICJsb2FkaW5nX21lY2hhbmlzbSI6IHsidHlwZSI6ICJOR19DT01QT05FTlQifX0sICJwcm9qZWN0b3IiOiB7ImRpc2FibGVfcmVsb2FkIjogdHJ1ZSwgImVuYWJsZWQiOiBmYWxzZSwgInJlbW92ZV9kb20iOiBmYWxzZSwgInRhYl9uYW1lIjogInByb2plY3RvciIsICJsb2FkaW5nX21lY2hhbmlzbSI6IHsidHlwZSI6ICJJRlJBTUUiLCAibW9kdWxlX3BhdGgiOiAiL2RhdGEvcGx1Z2luL3Byb2plY3Rvci9pbmRleC5qcyJ9fSwgIndoYXRpZiI6IHsiZGlzYWJsZV9yZWxvYWQiOiBmYWxzZSwgImVuYWJsZWQiOiBmYWxzZSwgInJlbW92ZV9kb20iOiBmYWxzZSwgInRhYl9uYW1lIjogIldoYXQtSWYgVG9vbCIsICJsb2FkaW5nX21lY2hhbmlzbSI6IHsidHlwZSI6ICJJRlJBTUUiLCAibW9kdWxlX3BhdGgiOiAiL2RhdGEvcGx1Z2luL3doYXRpZi9pbmRleC5qcyJ9fX0=",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "application/json"
                ]
              ],
              "status": 200,
              "status_text": ""
            },
            "https://localhost:6006/font-roboto/RxZJdnzeo3R5zSexge8UUZBw1xU1rKptJj_0jans920.woff2": {
              "data": "[encoded data, 14384 characters]",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "font/woff2"
                ]
              ],
              "status": 200,
              "status_text": ""
            },
            "https://localhost:6006/data/runs": {
              "data": "WyJBcHIyM18xNC00NS01NF85YTgyYTUwMTMyNmEiLCAiQXByMjNfMTQtNDUtNTRfOWE4MmE1MDEzMjZhLzE2NTA3MjUyMDcuOTYyNzE2OCJd",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "application/json"
                ]
              ],
              "status": 200,
              "status_text": ""
            },
            "https://localhost:6006/data/environment": {
              "data": "eyJ2ZXJzaW9uIjogIjIuOC4wIiwgImRhdGFfbG9jYXRpb24iOiAiL2NvbnRlbnQvY29udm5leHQtdGlueS1maW5ldHVuZWQtZXVyb3NhdC1kZW1vL3J1bnMiLCAid2luZG93X3RpdGxlIjogIiIsICJleHBlcmltZW50X25hbWUiOiAiIiwgImV4cGVyaW1lbnRfZGVzY3JpcHRpb24iOiAiIiwgImNyZWF0aW9uX3RpbWUiOiAwLjAsICJkZWJ1ZyI6IHsiZGF0YV9wcm92aWRlciI6ICJHcnBjRGF0YVByb3ZpZGVyKGFkZHI9J2xvY2FsaG9zdDo0NjQxMScpIiwgImZsYWdzIjogeyJsb2dkaXIiOiAiL2NvbnRlbnQvY29udm5leHQtdGlueS1maW5ldHVuZWQtZXVyb3NhdC1kZW1vL3J1bnMiLCAibG9nZGlyX3NwZWMiOiAiIiwgImhvc3QiOiBudWxsLCAiYmluZF9hbGwiOiBmYWxzZSwgInBvcnQiOiBudWxsLCAicmV1c2VfcG9ydCI6IGZhbHNlLCAibG9hZF9mYXN0IjogImF1dG8iLCAiZXh0cmFfZGF0YV9zZXJ2ZXJfZmxhZ3MiOiAiIiwgImdycGNfY3JlZHNfdHlwZSI6ICJsb2NhbCIsICJncnBjX2RhdGFfcHJvdmlkZXIiOiAiIiwgInB1cmdlX29ycGhhbmVkX2RhdGEiOiB0cnVlLCAiZGIiOiAiIiwgImRiX2ltcG9ydCI6IGZhbHNlLCAiaW5zcGVjdCI6IGZhbHNlLCAidmVyc2lvbl90YiI6IGZhbHNlLCAidGFnIjogIiIsICJldmVudF9maWxlIjogIiIsICJwYXRoX3ByZWZpeCI6ICIiLCAid2luZG93X3RpdGxlIjogIiIsICJtYXhfcmVsb2FkX3RocmVhZHMiOiAxLCAicmVsb2FkX2ludGVydmFsIjogNS4wLCAicmVsb2FkX3Rhc2siOiAiYXV0byIsICJyZWxvYWRfbXVsdGlmaWxlIjogbnVsbCwgInJlbG9hZF9tdWx0aWZpbGVfaW5hY3RpdmVfc2VjcyI6IDg2NDAwLCAiZ2VuZXJpY19kYXRhIjogImF1dG8iLCAic2FtcGxlc19wZXJfcGx1Z2luIjoge30sICJjdXN0b21fcHJlZGljdF9mbiI6ICIiLCAid2l0X2RhdGFfZGlyIjogIiIsICJfX3RlbnNvcmJvYXJkX3N1YmNvbW1hbmQiOiAic2VydmUifX19",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "application/json"
                ]
              ],
              "status": 200,
              "status_text": ""
            },
            "https://localhost:6006/font-roboto/d-6IYplOFocCacKzxwXSOJBw1xU1rKptJj_0jans920.woff2": {
              "data": "[encoded data, 14352 characters]",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "font/woff2"
                ]
              ],
              "status": 200,
              "status_text": ""
            },
            "https://localhost:6006/font-roboto/vPcynSL0qHq_6dX7lKVByXYhjbSpvc47ee6xR_80Hnw.woff2": {
              "data": "[encoded data, 16472 characters]",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "font/woff2"
                ]
              ],
              "status": 200,
              "status_text": ""
            },
            "https://localhost:6006/data/plugin/scalars/tags": {
              "data": "eyJBcHIyM18xNC00NS01NF85YTgyYTUwMTMyNmEiOiB7InRyYWluL3RyYWluX3N0ZXBzX3Blcl9zZWNvbmQiOiB7ImRpc3BsYXlOYW1lIjogIiIsICJkZXNjcmlwdGlvbiI6ICIifSwgInRyYWluL3RyYWluX3J1bnRpbWUiOiB7ImRpc3BsYXlOYW1lIjogIiIsICJkZXNjcmlwdGlvbiI6ICIifSwgInRyYWluL2xvc3MiOiB7ImRpc3BsYXlOYW1lIjogIiIsICJkZXNjcmlwdGlvbiI6ICIifSwgImV2YWwvc2FtcGxlc19wZXJfc2Vjb25kIjogeyJkaXNwbGF5TmFtZSI6ICIiLCAiZGVzY3JpcHRpb24iOiAiIn0sICJldmFsL2xvc3MiOiB7ImRpc3BsYXlOYW1lIjogIiIsICJkZXNjcmlwdGlvbiI6ICIifSwgImV2YWwvcnVudGltZSI6IHsiZGlzcGxheU5hbWUiOiAiIiwgImRlc2NyaXB0aW9uIjogIiJ9LCAidHJhaW4vdHJhaW5fc2FtcGxlc19wZXJfc2Vjb25kIjogeyJkaXNwbGF5TmFtZSI6ICIiLCAiZGVzY3JpcHRpb24iOiAiIn0sICJldmFsL3N0ZXBzX3Blcl9zZWNvbmQiOiB7ImRpc3BsYXlOYW1lIjogIiIsICJkZXNjcmlwdGlvbiI6ICIifSwgInRyYWluL3RyYWluX2xvc3MiOiB7ImRpc3BsYXlOYW1lIjogIiIsICJkZXNjcmlwdGlvbiI6ICIifSwgInRyYWluL2xlYXJuaW5nX3JhdGUiOiB7ImRpc3BsYXlOYW1lIjogIiIsICJkZXNjcmlwdGlvbiI6ICIifSwgImV2YWwvYWNjdXJhY3kiOiB7ImRpc3BsYXlOYW1lIjogIiIsICJkZXNjcmlwdGlvbiI6ICIifSwgInRyYWluL2Vwb2NoIjogeyJkaXNwbGF5TmFtZSI6ICIiLCAiZGVzY3JpcHRpb24iOiAiIn0sICJ0cmFpbi90b3RhbF9mbG9zIjogeyJkaXNwbGF5TmFtZSI6ICIiLCAiZGVzY3JpcHRpb24iOiAiIn19fQ==",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "application/json"
                ]
              ],
              "status": 200,
              "status_text": ""
            },
            "https://localhost:6006/data/plugin/scalars/scalars?run=Apr23_14-45-54_9a82a501326a&tag=eval%2Faccuracy": {
              "data": "W1sxNjUwNzI1MjA3LjkwNzc3MDYsIDAsIDAuMDYxOTc1MzA3NzYyNjIyODNdLCBbMTY1MDcyNTQwMi42MTAzNzI4LCA3MTgsIDAuOTcxMzU4MDAxMjMyMTQ3Ml0sIFsxNjUwNzI1NjEwLjcyMzExNDUsIDE0MzYsIDAuOTc3MjgzOTU0NjIwMzYxM10sIFsxNjUwNzI1ODIzLjU0NDcwMjMsIDIxNTQsIDAuOTgyNzE2MDIzOTIxOTY2Nl0sIFsxNjUwNzI2MDM3Ljc0MjQyNzgsIDI4NzIsIDAuOTgyMjIyMTk5NDQwMDAyNF0sIFsxNjUwNzI2MjUzLjg1NjEyNCwgMzU5MCwgMC45ODQ5MzgyNjM4OTMxMjc0XV0=",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "application/json"
                ]
              ],
              "status": 200,
              "status_text": ""
            },
            "https://localhost:6006/data/plugin/scalars/scalars?run=Apr23_14-45-54_9a82a501326a&tag=eval%2Fruntime": {
              "data": "W1sxNjUwNzI1MjA3LjkwNzc5NzMsIDAsIDE1Ljg0MjEwMDE0MzQzMjYxN10sIFsxNjUwNzI1NDAyLjYxMDQwNjksIDcxOCwgMTUuMzY1NDAwMzE0MzMxMDU1XSwgWzE2NTA3MjU2MTAuNzIzMTQ0OCwgMTQzNiwgMTUuNDYwNzAwMDM1MDk1MjE1XSwgWzE2NTA3MjU4MjMuNTQ0NzM3MywgMjE1NCwgMTUuNDAyNzk5NjA2MzIzMjQyXSwgWzE2NTA3MjYwMzcuNzQyNDY0MywgMjg3MiwgMTUuNTMyNzk5NzIwNzY0MTZdLCBbMTY1MDcyNjI1My44NTYxNjM3LCAzNTkwLCAxNS43NzI3MDAzMDk3NTM0MThdXQ==",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "application/json"
                ]
              ],
              "status": 200,
              "status_text": ""
            },
            "https://localhost:6006/data/plugin/scalars/scalars?run=Apr23_14-45-54_9a82a501326a&tag=eval%2Floss": {
              "data": "W1sxNjUwNzI1MjA3LjkwNzcwOSwgMCwgMi4zMDczMDI3MTMzOTQxNjVdLCBbMTY1MDcyNTQwMi42MTAyODUzLCA3MTgsIDAuMTAxNjY0OTMwNTgyMDQ2NTFdLCBbMTY1MDcyNTYxMC43MjMwMTQ4LCAxNDM2LCAwLjA3MzQwNzA2ODg0ODYwOTkyXSwgWzE2NTA3MjU4MjMuNTQ0NjA5NSwgMjE1NCwgMC4wNTI4MDU1ODc2NDkzNDU0XSwgWzE2NTA3MjYwMzcuNzQyMzM3MiwgMjg3MiwgMC4wNTA2MTMwNzE3Njk0NzU5NF0sIFsxNjUwNzI2MjUzLjg1NTk3NiwgMzU5MCwgMC4wNDIyMDgzNjYwOTYwMTk3NDVdXQ==",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "application/json"
                ]
              ],
              "status": 200,
              "status_text": ""
            },
            "https://localhost:6006/data/plugin/scalars/scalars?run=Apr23_14-45-54_9a82a501326a&tag=eval%2Fsteps_per_second": {
              "data": "W1sxNjUwNzI1MjA3LjkwNzgzNTUsIDAsIDguMDE3MDAwMTk4MzY0MjU4XSwgWzE2NTA3MjU0MDIuNjEwNDQ2LCA3MTgsIDguMjY1MDAwMzQzMzIyNzU0XSwgWzE2NTA3MjU2MTAuNzIzMTgzNiwgMTQzNiwgOC4yMTM5OTk3NDgyMjk5OF0sIFsxNjUwNzI1ODIzLjU0NDc3OTMsIDIxNTQsIDguMjQ0OTk5ODg1NTU5MDgyXSwgWzE2NTA3MjYwMzcuNzQyNTA3NSwgMjg3MiwgOC4xNzU5OTk2NDE0MTg0NTddLCBbMTY1MDcyNjI1My44NTYyMSwgMzU5MCwgOC4wNTIwMDAwNDU3NzYzNjddXQ==",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "application/json"
                ]
              ],
              "status": 200,
              "status_text": ""
            },
            "https://localhost:6006/data/plugin/scalars/scalars?run=Apr23_14-45-54_9a82a501326a&tag=train%2Flearning_rate": {
              "data": "W1sxNjUwNzI1MjMyLjk4OTI3ODMsIDEwMCwgNC44NjA3MjQyMjA2MzQ0MzhlLTA1XSwgWzE2NTA3MjUyNTcuOTE0NDE3MywgMjAwLCA0LjcyMTQ0ODU2NzU3OTUwMDRlLTA1XSwgWzE2NTA3MjUyODIuOTIxMDI4NiwgMzAwLCA0LjU4MjE3MjU1MDcyNjY4MmUtMDVdLCBbMTY1MDcyNTMwOC4wMjI4NDYsIDQwMCwgNC40NDI4OTY4OTc2NzE3NDRlLTA1XSwgWzE2NTA3MjUzMzMuMDAzMDkzMiwgNTAwLCA0LjMwMzYyMTI0NDYxNjgwNjVlLTA1XSwgWzE2NTA3MjUzNTcuOTQyNDMwNywgNjAwLCA0LjE2NDM0NTIyNzc2Mzk4OGUtMDVdLCBbMTY1MDcyNTM4Mi45NDEwMzYyLCA3MDAsIDQuMDI1MDY5NTc0NzA5MDUwNGUtMDVdLCBbMTY1MDcyNTQzMC4yMzM3Mjk2LCA4MDAsIDMuODg1NzkzOTIxNjU0MTEyNmUtMDVdLCBbMTY1MDcyNTQ1Ny44NTQ5MjY2LCA5MDAsIDMuNzQ2NTE4MjY4NTk5MTc1ZS0wNV0sIFsxNjUwNzI1NDg1LjM5MjUwNzMsIDEwMDAsIDMuNjA3MjQyMjUxNzQ2MzU2NWUtMDVdLCBbMTY1MDcyNTUxMS4yNTU0OTUzLCAxMTAwLCAzLjQ2Nzk2NjU5ODY5MTQxOWUtMDVdLCBbMTY1MDcyNTUzNi4yOTU0NDMsIDEyMDAsIDMuMzI4NjkwOTQ1NjM2NDgxZS0wNV0sIFsxNjUwNzI1NTYxLjM5MDg5MTYsIDEzMDAsIDMuMTg5NDE0OTI4NzgzNjYyNmUtMDVdLCBbMTY1MDcyNTU4Ni40NjU2Nzc3LCAxNDAwLCAzLjA1MDEzOTI3NTcyODcyNWUtMDVdLCBbMTY1MDcyNTYzOC4wNjM5OTI3LCAxNTAwLCAyLjkxMDg2MzQ0MDc3NDg0NjhlLTA1XSwgWzE2NTA3MjU2NjUuNTA5Nzk3NiwgMTYwMCwgMi43NzE1ODc3ODc3MTk5MDllLTA1XSwgWzE2NTA3MjU2OTMuMTYwNDg0NiwgMTcwMCwgMi42MzIzMTE5NTI3NjYwMzFlLTA1XSwgWzE2NTA3MjU3MTkuNzQ0NTEwNCwgMTgwMCwgMi40OTMwMzYyOTk3MTEwOTMzZS0wNV0sIFsxNjUwNzI1NzQ0Ljc2MzUxMTcsIDE5MDAsIDIuMzUzNzYwNDY0NzU3MjE1MmUtMDVdLCBbMTY1MDcyNTc2OS43OTk2MjU0LCAyMDAwLCAyLjIxNDQ4NDYyOTgwMzMzN2UtMDVdLCBbMTY1MDcyNTc5NC43ODEzMDIsIDIxMDAsIDIuMDc1MjA4OTc2NzQ4Mzk5NGUtMDVdLCBbMTY1MDcyNTg0Ni4xMzU1OTI3LCAyMjAwLCAxLjkzNTkzMzE0MTc5NDUyMTRlLTA1XSwgWzE2NTA3MjU4NzMuNzcwNjc5NywgMjMwMCwgMS43OTY2NTczMDY4NDA2NDMzZS0wNV0sIFsxNjUwNzI1OTAxLjQ4MjIwNiwgMjQwMCwgMS42NTczODE2NTM3ODU3MDU2ZS0wNV0sIFsxNjUwNzI1OTI4LjU4NDk2NDgsIDI1MDAsIDEuNTE4MTA1ODE4ODMxODI3NWUtMDVdLCBbMTY1MDcyNTk1My44Mjk2OTgsIDI2MDAsIDEuMzc4ODMwMDc0ODI3NDE5NmUtMDVdLCBbMTY1MDcyNTk3OS4wMTczNTY2LCAyNzAwLCAxLjIzOTU1NDMzMDgyMzAxMTdlLTA1XSwgWzE2NTA3MjYwMDQuMjI1NTIwNCwgMjgwMCwgMS4xMDAyNzg1ODY4MTg2MDM4ZS0wNV0sIFsxNjUwNzI2MDU1LjY2ODE0NjgsIDI5MDAsIDkuNjEwMDI3NTE4NjQ3MjU3ZS0wNl0sIFsxNjUwNzI2MDgzLjQ5NDYyNTYsIDMwMDAsIDguMjE3MjcwMDc4NjAzMTc4ZS0wNl0sIFsxNjUwNzI2MTExLjM0OTExMjUsIDMxMDAsIDYuODI0NTEyNjM4NTU5MDk5ZS0wNl0sIFsxNjUwNzI2MTM4LjkwOTMxOSwgMzIwMCwgNS40MzE3NTQ3NDM3Njc2Njk0ZS0wNl0sIFsxNjUwNzI2MTY0LjM2NTI5MDYsIDMzMDAsIDQuMDM4OTk3MzAzNzIzNTkwNGUtMDZdLCBbMTY1MDcyNjE4OS44NTY2NjE2LCAzNDAwLCAyLjY0NjIzOTYzNjMwNTgzNmUtMDZdLCBbMTY1MDcyNjIxNS4zMjYzMjM1LCAzNTAwLCAxLjI1MzQ4MTg1NTIwMTI0MzllLTA2XV0=",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "application/json"
                ]
              ],
              "status": 200,
              "status_text": ""
            },
            "https://localhost:6006/data/plugin/scalars/scalars?run=Apr23_14-45-54_9a82a501326a&tag=eval%2Fsamples_per_second": {
              "data": "W1sxNjUwNzI1MjA3LjkwNzgxNywgMCwgMjU1LjY0Nzk5NDk5NTExNzJdLCBbMTY1MDcyNTQwMi42MTA0MjcxLCA3MTgsIDI2My41NzkwMTAwMDk3NjU2XSwgWzE2NTA3MjU2MTAuNzIzMTY1LCAxNDM2LCAyNjEuOTU0OTg2NTcyMjY1Nl0sIFsxNjUwNzI1ODIzLjU0NDc1OSwgMjE1NCwgMjYyLjkzODk5NTM2MTMyODFdLCBbMTY1MDcyNjAzNy43NDI0ODY3LCAyODcyLCAyNjAuNzM5MDEzNjcxODc1XSwgWzE2NTA3MjYyNTMuODU2MTg3OCwgMzU5MCwgMjU2Ljc3MzAxMDI1MzkwNjI1XV0=",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "application/json"
                ]
              ],
              "status": 200,
              "status_text": ""
            },
            "https://localhost:6006/data/plugin/scalars/scalars?run=Apr23_14-45-54_9a82a501326a&tag=train%2Fepoch": {
              "data": "W1sxNjUwNzI1MjMyLjk4OTMyNiwgMTAwLCAwLjE0MDAwMDAwMDU5NjA0NjQ1XSwgWzE2NTA3MjUyNTcuOTE0NDU2NiwgMjAwLCAwLjI4MDAwMDAwMTE5MjA5MjldLCBbMTY1MDcyNTI4Mi45MjEwODc1LCAzMDAsIDAuNDE5OTk5OTg2ODg2OTc4MTVdLCBbMTY1MDcyNTMwOC4wMjI4ODgsIDQwMCwgMC41NjAwMDAwMDIzODQxODU4XSwgWzE2NTA3MjUzMzMuMDAzMTUxLCA1MDAsIDAuNjk5OTk5OTg4MDc5MDcxXSwgWzE2NTA3MjUzNTcuOTQyNDcyNSwgNjAwLCAwLjgzOTk5OTk3Mzc3Mzk1NjNdLCBbMTY1MDcyNTM4Mi45NDExMTc1LCA3MDAsIDAuOTcwMDAwMDI4NjEwMjI5NV0sIFsxNjUwNzI1NDAyLjYxMDQ2NDMsIDcxOCwgMS4wXSwgWzE2NTA3MjU0MzAuMjMzNzcwMSwgODAwLCAxLjExMDAwMDAxNDMwNTExNDddLCBbMTY1MDcyNTQ1Ny44NTQ5NzA3LCA5MDAsIDEuMjVdLCBbMTY1MDcyNTQ4NS4zOTI1NTYyLCAxMDAwLCAxLjM4OTk5OTk4NTY5NDg4NTNdLCBbMTY1MDcyNTUxMS4yNTU1NTM3LCAxMTAwLCAxLjUyOTk5OTk3MTM4OTc3MDVdLCBbMTY1MDcyNTUzNi4yOTU0ODM2LCAxMjAwLCAxLjY2OTk5OTk1NzA4NDY1NThdLCBbMTY1MDcyNTU2MS4zOTA5MzE0LCAxMzAwLCAxLjgwOTk5OTk0Mjc3OTU0MV0sIFsxNjUwNzI1NTg2LjQ2NTc1MzMsIDE0MDAsIDEuOTUwMDAwMDQ3NjgzNzE1OF0sIFsxNjUwNzI1NjEwLjcyMzIwMTUsIDE0MzYsIDIuMF0sIFsxNjUwNzI1NjM4LjA2NDAzNjYsIDE1MDAsIDIuMDg5OTk5OTE0MTY5MzExNV0sIFsxNjUwNzI1NjY1LjUwOTg0MDUsIDE2MDAsIDIuMjMwMDAwMDE5MDczNDg2M10sIFsxNjUwNzI1NjkzLjE2MDUyMTMsIDE3MDAsIDIuMzY5OTk5ODg1NTU5MDgyXSwgWzE2NTA3MjU3MTkuNzQ0NTUxMiwgMTgwMCwgMi41MDk5OTk5OTA0NjMyNTddLCBbMTY1MDcyNTc0NC43NjM1NTQsIDE5MDAsIDIuNjUwMDAwMDk1MzY3NDMxNl0sIFsxNjUwNzI1NzY5Ljc5OTY2ODYsIDIwMDAsIDIuNzg5OTk5OTYxODUzMDI3M10sIFsxNjUwNzI1Nzk0Ljc4MTM1MTMsIDIxMDAsIDIuOTIwMDAwMDc2MjkzOTQ1M10sIFsxNjUwNzI1ODIzLjU0NDc5OSwgMjE1NCwgMy4wXSwgWzE2NTA3MjU4NDYuMTM1NjQwNCwgMjIwMCwgMy4wNTk5OTk5NDI3Nzk1NDFdLCBbMTY1MDcyNTg3My43NzA3MjgsIDIzMDAsIDMuMjAwMDAwMDQ3NjgzNzE2XSwgWzE2NTA3MjU5MDEuNDgyMjY0LCAyNDAwLCAzLjMzOTk5OTkxNDE2OTMxMTVdLCBbMTY1MDcyNTkyOC41ODUwMDM5LCAyNTAwLCAzLjQ4MDAwMDAxOTA3MzQ4NjNdLCBbMTY1MDcyNTk1My44Mjk3Mzc0LCAyNjAwLCAzLjYxOTk5OTg4NTU1OTA4Ml0sIFsxNjUwNzI1OTc5LjAxNzM5ODgsIDI3MDAsIDMuNzU5OTk5OTkwNDYzMjU3XSwgWzE2NTA3MjYwMDQuMjI1NTYzMywgMjgwMCwgMy45MDAwMDAwOTUzNjc0MzE2XSwgWzE2NTA3MjYwMzcuNzQyNTI3MiwgMjg3MiwgNC4wXSwgWzE2NTA3MjYwNTUuNjY4MTk0OCwgMjkwMCwgNC4wMzk5OTk5NjE4NTMwMjddLCBbMTY1MDcyNjA4My40OTQ2NzA2LCAzMDAwLCA0LjE3OTk5OTgyODMzODYyM10sIFsxNjUwNzI2MTExLjM0OTE2NiwgMzEwMCwgNC4zMjAwMDAxNzE2NjEzNzddLCBbMTY1MDcyNjEzOC45MDkzNjEsIDMyMDAsIDQuNDYwMDAwMDM4MTQ2OTczXSwgWzE2NTA3MjYxNjQuMzY1MzIyNCwgMzMwMCwgNC41OTk5OTk5MDQ2MzI1NjhdLCBbMTY1MDcyNjE4OS44NTY3MDgsIDM0MDAsIDQuNzM5OTk5NzcxMTE4MTY0XSwgWzE2NTA3MjYyMTUuMzI2MzY4MywgMzUwMCwgNC44Njk5OTk4ODU1NTkwODJdLCBbMTY1MDcyNjI2NC41ODY3MTYyLCAzNTkwLCA1LjBdXQ==",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "application/json"
                ]
              ],
              "status": 200,
              "status_text": ""
            },
            "https://localhost:6006/data/plugin/scalars/scalars?run=Apr23_14-45-54_9a82a501326a&tag=train%2Floss": {
              "data": "W1sxNjUwNzI1MjMyLjk4OTE0MiwgMTAwLCAxLjQzMjYwMDAyMTM2MjMwNDddLCBbMTY1MDcyNTI1Ny45MTQzMTUyLCAyMDAsIDAuNTMwNzAwMDI3OTQyNjU3NV0sIFsxNjUwNzI1MjgyLjkyMDkxNSwgMzAwLCAwLjMzMzYwMDAxNDQ0ODE2NTldLCBbMTY1MDcyNTMwOC4wMjI3MjIsIDQwMCwgMC4yNjQ2MDAwMDg3MjYxMl0sIFsxNjUwNzI1MzMzLjAwMjk1MTksIDUwMCwgMC4yNTkwOTk5OTAxMjk0NzA4XSwgWzE2NTA3MjUzNTcuOTQyMzMxNiwgNjAwLCAwLjIzODEwMDAwNzE3NjM5OTIzXSwgWzE2NTA3MjUzODIuOTQwOTMyOCwgNzAwLCAwLjIyMTAwMDAwMDgzNDQ2NTAzXSwgWzE2NTA3MjU0MzAuMjMzNjIxLCA4MDAsIDAuMTg3MDk5OTkzMjI4OTEyMzVdLCBbMTY1MDcyNTQ1Ny44NTQ4MDQ4LCA5MDAsIDAuMTc1OTk5OTk5MDQ2MzI1NjhdLCBbMTY1MDcyNTQ4NS4zOTIzOCwgMTAwMCwgMC4xOTE0MDAwMDY0MTM0NTk3OF0sIFsxNjUwNzI1NTExLjI1NTM5MjMsIDExMDAsIDAuMTg2Mjk5OTk0NTg3ODk4MjVdLCBbMTY1MDcyNTUzNi4yOTUzMzE1LCAxMjAwLCAwLjE4NTY5OTk5OTMzMjQyNzk4XSwgWzE2NTA3MjU1NjEuMzkwNzc0NSwgMTMwMCwgMC4xNTk0MDAwMDExNjgyNTEwNF0sIFsxNjUwNzI1NTg2LjQ2NTE3MTMsIDE0MDAsIDAuMTYwNDAwMDAzMTk0ODA4OTZdLCBbMTY1MDcyNTYzOC4wNjM4NiwgMTUwMCwgMC4xNDg2OTk5OTg4NTU1OTA4Ml0sIFsxNjUwNzI1NjY1LjUwOTY4LCAxNjAwLCAwLjE0MjM5OTk5NjUxOTA4ODc1XSwgWzE2NTA3MjU2OTMuMTYwMzg1OCwgMTcwMCwgMC4xMjY2OTk5OTg5NzQ4MDAxXSwgWzE2NTA3MjU3MTkuNzQ0NDA1NSwgMTgwMCwgMC4xNTU2OTk5OTgxNDAzMzUwOF0sIFsxNjUwNzI1NzQ0Ljc2MzM5NzUsIDE5MDAsIDAuMTM3NTAwMDAyOTgwMjMyMjRdLCBbMTY1MDcyNTc2OS43OTk1MDI2LCAyMDAwLCAwLjEzOTMwMDAwMzY0NzgwNDI2XSwgWzE2NTA3MjU3OTQuNzgxMTc2MywgMjEwMCwgMC4xNDQ4MDAwMDczNDMyOTIyNF0sIFsxNjUwNzI1ODQ2LjEzNTQ2NTQsIDIyMDAsIDAuMTM3MTk5OTk3OTAxOTE2NV0sIFsxNjUwNzI1ODczLjc3MDU0NjcsIDIzMDAsIDAuMTEzMDk5OTk5NzI1ODE4NjNdLCBbMTY1MDcyNTkwMS40ODIwMjI4LCAyNDAwLCAwLjExODAwMDAwMDcxNTI1NTc0XSwgWzE2NTA3MjU5MjguNTg0ODY0OSwgMjUwMCwgMC4xMzEzMDAwMDIzMzY1MDIwOF0sIFsxNjUwNzI1OTUzLjgyOTU4NDEsIDI2MDAsIDAuMTI3MjAwMDA3NDM4NjU5NjddLCBbMTY1MDcyNTk3OS4wMTcyNTM5LCAyNzAwLCAwLjEzMjQ5OTk5Mjg0NzQ0MjYzXSwgWzE2NTA3MjYwMDQuMjI1NDE1NywgMjgwMCwgMC4xMDkyMDAwMDA3NjI5Mzk0NV0sIFsxNjUwNzI2MDU1LjY2ODAwMzYsIDI5MDAsIDAuMTIyNTk5OTk2NjI2Mzc3MV0sIFsxNjUwNzI2MDgzLjQ5NDUwMywgMzAwMCwgMC4xMTI1OTk5OTg3MTI1Mzk2N10sIFsxNjUwNzI2MTExLjM0ODk4NzYsIDMxMDAsIDAuMTA3NjAwMDAzNDgwOTExMjVdLCBbMTY1MDcyNjEzOC45MDkyMDgsIDMyMDAsIDAuMTE0OTAwMDAwMzkzMzkwNjZdLCBbMTY1MDcyNjE2NC4zNjUxNzY3LCAzMzAwLCAwLjEwNTg5OTk5NzA1NTUzMDU1XSwgWzE2NTA3MjYxODkuODU2NTQzOCwgMzQwMCwgMC4xMDU3MDAwMDExMjA1NjczMl0sIFsxNjUwNzI2MjE1LjMyNjIwNCwgMzUwMCwgMC4wOTA0OTk5OTcxMzg5NzcwNV1d",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "application/json"
                ]
              ],
              "status": 200,
              "status_text": ""
            },
            "https://localhost:6006/font-roboto/Hgo13k-tfSpn0qi1SFdUfZBw1xU1rKptJj_0jans920.woff2": {
              "data": "[encoded data, 14504 characters]",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "font/woff2"
                ]
              ],
              "status": 200,
              "status_text": ""
            },
            "https://localhost:6006/data/plugin/scalars/scalars?run=Apr23_14-45-54_9a82a501326a&tag=train%2Ftotal_flos": {
              "data": "W1sxNjUwNzI2MjY0LjU4NjY3NDUsIDM1OTAsIDIuODg0MDM0MTE3OTQxMzNlKzE4XV0=",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "application/json"
                ]
              ],
              "status": 200,
              "status_text": ""
            },
            "https://localhost:6006/data/plugin/scalars/scalars?run=Apr23_14-45-54_9a82a501326a&tag=train%2Ftrain_runtime": {
              "data": "W1sxNjUwNzI2MjY0LjU4NjQ3NjYsIDM1OTAsIDEwNTYuNjM3NDUxMTcxODc1XV0=",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "application/json"
                ]
              ],
              "status": 200,
              "status_text": ""
            },
            "https://localhost:6006/data/plugin/scalars/scalars?run=Apr23_14-45-54_9a82a501326a&tag=train%2Ftrain_loss": {
              "data": "W1sxNjUwNzI2MjY0LjU4NjY5NTcsIDM1OTAsIDAuMjAxMjQwMDkyNTE1OTQ1NDNdXQ==",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "application/json"
                ]
              ],
              "status": 200,
              "status_text": ""
            },
            "https://localhost:6006/data/plugin/scalars/scalars?run=Apr23_14-45-54_9a82a501326a&tag=train%2Ftrain_steps_per_second": {
              "data": "W1sxNjUwNzI2MjY0LjU4NjY0OTcsIDM1OTAsIDMuMzk4MDAwMDAxOTA3MzQ4Nl1d",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "application/json"
                ]
              ],
              "status": 200,
              "status_text": ""
            },
            "https://localhost:6006/data/plugin/scalars/scalars?run=Apr23_14-45-54_9a82a501326a&tag=train%2Ftrain_samples_per_second": {
              "data": "W1sxNjUwNzI2MjY0LjU4NjYwODIsIDM1OTAsIDEwOC41OTg5OTkwMjM0Mzc1XV0=",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "application/json"
                ]
              ],
              "status": 200,
              "status_text": ""
            }
          },
          "base_uri": "https://localhost:8080/",
          "height": 821
        },
        "id": "sOvuifz7tdzO",
        "outputId": "6c13fdf8-b505-4a34-e6ed-da46c9153303"
      },
      "execution_count": 28,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ],
            "application/javascript": [
              "\n",
              "        (async () => {\n",
              "            const url = new URL(await google.colab.kernel.proxyPort(6006, {'cache': true}));\n",
              "            url.searchParams.set('tensorboardColab', 'true');\n",
              "            const iframe = document.createElement('iframe');\n",
              "            iframe.src = url;\n",
              "            iframe.setAttribute('width', '100%');\n",
              "            iframe.setAttribute('height', '800');\n",
              "            iframe.setAttribute('frameborder', 0);\n",
              "            document.body.appendChild(iframe);\n",
              "        })();\n",
              "    "
            ]
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Define our collate function\n",
        "How the model expects the batches"
      ],
      "metadata": {
        "id": "18qMK5SVvSEz"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import torch\n",
        "def collate_fn(examples):\n",
        "    pixel_values = torch.stack([example[\"pixel_values\"] for example in examples])\n",
        "    labels = torch.tensor([example[\"label\"] for example in examples])\n",
        "    return {\"pixel_values\": pixel_values, \"labels\": labels}"
      ],
      "metadata": {
        "id": "lCxVs-aksO_i"
      },
      "execution_count": 29,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Initialize the Trainer object"
      ],
      "metadata": {
        "id": "dsFlJh_uvNPU"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# Initalize our trainer\n",
        "trainer = Trainer(\n",
        "        model=model,\n",
        "        args=training_args,\n",
        "        train_dataset=train_data,\n",
        "        eval_dataset=test_data,\n",
        "        compute_metrics=compute_metrics,\n",
        "        tokenizer=feature_extractor,\n",
        "        data_collator=collate_fn,\n",
        "    )"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "kuRCewVmtpUl",
        "outputId": "1dcb514a-d858-4f50-c633-034deab1f9cb"
      },
      "execution_count": 30,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "Cloning https://huggingface.co/mrm8488/convnext-tiny-finetuned-eurosat-demo into local empty directory.\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "Run a sanity check"
      ],
      "metadata": {
        "id": "wEPqDCGC4E-v"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "trainer.evaluate()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 176
        },
        "id": "8vEF8gP9uQn8",
        "outputId": "2ecfb3d0-13df-4925-9e18-64121f8e3b51"
      },
      "execution_count": 31,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "***** Running Evaluation *****\n",
            "  Num examples = 4050\n",
            "  Batch size = 32\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ],
            "text/html": [
              "\n",
              "    <div>\n",
              "      \n",
              "      <progress value='127' max='127' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
              "      [127/127 00:15]\n",
              "    </div>\n",
              "    "
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "{'eval_accuracy': 0.061975308641975306,\n",
              " 'eval_loss': 2.307302713394165,\n",
              " 'eval_runtime': 15.8421,\n",
              " 'eval_samples_per_second': 255.648,\n",
              " 'eval_steps_per_second': 8.017}"
            ]
          },
          "metadata": {},
          "execution_count": 31
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Train the model 🧠 🏃 🔥"
      ],
      "metadata": {
        "id": "YUVjCnIP8Vxo"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "trainer.train()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "id": "-_G1Ua8pvAKv",
        "outputId": "0e0e1f23-256d-444f-da4c-306e1ec967dd"
      },
      "execution_count": 32,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "/usr/local/lib/python3.7/dist-packages/transformers/optimization.py:309: FutureWarning: This implementation of AdamW is deprecated and will be removed in a future version. Use the PyTorch implementation torch.optim.AdamW instead, or set `no_deprecation_warning=True` to disable this warning\n",
            "  FutureWarning,\n",
            "***** Running training *****\n",
            "  Num examples = 22950\n",
            "  Num Epochs = 5\n",
            "  Instantaneous batch size per device = 32\n",
            "  Total train batch size (w. parallel, distributed & accumulation) = 32\n",
            "  Gradient Accumulation steps = 1\n",
            "  Total optimization steps = 3590\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ],
            "text/html": [
              "\n",
              "    <div>\n",
              "      \n",
              "      <progress value='3590' max='3590' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
              "      [3590/3590 17:36, Epoch 5/5]\n",
              "    </div>\n",
              "    <table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              " <tr style=\"text-align: left;\">\n",
              "      <th>Epoch</th>\n",
              "      <th>Training Loss</th>\n",
              "      <th>Validation Loss</th>\n",
              "      <th>Accuracy</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <td>1</td>\n",
              "      <td>0.221000</td>\n",
              "      <td>0.101665</td>\n",
              "      <td>0.971358</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <td>2</td>\n",
              "      <td>0.160400</td>\n",
              "      <td>0.073407</td>\n",
              "      <td>0.977284</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <td>3</td>\n",
              "      <td>0.144800</td>\n",
              "      <td>0.052806</td>\n",
              "      <td>0.982716</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <td>4</td>\n",
              "      <td>0.109200</td>\n",
              "      <td>0.050613</td>\n",
              "      <td>0.982222</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <td>5</td>\n",
              "      <td>0.090500</td>\n",
              "      <td>0.042208</td>\n",
              "      <td>0.984938</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table><p>"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "***** Running Evaluation *****\n",
            "  Num examples = 4050\n",
            "  Batch size = 32\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ],
            "text/html": [
              "\n",
              "    <div>\n",
              "      \n",
              "      <progress value='254' max='127' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
              "      [127/127 03:30]\n",
              "    </div>\n",
              "    "
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "Saving model checkpoint to /content/convnext-tiny-finetuned-eurosat-demo/checkpoint-718\n",
            "Configuration saved in /content/convnext-tiny-finetuned-eurosat-demo/checkpoint-718/config.json\n",
            "Model weights saved in /content/convnext-tiny-finetuned-eurosat-demo/checkpoint-718/pytorch_model.bin\n",
            "Feature extractor saved in /content/convnext-tiny-finetuned-eurosat-demo/checkpoint-718/preprocessor_config.json\n",
            "Feature extractor saved in /content/convnext-tiny-finetuned-eurosat-demo/preprocessor_config.json\n",
            "***** Running Evaluation *****\n",
            "  Num examples = 4050\n",
            "  Batch size = 32\n",
            "Saving model checkpoint to /content/convnext-tiny-finetuned-eurosat-demo/checkpoint-1436\n",
            "Configuration saved in /content/convnext-tiny-finetuned-eurosat-demo/checkpoint-1436/config.json\n",
            "Model weights saved in /content/convnext-tiny-finetuned-eurosat-demo/checkpoint-1436/pytorch_model.bin\n",
            "Feature extractor saved in /content/convnext-tiny-finetuned-eurosat-demo/checkpoint-1436/preprocessor_config.json\n",
            "Feature extractor saved in /content/convnext-tiny-finetuned-eurosat-demo/preprocessor_config.json\n",
            "***** Running Evaluation *****\n",
            "  Num examples = 4050\n",
            "  Batch size = 32\n",
            "Saving model checkpoint to /content/convnext-tiny-finetuned-eurosat-demo/checkpoint-2154\n",
            "Configuration saved in /content/convnext-tiny-finetuned-eurosat-demo/checkpoint-2154/config.json\n",
            "Model weights saved in /content/convnext-tiny-finetuned-eurosat-demo/checkpoint-2154/pytorch_model.bin\n",
            "Feature extractor saved in /content/convnext-tiny-finetuned-eurosat-demo/checkpoint-2154/preprocessor_config.json\n",
            "Feature extractor saved in /content/convnext-tiny-finetuned-eurosat-demo/preprocessor_config.json\n",
            "***** Running Evaluation *****\n",
            "  Num examples = 4050\n",
            "  Batch size = 32\n",
            "Saving model checkpoint to /content/convnext-tiny-finetuned-eurosat-demo/checkpoint-2872\n",
            "Configuration saved in /content/convnext-tiny-finetuned-eurosat-demo/checkpoint-2872/config.json\n",
            "Model weights saved in /content/convnext-tiny-finetuned-eurosat-demo/checkpoint-2872/pytorch_model.bin\n",
            "Feature extractor saved in /content/convnext-tiny-finetuned-eurosat-demo/checkpoint-2872/preprocessor_config.json\n",
            "Feature extractor saved in /content/convnext-tiny-finetuned-eurosat-demo/preprocessor_config.json\n",
            "Deleting older checkpoint [/content/convnext-tiny-finetuned-eurosat-demo/checkpoint-718] due to args.save_total_limit\n",
            "***** Running Evaluation *****\n",
            "  Num examples = 4050\n",
            "  Batch size = 32\n",
            "Saving model checkpoint to /content/convnext-tiny-finetuned-eurosat-demo/checkpoint-3590\n",
            "Configuration saved in /content/convnext-tiny-finetuned-eurosat-demo/checkpoint-3590/config.json\n",
            "Model weights saved in /content/convnext-tiny-finetuned-eurosat-demo/checkpoint-3590/pytorch_model.bin\n",
            "Feature extractor saved in /content/convnext-tiny-finetuned-eurosat-demo/checkpoint-3590/preprocessor_config.json\n",
            "Feature extractor saved in /content/convnext-tiny-finetuned-eurosat-demo/preprocessor_config.json\n",
            "Deleting older checkpoint [/content/convnext-tiny-finetuned-eurosat-demo/checkpoint-1436] due to args.save_total_limit\n",
            "\n",
            "\n",
            "Training completed. Do not forget to share your model on huggingface.co/models =)\n",
            "\n",
            "\n",
            "Loading best model from /content/convnext-tiny-finetuned-eurosat-demo/checkpoint-3590 (score: 0.042208366096019745).\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "TrainOutput(global_step=3590, training_loss=0.201240090340957, metrics={'train_runtime': 1056.6375, 'train_samples_per_second': 108.599, 'train_steps_per_second': 3.398, 'total_flos': 2.884034094971904e+18, 'train_loss': 0.201240090340957, 'epoch': 5.0})"
            ]
          },
          "metadata": {},
          "execution_count": 32
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "trainer.create_model_card()"
      ],
      "metadata": {
        "id": "D_00YOZiz3T6"
      },
      "execution_count": 33,
      "outputs": []
    }
  ]
}