Computer_Vision/Chapter03/Steps_to_build_a_neural_network_on_FashionMNIST.ipynb

1414 lines
88 KiB
Plaintext
Raw Normal View History

2024-02-13 03:34:51 +01:00
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "Steps_to_build_a_neural_network_on_FashionMNIST.ipynb",
"provenance": [],
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"accelerator": "GPU",
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"e31d611ee71f4a80aa4ec9d51cc8936b": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"state": {
"_view_name": "HBoxView",
"_dom_classes": [],
"_model_name": "HBoxModel",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.5.0",
"box_style": "",
"layout": "IPY_MODEL_729d34c9fbb745c2a84afe06d99945d1",
"_model_module": "@jupyter-widgets/controls",
"children": [
"IPY_MODEL_886bbc0c33c640fc8a0fd7a0215516ee",
"IPY_MODEL_a1bb82009d384bd79357b9250b677f95"
]
}
},
"729d34c9fbb745c2a84afe06d99945d1": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"886bbc0c33c640fc8a0fd7a0215516ee": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"state": {
"_view_name": "ProgressView",
"style": "IPY_MODEL_36f104bd67e04971aae25c8707b8cc46",
"_dom_classes": [],
"description": "",
"_model_name": "FloatProgressModel",
"bar_style": "success",
"max": 1,
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": 1,
"_view_count": null,
"_view_module_version": "1.5.0",
"orientation": "horizontal",
"min": 0,
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_7b33a4f3417d454ba9b6492a280a8445"
}
},
"a1bb82009d384bd79357b9250b677f95": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_426c9cd5a38c44b88b6b6a8ec05cb3a3",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": " 26427392/? [00:09<00:00, 2751059.12it/s]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_0a1c2bc4404540abaf3bb883ba61ae53"
}
},
"36f104bd67e04971aae25c8707b8cc46": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"state": {
"_view_name": "StyleView",
"_model_name": "ProgressStyleModel",
"description_width": "initial",
"_view_module": "@jupyter-widgets/base",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.2.0",
"bar_color": null,
"_model_module": "@jupyter-widgets/controls"
}
},
"7b33a4f3417d454ba9b6492a280a8445": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"426c9cd5a38c44b88b6b6a8ec05cb3a3": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"state": {
"_view_name": "StyleView",
"_model_name": "DescriptionStyleModel",
"description_width": "",
"_view_module": "@jupyter-widgets/base",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.2.0",
"_model_module": "@jupyter-widgets/controls"
}
},
"0a1c2bc4404540abaf3bb883ba61ae53": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"1ffa47c9f7d4483b8260dab6fa18bf56": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"state": {
"_view_name": "HBoxView",
"_dom_classes": [],
"_model_name": "HBoxModel",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.5.0",
"box_style": "",
"layout": "IPY_MODEL_8069a600f97c4257b31d0bcef8a8bd22",
"_model_module": "@jupyter-widgets/controls",
"children": [
"IPY_MODEL_acf3a144f8f84af085493c1627ab308a",
"IPY_MODEL_07013acafa194b8ea586a954ce12b8f7"
]
}
},
"8069a600f97c4257b31d0bcef8a8bd22": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"acf3a144f8f84af085493c1627ab308a": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"state": {
"_view_name": "ProgressView",
"style": "IPY_MODEL_8582281317c742a3bb699121b3817500",
"_dom_classes": [],
"description": "",
"_model_name": "FloatProgressModel",
"bar_style": "success",
"max": 1,
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": 1,
"_view_count": null,
"_view_module_version": "1.5.0",
"orientation": "horizontal",
"min": 0,
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_6e61506f1ca2490bb5f8151d491e2d9b"
}
},
"07013acafa194b8ea586a954ce12b8f7": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_e517bcfee4424fc49a3efa5c1bb33c90",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": " 32768/? [00:00<00:00, 35199.83it/s]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_f85864830e2244eeba52d3aa1af68424"
}
},
"8582281317c742a3bb699121b3817500": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"state": {
"_view_name": "StyleView",
"_model_name": "ProgressStyleModel",
"description_width": "initial",
"_view_module": "@jupyter-widgets/base",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.2.0",
"bar_color": null,
"_model_module": "@jupyter-widgets/controls"
}
},
"6e61506f1ca2490bb5f8151d491e2d9b": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"e517bcfee4424fc49a3efa5c1bb33c90": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"state": {
"_view_name": "StyleView",
"_model_name": "DescriptionStyleModel",
"description_width": "",
"_view_module": "@jupyter-widgets/base",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.2.0",
"_model_module": "@jupyter-widgets/controls"
}
},
"f85864830e2244eeba52d3aa1af68424": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"159ecaad7ab947d7af7188a0c3a48eef": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"state": {
"_view_name": "HBoxView",
"_dom_classes": [],
"_model_name": "HBoxModel",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.5.0",
"box_style": "",
"layout": "IPY_MODEL_a191e6a7a10f4eb9967d5211b5d00f1a",
"_model_module": "@jupyter-widgets/controls",
"children": [
"IPY_MODEL_001f7a0aadc549e0bcc72d6b4daaf61f",
"IPY_MODEL_194d27fb38bb444e9205ffa6c62a91de"
]
}
},
"a191e6a7a10f4eb9967d5211b5d00f1a": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"001f7a0aadc549e0bcc72d6b4daaf61f": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"state": {
"_view_name": "ProgressView",
"style": "IPY_MODEL_df00f27c500242f9924536df29e68d51",
"_dom_classes": [],
"description": "",
"_model_name": "FloatProgressModel",
"bar_style": "success",
"max": 1,
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": 1,
"_view_count": null,
"_view_module_version": "1.5.0",
"orientation": "horizontal",
"min": 0,
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_48084929b0b24dac8db633938c9c04a8"
}
},
"194d27fb38bb444e9205ffa6c62a91de": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_1481aafe63a846e8bbad4fe632d20370",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": " 4423680/? [00:03<00:00, 1202459.79it/s]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_572055270464482caef383c029bb97f0"
}
},
"df00f27c500242f9924536df29e68d51": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"state": {
"_view_name": "StyleView",
"_model_name": "ProgressStyleModel",
"description_width": "initial",
"_view_module": "@jupyter-widgets/base",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.2.0",
"bar_color": null,
"_model_module": "@jupyter-widgets/controls"
}
},
"48084929b0b24dac8db633938c9c04a8": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"1481aafe63a846e8bbad4fe632d20370": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"state": {
"_view_name": "StyleView",
"_model_name": "DescriptionStyleModel",
"description_width": "",
"_view_module": "@jupyter-widgets/base",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.2.0",
"_model_module": "@jupyter-widgets/controls"
}
},
"572055270464482caef383c029bb97f0": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"1e0c992b0d0d49e48c3da1a9c49f766f": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"state": {
"_view_name": "HBoxView",
"_dom_classes": [],
"_model_name": "HBoxModel",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.5.0",
"box_style": "",
"layout": "IPY_MODEL_143ecc16ba4c49cd8e02ed17cdfd9063",
"_model_module": "@jupyter-widgets/controls",
"children": [
"IPY_MODEL_fd790ee9d775403ebe9f81641c86e99d",
"IPY_MODEL_c214a1cfa504412681c94882640d0213"
]
}
},
"143ecc16ba4c49cd8e02ed17cdfd9063": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"fd790ee9d775403ebe9f81641c86e99d": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"state": {
"_view_name": "ProgressView",
"style": "IPY_MODEL_e99df8899f784699a43ca407b6f9c812",
"_dom_classes": [],
"description": "",
"_model_name": "FloatProgressModel",
"bar_style": "success",
"max": 1,
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": 1,
"_view_count": null,
"_view_module_version": "1.5.0",
"orientation": "horizontal",
"min": 0,
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_1c661ec87b7a4eed825b63f6fa817845"
}
},
"c214a1cfa504412681c94882640d0213": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_7c171b47bbb149b09506d77e90fa4b86",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": " 8192/? [00:00<00:00, 9414.43it/s]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_88b3925f199d454380647fbc96fef799"
}
},
"e99df8899f784699a43ca407b6f9c812": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"state": {
"_view_name": "StyleView",
"_model_name": "ProgressStyleModel",
"description_width": "initial",
"_view_module": "@jupyter-widgets/base",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.2.0",
"bar_color": null,
"_model_module": "@jupyter-widgets/controls"
}
},
"1c661ec87b7a4eed825b63f6fa817845": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"7c171b47bbb149b09506d77e90fa4b86": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"state": {
"_view_name": "StyleView",
"_model_name": "DescriptionStyleModel",
"description_width": "",
"_view_module": "@jupyter-widgets/base",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.2.0",
"_model_module": "@jupyter-widgets/controls"
}
},
"88b3925f199d454380647fbc96fef799": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": 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/Steps_to_build_a_neural_network_on_FashionMNIST.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "code",
"metadata": {
"id": "EsETisp31EJ0",
"outputId": "23b244f8-bd1a-4db0-f535-b81e81294a98",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 455,
"referenced_widgets": [
"e31d611ee71f4a80aa4ec9d51cc8936b",
"729d34c9fbb745c2a84afe06d99945d1",
"886bbc0c33c640fc8a0fd7a0215516ee",
"a1bb82009d384bd79357b9250b677f95",
"36f104bd67e04971aae25c8707b8cc46",
"7b33a4f3417d454ba9b6492a280a8445",
"426c9cd5a38c44b88b6b6a8ec05cb3a3",
"0a1c2bc4404540abaf3bb883ba61ae53",
"1ffa47c9f7d4483b8260dab6fa18bf56",
"8069a600f97c4257b31d0bcef8a8bd22",
"acf3a144f8f84af085493c1627ab308a",
"07013acafa194b8ea586a954ce12b8f7",
"8582281317c742a3bb699121b3817500",
"6e61506f1ca2490bb5f8151d491e2d9b",
"e517bcfee4424fc49a3efa5c1bb33c90",
"f85864830e2244eeba52d3aa1af68424",
"159ecaad7ab947d7af7188a0c3a48eef",
"a191e6a7a10f4eb9967d5211b5d00f1a",
"001f7a0aadc549e0bcc72d6b4daaf61f",
"194d27fb38bb444e9205ffa6c62a91de",
"df00f27c500242f9924536df29e68d51",
"48084929b0b24dac8db633938c9c04a8",
"1481aafe63a846e8bbad4fe632d20370",
"572055270464482caef383c029bb97f0",
"1e0c992b0d0d49e48c3da1a9c49f766f",
"143ecc16ba4c49cd8e02ed17cdfd9063",
"fd790ee9d775403ebe9f81641c86e99d",
"c214a1cfa504412681c94882640d0213",
"e99df8899f784699a43ca407b6f9c812",
"1c661ec87b7a4eed825b63f6fa817845",
"7c171b47bbb149b09506d77e90fa4b86",
"88b3925f199d454380647fbc96fef799"
]
}
},
"source": [
"from torch.utils.data import Dataset, DataLoader\n",
"import torch\n",
"import torch.nn as nn\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n",
"from torchvision import datasets\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": "e31d611ee71f4a80aa4ec9d51cc8936b",
"version_minor": 0,
"version_major": 2
},
"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": "1ffa47c9f7d4483b8260dab6fa18bf56",
"version_minor": 0,
"version_major": 2
},
"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",
"\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "159ecaad7ab947d7af7188a0c3a48eef",
"version_minor": 0,
"version_major": 2
},
"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"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "1e0c992b0d0d49e48c3da1a9c49f766f",
"version_minor": 0,
"version_major": 2
},
"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"
],
"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"
},
{
"output_type": "stream",
"text": [
"\n",
"\n",
"\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "q0jVrDC71Gha"
},
"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)"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "1HXarxIk1IVs"
},
"source": [
"def get_data(): \n",
" train = FMNISTDataset(tr_images, tr_targets) \n",
" trn_dl = DataLoader(train, batch_size=32, shuffle=True)\n",
" return trn_dl"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "Q_MGNCCo1JvC"
},
"source": [
"from torch.optim import SGD\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",
" loss_fn = nn.CrossEntropyLoss()\n",
" optimizer = SGD(model.parameters(), lr=1e-2)\n",
" return model, loss_fn, optimizer"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "c2wvP4rI1LYm"
},
"source": [
"def train_batch(x, y, model, opt, loss_fn):\n",
" model.train() # <- let's hold on to this until we reach dropout section\n",
" # call your model like any python function on your batch of inputs\n",
" prediction = model(x)\n",
" # compute loss\n",
" batch_loss = loss_fn(prediction, y)\n",
" # based on the forward pass in `model(x)` compute all the gradients of \n",
" # 'model.parameters()'\n",
" batch_loss.backward()\n",
" # apply new-weights = f(old-weights, old-weight-gradients) where \n",
" # \"f\" is the optimizer\n",
" optimizer.step()\n",
" # Flush gradients memory for next batch of calculations\n",
" optimizer.zero_grad()\n",
" return batch_loss.item()"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "4ECX-kaM1NWP"
},
"source": [
"@torch.no_grad()\n",
"def accuracy(x, y, model):\n",
" model.eval() # <- let's wait till we get to dropout section\n",
" # get the prediction matrix for a tensor of `x` images\n",
" prediction = model(x)\n",
" # compute if the location of maximum in each row coincides \n",
" # with ground truth\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": "71H93mxE1PLT"
},
"source": [
"trn_dl = get_data()\n",
"model, loss_fn, optimizer = get_model()"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "9eL6egKc1QzM",
"outputId": "4fd3dc60-d8f3-4b29-933f-2ab7aa7643ef",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 108
}
},
"source": [
"losses, accuracies = [], []\n",
"for epoch in range(5):\n",
" print(epoch)\n",
" epoch_losses, 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",
" epoch_losses.append(batch_loss)\n",
" epoch_loss = np.array(epoch_losses).mean()\n",
" for ix, batch in enumerate(iter(trn_dl)):\n",
" x, y = batch\n",
" is_correct = accuracy(x, y, model)\n",
" epoch_accuracies.extend(is_correct)\n",
" epoch_accuracy = np.mean(epoch_accuracies)\n",
" losses.append(epoch_loss)\n",
" accuracies.append(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": "CJi9ozS31cGp",
"outputId": "b2091fac-a5e1-4075-aefe-d04a0cf0e879",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 346
}
},
"source": [
"epochs = np.arange(5)+1\n",
"plt.figure(figsize=(20,5))\n",
"plt.subplot(121)\n",
"plt.title('Loss value over increasing epochs')\n",
"plt.plot(epochs, losses, label='Training Loss')\n",
"plt.legend()\n",
"plt.subplot(122)\n",
"plt.title('Accuracy value over increasing epochs')\n",
"plt.plot(epochs, accuracies, label='Training Accuracy')\n",
"plt.gca().set_yticklabels(['{:.0f}%'.format(x*100) for x in plt.gca().get_yticks()]) \n",
"plt.legend()"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f209f1d2518>"
]
},
"metadata": {
"tags": []
},
"execution_count": 9
},
{
"output_type": "display_data",
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1440x360 with 2 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "VxNXR0rI1r8w"
},
"source": [
""
],
"execution_count": null,
"outputs": []
}
]
}