1461 lines
86 KiB
Plaintext
1461 lines
86 KiB
Plaintext
|
{
|
|||
|
"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": [
|
|||
|
"<a href=\"https://colab.research.google.com/github/PacktPublishing/Hands-On-Computer-Vision-with-PyTorch/blob/master/Chapter03/Learning_rate_annealing.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"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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
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 432x288 with 1 Axes>"
|
|||
|
]
|
|||
|
},
|
|||
|
"metadata": {
|
|||
|
"tags": [],
|
|||
|
"needs_background": "light"
|
|||
|
}
|
|||
|
},
|
|||
|
{
|
|||
|
"output_type": "display_data",
|
|||
|
"data": {
|
|||
|
"image/png": "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
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 432x288 with 1 Axes>"
|
|||
|
]
|
|||
|
},
|
|||
|
"metadata": {
|
|||
|
"tags": [],
|
|||
|
"needs_background": "light"
|
|||
|
}
|
|||
|
}
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"metadata": {
|
|||
|
"id": "539Fi1Kw_1-n"
|
|||
|
},
|
|||
|
"source": [
|
|||
|
""
|
|||
|
],
|
|||
|
"execution_count": null,
|
|||
|
"outputs": []
|
|||
|
}
|
|||
|
]
|
|||
|
}
|