Computer_Vision/Chapter03/Varying_batch_size.ipynb
2024-02-13 03:34:51 +01:00

1630 lines
113 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "Varying_batch_size.ipynb",
"provenance": [],
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"accelerator": "GPU",
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"b0ef1441e384495594506d7944f85aea": {
"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_d4042a5a8ff6462d98c277da20df21ac",
"_model_module": "@jupyter-widgets/controls",
"children": [
"IPY_MODEL_b0a68f230c2b4fe9ba7d595bfdb6ab07",
"IPY_MODEL_72ce7b2c6db8442d9e5d6cdcbc86f9c6"
]
}
},
"d4042a5a8ff6462d98c277da20df21ac": {
"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
}
},
"b0a68f230c2b4fe9ba7d595bfdb6ab07": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"state": {
"_view_name": "ProgressView",
"style": "IPY_MODEL_33e6796018ab462b9528a48965f938e9",
"_dom_classes": [],
"description": "",
"_model_name": "FloatProgressModel",
"bar_style": "info",
"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_8af91974539f45a3bb1b3c7101c815a7"
}
},
"72ce7b2c6db8442d9e5d6cdcbc86f9c6": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_09195fccfe2441e3a3500338982f80ad",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": " 26427392/? [00:20<00:00, 307796.04it/s]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_e57354b0a483484fa83bb5b259e9b576"
}
},
"33e6796018ab462b9528a48965f938e9": {
"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"
}
},
"8af91974539f45a3bb1b3c7101c815a7": {
"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
}
},
"09195fccfe2441e3a3500338982f80ad": {
"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"
}
},
"e57354b0a483484fa83bb5b259e9b576": {
"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
}
},
"8b041420cc6244a7a84ad1b10d4780b8": {
"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_50840d961e6f4572bbfb550abee0a380",
"_model_module": "@jupyter-widgets/controls",
"children": [
"IPY_MODEL_c0b10a2488244a469d2a619a37d7bf9b",
"IPY_MODEL_59de8b493d6649d0ae706cf187426e4f"
]
}
},
"50840d961e6f4572bbfb550abee0a380": {
"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
}
},
"c0b10a2488244a469d2a619a37d7bf9b": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"state": {
"_view_name": "ProgressView",
"style": "IPY_MODEL_7a211cdaf7ed4bf9b3c8fc5d12a2732f",
"_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_dfbf25a7c19d4b08a11dc7edfc3d5c8d"
}
},
"59de8b493d6649d0ae706cf187426e4f": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_4c2ab6b58c9c4c20a950ede3d014034a",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": " 32768/? [00:00<00:00, 92394.38it/s]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_90dcced4b1134b89b17ffe3c90f7fa38"
}
},
"7a211cdaf7ed4bf9b3c8fc5d12a2732f": {
"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"
}
},
"dfbf25a7c19d4b08a11dc7edfc3d5c8d": {
"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
}
},
"4c2ab6b58c9c4c20a950ede3d014034a": {
"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"
}
},
"90dcced4b1134b89b17ffe3c90f7fa38": {
"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
}
},
"f58f91cd6a7f404399325246740c2d88": {
"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_fdad6af2c7b94480a5a2b90749ca5623",
"_model_module": "@jupyter-widgets/controls",
"children": [
"IPY_MODEL_0559d9f1afb5440dab111daea56dc62b",
"IPY_MODEL_1fe0b28367804c15bd4447f883641a2f"
]
}
},
"fdad6af2c7b94480a5a2b90749ca5623": {
"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
}
},
"0559d9f1afb5440dab111daea56dc62b": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"state": {
"_view_name": "ProgressView",
"style": "IPY_MODEL_4eb6839571a845b29a92ba501ecfd1f0",
"_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_4ab963bac55043a3882682344d2eb0aa"
}
},
"1fe0b28367804c15bd4447f883641a2f": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_3c27e130e3734d8fa63733f32fbdeec7",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": " 4423680/? [00:00<00:00, 18956806.50it/s]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_875904b5fafa4d668c7c3511ffd72f01"
}
},
"4eb6839571a845b29a92ba501ecfd1f0": {
"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"
}
},
"4ab963bac55043a3882682344d2eb0aa": {
"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
}
},
"3c27e130e3734d8fa63733f32fbdeec7": {
"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"
}
},
"875904b5fafa4d668c7c3511ffd72f01": {
"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
}
},
"c8fa569a7a6545d2b428fd647aae128b": {
"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_3a46c291254e4fab9472a2d3b7361f8e",
"_model_module": "@jupyter-widgets/controls",
"children": [
"IPY_MODEL_f6d9a507191a4250a02014dc8641fc63",
"IPY_MODEL_874e576bc71e470c8eed23d84af9a044"
]
}
},
"3a46c291254e4fab9472a2d3b7361f8e": {
"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
}
},
"f6d9a507191a4250a02014dc8641fc63": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"state": {
"_view_name": "ProgressView",
"style": "IPY_MODEL_760fe7a6e6f24de498379f569524b7da",
"_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_f00dd0c2d9884934819916ca63e835db"
}
},
"874e576bc71e470c8eed23d84af9a044": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_162fb2c25f554b5f8c81aac04cedd8e0",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": " 8192/? [00:00<00:00, 29554.45it/s]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_54e10c148e4f4b53a9958f2eba5b9577"
}
},
"760fe7a6e6f24de498379f569524b7da": {
"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"
}
},
"f00dd0c2d9884934819916ca63e835db": {
"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
}
},
"162fb2c25f554b5f8c81aac04cedd8e0": {
"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"
}
},
"54e10c148e4f4b53a9958f2eba5b9577": {
"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/Varying_batch_size.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "code",
"metadata": {
"id": "m_g32VIe26-J",
"outputId": "f3769072-8f35-47b6-c6e9-7350bedf1328",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 437,
"referenced_widgets": [
"b0ef1441e384495594506d7944f85aea",
"d4042a5a8ff6462d98c277da20df21ac",
"b0a68f230c2b4fe9ba7d595bfdb6ab07",
"72ce7b2c6db8442d9e5d6cdcbc86f9c6",
"33e6796018ab462b9528a48965f938e9",
"8af91974539f45a3bb1b3c7101c815a7",
"09195fccfe2441e3a3500338982f80ad",
"e57354b0a483484fa83bb5b259e9b576",
"8b041420cc6244a7a84ad1b10d4780b8",
"50840d961e6f4572bbfb550abee0a380",
"c0b10a2488244a469d2a619a37d7bf9b",
"59de8b493d6649d0ae706cf187426e4f",
"7a211cdaf7ed4bf9b3c8fc5d12a2732f",
"dfbf25a7c19d4b08a11dc7edfc3d5c8d",
"4c2ab6b58c9c4c20a950ede3d014034a",
"90dcced4b1134b89b17ffe3c90f7fa38",
"f58f91cd6a7f404399325246740c2d88",
"fdad6af2c7b94480a5a2b90749ca5623",
"0559d9f1afb5440dab111daea56dc62b",
"1fe0b28367804c15bd4447f883641a2f",
"4eb6839571a845b29a92ba501ecfd1f0",
"4ab963bac55043a3882682344d2eb0aa",
"3c27e130e3734d8fa63733f32fbdeec7",
"875904b5fafa4d668c7c3511ffd72f01",
"c8fa569a7a6545d2b428fd647aae128b",
"3a46c291254e4fab9472a2d3b7361f8e",
"f6d9a507191a4250a02014dc8641fc63",
"874e576bc71e470c8eed23d84af9a044",
"760fe7a6e6f24de498379f569524b7da",
"f00dd0c2d9884934819916ca63e835db",
"162fb2c25f554b5f8c81aac04cedd8e0",
"54e10c148e4f4b53a9958f2eba5b9577"
]
}
},
"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": "b0ef1441e384495594506d7944f85aea",
"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": "8b041420cc6244a7a84ad1b10d4780b8",
"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"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "f58f91cd6a7f404399325246740c2d88",
"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",
"\n",
"\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "c8fa569a7a6545d2b428fd647aae128b",
"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",
"\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": "65pVOnol3Eud"
},
"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": "QpZxURIM3GQR"
},
"source": [
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"import numpy as np\n",
"from torch.utils.data import Dataset, DataLoader\n",
"import torch\n",
"import torch.nn as nn\n",
"device = 'cuda' if torch.cuda.is_available() else 'cpu'"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "UwnhSSRo3Hu8"
},
"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-2)\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": "zC1KAaEv3QiZ"
},
"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": "z55H-eMO3R3V"
},
"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": "GOYt6Mtv3bCu"
},
"source": [
"trn_dl, val_dl = get_data()\n",
"model, loss_fn, optimizer = get_model()"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "tH46l-zA3cec",
"outputId": "fb6b829d-6215-4a10-8ebe-b3b4c786ddc7",
"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": "QorP8HZP3pi0",
"outputId": "9a53c3e2-b193-42de-e57a-aa1c28b6ec6e",
"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 when batch size is 32')\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 when batch size is 32')\n",
"plt.xlabel('Epochs')\n",
"plt.ylabel('Accuracy')\n",
"plt.gca().set_yticklabels(['{:.0f}%'.format(x*100) for x in plt.gca().get_yticks()]) \n",
"plt.legend()\n",
"plt.grid('off')\n",
"plt.show()"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "5Ky6u6z54Blo"
},
"source": [
""
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "XwkgtaFW4GVP"
},
"source": [
""
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "auquZOA14GXd"
},
"source": [
""
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "9qMLWAQy4Gw2"
},
"source": [
"Batch size of 10000"
]
},
{
"cell_type": "code",
"metadata": {
"id": "yIcsIrtU4Irw"
},
"source": [
"def get_data(): \n",
" train = FMNISTDataset(tr_images, tr_targets) \n",
" trn_dl = DataLoader(train, batch_size=10000, 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": "ZGEBAfe14KmD"
},
"source": [
"trn_dl, val_dl = get_data()\n",
"model, loss_fn, optimizer = get_model()"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "GC7DOpGD4OSs",
"outputId": "90a6f725-497e-4290-b1a7-110446b32386",
"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": "AttqfaY44QMK",
"outputId": "de5d2588-7866-4621-b355-251b3dcabdbc",
"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 when batch size is 10000')\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 when batch size is 10000')\n",
"plt.xlabel('Epochs')\n",
"plt.ylabel('Accuracy')\n",
"plt.gca().set_yticklabels(['{:.0f}%'.format(x*100) for x in plt.gca().get_yticks()]) \n",
"plt.legend()\n",
"plt.grid('off')\n",
"plt.show()"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZEAAACgCAYAAADNcFHrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO2deXwV1fn/3w9hCYEQIAiyJgKyiiGAKG6A4E8tiIAKRFQQ64JWRSuKxYpFrVr9ulCLLWpxaRB31LpUBQKorYqKG5siCSB7EEgICVme3x9nktzcbDc3CTfL83695nVnzpwz88y5M/OZsz1HVBXDMAzDCIYGoTbAMAzDqL2YiBiGYRhBYyJiGIZhBI2JiGEYhhE0JiKGYRhG0JiIGIZhGEFT70RERN4TkSlVHTeUiEiyiIyshuOqiHT31v8uIn8MJG4Q55ksIh8Ea6cRGCIyTES2HaVzJYnIb4/CeaaKyMdVcJw/iMjTVWGTzzHLfGbqCrVCREQk3WfJE5HDPtuTK3IsVT1PVZ+r6rh1HVW9VlXvqexxRCTWE5yGPsdOVNX/V9ljG3UDEXlWRO49mudU1T+rapWKXrDPjIjcIyLfiUiOiNxdwv5LRCRFRA6JyBIRae2zr7WIvOHtSxGRS6oqbWnUChFR1eb5C7AFON8nLDE/nu+LyTBCjd2PRpD8BNwGvOO/Q0T6Av8ALgPaARnAfJ8ofwOOePsmA096aSqVtkxUtVYtQDIw0lsfBmwDbgd2Ai8ArYB/A3uAX731Tj7pk4DfeutTgY+Bh724m4Hzgox7HLASSAM+8v6Qf5VyDYHYeA/wiXe8D4A2PvsvA1KAVGC2b574nedkL1/CfMLGAd9664OB/wL7gR3AE0Bjn7gKdPfWnwXu9dk300uzHZjmF3cU8DVwENgK3O2TbosXN91bhuTnrU+cU4EvgAPe76mB5k0F87k1sNC7hl+BJT77LgDWeNewCTjX//7ztu/O/5+BWO/arvSuc6UX/or3Pxzw7pG+PumbAv/n/Z8HcPdYU9wL5Aa/6/kWGFfCdT4H/N5b7+jZcL233Q3Yh/tgHIZ7Xn4P7Pb+vyt8jtMEd39vAXYBfwea+j1rJaYtwaYk4H7gcy8P3wRa++wvMU+Aq4Fs3MssHXjbC+8MvO79l6nAE4E8lyXYdTvwi3fvbABGlPA/PkHh/ZkO5ODdw0AH4DXPjs3AjWWc61m8ZwZog7v/9nv/xyqgQTnvun/h8+x4YX8GFvlsd/PyKhJo5q338Nn/AvBAZdOWtdSKkkg5HIt7GcTgbsAGuBdDDNAFOIy7KUrjZNzN1Ab4C/CMiEgQcRfhHpho3A15WRnnDMTGS4ArgLZAY+BWABHpAzzpHb+Dd75OJZ1EVT8DDgFn+R13kbeeC9zsXc8QYARwXRl249lwrmfP2cDxgH97zCHgcqAlTlCmi8hYb9+Z3m9LdSXJ//oduzXuBTrPu7ZHgHdEJNrvGorlTQmUl88vABFAX+9Yj3o2DAaexwllS8/m5NLyowSGAr2Bc7zt93D51Bb4Ckj0ifswMBAnnK1xX6B5OGG4ND+SiMThBKLY1ymwAveSzz/3zxTm81BglarmedvHAlHesa4E/iYirbx9DwA9gP5Ady/OXT7nKSttSVyO+8Boj3sRz/PZV2KeqOoCb/0v3v1xvoiE4V7AKTih7ggs9jlWQM+wiPQEfgecpKqRuP8n2T+eqv5OC2s+TseJ05si0gB4G/jGs2EEMENEzvE/Rgn8HifCx+C+9P+AE/uK0tc7f76tm/Be/t6So6obfeJ/46WpbNrSKU9latpC8ZLIESC8jPj9gV/9vpB8Sxc/+eyLwP2xx1YkLu4FlQNE+H1FlFgSCdDGO322rwPe99bvAhb77Mv/gihWEvH23wv801uPxL3gY0qJOwN4w2e7xJII8E98vlC8G7AgbgnHfQx41FuP9eI29Nk/Fa8kghPHz/3S/xeYWl7eVCSfcS+2PKBVCfH+kW9vWfeft303xUsiXcuwoaUXJwoncoeBuBLiheNeXsd72w8D80s5ZjcvbgNc6eEaYJu37zngFp/n5bBf3u8GTgHEuze6+ewbAmwuL20pNiX53SN9vPs0rKw88b/XfOzY43tuv3un1GfYL253z+aRQCO/fQX/o0/YMd7/PcnbPhnY4hfnDmBhKXlQcB3AXFxprMRnpJT0JZVElgLX+oX94v0/ZwA7/fZdBSRVNm1ZS10oiexR1cz8DRGJEJF/eA1DB3FF5Zbe10xJ7MxfUdUMb7V5BeN2APb5hIGrximRAG3c6bOe4WNTB99jq+ohXPG+NBYB40WkCTAe+EpVUzw7eojIv0Vkp2fHn3Ffc+VRxAbcF6Lv9Z0sIstFZI+IHACuDfC4+cdO8QtLwX355VNa3hShnHzujPvPfi0haWdcFVawFOSNiISJyAMissmzIdnb1cZbwks6l3dPvwRc6n0BJ+BKTsVQ90V5CCeSZ+C+2rd7X95DcSWVfFJVNcdnOz//jsG9gL8Ukf0ish943wsvL225+YD7DxsBbcrJk5LoDKT4nduXgJ5hVf0J96F0N7BbRBaLSIeSDigijYBXcdU/+aWeGKBDfv54efQHXMmiPB7CtXV8ICI/i8isANKURDrQwi+sBa56rqx9lU1bKnVBRPyLhL8HegInq2oLCov1pVVRVQU7gNYiEuET1rmM+JWxcYfvsb1zRpcWWVXX4h7g8yhalQWuWmw97mu3Be6BqLANuJKYL4uAt4DOqhqF+zrOP255RfjtuIfVly64L6aKUlY+b8X9Zy1LSLcV93VfEodwL9t8ji0hju81XoJrXxmJK33E+tiwF8gs41zP4Ro4RwAZ6lf158cK4CJcm9Yv3vYUXLvQmjLS5bMXV9Loq6otvSVKXZVOsPjfI9neecrKEyh+j2wFulRFRwVVXaSqp+PuMQUeLCXqX3FtOXf62bHZJ39aqmqkqv4mgPOmqervVbUrMAa4RURGBHEJPwBx+Rsi0hXXlrXRWxqKyPE+8eO8NJVNWyp1QUT8icQ9DPu9+vU51X1C78t+NXC3iDQWkSHA+dVk46vAaBE5XUQa44rJ5f2Pi4CbcC/RV/zsOAiki0gvYHqANrwMTBWRPp6I+dsfifvKz/TaF3y7Cu7BVSN1LeXY7wI9vK6IDUVkIq4q5N8B2uZvR4n5rKo7cPXy80WklYg0EpF8kXkGuEJERohIAxHp6OUPuBfyJC/+INyLuzwbsnClxQhcaS/fhjxc1eAjItLB+0If4pUa8UQjD9fwXmIpxIcVuPr+ld52krf9sarmlpM235angEdFpC2Ad92B1PeXxqU+98hc4FXPllLzxGMXRe+Pz3EfLg+ISDMRCReR0ypqjIj0FJGzvPzNxN0beSXEuwZXgpushW1J+XakicjtItLU+79OEJGTAjj3aBHp7rXVHMC1RxY7txe3kYiE457rht715tdSJALni8gZItIMl6+veyJ1CNf5YK6XT6fhxPqFKkhbKnVRRB7D9W7ZC/wPVyQ/GkzG1d2m4tohXsI9KCURtI2q+gNwPU4YduDqwssbQPYi7qFYpqp7fcJvxb3g03AvkJcCtOE97xqW4Yroy/yiXIe7GdNwbTgv+6TNAO4DPvGqBE7xO3YqMBpXikjFNTSP9rM7UMrL58twX8frcXXlMzwbPsc13D+Ke+BXUFg6+iOFbRB/omjJriSex5UEfwHWenb4civwHa4X2j7cl3EDv/T9cPXjZbEC93LOF5GPcS/olaWmKM7tuP/zf14100e4klywvIBrF9iJq7a70QsvL0+eAfp498cST3jOx7VpbMHd7xODsKcJrvPAXs+mtrg2DX8ScCK2XQrHo/3Bs2M0rtpws3ecp3GlqfI4Hpef6bg2vvmquryUuE/hBC4B1/vyMF5HHe/5vxYnCLtx/7lvZ5jrcPf8btxzP91LU6m0ZSFeA4pRxYjIS8B6Va32kpBRdxGRy4GrvSoYw6hx1MWSSEgQkZNEpJtX/XEurii4JNR2GbUXrxroOmBBqG0xjNIwEak6jsXVQ6fj+sNPV9WvQ2qRUWvx2iL24NoHyqsyM4yQYdVZhmEYRtBYScQwDMMIGhMRwzAMI2jqjJfRNm3aaGxsbFBpDx06RLNmzarWoDqO5VnFsPyqGJZfFaMy+fXll1/uVdVjyo9ZMnVGRGJjY1m9enVQaZOSkhg2bFjVGlTHsTyrGJZfFcPyKzASE2H2bNiyRenSRbjvPphcoRmWQET83QxViDojIoZhGPWJxES4+mrIyAAQUlLcNlRcSCqDtYkYhmHUQmbPzheQQjIyXPjRxETEMAyjFrJlS8XCqwsTEcMwjFpIF3/f2eWEVxcmIoZhGLWQ++6DiIiiYRERLvxoYg3rhmEYtZDJCXmEH9jDP+/5hbU7W6ExxwXVO6uyVKuIiMjNwG9xk798h3Ov3R43P3I08CVwmaoeEZEbcNN6bgHGemGnAxeq6s3VaadhGEaNIi0Ntm+HX35xS0nrO3ZwYU4OFwJbEhLosig0LtaqTUREpCNu/oA+qnpYRF4GJgG/wc1fvVhE/g5ciZthbzJwIm52vXNE5N+4uRsSqstGwzBqFoXjHobSpQsh+bKuVrKzYefO4oLgLxJpJcxK26IFdOwIHTrA8OGF6x07siMjo9j0okeL6q7Oagg0FZFs3AQ5O4CzKJzp7jncfMdP4qbGbOTFywYuBd5T1X3VbKNhGDWAmjLuIShUYd++8sVh924X15dGjZwYdOgA/frBuecWiEOR3+alz1R8OCmpeq+vDKrVi6+I3ISbxe4w8AFuitb/qWp3b39nnFCcICKXAbfg5vSdDrwJnKOq2WUc/2rgaoB27doNXLx4cVB2pqen07yMP8gojuVZxbD8Kp9Jk05h167wYuHt2mWyeLH/5IdHjwZZWTTZu5fGe/fSxFvy1xunphaENcgu/qo60rIlR6KjyWrThqw2bTji/WZFR3PkmGPIio4mOyoKGlSuj1Nl7q/hw4d/qaqDgj13tYmIiLQCXsNNY7kfN7f3q8DdJYmIX9q7gG9xcxBfDmwFfu8333ERBg0apOb25OhheVYxLL/Kp0GD4h/pACKQV+qTXwlyc2HXrpLbG3zD9u8vnjYiwpUQfEsL/iWH9u2hSZNqMLw4lbm/RKRSIlKd1Vkjgc2qugdARF4HTgNaikhDVc0BOuHmWS5ARDoAg1V1roiswFV/3QmMAD6sRnsNwwghXbpASglenCo87kEVDhwovUopf33nzuLqFBYGxx7rhOD442HYsJJFokULp25GtYrIFuAUb4rPwzgRWA0sBy7C9dCagqu28uUe4C5vvSmuZ1cerq3EMIw6yn33+baJOIqNe8jKgh07SheH/F9/fyAArVoVCsEJJ5QsDm3bOiExAqbaRERVPxORV4GvgBzga9xc0e8Ai0XkXi/smfw0IhLvpf3KC1qE6xq8FfhLddlqGEbomZyQR7PdKSx5YD1Ndm+hT9R2RsVvp3viL/CQJw579xZP2KRJoQgMGACjRxcXh/bti4/MM6qEau2dpapzgDl+wT8Dg0uJ/zWuy2/+9mPAY9VmoGEYR58jR+Cnn2DduqLL+vWMPXyYsfnxDgqsa+tEoEsXOOWUktsgWre2qqUQYiPWDcOoHg4dgg0bYO3aomLx00+Qk1MYr0sX6NPHtT/07g29e/Pf7dsZMm6c6/5q1GhMRAzDqBz79hUKhK9g+LaSh4VB9+5OJMaPLxALevYscfxDVlKSCUgtwUTEMIzyUXWN1r4linzB2L27MF54OPTqBaeeClde6UoYvXs7AWncOHT2G9WGiYhhGIXk5kJycvEqqHXr4ODBwnhRUU4gRo8uLFX07g0xMda7qZ5hImIY9ZGsLPjxx+Klig0b3L58jj3WicOllxaWKnr3duHWmG1gImIY1UrIHQqmpcH69cWroX7+2ZU6wIlBbKwTh7PPdr99+rhqqVatjqKxRm3ERMQwqomj6lBw796Sq6C2bi2M07ChG4V94okwcWLRxm0bQ2EEiYmIYVQTs2cXHzidkeHCgxIRVdi2rXgvqHXrig7Ci4hwpYgzzyxaBdWtm/V4MqocExHDqCa2bKlYeAE5Oa66yb8Kav16SE8vjNeqlROJsWMLhaJPH+jcudJeYQ0jUExEDKOaKNehYGama8j2r4LauNGN6s6nQwcnDldcUbQnVNu21rhthBwTEcOoJvIdCoZlHKQ36+jNOuIaruXi1uug+zrYvLnQi6wIdO3qxOG88wqroXr1ct1pDaOGUq6IiMj5wDtlzeVhGIYPqamwahWTv0jivDZJtNzyLQ1wE2XkaiPCsns6R4GTJxdWQfXo4QbqGUYtI5CSyETgMRF5Dfinqq6vZpsMo3axdy+sXAlJSbBiBXz7rQsPD6f1qafCtDl8FxZGvwkTCOva1fWSMow6Qrl3s6peKiItgATgWRFRYCHwoqqWMJu8YdRxdu92orFihROO77934U2bwmmnwT33OGeCJ51UMLNdalKSK20YRh0joE8iVT3ozQ3SFJgBjANmisg8Vf1rdRpoGCFn1y4nGPmisXatC4+IgNNPh4QEJxqDBpl/KKPeEUibyBjgCqA78Dxu6trd3oyFawETEaNusWNHUdFY79XgNmvmROOyy2DoUCcaNu7CqOcEUhK5EHhUVVf6BqpqhohcWUoaw6g9bN9eKBgrVrhut+BclJ9xhutaO3Soaww30TCMIgQiIncDO/I3RKQp0E5Vk1V1aXUZZhjVxrZtRUXjxx9deIsWTjSuvNJVT8XHWyO4YZRDIE/IK8CpPtu5XthJ1WKRYVQ1W7cWCkZSEmza5MKjopxrkGuucaLRv7+5MTeMChKIiDRU1YLhs6p6RESs9dCouaSkFBWNzZtdeMuWTjSuv96JxoknmmgYRiUJRET2iMgYVX0LQEQuAPaWkwYR6Qm85BPUFbgL1zj/EhALJAMTVPVXEbkQmAvsA8aqaqqIdAP+rKoTA78ko16h6iZR8q2eSk52+1q3dqJx002uTaNfPxMNw6hiAhGRa4FEEXkCEGArcHl5iVR1A9AfQETCgF+AN4BZwFJVfUBEZnnbtwM34KrIxgOX4Hp93QvcWcFrMuoyqq5kkZRUKBr5Hg2jo51Y3HKL+z3hBHNEaBjVTCCDDTcBp4hIc287vZwkJTEC2KSqKV5JZpgX/hyQhBORPKAJEAFki8gZwE5V/TGI8xl1BVXXhuFbPbVtm9vXpo2rlpo50/326WOiYRhHmYC6nojIKKAvEC6e11BVnVuB80wCXvTW26lqfm+vnUA7b/1+4CNgO3AprvF+UgXOYdQFVF1vKV/R2L7d7Wvb1pUwhg1zS+/e5sXWMEKMqGrZEUT+jisdDAeeBi4CPlfVgMaIeI3w24G+qrpLRParakuf/b+qaiu/NJcDrYH/AbcCvwI3qWqGX7yrgasB2rVrN3Dx4sWBmFSM9PR0mjdvHlTa+kqV5ZkqEVu30nLNGqK++YaWa9bQZN8+ALJat+ZAXBz7+/dnf1wcGV261FrRsHusYlh+VYzK5Nfw4cO/VNVBQZ9cVctcgG/9fpsDq8pL55P+AuADn+0NQHtvvT2wwS9+BLAMaAT8B2gGTAGuKus8AwcO1GBZvnx50GnrK0HnWV6e6g8/qM6frzphgmq7dqqu/KHavr1qQoLqP/6hun69i1tHsHusYlh+VYzK5BewWgN8n5e0BFKdlen9ZohIByDVe/kHSgKFVVkAb3mi8ID3+6Zf/JnAPFXN9gY2Kq69xCaBrgEkJrrpXbdsGUqXLm7OjDKnelV1vqbyG8JXrnQODAE6doSRIwurqLp3r7UlDcOorwQiIm+LSEvgIeAr3Ev9qUAOLiLNgLOBa3yCHwBe9lympAATfOJ3wPnm+pMX9FfgC2A/MDaQcxrVR2Kim2TJzRsupKS4bfARkrw8+OGHwjaNFSsK5//u3BnOOadQNLp2NdEwjFpOmSIiIg1w3XH3A6+JyL+BcFU9EMjBVfUQEO0XlorrrVVS/O3AKJ/tV3AN7EYNYPbsfAEp5HBGHv+a+R2TU1cUljRSU93OLl3gN78pbAiPjTXRMIw6Rpkioqp5IvI3IN7bzgKyjoZhRs0jfzhGP77lLJYxjCTOZCWtd/wKNwHHHQfnn+8EY+hQJxqGYdRpAqnOWuqNJn/da4Qx6iknd9jKzF9uYjxvALCJrrzBOH6IHsojXw6FmJgQW2gYxtEmEBG5BrgFyBGRTNyodVXVFtVqmVFzyM6Gxx9n5d67ySaPP3AfL3AZ2+hMRAQseBww/TCMekkgI9Yjj4YhRg3lk09g+nT47jsajR7NOyP+yqLHYvllixITSO8swzDqNIHMbHhmSeHqN0mVUcdITYXbb4dnnnG9qt54Ay64gLEijJ0BSUkrGDZsWKitNAwjxARSnTXTZz0cGAx8CZxVLRYZoSUvD559Fm67DQ4ccH6p7rrLzfJnGIbhRyDVWef7botIZ+CxarPICB3ffeeqrj75xM0l/uSTzhOuYRhGKQTj8nQb0LuqDTFCSHq6K3nEx8P69a4Ka8UKExDDMMolkDaRv+JGqYMTnf64ketGXeDNN+GGG9wUsldeCQ8+6OblMAzDCIBA2kRW+6znAC+q6ifVZI9xtEhOhhtvhLffdjP+vfginHZaqK0yDKOWEYiIvApkqmouuFkKRSRC/dyyG7WEI0fgkUdg7lw3gdPDDzsxadQo1JYZhlELCaRNZCnQ1Ge7KW7yKKO2sWKFa/e44w4491xYtw5+/3sTEMMwgiYQEQlXnylxvXVzy16b2L0bpkxxPq0yMuDf/4bXX3fjPwzDMCpBICJySEQG5G+IyEDgcPWZZFQZeXmwYAH06uXaPO64w7lpHzWq/LSGYRgBEEibyAzgFRHZjvObdSwwsVqtMirPmjVuzMf//uc86j75pJuT3DAMowoJZLDhFyLSC+jpBW1Q1ezqNcsImrQ0N8J83jzXVff55+HSS20ej3pGdnY227ZtIzMzs/zINZCoqCjWrVsXajNqDYHkV3h4OJ06daJRFbeBBjJO5HogUVW/97ZbiUiCqs6vUkuMyqEKr70GN90EO3a4KQfvvx9atQq1ZUYI2LZtG5GRkcTGxiK18AMiLS2NyEjz/Roo5eWXqpKamsq2bds47rjjqvTcgbSJXOXNbJhvzK/AVVVqhVE5Nm1yMwhefDG0bQv//S/8/e8mIPWYzMxMoqOja6WAGFWPiBAdHV0tJdNARCRMfO5EEQkDGle5JUbFycqCe+917kk++QQeewy++AJOPjnUlhk1ABMQw5fquh8CEZH3gZdEZISIjABeBN6rFmuMwFm2DOLi4I9/hDFj3JiPm26ChoH0lTCM6iU1NZX+/fvTv39/jj32WDp27FiwfeTIkTLTrl69mpkzZ5YZB+DUU0+tKnONShDIG+d24GrgWm/7W1wPLSMU7NzpBgguWgTdusH778M554TaKqOWk5gIs2fDli3QpQomG4uOjmbNmjUA3H333TRv3pxbb721YH9OTg4NS/ngGTRoED179ixxny+ffvpp8AaGiNzcXMLCwkJtRpVSbklEVfOAz4Bk3FwiZwEBdZsQkZYi8qqIrBeRdSIyRERai8iHIvKj99vKi3uhiPwgIqtEJNoL6yYiLwV7cXWK3Fz429/cmI9XX3U9sL77zgTEqDSJia4fRkqK65+RkuK2ExOr9jxTp07l2muv5eSTT+a2227j888/Z8iQIcTHx3PqqaeyYcMGAJKSkrj44osBJ0DTpk1j2LBhdO3alXnz5hUcr7k3x01SUhLDhg3joosuolevXkyePBlV5zP23XffpVevXgwcOJAbb7yR0aNHF7MrOTmZM844gwEDBjBgwIAi4vTggw/Sr18/4uLimDVrFgA//fQTI0eOJC4ujgEDBrBp0yaSkpKKHPt3v/sdzz77LACxsbHcfvvtDBgwgFdeeYWnnnqKk046ibi4OC688EIyMpwHqV27djFu3Dji4uKIi4vj008/5a677uKxxwpn3pg9ezaPP/54pf+LKkVVS1yAHsAcYD3wMXADkFJa/FKO8RzwW2+9MdAS+AswywubBTzorSfhRsJfCtzghb0IHB/IuQYOHKjBsnz58qDTHhVWr1YdNEgVVEeOVN2wIdQW1fw8q2Ec7fxau3ZtwHFjYtyt5b/ExFSNLXPmzNGHHnpIp0yZoqNGjdKcnBxVVT1w4IBmZ2erquqHH36o48ePV1WXV+ecc05B2iFDhmhmZqbu2bNHW7durUeOHFFV1WbNmhXEb9GihW7dulVzc3P1lFNO0VWrVunhw4e1U6dO+vPPP6uq6qRJk3TUqFHF7Dt06JAePnxYVVU3btyo+e+Sd999V4cMGaKHDh1SVdXU1FRVVR08eLC+/vrrqqp6+PBhPXTokC5fvrzIsa+//npduHChqqrGxMTogw8+WLBv7969BeuzZ8/WefPmqarqhAkT9NFHH1VV1ZycHN2/f79u3rxZ4+PjVVU1NzdXu3btWiR9PgcPHiz7T/Ao6b4AVmsF3uv+S1nVWeuBVcBoVf0JQERuDlScRCQKOBOY6onVEeCIiFwADPOiPeeJx+1AHtDEE5JsETkD2KmqPwZ6zjrHgQNw550wf77rdbVoEUyaZGM+jCply5aKhVeGiy++uKA658CBA0yZMoUff/wRESE7u+ThZ6NGjaJJkyY0adKEtm3bsmvXLjp16lQkzuDBgwvC+vfvT3JyMs2bN6dr164FXVoTEhJYsGBBseNnZ2fzu9/9jjVr1hAWFsbGjRsB+Oijj7jiiiuIiHBenlq3bk1aWhq//PIL48aNA9zYi0CYOLFwfPb333/PnXfeyf79+0lPT+ccrzZh2bJlPP/88wCEhYURFRVFVFQU0dHRfP311+zatYv4+Hiia9hUDWWJyHhgErBcRN4HFuNGrAfKccAeYKGIxOGm1L0JaKeqO7w4O4F23vr9OMeO23GlkVe885eKiFyNa6+hXbt2JCUlVcC8QtLT04NOWy2o0nbZMrrNn0/jX3/ll7Fj2TxtGrnNmzsnijWAGpdnNZyjnV9RUVGkpaUFFLdTp2Zs3Vq8ZrtTpzzS0g5V2pasrCwaNWpEdnY2DRo0KLBr1qxZDBkyhOeffzV57u4AABAySURBVJ6UlBRGjRpFWloaGRkZqCppaWkFafPTiAj79+8nKioKoCB+WFhYQZzc3FzS09M5dOgQubm5BeGHDx8mJyenWL488MADtGrVio8//pi8vDyOOeYY0tLSOHLkCJmZmUXip6WlFdjmy5EjRzhy5EhBeFpaWkHa/C/2/H1Tpkxh0aJF9OvXj8TERFatWlXkuP4dDyZPnsyCBQvYvXs3CQkJJf6vvtdZFpmZmVV+H5YqIqq6BFgiIs2AC3DuT9qKyJPAG6r6QQDHHoCrmvpMRB7HVV/5nkNFRL31D4EPAUTkcuBdoIeI3Ar8Ctykfu7nVXUBsABg0KBBOmzYsMCu2o/8OtUawcaNcP318NFHMHAg/Oc/dBo0iE7lpzyq1Kg8qwUc7fxat25dwIP17r/ftYFk+DxdERFw//0NqmTAX34polGjRjRt2rTgmBkZGXTr1o3IyEheffVVRITIyEgiIiIK1vPT5qdp0KABzZs3L9jOj9+wYcOCsMaNGxMeHs6AAQNISUkhNTWV2NhY3nrrrSLx8snMzCQmJoaoqCgWLlxIbm4ukZGRjBo1irlz53LllVcSERHBvn376NChA507d2bp0qWMHTuWrKwscnNz6d27Nxs3bqRx48YcPnyYlStXMnz4cCIjIxGRIjanp6fTvXt3wsPDee211+jYsSORkZGMHDmSf/3rX8yYMaNACKOiorjkkku4//77yc7O5uWXXy6xYT7QwZnh4eHEx8cH/2eWQCAN64dUdZG6udY7AV/jqp/KYxuwTVU/87ZfxYnKLhFpD+D97vZNJCIRuCqwvwF/Aqbg2mQq0VekFpCZCXPmuAmiPv8cnngCPvsMBg0KtWVGHWfyZOenMybG1ZTGxLjtyvTOCoTbbruNO+64g/j4eHJycqr8+E2bNmX+/Pmce+65DBw4kMjIyIISjC/XXXcdzz33HHFxcaxfv55mzZoBcO655zJmzBgGDRpE//79efjhhwF44YUXmDdvHieeeCKnnnoqO3fupHPnzkyYMIETTjiBCRMmlPmivueeezj55JM57bTT6NWrV0H4448/zvLly+nXrx8DBw5k7dq1gBPF4cOHM2HChJrZs6syDSrlLbg2lZ7e+t3AQ97i27D+F780c4Cx3vpKXBvJZbiSSN1sWH//fdVu3Vxr5iWXqO7YEVp7AiDkeVbLqMkN6zWRQBuKyyMtLU1VVfPy8nT69On6yCOPVMlxjya5ubkaFxenGzduLDVOKBvWAxlsWBluABJF5Fvc3Ox/Bh4AzhaRH4GR3jYAItIBGKyuKg3gr8AXuDEqi6rZ1qPP9u0wcaKbICoszFVhJSbCsTYMxzCqgqeeeor+/fvTt29fDhw4wDXXXBNqkyrE2rVr6d69OyNGjOD4448PtTklUq3Dm1V1DVBSfcyIUuJvB0b5bL+Ca2CvW+TkuDEff/yjm6527ly47TZo0iTUlhlGneLmm2/m5psD7lRa4+jTpw8///xzqM0oE/ORcbT57DM3z8fXX7sSyBNPuJHnhmEYtZDqrs4y8vn1VyceQ4bArl3wyivw7rsmIIZh1GpMRKobVXjhBeeuZMEC5yRx/Xq46CIbNGgYRq3HqrOqk3Xr4LrrICnJuWf/z3+gf/9QW2UYhlFlWEmkOsjIgD/8wblqX7MG/vEP+PRTExCj3jB8+HD+85//FAl77LHHmD59eqlphg0bxurVqwG48MIL2b9/f7E4d999d8F4jdJYsmRJwRgLgLvuuouPPvqoIuYbFcBEpKp55x3o29cNA05IgA0b3HDgBpbVRv0hISGBxYsXFwlbvHgxCQkJAaV/7bXXaNmyZVDn9heRuXPnMnLkyKCOFSpyc3NDbULA2Jutqti6FcaPh9GjoWlTV4X13HPOcaJh1DMuuugi3nnnnQI/UMnJyWzfvp0zzjiD6dOnM2jQIPr27cucOXNKTH/CCSewd+9eAO677z569OjB6aefXuAuHijRpfqnn37KW2+9xcyZM+nfvz+bNm1i6tSpvPrqqwAsXbqU+Ph4+vXrx7Rp08jKygKcu/Y5c+YwYMAA+vXrx/r164vZVJNdxt97770hcxlvbSKVJTsb5s1zLkvy8lwJ5JZboLHNIGzUEGbMcNWqVUn//m465lJo3bo1gwcP5r333uOCCy5g8eLFTJgwARHhvvvuo3Xr1uTm5jJixAi+/fZbTjzxxBKP8+WXX7J48WLWrFlDTk4OAwYMYODAgQCMHz+eq666CoA777yTZ555hhtuuIExY8YwevRoLrrooiLHyszMZOrUqSxdupQePXpw+eWX8+STTzJjxgwA2rRpw1dffcX8+fN5+OGHefrpp4ukb9u2LR9++CHh4eH8+OOPJCQksHr1at577z3efPNNPvvsswIfW+AcJ86aNYtx48aRmZlJXl4eW7duLTNbo6Oj+eqrrwA3O2RJ13fjjTcydOhQ3njjjQIfWy1atODyyy9nxowZ5OXlsXjxYj7//PMyz1VVWEmkMnz6qXOSeOutMHw4rF0Ls2aZgBgGRau0fKuyXn75ZQYMGEB8fDw//PBDkaonf1atWsW4ceOIiIigRYsWjBkzpmDf999/zxlnnFHgDfeHH34o054NGzZw3HHH0aNHD8B50125cmXB/vHjxwMwcOBAkpOTi6XPzs7mqquuol+/flx88cUFdgfqMj5/f1n4u4wv6fqWLVtW0LaU7zI+JiamwGX8Bx98cFRdxltJJBhSU+H22+GZZ6BzZ3jjDbjgAuuya9RMyigxVCcXXHABN998M1999RUZGRkMHDiQzZs38/DDD/PFF1/QqlUrpk6dSmZmZlDHnzp1KkuWLCEuLo5nn3220i7Om3geI8LCwkp0CPnoo4/Srl07vvnmG/Ly8gKeS8SXhg0bkpeXV7Dtf+35zh+h4tf329/+lmeffZadO3cybdq0CtsWLFYSqQh5ebBwIfTs6do7Zs50pY+xY01ADMOP5s2bM3z4cKZNm1ZQCjl48CDNmjUjKiqKXbt28d5775V5jDPPPJMlS5Zw+PBh0tLSePvttwv2paWl0b59e7Kzs0n0mcs3MjKyxLk1evbsSXJyMj/99BPgvPEOHTo04Os5cOAA7du3p0GDBrzwwgsFjd9nn302CxcuLGiz2LdvH5GRkXTq1IklS5wbwKysLDIyMoiJiWHt2rVkZWWxf/9+li5dWur5Sru+ESNG8OSTTwKuAf7AgQMAjBs3jvfff58vvviiYKKro4GJSKB8/z0MHQrTpkHv3s5tyV/+At48z4ZhFCchIYFvvvmmQETi4uKIj4+nV69eXHLJJZx22mllph8wYAATJ04kLi6O8847j5NOOqlgX2ku1SdNmsRDDz1EfHw8mzZtKggPDw9n4cKFXHzxxfTr148GDRpw7bXXBnwt5jK+FCrjArgmLdXmCj49XXXmTNWGDVWjo1WfeUY1Nzfoc9UVzBV8xTBX8BWjqlzB1xcOHjwYkMv42ugKvnbz5puu1PHQQzBlinNXMm2ajfkwDKNGsX79+pC5jK/Xb8PERIiNhbPOGkpsrNsGIDkZxoxxbR1RUfDxx/D009CmTeiMNQzDKIVevXrx888/83//939H/dz1tndWYqLvvNJCSgpcf9UR+rz1CPFvz3WljYcecg4TGzUKtbmGYRg1knorIrNn5wuI40xWMP/wdfR9eS2MGwePP+667xpGLUVVEes1aHi45o+qp95WZ23Z4n7bsIeFTGUFw4ggg/N5G15/3QTEqNWEh4eTmppabS8Oo3ahqqSmpgY1tqU86m1JpEsXSEmBESzlEhbxZ+7gXu6kbUz5o0oNo6bTqVMntm3bxp49e0JtSlBkZmZWywuvrhJIfoWHh9OpU6cqP3e9FZH77nNtIi9lTOQzTiaZ44iIcOGGUdtp1KgRxx13XKjNCJqkpKQyx1AYRQllftXb6qzJk91EgzExQorEEhPjtidPDrVlhmEYtYd6KyLgBCM5GZYtW0FysgmIYRhGRanXImIYhmFUDqkrvTdEZA+QEmTyNsDeKjSnPmB5VjEsvyqG5VfFqEx+xajqMcGeuM6ISGUQkdWqOijUdtQmLM8qhuVXxbD8qhihzC+rzjIMwzCCxkTEMAzDCBoTEceCUBtQC7E8qxiWXxXD8qtihCy/rE3EMAzDCBoriRiGYRhBU69FRET+KSK7ReT7UNtSGxCRziKyXETWisgPInJTqG2qyYhIuIh8LiLfePn1p1DbVBsQkTAR+VpE/h1qW2o6IpIsIt+JyBoRWR0SG+pzdZaInAmkA8+r6gmhtqemIyLtgfaq+pWIRAJfAmNVdW2ITauRiPPD3kxV00WkEfAxcJOq/i/EptVoROQWYBDQQlVHh9qemoyIJAODVDVkY2rqdUlEVVcC+0JtR21BVXeo6lfeehqwDugYWqtqLt4U1uneZiNvqb9fbQEgIp2AUcDTobbFCIx6LSJG8IhILBAPfBZaS2o2XtXMGmA38KGqWn6VzWPAbUBeqA2pJSjwgYh8KSJXh8IAExGjwohIc+A1YIaqHgy1PTUZVc1V1f5AJ2CwiFi1aSmIyGhgt6p+GWpbahGnq+oA4Dzgeq+K/qhiImJUCK9u/zUgUVVfD7U9tQVV3Q8sB84NtS01mNOAMV49/2LgLBH5V2hNqtmo6i/e727gDWDw0bbBRMQIGK+h+Blgnao+Emp7ajoicoyItPTWmwJnA+tDa1XNRVXvUNVOqhoLTAKWqeqlITarxiIizbwOLohIM+D/AUe9p2m9FhEReRH4L9BTRLaJyJWhtqmGcxpwGe4LcY23/CbURtVg2gPLReRb4Atcm4h1WzWqinbAxyLyDfA58I6qvn+0jajXXXwNwzCMylGvSyKGYRhG5TARMQzDMILGRMQwDMMIGhMRwzAMI2hMRAzDMIygMRExjHIQkVyfLs1rRGRWFR471rxIG7WZhqE2wDBqAYc91yWGYfhhJRHDCBJvLoe/ePM5fC4i3b3wWBFZJiLfishSEenihbcTkTe8+UW+EZFTvUOFichT3pwjH3ij2xGRG725W74VkcUhukzDKBMTEcMon6Z+1VkTffYdUNV+wBM4D7QAfwWeU9UTgURgnhc+D1ihqnHAAOAHL/x44G+q2hfYD1zohc8C4r3jXFtdF2cYlcFGrBtGOYhIuqo2LyE8GThLVX/2HFPuVNVoEdmLm7wr2wvfoaptRGQP0ElVs3yOEYtzh3K8t3070EhV7xWR93GTpi0BlvjMTWIYNQYriRhG5dBS1itCls96LoVtlaOAv+FKLV+IiLVhGjUOExHDqBwTfX7/661/ivNCCzAZWOWtLwWmQ8FkVVGlHVREGgCdVXU5cDsQBRQrDRlGqLEvG8Mon6be7IT5vK+q+d18W3leerOABC/sBmChiMwE9gBXeOE3AQs8b9G5OEHZUco5w4B/eUIjwDxvThLDqFFYm4hhBInXJjJIVfeG2hbDCBVWnWUYhmEEjZVEDMMwjKCxkohhGIYRNCYihmEYRtCYiBiGYRhBYyJiGIZhBI2JiGEYhhE0JiKGYRhG0Px/6cCHcX45qv4AAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "FEoyYJqx4X3i"
},
"source": [
""
],
"execution_count": null,
"outputs": []
}
]
}