Computer_Vision/Chapter03/Varying_learning_rate_on_non_scaled_data.ipynb

2051 lines
256 KiB
Plaintext
Raw Normal View History

2024-02-13 03:34:51 +01:00
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"accelerator": "GPU",
"colab": {
"name": "Varying_learning_rate_on_non_scaled_data.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": {
"2d72b65a1f4c465cb8915d21a4ded81a": {
"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_db11204073db42099a81f19a9ef35a57",
"IPY_MODEL_676ea1ac89f14b8eae9fb1b4110999eb"
],
"layout": "IPY_MODEL_4258a98ff8d8436f813aa29764089d7e"
}
},
"4258a98ff8d8436f813aa29764089d7e": {
"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
}
},
"db11204073db42099a81f19a9ef35a57": {
"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_36e6a6c0c8fd4a1284f31cb11fe5be07",
"max": 1,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_cf8d7d6369bb4f7a92a02f57336ec3eb",
"value": 1
}
},
"676ea1ac89f14b8eae9fb1b4110999eb": {
"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_d8e28abad66f4ece93da1f30c682e289",
"placeholder": "",
"style": "IPY_MODEL_e89d5fb85edb41968d3265c027423dd1",
"value": " 26427392/? [00:20<00:00, 3846154.66it/s]"
}
},
"cf8d7d6369bb4f7a92a02f57336ec3eb": {
"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"
}
},
"36e6a6c0c8fd4a1284f31cb11fe5be07": {
"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
}
},
"e89d5fb85edb41968d3265c027423dd1": {
"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": ""
}
},
"d8e28abad66f4ece93da1f30c682e289": {
"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
}
},
"fa55a956e0ec426684ffb0bdd2aaf65d": {
"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_8d2e6d4ec31543e7964121dfa4fe1f9f",
"IPY_MODEL_301fccdfd2254c658701abd2d5b9368e"
],
"layout": "IPY_MODEL_51267828ab3a4313b0e6012f6bf0b328"
}
},
"51267828ab3a4313b0e6012f6bf0b328": {
"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
}
},
"8d2e6d4ec31543e7964121dfa4fe1f9f": {
"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_88443dd117e5459fbff8729f7e0f7ac7",
"max": 1,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_b97cec467a56407483e60df732c5b038",
"value": 1
}
},
"301fccdfd2254c658701abd2d5b9368e": {
"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_d3687ee113de4e6aa32b51dbae4ae439",
"placeholder": "",
"style": "IPY_MODEL_b37c0ec1fefa4a628c2b2aaa0eafdc37",
"value": " 32768/? [00:03<00:00, 8840.11it/s]"
}
},
"b97cec467a56407483e60df732c5b038": {
"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"
}
},
"88443dd117e5459fbff8729f7e0f7ac7": {
"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
}
},
"b37c0ec1fefa4a628c2b2aaa0eafdc37": {
"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": ""
}
},
"d3687ee113de4e6aa32b51dbae4ae439": {
"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
}
},
"f0216a2a6381403aa3e4100f4ae05a0b": {
"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_f134ca2f225841f58f880fe94cda0682",
"IPY_MODEL_2dcb661d6ebc4cfb9217ee14f4dcc6fe"
],
"layout": "IPY_MODEL_111c4426dc2a451383d4235ed11de4af"
}
},
"111c4426dc2a451383d4235ed11de4af": {
"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
}
},
"f134ca2f225841f58f880fe94cda0682": {
"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_ae440217fb4f48269a215aa1548c7bd1",
"max": 1,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_212e04d78edb4e3f98d52e43961118c2",
"value": 1
}
},
"2dcb661d6ebc4cfb9217ee14f4dcc6fe": {
"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_dab4a4ef69b0414392602812bd054d4f",
"placeholder": "",
"style": "IPY_MODEL_3775293154cd4d5b9433d9ddf3cc7ecb",
"value": " 4423680/? [00:02<00:00, 1569289.74it/s]"
}
},
"212e04d78edb4e3f98d52e43961118c2": {
"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"
}
},
"ae440217fb4f48269a215aa1548c7bd1": {
"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
}
},
"3775293154cd4d5b9433d9ddf3cc7ecb": {
"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": ""
}
},
"dab4a4ef69b0414392602812bd054d4f": {
"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
}
},
"0e18c3f0a671480aae5b419040f68b69": {
"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_ad36ad050558442998f0e00eb89d262b",
"IPY_MODEL_58cc93d98ec546f1ba7b7414fef8e1cd"
],
"layout": "IPY_MODEL_a5d70c71fbb6452ab21e283210129f6e"
}
},
"a5d70c71fbb6452ab21e283210129f6e": {
"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
}
},
"ad36ad050558442998f0e00eb89d262b": {
"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_91b0bf8c64a14494b8e23049fa4a9ee7",
"max": 1,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_d8ac9b97251c418397239b49db8a2c9b",
"value": 1
}
},
"58cc93d98ec546f1ba7b7414fef8e1cd": {
"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_fc18640e80a34c54a00e9fb8feba2b21",
"placeholder": "",
"style": "IPY_MODEL_941b82bd3e7e46ab958b66a6ab8e431f",
"value": " 8192/? [00:00<00:00, 9504.00it/s]"
}
},
"d8ac9b97251c418397239b49db8a2c9b": {
"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"
}
},
"91b0bf8c64a14494b8e23049fa4a9ee7": {
"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
}
},
"941b82bd3e7e46ab958b66a6ab8e431f": {
"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": ""
}
},
"fc18640e80a34c54a00e9fb8feba2b21": {
"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/Varying_learning_rate_on_non_scaled_data.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "code",
"metadata": {
"id": "-BdJ4Kt46Qsq",
"outputId": "00ce7b7f-06a9-4d4e-e00c-15b35851d56e",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 437,
"referenced_widgets": [
"2d72b65a1f4c465cb8915d21a4ded81a",
"4258a98ff8d8436f813aa29764089d7e",
"db11204073db42099a81f19a9ef35a57",
"676ea1ac89f14b8eae9fb1b4110999eb",
"cf8d7d6369bb4f7a92a02f57336ec3eb",
"36e6a6c0c8fd4a1284f31cb11fe5be07",
"e89d5fb85edb41968d3265c027423dd1",
"d8e28abad66f4ece93da1f30c682e289",
"fa55a956e0ec426684ffb0bdd2aaf65d",
"51267828ab3a4313b0e6012f6bf0b328",
"8d2e6d4ec31543e7964121dfa4fe1f9f",
"301fccdfd2254c658701abd2d5b9368e",
"b97cec467a56407483e60df732c5b038",
"88443dd117e5459fbff8729f7e0f7ac7",
"b37c0ec1fefa4a628c2b2aaa0eafdc37",
"d3687ee113de4e6aa32b51dbae4ae439",
"f0216a2a6381403aa3e4100f4ae05a0b",
"111c4426dc2a451383d4235ed11de4af",
"f134ca2f225841f58f880fe94cda0682",
"2dcb661d6ebc4cfb9217ee14f4dcc6fe",
"212e04d78edb4e3f98d52e43961118c2",
"ae440217fb4f48269a215aa1548c7bd1",
"3775293154cd4d5b9433d9ddf3cc7ecb",
"dab4a4ef69b0414392602812bd054d4f",
"0e18c3f0a671480aae5b419040f68b69",
"a5d70c71fbb6452ab21e283210129f6e",
"ad36ad050558442998f0e00eb89d262b",
"58cc93d98ec546f1ba7b7414fef8e1cd",
"d8ac9b97251c418397239b49db8a2c9b",
"91b0bf8c64a14494b8e23049fa4a9ee7",
"941b82bd3e7e46ab958b66a6ab8e431f",
"fc18640e80a34c54a00e9fb8feba2b21"
]
}
},
"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": "2d72b65a1f4c465cb8915d21a4ded81a",
"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": "fa55a956e0ec426684ffb0bdd2aaf65d",
"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": "f0216a2a6381403aa3e4100f4ae05a0b",
"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": "0e18c3f0a671480aae5b419040f68b69",
"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": "S4Ss3qAj6cCN"
},
"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": "MhUgyxQv6dWF"
},
"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": "markdown",
"metadata": {
"id": "XxBVyrwixgx-"
},
"source": [
"### High Learning Rate"
]
},
{
"cell_type": "code",
"metadata": {
"id": "wHgNxifc6edk"
},
"source": [
"class FMNISTDataset(Dataset):\n",
" def __init__(self, x, y):\n",
" x = x.float()\n",
" x = x.view(-1,28*28)\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-1)\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": "CfnVtUMO6nhR"
},
"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": "wAN-GtKb6o83"
},
"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": "7EhlA61S6qM3"
},
"source": [
"trn_dl, val_dl = get_data()\n",
"model, loss_fn, optimizer = get_model()"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "h-yph5GO6rQ6",
"outputId": "18df4a22-014b-4925-f827-be715d7c8762",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 108
}
},
"source": [
"train_losses, train_accuracies = [], []\n",
"val_losses, val_accuracies = [], []\n",
"for epoch in range(5):\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",
" 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",
" val_epoch_accuracy = np.mean(val_is_correct)\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": [
"0\n",
"1\n",
"2\n",
"3\n",
"4\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "HtZsoP8w6sNY",
"outputId": "62f7dfff-924c-4259-e2fd-c4114d0ddb60",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 337
}
},
"source": [
"epochs = np.arange(5)+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 0.1 learning rate')\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 0.1 learning rate')\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": "iVBORw0KGgoAAAANSUhEUgAAAYUAAACgCAYAAADjNXB5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3de3xU1b338c9XoEQIgoBQBAU8CrbcEgigIjSorTcUxCulQg71xuPjtV5Aa6G1nPqc0r4op2qLdwstWq3Uu1YkAmKPAqKCoPUSLIqAKBAMIODv+WOvDEPMJDPJTCaQ3/v1mtfs69prr7n89lp777VlZjjnnHMAB2Q7A8455+oPDwrOOediPCg455yL8aDgnHMuxoOCc865GA8KzjnnYjwopJmkZySNTfey2SSpRNJJGUjXJB0Zhv8g6ZZklq3BdkZLer6m+awi3UJJa9Kdbm1IOlzSVkmNqlimxmWZTpKKJV2Uhe1WW0YNmQcFIHxByl9fS9oWNz46lbTM7FQzeyDdy+7vzOwyM7u1tulI6hL+9BrHpT3LzH5Q27T3BWb2kZnlmtluSM8fr6RrJH0qaYukeyU1TbDctyQ9Eg4iTFJhbbabKRXLKJsq+75mmwcFIHxBcs0sF/gIOCNu2qzy5erTB+dcXZB0MjABOBHoDBwB/LyKVRYCPwI+zXzuKleffqf7Ym3Eg0IVypsHJN0o6VPgPkkHS3pS0gZJX4ThTnHrxI7MJBVJWihpalj2Q0mn1nDZrpLmSyqV9IKk2yXNTJDvZPJ4q6SXQ3rPS2obN/9CSaslbZR0cxXlMzAcQTaKm3aWpDfD8ABJr0jaJGmtpN9L+laCtO6X9Mu48evDOp9IGldh2dMlvR6OXP8taXLc7PnhfVOo6R1bXrZx6x8n6TVJm8P7ccmWTVUkfSesv0nSCklnxs07TdLbIc2PJV0XprcNn88mSZ9LWiDpG79LST+X9D9huImkLyX9OowfKGm7pNbxR56SpgCDgd+Hsvh9XJInSfpX2O7tkpRgt8YC95jZCjP7ArgVKKpsQTP7ysymmdlCIOWjcEnjJK0M39nnJHWOm/e78FlvkbRE0uC4eZMV1VBmStoCFFX1OarC0XkSv4cxcb+HW1RFc2r4Ht8p6WlJXwJDU/2+VlcWGWdm/op7ASXASWG4ENgF/D+gKXAg0AY4G2gGtAD+CsyJW78YuCgMFwE7gYuBRsB44BNANVj2FWAq8C3geGALMDPBPiSTx/eBbmGfioHbwrzvAluBIWGffxvK4KQE23of+H7c+F+BCWG4H3AM0BjoAqwEro5b1oAjw/D9wC/D8CnAOqAn0Bz4c4VlC4FeRAc1vcOyI8K8LmHZxnHbKQIWhuHWwBfAhSFfo8J4m+rKppJ9LwTWhOEmwHvATeEzOgEoBbqH+WuBwWH4YKBvGP4V8IewfhOiP3FVsq0TgLfC8HEhj/8bN++NyvafuO9YhXJ/EmgFHA5sAE5JsI9vAOfHjbcN67ep5ne0BiisZplY3oDhofy+Ez6XnwKL4pb9EdH3ujHwE6KaSE6YN5notzMifCfKP7dE3/HKyqi638Px4XOdGraV6PdwP7AZGBTykkPq39cqyyLTL68pVO9rYJKZ7TCzbWa20cweNbMyMysFpgDfq2L91WZ2l0Xtlw8AHYD2qSwr6XCgP/Azi47GFgKPJ9pgknm8z8zeNbNtwMNAXph+DvCkmc03sx3ALaEMEvkL0R8rkloAp4VpmNkSM/unme0ysxLgj5XkozLnhfwtN7MviX708ftXbGZvmdnXZvZm2F4y6QKcDvzLzP4U8vUXYBVwRtwyicqmKscAuUR/Jl+Z2YtEf7yjwvydwHclHWRmX5jZ0rjpHYDOZrbTzBZY+Geo4BXgKEltiAL2PUBHSblh319Kcv/L3WZmm8zsI2BeFfuYS/QnV658uEWK26vOZcCvzGylme0C/gvIKz9CNrOZ4Xu9y8x+Q3TA0j1u/VfMbE74TmwL01L5HKv6PTxhZgvN7CvgZ0R/4lX5u5m9HPKyvQbf1yrLItM8KFRvg5ltLx+R1EzSH0N1cgtR9a+VErcdxtpWzawsDOamuOyhwOdx0wD+nSjDSeYxvs23LC5Ph8anHf6UNybaFtFR/EhFJx9HAkvNbHXIR7fQNPJpyMd/ER1pVmevPACrK+zfQEnzFDWPbSb6ESXVxBPSXl1h2mqgY9x4orKpNs9mFh9A49M9myhgrpb0UnkzAfBroqPC5yV9IGlCZYmHP6vFRH8mQ4iCwCKiI9KaBIVk93ErcFDcePlwaYrbq05n4HehOWsT8DkgQvlJui40p2wO81uy92de2e8hlc8x2d9DGVX/Hr6Rlxp8X6ssi0zzoFC9ikcFPyE6QhloZgcR/UAh+tAyZS3QWlKzuGmHVbF8bfK4Nj7tsM02iRY2s7eJ/vxOBX5IFCTK3Ul0FH5UyMdNNckDURNHvD8T1ZQOM7OWRM0v5elWdxT3CdGPLt7hwMdJ5Ku6dA+rcD4glq6ZvWZmw4F2wByio1HMrNTMfmJmRwBnAtdKOjHBNl4iairKB14L4ycDA9jTNl1RbbtBXgH0iRvvA6wzs+r+GFP1b+BSM2sV9zrQzBaF8wc3ENUgDzazVkQ1lvjvUqa6e14LxJ+PK29CrkrFvKT6fU1YFjXagxR5UEhdC2Ab0Ymh1sCkTG8wHHkvBiYruuzvWPZu7khnHh8Bhkk6XtFJ4V9Q/ffkz8BVRMHnrxXysQXYKuloovMkyXiY6GThd0NQqpj/FkQ1p+2SBhAFo3IbiJq7jkiQ9tNAN0k/DCdjzydqN34yybwl8r9ER5g3KDoRXEj0Gc0On9loSS3NbCdRmXwNIGmYpCPDid7NRCdoEzXXvQSMAd4OTRnFwEXAh2a2IcE660hcFsl4EPhx+CxaEbVv359oYUlNJeWE0W9Jygn7Vp0/ABMl9QjptJR0bpjXgui81gagsaSfsXftJZMeAc5QdHHCt4iaMlM9AEz1+1pVWWScB4XUTSM6GfUZ8E/g2Tra7mjgWKKq6y+Bh4AdCZatcR7NbAVwOdEf/Vqik7DV3aBV3kb6opl9Fjf9OqIfQClwV8hzMnl4JuzDi0RNKy9WWOT/AL+QVErUxvtw3LplROdQXg7V72MqpL0RGEZUm9pIdAQ6rEK+Uxb+pM8gqjF9BtwBjDGzVWGRC4GS0Ix2GdHnCXAU8AJRM80rwB1mNi/BZhYRfa7ltYK3ge0kriUA/A44J1zFMr0G+/Us8N9E5x0+IqoVxoK0oqus4u/leYfogKQj8FwYrrYt3MweI7qgY3Yoo+VEZUlI51ng3bD97VTRfJpO4fdwBTCb6PewFVhP4t9eZVL6vlZTFhlXfmWL28dIeghYZWYZr6k45yLhxP4moibRD7Odn0zwmsI+QlJ/Sf8h6QBJpxBdtjYn2/lybn8n6Yxw8UZzoktS3yK6dH2/5EFh3/FtojbkrcB0YLyZvZ7VHDnXMAwnupDgE6LmvgsSXDa8X8hY85Gke4nabtebWc8wbTLRzVnlJ8VuMrOnw7yJwI+JTrRdaWbPZSRjzjnnEspkUBhCdFT7YIWgsNXMplZY9rtEJysHEF0X/ALQzepBh1XOOdeQZKz5yMzmE910kYzhwGyL7hr+kOiKkwGZyptzzrnKZaM3wf8raQzRdfc/saiTrY5El06WW0MSd++1bdvWunTpUqNMfPnllzRv3rxG6zZUXmap8fJKjZdXampTXkuWLPnMzA6pbF5dB4U7iXpZtPD+G2BclWtUIOkS4BKA9u3bM3Xq1GrW2NsLL7Tj7ruPYP36prRrt4OLLvqAk05an1IaDdXWrVvJzU2mxwcHXl6p8vJKTW3Ka+jQoRW7etnDMtjbHlEPgMurmwdMBCbGzXsOOLa69Pv162epmDnTrFkzM9jzatYsmu6qN2/evGxnYZ/i5ZUaL6/U1Ka8gMVWH3pJldQhbvQsojv1IOoX5IJwi3xXosu+Xk339m++GcrK9p5WVhZNd845l8HmI0l/IepHvK2i59hOAgol5RE1H5UAl0J0K7mkh4lu298FX
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAACgCAYAAAAWy/vJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO2deXgV1fn4Py+LgUDYNYDBBKtCFcgGKCAFiv0JQlFAUUABrYKoWFwQ6oZWcautSK1WrQoqCihfcaFYK4ugWBURLCAU0aCRRQVZIoKBvL8/ziRcLndN7s3N8n6eZ547c+acM++8d+a8c7b3iKpiGIZhGP7USLQAhmEYRsXEDIRhGIYREDMQhmEYRkDMQBiGYRgBMQNhGIZhBMQMhGEYhhEQMxBhEJEFIjIy1nETiYjkichZcchXReQkb//vInJbJHFLcZ3hIvJWaeU0IkNEuovIhhDnM7z/sVZ5yhVElrg80xFcN6SOKjtV0kCISIHPViQiP/kcD48mL1Xtq6ozYh23qqOqV6rqXWXNJ1AhpKozVfX/lTVvIzSqukxV2xQfl7UQFsf9IrLD2+4XEQkSt4WIvCYiW7z/P6O0140n/jpKJCLSU0TyY5lnlTQQqlq/eAO+An7rEzazOF5F+PIxjGKqwfM4GjgPyAQ6AL8FxgSJWwS8CQwuH9ECIyI1E3n9YjzjWv7ltapW6Q3IA87y9nsC+cBEYBvwHNAYeAP4DvjB20/zSb8EuNzbHwW8Czzoxf0S6FvKuK2BpcBe4G3gb8DzQe4hEhnvAt7z8nsLaOZz/hJgM7ADuMVXJ37XOd3TS02fsIHAp95+Z+B9YBewFXgEOMYnrgInefvTgbt9zk3w0mwBLvOL2w/4BNgDfA3c4ZPuKy9ugbd1KdatT5yuwEfAbu+3a6S6iVLPTYBnvHv4AZjnc+5cYJV3D5uAPv7Pn3d8R/H/DGR49/Y77z6XeuEvef/Dbu8ZOc0nfV3gz97/uRv3jNUF5gPj/O7nU2BggPucAdzg7R/vyXC1d/wLYCfu47EnkO+FP4crtH/y/oebfOQf6cn/PXBLiHdxOTDa5/h3wH/CvL+1vGtkRPGe1wAmef/DDmAO0MQnbij9TgceA/4J/Aic5eV9o6fP3cBsoI5vmeInR8C43vmbOPweXI7PexDgnpYAU3DP7k/AScClwGe4Z/kLYIwXt54Xp4jD70rLcLoIt1XJGkQYmuNe9HTcF00N3EufDpyAU/IjIdKfDmwAmgEPAE8FqyaHifsC8CHQFFdoXBLimpHIOAz38BwHHIN7SBGRU3EP/CW4B6YpkBboIqr6Ae6l+LVfvi94+4eA67z76QL0Bq4KITeeDH08eX4DnIx76Xz5ERgBNMIZi7Eicp537lfebyN1NcD3/fJugiscp3n39hdgvog09buHo3QTgHB6fg5IBk7z8nrIk6Ez8CzOCDbyZM4Lpo8A9AB+CZztHS/A6ek4YCUw0yfug0Auzig2wRU4RbhC/+LiSCKSiSv85we43ju4gq342l9wWM89gGWqWuSbQFUv4cja+AM+p88E2uCeh9tF5JdB7vM0YLXP8WovLNaMw9VUeuCe+R9wH2DFhNIvuOdlCpCCM8AAQ4A+uA+7DriPlGAEjOu9B9fjnv+TOPwfhOISXDmVgvso+BboDzTAPdMPiUiOqv4I9AW26OHWki0R6CI0kVqSyrpxdA3iZ3wseoD4WcAPflbct1bwuc+5ZNwXQPNo4uIKn4NAss/55wlSg4hQxlt9jq8C3vT2bwdm+Zyr5+ngqBqEd/5u4GlvPwVXeKcHiTseeMXnOGANAngauM8n3imE/nKaCjzk7Wd4cWv5nB+FV4PAvUAf+qV/HxgVTjfR6BlogSuIGweI93ixvKGeP+/4Do6uQZwYQoZGXpyGOAP2E5AZIF4d3Mt/snf8IPBokDx/4cWtAfwd18xTXFOYAVzv8774fx373kux/L61rA+Bi4Jc9xDQ1uf4ZC+9hLj/0tQgPgN6+5xrART6PkOB9Ovz3D4bIO+LfY4fAP4eQkfB4j4N3Otz7iTC1yD+GOa+5wG/DyRLtLoItFXHGsR3qrq/+EBEkkXkcRHZLCJ7cFXORiHaHrcV76jqPm+3fpRxWwI7fcLANa0EJEIZt/ns7/ORqaVv3uq+NHYEuxautjBIRJKAQcBKVd3syXGKiLwhIts8Oe7B1SbCcYQMuC8h3/s7XUQWi8h3IrIbuDLCfIvz3uwXthn39VxMMN0cQRg9t8L9Zz8ESNoKV4UvLSW6EZGaInKfiGzyZMjzTjXztjqBruU907OBi7226qG4Gs9RqOomnOHPArrjmtK2iEgb3JfmO1HKH5F+cc0eDXyOGwAF6pVcMSQdeEVEdonILlwheQhIDaPfYgK9i5HeY6i4/u9B0Hc+WBwR6Ssi/xGRnd69nUPodyWoLiK4drU0EP4P4w246vHpqtqAw1XtYM1GsWAr0EREkn3CWoWIXxYZt/rm7V2zabDIqroOV8D25cjmJXBNVetxX6kNgJtLIwOuBuXLC8BrQCtVbYj7qi3ON1zhsQX3EvhyAvBNBHL5E0rPX+P+s0YB0n2N+yoPxI+42mMxzQPE8b3HYbj+jLNwtYYMHxm+B/aHuNYMYDiuqWef+jXH+fEOcD6uD+kb73gkrh9mVZA0ZS3I1+I6qIvJ9MJizde4/r5GPlsd7z5D6beYWBusYrZyZPNuqHf+KFm8j7a5uNphqqo2wvWVhHpXQukiLNXRQPiTgqu27/LasyfH+4LeF/kK4A4ROUZEuuBGdMRDxpeB/iJypogcA/yR8P/7C8DvcQXkS35y7AEKRKQtMDZCGeYAo0TkVM9A+cufgvs63++15w/zOfcdrmnnxCB5/xM4RUSGiUgtEbkQOBX3VRwtQfWsqltxbdePikhjEaktIsUG5CngUhHpLSI1ROR4Tz/gCtuLvPgdcYVyOBkO4Gp5ybhaWrEMRbhmir+ISEvva7iLV3DgGYQiXCd2wNqDD+8A1+BqSeCaM67BNd0dCpJmO8H/h0h4Frje009LnEGeHiyyiNQBkrzDJO84Ev4OTBGRdC+fY0XkXO9cUP2WA3Nwz8kvvfcg6DyhIByD08d3wEER6Qv4DvfeDjQVkYY+YaF0ERYzEK69uy7u6+w/uKF15cFwXEfvDly7/2zcgxuIUsuoqmuBq3GF/lZc23O4sdIv4poaFqnq9z7hN+IK773Ak57MkciwwLuHRcDn3q8vVwF/FJG9uD6TOT5p9+GN5PCqyWf45b0D12l3A06XNwH9/eSOlHB6vgTXfrse11k43pPhQ7wOQ9zIlXc4XKu5jcNt/ndyZI0sEM/ianDfAOs8OXy5EfgvbrTWTuB+jnyPnwXa4/q0QvEOrrAsNhDv4grMpUFTwL3Ard7/EKyjPxSPA6/j5F+D60B/vPikuHlK3X3iF4+YAqfznyK8zsO4Gulb3jP1H9yAEQiv37jhvQfTgMW496D42sHee//0e4Frce/HD7h38TWf8+tx7+4X3n/UktC6CIvEvvnPKA0iMhtYr6pxr8EYVRcRGYEbSnpmomUxQuON9loDJKnqwUTLEwirQSQIEekkIr/wmiT64NpF5yVaLqPy4jVbXAU8kWhZjMCIyEARSRKRxrja3+sV1TiAGYhE0hzX7luAq3aOVdVPEiqRUWkRkbNxbdPbCd+MZSSOMbjmyU240USR9uMlBGtiMgzDMAJiNQjDMAwjIGYgDMMwjIBUGe+RzZo104yMjFKn//HHH6lXr17sBKrimL6iw/QVHaav6CiLvj7++OPvVfXYQOeqjIHIyMhgxYoVpU6/ZMkSevbsGTuBqjimr+gwfUWH6Ss6yqIvEfF3VVOCNTEZhmEYATEDoQozZ8KhYN4FDMMwqidmIBYuhIsv5uRp05yxMAzDMIAq1AdRas46CyZO5Pj774d774Wbb060RIZRZgoLC8nPz2f//v3hI1dAGjZsyGeffZZoMSoNkeirTp06pKWlUbt27YjzjZuBEJGncU7UvlXVdl7YBbgFU34JdFbVFV54N5wr6Z+Boaq60XOrP
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "Oe7U2lsn8Cub",
"outputId": "55ac716f-5d75-4afd-af9f-ba9194caaf56",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
}
},
"source": [
"for ix, par in enumerate(model.parameters()):\n",
" if(ix==0):\n",
" plt.hist(par.cpu().detach().numpy().flatten())\n",
" plt.title('Distribution of weights conencting input to hidden layer')\n",
" plt.show()\n",
" elif(ix ==1):\n",
" plt.hist(par.cpu().detach().numpy().flatten())\n",
" plt.title('Distribution of biases of hidden layer')\n",
" plt.show()\n",
" elif(ix==2):\n",
" plt.hist(par.cpu().detach().numpy().flatten())\n",
" plt.title('Distribution of weights conencting hidden to output layer')\n",
" plt.show()\n",
" elif(ix ==3):\n",
" plt.hist(par.cpu().detach().numpy().flatten())\n",
" plt.title('Distribution of biases of output layer')\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"
}
},
{
"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": "EFAUGptW7By6"
},
"source": [
""
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "qFosnD377CVI"
},
"source": [
"### Medium learning rate"
]
},
{
"cell_type": "code",
"metadata": {
"id": "qixgqA-x7Dzv"
},
"source": [
"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"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "7RJpjJAc7G1Y"
},
"source": [
"trn_dl, val_dl = get_data()\n",
"model, loss_fn, optimizer = get_model()"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "AXEL4biQ7KGE",
"outputId": "2adc56a3-c749-4de2-f8d5-16b96bc08a50",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 108
}
},
"source": [
"train_losses, train_accuracies = [], []\n",
"val_losses, val_accuracies = [], []\n",
"for epoch in range(5):\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",
" 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",
" val_epoch_accuracy = np.mean(val_is_correct)\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": [
"0\n",
"1\n",
"2\n",
"3\n",
"4\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "lg-Po1mj7MD6",
"outputId": "b8cbcd71-344a-4571-948c-110823586c47",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 337
}
},
"source": [
"epochs = np.arange(5)+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 0.001 learning rate')\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 0.001 learning rate')\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": "CgmXa6F67d-C",
"outputId": "2a263e17-bb10-403c-accd-f0b85c265272",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
}
},
"source": [
"for ix, par in enumerate(model.parameters()):\n",
" if(ix==0):\n",
" plt.hist(par.cpu().detach().numpy().flatten())\n",
" plt.title('Distribution of weights conencting input to hidden layer')\n",
" plt.show()\n",
" elif(ix ==1):\n",
" plt.hist(par.cpu().detach().numpy().flatten())\n",
" plt.title('Distribution of biases of hidden layer')\n",
" plt.show()\n",
" elif(ix==2):\n",
" plt.hist(par.cpu().detach().numpy().flatten())\n",
" plt.title('Distribution of weights conencting hidden to output layer')\n",
" plt.show()\n",
" elif(ix ==3):\n",
" plt.hist(par.cpu().detach().numpy().flatten())\n",
" plt.title('Distribution of biases of output layer')\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"
}
},
{
"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": "markdown",
"metadata": {
"id": "L7emwfEi7eo_"
},
"source": [
"### Low learning rate"
]
},
{
"cell_type": "code",
"metadata": {
"id": "XDRXpRl87f2p"
},
"source": [
"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-5)\n",
" return model, loss_fn, optimizer "
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "qZojB4U47iuN"
},
"source": [
"trn_dl, val_dl = get_data()\n",
"model, loss_fn, optimizer = get_model()"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "uJ12zMlZ7kt7",
"outputId": "5623307d-6d2e-436d-96eb-b20d3556004c",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 108
}
},
"source": [
"train_losses, train_accuracies = [], []\n",
"val_losses, val_accuracies = [], []\n",
"for epoch in range(5):\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",
" 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",
" val_epoch_accuracy = np.mean(val_is_correct)\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": [
"0\n",
"1\n",
"2\n",
"3\n",
"4\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "-3bQsBA37mn_",
"outputId": "8f24486d-2467-4edd-cae8-41aed81e5c82",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 337
}
},
"source": [
"epochs = np.arange(5)+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 0.00001 learning rate')\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 0.00001 learning rate')\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": "r2Gnn6Gq70BN",
"outputId": "1792e99d-f09f-44a2-89ea-e7228a3c9d52",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
}
},
"source": [
"for ix, par in enumerate(model.parameters()):\n",
" if(ix==0):\n",
" plt.hist(par.cpu().detach().numpy().flatten())\n",
" plt.title('Distribution of weights conencting input to hidden layer')\n",
" plt.show()\n",
" elif(ix ==1):\n",
" plt.hist(par.cpu().detach().numpy().flatten())\n",
" plt.title('Distribution of biases of hidden layer')\n",
" plt.show()\n",
" elif(ix==2):\n",
" plt.hist(par.cpu().detach().numpy().flatten())\n",
" plt.title('Distribution of weights conencting hidden to output layer')\n",
" plt.show()\n",
" elif(ix ==3):\n",
" plt.hist(par.cpu().detach().numpy().flatten())\n",
" plt.title('Distribution of biases of output layer')\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"
}
},
{
"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": "1COLvsAL77V9"
},
"source": [
""
],
"execution_count": null,
"outputs": []
}
]
}