Computer_Vision/Chapter03/Varying_learning_rate_on_scaled_data.ipynb

2051 lines
270 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_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": {
"dae59549ef954024b3c36d449e4641d9": {
"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_e08286687cbd40dfa558da2b8d71c6fc",
"IPY_MODEL_a3f6e11dfddd42e9b6067ae0ac370ed6"
],
"layout": "IPY_MODEL_d0d2f9b00ba04fbc826786f670173113"
}
},
"d0d2f9b00ba04fbc826786f670173113": {
"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
}
},
"e08286687cbd40dfa558da2b8d71c6fc": {
"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_111dd48b60b54627945bb5d13cca94a3",
"max": 1,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_88389412e16a4584a85916e15454f7f0",
"value": 1
}
},
"a3f6e11dfddd42e9b6067ae0ac370ed6": {
"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_50f95788611244cf8af9bc6a927da130",
"placeholder": "",
"style": "IPY_MODEL_2e94773230b0455ea544ee4e868f35ab",
"value": " 26427392/? [00:20<00:00, 70376905.63it/s]"
}
},
"88389412e16a4584a85916e15454f7f0": {
"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"
}
},
"111dd48b60b54627945bb5d13cca94a3": {
"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
}
},
"2e94773230b0455ea544ee4e868f35ab": {
"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": ""
}
},
"50f95788611244cf8af9bc6a927da130": {
"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
}
},
"9c17f851329549adb7c6c0ff1b4b72bb": {
"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_51c391a3d08a45a98a621f318807c0a4",
"IPY_MODEL_a54941c3f2984eb188e7d709207718a3"
],
"layout": "IPY_MODEL_6b54b67a969f4dfcb8e42ac452ed2bf2"
}
},
"6b54b67a969f4dfcb8e42ac452ed2bf2": {
"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
}
},
"51c391a3d08a45a98a621f318807c0a4": {
"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_a78c1daf40bf488c8bf4e9ba6cbaebd8",
"max": 1,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_b2e0c5eb158e40cd826b37d782532ec0",
"value": 1
}
},
"a54941c3f2984eb188e7d709207718a3": {
"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_6a37b969b4034f5982c103c20fec07f1",
"placeholder": "",
"style": "IPY_MODEL_dab92fc6f1864ded828be1b86e9d394e",
"value": " 32768/? [00:00<00:00, 84606.30it/s]"
}
},
"b2e0c5eb158e40cd826b37d782532ec0": {
"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"
}
},
"a78c1daf40bf488c8bf4e9ba6cbaebd8": {
"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
}
},
"dab92fc6f1864ded828be1b86e9d394e": {
"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": ""
}
},
"6a37b969b4034f5982c103c20fec07f1": {
"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
}
},
"eb35d1f806bb4293832b352372a7e818": {
"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_a7797f3647754db698bb3cfc0e012a45",
"IPY_MODEL_c50d39ed89274af889b7d5a750eafccc"
],
"layout": "IPY_MODEL_485adcc616a64367af619c8d8ef186ee"
}
},
"485adcc616a64367af619c8d8ef186ee": {
"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
}
},
"a7797f3647754db698bb3cfc0e012a45": {
"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_8b121d7f8284450f84487956d58594ba",
"max": 1,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_a7dcae9789ae4846bb7d25c15eb3c871",
"value": 1
}
},
"c50d39ed89274af889b7d5a750eafccc": {
"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_da2505878dfe4fbf94f69bfb628b4328",
"placeholder": "",
"style": "IPY_MODEL_e9719aa12ee942519174b95260e006c9",
"value": " 4423680/? [00:00<00:00, 16810916.27it/s]"
}
},
"a7dcae9789ae4846bb7d25c15eb3c871": {
"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"
}
},
"8b121d7f8284450f84487956d58594ba": {
"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
}
},
"e9719aa12ee942519174b95260e006c9": {
"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": ""
}
},
"da2505878dfe4fbf94f69bfb628b4328": {
"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
}
},
"921bffbe641f48edbec6a240d1febc60": {
"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_03db6468a1204187989c5a9ca399ca89",
"IPY_MODEL_b28fbff9823c4ba2b1ab6f0d1ce010a9"
],
"layout": "IPY_MODEL_37bea11f5a444c45b2bf6cc01cc15ed5"
}
},
"37bea11f5a444c45b2bf6cc01cc15ed5": {
"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
}
},
"03db6468a1204187989c5a9ca399ca89": {
"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_20bfc65f6e084666a145f3e0c82e6e51",
"max": 1,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_6cdb0d3567704d1eae6971553158a93d",
"value": 1
}
},
"b28fbff9823c4ba2b1ab6f0d1ce010a9": {
"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_6b7e31e72bbe4701b15c9b20ccad3f6e",
"placeholder": "",
"style": "IPY_MODEL_fea2440f9b04432ba305fddd87654150",
"value": " 8192/? [00:00<00:00, 26759.59it/s]"
}
},
"6cdb0d3567704d1eae6971553158a93d": {
"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"
}
},
"20bfc65f6e084666a145f3e0c82e6e51": {
"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
}
},
"fea2440f9b04432ba305fddd87654150": {
"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": ""
}
},
"6b7e31e72bbe4701b15c9b20ccad3f6e": {
"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_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": "33956944-49c6-4207-c3fe-25e5feaf93bf",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 437,
"referenced_widgets": [
"dae59549ef954024b3c36d449e4641d9",
"d0d2f9b00ba04fbc826786f670173113",
"e08286687cbd40dfa558da2b8d71c6fc",
"a3f6e11dfddd42e9b6067ae0ac370ed6",
"88389412e16a4584a85916e15454f7f0",
"111dd48b60b54627945bb5d13cca94a3",
"2e94773230b0455ea544ee4e868f35ab",
"50f95788611244cf8af9bc6a927da130",
"9c17f851329549adb7c6c0ff1b4b72bb",
"6b54b67a969f4dfcb8e42ac452ed2bf2",
"51c391a3d08a45a98a621f318807c0a4",
"a54941c3f2984eb188e7d709207718a3",
"b2e0c5eb158e40cd826b37d782532ec0",
"a78c1daf40bf488c8bf4e9ba6cbaebd8",
"dab92fc6f1864ded828be1b86e9d394e",
"6a37b969b4034f5982c103c20fec07f1",
"eb35d1f806bb4293832b352372a7e818",
"485adcc616a64367af619c8d8ef186ee",
"a7797f3647754db698bb3cfc0e012a45",
"c50d39ed89274af889b7d5a750eafccc",
"a7dcae9789ae4846bb7d25c15eb3c871",
"8b121d7f8284450f84487956d58594ba",
"e9719aa12ee942519174b95260e006c9",
"da2505878dfe4fbf94f69bfb628b4328",
"921bffbe641f48edbec6a240d1febc60",
"37bea11f5a444c45b2bf6cc01cc15ed5",
"03db6468a1204187989c5a9ca399ca89",
"b28fbff9823c4ba2b1ab6f0d1ce010a9",
"6cdb0d3567704d1eae6971553158a93d",
"20bfc65f6e084666a145f3e0c82e6e51",
"fea2440f9b04432ba305fddd87654150",
"6b7e31e72bbe4701b15c9b20ccad3f6e"
]
}
},
"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": "dae59549ef954024b3c36d449e4641d9",
"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": "9c17f851329549adb7c6c0ff1b4b72bb",
"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": "eb35d1f806bb4293832b352372a7e818",
"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": "921bffbe641f48edbec6a240d1febc60",
"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": "kWEHrvHpxC6Z"
},
"source": [
"### High Learning Rate"
]
},
{
"cell_type": "code",
"metadata": {
"id": "wHgNxifc6edk"
},
"source": [
"class FMNISTDataset(Dataset):\n",
" def __init__(self, x, y):\n",
" x = x.float()/255\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": "96d18492-ffaa-4db1-f86b-fabbabb9d5ac",
"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": "2fc9ff64-e257-403f-ca81-4b619d10eda4",
"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": "iVBORw0KGgoAAAANSUhEUgAAAYIAAACgCAYAAAAB6WsAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deXwUVbrw8d8DBAIkBAFFJEJABRVCElY1IOAyo4LgrsgIiKJyfV3AO8rIKKjDzLxX7lzlug2uozKD6/CquI1KhIijLLKD2xgwyihGIYkhkOV5/zjVSRO6k+7QnU7Sz/fz6U9XV506dfp0dz1Vp06fElXFGGNM/GoR6wIYY4yJLQsExhgT5ywQGGNMnLNAYIwxcc4CgTHGxDkLBMYYE+csEESAiLwhIpMjnTaWRCRPRM6IQr4qIsd604+IyB2hpK3HdiaKyNv1LWct+Y4SkfxI53soRKSHiBSLSMta0tS7LiNJRHJE5OoYbLfOOopncRsIvC+F71EpInv9Xk8MJy9VPVtV/xLptM2dql6nqvccaj4ikubt6Fr55b1IVX9xqHk3Baq6Q1WTVLUCIrOzFZEZIvJvESkUkSdEpE2QdK1F5EXvwEFFZNShbDdaatZRLAX6vsZa3AYC70uRpKpJwA7gXL95i3zpGtOHZUxDEJFfArOA04GeQG/grlpWyQV+Bfw7+qULrDH9TpviWUfcBoJgfKf+InKbiPwbeFJEDhOR10Rkl4j85E2n+q1TdQQmIlNEJFdE5ntpvxKRs+uZtpeILBeRIhF5R0QeFJFng5Q7lDLeIyIfePm9LSJd/JZfISLbRaRARGbXUj/DvCPFln7zzheRDd70UBH5UER2i8hOEXlARFoHyespEfmd3+tfe+t8KyJTa6QdIyKfeEeoX4vIXL/Fy73n3d4Z3cm+uvVb/xQRWSUie7znU0Ktm9qIyAne+rtFZLOIjPNbdo6IbPHy/EZE/tOb38X7fHaLyI8iskJEDvotishdIvK/3nSCiPwsIvd6r9uKSKmIdPI/whSRecAI4AGvLh7wy/IMEfnc2+6DIiJB3tZk4HFV3ayqPwH3AFMCJVTV/ap6n6rmAmEfbYvIVBHZ6n1n3xKRnn7L7vc+60IRWSMiI/yWzRV3JvKsiBQCU2r7HKXGUXgIv4dJfr+HO6SWplLve/ywiLwuIj8Do8P9vtZVF1GnqnH/APKAM7zpUUA58H+BNkBboDNwIdAOSAZeAJb4rZ8DXO1NTwHKgGlAS2A68C0g9Uj7ITAfaA0MBwqBZ4O8h1DK+CXQx3tPOcAfvWUnAsXAqd57/pNXB2cE2daXwJl+r18AZnnTg4CTgFZAGrAVuNkvrQLHetNPAb/zps8CvgP6A+2Bv9ZIOwpIxx28DPDSnuctS/PStvLbzhQg15vuBPwEXOGVa4L3unNddRPgvY8C8r3pBOAL4HbvMzoNKAL6est3AiO86cOAgd70H4BHvPUTcDtuCbCt04CN3vQpXhk/8lu2PtD7x+87VqPeXwM6Aj2AXcBZQd7jeuBSv9ddvPU71/E7ygdG1ZGmqmzAeK/+TvA+l98CK/3S/gr3vW4F3II740j0ls3F/XbO874Tvs8t2Hc8UB3V9XsY7n2u871tBfs9PAXsAbK9siQS/ve11rqI9sPOCAKrBOao6j5V3auqBar6kqqWqGoRMA8YWcv621X1UXXtkX8BugFdw0krIj2AIcCd6o66coFXgm0wxDI+qaqfqepe4Hkg05t/EfCaqi5X1X3AHV4dBPM33M4UEUkGzvHmoaprVPWfqlquqnnAnwOUI5BLvPJtUtWfcT90//eXo6obVbVSVTd42wslX4AxwOeq+oxXrr8B24Bz/dIEq5vanAQk4XYg+1X1PdzOdoK3vAw4UUQ6qOpPqrrWb343oKeqlqnqCvX2BjV8CBwnIp1xQfpxoLuIJHnv/f0Q37/PH1V1t6ruAJbV8h6TcDs2H990cpjbq8t1wB9UdauqlgO/BzJ9R8Kq+qz3vS5X1f/GHaT09Vv/Q1Vd4n0n9nrzwvkca/s9vKqquaq6H7gTt+Ouzf9T1Q+8spTW4/taa11EmwWCwHapaqnvhYi0E5E/e6eKhbhTu44SvC2wqq1UVUu8yaQw0x4F/Og3D+DrYAUOsYz+bbglfmU6yj9vb0dcEGxbuKP1C8RdQLwAWKuq271y9PGaPf7tleP3uCPKuhxQBmB7jfc3TESWiWv62oP74YTUfOPlvb3GvO1Ad7/XweqmzjKrqn/Q9M/3QlyQ3C4i7/uaAIB7cUd/b4vIv0RkVqDMvR3UatwO5FTcjn8l7sizPoEg1PdYDHTwe+2bLgpze3XpCdzvNVXtBn4EBK/+ROQ/vaaSPd7yFA78zAP9HsL5HEP9PZRQ++/hoLLU4/taa11EmwWCwGpG/1twRyLDVLUD7kcJ7oOKlp1AJxFp5zfv6FrSH0oZd/rn7W2zc7DEqroFt8M7G7gcFxh8HsYdbR/nleP2+pQB13zh76+4M6KjVTUF17Tiy7euo7VvcT80fz2Ab0IoV135Hl2jfb8qX1VdparjgSOAJbijTlS1SFVvUdXewDhgpoicHmQb7+OagbKAVd7rXwJDqW5rrulQhxTeDGT4vc4AvlPVunaG4foauFZVO/o92qrqSu96wK24M8XDVLUj7szE/7sUraGTdwL+19d8zcO1qVmWcL+vQeuiXu8gTBYIQpMM7MVd3OkEzIn2Br0j7NXAXHFd9E7mwKaMSJbxRWCsiAwXd2H3bur+bvwVuAkXcF6oUY5CoFhEjsdd9wjF87gLfid6gahm+ZNxZ0ilIjIUF4B8duGasnoHyft1oI+IXO5dUL0U1w78WohlC+Yj3JHkreIu5o7CfUaLvc9sooikqGoZrk4qAURkrIgc612s3YO7yBqsKe59YBKwxWumyAGuBr5S1V1B1vmO4HURiqeBq7zPoiOuvfqpYIlFpI2IJHovW4tIovfe6vII8BsR6eflkyIiF3vLknHXqXYBrUTkTg48S4mmF4FzxXUwaI1rpgz3oC/c72ttdRF1FghCcx/ugtIPwD+BNxtouxOBk3Gnpb8DngP2BUlb7zKq6mbgetzOfSfuQmpdf5rytXm+p6o/+M3/T9yXvgh41CtzKGV4w3sP7+GaTd6rkeQ/gLtFpAjXZvu837oluGsiH3in1ifVyLsAGIs7ayrAHWmOrVHusHk75nNxZ0Y/AA8Bk1R1m5fkCiDPayK7Dvd5AhwHvINrgvkQeEhVlwXZzErc5+o7+t8ClBL8bADgfuAir/fJgnq8rzeB/8JdR9iBO/urCsziekf5/9fmU9xBSHfgLW+6zrZtVf07rlPGYq+ONuHqEi+fN4HPvO2XUkvTaCR5v4cbgMW430Mx8D3Bf3uBhPV9raMuos7XO8U0ASLyHLBNVaN+RmKMcbyL87txzZ1fxbo80WBnBI2YiAwRkWNEpIWInIXrYrYk1uUyprkTkXO9Dhjtcd1HN+K6mTdLFggatyNxbcLFwAJguqp+EtMSGRMfxuM6A3yLa8q7LEgX32bBmoaMMSbO2RmBMcbEOQsExhgT5xrNiH2h6tKli6alpdVr3Z9//pn27dtHtkDNnNVZeKy+wmP1FZ5Dqa81a9b8oKqHB1rW5AJBWloaq1evDmudRYtg9mzYsUPp0UOYNw8mhnXHgfiVk5PDqFGjYl2MJsPqKzxWX+E5lPoSkZrDrFRpcoEgXIsWwTXXQEkJgLB9u3sNFgyMMQbi4BrB7Nm+IFCtpMTNN8YYEweBYMeO8OYbY0y8afZNQz16wPYALWM9ao5taYwJqqysjPz8fEpLS+tOHIaUlBS2bt0a0Tybs1DqKzExkdTUVBISEkLOt9kHgnnz/K8ROO3aufnGmNDk5+eTnJxMWloaoQ0sGpqioiKSkyN9v5vmq676UlUKCgrIz8+nV69eIecbtaYhbyjaj0VkvTda4UE3v/aGr31ORL4QkY9EJC3S5Zg4ERYuhJ49QUTp2dO9tgvFxoSutLSUzp07RzQImMgTETp37hz2mVs0rxHsA05T1QzcLeDOqjk8M
"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": "Oe7U2lsn8Cub",
"outputId": "74d286e1-f7ac-4df8-8881-365625253b19",
"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": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEICAYAAACktLTqAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAWQElEQVR4nO3ce5RlZX3m8e8jrSCIXHtY0A00RkaDZqJOq2RpDCM63tOaCYjjpVUSYsZrYBLxtjSJjrqSiDqJGhC1QaMSLwEviSJC0Kg4jUFB0Njh1jQNNHcENSK/+WO/jYeiqququ7pP1dvfz1pn1d77fffev73Pqaf2efepk6pCktSX+4y7AEnS3DPcJalDhrskdchwl6QOGe6S1CHDXZI6ZLjPI0k+kORNc7StA5L8OMkObf6cJL83F9tu2/vHJCvnanuz2O9bk1yf5JpJ2g5LctUm1p2z87s1ZfDhJDcl+fYk7S9O8vVNrD/lc5NkWZJKsmiK9rck+ejmVz9lTZt8bjT3Jn2CNfeSXA7sA9wJ/AK4GDgFOLGq7gKoqpfNYlu/V1VfmapPVV0JPGDLqr57f28BHlxVLxjZ/tPmYtuzrOMA4DjgwKq6brbrz/T8zgOPB54MLK2q22e78jieG80/XrlvW8+qql2BA4F3AK8FTp7rnUx1VdaBA4AbNifYF5gDgcs3J9j1Sx3/HsyI4T4GVXVLVZ0BPBdYmeThAEk+kuStbXrvJJ9PcnOSG5N8Lcl9kpzKEHKfa8MufzLyVvvoJFcCX53i7fevJPl2kluTnJ5kz7ave71lTnJ5kicleSrweuC5bX/fbe13D/O0ut6Y5Iok1yU5JclurW1jHSuTXNmGVN4w1blJsltbf0Pb3hvb9p8EnAns1+r4yCa28fq2n8uTPH9k+ej53aOd3w1t+OPzSZaO9H1xkkuT3JbksgnbeWmSS9p6X0pyYFueJCe0c3Brkgs3PreT1LhfkjPac7smye+35UcDHwR+ox3nn27iOP+y1XBZkqeNLB99bnZo/a5PcinwjAnbOCjJP7fjPBPYe0L7oUm+0V6H301y2IT9/HmSf2nrfznJPdbfRO3HJ/n3tt7FSZ7Tlt+vnZNfG+n7n5LckWRxm39mkgtaTd9I8l9G+l6e5LVJvgfcnu054KvKxzZ4AJcDT5pk+ZXAH7bpjwBvbdNvBz4A3Lc9fhPIZNsClgHFMMyzC3D/kWWLWp9zgHXAw1ufTwMfbW2HAVdNVS/wlo19R9rPYRgaAngpsAZ4EMNQ0GeAUyfUdlKr69eBnwG/OsV5OgU4Hdi1rftvwNFT1Tlh3cMYhr3eBewI/BZwO/CQSc7vXsD/AHZu+/p74B9a2y7ArSPr7Qs8rE2vaMf6qwzDmm8EvtHangKcD+wOpPXZd4pazwXeB+wEPALYADyxtb0Y+PomjvPFwM+B3wd2AP4QuHrk9TH63LwM+AGwP7AncPaE18U3R87XE4DbRl4XS4AbgKczXAg+uc0vHtnPvwP/uT235wDv2MRzc9XI/BHAfm27z23P076t7X3AO0f6vhr4XJt+JHAd8Nh27CsZXqs7jrxuL2jHe/9x/96P8+GV+/hdzfBLN9HPGULlwKr6eVV9rdqrdxPeUlW3V9VPpmg/taouquHt/puAI9NuuG6h5wPvqqpLq+rHwOuAoyZcNf1pVf2kqr4LfJch5O+h1XIU8Lqquq2qLgf+CnjhLOt5U1X9rKr+GfgCcOTEDlV1Q1V9uqruqKrbgLcx/DHY6C7g4UnuX1Xrq+r7bfnLgLdX1SVVdSfwf4BHtKv3nzP8oXgoQ9BeUlXrJznO/YHHAa+tqp9W1QUMV+svmsUxXlFVJ1XVL4BVDK+VfSbpdyTw7qpaW1U3Mlw0bKzjAODR/PJ8nQt8bmTdFwBfrKovVtVdVXUmsJoh7Df6cFX9W3vNncbwh2paVfX3VXV12+4ngR8Bj2nNq4DnJUmbfyFwaps+Bvjbqjqvqn5RVasYLhYOHdn8e9vxTvV7sF0w3MdvCXDjJMv/guEK8ctteOD4GWxr7Szar2B4RzCjt9HT2K9tb3Tbi7hn2Ix+uuUOJr/Zu3eraeK2lsyilpvqnmPVV7T67iHJzkn+tg393MpwJb17kh3a+s9lCPL1Sb6Q5KFt1QOB97QhgZsZnrsAS6rqq8BfA38DXJfkxCQPnKTG/YAb2x+VzT3Ou89nVd3RJic7p/tx7+d9tG2y87XRgcARG4+1He/jGf6Q3KsOpn5e7yXJi0aGVm5meEe5dzue89q2Dmvn/cHAGSM1HTehpv2553M83e/BdsFwH6Mkj2b4hb7Xx9raletxVfUg4LeBY5McvrF5ik1Od2W//8j0AQxXmtczvCXeeaSuHYDFs9ju1Qy/dKPbvhO4dpr1Jrq+1TRxW+tmsY09kuwyYf2rJ+l3HPAQ4LFV9UCGIQkYgpqq+lJVPZkhyH7AMKwEQ3D8QVXtPvK4f1V9o6333qr6r8AhDMMVfzzJvq8G9kyy6xYc50yt597P+2jbZOdro7UM7/ZGj3WXqnrHlhTU3uWcBLwC2Kuqdgcuop37ZhXDO4cXAp+qqp+O1PS2CTXtXFUfH1nXr7rFcB+LJA9M8kzgEwzjmxdO0ueZSR7c3prewvDxybta87UM49uz9YIkhyTZGfgzhl+aXzCMa++U5BlJ7sswjrzjyHrXAsuSTPV6+TjwR+3m3AMYhio+2YYtZqzVchrwtiS7thA4Fpjt567/tN2Y+03gmQzj6RPtCvwEuDnDjeU3b2xIsk+SFS30fgb8mF+e+w8Ar0vysNZ3tyRHtOlHJ3lsO4e3Az8dWW/0ONcC3wDenmSndkPw6M04zpk4DXhVkqVJ9gDufgdYVVcwDLNsPF+PB541su5HgWcleUq7MbtThpvvS9kyuzAE8AaAJC9huHIf9VHgOQwBf8rI8pOAl7XznCS7tNftrugeDPdt63NJbmO4+ngDw42sl0zR92DgKwzB8k3gfVV1dmt7O/DG9rb0f89i/6cy3FS8huFG3qtg+PQO8L8Yxn3XMQTT6KdnNobjDUm+M8l2P9S2fS5wGUOovXIWdY16Zdv/pQzvaP6ubX+mrgFuYrg6/hjwsqr6wST93s1wE/B64FvAP4203Yfhj8rVDMMuv8Vw05Kq+izwTuATbTjnImDjJ1UeyBA+NzEMb9zAMLw2mecx3DC+Gvgs8ObaxP8tbIGTgC8x3Of4DsPN7lH/k+Hm5I0Mf+DuDtL2R2gFw6elNjC8bv+YLcyNqrqY4V7KNxkuHH4N+JcJfda2egv42sjy1Qw3kv+a4TyvYbjBrAk23l2XpHklyYeAq6vqjeOuZSHafj8DKmneSrIM+B2Gjz5qMzgsI2leSfLnDMNdf1FVl427noXKYRlJ6pBX7pLUoXkx5r733nvXsmXLxl2GJC0o559//vVVtXiytnkR7suWLWP16tXjLkOSFpQkV0zV5rCMJHXIcJekDhnuktQhw12SOmS4S1KHDHdJ6pDhLkkdMtwlqUOGuyR1aF78h6oWjmXHf2Es+738Hc8Yy36lhcord0nqkOEuSR0y3CWpQ4a7JHXIcJekDhnuktQhw12SOmS4S1KHDHdJ6pDhLkkdMtwlqUOGuyR1yHCXpA4Z7pLUIcNdkjpkuEtShwx3SeqQ4S5JHTLcJalDhrskdchwl6QOGe6S1CHDXZI6ZLhLUocMd0nqkOEuSR2aUbgn+aMk309yUZKPJ9kpyUFJzkuyJsknk9yv9d2xza9p7cu25gFIku5t2nBPsgR4FbC8qh4O7AAcBbwTOKGqHgzcBBzdVjkauKktP6H1kyRtQzMdllkE3D/JImBnYD3wROBTrX0V8Ow2vaLN09oPT5K5KVeSNBPThntVrQP+EriSIdRvAc4Hbq6qO1u3q4AlbXoJsLate2frv9fE7SY5JsnqJKs3bNiwpcchSRoxk2GZPRiuxg8C9gN2AZ66pTuuqhOranlVLV+8ePGWbk6SNGImwzJPAi6rqg1V9XPgM8DjgN3bMA3AUmBdm14H7A/Q2ncDbpjTqiVJmzSTcL8SODTJzm3s/
"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": "942c8acd-eca8-42a8-8121-5dbf3aef6b99",
"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": "99e3efca-568e-4e98-b8b6-0440815398b6",
"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": "9e9beb25-1807-4efd-8789-fc08b25fd98d",
"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": "6d4ef703-341e-4b7b-fc2f-6765daf7c5c9",
"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": "acecb0df-38e0-47a5-bd6a-41de268ac3ca",
"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": "iVBORw0KGgoAAAANSUhEUgAAAYIAAACgCAYAAAAB6WsAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deXxU5b348c+XJBKSDIRdTWRRBCprIAiCIptWrHXBFXNVrlXEq7jVtaikKr2t0nu9tNJetG4VRSvXraL4QwiL2CooIpu1WoJBVIgEEkIwCd/fH89JMgmZyUwyk22+79frvGbO9pznPDNnvnOe85zniKpijDEmdrVp6gwYY4xpWhYIjDEmxlkgMMaYGGeBwBhjYpwFAmOMiXEWCIwxJsZZIPCIyFsiclWkl21KIrJdRCZFIV0VkT7e+z+KyH2hLFuP7WSJyDv1zWeQdMeJSF6k020IEekhIkUiEhdkmXqXZWsgIjkick0TbLfOz6ala9GBwPtwKobDInLQbzwrnLRUdbKqPhPpZVs7VZ2hqg82NB0R6eX90MX7pb1QVc9saNotgaruUNUUVS2HyPzoicitIvKNiOwXkSdFpG2QZSeKyDYRKRaRFSLS029eW2/9/V56t0ViXRE5SkRe9v6wqIiMa8j+RkvNz6Yp1XacREKLDgTeh5OiqinADuCnftMWViwX6UIzprkTkR8DdwMTgZ7A8cAvAyzbBfg/4D6gE7AOeNFvkWzgRC+d8cCdInJWQ9f1rAH+DfimvvvaUM3p96HJzjpUtVUMwHZgkvd+HJAH3IX7gv0Z6Aj8FdgN7PXep/utnwNc472fhvuCzvWW/RcwuZ7L9gZWAYXAMuAx4LkA+xBKHh8E3vPSewfo4jf/CiAXyAdm+ZdJje2M9Molzm/aBcBG7/3JwPtAAbAL+D1wlN+yCvTx3j8NPOQ37w5vna+Bq2ss+xPgY2A/8BWQ7bfeDm/ZIm84paJs/ZYZDXwI7PNeR4daNjX2fxyQ5zf+I2/9AmAzcK7fvLOBLV6aO4HbveldvM+nAPgeWA20qWVbvwR+571PAA4Aj3jj7YAS3A9oL2//44E5QLk3rwj4vV+5zwA+97b7GCAB9vF54Fd+4xOBbwIsOx1Y6zeeDBwE+nvjXwNn+s1/EFjU0HVr5CEPGFfHMZ6Dd9x541cDW3HHylKgp9+8//G+Y/uB9cBpfvOygZeB57z51wT7/vh/NiEeh1dSdRzeR4Dj0O/4+QOwxPtuTCLM46SusghlaNFnBHU4GneA9cR9WdsAT3njPXBf1t8HWX8k8BnugH8Y+JOISD2WfR74AOiM+wJeEWSboeTxcuDfgW7AUcDtACJyEu4LdQVwrLe99No2oqp/x33pJtRI93nvfTlwq7c/p+B+RP4jSL7x8nCWl58zcP8Ca16fOIA7SFJxX/brReR8b95Y7zVV3Rnd+zXS7gS8Cczz9u2/gDdFpHONfTiibOrIcwLwBu5g7gbMBBaKSD9vkT8B16mqDxgILPem/xz349UV6A78AneA1rQSF3gARuACcMW+ngJ8pqrf+6+gqrNwgeVGryxu9Jt9jpfOYOAS4McBdm0A8Inf+CdA9xrlVeuyqnoA+AIYICIdgWNqSWtABNatNxE5D1fmU3CfwWrgBb9FPgSG4n4Dngf+IiKJfvPPwwWDVKCi9iCc70+w43A+kIXb9w5AWh27czku+PtwfyrDOk5CKIs6teZAcBiYraqHVPWgquar6mJVLVbVQlzBnx5k/VxVfVxdveAzuA+1ezjLikgP3EF7v6r+oKprgNcDbTDEPD6lqv9Q1YPAS7gvO8BFwF9VdZWqHsL9EzkcZP9eAKYCiIgP98/3BS8f61X1b6papqrbgf+tJR+1ucTL3ybvByG7xv7lqOqnqnpYVTd62wslXXAHxOeq+mcvXy8A24Cf+i0TqGyCGQWkAL/2PqPluH/6U735pcBJItJeVfeq6kd+04/B/fMqVdXV6v01q+F94ETvB3gsLrCkiUiKt+8rQ9z/Cr9W1QJV3QGsCLKPKbgzpwoV730hLFuxvM+bB0emVZFOQ9ZtiBnAf6rqVlUtA34FDK24PqGqz3nHU5mq/hZoC/TzW/99VX3V+y4e9KaF8/0Jdhy+oaprVPUH4H5q/4Pg7zVVfc/LS0k9jpOgZRGK1hwIdqtqScWIiCSJyP+KSK6I7MdV16QGqZOrrLNU1WLvbUqYyx4LfO83DdypXq1CzKN/XWqxX56O9U/b+yHOD7Qt3L+kKd4FxCnAR6qa6+Wjr4j8teJCI+6L1SVIWhWq5QF3euy/fyO9i4m7RWQf7gscSroVaefWmJZL9X9bgcqmzjyrqn/Q9E/3QlyQzBWRlSJyijf9EeCfwDsi8qWI3F1b4t4PxTrcgTwW98O/FhhD/QJBqPtYBLT3G694XxjCshXLF3rz4Mi0KtJpyLoN0RP4HxEpEJGK6jnB+9xE5HYR2Soi+7z5Haj+XavtOAzn+xPqcVhM8OPwiLzU4zgJWhahaM2BoGYU/jnuH8FIVW1P1SlWoOqeSNgFdBKRJL9pxwVZviF53OWftrfN2qoBAFDVLbgfvMlUrxYCV8W0DTjRy8cv6pMHXPWWv+dxZ0THqWoH4I9+6db1r+lr3BfeXw9cvX1DfA0cJyL+x0Jluqr6oaqeh6sCeBX37w9VLVTVn6vq8cC5wG0iMjHANlbiquEycFUWK3FVOifjgn1tGtot8GZgiN/4EOBbVa3tR6nasiKSDJwAbFbVvbjPtWZamyOwbkN8hauyS/Ub2qnqWhE5DbgTd4baUVVTcWci/t/haHW7vAu/KlkRaUeQ4zBAXsI9TgKWRaiZbs2BoCYfrs69wKtvnh3tDXr/sNcB2V5TuVOoXpURyTy+DJwjIqeKyFHAA9T9+T4P3IwLOH+pkY/9QJGI9AeuDzEPLwHTROQkLxDVzL8Pd4ZUIiIn4wJQhd24qqzjA6S9BOgrIpeLSLyIXAqchKvGaYi/4/7R3SkiCV4Txp8Ci7zPLEtEOqhqKa5MDgOIyDki0se7FrQPd10lUFXcSlyd7xavuiAHd4HyX6q6O8A63xK4LELxLPAz77NIBe7FXZiszSvAQBG50KtHvx/XcGCbX1r3ikhH7/twrV9aDVm3onlpRd39USKSGORanL8/AveIyAAvnQ4icrE3zweU4b5T8SJyP0eetUTLy8BPRWS0dxxmE/6fzXCPk2BlEZJYCgSP4lpp7AH+BrzdSNvNwl0UzAcewjWtOxRg2XrnUVU3Azfgftx34VoP1HXTVEXd43JV3eM3/Xbcl68QeJzqzQGD5eEtbx+W46pNltdY5D+AB0SkEPeD8ZLfusW4ayLveae4o2qknY+7UPpzXFneCZxTI99h836Yf4o7M9qDu9B3pd8P2RXAdq+KbAbu8wR3MXwZrvrjfWC+qq4IsJm1uM+14t//FlyLoEBnA+BavVwkIntFZF499uttXMOFFbiWJrn4BWYR2SzevTZeMLoQV/57cY0fLvNLbjbuAnAuLqg94qXfoHU9n+H+/KThWrsc5Mgzv9r27xXgN7iAvR/YhPsM8dJ5G/iHt90SglTJRpJ3HM4EFuGOwyLgOwIf87UJ6zipoyxCIrVf3zLRIiIvAttUNepnJMaYpuU1CijAVbP+q6nzE0gsnRE0CREZISIniEgbcc0rz8PVNRtjWiER+anX8CMZd3/Rp7h7CZotCwTRdzSuTrgI1wb+elX9uElzZIyJpvNwjRC+xlUhXhagaXGzYVVDxhgT46J2RiCuo6nvRGRTgPlZIrJRRD4VkbUiMqS25YwxxkRXNKuGngbOCjL/X8DpqjoI12/HgijmxRhjTABR63VPVVeJSK8g8/1vdvgbAfrFqalLly7aq1fAZIM6cOAAycnJ9Vo3VlmZhcfKKzxWXuFpSHmtX79+j6p2rW1ec+l+9WfAW6Es2KtXL9atWxdW4gsXwqxZsGOH0qOHMGcOZIX1tILYlZOTw7hx45o6Gy2GlVd4rLzC05DyEpGaXbRUzYvmxWLvjOCvqjowyDLjcTfxnBrg9ndEZDquB
"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": "d4f3a595-5815-4a0e-9602-b0c2417a89f6",
"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": []
}
]
}