{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "name": "Coding Challenge for Fatima Fellowship", "provenance": [], "collapsed_sections": [] }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "7953ba0237ae43dda41daa400574c270": { "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_318b0fbf4deb4584b5a747b632775bcc", "IPY_MODEL_2c5e7925205b468f9435598e590a6e36", "IPY_MODEL_4328463e1867443a97ea499a17cf6e62" ], "layout": "IPY_MODEL_992ab320e4734c9dae9df34b9d94c92a" } }, "318b0fbf4deb4584b5a747b632775bcc": { "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_f0fbc98d89864c2cabab92af2337454a", "placeholder": "​", "style": "IPY_MODEL_548e770f21b6495a8a281ca18705d58a", "value": "Downloading builder script: " } }, "2c5e7925205b468f9435598e590a6e36": { "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_7f546aa9c0de44e08ef27753a12bfe28", "max": 2194, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_d801ce061849465db4fb2f0e854a44c4", "value": 2194 } }, "4328463e1867443a97ea499a17cf6e62": { "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_4dccdbbe920d4e76a54c36b6376e7787", "placeholder": "​", "style": "IPY_MODEL_839381f8c2524423908e36c1d0714715", "value": " 5.61k/? [00:00<00:00, 151kB/s]" } }, "992ab320e4734c9dae9df34b9d94c92a": { "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 } }, "f0fbc98d89864c2cabab92af2337454a": { "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 } }, "548e770f21b6495a8a281ca18705d58a": { "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": "" } }, "7f546aa9c0de44e08ef27753a12bfe28": { "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 } }, "d801ce061849465db4fb2f0e854a44c4": { "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": "" } }, "4dccdbbe920d4e76a54c36b6376e7787": { "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 } }, "839381f8c2524423908e36c1d0714715": { "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": "" } }, "656b2a5c032b4042be5982b640f996eb": { "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_f49c9e73524e4120bb701e90f31c86c1", "IPY_MODEL_0e345e25b48641e19f26dcda5b5256f4", "IPY_MODEL_70979b6c8958431d9388456e2eec39e7" ], "layout": "IPY_MODEL_49d5c51c006f4c0f9e6d9a7eab0446b6" } }, "f49c9e73524e4120bb701e90f31c86c1": { "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_1549c8e2f3a44ba48dc0915d661c1453", "placeholder": "​", "style": "IPY_MODEL_342a1d5148784d54852744e0e77ef48e", "value": "Downloading metadata: " } }, "0e345e25b48641e19f26dcda5b5256f4": { "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_4aab5795dea04b8c88879cda7ee59657", "max": 1436, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_4e3276eebdc347f497ef3c3e6257a25b", "value": 1436 } }, "70979b6c8958431d9388456e2eec39e7": { "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_afb03f39be4a4e8ea3b3aecce9e3f25b", "placeholder": "​", "style": "IPY_MODEL_4dc4f440f1e148dfb79d78e044746c0c", "value": " 4.21k/? [00:00<00:00, 103kB/s]" } }, "49d5c51c006f4c0f9e6d9a7eab0446b6": { "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 } }, "1549c8e2f3a44ba48dc0915d661c1453": { "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 } }, "342a1d5148784d54852744e0e77ef48e": { "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": "" } }, "4aab5795dea04b8c88879cda7ee59657": { "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 } }, "4e3276eebdc347f497ef3c3e6257a25b": { "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": "" } }, "afb03f39be4a4e8ea3b3aecce9e3f25b": { "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 } }, "4dc4f440f1e148dfb79d78e044746c0c": { "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": "" } }, "045bea818647461f87407344231d72dc": { "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_af9af725e4514d2d90db3b1aab7d8386", "IPY_MODEL_f1b625def4854c5e9a69ed87a0220446", "IPY_MODEL_19a2d612be814ed488cd12233d4f92c5" ], "layout": "IPY_MODEL_9b6b0126b568475184a3c10147f4cb58" } }, "af9af725e4514d2d90db3b1aab7d8386": { "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_70e93f0765f144fabd4c766dbaeb563c", "placeholder": "​", "style": "IPY_MODEL_f671913f390847069aec1420558d3c08", "value": "Downloading data: 100%" } }, "f1b625def4854c5e9a69ed87a0220446": { "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_72ce87cc7c2e4190aa88300a62c16af1", "max": 169001437, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_1d3fb8265a5c4516b70cde98ea9eed31", "value": 169001437 } }, "19a2d612be814ed488cd12233d4f92c5": { "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_9ba83edcee4346188c8d7a01aef71d7c", "placeholder": "​", "style": "IPY_MODEL_ba787b10f1d44217ba6ee0f8408a0f94", "value": " 169M/169M [00:12<00:00, 15.8MB/s]" } }, "9b6b0126b568475184a3c10147f4cb58": { "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 } }, "70e93f0765f144fabd4c766dbaeb563c": { "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 } }, "f671913f390847069aec1420558d3c08": { "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": "" } }, "72ce87cc7c2e4190aa88300a62c16af1": { "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 } }, "1d3fb8265a5c4516b70cde98ea9eed31": { "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": "" } }, "9ba83edcee4346188c8d7a01aef71d7c": { "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 } }, "ba787b10f1d44217ba6ee0f8408a0f94": { "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": "" } }, "26490ec2dea04fbbb859d2d42d079731": { "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_8166d67ec5514720bbb1f9e623e3973a", "IPY_MODEL_342188d6d6734bfcbe17f34660912538", "IPY_MODEL_7706089a5d094f2cae280fe3b244ea98" ], "layout": "IPY_MODEL_02be2b482a084ad0be7718a16f19587b" } }, "8166d67ec5514720bbb1f9e623e3973a": { "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_01b59a03cf2147f7983798c0794a1c1d", "placeholder": "​", "style": "IPY_MODEL_cabcdc3660c849d59424e6e06005a58e", "value": "Generating train split: 100%" } }, "342188d6d6734bfcbe17f34660912538": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_e0bf7d8202644574815497b2feefa628", "max": 50000, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_dc47459febcd495fbe11e888452c1c3f", "value": 50000 } }, "7706089a5d094f2cae280fe3b244ea98": { "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_c52b20d48be74a02833904b43767fde1", "placeholder": "​", "style": "IPY_MODEL_ee88c6a94e6b49798617030f3123a2d4", "value": " 49791/50000 [00:35<00:00, 2270.96 examples/s]" } }, "02be2b482a084ad0be7718a16f19587b": { "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 } }, "01b59a03cf2147f7983798c0794a1c1d": { "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 } }, "cabcdc3660c849d59424e6e06005a58e": { "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": "" } }, "e0bf7d8202644574815497b2feefa628": { "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 } }, "dc47459febcd495fbe11e888452c1c3f": { "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": "" } }, "c52b20d48be74a02833904b43767fde1": { "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 } }, "ee88c6a94e6b49798617030f3123a2d4": { "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": "" } }, "a713b5fa032f4505957a35c1462251e8": { "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_2c6190b7bfed4c15a1da558bc473d9ee", "IPY_MODEL_7c08521d01954fd4b6106caf228a662f", "IPY_MODEL_88a7297355d443669acc551f4d57e7fb" ], "layout": "IPY_MODEL_c000451bc15f45d3b4b0de6c943c5b02" } }, "2c6190b7bfed4c15a1da558bc473d9ee": { "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_2bf86ca98b324e7da9b68ea8c0455f17", "placeholder": "​", "style": "IPY_MODEL_09b1e545dbc546f28a5a16be25a31c48", "value": "Generating test split: 98%" } }, "7c08521d01954fd4b6106caf228a662f": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_67f933b6eeea4645a669a64a59d94a18", "max": 10000, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_af7c51dcb705437e950d16d6cace2ac7", "value": 10000 } }, "88a7297355d443669acc551f4d57e7fb": { "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_8c432142499e45e7b269f07aa4ec7cec", "placeholder": "​", "style": "IPY_MODEL_0521008439b841c5aae92dbe2f2b7933", "value": " 9807/10000 [00:05<00:00, 2346.66 examples/s]" } }, "c000451bc15f45d3b4b0de6c943c5b02": { "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 } }, "2bf86ca98b324e7da9b68ea8c0455f17": { "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 } }, "09b1e545dbc546f28a5a16be25a31c48": { "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": "" } }, "67f933b6eeea4645a669a64a59d94a18": { "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 } }, "af7c51dcb705437e950d16d6cace2ac7": { "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": "" } }, "8c432142499e45e7b269f07aa4ec7cec": { "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 } }, "0521008439b841c5aae92dbe2f2b7933": { "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": "" } }, "352127ed1d314993b4ee9f7a29cee257": { "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_d35d5593867346b199c68e1d7773a6a2", "IPY_MODEL_4cdb26fc310b4ec7b1e3f3caa9e8e29f", "IPY_MODEL_6905872108544374a908dc4c58dbedad" ], "layout": "IPY_MODEL_c2b3edbc414d4cd088fd4837067d7be8" } }, "d35d5593867346b199c68e1d7773a6a2": { "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_7d4ded3c7ce3466497b09d6eda5e6c55", "placeholder": "​", "style": "IPY_MODEL_da7f2672ef0046298aa9c4dc2a9be14d", "value": "100%" } }, "4cdb26fc310b4ec7b1e3f3caa9e8e29f": { "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_cf01f80361ec48fbaf0987de3dc8ec0b", "max": 2, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_977d93a9c15b4002a59d03871b6c5cca", "value": 2 } }, "6905872108544374a908dc4c58dbedad": { "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_74563ef02a6e4f4d9bef8a4b6430d7dd", "placeholder": "​", "style": "IPY_MODEL_ca3f3030e1af4f55a9ba37aa7012e592", "value": " 2/2 [00:00<00:00, 38.30it/s]" } }, "c2b3edbc414d4cd088fd4837067d7be8": { "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 } }, "7d4ded3c7ce3466497b09d6eda5e6c55": { "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 } }, "da7f2672ef0046298aa9c4dc2a9be14d": { "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": "" } }, "cf01f80361ec48fbaf0987de3dc8ec0b": { "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 } }, "977d93a9c15b4002a59d03871b6c5cca": { "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": "" } }, "74563ef02a6e4f4d9bef8a4b6430d7dd": { "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 } }, "ca3f3030e1af4f55a9ba37aa7012e592": { "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": "" } }, "1cd646c9818c44c1acf316b6cb093109": { "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_97ce43924d0e4c5daa38e55e54d23e3e", "IPY_MODEL_382ab6aa18b645e49acb3848a154f298", "IPY_MODEL_a0fec579f6a743fca5db46767eb7d617" ], "layout": "IPY_MODEL_8abe916e406741628b4425fe8230dc8f" } }, "97ce43924d0e4c5daa38e55e54d23e3e": { "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_ec0feded5ee04e96b1970c6ccbaa6639", "placeholder": "​", "style": "IPY_MODEL_1c2607afe96245e78474b0433cb47f22", "value": "100%" } }, "382ab6aa18b645e49acb3848a154f298": { "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_ac2b61652c6f4a7087c682b33dd4051a", "max": 46830571, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_e845e6f674b04bd2b3a4a188fbf7751c", "value": 46830571 } }, "a0fec579f6a743fca5db46767eb7d617": { "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_5d37a072e1224dbcb401b21dbb7d2091", "placeholder": "​", "style": "IPY_MODEL_9381d6a5eb3d4c56b23a1c152623ca12", "value": " 44.7M/44.7M [00:00<00:00, 130MB/s]" } }, "8abe916e406741628b4425fe8230dc8f": { "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 } }, "ec0feded5ee04e96b1970c6ccbaa6639": { "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 } }, "1c2607afe96245e78474b0433cb47f22": { "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": "" } }, "ac2b61652c6f4a7087c682b33dd4051a": { "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 } }, "e845e6f674b04bd2b3a4a188fbf7751c": { "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": "" } }, "5d37a072e1224dbcb401b21dbb7d2091": { "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 } }, "9381d6a5eb3d4c56b23a1c152623ca12": { "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": "" } }, "604275aff2df4677811b049e383cf8fb": { "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_e5a7a6357dbf4798bc2d6bc61a05cfc5", "IPY_MODEL_7655c490e29345218ff012871d8738a6", "IPY_MODEL_7399a2cc885f4488b0355d45d62d3b40" ], "layout": "IPY_MODEL_bcf466dc7bbb47d48e95582e9b573415" } }, "e5a7a6357dbf4798bc2d6bc61a05cfc5": { "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_f7e91661bdcd46bdab0bcced410fa77c", "placeholder": "​", "style": "IPY_MODEL_ab80a3e2673d404da7550a897134e242", "value": "Downloading builder script: " } }, "7655c490e29345218ff012871d8738a6": { "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_136da7ed8054462aa0c389ab0ed47a70", "max": 1548, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_0c1d64e812e945188ab5f00884c43a60", "value": 1548 } }, "7399a2cc885f4488b0355d45d62d3b40": { "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_527e96b18ddc4b83b86c43dc75ac4d74", "placeholder": "​", "style": "IPY_MODEL_65e9a206ac5841de902c8e9d5aa5bfa1", "value": " 3.61k/? [00:00<00:00, 89.9kB/s]" } }, "bcf466dc7bbb47d48e95582e9b573415": { "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 } }, "f7e91661bdcd46bdab0bcced410fa77c": { "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 } }, "ab80a3e2673d404da7550a897134e242": { "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": "" } }, "136da7ed8054462aa0c389ab0ed47a70": { "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 } }, "0c1d64e812e945188ab5f00884c43a60": { "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": "" } }, "527e96b18ddc4b83b86c43dc75ac4d74": { "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 } }, "65e9a206ac5841de902c8e9d5aa5bfa1": { "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": "" } }, "34c3b3096b494be3b0441f833bc57af7": { "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_cecc969737b046ed82a5c5ba8b8fa181", "IPY_MODEL_fd8e80b770404b51a29a631da095120a", "IPY_MODEL_0aef160ca71c4800b32eb9f52df953a4" ], "layout": "IPY_MODEL_5d2e304e15a749269131d03a636a85e2" } }, "cecc969737b046ed82a5c5ba8b8fa181": { "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_92676af6da9b4bb797e98756db2adb2a", "placeholder": "​", "style": "IPY_MODEL_8ca815b2edfd465cad7e0de65660d01e", "value": "Downloading metadata: " } }, "fd8e80b770404b51a29a631da095120a": { "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_e5fb6d3f6e404ab1b89a56f4ca8f019a", "max": 799, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_fe070acea88245ebbfca7be8f857e077", "value": 799 } }, "0aef160ca71c4800b32eb9f52df953a4": { "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_f2ca716a41d74d33a0f44af746bea562", "placeholder": "​", "style": "IPY_MODEL_97a5b06cfb7b42b4a333ccd4ca35b74b", "value": " 1.66k/? [00:00<00:00, 36.3kB/s]" } }, "5d2e304e15a749269131d03a636a85e2": { "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 } }, "92676af6da9b4bb797e98756db2adb2a": { "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 } }, "8ca815b2edfd465cad7e0de65660d01e": { "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": "" } }, "e5fb6d3f6e404ab1b89a56f4ca8f019a": { "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 } }, "fe070acea88245ebbfca7be8f857e077": { "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": "" } }, "f2ca716a41d74d33a0f44af746bea562": { "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 } }, "97a5b06cfb7b42b4a333ccd4ca35b74b": { "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": "" } }, "ea7ee2c4084546d4b48eb4c0f1511450": { "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_eb37a52e2fcc4f5e9b3204484f32b96e", "IPY_MODEL_0ea6410becf44d348d37091993f79d4d", "IPY_MODEL_41c6c73d279c4745969a5747cf90bd61" ], "layout": "IPY_MODEL_29dd831441384c5d9f28b0eb8860c9f0" } }, "eb37a52e2fcc4f5e9b3204484f32b96e": { "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_c34ee39ee97247819342f5910494d58a", "placeholder": "​", "style": "IPY_MODEL_61a455f770244bcd979eccd59354dc90", "value": "Downloading data: 100%" } }, "0ea6410becf44d348d37091993f79d4d": { "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_477beb4d3f4345458a58c847e8dae72f", "max": 170498071, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_f4060c0ab2054954a4b073beaa59ad61", "value": 170498071 } }, "41c6c73d279c4745969a5747cf90bd61": { "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_bca5cce0a53445359e420e132c1ea9c2", "placeholder": "​", "style": "IPY_MODEL_a5e54589d2274b5b88c74bc9d7ee94c7", "value": " 170M/170M [00:05<00:00, 34.4MB/s]" } }, "29dd831441384c5d9f28b0eb8860c9f0": { "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 } }, "c34ee39ee97247819342f5910494d58a": { "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 } }, "61a455f770244bcd979eccd59354dc90": { "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": "" } }, "477beb4d3f4345458a58c847e8dae72f": { "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 } }, "f4060c0ab2054954a4b073beaa59ad61": { "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": "" } }, "bca5cce0a53445359e420e132c1ea9c2": { "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 } }, "a5e54589d2274b5b88c74bc9d7ee94c7": { "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": "" } }, "9f0ee9bb132e4a9ba401abb1426ec671": { "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_ffa5947410644934a101b47d64c3471b", "IPY_MODEL_9d08c87360ee4bfbac5ff8c9f7ca0581", "IPY_MODEL_a56b3cc91c4349d09b7b9ea9b35a19b5" ], "layout": "IPY_MODEL_6e32389eefa34021ae39fa85211e2bbf" } }, "ffa5947410644934a101b47d64c3471b": { "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_0e18b90a08ed4a8c93377e3c382735c7", "placeholder": "​", "style": "IPY_MODEL_fb3a154fb0034f28ba317ba13fd2085e", "value": "Generating train split: 100%" } }, "9d08c87360ee4bfbac5ff8c9f7ca0581": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_4e9482a01e8b4a5ab0ba77427249eb23", "max": 50000, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_cfbcb4d841514e1aa9a3fe65258d5286", "value": 50000 } }, "a56b3cc91c4349d09b7b9ea9b35a19b5": { "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_2fac438833e5472183f7ad16d5c4efea", "placeholder": "​", "style": "IPY_MODEL_adf411a45f2a4ece9ab716e3a1ba6525", "value": " 49862/50000 [00:24<00:00, 2280.94 examples/s]" } }, "6e32389eefa34021ae39fa85211e2bbf": { "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 } }, "0e18b90a08ed4a8c93377e3c382735c7": { "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 } }, "fb3a154fb0034f28ba317ba13fd2085e": { "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": "" } }, "4e9482a01e8b4a5ab0ba77427249eb23": { "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 } }, "cfbcb4d841514e1aa9a3fe65258d5286": { "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": "" } }, "2fac438833e5472183f7ad16d5c4efea": { "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 } }, "adf411a45f2a4ece9ab716e3a1ba6525": { "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": "" } }, "aa3a5ac198f943a4be8f07d36918bb4c": { "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_c026cf00e28c4100833ffb5331e6454a", "IPY_MODEL_ab6d8bb53a8b4236823c31935361931d", "IPY_MODEL_6c2e68d8839249729005def9b7807473" ], "layout": "IPY_MODEL_c43055d77e484aac90548520027a81e8" } }, "c026cf00e28c4100833ffb5331e6454a": { "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_934195e3f44e4ab296681045e1b1e7e0", "placeholder": "​", "style": "IPY_MODEL_9a11c262fafe4e529ef282225a994be9", "value": "Generating test split: 98%" } }, "ab6d8bb53a8b4236823c31935361931d": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_26b3d2276d7446e6b8b7043a305aae51", "max": 10000, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_88297a0129414aa5b0eb33e746dee234", "value": 10000 } }, "6c2e68d8839249729005def9b7807473": { "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_4f1e1bef9fe8499ebdb5cf14a1b1a86c", "placeholder": "​", "style": "IPY_MODEL_ff75daa30025490e8d7d92e7bbf0ed82", "value": " 9830/10000 [00:05<00:00, 2189.56 examples/s]" } }, "c43055d77e484aac90548520027a81e8": { "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 } }, "934195e3f44e4ab296681045e1b1e7e0": { "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 } }, "9a11c262fafe4e529ef282225a994be9": { "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": "" } }, "26b3d2276d7446e6b8b7043a305aae51": { "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 } }, "88297a0129414aa5b0eb33e746dee234": { "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": "" } }, "4f1e1bef9fe8499ebdb5cf14a1b1a86c": { "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 } }, "ff75daa30025490e8d7d92e7bbf0ed82": { "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": "" } }, "b13542de3ab044368736234b31006bd9": { "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_c3f5b3f8cfe4450cb1a01d7d1f680186", "IPY_MODEL_b1133d936a33485fa5af9101efb47414", "IPY_MODEL_b264c077e8494d7582f50745ea89ed7c" ], "layout": "IPY_MODEL_a551cf5ed8804b3da875846a270299f7" } }, "c3f5b3f8cfe4450cb1a01d7d1f680186": { "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_74d27a4c14694a71b8190c8c61c06bb5", "placeholder": "​", "style": "IPY_MODEL_ce3b121a80ca4d879cb35b10af824e33", "value": "100%" } }, "b1133d936a33485fa5af9101efb47414": { "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_9aa5dbaf58c14a03be4c808c7c78d07b", "max": 2, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_377575dc2419421eb26560d064e366ab", "value": 2 } }, "b264c077e8494d7582f50745ea89ed7c": { "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_c03f15ac0a5147a08d766fad341743c2", "placeholder": "​", "style": "IPY_MODEL_389adbd4a875441dab494f6bc8c9b254", "value": " 2/2 [00:00<00:00, 33.89it/s]" } }, "a551cf5ed8804b3da875846a270299f7": { "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 } }, "74d27a4c14694a71b8190c8c61c06bb5": { "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 } }, "ce3b121a80ca4d879cb35b10af824e33": { "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": "" } }, "9aa5dbaf58c14a03be4c808c7c78d07b": { "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 } }, "377575dc2419421eb26560d064e366ab": { "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": "" } }, "c03f15ac0a5147a08d766fad341743c2": { "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 } }, "389adbd4a875441dab494f6bc8c9b254": { "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": "" } }, "b2c14218b49d403fa27b3fc646e34b39": { "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_ac56efa452b5447d8397dfba81c3d3ae", "IPY_MODEL_f2f0df0bfb7e44ff9eb7057a8b6f135a", "IPY_MODEL_d69044a1c36047cfb3f26a0bf7fbc018" ], "layout": "IPY_MODEL_ce7096f09e2a4f32aab1402083a16c84" } }, "ac56efa452b5447d8397dfba81c3d3ae": { "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_e3eae810dffc4ab8bbf16b701f10bb84", "placeholder": "​", "style": "IPY_MODEL_bb0ee7c1e3b44ff58e883d6cc5103e6e", "value": "Downloading: 100%" } }, "f2f0df0bfb7e44ff9eb7057a8b6f135a": { "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_869831b2b5594231898ff59c39c72178", "max": 28, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_ddbada048f804daa9c844d95a9d335b0", "value": 28 } }, "d69044a1c36047cfb3f26a0bf7fbc018": { "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_0afecdd73c3047cb8dbddc7bbf193d16", "placeholder": "​", "style": "IPY_MODEL_1ac4e599b1e143aaa003599db9b3280a", "value": " 28.0/28.0 [00:00<00:00, 328B/s]" } }, "ce7096f09e2a4f32aab1402083a16c84": { "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 } }, "e3eae810dffc4ab8bbf16b701f10bb84": { "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 } }, "bb0ee7c1e3b44ff58e883d6cc5103e6e": { "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": "" } }, "869831b2b5594231898ff59c39c72178": { "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 } }, "ddbada048f804daa9c844d95a9d335b0": { "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": "" } }, "0afecdd73c3047cb8dbddc7bbf193d16": { "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 } }, "1ac4e599b1e143aaa003599db9b3280a": { "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": "" } }, "4ebcabc2d80d451d8546450d26e7ffe8": { "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_64b1dbf94f00419da8b450c8c89cd3b0", "IPY_MODEL_c522510513014a369e716467b49e6b3d", "IPY_MODEL_957323e780c64ee2bba67f7c95ba109b" ], "layout": "IPY_MODEL_0c7505d768154d41ba07b6bf7346fd65" } }, "64b1dbf94f00419da8b450c8c89cd3b0": { "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_02a4da01c58040e1baef6bda7cf6a2c7", "placeholder": "​", "style": "IPY_MODEL_87b7343d93d54550ac1b4f3fc8ee658a", "value": "Downloading: 100%" } }, "c522510513014a369e716467b49e6b3d": { "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_44b33542cd9c488182ed100a8cd3c1e3", "max": 570, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_1e20d94186574dad9c7ac2ccc7bf8cd1", "value": 570 } }, "957323e780c64ee2bba67f7c95ba109b": { "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_c37e3e21bd4b45ee905ab3550c5c6af6", "placeholder": "​", "style": "IPY_MODEL_6621b391fea94afea66a649b98cd5e9e", "value": " 570/570 [00:00<00:00, 6.53kB/s]" } }, "0c7505d768154d41ba07b6bf7346fd65": { "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 } }, "02a4da01c58040e1baef6bda7cf6a2c7": { "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 } }, "87b7343d93d54550ac1b4f3fc8ee658a": { "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": "" } }, "44b33542cd9c488182ed100a8cd3c1e3": { "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 } }, "1e20d94186574dad9c7ac2ccc7bf8cd1": { "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": "" } }, "c37e3e21bd4b45ee905ab3550c5c6af6": { "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 } }, "6621b391fea94afea66a649b98cd5e9e": { "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": "" } }, "d36c5a8fdfb548abac094d65390d8756": { "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_cf71b72d93ea4d869ebddcc0566f77be", "IPY_MODEL_a71493a3a87943f48e4ba53f8dae59d7", "IPY_MODEL_498b782ae32046aaa266111197982daa" ], "layout": "IPY_MODEL_872272c754474825a9c1a0e67b13fa56" } }, "cf71b72d93ea4d869ebddcc0566f77be": { "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_cd3ecaf0ce8d4136a12fa327bbf8d8d1", "placeholder": "​", "style": "IPY_MODEL_57f93d10d6b54c888eeeb396770c41dd", "value": "Downloading: 100%" } }, "a71493a3a87943f48e4ba53f8dae59d7": { "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_e0e5cc1be5cf486bba24cc9ceb2f0188", "max": 231508, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_2e09ce096c2f4dfaacdaaae930231ffd", "value": 231508 } }, "498b782ae32046aaa266111197982daa": { "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_f85be5d59b934bfc8f93cbbc7a68520c", "placeholder": "​", "style": "IPY_MODEL_6f49902389f2411eb8061028d41bad9d", "value": " 226k/226k [00:00<00:00, 935kB/s]" } }, "872272c754474825a9c1a0e67b13fa56": { "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 } }, "cd3ecaf0ce8d4136a12fa327bbf8d8d1": { "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 } }, "57f93d10d6b54c888eeeb396770c41dd": { "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": "" } }, "e0e5cc1be5cf486bba24cc9ceb2f0188": { "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 } }, "2e09ce096c2f4dfaacdaaae930231ffd": { "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": "" } }, "f85be5d59b934bfc8f93cbbc7a68520c": { "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 } }, "6f49902389f2411eb8061028d41bad9d": { "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": "" } }, "60ca5f0e5991493b9bd29a2b45bada25": { "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_8af0b85c70684e8dbdb648509ac2be91", "IPY_MODEL_b650eefa06be43b0b6740ea328322bf8", "IPY_MODEL_47a1add38349418baca8966f63a8fe34" ], "layout": "IPY_MODEL_a0936566828f44f0a63e741dcc440f0f" } }, "8af0b85c70684e8dbdb648509ac2be91": { "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_be2bd16e3c4649a7bb39588caf5373b9", "placeholder": "​", "style": "IPY_MODEL_5ad018ff7783452a9312daed9245f973", "value": "Downloading: 100%" } }, "b650eefa06be43b0b6740ea328322bf8": { "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_da6ac73049404a2bbbc2156960d4223a", "max": 466062, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_d3543f3da80d408b9be514fc45e5d760", "value": 466062 } }, "47a1add38349418baca8966f63a8fe34": { "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_69b71060cd804f9daea8ee688bf3d37f", "placeholder": "​", "style": "IPY_MODEL_77b832bee6b2497aa03299b48fd26692", "value": " 455k/455k [00:00<00:00, 1.70MB/s]" } }, "a0936566828f44f0a63e741dcc440f0f": { "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 } }, "be2bd16e3c4649a7bb39588caf5373b9": { "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 } }, "5ad018ff7783452a9312daed9245f973": { "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": "" } }, "da6ac73049404a2bbbc2156960d4223a": { "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 } }, "d3543f3da80d408b9be514fc45e5d760": { "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": "" } }, "69b71060cd804f9daea8ee688bf3d37f": { "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 } }, "77b832bee6b2497aa03299b48fd26692": { "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": "" } } } }, "accelerator": "GPU" }, "cells": [ { "cell_type": "markdown", "metadata": { "id": "eBpjBBZc6IvA" }, "source": [ "# Fatima Fellowship Quick Coding Challenge (Pick 1)\n", "\n", "Thank you for applying to the Fatima Fellowship. To help us select the Fellows and assess your ability to do machine learning research, we are asking that you complete a short coding challenge. Please pick **1 of these 5** coding challenges, whichever is most aligned with your interests. \n", "\n", "**Due date: 1 week**\n", "\n", "**How to submit**: Please make a copy of this colab notebook, add your code and results, and submit your colab notebook to the submission link below. If you have never used a colab notebook, [check out this video](https://www.youtube.com/watch?v=i-HnvsehuSw).\n", "\n", "**Submission link**: https://airtable.com/shrXy3QKSsO2yALd3" ] }, { "cell_type": "markdown", "metadata": { "id": "braBzmRpMe7_" }, "source": [ "# 1. Deep Learning for Vision" ] }, { "cell_type": "markdown", "metadata": { "id": "1IWw-NZf5WfF" }, "source": [ "**Upside down detector**: Train a model to detect if images are upside down\n", "\n", "* Pick a dataset of natural images (we suggest looking at datasets on the [Hugging Face Hub](https://huggingface.co/datasets?task_categories=task_categories:image-classification&sort=downloads))\n", "* Synthetically turn some of images upside down. Create a training and test set.\n", "* Build a neural network (using Tensorflow, PyTorch, or any framework you like)\n", "* Train it to classify image orientation until a reasonable accuracy is reached\n", "* [Upload the the model to the Hugging Face Hub](https://huggingface.co/docs/hub/adding-a-model), and add a link to your model below.\n", "* Look at some of the images that were classified incorrectly. Please explain what you might do to improve your model's performance on these images in the future (you do not need to impelement these suggestions)\n", "\n", "**Submission instructions**: Please write your code below and include some examples of images that were classified" ] }, { "cell_type": "code", "source": [ "### WRITE YOUR CODE TO TRAIN THE MODEL HERE" ], "metadata": { "id": "K2GJaYBpw91T" }, "execution_count": 1, "outputs": [] }, { "cell_type": "code", "source": [ "from collections import defaultdict\n", "import copy\n", "import random\n", "import os\n", "import shutil\n", "from urllib.request import urlretrieve\n", "import albumentations as A\n", "import cv2\n", "import matplotlib.pyplot as plt\n", "from tqdm import tqdm\n", "import torch\n", "import torch.backends.cudnn as cudnn\n", "import torch.nn as nn\n", "import torch.optim\n", "from torch.utils.data import Dataset, DataLoader\n", "import torchvision.models as models\n", "from torchvision import transforms\n" ], "metadata": { "id": "P5oA_SzcYA5c" }, "execution_count": 2, "outputs": [] }, { "cell_type": "code", "source": [ "from albumentations.pytorch import ToTensor" ], "metadata": { "id": "NUH7_r5ZYA28" }, "execution_count": 3, "outputs": [] }, { "cell_type": "code", "source": [ "import ssl\n", "ssl._create_default_https_context = ssl._create_unverified_context\n", "cudnn.benchmark = True" ], "metadata": { "id": "saV2RgukYA0H" }, "execution_count": 4, "outputs": [] }, { "cell_type": "code", "source": [ "from google.colab import drive\n", "drive.mount('/content/drive')" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "J3I7LA2eYAxq", "outputId": "3e5cf4ec-e149-4a2c-8e57-f8d9ebc962fa" }, "execution_count": 5, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Mounted at /content/drive\n" ] } ] }, { "cell_type": "code", "source": [ "cd /content/drive/MyDrive/upside_down" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "M90DNqikYAu1", "outputId": "9f350f97-89b8-4317-c3e9-d0004be5b003" }, "execution_count": 6, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "/content/drive/MyDrive/upside_down\n" ] } ] }, { "cell_type": "code", "source": [ "!pip install datasets" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "id": "F1J7dK7SYArz", "outputId": "0a818f9c-a001-4904-a3ab-c8436e435756" }, "execution_count": 7, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Collecting datasets\n", " Downloading datasets-2.1.0-py3-none-any.whl (325 kB)\n", "\u001b[K |████████████████████████████████| 325 kB 5.3 MB/s \n", "\u001b[?25hRequirement already satisfied: pyarrow>=5.0.0 in /usr/local/lib/python3.7/dist-packages (from datasets) (6.0.1)\n", "Collecting xxhash\n", " Downloading xxhash-3.0.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (212 kB)\n", "\u001b[K |████████████████████████████████| 212 kB 45.4 MB/s \n", "\u001b[?25hRequirement already satisfied: tqdm>=4.62.1 in /usr/local/lib/python3.7/dist-packages (from datasets) (4.64.0)\n", "Collecting huggingface-hub<1.0.0,>=0.1.0\n", " Downloading huggingface_hub-0.5.1-py3-none-any.whl (77 kB)\n", "\u001b[K |████████████████████████████████| 77 kB 6.6 MB/s \n", "\u001b[?25hRequirement already satisfied: multiprocess in /usr/local/lib/python3.7/dist-packages (from datasets) (0.70.12.2)\n", "Collecting aiohttp\n", " Downloading aiohttp-3.8.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (1.1 MB)\n", "\u001b[K |████████████████████████████████| 1.1 MB 40.0 MB/s \n", "\u001b[?25hRequirement already satisfied: dill in /usr/local/lib/python3.7/dist-packages (from datasets) (0.3.4)\n", "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.7/dist-packages (from datasets) (1.21.6)\n", "Collecting responses<0.19\n", " Downloading responses-0.18.0-py3-none-any.whl (38 kB)\n", "Requirement already satisfied: requests>=2.19.0 in /usr/local/lib/python3.7/dist-packages (from datasets) (2.23.0)\n", "Requirement already satisfied: pandas in /usr/local/lib/python3.7/dist-packages (from datasets) (1.3.5)\n", "Requirement already satisfied: packaging in /usr/local/lib/python3.7/dist-packages (from datasets) (21.3)\n", "Collecting fsspec[http]>=2021.05.0\n", " Downloading fsspec-2022.3.0-py3-none-any.whl (136 kB)\n", "\u001b[K |████████████████████████████████| 136 kB 45.8 MB/s \n", "\u001b[?25hRequirement already satisfied: importlib-metadata in /usr/local/lib/python3.7/dist-packages (from datasets) (4.11.3)\n", "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.7/dist-packages (from huggingface-hub<1.0.0,>=0.1.0->datasets) (4.2.0)\n", "Requirement already satisfied: filelock in /usr/local/lib/python3.7/dist-packages (from huggingface-hub<1.0.0,>=0.1.0->datasets) (3.6.0)\n", "Requirement already satisfied: pyyaml in /usr/local/lib/python3.7/dist-packages (from huggingface-hub<1.0.0,>=0.1.0->datasets) (3.13)\n", "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /usr/local/lib/python3.7/dist-packages (from packaging->datasets) (3.0.8)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests>=2.19.0->datasets) (2021.10.8)\n", "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests>=2.19.0->datasets) (2.10)\n", "Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests>=2.19.0->datasets) (3.0.4)\n", "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests>=2.19.0->datasets) (1.24.3)\n", "Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1\n", " Downloading urllib3-1.25.11-py2.py3-none-any.whl (127 kB)\n", "\u001b[K |████████████████████████████████| 127 kB 49.4 MB/s \n", "\u001b[?25hRequirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.7/dist-packages (from aiohttp->datasets) (21.4.0)\n", "Collecting multidict<7.0,>=4.5\n", " Downloading multidict-6.0.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (94 kB)\n", "\u001b[K |████████████████████████████████| 94 kB 3.6 MB/s \n", "\u001b[?25hCollecting asynctest==0.13.0\n", " Downloading asynctest-0.13.0-py3-none-any.whl (26 kB)\n", "Collecting aiosignal>=1.1.2\n", " Downloading aiosignal-1.2.0-py3-none-any.whl (8.2 kB)\n", "Collecting yarl<2.0,>=1.0\n", " Downloading yarl-1.7.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (271 kB)\n", "\u001b[K |████████████████████████████████| 271 kB 49.0 MB/s \n", "\u001b[?25hRequirement already satisfied: charset-normalizer<3.0,>=2.0 in /usr/local/lib/python3.7/dist-packages (from aiohttp->datasets) (2.0.12)\n", "Collecting async-timeout<5.0,>=4.0.0a3\n", " Downloading async_timeout-4.0.2-py3-none-any.whl (5.8 kB)\n", "Collecting frozenlist>=1.1.1\n", " Downloading frozenlist-1.3.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (144 kB)\n", "\u001b[K |████████████████████████████████| 144 kB 51.2 MB/s \n", "\u001b[?25hRequirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.7/dist-packages (from importlib-metadata->datasets) (3.8.0)\n", "Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.7/dist-packages (from pandas->datasets) (2.8.2)\n", "Requirement already satisfied: pytz>=2017.3 in /usr/local/lib/python3.7/dist-packages (from pandas->datasets) (2022.1)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.7.3->pandas->datasets) (1.15.0)\n", "Installing collected packages: multidict, frozenlist, yarl, urllib3, asynctest, async-timeout, aiosignal, fsspec, aiohttp, xxhash, responses, huggingface-hub, datasets\n", " Attempting uninstall: urllib3\n", " Found existing installation: urllib3 1.24.3\n", " Uninstalling urllib3-1.24.3:\n", " Successfully uninstalled urllib3-1.24.3\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", "Successfully installed aiohttp-3.8.1 aiosignal-1.2.0 async-timeout-4.0.2 asynctest-0.13.0 datasets-2.1.0 frozenlist-1.3.0 fsspec-2022.3.0 huggingface-hub-0.5.1 multidict-6.0.2 responses-0.18.0 urllib3-1.25.11 xxhash-3.0.0 yarl-1.7.2\n" ] }, { "output_type": "display_data", "data": { "application/vnd.colab-display-data+json": { "pip_warning": { "packages": [ "urllib3" ] } } }, "metadata": {} } ] }, { "cell_type": "code", "source": [ "from datasets import load_dataset\n", "dataset = load_dataset(\"cifar100\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 200, "referenced_widgets": [ "7953ba0237ae43dda41daa400574c270", "318b0fbf4deb4584b5a747b632775bcc", "2c5e7925205b468f9435598e590a6e36", "4328463e1867443a97ea499a17cf6e62", "992ab320e4734c9dae9df34b9d94c92a", "f0fbc98d89864c2cabab92af2337454a", "548e770f21b6495a8a281ca18705d58a", "7f546aa9c0de44e08ef27753a12bfe28", "d801ce061849465db4fb2f0e854a44c4", "4dccdbbe920d4e76a54c36b6376e7787", "839381f8c2524423908e36c1d0714715", "656b2a5c032b4042be5982b640f996eb", "f49c9e73524e4120bb701e90f31c86c1", "0e345e25b48641e19f26dcda5b5256f4", "70979b6c8958431d9388456e2eec39e7", "49d5c51c006f4c0f9e6d9a7eab0446b6", "1549c8e2f3a44ba48dc0915d661c1453", "342a1d5148784d54852744e0e77ef48e", "4aab5795dea04b8c88879cda7ee59657", "4e3276eebdc347f497ef3c3e6257a25b", "afb03f39be4a4e8ea3b3aecce9e3f25b", "4dc4f440f1e148dfb79d78e044746c0c", "045bea818647461f87407344231d72dc", "af9af725e4514d2d90db3b1aab7d8386", "f1b625def4854c5e9a69ed87a0220446", "19a2d612be814ed488cd12233d4f92c5", "9b6b0126b568475184a3c10147f4cb58", "70e93f0765f144fabd4c766dbaeb563c", "f671913f390847069aec1420558d3c08", "72ce87cc7c2e4190aa88300a62c16af1", "1d3fb8265a5c4516b70cde98ea9eed31", "9ba83edcee4346188c8d7a01aef71d7c", "ba787b10f1d44217ba6ee0f8408a0f94", "26490ec2dea04fbbb859d2d42d079731", "8166d67ec5514720bbb1f9e623e3973a", "342188d6d6734bfcbe17f34660912538", "7706089a5d094f2cae280fe3b244ea98", "02be2b482a084ad0be7718a16f19587b", "01b59a03cf2147f7983798c0794a1c1d", "cabcdc3660c849d59424e6e06005a58e", "e0bf7d8202644574815497b2feefa628", "dc47459febcd495fbe11e888452c1c3f", "c52b20d48be74a02833904b43767fde1", "ee88c6a94e6b49798617030f3123a2d4", "a713b5fa032f4505957a35c1462251e8", "2c6190b7bfed4c15a1da558bc473d9ee", "7c08521d01954fd4b6106caf228a662f", "88a7297355d443669acc551f4d57e7fb", "c000451bc15f45d3b4b0de6c943c5b02", "2bf86ca98b324e7da9b68ea8c0455f17", "09b1e545dbc546f28a5a16be25a31c48", "67f933b6eeea4645a669a64a59d94a18", "af7c51dcb705437e950d16d6cace2ac7", "8c432142499e45e7b269f07aa4ec7cec", "0521008439b841c5aae92dbe2f2b7933", "352127ed1d314993b4ee9f7a29cee257", "d35d5593867346b199c68e1d7773a6a2", "4cdb26fc310b4ec7b1e3f3caa9e8e29f", "6905872108544374a908dc4c58dbedad", "c2b3edbc414d4cd088fd4837067d7be8", "7d4ded3c7ce3466497b09d6eda5e6c55", "da7f2672ef0046298aa9c4dc2a9be14d", "cf01f80361ec48fbaf0987de3dc8ec0b", "977d93a9c15b4002a59d03871b6c5cca", "74563ef02a6e4f4d9bef8a4b6430d7dd", "ca3f3030e1af4f55a9ba37aa7012e592" ] }, "id": "sJMwRd8sYAo2", "outputId": "ff300c8e-7bae-41c7-c5e9-9fd01a81aefd" }, "execution_count": 8, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "Downloading builder script: 0%| | 0.00/2.19k [00:00= 0.5\n", " target = target == 1.0\n", " return torch.true_divide((target == output).sum(dim=0), output.size(0)).item()" ], "metadata": { "id": "SaFJdr7nkKNE" }, "execution_count": 25, "outputs": [] }, { "cell_type": "code", "source": [ "class MetricMonitor:\n", " def __init__(self, float_precision=3):\n", " self.float_precision = float_precision\n", " self.reset()\n", "\n", " def reset(self):\n", " self.metrics = defaultdict(lambda: {\"val\": 0, \"count\": 0, \"avg\": 0})\n", "\n", " def update(self, metric_name, val):\n", " metric = self.metrics[metric_name]\n", "\n", " metric[\"val\"] += val\n", " metric[\"count\"] += 1\n", " metric[\"avg\"] = metric[\"val\"] / metric[\"count\"]\n", "\n", " def __str__(self):\n", " return \" | \".join(\n", " [\n", " \"{metric_name}: {avg:.{float_precision}f}\".format(\n", " metric_name=metric_name, avg=metric[\"avg\"], float_precision=self.float_precision\n", " )\n", " for (metric_name, metric) in self.metrics.items()\n", " ]\n", " )\n" ], "metadata": { "id": "2AXnI6SKkKGi" }, "execution_count": 26, "outputs": [] }, { "cell_type": "code", "source": [ "model = ready_model.to(params[\"device\"])\n", "criterion = nn.BCEWithLogitsLoss().to(params[\"device\"])\n", "optimizer = torch.optim.Adam(model.parameters(), lr=params[\"lr\"])\n" ], "metadata": { "id": "TC47PP4rkKBP" }, "execution_count": 27, "outputs": [] }, { "cell_type": "markdown", "source": [ "### Training pipeline" ], "metadata": { "id": "QooPA0eAmvKK" } }, { "cell_type": "code", "source": [ "def train(train_loader, model, criterion, optimizer, epoch, params):\n", " metric_monitor = MetricMonitor()\n", " model.train()\n", " stream = tqdm(train_loader)\n", " \n", " for i, (images, target) in enumerate(stream, start=1):\n", " images = images.to(params[\"device\"], non_blocking=True)\n", " target = target.to(params[\"device\"], non_blocking=True).float().view(-1, 1)\n", " output = model(images)\n", " loss = criterion(output, target)\n", " accuracy = calculate_accuracy(output, target)\n", " metric_monitor.update(\"Loss\", loss.item())\n", " # train_losses.append(loss.item())\n", " metric_monitor.update(\"Accuracy\", accuracy)\n", " # train_acc.append(accuracy)\n", " optimizer.zero_grad()\n", " loss.backward()\n", " optimizer.step()\n", " stream.set_description(\n", " \"Epoch: {epoch}. Train. {metric_monitor}\".format(epoch=epoch, metric_monitor=metric_monitor)\n", " )\n", " return metric_monitor.metrics['Loss']['avg'], metric_monitor.metrics['Accuracy']['avg'] #loss.item(), accuracy\n" ], "metadata": { "id": "KgxZJbiymqqo" }, "execution_count": 28, "outputs": [] }, { "cell_type": "markdown", "source": [ "### Validation" ], "metadata": { "id": "b_RzAqtim5JN" } }, { "cell_type": "code", "source": [ "def validate(val_loader, model, criterion, epoch, params):\n", " metric_monitor = MetricMonitor()\n", " model.eval()\n", " stream = tqdm(val_loader)\n", " with torch.no_grad():\n", " for i, (images, target) in enumerate(stream, start=1):\n", " images = images.to(params[\"device\"], non_blocking=True)\n", " target = target.to(params[\"device\"], non_blocking=True).float().view(-1, 1)\n", " output = model(images)\n", " loss = criterion(output, target)\n", " accuracy = calculate_accuracy(output, target)\n", "\n", " metric_monitor.update(\"Loss\", loss.item())\n", " # val_losses.append(loss.item())\n", " metric_monitor.update(\"Accuracy\", accuracy)\n", " # val_acc.append(accuracy)\n", " stream.set_description(\n", " \"Epoch: {epoch}. Validation. {metric_monitor}\".format(epoch=epoch, metric_monitor=metric_monitor)\n", " )\n", " return metric_monitor.metrics['Loss']['avg'], metric_monitor.metrics['Accuracy']['avg'] #loss.item(), accuracy\n", "\n" ], "metadata": { "id": "mmZESgEzmqlR" }, "execution_count": 29, "outputs": [] }, { "cell_type": "code", "source": [ "def model_save(epoch, model, optimizer, PATH):\n", " torch.save({\n", " 'epoch': epoch,\n", " 'model_state_dict': model.state_dict(),\n", " 'optimizer_state_dict': optimizer.state_dict()\n", " }, PATH)\n", "\n" ], "metadata": { "id": "fLJHt_bFmqgE" }, "execution_count": 33, "outputs": [] }, { "cell_type": "code", "source": [ "" ], "metadata": { "id": "E-rJN5Vyqw6g" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "### Training Loop" ], "metadata": { "id": "6kbDitYsnL9d" } }, { "cell_type": "code", "source": [ "import matplotlib.pyplot as plt" ], "metadata": { "id": "IEQEoZirmqSc" }, "execution_count": 31, "outputs": [] }, { "cell_type": "code", "source": [ "train_losses = []\n", "train_acc = []\n", "\n", "val_losses = []\n", "val_acc = []\n", "\n", "prev_accuracy = 0\n", "for epoch in range(1, params[\"epochs\"] + 1):\n", " train_loss, train_accuracy = train(train_dataloader, model, criterion, optimizer, epoch, params)\n", " val_loss, val_accuracy = validate(test_dataloader, model, criterion, epoch, params)\n", " # print(\"##########\", train_loss, val_loss)\n", " # print(\"!!!!!!!!!\", train_accuracy, val_accuracy)\n", "\n", " # if val_accuracy > prev_accuracy:\n", " model_save(epoch, model, optimizer, PATH = f\"/content/drive/MyDrive/upside_down/my_model_epoch_{epoch}.pth\")\n", "\n", " prev_accuracy = val_accuracy\n", "\n", " train_losses.append(train_loss)\n", " train_acc.append(train_accuracy)\n", " val_losses.append(val_loss)\n", " val_acc.append(val_accuracy)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "id": "GhRc4PAxkJ7M", "outputId": "f31118c5-0d28-47d4-87d0-829de45b42d3" }, "execution_count": 34, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "Epoch: 1. Train. Loss: 0.428 | Accuracy: 0.791: 100%|██████████| 391/391 [00:57<00:00, 6.85it/s]\n", "Epoch: 1. Validation. Loss: 0.426 | Accuracy: 0.796: 100%|██████████| 79/79 [00:09<00:00, 7.98it/s]\n", "Epoch: 2. Train. Loss: 0.371 | Accuracy: 0.825: 100%|██████████| 391/391 [00:55<00:00, 7.02it/s]\n", "Epoch: 2. Validation. Loss: 0.426 | Accuracy: 0.799: 100%|██████████| 79/79 [00:09<00:00, 8.00it/s]\n", "Epoch: 3. Train. Loss: 0.321 | Accuracy: 0.854: 100%|██████████| 391/391 [00:57<00:00, 6.80it/s]\n", "Epoch: 3. Validation. Loss: 0.430 | Accuracy: 0.804: 100%|██████████| 79/79 [00:09<00:00, 8.10it/s]\n", "Epoch: 4. Train. Loss: 0.277 | Accuracy: 0.878: 100%|██████████| 391/391 [00:55<00:00, 7.08it/s]\n", "Epoch: 4. Validation. Loss: 0.447 | Accuracy: 0.801: 100%|██████████| 79/79 [00:09<00:00, 7.98it/s]\n", "Epoch: 5. Train. Loss: 0.243 | Accuracy: 0.895: 100%|██████████| 391/391 [00:58<00:00, 6.68it/s]\n", "Epoch: 5. Validation. Loss: 0.443 | Accuracy: 0.813: 100%|██████████| 79/79 [00:09<00:00, 8.06it/s]\n", "Epoch: 6. Train. Loss: 0.204 | Accuracy: 0.915: 100%|██████████| 391/391 [00:56<00:00, 6.96it/s]\n", "Epoch: 6. Validation. Loss: 0.481 | Accuracy: 0.812: 100%|██████████| 79/79 [00:09<00:00, 8.11it/s]\n", "Epoch: 7. Train. Loss: 0.174 | Accuracy: 0.929: 100%|██████████| 391/391 [00:55<00:00, 7.06it/s]\n", "Epoch: 7. Validation. Loss: 0.530 | Accuracy: 0.810: 100%|██████████| 79/79 [00:09<00:00, 8.05it/s]\n", "Epoch: 8. Train. Loss: 0.148 | Accuracy: 0.941: 100%|██████████| 391/391 [00:55<00:00, 6.99it/s]\n", "Epoch: 8. Validation. Loss: 0.598 | Accuracy: 0.804: 100%|██████████| 79/79 [00:09<00:00, 8.08it/s]\n", "Epoch: 9. Train. Loss: 0.133 | Accuracy: 0.947: 100%|██████████| 391/391 [00:55<00:00, 7.05it/s]\n", "Epoch: 9. Validation. Loss: 0.577 | Accuracy: 0.805: 100%|██████████| 79/79 [00:09<00:00, 8.00it/s]\n", "Epoch: 10. Train. Loss: 0.113 | Accuracy: 0.956: 100%|██████████| 391/391 [00:55<00:00, 7.09it/s]\n", "Epoch: 10. Validation. Loss: 0.642 | Accuracy: 0.807: 100%|██████████| 79/79 [00:09<00:00, 8.23it/s]\n", "Epoch: 11. Train. Loss: 0.099 | Accuracy: 0.962: 100%|██████████| 391/391 [00:53<00:00, 7.25it/s]\n", "Epoch: 11. Validation. Loss: 0.633 | Accuracy: 0.812: 100%|██████████| 79/79 [00:09<00:00, 8.15it/s]\n", "Epoch: 12. Train. Loss: 0.092 | Accuracy: 0.964: 100%|██████████| 391/391 [00:53<00:00, 7.25it/s]\n", "Epoch: 12. Validation. Loss: 0.700 | Accuracy: 0.805: 100%|██████████| 79/79 [00:09<00:00, 8.27it/s]\n", "Epoch: 13. Train. Loss: 0.079 | Accuracy: 0.970: 100%|██████████| 391/391 [00:54<00:00, 7.19it/s]\n", "Epoch: 13. Validation. Loss: 0.729 | Accuracy: 0.812: 100%|██████████| 79/79 [00:09<00:00, 8.07it/s]\n", "Epoch: 14. Train. Loss: 0.074 | Accuracy: 0.971: 100%|██████████| 391/391 [00:54<00:00, 7.15it/s]\n", "Epoch: 14. Validation. Loss: 0.708 | Accuracy: 0.810: 100%|██████████| 79/79 [00:09<00:00, 8.16it/s]\n", "Epoch: 15. Train. Loss: 0.074 | Accuracy: 0.972: 100%|██████████| 391/391 [00:53<00:00, 7.25it/s]\n", "Epoch: 15. Validation. Loss: 0.709 | Accuracy: 0.814: 100%|██████████| 79/79 [00:09<00:00, 8.18it/s]\n", "Epoch: 16. Train. Loss: 0.062 | Accuracy: 0.976: 100%|██████████| 391/391 [00:58<00:00, 6.69it/s]\n", "Epoch: 16. Validation. Loss: 0.725 | Accuracy: 0.816: 100%|██████████| 79/79 [00:09<00:00, 8.31it/s]\n", "Epoch: 17. Train. Loss: 0.058 | Accuracy: 0.979: 100%|██████████| 391/391 [00:53<00:00, 7.30it/s]\n", "Epoch: 17. Validation. Loss: 0.792 | Accuracy: 0.814: 100%|██████████| 79/79 [00:09<00:00, 8.17it/s]\n", "Epoch: 18. Train. Loss: 0.060 | Accuracy: 0.978: 100%|██████████| 391/391 [00:53<00:00, 7.34it/s]\n", "Epoch: 18. Validation. Loss: 0.761 | Accuracy: 0.809: 100%|██████████| 79/79 [00:09<00:00, 8.37it/s]\n", "Epoch: 19. Train. Loss: 0.052 | Accuracy: 0.981: 100%|██████████| 391/391 [00:53<00:00, 7.29it/s]\n", "Epoch: 19. Validation. Loss: 0.807 | Accuracy: 0.813: 100%|██████████| 79/79 [00:09<00:00, 8.02it/s]\n", "Epoch: 20. Train. Loss: 0.051 | Accuracy: 0.981: 100%|██████████| 391/391 [00:54<00:00, 7.22it/s]\n", "Epoch: 20. Validation. Loss: 0.832 | Accuracy: 0.810: 100%|██████████| 79/79 [00:09<00:00, 8.20it/s]\n", "Epoch: 21. Train. Loss: 0.048 | Accuracy: 0.982: 100%|██████████| 391/391 [00:52<00:00, 7.38it/s]\n", "Epoch: 21. Validation. Loss: 0.801 | Accuracy: 0.817: 100%|██████████| 79/79 [00:09<00:00, 8.34it/s]\n", "Epoch: 22. Train. Loss: 0.049 | Accuracy: 0.982: 100%|██████████| 391/391 [00:52<00:00, 7.40it/s]\n", "Epoch: 22. Validation. Loss: 0.756 | Accuracy: 0.819: 100%|██████████| 79/79 [00:09<00:00, 8.36it/s]\n", "Epoch: 23. Train. Loss: 0.047 | Accuracy: 0.983: 35%|███▍ | 135/391 [00:18<00:35, 7.16it/s]\n" ] }, { "output_type": "error", "ename": "KeyboardInterrupt", "evalue": "ignored", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0mprev_accuracy\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mepoch\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"epochs\"\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 9\u001b[0;31m \u001b[0mtrain_loss\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtrain_accuracy\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtrain\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtrain_dataloader\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcriterion\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moptimizer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mepoch\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 10\u001b[0m \u001b[0mval_loss\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mval_accuracy\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvalidate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtest_dataloader\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcriterion\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mepoch\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 11\u001b[0m \u001b[0;31m# print(\"##########\", train_loss, val_loss)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m\u001b[0m in \u001b[0;36mtrain\u001b[0;34m(train_loader, model, criterion, optimizer, epoch, params)\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mstream\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtqdm\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtrain_loader\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mimages\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtarget\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstream\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstart\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 7\u001b[0m \u001b[0mimages\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mimages\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mparams\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"device\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnon_blocking\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0mtarget\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtarget\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mparams\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"device\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnon_blocking\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mview\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/tqdm/std.py\u001b[0m in \u001b[0;36m__iter__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1193\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1194\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1195\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mobj\u001b[0m \u001b[0;32min\u001b[0m \u001b[0miterable\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1196\u001b[0m \u001b[0;32myield\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1197\u001b[0m \u001b[0;31m# Update and possibly print the progressbar.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/torch/utils/data/dataloader.py\u001b[0m in \u001b[0;36m__next__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 528\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sampler_iter\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 529\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_reset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 530\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_next_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 531\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_num_yielded\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 532\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_dataset_kind\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0m_DatasetKind\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mIterable\u001b[0m \u001b[0;32mand\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/torch/utils/data/dataloader.py\u001b[0m in \u001b[0;36m_next_data\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 568\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_next_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 569\u001b[0m \u001b[0mindex\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_next_index\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# may raise StopIteration\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 570\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_dataset_fetcher\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfetch\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# may raise StopIteration\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 571\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_pin_memory\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 572\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_utils\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpin_memory\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpin_memory\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/torch/utils/data/_utils/fetch.py\u001b[0m in \u001b[0;36mfetch\u001b[0;34m(self, possibly_batched_index)\u001b[0m\n\u001b[1;32m 47\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mfetch\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpossibly_batched_index\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 48\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mauto_collation\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 49\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdataset\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0midx\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0midx\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mpossibly_batched_index\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 50\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 51\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdataset\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mpossibly_batched_index\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/torch/utils/data/_utils/fetch.py\u001b[0m in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 47\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mfetch\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpossibly_batched_index\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 48\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mauto_collation\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 49\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdataset\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0midx\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0midx\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mpossibly_batched_index\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 50\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 51\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdataset\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mpossibly_batched_index\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, idx)\u001b[0m\n\u001b[1;32m 28\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 29\u001b[0m \u001b[0mflipped_image\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mimage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtranspose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mImage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mFLIP_TOP_BOTTOM\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 30\u001b[0;31m \u001b[0mflipped_image\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtransform\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mflipped_image\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 31\u001b[0m \u001b[0mlabel\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtensor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlabel\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m#ToTensor()(label)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 32\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mflipped_image\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/torchvision/transforms/transforms.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, img)\u001b[0m\n\u001b[1;32m 93\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__call__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mimg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 94\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mt\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtransforms\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 95\u001b[0;31m \u001b[0mimg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mt\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mimg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 96\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mimg\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 97\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py\u001b[0m in \u001b[0;36m_call_impl\u001b[0;34m(self, *input, **kwargs)\u001b[0m\n\u001b[1;32m 1108\u001b[0m if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks\n\u001b[1;32m 1109\u001b[0m or _global_forward_hooks or _global_forward_pre_hooks):\n\u001b[0;32m-> 1110\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mforward_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1111\u001b[0m \u001b[0;31m# Do not call functions when jit is used\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1112\u001b[0m \u001b[0mfull_backward_hooks\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnon_full_backward_hooks\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/torchvision/transforms/transforms.py\u001b[0m in \u001b[0;36mforward\u001b[0;34m(self, tensor)\u001b[0m\n\u001b[1;32m 268\u001b[0m \u001b[0mTensor\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mNormalized\u001b[0m \u001b[0mTensor\u001b[0m \u001b[0mimage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 269\u001b[0m \"\"\"\n\u001b[0;32m--> 270\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mF\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnormalize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtensor\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmean\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstd\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minplace\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 271\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 272\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__repr__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/torchvision/transforms/functional.py\u001b[0m in \u001b[0;36mnormalize\u001b[0;34m(tensor, mean, std, inplace)\u001b[0m\n\u001b[1;32m 361\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mstd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mndim\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 362\u001b[0m \u001b[0mstd\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mview\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 363\u001b[0;31m \u001b[0mtensor\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msub_\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmean\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdiv_\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstd\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 364\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mtensor\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 365\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mKeyboardInterrupt\u001b[0m: " ] } ] }, { "cell_type": "markdown", "source": [ "### Training and validation Accurancy" ], "metadata": { "id": "Q24pptbon5M0" } }, { "cell_type": "code", "source": [ "############ Curve ############\n", "plt.figure(figsize=(10,5))\n", "plt.title(\"Training and Validation Loss\")\n", "plt.plot(val_losses,label=\"val\")\n", "plt.plot(train_losses,label=\"train\")\n", "plt.xlabel(\"iterations\")\n", "plt.ylabel(\"Loss\")\n", "plt.legend()\n", "plt.savefig('/content/drive/MyDrive/upside_down/images/train_and_val_loss_resnet18.jpg')\n", "plt.show()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 350 }, "id": "xvTkBDE9n45C", "outputId": "2e30bc8b-ef6b-4a01-b0b9-fbbd3f5e67b7" }, "execution_count": 35, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "code", "source": [ "" ], "metadata": { "id": "AROl5nvpwwcJ" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "plt.figure(figsize=(10,5))\n", "plt.title(\"Training and Validation Accuracy\")\n", "plt.plot(val_acc,label=\"val\")\n", "plt.plot(train_acc,label=\"train\")\n", "plt.xlabel(\"iterations\")\n", "plt.ylabel(\"Accuracy\")\n", "plt.legend()\n", "plt.savefig('/content/drive/MyDrive/upside_down/images/train_and_val_acc_resnet18.jpg')\n", "plt.show()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 350 }, "id": "apW1Y0LLn41G", "outputId": "4023dae8-66cd-4fce-d4a1-0a6c4ed0a1ab" }, "execution_count": 37, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "markdown", "source": [ "### Loading Model" ], "metadata": { "id": "syI6OL2zw3ch" } }, { "cell_type": "code", "source": [ "model_path = \"/content/drive/MyDrive/upside_down/my_model_epoch_20.pth\"" ], "metadata": { "id": "lsLL69Uh0M2Y" }, "execution_count": 42, "outputs": [] }, { "cell_type": "code", "source": [ "checkpoint = torch.load(model_path, map_location=params['device'])" ], "metadata": { "id": "MTP4WuS5n4pK" }, "execution_count": 43, "outputs": [] }, { "cell_type": "code", "source": [ "model.load_state_dict(checkpoint['model_state_dict'])\n", "optimizer.load_state_dict(checkpoint['optimizer_state_dict'])\n", "epoch = checkpoint['epoch']" ], "metadata": { "id": "OA446UAyxD2W" }, "execution_count": 44, "outputs": [] }, { "cell_type": "markdown", "source": [ "### Inference pipeline" ], "metadata": { "id": "Y1jOj9SExPBN" } }, { "cell_type": "code", "source": [ "dataset = load_dataset(\"cifar10\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 200, "referenced_widgets": [ "604275aff2df4677811b049e383cf8fb", "e5a7a6357dbf4798bc2d6bc61a05cfc5", "7655c490e29345218ff012871d8738a6", "7399a2cc885f4488b0355d45d62d3b40", "bcf466dc7bbb47d48e95582e9b573415", "f7e91661bdcd46bdab0bcced410fa77c", "ab80a3e2673d404da7550a897134e242", "136da7ed8054462aa0c389ab0ed47a70", "0c1d64e812e945188ab5f00884c43a60", "527e96b18ddc4b83b86c43dc75ac4d74", "65e9a206ac5841de902c8e9d5aa5bfa1", "34c3b3096b494be3b0441f833bc57af7", "cecc969737b046ed82a5c5ba8b8fa181", "fd8e80b770404b51a29a631da095120a", "0aef160ca71c4800b32eb9f52df953a4", "5d2e304e15a749269131d03a636a85e2", "92676af6da9b4bb797e98756db2adb2a", "8ca815b2edfd465cad7e0de65660d01e", "e5fb6d3f6e404ab1b89a56f4ca8f019a", "fe070acea88245ebbfca7be8f857e077", "f2ca716a41d74d33a0f44af746bea562", "97a5b06cfb7b42b4a333ccd4ca35b74b", "ea7ee2c4084546d4b48eb4c0f1511450", "eb37a52e2fcc4f5e9b3204484f32b96e", "0ea6410becf44d348d37091993f79d4d", "41c6c73d279c4745969a5747cf90bd61", "29dd831441384c5d9f28b0eb8860c9f0", "c34ee39ee97247819342f5910494d58a", "61a455f770244bcd979eccd59354dc90", "477beb4d3f4345458a58c847e8dae72f", "f4060c0ab2054954a4b073beaa59ad61", "bca5cce0a53445359e420e132c1ea9c2", "a5e54589d2274b5b88c74bc9d7ee94c7", "9f0ee9bb132e4a9ba401abb1426ec671", "ffa5947410644934a101b47d64c3471b", "9d08c87360ee4bfbac5ff8c9f7ca0581", "a56b3cc91c4349d09b7b9ea9b35a19b5", "6e32389eefa34021ae39fa85211e2bbf", "0e18b90a08ed4a8c93377e3c382735c7", "fb3a154fb0034f28ba317ba13fd2085e", "4e9482a01e8b4a5ab0ba77427249eb23", "cfbcb4d841514e1aa9a3fe65258d5286", "2fac438833e5472183f7ad16d5c4efea", "adf411a45f2a4ece9ab716e3a1ba6525", "aa3a5ac198f943a4be8f07d36918bb4c", "c026cf00e28c4100833ffb5331e6454a", "ab6d8bb53a8b4236823c31935361931d", "6c2e68d8839249729005def9b7807473", "c43055d77e484aac90548520027a81e8", "934195e3f44e4ab296681045e1b1e7e0", "9a11c262fafe4e529ef282225a994be9", "26b3d2276d7446e6b8b7043a305aae51", "88297a0129414aa5b0eb33e746dee234", "4f1e1bef9fe8499ebdb5cf14a1b1a86c", "ff75daa30025490e8d7d92e7bbf0ed82", "b13542de3ab044368736234b31006bd9", "c3f5b3f8cfe4450cb1a01d7d1f680186", "b1133d936a33485fa5af9101efb47414", "b264c077e8494d7582f50745ea89ed7c", "a551cf5ed8804b3da875846a270299f7", "74d27a4c14694a71b8190c8c61c06bb5", "ce3b121a80ca4d879cb35b10af824e33", "9aa5dbaf58c14a03be4c808c7c78d07b", "377575dc2419421eb26560d064e366ab", "c03f15ac0a5147a08d766fad341743c2", "389adbd4a875441dab494f6bc8c9b254" ] }, "id": "XYdBc9GFxDyo", "outputId": "68913f38-31c0-42ad-82cd-bd65fd1d9950" }, "execution_count": 45, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "Downloading builder script: 0%| | 0.00/1.55k [00:00= 0.5\n", " target = target == 1.0\n", " target = target.cpu()\n", " output = output.cpu()\n", " \n", " return torch.true_divide((target == output).sum(dim=0), output.size(0)).item(), f1_score(target, output), precision_score(target, output)" ], "metadata": { "id": "TGVTjw5nxjn1" }, "execution_count": 51, "outputs": [] }, { "cell_type": "code", "source": [ "def test(test_loader, model, criterion, epoch, params):\n", " metric_monitor = MetricMonitor()\n", " model.eval()\n", " stream = tqdm(test_loader)\n", " with torch.no_grad():\n", " for i, (images, target) in enumerate(stream, start=1):\n", " images = images.to(params[\"device\"], non_blocking=True)\n", " target = target.to(params[\"device\"], non_blocking=True).float().view(-1, 1)\n", " output = model(images)\n", " loss = criterion(output, target)\n", " accuracy = calculate_accuracy(output, target)\n", " accuracy, f1_score_var, precision = calculate_metrics(output, target)\n", " # print(accuracy, f1_score_var, precision)\n", " # break\n", " metric_monitor.update(\"Loss\", loss.item())\n", " metric_monitor.update(\"Accuracy\", accuracy)\n", " metric_monitor.update(\"F1-Score\", f1_score_var)\n", " metric_monitor.update(\"Precision-\", precision)\n", " stream.set_description(\n", " \"Epoch: {epoch}. Test. {metric_monitor}\".format(epoch=epoch, metric_monitor=metric_monitor)\n", " )\n", " return accuracy, f1_score\n" ], "metadata": { "id": "m3hKfYrdxZFI" }, "execution_count": 52, "outputs": [] }, { "cell_type": "code", "source": [ "test_accuracy, _ = test(inference_dataloader, model, criterion, epoch, params)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "9cJbYz6HxDqS", "outputId": "4b17ad71-5171-478c-97d6-c427641161bd" }, "execution_count": 54, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "Epoch: 20. Test. Loss: 0.841 | Accuracy: 0.814 | F1-Score: 0.812 | Precision-: 0.821: 100%|██████████| 391/391 [01:01<00:00, 6.40it/s]\n" ] } ] }, { "cell_type": "markdown", "source": [ "\n", "\n", "### Test Accuracy:\n", "\n", " - I have tested the inference dataset using 'cifar10' and it's working perfectly and got accuracy almost 82% using the highest validtion accuracy model name 'my_model_epoch_6.pth' where Dropout has been used with resnet18 pretrained model before the linear layer(modified the out_feature=1).\n", "\n", " - As you can see almost 82% of the 'cifar10' dataset has been predicted true but almost 18% of the dataset has been predicted wrong but this can be improved. Most of the models are being overfitted but I have chosen a best fitted model among the other models/epoch.\n", "\n", "##### The models are becoming bias on human images.\n", "- I have also tested 'food101' dataset in inference time but the models couldn't predict the right image because 'cifar100' doesn't have food images.\n", " - I also have try to label the images randomly during training time that helped me to get some more accuracy.\n", " - If I use dropout in every layer then it might be possible that the train and test accuracy will increase.\n", "- I also trained models in resnet34 and resnet50 but got very bad result.\n", " - At last I have trained the model using resnet18 without Dropout but using the random labeling on the fly and got best results till now.\n", "- In epoch-24 the train and validation accuracy is consecutively 0.991 and 0.906 and inference accuracy is 99.4% on 'cifar10' dataset which is till now best accuracy I have gotten. \n", "\n" ], "metadata": { "id": "vW4BKCMhyAE7" } }, { "cell_type": "markdown", "source": [ "### Testing Image" ], "metadata": { "id": "me7HsmA5zLds" } }, { "cell_type": "code", "source": [ "from PIL import Image" ], "metadata": { "id": "mEUZZKjXzFzz" }, "execution_count": 55, "outputs": [] }, { "cell_type": "code", "source": [ "inferece_transform_visual = transforms.Compose([transforms.Lambda(lambda image: image.convert('RGB')), transforms.Resize((32,32)), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406],\n", " std=[0.229, 0.224, 0.225]),\n", " ])\n" ], "metadata": { "id": "OUud_zcTzFuB" }, "execution_count": 56, "outputs": [] }, { "cell_type": "markdown", "source": [ "\n", "\n", "Image Prediction:\n", "\n", "- If the tensor is negetive or 0 then the image is \"Normal image\" and it will Predict \"False\".\n", "\n", "- If the tensor is possitive then the image is \"upside down\" and it will Predict \"True\".\n", "\n" ], "metadata": { "id": "3LA2lxnbzUf4" } }, { "cell_type": "code", "source": [ "image_for_inference = Image.open('/content/drive/MyDrive/upside_down/images/cheval.png')\n", "# image_for_inference = image_for_inference.resize((32,32))\n", "plt.imshow(image_for_inference)\n", "image_for_inference = inferece_transform_visual(image_for_inference)\n", "model.eval()\n", "output = model(image_for_inference.float().unsqueeze(0).to(params[\"device\"], non_blocking=True))\n", "predictions = (torch.sigmoid(output) >= 0.5)[:, 0].cpu().numpy()\n", "print(output)\n", "print(predictions)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 304 }, "id": "KEZkOFGuzFpg", "outputId": "8c4b0875-368c-4839-fde6-04f237b62893" }, "execution_count": 59, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "tensor([[-18.3507]], device='cuda:0', grad_fn=)\n", "[False]\n" ] }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "code", "source": [ "image_for_inference = Image.open('/content/drive/MyDrive/upside_down/images/homme.jpeg')\n", "# image_for_inference = image_for_inference.resize((32,32))\n", "plt.imshow(image_for_inference)\n", "image_for_inference = inferece_transform_visual(image_for_inference)\n", "model.eval()\n", "output = model(image_for_inference.float().unsqueeze(0).to(params[\"device\"], non_blocking=True))\n", "predictions = (torch.sigmoid(output) >= 0.5)[:, 0].cpu().numpy()\n", "print(output)\n", "print(predictions)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 304 }, "id": "zFs01KjGzFen", "outputId": "58335d72-a0d5-4fac-e5ad-aa47b8f30dd1" }, "execution_count": 60, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "tensor([[10.1964]], device='cuda:0', grad_fn=)\n", "[ True]\n" ] }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "markdown", "source": [ "**Write up**: \n", "* Link to the model on Hugging Face Hub: \n", "* Include some examples of misclassified images. Please explain what you might do to improve your model's performance on these images in the future (you do not need to impelement these suggestions)" ], "metadata": { "id": "qSeLed2JxvGI" } }, { "cell_type": "markdown", "metadata": { "id": "sFU9LTOyMiMj" }, "source": [ "# 2. Deep Learning for NLP\n", "\n", "**Fake news classifier**: Train a text classification model to detect fake news articles!\n", "\n", "* Download the dataset here: https://www.kaggle.com/clmentbisaillon/fake-and-real-news-dataset\n", "* Develop an NLP model for classification that uses a pretrained language model\n", "* Finetune your model on the dataset, and generate an AUC curve of your model on the test set of your choice. \n", "* [Upload the the model to the Hugging Face Hub](https://huggingface.co/docs/hub/adding-a-model), and add a link to your model below.\n", "* *Answer the following question*: Look at some of the news articles that were classified incorrectly. Please explain what you might do to improve your model's performance on these news articles in the future (you do not need to impelement these suggestions)" ] }, { "cell_type": "code", "source": [ "##import all necessary libraries\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import nltk\n", "from nltk.corpus import stopwords\n", "from nltk.stem.porter import PorterStemmer\n", "from nltk.stem import WordNetLemmatizer\n", "import sklearn\n", "import re\n", "import string\n", "import pandas as pd\n", "import seaborn as sns\n", "import tensorflow as tf" ], "metadata": { "id": "3edJgYj21Kbs" }, "execution_count": 1, "outputs": [] }, { "cell_type": "code", "source": [ "! pip install kaggle" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "2ftN4wDhNRBY", "outputId": "53acec71-c4a2-45ec-b80e-d7761bc79c63" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: kaggle in /usr/local/lib/python3.7/dist-packages (1.5.12)\n", "Requirement already satisfied: six>=1.10 in /usr/local/lib/python3.7/dist-packages (from kaggle) (1.15.0)\n", "Requirement already satisfied: urllib3 in /usr/local/lib/python3.7/dist-packages (from kaggle) (1.24.3)\n", "Requirement already satisfied: requests in /usr/local/lib/python3.7/dist-packages (from kaggle) (2.23.0)\n", "Requirement already satisfied: certifi in /usr/local/lib/python3.7/dist-packages (from kaggle) (2021.10.8)\n", "Requirement already satisfied: python-dateutil in /usr/local/lib/python3.7/dist-packages (from kaggle) (2.8.2)\n", "Requirement already satisfied: tqdm in /usr/local/lib/python3.7/dist-packages (from kaggle) (4.64.0)\n", "Requirement already satisfied: python-slugify in /usr/local/lib/python3.7/dist-packages (from kaggle) (6.1.1)\n", "Requirement already satisfied: text-unidecode>=1.3 in /usr/local/lib/python3.7/dist-packages (from python-slugify->kaggle) (1.3)\n", "Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests->kaggle) (3.0.4)\n", "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests->kaggle) (2.10)\n" ] } ] }, { "cell_type": "code", "source": [ "mkdir ~/.kaggle" ], "metadata": { "id": "r__ZKNm6NYFu" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "! cp kaggle.json ~/admin:///root/.kaggle" ], "metadata": { "id": "QYBvtWZHNksN", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "8e44f9de-1221-4f8a-a4f9-21fea9c363d6" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "cp: cannot stat 'kaggle.json': No such file or directory\n" ] } ] }, { "cell_type": "code", "source": [ "! sudo chmod 600 admin:///root/kaggle.json" ], "metadata": { "id": "8NIISO81NuJj", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "b6c35db0-1a61-40a1-825d-7a360d696143" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "chmod: cannot access 'admin:///root/kaggle.json': No such file or directory\n" ] } ] }, { "cell_type": "code", "source": [ "! kaggle datasets download -d clmentbisaillon/fake-and-real-news-dataset" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "u9C6j2xJOWrK", "outputId": "57b8947e-165e-4342-8da5-1aa69fefc9a3" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Traceback (most recent call last):\n", " File \"/usr/local/bin/kaggle\", line 5, in \n", " from kaggle.cli import main\n", " File \"/usr/local/lib/python3.7/dist-packages/kaggle/__init__.py\", line 23, in \n", " api.authenticate()\n", " File \"/usr/local/lib/python3.7/dist-packages/kaggle/api/kaggle_api_extended.py\", line 166, in authenticate\n", " self.config_file, self.config_dir))\n", "OSError: Could not find kaggle.json. Make sure it's located in /root/.kaggle. Or use the environment method.\n" ] } ] }, { "cell_type": "code", "source": [ "! unzip fake-and-real-news-dataset.zip" ], "metadata": { "id": "EQkyzSUBOHkM", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "1d8677f6-53a9-4344-cf4d-7884fb1e1af4" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "unzip: cannot find or open fake-and-real-news-dataset.zip, fake-and-real-news-dataset.zip.zip or fake-and-real-news-dataset.zip.ZIP.\n" ] } ] }, { "cell_type": "code", "source": [ "from google.colab import drive\n", "drive.mount('/content/drive')" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "nvji4q157k2l", "outputId": "1b8eb461-5818-450a-a12a-7c9091e1a38a" }, "execution_count": 2, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Mounted at /content/drive\n" ] } ] }, { "cell_type": "code", "source": [ "true_df = pd.read_csv(\"/content/drive/MyDrive/True.csv\")\n", "fake_df = pd.read_csv(\"/content/drive/MyDrive/Fake.csv\")" ], "metadata": { "id": "qSP3v3tj1NSr" }, "execution_count": 8, "outputs": [] }, { "cell_type": "code", "source": [ "!pip install transformers" ], "metadata": { "id": "u3_OPtKHVytH", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "b10fa854-7e7e-4ba9-f98f-f824074235e7" }, "execution_count": 4, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Collecting transformers\n", " Downloading transformers-4.18.0-py3-none-any.whl (4.0 MB)\n", "\u001b[K |████████████████████████████████| 4.0 MB 5.3 MB/s \n", "\u001b[?25hCollecting huggingface-hub<1.0,>=0.1.0\n", " Downloading huggingface_hub-0.5.1-py3-none-any.whl (77 kB)\n", "\u001b[K |████████████████████████████████| 77 kB 2.9 MB/s \n", "\u001b[?25hRequirement already satisfied: importlib-metadata in /usr/local/lib/python3.7/dist-packages (from transformers) (4.11.3)\n", "Collecting pyyaml>=5.1\n", " Downloading PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (596 kB)\n", "\u001b[K |████████████████████████████████| 596 kB 39.2 MB/s \n", "\u001b[?25hRequirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.7/dist-packages (from transformers) (1.21.6)\n", "Requirement already satisfied: requests in /usr/local/lib/python3.7/dist-packages (from transformers) (2.23.0)\n", "Collecting sacremoses\n", " Downloading sacremoses-0.0.49-py3-none-any.whl (895 kB)\n", "\u001b[K |████████████████████████████████| 895 kB 44.9 MB/s \n", "\u001b[?25hCollecting tokenizers!=0.11.3,<0.13,>=0.11.1\n", " Downloading tokenizers-0.12.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (6.6 MB)\n", "\u001b[K |████████████████████████████████| 6.6 MB 41.8 MB/s \n", "\u001b[?25hRequirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.7/dist-packages (from transformers) (4.64.0)\n", "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.7/dist-packages (from transformers) (2019.12.20)\n", "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.7/dist-packages (from transformers) (21.3)\n", "Requirement already satisfied: filelock in /usr/local/lib/python3.7/dist-packages (from transformers) (3.6.0)\n", "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.7/dist-packages (from huggingface-hub<1.0,>=0.1.0->transformers) (4.2.0)\n", "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /usr/local/lib/python3.7/dist-packages (from packaging>=20.0->transformers) (3.0.8)\n", "Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.7/dist-packages (from importlib-metadata->transformers) (3.8.0)\n", "Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (3.0.4)\n", "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (1.24.3)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (2021.10.8)\n", "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (2.10)\n", "Requirement already satisfied: click in /usr/local/lib/python3.7/dist-packages (from sacremoses->transformers) (7.1.2)\n", "Requirement already satisfied: joblib in /usr/local/lib/python3.7/dist-packages (from sacremoses->transformers) (1.1.0)\n", "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from sacremoses->transformers) (1.15.0)\n", "Installing collected packages: pyyaml, tokenizers, sacremoses, huggingface-hub, transformers\n", " Attempting uninstall: pyyaml\n", " Found existing installation: PyYAML 3.13\n", " Uninstalling PyYAML-3.13:\n", " Successfully uninstalled PyYAML-3.13\n", "Successfully installed huggingface-hub-0.5.1 pyyaml-6.0 sacremoses-0.0.49 tokenizers-0.12.1 transformers-4.18.0\n" ] } ] }, { "cell_type": "code", "source": [ "!pip install scikit-plot" ], "metadata": { "id": "qDTVVKluVyqs", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "8a211e1a-08ca-4135-a1c9-ce798ab84108" }, "execution_count": 5, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Collecting scikit-plot\n", " Downloading scikit_plot-0.3.7-py3-none-any.whl (33 kB)\n", "Requirement already satisfied: joblib>=0.10 in /usr/local/lib/python3.7/dist-packages (from scikit-plot) (1.1.0)\n", "Requirement already satisfied: matplotlib>=1.4.0 in /usr/local/lib/python3.7/dist-packages (from scikit-plot) (3.2.2)\n", "Requirement already satisfied: scipy>=0.9 in /usr/local/lib/python3.7/dist-packages (from scikit-plot) (1.4.1)\n", "Requirement already satisfied: scikit-learn>=0.18 in /usr/local/lib/python3.7/dist-packages (from scikit-plot) (1.0.2)\n", "Requirement already satisfied: numpy>=1.11 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=1.4.0->scikit-plot) (1.21.6)\n", "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=1.4.0->scikit-plot) (0.11.0)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=1.4.0->scikit-plot) (1.4.2)\n", "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=1.4.0->scikit-plot) (3.0.8)\n", "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=1.4.0->scikit-plot) (2.8.2)\n", "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.7/dist-packages (from kiwisolver>=1.0.1->matplotlib>=1.4.0->scikit-plot) (4.2.0)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.1->matplotlib>=1.4.0->scikit-plot) (1.15.0)\n", "Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.7/dist-packages (from scikit-learn>=0.18->scikit-plot) (3.1.0)\n", "Installing collected packages: scikit-plot\n", "Successfully installed scikit-plot-0.3.7\n" ] } ] }, { "cell_type": "code", "source": [ "import os\n", "import gc\n", "import copy\n", "import time\n", "import random\n", "import string\n", "import re\n", "\n", "# For data manipulation\n", "import numpy as np\n", "import pandas as pd\n", "\n", "# Pytorch Imports\n", "import torch\n", "import torch.nn as nn\n", "import torch.optim as optim\n", "from torch.optim import lr_scheduler\n", "from torch.utils.data import Dataset, DataLoader\n", "import torch.nn.functional as F\n", "\n", "\n", "# Utils\n", "from tqdm import tqdm\n", "from collections import defaultdict\n", "\n", "# Sklearn Imports\n", "from sklearn.metrics import mean_squared_error\n", "from sklearn.model_selection import StratifiedKFold, KFold\n", "from sklearn.metrics import roc_curve\n", "# Compute ROC curve and ROC area for each class\n", "import scikitplot as skplt\n", "\n", "# For Transformer Models\n", "from transformers import AutoTokenizer, AutoModel, AdamW\n", "from transformers import AutoConfig\n", "from transformers import get_scheduler\n", "\n", "\n", "\n", "# visualization \n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "from wordcloud import WordCloud\n", "%matplotlib inline\n", "# NLP libraries as NLTK\n", "from collections import defaultdict\n", "from nltk.corpus import stopwords\n", "import nltk\n", "nltk.download('stopwords')\n" ], "metadata": { "id": "cRsNCV04VyoN", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "8b6b67f0-5fef-411b-e4f3-59575770e370" }, "execution_count": 6, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[nltk_data] Downloading package stopwords to /root/nltk_data...\n", "[nltk_data] Unzipping corpora/stopwords.zip.\n" ] }, { "output_type": "execute_result", "data": { "text/plain": [ "True" ] }, "metadata": {}, "execution_count": 6 } ] }, { "cell_type": "code", "source": [ "# adding label\n", "true_df[\"label\"] = [1]*len(true_df) \n", "fake_df[\"label\"] = [0]*len(fake_df)\n", "\n" ], "metadata": { "id": "64YJPyLQVylm" }, "execution_count": 10, "outputs": [] }, { "cell_type": "code", "source": [ "# concatenate true & fake articles together\n", "df = pd.concat([true_df, fake_df]).sample(frac=1).reset_index(drop=True)\n", "# # drop duplicates\n", "df.drop_duplicates(inplace=True)\n", "\n", "# empty rows\n", "df.dropna(inplace=True)\n", "\n" ], "metadata": { "id": "n8ZCMwnKVyih" }, "execution_count": 11, "outputs": [] }, { "cell_type": "code", "source": [ "## Extract Year from Data column\n", "df['year']=df['date'].str[-5:]" ], "metadata": { "id": "6VC8B4R6pEmR" }, "execution_count": 12, "outputs": [] }, { "cell_type": "code", "source": [ "df['year'].unique()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "UuIDbdVtpEj-", "outputId": "da01cb60-ae72-46f8-a3cd-9a604eefd1d5" }, "execution_count": 13, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array(['2016 ', ' 2017', '2017 ', ' 2016', ' 2015', 'eb-18', 'd.jpg',\n", " 'ideo]', 'left/', 'dier/', 't.jpg', '-pie/'], dtype=object)" ] }, "metadata": {}, "execution_count": 13 } ] }, { "cell_type": "code", "source": [ "# get number of words in the data\n", "def text_length(text):\n", " word_count = 0\n", " for word in text.split(\" \"):\n", " word_count += 1\n", " return word_count\n", "\n", "true_words_count = true_df['text'].apply(text_length)\n", "fake_words_count = fake_df['text'].apply(text_length)\n", "\n", "words_count = pd.DataFrame({'True': true_words_count, 'Fake': true_words_count})\n", "\n", "plt.figure(figsize=(10, 6))\n", "words_count.boxplot()\n", "plt.xlabel('News category')\n", "plt.ylabel('Distribution of words in the news text')" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 405 }, "id": "kt4y99WxpEhm", "outputId": "3cc72388-2a23-47a5-9085-3164d30d28e6" }, "execution_count": 14, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "Text(0, 0.5, 'Distribution of words in the news text')" ] }, "metadata": {}, "execution_count": 14 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "code", "source": [ "stopwords = stopwords.words('english')\n", "\n", "\n", "# create a corpuse of words in the data.\n", "def create_corpuse(data, column_name):\n", " words_by_frequency = defaultdict(int)\n", "\n", " for title in data['{0}'.format(column_name)]:\n", " for word in title.lower().split(' '):\n", " if word not in stopwords:\n", " words_by_frequency[word] += 1\n", "\n", " return sorted(words_by_frequency.items(), key=lambda x: x[1], reverse=True)\n", "\n", "counter_words_title_true = create_corpuse(true_df, 'title')\n", "counter_words_title_fake = create_corpuse(fake_df, 'title')\n", "\n", "counter_words_text_true = create_corpuse(true_df, 'text')\n", "counter_words_text_fake = create_corpuse(fake_df, 'text')\n", "\n" ], "metadata": { "id": "RtX1ydtTpEet" }, "execution_count": 15, "outputs": [] }, { "cell_type": "code", "source": [ "# some popular news agencies names \n", "# get the number of 'element' in the data\n", "def find_text_elements(data, column_name, element):\n", " count_element = 0\n", " re_element = re.compile(element)\n", " for text in data['{0}'.format(column_name)]:\n", " count_element += len(re.findall(re_element, text.lower()))\n", " return count_element\n", "\n", "articles = {'the washington post': [0, 0], 'cnn': [0, 0], 'bbc': [0, 0], 'reuters': [0, 0], \n", " 'fox news': [0, 0], 'the new york times': [0, 0], 'nbc': [0, 0]}\n", "for key, _ in articles.items():\n", " true_value = find_text_elements(true_df, 'text', element=key)\n", " fake_value = find_text_elements(fake_df, 'text', element=key)\n", " articles[key] = true_value, fake_value\n", " \n", "\n", "\n", "\n", "articles_count = pd.DataFrame(articles)" ], "metadata": { "id": "6UskdTgypEb3" }, "execution_count": 16, "outputs": [] }, { "cell_type": "code", "source": [ "articles = {'the washington post': [0, 0], 'cnn': [0, 0], 'bbc': [0, 0], 'reuters': [0, 0], \n", " 'fox news': [0, 0], 'the new york times': [0, 0], 'nbc': [0, 0]}\n", "for key, _ in articles.items():\n", " true_value = find_text_elements(true_df, 'title', element=key)\n", " fake_value = find_text_elements(fake_df, 'title', element=key)\n", " articles[key] = true_value, fake_value\n", "articles_count = pd.DataFrame(articles)" ], "metadata": { "id": "Gtv5OCbZpEZH" }, "execution_count": 17, "outputs": [] }, { "cell_type": "code", "source": [ "import warnings\n", "warnings.simplefilter(action='ignore', category=FutureWarning) " ], "metadata": { "id": "iZtSAO-VpEWN" }, "execution_count": 18, "outputs": [] }, { "cell_type": "code", "source": [ "train, validate, test = \\\n", " np.split(df.sample(frac=1, random_state=42), \n", " [int(.6*len(df)), int(.8*len(df))])\n", "\n" ], "metadata": { "id": "Bpb6xq-LpEQx" }, "execution_count": 19, "outputs": [] }, { "cell_type": "markdown", "source": [ "Model" ], "metadata": { "id": "Ir86wQAWqTqM" } }, { "cell_type": "code", "source": [ "DATA_COLUMN='text'\n", "LABEL_COLUMN='label'\n", "MODEL_NAME='bert-base-uncased'\n", "tokenizer= AutoTokenizer.from_pretrained(MODEL_NAME)" ], "metadata": { "id": "rI1krHLmVygB", "colab": { "base_uri": "https://localhost:8080/", "height": 145, "referenced_widgets": [ "b2c14218b49d403fa27b3fc646e34b39", "ac56efa452b5447d8397dfba81c3d3ae", "f2f0df0bfb7e44ff9eb7057a8b6f135a", "d69044a1c36047cfb3f26a0bf7fbc018", "ce7096f09e2a4f32aab1402083a16c84", "e3eae810dffc4ab8bbf16b701f10bb84", "bb0ee7c1e3b44ff58e883d6cc5103e6e", "869831b2b5594231898ff59c39c72178", "ddbada048f804daa9c844d95a9d335b0", "0afecdd73c3047cb8dbddc7bbf193d16", "1ac4e599b1e143aaa003599db9b3280a", "4ebcabc2d80d451d8546450d26e7ffe8", "64b1dbf94f00419da8b450c8c89cd3b0", "c522510513014a369e716467b49e6b3d", "957323e780c64ee2bba67f7c95ba109b", "0c7505d768154d41ba07b6bf7346fd65", "02a4da01c58040e1baef6bda7cf6a2c7", "87b7343d93d54550ac1b4f3fc8ee658a", "44b33542cd9c488182ed100a8cd3c1e3", "1e20d94186574dad9c7ac2ccc7bf8cd1", "c37e3e21bd4b45ee905ab3550c5c6af6", "6621b391fea94afea66a649b98cd5e9e", "d36c5a8fdfb548abac094d65390d8756", "cf71b72d93ea4d869ebddcc0566f77be", "a71493a3a87943f48e4ba53f8dae59d7", "498b782ae32046aaa266111197982daa", "872272c754474825a9c1a0e67b13fa56", "cd3ecaf0ce8d4136a12fa327bbf8d8d1", "57f93d10d6b54c888eeeb396770c41dd", "e0e5cc1be5cf486bba24cc9ceb2f0188", "2e09ce096c2f4dfaacdaaae930231ffd", "f85be5d59b934bfc8f93cbbc7a68520c", "6f49902389f2411eb8061028d41bad9d", "60ca5f0e5991493b9bd29a2b45bada25", "8af0b85c70684e8dbdb648509ac2be91", "b650eefa06be43b0b6740ea328322bf8", "47a1add38349418baca8966f63a8fe34", "a0936566828f44f0a63e741dcc440f0f", "be2bd16e3c4649a7bb39588caf5373b9", "5ad018ff7783452a9312daed9245f973", "da6ac73049404a2bbbc2156960d4223a", "d3543f3da80d408b9be514fc45e5d760", "69b71060cd804f9daea8ee688bf3d37f", "77b832bee6b2497aa03299b48fd26692" ] }, "outputId": "e1e67fb4-0bdb-48ad-bf38-b906934a7405" }, "execution_count": 20, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "Downloading: 0%| | 0.00/28.0 [00:00=1.4.12\n", " Downloading sacrebleu-2.0.0-py3-none-any.whl (90 kB)\n", "\u001b[K |████████████████████████████████| 90 kB 10.0 MB/s \n", "\u001b[?25hRequirement already satisfied: torch in /usr/local/lib/python3.7/dist-packages (from fairseq) (1.11.0+cu113)\n", "Requirement already satisfied: tqdm in /usr/local/lib/python3.7/dist-packages (from fairseq) (4.64.0)\n", "Requirement already satisfied: cffi in /usr/local/lib/python3.7/dist-packages (from fairseq) (1.15.0)\n", "Collecting hydra-core\n", " Downloading hydra_core-1.1.2-py3-none-any.whl (147 kB)\n", "\u001b[K |████████████████████████████████| 147 kB 66.1 MB/s \n", "\u001b[?25hRequirement already satisfied: tabulate>=0.8.9 in /usr/local/lib/python3.7/dist-packages (from sacrebleu>=1.4.12->fairseq) (0.8.9)\n", "Collecting colorama\n", " Downloading colorama-0.4.4-py2.py3-none-any.whl (16 kB)\n", "Collecting portalocker\n", " Downloading portalocker-2.4.0-py2.py3-none-any.whl (16 kB)\n", "Requirement already satisfied: pycparser in /usr/local/lib/python3.7/dist-packages (from cffi->fairseq) (2.21)\n", "Collecting importlib-resources<5.3\n", " Downloading importlib_resources-5.2.3-py3-none-any.whl (27 kB)\n", "Collecting omegaconf==2.1.*\n", " Downloading omegaconf-2.1.2-py3-none-any.whl (74 kB)\n", "\u001b[K |████████████████████████████████| 74 kB 3.7 MB/s \n", "\u001b[?25hCollecting antlr4-python3-runtime==4.8\n", " Downloading antlr4-python3-runtime-4.8.tar.gz (112 kB)\n", "\u001b[K |████████████████████████████████| 112 kB 58.1 MB/s \n", "\u001b[?25hRequirement already satisfied: PyYAML>=5.1.0 in /usr/local/lib/python3.7/dist-packages (from omegaconf==2.1.*->hydra-core->fairseq) (6.0)\n", "Requirement already satisfied: zipp>=3.1.0 in /usr/local/lib/python3.7/dist-packages (from importlib-resources<5.3->hydra-core->fairseq) (3.8.0)\n", "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.7/dist-packages (from torch->fairseq) (4.2.0)\n", "Building wheels for collected packages: antlr4-python3-runtime\n", " Building wheel for antlr4-python3-runtime (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for antlr4-python3-runtime: filename=antlr4_python3_runtime-4.8-py3-none-any.whl size=141230 sha256=b8222e62348ac22625948b1b611a81793124ec9755ba33ab47eac49561c80e01\n", " Stored in directory: /root/.cache/pip/wheels/ca/33/b7/336836125fc9bb4ceaa4376d8abca10ca8bc84ddc824baea6c\n", "Successfully built antlr4-python3-runtime\n", "Installing collected packages: antlr4-python3-runtime, portalocker, omegaconf, importlib-resources, colorama, sacrebleu, hydra-core, dataclasses, fairseq\n", " Attempting uninstall: importlib-resources\n", " Found existing installation: importlib-resources 5.7.1\n", " Uninstalling importlib-resources-5.7.1:\n", " Successfully uninstalled importlib-resources-5.7.1\n", "Successfully installed antlr4-python3-runtime-4.8 colorama-0.4.4 dataclasses-0.6 fairseq-0.10.2 hydra-core-1.1.2 importlib-resources-5.2.3 omegaconf-2.1.2 portalocker-2.4.0 sacrebleu-2.0.0\n" ] }, { "output_type": "display_data", "data": { "application/vnd.colab-display-data+json": { "pip_warning": { "packages": [ "dataclasses", "pydevd_plugins" ] } } }, "metadata": {} } ] }, { "cell_type": "code", "source": [ "def run_training(model, optimizer, scheduler, device, num_epochs):\n", " # To automatically log gradients\n", " \n", " if torch.cuda.is_available():\n", " print(\"[INFO] Using GPU: {}\\n\".format(torch.cuda.get_device_name()))\n", " \n", " start = time.time()\n", " best_model_wts = copy.deepcopy(model.state_dict())\n", " best_epoch_loss = np.inf\n", " history = defaultdict(list)\n", " \n", " for epoch in range(1, num_epochs + 1): \n", " gc.collect()\n", " train_epoch_loss = train_one_epoch(model, optimizer, scheduler, \n", " dataloader=train_loader, \n", " device=CONFIG['device'], epoch=epoch)\n", " \n", " val_epoch_loss = valid_one_epoch(model, valid_loader, device=CONFIG['device'], \n", " epoch=epoch)\n", " \n", " history['Train Loss'].append(train_epoch_loss)\n", " history['Valid Loss'].append(val_epoch_loss)\n", " \n", " \n", " \n", " # deep copy the model\n", " if val_epoch_loss <= best_epoch_loss:\n", " print(f\"Validation Loss Improved ({best_epoch_loss} ---> {val_epoch_loss})\")\n", " best_epoch_loss = val_epoch_loss\n", " #best_model_wts = copy.deepcopy(model.state_dict())\n", " best_model_wts = copy.deepcopy('bert-base-cased')\n", " \n", " \n", " # PATH = f\"/content/drive/MyDrive/Fatima_Fellowship\"\n", " #torch.save(model.state_dict(), PATH)\n", " \n", " torch.save('bert-base-cased', PATH)\n", " # Save a model file from the current directory\n", " print(\"Model Saved\")\n", " \n", " print()\n", " end = time.time()\n", " time_elapsed = end - start\n", " print('Training complete in {:.0f}h {:.0f}m {:.0f}s'.format(\n", " time_elapsed // 3600, (time_elapsed % 3600) // 60, (time_elapsed % 3600) % 60))\n", " print(\"Best Loss: {:.4f}\".format(best_epoch_loss))\n", " \n", " # load best model weights\n", " model.load_state_dict(best_model_wts)\n", " \n", " return model, history" ], "metadata": { "id": "qz9PCiBxVydj" }, "execution_count": 53, "outputs": [] }, { "cell_type": "code", "source": [ "def fetch_scheduler(optimizer):\n", " if CONFIG['scheduler'] == 'CosineAnnealingLR':\n", " scheduler = lr_scheduler.CosineAnnealingLR(optimizer,T_max=CONFIG['T_max'], \n", " eta_min=CONFIG['min_lr'])\n", " elif CONFIG['scheduler'] == 'CosineAnnealingWarmRestarts':\n", " scheduler = lr_scheduler.CosineAnnealingWarmRestarts(optimizer,T_0=CONFIG['T_0'], \n", " eta_min=CONFIG['min_lr'])\n", " elif CONFIG['scheduler'] == None:\n", " return None\n", "\n", " \n", " \n", " return scheduler\n" ], "metadata": { "id": "GU9m008YVyVF" }, "execution_count": 54, "outputs": [] }, { "cell_type": "code", "source": [ "def prepare_loaders(): \n", " \n", " train_dataset = TrainDataset(train, tokenizer=tokenizer, max_length=CONFIG['max_length'])\n", " valid_dataset = TrainDataset(validate, tokenizer=tokenizer, max_length=CONFIG['max_length'])\n", "\n", " train_loader = DataLoader(train_dataset, batch_size=CONFIG['train_batch_size'], \n", " num_workers=2, shuffle=False, pin_memory=True, drop_last=True)\n", " valid_loader = DataLoader(valid_dataset, batch_size=CONFIG['valid_batch_size'], \n", " num_workers=2, shuffle=False, pin_memory=True)\n", " \n", " return train_loader, valid_loader\n" ], "metadata": { "id": "n1lKBTDlVyGj" }, "execution_count": 55, "outputs": [] }, { "cell_type": "code", "source": [ "import gc\n", "gc.collect()\n", "\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "5FFBNqVbrf2q", "outputId": "ac1c889f-df52-4a5c-9d43-cfbad2450554" }, "execution_count": 56, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "319" ] }, "metadata": {}, "execution_count": 56 } ] }, { "cell_type": "code", "source": [ "# Create Dataloaders\n", "train_loader, valid_loader = prepare_loaders()\n", "model = Fake_Real_Model_Arch()\n", "model.to(CONFIG['device'])\n", "torch.cuda.empty_cache()\n", "\n", "# Define Optimizer and Scheduler\n", "\n", "param_optimizer = list(model.named_parameters())\n", "no_decay = [\"bias\", \"LayerNorm.bias\", \"LayerNorm.weight\"]\n", "optimizer_parameters = [\n", " {'params': [p for n, p in param_optimizer if not any(nd in n for nd in no_decay)], \n", " 'weight_decay': 0.0001},\n", " {'params': [p for n, p in param_optimizer if any(nd in n for nd in no_decay)], \n", " 'weight_decay': 0.0}\n", " ] \n", "\n", "optimizer = AdamW(optimizer_parameters, lr=CONFIG['learning_rate'])\n", "\n", "\n", "model, history = run_training(model, optimizer, fetch_scheduler(optimizer),\n", " device=CONFIG['device'],\n", " num_epochs=CONFIG['epochs'],\n", " )\n", "\n", "\n", "del model, history, train_loader, valid_loader\n", "_ = gc.collect()\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 552 }, "id": "9i1BVmrTrfze", "outputId": "5853fa85-10ea-43d8-bba9-c476671eb82f" }, "execution_count": 57, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "Some weights of the model checkpoint at bert-base-uncased were not used when initializing BertModel: ['cls.seq_relationship.bias', 'cls.predictions.transform.LayerNorm.weight', 'cls.predictions.transform.dense.bias', 'cls.predictions.decoder.weight', 'cls.predictions.transform.dense.weight', 'cls.seq_relationship.weight', 'cls.predictions.transform.LayerNorm.bias', 'cls.predictions.bias']\n", "- This IS expected if you are initializing BertModel from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).\n", "- This IS NOT expected if you are initializing BertModel from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "[INFO] Using GPU: Tesla T4\n", "\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\r 0%| | 0/1675 [00:00 0.31394133293860765)\n" ] }, { "output_type": "error", "ename": "NameError", "evalue": "ignored", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 21\u001b[0m model, history = run_training(model, optimizer, fetch_scheduler(optimizer),\n\u001b[1;32m 22\u001b[0m \u001b[0mdevice\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mCONFIG\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'device'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 23\u001b[0;31m \u001b[0mnum_epochs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mCONFIG\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'epochs'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 24\u001b[0m )\n\u001b[1;32m 25\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m\u001b[0m in \u001b[0;36mrun_training\u001b[0;34m(model, optimizer, scheduler, device, num_epochs)\u001b[0m\n\u001b[1;32m 35\u001b[0m \u001b[0;31m#torch.save(model.state_dict(), PATH)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 36\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 37\u001b[0;31m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msave\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'bert-base-cased'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mPATH\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 38\u001b[0m \u001b[0;31m# Save a model file from the current directory\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 39\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Model Saved\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mNameError\u001b[0m: name 'PATH' is not defined" ] } ] }, { "cell_type": "markdown", "source": [ "Inference" ], "metadata": { "id": "wp9SLvXxrwNJ" } }, { "cell_type": "code", "source": [ "import transformers\n", "class Fake_Real_Model_Arch_test(transformers.PreTrainedModel):\n", " def __init__(self,bert):\n", " super(Fake_Real_Model_Arch_test,self).__init__(config=AutoConfig.from_pretrained(MODEL_NAME))\n", " \n", " self.bert = bert \n", " num_classes = 2 # number of targets to predict\n", " embedding_dim = 768 # length of embedding dim \n", " self.fc1 = nn.Linear(embedding_dim, num_classes)\n", " self.softmax = nn.Softmax()\n", "\n", " def forward(self, text_id, text_mask):\n", " outputs= self.bert(text_id, attention_mask=text_mask) \n", " outputs = outputs[1] # get hidden layers \n", " logit = self.fc1(outputs)\n", " return self.softmax(logit)\n" ], "metadata": { "id": "9aXOWukzrfsa" }, "execution_count": 58, "outputs": [] }, { "cell_type": "code", "source": [ "@torch.no_grad()\n", "def test_fn(model, dataloader, device):\n", " model.eval()\n", " \n", " dataset_size = 0\n", " running_loss = 0.0\n", " \n", " PREDS = []\n", " \n", " bar = tqdm(enumerate(dataloader), total=len(dataloader))\n", " for step, data in bar:\n", " ids = data['text_ids'].to(device, dtype = torch.long)\n", " mask = data['text_mask'].to(device, dtype = torch.long)\n", " \n", " outputs = model(ids, mask)\n", " PREDS.append(outputs.detach().cpu().numpy()) \n", " \n", " PREDS = np.concatenate(PREDS)\n", " gc.collect()\n", " \n", " return PREDS" ], "metadata": { "id": "yGPc87NZrfRM" }, "execution_count": 59, "outputs": [] }, { "cell_type": "code", "source": [ "test_dataset = TrainDataset(test, tokenizer=tokenizer, max_length=CONFIG['max_length'])\n", "test_loader = DataLoader(test_dataset, batch_size=CONFIG['valid_batch_size'], \n", " num_workers=2, shuffle=False, pin_memory=True)" ], "metadata": { "id": "Yf9kfRdHr3N0" }, "execution_count": 60, "outputs": [] }, { "cell_type": "code", "source": [ "def inference(model_paths, dataloader, device):\n", " final_preds = []\n", " for i, path in enumerate(model_paths):\n", " model = Fake_Real_Model_Arch_test(AutoModel.from_pretrained(MODEL_NAME))\n", " model.to(CONFIG['device'])\n", " model.load_state_dict(torch.load(path))\n", " \n", " print(f\"Getting predictions for model {i+1}\")\n", " preds = test_fn(model, dataloader, device)\n", " final_preds.append(preds)\n", " \n", " final_preds = np.array(final_preds)\n", " final_preds_probabolity = np.mean(final_preds, axis=0)\n", " final_preds= np.argmax(final_preds_probabolity,axis=1)\n", " return final_preds,final_preds_probabolity" ], "metadata": { "id": "nC5NHaoyr3K7" }, "execution_count": 61, "outputs": [] }, { "cell_type": "code", "source": [ "MODEL_PATH_=['/content/drive/MyDrive/Fatima Fellowship Task/Model_weights/model_roberta.bin']\n", "preds,prob = inference(MODEL_PATH_, test_loader, CONFIG['device'])" ], "metadata": { "id": "qxGyfeiSr3H_" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "Classification report" ], "metadata": { "id": "ov7jcrCqsLox" } }, { "cell_type": "code", "source": [ "from sklearn.metrics import jaccard_score,f1_score,accuracy_score,recall_score,precision_score,classification_report\n", "def print_statistics(y, y_pred):\n", " accuracy = accuracy_score(y, y_pred)\n", " precision =precision_score(y, y_pred, average='weighted')\n", " recall = recall_score(y, y_pred, average='weighted')\n", " f_score = f1_score(y, y_pred, average='weighted')\n", " print('Accuracy: %.3f\\nPrecision: %.3f\\nRecall: %.3f\\nF_score: %.3f\\n'\n", " % (accuracy, precision, recall, f_score))\n", " print(classification_report(y, y_pred))\n", " return accuracy, precision, recall, f_score" ], "metadata": { "id": "LrgmbBsSr3E1" }, "execution_count": 62, "outputs": [] }, { "cell_type": "code", "source": [ "print(print_statistics(test[LABEL_COLUMN],prediction))" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 167 }, "id": "tfWUR2SXr3Ax", "outputId": "2a9ed81c-35e5-41bb-9904-81220091c046" }, "execution_count": 63, "outputs": [ { "output_type": "error", "ename": "NameError", "evalue": "ignored", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprint_statistics\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtest\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mLABEL_COLUMN\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mprediction\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mNameError\u001b[0m: name 'prediction' is not defined" ] } ] }, { "cell_type": "code", "source": [ "from sklearn.metrics import roc_curve\n", "fpr, tpr, thresholds = roc_curve(preds, np.max(prob,axis=1))\n", "\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 202 }, "id": "mQ55pAl5r27_", "outputId": "11dc65ec-b262-4398-a767-8f4e4ee15b7e" }, "execution_count": 64, "outputs": [ { "output_type": "error", "ename": "NameError", "evalue": "ignored", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0msklearn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmetrics\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mroc_curve\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mfpr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtpr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mthresholds\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mroc_curve\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpreds\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmax\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprob\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mNameError\u001b[0m: name 'preds' is not defined" ] } ] }, { "cell_type": "markdown", "source": [ "AUC CURVE" ], "metadata": { "id": "S19VfThPsYuz" } }, { "cell_type": "code", "source": [ "#create ROC curve\n", "plt.plot(fpr,tpr)\n", "plt.ylabel('True Positive Rate')\n", "plt.xlabel('False Positive Rate')\n", "plt.show()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 237 }, "id": "PpwAsTDbr20C", "outputId": "d1bc8db7-dabe-470b-e093-b7ed441c8900" }, "execution_count": 65, "outputs": [ { "output_type": "error", "ename": "NameError", "evalue": "ignored", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m#create ROC curve\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfpr\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mtpr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mylabel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'True Positive Rate'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mxlabel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'False Positive Rate'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshow\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mNameError\u001b[0m: name 'fpr' is not defined" ] } ] }, { "cell_type": "markdown", "source": [ "ERROR ANALYSIS" ], "metadata": { "id": "8a6uyvo1seO3" } }, { "cell_type": "code", "source": [ "index_wrong=[]\n", "for i in range(len(test)):\n", " if int(test[LABEL_COLUMN].iloc[i])!=int(preds[i]):\n", " index_wrong.append(i)\n", "\n", "df_wrong_classification=test.iloc[index_wrong]" ], "metadata": { "id": "MT2HIb0hVxyW", "colab": { "base_uri": "https://localhost:8080/", "height": 237 }, "outputId": "63f1c4d1-23f3-4fc5-e17d-bb4a9369c10d" }, "execution_count": 68, "outputs": [ { "output_type": "error", "ename": "NameError", "evalue": "ignored", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mindex_wrong\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtest\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0;32mif\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtest\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mLABEL_COLUMN\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0miloc\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m!=\u001b[0m\u001b[0mint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpreds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m \u001b[0mindex_wrong\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mNameError\u001b[0m: name 'preds' is not defined" ] } ] }, { "cell_type": "code", "source": [ "df_wrong_classification" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 167 }, "id": "TztGKCt7sh0d", "outputId": "ca7539fb-7386-454d-f43f-84773abc8443" }, "execution_count": 67, "outputs": [ { "output_type": "error", "ename": "NameError", "evalue": "ignored", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdf_wrong_classification\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mNameError\u001b[0m: name 'df_wrong_classification' is not defined" ] } ] }, { "cell_type": "code", "source": [ "### Lets Pick First Wrong example\n", "df_wrong_classification['text'].iloc[0]\n", "\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 202 }, "id": "0FfaSYOxshyM", "outputId": "b6f5f1f8-8779-4a74-f18f-9cd38ca3bf52" }, "execution_count": 66, "outputs": [ { "output_type": "error", "ename": "NameError", "evalue": "ignored", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m### Lets Pick First Wrong example\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mdf_wrong_classification\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'text'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0miloc\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mNameError\u001b[0m: name 'df_wrong_classification' is not defined" ] } ] }, { "cell_type": "markdown", "source": [ "To improve our model's performance" ], "metadata": { "id": "aumC0H6ts8sS" } }, { "cell_type": "markdown", "source": [ "\n", "\n", "I am not sure but the model performance is so optimistic which is weird than in reality due to dataset bias, as by building a small classifier based on a topic or some certain words we could achieve high or even perfect accuracy, as indicated in section data analysis, which doesn't happen in the real world. So at this point, it's hard to investigate what's wrong with the model.\n", "\n", "What I believe is using another dataset as the test set to evaluate the model performance would be better or using another complete dataset for training and testing that doesn't contain that sort of bias in the current dataset.\n", "\n", "But there are some issues in model training that might impact performance, for instance, training was slow as improvements of loss between the first and second epoch is small which might be due to learning rate, optimizers, and schedular issues, No improvement at all in the third epoch. So I believe if we want to improve model performance with this dataset learning rate, an appropriate optimizer and schedular need to be investigated/adjusted.\n", "\n", "But if we want to have a perfect classification we could add title, date and topic input to the model or we could use topic or date only as input to the model. This will guarantee perfect performance.\n" ], "metadata": { "id": "90fpzgaMtD37" } }, { "cell_type": "code", "source": [ "" ], "metadata": { "id": "PpWBSf_LshvP" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "**Write up**: \n", "* Link to the model on Hugging Face Hub: \n", "* Include some examples of misclassified news articles. Please explain what you might do to improve your model's performance on these news articles in the future (you do not need to impelement these suggestions)" ], "metadata": { "id": "kpInVUMLyJ24" } }, { "cell_type": "markdown", "metadata": { "id": "jTfHpo6BOmE8" }, "source": [ "# 3. Deep RL / Robotics" ] }, { "cell_type": "markdown", "metadata": { "id": "saB64bbTXWgZ" }, "source": [ "**RL for Classical Control:** Using any of the [classical control](https://github.com/openai/gym/blob/master/docs/environments.md#classic-control) environments from OpenAI's `gym`, implement a deep NN that learns an optimal policy which maximizes the reward of the environment.\n", "\n", "* Describe the NN you implemented and the behavior you observe from the agent as the model converges (or diverges).\n", "* Plot the reward as a function of steps (or Epochs).\n", "Compare your results to a random agent.\n", "* Discuss whether you think your model has learned the optimal policy and potential methods for improving it and/or where it might fail.\n", "* (Optional) [Upload the the model to the Hugging Face Hub](https://huggingface.co/docs/hub/adding-a-model), and add a link to your model below.\n", "\n", "\n", "You may use any frameworks you like, but you must implement your NN on your own (no pre-defined/trained models like [`stable_baselines`](https://stable-baselines.readthedocs.io/en/master/)).\n", "\n", "You may use any simulator other than `gym` _however_:\n", "* The environment has to be similar to the classical control environments (or more complex like [`robosuite`](https://github.com/ARISE-Initiative/robosuite)).\n", "* You cannot choose a game/Atari/text based environment. The purpose of this challenge is to demonstrate an understanding of basic kinematic/dynamic systems." ] }, { "cell_type": "code", "source": [ "### WRITE YOUR CODE TO TRAIN THE MODEL HERE" ], "metadata": { "id": "CUhkTcoeynVv" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "**Write up**: \n", "* (Optional) link to the model on Hugging Face Hub: \n", "* Discuss whether you think your model has learned the optimal policy and potential methods for improving it and/or where it might fail." ], "metadata": { "id": "bWllPZhJyotg" } }, { "cell_type": "markdown", "metadata": { "id": "rbrRbrISa5J_" }, "source": [ "# 4. Theory / Linear Algebra " ] }, { "cell_type": "markdown", "metadata": { "id": "KFkLRCzTXTzL" }, "source": [ "**Implement Contrastive PCA** Read [this paper](https://www.nature.com/articles/s41467-018-04608-8) and implement contrastive PCA in Python.\n", "\n", "* First, please discuss what kind of dataset this would make sense to use this method on\n", "* Implement the method in Python (do not use previous implementations of the method if they already exist)\n", "* Then create a synthetic dataset and apply the method to the synthetic data. Compare with standard PCA.\n" ] }, { "cell_type": "markdown", "source": [ "**Write up**: Discuss what kind of dataset it would make sense to use Contrastive PCA" ], "metadata": { "id": "TpyqWl-ly0wy" } }, { "cell_type": "code", "source": [ "### WRITE YOUR CODE HERE" ], "metadata": { "id": "1CQzUSfQywRk" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "# 5. Systems" ], "metadata": { "id": "dlqmZS5Hy6q-" } }, { "cell_type": "markdown", "source": [ "**Inference on the edge**: Measure the inference times in various computationally-constrained settings\n", "\n", "* Pick a few different speech detection models (we suggest looking at models on the [Hugging Face Hub](https://huggingface.co/models?pipeline_tag=automatic-speech-recognition&sort=downloads))\n", "* Simulate different memory constraints and CPU allocations that are realistic for edge devices that might run such models, such as smart speakers or microcontrollers, and measure what is the average inference time of the models under these conditions \n", "* How does the inference time vary with (1) choice of model (2) available system memory (3) available CPU (4) size of input?\n", "\n", "Are there any surprising discoveries? (Note that this coding challenge is fairly open-ended, so we will be considering the amount of effort invested in discovering something interesting here)." ], "metadata": { "id": "QW_eiDFw1QKm" } }, { "cell_type": "code", "source": [ "### WRITE YOUR CODE HERE" ], "metadata": { "id": "OYp94wLP1kWJ" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "**Write up**: What surprising discoveries do you see?" ], "metadata": { "id": "yoHmutWx2jer" } } ] }