{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "accelerator": "GPU", "colab": { "name": "Learning_rate_annealing.ipynb", "provenance": [], "include_colab_link": true }, "hide_input": false, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.4" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "121bf271756e48ee89011c118eb3acef": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_35dbe15d0d614a378a7194698f3b7d2b", "IPY_MODEL_c0bf00c159054eef944c32cffeaaf5ac" ], "layout": "IPY_MODEL_97fedc22f4b4451899057d4aa21cacc8" } }, "97fedc22f4b4451899057d4aa21cacc8": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "35dbe15d0d614a378a7194698f3b7d2b": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "info", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_6044bb55136243edb55d5fd1626ab6b0", "max": 1, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_b4e360589aa645ffb8b990fcfd2e6d4d", "value": 1 } }, "c0bf00c159054eef944c32cffeaaf5ac": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_f12288961ef7460bb62681f7d1d2bece", "placeholder": "​", "style": "IPY_MODEL_749f1cc5c99349f7b8bacb114bc8d124", "value": " 26427392/? [00:20<00:00, 783618.23it/s]" } }, "b4e360589aa645ffb8b990fcfd2e6d4d": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "initial" } }, "6044bb55136243edb55d5fd1626ab6b0": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "749f1cc5c99349f7b8bacb114bc8d124": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "f12288961ef7460bb62681f7d1d2bece": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "8312d26a60e94def95301e614028d928": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_4e7fd30b2aa94d00904c1820cf4da47f", "IPY_MODEL_afddf511606e4cecaa57c58a6354992f" ], "layout": "IPY_MODEL_9cb8510294dd4d249621c85239d714a2" } }, "9cb8510294dd4d249621c85239d714a2": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "4e7fd30b2aa94d00904c1820cf4da47f": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_79cee2e2202641059fd1904835f2fe7d", "max": 1, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_db6ff16b75b74c21a659ff7941fc050a", "value": 1 } }, "afddf511606e4cecaa57c58a6354992f": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_e75b3677fda849d1ab4e14f3fbe0a144", "placeholder": "​", "style": "IPY_MODEL_f350377c527b4acf96a584442524f611", "value": " 32768/? [00:00<00:00, 104238.56it/s]" } }, "db6ff16b75b74c21a659ff7941fc050a": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "initial" } }, "79cee2e2202641059fd1904835f2fe7d": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "f350377c527b4acf96a584442524f611": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "e75b3677fda849d1ab4e14f3fbe0a144": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "70b0035b0ed44a919284e59f882dfd67": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_b5abc6896a2f406eb51ff709a8d5bb65", "IPY_MODEL_79b82d2313cc4a56bf928dd2b4ad94fe" ], "layout": "IPY_MODEL_dff73ff9b86940ff988e98dca428a5c7" } }, "dff73ff9b86940ff988e98dca428a5c7": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "b5abc6896a2f406eb51ff709a8d5bb65": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_cb86ec154bd246b295794c57a692255a", "max": 1, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_f3704bae39fb48c49f68582136eeb829", "value": 1 } }, "79b82d2313cc4a56bf928dd2b4ad94fe": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_1b29c52020a042d1b118fb7b0b767e5b", "placeholder": "​", "style": "IPY_MODEL_d5b1b6422bc54ddd9aa0ad46eff9ab40", "value": " 4423680/? [00:00<00:00, 19038424.90it/s]" } }, "f3704bae39fb48c49f68582136eeb829": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "initial" } }, "cb86ec154bd246b295794c57a692255a": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "d5b1b6422bc54ddd9aa0ad46eff9ab40": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "1b29c52020a042d1b118fb7b0b767e5b": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "cf4c51e9500e41d4aa6717a2d650944e": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_b80749088da943c2acf8c0a77cac5abf", "IPY_MODEL_5bae4a76b2174963b69dbe97e9cc68e1" ], "layout": "IPY_MODEL_33b8fcc14a7b455e83d03b9ace66fc47" } }, "33b8fcc14a7b455e83d03b9ace66fc47": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "b80749088da943c2acf8c0a77cac5abf": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_0c21e2bfda3c4364bb845d8896a8f3df", "max": 1, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_d01a884210b340c090cd3721b186b41e", "value": 1 } }, "5bae4a76b2174963b69dbe97e9cc68e1": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_f7347e2bcb9042888fdd208af319692e", "placeholder": "​", "style": "IPY_MODEL_ea86a4f9ca0a4833943cec3e5feaa44f", "value": " 8192/? [00:00<00:00, 27717.98it/s]" } }, "d01a884210b340c090cd3721b186b41e": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "initial" } }, "0c21e2bfda3c4364bb845d8896a8f3df": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "ea86a4f9ca0a4833943cec3e5feaa44f": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "f7347e2bcb9042888fdd208af319692e": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } } } } }, "cells": [ { "cell_type": "markdown", "metadata": { "id": "view-in-github", "colab_type": "text" }, "source": [ "\"Open" ] }, { "cell_type": "code", "metadata": { "id": "US2PQ90V-TxM", "outputId": "81ec7fa2-0fde-4e01-dee9-48812856d2ea", "colab": { "base_uri": "https://localhost:8080/", "height": 437, "referenced_widgets": [ "121bf271756e48ee89011c118eb3acef", "97fedc22f4b4451899057d4aa21cacc8", "35dbe15d0d614a378a7194698f3b7d2b", "c0bf00c159054eef944c32cffeaaf5ac", "b4e360589aa645ffb8b990fcfd2e6d4d", "6044bb55136243edb55d5fd1626ab6b0", "749f1cc5c99349f7b8bacb114bc8d124", "f12288961ef7460bb62681f7d1d2bece", "8312d26a60e94def95301e614028d928", "9cb8510294dd4d249621c85239d714a2", "4e7fd30b2aa94d00904c1820cf4da47f", "afddf511606e4cecaa57c58a6354992f", "db6ff16b75b74c21a659ff7941fc050a", "79cee2e2202641059fd1904835f2fe7d", "f350377c527b4acf96a584442524f611", "e75b3677fda849d1ab4e14f3fbe0a144", "70b0035b0ed44a919284e59f882dfd67", "dff73ff9b86940ff988e98dca428a5c7", "b5abc6896a2f406eb51ff709a8d5bb65", "79b82d2313cc4a56bf928dd2b4ad94fe", "f3704bae39fb48c49f68582136eeb829", "cb86ec154bd246b295794c57a692255a", "d5b1b6422bc54ddd9aa0ad46eff9ab40", "1b29c52020a042d1b118fb7b0b767e5b", "cf4c51e9500e41d4aa6717a2d650944e", "33b8fcc14a7b455e83d03b9ace66fc47", "b80749088da943c2acf8c0a77cac5abf", "5bae4a76b2174963b69dbe97e9cc68e1", "d01a884210b340c090cd3721b186b41e", "0c21e2bfda3c4364bb845d8896a8f3df", "ea86a4f9ca0a4833943cec3e5feaa44f", "f7347e2bcb9042888fdd208af319692e" ] } }, "source": [ "from torchvision import datasets\n", "import torch\n", "data_folder = '~/data/FMNIST' # This can be any directory you want to \n", "# download FMNIST to\n", "fmnist = datasets.FashionMNIST(data_folder, download=True, train=True)\n", "tr_images = fmnist.data\n", "tr_targets = fmnist.targets" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ "Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-images-idx3-ubyte.gz to /root/data/FMNIST/FashionMNIST/raw/train-images-idx3-ubyte.gz\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "121bf271756e48ee89011c118eb3acef", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(FloatProgress(value=1.0, bar_style='info', max=1.0), HTML(value='')))" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Extracting /root/data/FMNIST/FashionMNIST/raw/train-images-idx3-ubyte.gz to /root/data/FMNIST/FashionMNIST/raw\n", "Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-labels-idx1-ubyte.gz to /root/data/FMNIST/FashionMNIST/raw/train-labels-idx1-ubyte.gz\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "8312d26a60e94def95301e614028d928", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(FloatProgress(value=1.0, bar_style='info', max=1.0), HTML(value='')))" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Extracting /root/data/FMNIST/FashionMNIST/raw/train-labels-idx1-ubyte.gz to /root/data/FMNIST/FashionMNIST/raw\n", "Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-images-idx3-ubyte.gz to /root/data/FMNIST/FashionMNIST/raw/t10k-images-idx3-ubyte.gz\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "70b0035b0ed44a919284e59f882dfd67", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(FloatProgress(value=1.0, bar_style='info', max=1.0), HTML(value='')))" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Extracting /root/data/FMNIST/FashionMNIST/raw/t10k-images-idx3-ubyte.gz to /root/data/FMNIST/FashionMNIST/raw\n", "Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-labels-idx1-ubyte.gz to /root/data/FMNIST/FashionMNIST/raw/t10k-labels-idx1-ubyte.gz\n", "\n", "\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "cf4c51e9500e41d4aa6717a2d650944e", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(FloatProgress(value=1.0, bar_style='info', max=1.0), HTML(value='')))" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Extracting /root/data/FMNIST/FashionMNIST/raw/t10k-labels-idx1-ubyte.gz to /root/data/FMNIST/FashionMNIST/raw\n", "Processing...\n", "Done!\n", "\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/torchvision/datasets/mnist.py:469: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at /pytorch/torch/csrc/utils/tensor_numpy.cpp:141.)\n", " return torch.from_numpy(parsed.astype(m[2], copy=False)).view(*s)\n" ], "name": "stderr" } ] }, { "cell_type": "code", "metadata": { "id": "Oh-XVKan-g2q" }, "source": [ "val_fmnist = datasets.FashionMNIST(data_folder, download=True, train=False)\n", "val_images = val_fmnist.data\n", "val_targets = val_fmnist.targets" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "QAtH6m0e-iKd" }, "source": [ "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "import numpy as np\n", "from torch.utils.data import Dataset, DataLoader\n", "import torch\n", "import torch.nn as nn\n", "device = 'cuda' if torch.cuda.is_available() else 'cpu'" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "1a6Ft27b-jTW" }, "source": [ "class FMNISTDataset(Dataset):\n", " def __init__(self, x, y):\n", " x = x.float()\n", " x = x.view(-1,28*28)/255\n", " self.x, self.y = x, y \n", " def __getitem__(self, ix):\n", " x, y = self.x[ix], self.y[ix] \n", " return x.to(device), y.to(device)\n", " def __len__(self): \n", " return len(self.x)\n", "\n", "from torch.optim import SGD, Adam\n", "def get_model():\n", " model = nn.Sequential(\n", " nn.Linear(28 * 28, 1000),\n", " nn.ReLU(),\n", " nn.Linear(1000, 10)\n", " ).to(device)\n", "\n", " loss_fn = nn.CrossEntropyLoss()\n", " optimizer = Adam(model.parameters(), lr=1e-3)\n", " return model, loss_fn, optimizer\n", "\n", "def train_batch(x, y, model, opt, loss_fn):\n", " model.train()\n", " prediction = model(x)\n", " batch_loss = loss_fn(prediction, y)\n", " batch_loss.backward()\n", " optimizer.step()\n", " optimizer.zero_grad()\n", " return batch_loss.item()\n", "\n", "def accuracy(x, y, model):\n", " model.eval()\n", " # this is the same as @torch.no_grad \n", " # at the top of function, only difference\n", " # being, grad is not computed in the with scope\n", " with torch.no_grad():\n", " prediction = model(x)\n", " max_values, argmaxes = prediction.max(-1)\n", " is_correct = argmaxes == y\n", " return is_correct.cpu().numpy().tolist()" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "TV6g7C3v-k62" }, "source": [ "def get_data(): \n", " train = FMNISTDataset(tr_images, tr_targets) \n", " trn_dl = DataLoader(train, batch_size=32, shuffle=True)\n", " val = FMNISTDataset(val_images, val_targets) \n", " val_dl = DataLoader(val, batch_size=len(val_images), shuffle=False)\n", " return trn_dl, val_dl" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "6O1wjRFi-mFG" }, "source": [ "@torch.no_grad()\n", "def val_loss(x, y, model):\n", " prediction = model(x)\n", " val_loss = loss_fn(prediction, y)\n", " return val_loss.item()" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "fNzWYrew-ndP" }, "source": [ "trn_dl, val_dl = get_data()\n", "model, loss_fn, optimizer = get_model()" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "-rKvZEha-ooh", "outputId": "1f853a8c-83da-4500-d334-5f2090d3973a", "colab": { "base_uri": "https://localhost:8080/", "height": 145 } }, "source": [ "from torch import optim\n", "scheduler = optim.lr_scheduler.ReduceLROnPlateau(optimizer, factor=0.5, patience=0, threshold = 0.001, verbose=True, min_lr = 1e-5, threshold_mode = 'abs')\n", "train_losses, train_accuracies = [], []\n", "val_losses, val_accuracies = [], []\n", "for epoch in range(30):\n", " #print(epoch)\n", " train_epoch_losses, train_epoch_accuracies = [], []\n", " for ix, batch in enumerate(iter(trn_dl)):\n", " x, y = batch\n", " batch_loss = train_batch(x, y, model, optimizer, loss_fn)\n", " train_epoch_losses.append(batch_loss) \n", " train_epoch_loss = np.array(train_epoch_losses).mean()\n", "\n", " for ix, batch in enumerate(iter(trn_dl)):\n", " x, y = batch\n", " is_correct = accuracy(x, y, model)\n", " train_epoch_accuracies.extend(is_correct)\n", " train_epoch_accuracy = np.mean(train_epoch_accuracies)\n", "\n", " for ix, batch in enumerate(iter(val_dl)):\n", " x, y = batch\n", " val_is_correct = accuracy(x, y, model)\n", " validation_loss = val_loss(x, y, model)\n", " scheduler.step(validation_loss)\n", " val_epoch_accuracy = np.mean(val_is_correct)\n", "\n", " train_losses.append(train_epoch_loss)\n", " train_accuracies.append(train_epoch_accuracy)\n", " val_losses.append(validation_loss)\n", " val_accuracies.append(val_epoch_accuracy)" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ "Epoch 2: reducing learning rate of group 0 to 5.0000e-04.\n", "Epoch 8: reducing learning rate of group 0 to 2.5000e-04.\n", "Epoch 11: reducing learning rate of group 0 to 1.2500e-04.\n", "Epoch 14: reducing learning rate of group 0 to 6.2500e-05.\n", "Epoch 15: reducing learning rate of group 0 to 3.1250e-05.\n", "Epoch 16: reducing learning rate of group 0 to 1.5625e-05.\n", "Epoch 17: reducing learning rate of group 0 to 1.0000e-05.\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "lX0dSmyE_GSm", "outputId": "3d8e1c75-6ca3-4bc0-eca3-7fd328e47ab3", "colab": { "base_uri": "https://localhost:8080/", "height": 337 } }, "source": [ "epochs = np.arange(30)+1\n", "import matplotlib.ticker as mtick\n", "import matplotlib.pyplot as plt\n", "import matplotlib.ticker as mticker\n", "%matplotlib inline\n", "plt.subplot(211)\n", "plt.plot(epochs, train_losses, 'bo', label='Training loss')\n", "plt.plot(epochs, val_losses, 'r', label='Validation loss')\n", "plt.gca().xaxis.set_major_locator(mticker.MultipleLocator(1))\n", "plt.title('Training and validation loss with learning rate scheduler')\n", "plt.xlabel('Epochs')\n", "plt.ylabel('Loss')\n", "plt.legend()\n", "plt.grid('off')\n", "plt.show()\n", "plt.subplot(212)\n", "plt.plot(epochs, train_accuracies, 'bo', label='Training accuracy')\n", "plt.plot(epochs, val_accuracies, 'r', label='Validation accuracy')\n", "plt.gca().xaxis.set_major_locator(mticker.MultipleLocator(1))\n", "plt.title('Training and validation accuracy with learning rate scheduler')\n", "plt.xlabel('Epochs')\n", "plt.ylabel('Accuracy')\n", "plt.gca().set_yticklabels(['{:.0f}%'.format(x*100) for x in plt.gca().get_yticks()]) \n", "plt.legend()\n", "plt.grid('off')\n", "plt.show()" ], "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "tags": [], "needs_background": "light" } }, { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "tags": [], "needs_background": "light" } } ] }, { "cell_type": "code", "metadata": { "id": "539Fi1Kw_1-n" }, "source": [ "" ], "execution_count": null, "outputs": [] } ] }