{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "Lab4.ipynb",
"provenance": [],
"collapsed_sections": [],
"toc_visible": true,
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
},
"accelerator": "GPU",
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"52b580e658764226bca8ec6150f5dfa2": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"model_module_version": "1.5.0",
"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_d4178aeef56f4d9093d95f9dad6f4659",
"_model_module": "@jupyter-widgets/controls",
"children": [
"IPY_MODEL_c3d864076bb647dea8c7a87a088fdd86",
"IPY_MODEL_cafdce4646284737be1052a7b5d34b19",
"IPY_MODEL_da5923b8f2b942a3a2f11408ad95339c"
]
}
},
"d4178aeef56f4d9093d95f9dad6f4659": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"c3d864076bb647dea8c7a87a088fdd86": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_13d8f5e34d174c2b91f2e12923c6273e",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": " 17%",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_d4adee0ff01440649eb226d465db6291"
}
},
"cafdce4646284737be1052a7b5d34b19": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "ProgressView",
"style": "IPY_MODEL_181e562939b646178a41d5cbea4b421e",
"_dom_classes": [],
"description": "",
"_model_name": "FloatProgressModel",
"bar_style": "danger",
"max": 720,
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": 120,
"_view_count": null,
"_view_module_version": "1.5.0",
"orientation": "horizontal",
"min": 0,
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_ae88d9aef9de4944ad902e1f592ed72f"
}
},
"da5923b8f2b942a3a2f11408ad95339c": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_55052d9744e94ae99ada21afb7b2bfd6",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": " 120/720 [04:21<01:13, 8.16it/s]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_de3a27f3bab54c53b1bee011f9e572d8"
}
},
"13d8f5e34d174c2b91f2e12923c6273e": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"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"
}
},
"d4adee0ff01440649eb226d465db6291": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"181e562939b646178a41d5cbea4b421e": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "StyleView",
"_model_name": "ProgressStyleModel",
"description_width": "",
"_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"
}
},
"ae88d9aef9de4944ad902e1f592ed72f": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"55052d9744e94ae99ada21afb7b2bfd6": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"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"
}
},
"de3a27f3bab54c53b1bee011f9e572d8": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"2d880be240d84dd48e0a7eaef1104c14": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"model_module_version": "1.5.0",
"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_72914891589a48d992915f28a8f33915",
"_model_module": "@jupyter-widgets/controls",
"children": [
"IPY_MODEL_121214d561bb4cc482fa0b53050af2d1",
"IPY_MODEL_acb1dc0badb04b4db62972d334a28c58",
"IPY_MODEL_a06baafca0fc4416807c49049728756f"
]
}
},
"72914891589a48d992915f28a8f33915": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"121214d561bb4cc482fa0b53050af2d1": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_e3bb0de942f44d88808ab207a968d24c",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": " 33%",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_ca115b9aadea481398cca2a2f64479be"
}
},
"acb1dc0badb04b4db62972d334a28c58": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "ProgressView",
"style": "IPY_MODEL_b643da0174424466a393872c3eb0ebd4",
"_dom_classes": [],
"description": "",
"_model_name": "FloatProgressModel",
"bar_style": "danger",
"max": 720,
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": 240,
"_view_count": null,
"_view_module_version": "1.5.0",
"orientation": "horizontal",
"min": 0,
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_480eb2b175e94de79df27041596f7a89"
}
},
"a06baafca0fc4416807c49049728756f": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_e1e207f85ebb47c9bed26d71509f21b8",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": " 240/720 [04:05<01:02, 7.64it/s]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_39bac9d2b79040659535d2e03372bde5"
}
},
"e3bb0de942f44d88808ab207a968d24c": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"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"
}
},
"ca115b9aadea481398cca2a2f64479be": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"b643da0174424466a393872c3eb0ebd4": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "StyleView",
"_model_name": "ProgressStyleModel",
"description_width": "",
"_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"
}
},
"480eb2b175e94de79df27041596f7a89": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"e1e207f85ebb47c9bed26d71509f21b8": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"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"
}
},
"39bac9d2b79040659535d2e03372bde5": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"5436e909c7704c3987fc31d4996a364c": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"model_module_version": "1.5.0",
"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_fddb57b98a2a4befa9973b59a851ceae",
"_model_module": "@jupyter-widgets/controls",
"children": [
"IPY_MODEL_219ca528efe34441a6cc772c17d99640",
"IPY_MODEL_935ff14bb0c44d3ebd7cd33644f6d3a7",
"IPY_MODEL_c0ff465f8b7540c8b094d847a232bb6a"
]
}
},
"fddb57b98a2a4befa9973b59a851ceae": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"219ca528efe34441a6cc772c17d99640": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_dcf74eac636045838d4f2da32276df8b",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": " 50%",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_38cdf52fcd514d27841e42975a0dd9f6"
}
},
"935ff14bb0c44d3ebd7cd33644f6d3a7": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "ProgressView",
"style": "IPY_MODEL_7a623791cdd64b8698026dc7944bb78f",
"_dom_classes": [],
"description": "",
"_model_name": "FloatProgressModel",
"bar_style": "danger",
"max": 720,
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": 360,
"_view_count": null,
"_view_module_version": "1.5.0",
"orientation": "horizontal",
"min": 0,
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_8dc54c237e3b449f9d342d027a36c356"
}
},
"c0ff465f8b7540c8b094d847a232bb6a": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_5625ff26ad14498d92a8f3cabf1079be",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": " 360/720 [03:49<00:47, 7.64it/s]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_2998111c6ee8484ba994c6df5775621a"
}
},
"dcf74eac636045838d4f2da32276df8b": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"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"
}
},
"38cdf52fcd514d27841e42975a0dd9f6": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"7a623791cdd64b8698026dc7944bb78f": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "StyleView",
"_model_name": "ProgressStyleModel",
"description_width": "",
"_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"
}
},
"8dc54c237e3b449f9d342d027a36c356": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"5625ff26ad14498d92a8f3cabf1079be": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"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"
}
},
"2998111c6ee8484ba994c6df5775621a": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"8d7c071fa80b41699d5119cd88500139": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"model_module_version": "1.5.0",
"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_49fd1c193d71437386b147387f608362",
"_model_module": "@jupyter-widgets/controls",
"children": [
"IPY_MODEL_98f6c27dfc4243a4942e759654f47d45",
"IPY_MODEL_c452e937822e4995bb551325bf0c854f",
"IPY_MODEL_365f03995a5a4261b12640af61c1dd2e"
]
}
},
"49fd1c193d71437386b147387f608362": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"98f6c27dfc4243a4942e759654f47d45": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_03e2d5368fab40a4b955613125f6486a",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": " 67%",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_14887211d54442bebca080f5367a7830"
}
},
"c452e937822e4995bb551325bf0c854f": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "ProgressView",
"style": "IPY_MODEL_a06c616ce20c4ee98de36b03573204c6",
"_dom_classes": [],
"description": "",
"_model_name": "FloatProgressModel",
"bar_style": "danger",
"max": 720,
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": 480,
"_view_count": null,
"_view_module_version": "1.5.0",
"orientation": "horizontal",
"min": 0,
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_8f9ad2ad53f7462e97b9aa564c732430"
}
},
"365f03995a5a4261b12640af61c1dd2e": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_88071d3d9efe4ca289e44106e506803c",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": " 480/720 [03:33<00:33, 7.07it/s]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_35a33dd6388849859c2a7c07d564eb78"
}
},
"03e2d5368fab40a4b955613125f6486a": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"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"
}
},
"14887211d54442bebca080f5367a7830": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"a06c616ce20c4ee98de36b03573204c6": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "StyleView",
"_model_name": "ProgressStyleModel",
"description_width": "",
"_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"
}
},
"8f9ad2ad53f7462e97b9aa564c732430": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"88071d3d9efe4ca289e44106e506803c": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"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"
}
},
"35a33dd6388849859c2a7c07d564eb78": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"35c1de0d70dc41ca91004c35e3ac8f01": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"model_module_version": "1.5.0",
"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_8cf0150a8f054d6987d1b8fc7b4dbc6f",
"_model_module": "@jupyter-widgets/controls",
"children": [
"IPY_MODEL_ddaff05f0f9943a6a672cfa19163f4c5",
"IPY_MODEL_71a2510006ee43f2be0bcad1d6e94b92",
"IPY_MODEL_449eed7546c24757b60b62eca25d2abc"
]
}
},
"8cf0150a8f054d6987d1b8fc7b4dbc6f": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"ddaff05f0f9943a6a672cfa19163f4c5": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_71ce471c5c344d1e8cd943aa3b0a6349",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": " 83%",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_23918549ba3b4b3190e64f64e8d713ce"
}
},
"71a2510006ee43f2be0bcad1d6e94b92": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "ProgressView",
"style": "IPY_MODEL_f24b7471de2244b09adf2cf91d36ad5e",
"_dom_classes": [],
"description": "",
"_model_name": "FloatProgressModel",
"bar_style": "danger",
"max": 720,
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": 600,
"_view_count": null,
"_view_module_version": "1.5.0",
"orientation": "horizontal",
"min": 0,
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_498036fa8d9a45ae9fe0526c3fcfbb87"
}
},
"449eed7546c24757b60b62eca25d2abc": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_55c45fa03e234b6bb0639359fe5457f8",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": " 600/720 [03:16<00:14, 8.51it/s]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_f178589a800543e0bdb59ad179284972"
}
},
"71ce471c5c344d1e8cd943aa3b0a6349": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"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"
}
},
"23918549ba3b4b3190e64f64e8d713ce": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"f24b7471de2244b09adf2cf91d36ad5e": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "StyleView",
"_model_name": "ProgressStyleModel",
"description_width": "",
"_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"
}
},
"498036fa8d9a45ae9fe0526c3fcfbb87": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"55c45fa03e234b6bb0639359fe5457f8": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"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"
}
},
"f178589a800543e0bdb59ad179284972": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"9470581189364d40a0af9bbe80dc6325": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"model_module_version": "1.5.0",
"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_59350d6a3c9c454bbd3e0ccefecdb016",
"_model_module": "@jupyter-widgets/controls",
"children": [
"IPY_MODEL_c00a039340cd4db1b5e384ea6345fadc",
"IPY_MODEL_4bab78472d37459090dd434ed6783fef",
"IPY_MODEL_9a92d06114b046d1a91a0afd753fdcb2"
]
}
},
"59350d6a3c9c454bbd3e0ccefecdb016": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"c00a039340cd4db1b5e384ea6345fadc": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_46b99851631c4c6787c97b0d590b80b0",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": "100%",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_2eea7e772de54161a362d26f371a5d56"
}
},
"4bab78472d37459090dd434ed6783fef": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "ProgressView",
"style": "IPY_MODEL_772927770cea443ebd2d11b056e52d9a",
"_dom_classes": [],
"description": "",
"_model_name": "FloatProgressModel",
"bar_style": "success",
"max": 720,
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": 720,
"_view_count": null,
"_view_module_version": "1.5.0",
"orientation": "horizontal",
"min": 0,
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_ecfad20cecb04416baa2921794e7960a"
}
},
"9a92d06114b046d1a91a0afd753fdcb2": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_fadeff7d65894b4283fea4972b221831",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": " 720/720 [03:01<00:00, 8.54it/s]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_1ff701777eff40b0b5ed3e3aae6c3d5e"
}
},
"46b99851631c4c6787c97b0d590b80b0": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"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"
}
},
"2eea7e772de54161a362d26f371a5d56": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"772927770cea443ebd2d11b056e52d9a": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "StyleView",
"_model_name": "ProgressStyleModel",
"description_width": "",
"_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"
}
},
"ecfad20cecb04416baa2921794e7960a": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"fadeff7d65894b4283fea4972b221831": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"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"
}
},
"1ff701777eff40b0b5ed3e3aae6c3d5e": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"63307ca4f344461dad241d73a1bd564a": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"model_module_version": "1.5.0",
"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_a70a54a222dd4c74a53a5143affd6697",
"_model_module": "@jupyter-widgets/controls",
"children": [
"IPY_MODEL_a47f7a8a55d443f69f1071a63f790598",
"IPY_MODEL_39c38679384148cb84a88780e1d13b38",
"IPY_MODEL_38031802dd5c441bbc4fb1ad4655bc25"
]
}
},
"a70a54a222dd4c74a53a5143affd6697": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"a47f7a8a55d443f69f1071a63f790598": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_46a9cef0c4a14edd8719dd41ce7dbaba",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": "100%",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_e4b78d907e4c4ae1af9d751666b8eb11"
}
},
"39c38679384148cb84a88780e1d13b38": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "ProgressView",
"style": "IPY_MODEL_8b4ec4fc917e4c14bf79819c694f3eae",
"_dom_classes": [],
"description": "",
"_model_name": "FloatProgressModel",
"bar_style": "",
"max": 720,
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": 720,
"_view_count": null,
"_view_module_version": "1.5.0",
"orientation": "horizontal",
"min": 0,
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_12b1ef8207cf47cb87b222b187832df8"
}
},
"38031802dd5c441bbc4fb1ad4655bc25": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_bb9d81a91324440893a5767dc03511c4",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": " 720/720 [00:14<00:00, 48.60it/s]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_afb958bec9b147ee85eb6e66ce8ac1d2"
}
},
"46a9cef0c4a14edd8719dd41ce7dbaba": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"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"
}
},
"e4b78d907e4c4ae1af9d751666b8eb11": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"8b4ec4fc917e4c14bf79819c694f3eae": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"model_module_version": "1.5.0",
"state": {
"_view_name": "StyleView",
"_model_name": "ProgressStyleModel",
"description_width": "",
"_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"
}
},
"12b1ef8207cf47cb87b222b187832df8": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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
}
},
"bb9d81a91324440893a5767dc03511c4": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
"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"
}
},
"afb958bec9b147ee85eb6e66ce8ac1d2": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
"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": [
""
]
},
{
"cell_type": "markdown",
"source": [
"#Лабораторная работа №4"
],
"metadata": {
"id": "W1c1N1D6H0MV"
}
},
{
"cell_type": "markdown",
"source": [
"# Задание"
],
"metadata": {
"id": "HZxvk8dYH0MW"
}
},
{
"cell_type": "markdown",
"source": [
"\n",
"\n",
"По заданию выбрать свои классы, загрузить предобученную модель по варианту, заморозить веса модели и провести дообучение на своих классах набора данных. Параметры аугментации использовать из лабораторной работы номер 3.\n",
"\n",
"Сравнить результаты и качество обученных моделей для первых четырех лабораторных работ."
],
"metadata": {
"id": "2cGXG1SyH0MW"
}
},
{
"cell_type": "markdown",
"source": [
"Отчет должен содержать: титульный лист, задание с вариантом, скриншоты и краткие пояснения по каждому этапу лабораторной работы, результаты дообучения модели после заморозки весов.\n",
"\n",
"Варианты классов использовать из 1 лабораторной работы."
],
"metadata": {
"id": "8oyW_66-H0MX"
}
},
{
"cell_type": "markdown",
"source": [
"### Варианты предобученных моделей\n",
"\n",
"| Вариант | Модель \n",
"|----------|----------|\n",
"| Четный | resnet20\n",
"| Нечетный | mobilenetv2_x0_5"
],
"metadata": {
"id": "cMQ3j36rQ_4W"
}
},
{
"cell_type": "markdown",
"source": [
"#Контрольные вопросы\n",
"1. Перенос обучения\n",
"2. Архитектура предобученной модели\n",
"3. Fine tunning\n",
"4. Заморозка весов"
],
"metadata": {
"id": "OfptVMQOH0MX"
}
},
{
"cell_type": "markdown",
"source": [
"#Инициализация предобученной модели"
],
"metadata": {
"id": "QCK0mXnxjHVP"
}
},
{
"cell_type": "code",
"metadata": {
"id": "Gmv_Qcw6KiTu"
},
"source": [
"#!pip install torchsummary\n",
"import time\n",
"import numpy as np\n",
"import torch\n",
"import torch.optim as optim\n",
"import torch.nn as nn\n",
"import torch.nn.functional as F\n",
"from torch.utils.data import TensorDataset, Dataset, DataLoader\n",
"from torchsummary import summary\n",
"from torchvision import transforms as T\n",
"import pickle\n",
"from sklearn.metrics import classification_report\n",
"from PIL import Image\n",
"from tqdm.auto import tqdm\n",
"from IPython.display import clear_output\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"!nvidia-smi"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "zv4YVFroEn9K",
"outputId": "431bd0f0-5f93-4a4d-d59d-2c77a2d54ef0"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Tue Feb 15 10:12:54 2022 \n",
"+-----------------------------------------------------------------------------+\n",
"| NVIDIA-SMI 460.32.03 Driver Version: 460.32.03 CUDA Version: 11.2 |\n",
"|-------------------------------+----------------------+----------------------+\n",
"| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n",
"| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n",
"| | | MIG M. |\n",
"|===============================+======================+======================|\n",
"| 0 Tesla K80 Off | 00000000:00:04.0 Off | 0 |\n",
"| N/A 72C P8 32W / 149W | 0MiB / 11441MiB | 0% Default |\n",
"| | | N/A |\n",
"+-------------------------------+----------------------+----------------------+\n",
" \n",
"+-----------------------------------------------------------------------------+\n",
"| Processes: |\n",
"| GPU GI CI PID Type Process name GPU Memory |\n",
"| ID ID Usage |\n",
"|=============================================================================|\n",
"| No running processes found |\n",
"+-----------------------------------------------------------------------------+\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')"
],
"metadata": {
"id": "UDp0N4q5Evvt"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"!wget https://www.cs.toronto.edu/~kriz/cifar-100-python.tar.gz\n",
"!tar -xvzf cifar-100-python.tar.gz"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "igqG2uRXEx95",
"outputId": "6f9d4600-3097-4152-95d0-6306a3a4c4a2"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"--2022-02-15 10:03:27-- https://www.cs.toronto.edu/~kriz/cifar-100-python.tar.gz\n",
"Resolving www.cs.toronto.edu (www.cs.toronto.edu)... 128.100.3.30\n",
"Connecting to www.cs.toronto.edu (www.cs.toronto.edu)|128.100.3.30|:443... connected.\n",
"HTTP request sent, awaiting response... 200 OK\n",
"Length: 169001437 (161M) [application/x-gzip]\n",
"Saving to: ‘cifar-100-python.tar.gz’\n",
"\n",
"cifar-100-python.ta 100%[===================>] 161.17M 31.4MB/s in 5.7s \n",
"\n",
"2022-02-15 10:03:34 (28.3 MB/s) - ‘cifar-100-python.tar.gz’ saved [169001437/169001437]\n",
"\n",
"cifar-100-python/\n",
"cifar-100-python/file.txt~\n",
"cifar-100-python/train\n",
"cifar-100-python/test\n",
"cifar-100-python/meta\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"with open('cifar-100-python/train', 'rb') as f:\n",
" data_train = pickle.load(f, encoding='latin1')\n",
"with open('cifar-100-python/test', 'rb') as f:\n",
" data_test = pickle.load(f, encoding='latin1')\n",
"\n",
"# Здесь указать ваши классы по варианту!!!\n",
"CLASSES = [0, 55, 58]\n",
"\n",
"train_X = data_train['data'].reshape(-1, 3, 32, 32)\n",
"train_X = np.transpose(train_X, [0, 2, 3, 1]) # NCHW -> NHWC\n",
"train_y = np.array(data_train['fine_labels'])\n",
"mask = np.isin(train_y, CLASSES)\n",
"train_X = train_X[mask].copy()\n",
"train_y = train_y[mask].copy()\n",
"train_y = np.unique(train_y, return_inverse=1)[1]\n",
"del data_train\n",
"\n",
"test_X = data_test['data'].reshape(-1, 3, 32, 32)\n",
"test_X = np.transpose(test_X, [0, 2, 3, 1])\n",
"test_y = np.array(data_test['fine_labels'])\n",
"mask = np.isin(test_y, CLASSES)\n",
"test_X = test_X[mask].copy()\n",
"test_y = test_y[mask].copy()\n",
"test_y = np.unique(test_y, return_inverse=1)[1]\n",
"del data_test\n",
"Image.fromarray(train_X[50]).resize((256,256))"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 273
},
"id": "qDzb8iHSE0nB",
"outputId": "a5415611-4085-4af5-9d13-22e4944962f2"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"execution_count": 6
}
]
},
{
"cell_type": "code",
"source": [
"class CifarDataset(Dataset):\n",
" def __init__(self, X, y, transform=None, p=0.0):\n",
" assert X.size(0) == y.size(0)\n",
" super(Dataset, self).__init__()\n",
" self.X = X\n",
" self.y = y\n",
" self.transform = transform\n",
" self.prob = p\n",
" \n",
" def __len__(self):\n",
" return self.y.size(0)\n",
" \n",
" def __getitem__(self, index):\n",
" x = self.X[index]\n",
" if self.transform and np.random.random()"
]
},
"metadata": {},
"execution_count": 7
}
]
},
{
"cell_type": "code",
"source": [
"batch_size = 128\n",
"dataloader = {}\n",
"for (X, y), part in zip([(train_X, train_y), (test_X, test_y)],\n",
" ['train', 'test']):\n",
" tensor_x = torch.Tensor(X)\n",
" tensor_y = F.one_hot(torch.Tensor(y).to(torch.int64),\n",
" num_classes=len(CLASSES))/1.\n",
" dataset = CifarDataset(tensor_x, tensor_y,\n",
" transform if part=='train' else None,\n",
" p=0.5) # создание объекта датасета\n",
" dataloader[part] = DataLoader(dataset, batch_size=batch_size,\n",
" prefetch_factor=8 if part=='train' else 2,\n",
" num_workers=2, persistent_workers=True,\n",
" shuffle=True) # создание экземпляра класса DataLoader\n",
"dataloader"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "yBcmBcRQE_N6",
"outputId": "38234b1d-af1c-4ec9-ad2a-6a5d9ab6c58f"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"{'test': ,\n",
" 'train': }"
]
},
"metadata": {},
"execution_count": 8
}
]
},
{
"cell_type": "code",
"source": [
"class Normalize(nn.Module):\n",
" def __init__(self, mean, std):\n",
" super(Normalize, self).__init__()\n",
" self.mean = torch.tensor(mean).to(device)\n",
" self.std = torch.tensor(std).to(device)\n",
"\n",
" def forward(self, input):\n",
" x = input / 255.0\n",
" x = x - self.mean\n",
" x = x / self.std\n",
" return x.permute(0, 3, 1, 2) # nhwc -> nm\n",
"\n",
"class GlobalMaxPool2d(nn.Module):\n",
" def __init__(self):\n",
" super(GlobalMaxPool2d, self).__init__()\n",
"\n",
" def forward(self, input):\n",
" out = F.adaptive_max_pool2d(input, output_size=1)\n",
" return out.flatten(start_dim=1)\n",
"\n",
"class Cifar100_MLP(nn.Module):\n",
" def __init__(self, hidden_size=32, classes=100):\n",
" super(Cifar100_MLP, self).__init__()\n",
" # https://blog.jovian.ai/image-classification-of-cifar100-dataset-using-pytorch-8b7145242df1\n",
" self.seq = nn.Sequential(\n",
" Normalize([0.5074,0.4867,0.4411],[0.2011,0.1987,0.2025]),\n",
" # первый способ уменьшения размерности картинки - через stride\n",
" nn.Conv2d(3, HIDDEN_SIZE, 3, stride=4),\n",
" nn.ReLU(),\n",
" nn.Dropout2d(p=0.2),\n",
" # второй способ уменьшения размерности картинки - через слой пуллинг\n",
" nn.Conv2d(HIDDEN_SIZE, HIDDEN_SIZE*2, 3, stride=1, padding=1),\n",
" nn.ReLU(),\n",
" nn.AvgPool2d(4),#nn.MaxPool2d(4),\n",
" nn.Dropout2d(p=0.3),\n",
" nn.Flatten(),\n",
" nn.Linear(HIDDEN_SIZE*8, classes),\n",
" )\n",
"\n",
" def forward(self, input):\n",
" return self.seq(input)\n",
"\n",
"model = torch.hub.load(\"chenyaofo/pytorch-cifar-models\",\n",
" \"cifar100_mobilenetv2_x0_5\",\n",
" #'cifar100_resnet20',\n",
" pretrained=True)\n",
"model.to(device)\n",
"new_model = nn.Sequential(\n",
" Normalize([0.5074,0.4867,0.4411],[0.2011,0.1987,0.2025]),# https://blog.jovian.ai/image-classification-of-cifar100-dataset-using-pytorch-8b7145242df1\n",
" model\n",
").to(device)\n",
"print(new_model(torch.rand(1, 32, 32, 3).to(device)))\n",
"summary(new_model, input_size=(32, 32, 3))\n",
"new_model"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "zpnsDVhoFB-N",
"outputId": "031f21d0-bc9b-40bd-d919-4f45c2d44f1f"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"Using cache found in /root/.cache/torch/hub/chenyaofo_pytorch-cifar-models_master\n"
]
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"MobileNetV2(\n",
" (features): Sequential(\n",
" (0): ConvBNActivation(\n",
" (0): Conv2d(3, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
" (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (1): InvertedResidual(\n",
" (conv): Sequential(\n",
" (0): ConvBNActivation(\n",
" (0): Conv2d(16, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=16, bias=False)\n",
" (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (1): Conv2d(16, 8, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (2): BatchNorm2d(8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" )\n",
" )\n",
" (2): InvertedResidual(\n",
" (conv): Sequential(\n",
" (0): ConvBNActivation(\n",
" (0): Conv2d(8, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (1): ConvBNActivation(\n",
" (0): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=48, bias=False)\n",
" (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (2): Conv2d(48, 16, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (3): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" )\n",
" )\n",
" (3): InvertedResidual(\n",
" (conv): Sequential(\n",
" (0): ConvBNActivation(\n",
" (0): Conv2d(16, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (1): ConvBNActivation(\n",
" (0): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=96, bias=False)\n",
" (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (2): Conv2d(96, 16, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (3): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" )\n",
" )\n",
" (4): InvertedResidual(\n",
" (conv): Sequential(\n",
" (0): ConvBNActivation(\n",
" (0): Conv2d(16, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (1): ConvBNActivation(\n",
" (0): Conv2d(96, 96, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=96, bias=False)\n",
" (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (2): Conv2d(96, 16, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (3): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" )\n",
" )\n",
" (5): InvertedResidual(\n",
" (conv): Sequential(\n",
" (0): ConvBNActivation(\n",
" (0): Conv2d(16, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (1): ConvBNActivation(\n",
" (0): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=96, bias=False)\n",
" (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (2): Conv2d(96, 16, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (3): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" )\n",
" )\n",
" (6): InvertedResidual(\n",
" (conv): Sequential(\n",
" (0): ConvBNActivation(\n",
" (0): Conv2d(16, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (1): ConvBNActivation(\n",
" (0): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=96, bias=False)\n",
" (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (2): Conv2d(96, 16, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (3): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" )\n",
" )\n",
" (7): InvertedResidual(\n",
" (conv): Sequential(\n",
" (0): ConvBNActivation(\n",
" (0): Conv2d(16, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (1): ConvBNActivation(\n",
" (0): Conv2d(96, 96, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=96, bias=False)\n",
" (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (2): Conv2d(96, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (3): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" )\n",
" )\n",
" (8): InvertedResidual(\n",
" (conv): Sequential(\n",
" (0): ConvBNActivation(\n",
" (0): Conv2d(32, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (1): ConvBNActivation(\n",
" (0): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=192, bias=False)\n",
" (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (2): Conv2d(192, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (3): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" )\n",
" )\n",
" (9): InvertedResidual(\n",
" (conv): Sequential(\n",
" (0): ConvBNActivation(\n",
" (0): Conv2d(32, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (1): ConvBNActivation(\n",
" (0): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=192, bias=False)\n",
" (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (2): Conv2d(192, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (3): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" )\n",
" )\n",
" (10): InvertedResidual(\n",
" (conv): Sequential(\n",
" (0): ConvBNActivation(\n",
" (0): Conv2d(32, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (1): ConvBNActivation(\n",
" (0): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=192, bias=False)\n",
" (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (2): Conv2d(192, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (3): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" )\n",
" )\n",
" (11): InvertedResidual(\n",
" (conv): Sequential(\n",
" (0): ConvBNActivation(\n",
" (0): Conv2d(32, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (1): ConvBNActivation(\n",
" (0): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=192, bias=False)\n",
" (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (2): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (3): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" )\n",
" )\n",
" (12): InvertedResidual(\n",
" (conv): Sequential(\n",
" (0): ConvBNActivation(\n",
" (0): Conv2d(48, 288, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (1): BatchNorm2d(288, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (1): ConvBNActivation(\n",
" (0): Conv2d(288, 288, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=288, bias=False)\n",
" (1): BatchNorm2d(288, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (2): Conv2d(288, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (3): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" )\n",
" )\n",
" (13): InvertedResidual(\n",
" (conv): Sequential(\n",
" (0): ConvBNActivation(\n",
" (0): Conv2d(48, 288, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (1): BatchNorm2d(288, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (1): ConvBNActivation(\n",
" (0): Conv2d(288, 288, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=288, bias=False)\n",
" (1): BatchNorm2d(288, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (2): Conv2d(288, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (3): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" )\n",
" )\n",
" (14): InvertedResidual(\n",
" (conv): Sequential(\n",
" (0): ConvBNActivation(\n",
" (0): Conv2d(48, 288, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (1): BatchNorm2d(288, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (1): ConvBNActivation(\n",
" (0): Conv2d(288, 288, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=288, bias=False)\n",
" (1): BatchNorm2d(288, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (2): Conv2d(288, 80, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (3): BatchNorm2d(80, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" )\n",
" )\n",
" (15): InvertedResidual(\n",
" (conv): Sequential(\n",
" (0): ConvBNActivation(\n",
" (0): Conv2d(80, 480, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (1): BatchNorm2d(480, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (1): ConvBNActivation(\n",
" (0): Conv2d(480, 480, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=480, bias=False)\n",
" (1): BatchNorm2d(480, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (2): Conv2d(480, 80, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (3): BatchNorm2d(80, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" )\n",
" )\n",
" (16): InvertedResidual(\n",
" (conv): Sequential(\n",
" (0): ConvBNActivation(\n",
" (0): Conv2d(80, 480, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (1): BatchNorm2d(480, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (1): ConvBNActivation(\n",
" (0): Conv2d(480, 480, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=480, bias=False)\n",
" (1): BatchNorm2d(480, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (2): Conv2d(480, 80, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (3): BatchNorm2d(80, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" )\n",
" )\n",
" (17): InvertedResidual(\n",
" (conv): Sequential(\n",
" (0): ConvBNActivation(\n",
" (0): Conv2d(80, 480, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (1): BatchNorm2d(480, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (1): ConvBNActivation(\n",
" (0): Conv2d(480, 480, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=480, bias=False)\n",
" (1): BatchNorm2d(480, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" (2): Conv2d(480, 160, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (3): BatchNorm2d(160, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" )\n",
" )\n",
" (18): ConvBNActivation(\n",
" (0): Conv2d(160, 1280, kernel_size=(1, 1), stride=(1, 1), bias=False)\n",
" (1): BatchNorm2d(1280, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU6(inplace=True)\n",
" )\n",
" )\n",
" (classifier): Sequential(\n",
" (0): Dropout(p=0.2, inplace=False)\n",
" (1): Linear(in_features=1280, out_features=100, bias=True)\n",
" )\n",
")"
]
},
"metadata": {},
"execution_count": 4
}
]
},
{
"cell_type": "code",
"source": [
"summary(model, input_size=(3, 512, 512))"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "_5bkK8ct3GUI",
"outputId": "e74e9901-21ea-49ed-e585-fdd4a4315838"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"----------------------------------------------------------------\n",
" Layer (type) Output Shape Param #\n",
"================================================================\n",
" Conv2d-1 [-1, 16, 512, 512] 432\n",
" BatchNorm2d-2 [-1, 16, 512, 512] 32\n",
" ReLU6-3 [-1, 16, 512, 512] 0\n",
" Conv2d-4 [-1, 16, 512, 512] 144\n",
" BatchNorm2d-5 [-1, 16, 512, 512] 32\n",
" ReLU6-6 [-1, 16, 512, 512] 0\n",
" Conv2d-7 [-1, 8, 512, 512] 128\n",
" BatchNorm2d-8 [-1, 8, 512, 512] 16\n",
" InvertedResidual-9 [-1, 8, 512, 512] 0\n",
" Conv2d-10 [-1, 48, 512, 512] 384\n",
" BatchNorm2d-11 [-1, 48, 512, 512] 96\n",
" ReLU6-12 [-1, 48, 512, 512] 0\n",
" Conv2d-13 [-1, 48, 512, 512] 432\n",
" BatchNorm2d-14 [-1, 48, 512, 512] 96\n",
" ReLU6-15 [-1, 48, 512, 512] 0\n",
" Conv2d-16 [-1, 16, 512, 512] 768\n",
" BatchNorm2d-17 [-1, 16, 512, 512] 32\n",
" InvertedResidual-18 [-1, 16, 512, 512] 0\n",
" Conv2d-19 [-1, 96, 512, 512] 1,536\n",
" BatchNorm2d-20 [-1, 96, 512, 512] 192\n",
" ReLU6-21 [-1, 96, 512, 512] 0\n",
" Conv2d-22 [-1, 96, 512, 512] 864\n",
" BatchNorm2d-23 [-1, 96, 512, 512] 192\n",
" ReLU6-24 [-1, 96, 512, 512] 0\n",
" Conv2d-25 [-1, 16, 512, 512] 1,536\n",
" BatchNorm2d-26 [-1, 16, 512, 512] 32\n",
" InvertedResidual-27 [-1, 16, 512, 512] 0\n",
" Conv2d-28 [-1, 96, 512, 512] 1,536\n",
" BatchNorm2d-29 [-1, 96, 512, 512] 192\n",
" ReLU6-30 [-1, 96, 512, 512] 0\n",
" Conv2d-31 [-1, 96, 256, 256] 864\n",
" BatchNorm2d-32 [-1, 96, 256, 256] 192\n",
" ReLU6-33 [-1, 96, 256, 256] 0\n",
" Conv2d-34 [-1, 16, 256, 256] 1,536\n",
" BatchNorm2d-35 [-1, 16, 256, 256] 32\n",
" InvertedResidual-36 [-1, 16, 256, 256] 0\n",
" Conv2d-37 [-1, 96, 256, 256] 1,536\n",
" BatchNorm2d-38 [-1, 96, 256, 256] 192\n",
" ReLU6-39 [-1, 96, 256, 256] 0\n",
" Conv2d-40 [-1, 96, 256, 256] 864\n",
" BatchNorm2d-41 [-1, 96, 256, 256] 192\n",
" ReLU6-42 [-1, 96, 256, 256] 0\n",
" Conv2d-43 [-1, 16, 256, 256] 1,536\n",
" BatchNorm2d-44 [-1, 16, 256, 256] 32\n",
" InvertedResidual-45 [-1, 16, 256, 256] 0\n",
" Conv2d-46 [-1, 96, 256, 256] 1,536\n",
" BatchNorm2d-47 [-1, 96, 256, 256] 192\n",
" ReLU6-48 [-1, 96, 256, 256] 0\n",
" Conv2d-49 [-1, 96, 256, 256] 864\n",
" BatchNorm2d-50 [-1, 96, 256, 256] 192\n",
" ReLU6-51 [-1, 96, 256, 256] 0\n",
" Conv2d-52 [-1, 16, 256, 256] 1,536\n",
" BatchNorm2d-53 [-1, 16, 256, 256] 32\n",
" InvertedResidual-54 [-1, 16, 256, 256] 0\n",
" Conv2d-55 [-1, 96, 256, 256] 1,536\n",
" BatchNorm2d-56 [-1, 96, 256, 256] 192\n",
" ReLU6-57 [-1, 96, 256, 256] 0\n",
" Conv2d-58 [-1, 96, 128, 128] 864\n",
" BatchNorm2d-59 [-1, 96, 128, 128] 192\n",
" ReLU6-60 [-1, 96, 128, 128] 0\n",
" Conv2d-61 [-1, 32, 128, 128] 3,072\n",
" BatchNorm2d-62 [-1, 32, 128, 128] 64\n",
" InvertedResidual-63 [-1, 32, 128, 128] 0\n",
" Conv2d-64 [-1, 192, 128, 128] 6,144\n",
" BatchNorm2d-65 [-1, 192, 128, 128] 384\n",
" ReLU6-66 [-1, 192, 128, 128] 0\n",
" Conv2d-67 [-1, 192, 128, 128] 1,728\n",
" BatchNorm2d-68 [-1, 192, 128, 128] 384\n",
" ReLU6-69 [-1, 192, 128, 128] 0\n",
" Conv2d-70 [-1, 32, 128, 128] 6,144\n",
" BatchNorm2d-71 [-1, 32, 128, 128] 64\n",
" InvertedResidual-72 [-1, 32, 128, 128] 0\n",
" Conv2d-73 [-1, 192, 128, 128] 6,144\n",
" BatchNorm2d-74 [-1, 192, 128, 128] 384\n",
" ReLU6-75 [-1, 192, 128, 128] 0\n",
" Conv2d-76 [-1, 192, 128, 128] 1,728\n",
" BatchNorm2d-77 [-1, 192, 128, 128] 384\n",
" ReLU6-78 [-1, 192, 128, 128] 0\n",
" Conv2d-79 [-1, 32, 128, 128] 6,144\n",
" BatchNorm2d-80 [-1, 32, 128, 128] 64\n",
" InvertedResidual-81 [-1, 32, 128, 128] 0\n",
" Conv2d-82 [-1, 192, 128, 128] 6,144\n",
" BatchNorm2d-83 [-1, 192, 128, 128] 384\n",
" ReLU6-84 [-1, 192, 128, 128] 0\n",
" Conv2d-85 [-1, 192, 128, 128] 1,728\n",
" BatchNorm2d-86 [-1, 192, 128, 128] 384\n",
" ReLU6-87 [-1, 192, 128, 128] 0\n",
" Conv2d-88 [-1, 32, 128, 128] 6,144\n",
" BatchNorm2d-89 [-1, 32, 128, 128] 64\n",
" InvertedResidual-90 [-1, 32, 128, 128] 0\n",
" Conv2d-91 [-1, 192, 128, 128] 6,144\n",
" BatchNorm2d-92 [-1, 192, 128, 128] 384\n",
" ReLU6-93 [-1, 192, 128, 128] 0\n",
" Conv2d-94 [-1, 192, 128, 128] 1,728\n",
" BatchNorm2d-95 [-1, 192, 128, 128] 384\n",
" ReLU6-96 [-1, 192, 128, 128] 0\n",
" Conv2d-97 [-1, 48, 128, 128] 9,216\n",
" BatchNorm2d-98 [-1, 48, 128, 128] 96\n",
" InvertedResidual-99 [-1, 48, 128, 128] 0\n",
" Conv2d-100 [-1, 288, 128, 128] 13,824\n",
" BatchNorm2d-101 [-1, 288, 128, 128] 576\n",
" ReLU6-102 [-1, 288, 128, 128] 0\n",
" Conv2d-103 [-1, 288, 128, 128] 2,592\n",
" BatchNorm2d-104 [-1, 288, 128, 128] 576\n",
" ReLU6-105 [-1, 288, 128, 128] 0\n",
" Conv2d-106 [-1, 48, 128, 128] 13,824\n",
" BatchNorm2d-107 [-1, 48, 128, 128] 96\n",
"InvertedResidual-108 [-1, 48, 128, 128] 0\n",
" Conv2d-109 [-1, 288, 128, 128] 13,824\n",
" BatchNorm2d-110 [-1, 288, 128, 128] 576\n",
" ReLU6-111 [-1, 288, 128, 128] 0\n",
" Conv2d-112 [-1, 288, 128, 128] 2,592\n",
" BatchNorm2d-113 [-1, 288, 128, 128] 576\n",
" ReLU6-114 [-1, 288, 128, 128] 0\n",
" Conv2d-115 [-1, 48, 128, 128] 13,824\n",
" BatchNorm2d-116 [-1, 48, 128, 128] 96\n",
"InvertedResidual-117 [-1, 48, 128, 128] 0\n",
" Conv2d-118 [-1, 288, 128, 128] 13,824\n",
" BatchNorm2d-119 [-1, 288, 128, 128] 576\n",
" ReLU6-120 [-1, 288, 128, 128] 0\n",
" Conv2d-121 [-1, 288, 64, 64] 2,592\n",
" BatchNorm2d-122 [-1, 288, 64, 64] 576\n",
" ReLU6-123 [-1, 288, 64, 64] 0\n",
" Conv2d-124 [-1, 80, 64, 64] 23,040\n",
" BatchNorm2d-125 [-1, 80, 64, 64] 160\n",
"InvertedResidual-126 [-1, 80, 64, 64] 0\n",
" Conv2d-127 [-1, 480, 64, 64] 38,400\n",
" BatchNorm2d-128 [-1, 480, 64, 64] 960\n",
" ReLU6-129 [-1, 480, 64, 64] 0\n",
" Conv2d-130 [-1, 480, 64, 64] 4,320\n",
" BatchNorm2d-131 [-1, 480, 64, 64] 960\n",
" ReLU6-132 [-1, 480, 64, 64] 0\n",
" Conv2d-133 [-1, 80, 64, 64] 38,400\n",
" BatchNorm2d-134 [-1, 80, 64, 64] 160\n",
"InvertedResidual-135 [-1, 80, 64, 64] 0\n",
" Conv2d-136 [-1, 480, 64, 64] 38,400\n",
" BatchNorm2d-137 [-1, 480, 64, 64] 960\n",
" ReLU6-138 [-1, 480, 64, 64] 0\n",
" Conv2d-139 [-1, 480, 64, 64] 4,320\n",
" BatchNorm2d-140 [-1, 480, 64, 64] 960\n",
" ReLU6-141 [-1, 480, 64, 64] 0\n",
" Conv2d-142 [-1, 80, 64, 64] 38,400\n",
" BatchNorm2d-143 [-1, 80, 64, 64] 160\n",
"InvertedResidual-144 [-1, 80, 64, 64] 0\n",
" Conv2d-145 [-1, 480, 64, 64] 38,400\n",
" BatchNorm2d-146 [-1, 480, 64, 64] 960\n",
" ReLU6-147 [-1, 480, 64, 64] 0\n",
" Conv2d-148 [-1, 480, 64, 64] 4,320\n",
" BatchNorm2d-149 [-1, 480, 64, 64] 960\n",
" ReLU6-150 [-1, 480, 64, 64] 0\n",
" Conv2d-151 [-1, 160, 64, 64] 76,800\n",
" BatchNorm2d-152 [-1, 160, 64, 64] 320\n",
"InvertedResidual-153 [-1, 160, 64, 64] 0\n",
" Conv2d-154 [-1, 1280, 64, 64] 204,800\n",
" BatchNorm2d-155 [-1, 1280, 64, 64] 2,560\n",
" ReLU6-156 [-1, 1280, 64, 64] 0\n",
" Dropout-157 [-1, 1280] 0\n",
" Linear-158 [-1, 100] 128,100\n",
"================================================================\n",
"Total params: 815,780\n",
"Trainable params: 815,780\n",
"Non-trainable params: 0\n",
"----------------------------------------------------------------\n",
"Input size (MB): 3.00\n",
"Forward/backward pass size (MB): 5380.51\n",
"Params size (MB): 3.11\n",
"Estimated Total Size (MB): 5386.62\n",
"----------------------------------------------------------------\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"#!git clone https://github.com/Fangyh09/pytorch-receptive-field.git\n",
"def compute_RF_numerical(net,img_np):\n",
" '''\n",
" @param net: Pytorch network\n",
" @param img_np: numpy array to use as input to the networks, it must be full of ones and with the correct\n",
" shape.\n",
" '''\n",
" def weights_init(m):\n",
" classname = m.__class__.__name__\n",
" if classname.find('Conv') != -1:\n",
" m.weight.data.fill_(1)\n",
" m.bias.data.fill_(0)\n",
" #net.apply(weights_init)\n",
" img_ = torch.tensor(torch.from_numpy(img_np).float(),requires_grad=True)\n",
" out_cnn=net(img_.to(device))\n",
" out_shape=out_cnn.size()\n",
" ndims=len(out_cnn.size())\n",
" grad=torch.zeros(out_cnn.size())\n",
" l_tmp=[]\n",
" for i in range(ndims):\n",
" if i==0 or i ==1:#batch or channel\n",
" l_tmp.append(0)\n",
" else:\n",
" l_tmp.append(out_shape[i]/2)\n",
" \n",
" grad[tuple(l_tmp)]=1\n",
" out_cnn.backward(gradient=grad.to(device))\n",
" grad_np=img_.grad[0,0].data.detach().cpu().numpy()\n",
" idx_nonzeros=np.where(grad_np!=0)\n",
" RF=[np.max(idx)-np.min(idx)+1 for idx in idx_nonzeros]\n",
" \n",
" return RF\n",
"\n",
"compute_RF_numerical(model, np.zeros((1, 3, 1024, 1024)))"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "jnoXaYoazM1o",
"outputId": "0a06bcc2-9fd4-4b7b-97a5-c045713cd2c4"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:14: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n",
" \n"
]
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[1024, 1024]"
]
},
"metadata": {},
"execution_count": 5
}
]
},
{
"cell_type": "code",
"source": [
"## mobilenetv2\n",
"#in_features = new_model[1].classifier[1].in_features\n",
"#new_model[1].classifier[1] = nn.Linear(in_features=in_features,\n",
"# out_features=len(CLASSES),\n",
"# bias=True)\n",
"## resnet20\n",
"in_features = new_model[1].fc.in_features\n",
"new_model[1].fc = nn.Linear(in_features=in_features,\n",
" out_features=len(CLASSES),\n",
" bias=True)\n",
"\n",
"new_model.to(device)\n",
"summary(new_model, input_size=(32, 32, 3))\n",
"print(new_model(torch.rand(1, 32, 32, 3).to(device)))"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "03JE6MAlFiVc",
"outputId": "37d72771-d0ae-4c07-c1b0-7dbe95026b80"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"----------------------------------------------------------------\n",
" Layer (type) Output Shape Param #\n",
"================================================================\n",
" Normalize-1 [-1, 3, 32, 32] 0\n",
" Conv2d-2 [-1, 16, 32, 32] 432\n",
" BatchNorm2d-3 [-1, 16, 32, 32] 32\n",
" ReLU-4 [-1, 16, 32, 32] 0\n",
" Conv2d-5 [-1, 16, 32, 32] 2,304\n",
" BatchNorm2d-6 [-1, 16, 32, 32] 32\n",
" ReLU-7 [-1, 16, 32, 32] 0\n",
" Conv2d-8 [-1, 16, 32, 32] 2,304\n",
" BatchNorm2d-9 [-1, 16, 32, 32] 32\n",
" ReLU-10 [-1, 16, 32, 32] 0\n",
" BasicBlock-11 [-1, 16, 32, 32] 0\n",
" Conv2d-12 [-1, 16, 32, 32] 2,304\n",
" BatchNorm2d-13 [-1, 16, 32, 32] 32\n",
" ReLU-14 [-1, 16, 32, 32] 0\n",
" Conv2d-15 [-1, 16, 32, 32] 2,304\n",
" BatchNorm2d-16 [-1, 16, 32, 32] 32\n",
" ReLU-17 [-1, 16, 32, 32] 0\n",
" BasicBlock-18 [-1, 16, 32, 32] 0\n",
" Conv2d-19 [-1, 16, 32, 32] 2,304\n",
" BatchNorm2d-20 [-1, 16, 32, 32] 32\n",
" ReLU-21 [-1, 16, 32, 32] 0\n",
" Conv2d-22 [-1, 16, 32, 32] 2,304\n",
" BatchNorm2d-23 [-1, 16, 32, 32] 32\n",
" ReLU-24 [-1, 16, 32, 32] 0\n",
" BasicBlock-25 [-1, 16, 32, 32] 0\n",
" Conv2d-26 [-1, 32, 16, 16] 4,608\n",
" BatchNorm2d-27 [-1, 32, 16, 16] 64\n",
" ReLU-28 [-1, 32, 16, 16] 0\n",
" Conv2d-29 [-1, 32, 16, 16] 9,216\n",
" BatchNorm2d-30 [-1, 32, 16, 16] 64\n",
" Conv2d-31 [-1, 32, 16, 16] 512\n",
" BatchNorm2d-32 [-1, 32, 16, 16] 64\n",
" ReLU-33 [-1, 32, 16, 16] 0\n",
" BasicBlock-34 [-1, 32, 16, 16] 0\n",
" Conv2d-35 [-1, 32, 16, 16] 9,216\n",
" BatchNorm2d-36 [-1, 32, 16, 16] 64\n",
" ReLU-37 [-1, 32, 16, 16] 0\n",
" Conv2d-38 [-1, 32, 16, 16] 9,216\n",
" BatchNorm2d-39 [-1, 32, 16, 16] 64\n",
" ReLU-40 [-1, 32, 16, 16] 0\n",
" BasicBlock-41 [-1, 32, 16, 16] 0\n",
" Conv2d-42 [-1, 32, 16, 16] 9,216\n",
" BatchNorm2d-43 [-1, 32, 16, 16] 64\n",
" ReLU-44 [-1, 32, 16, 16] 0\n",
" Conv2d-45 [-1, 32, 16, 16] 9,216\n",
" BatchNorm2d-46 [-1, 32, 16, 16] 64\n",
" ReLU-47 [-1, 32, 16, 16] 0\n",
" BasicBlock-48 [-1, 32, 16, 16] 0\n",
" Conv2d-49 [-1, 64, 8, 8] 18,432\n",
" BatchNorm2d-50 [-1, 64, 8, 8] 128\n",
" ReLU-51 [-1, 64, 8, 8] 0\n",
" Conv2d-52 [-1, 64, 8, 8] 36,864\n",
" BatchNorm2d-53 [-1, 64, 8, 8] 128\n",
" Conv2d-54 [-1, 64, 8, 8] 2,048\n",
" BatchNorm2d-55 [-1, 64, 8, 8] 128\n",
" ReLU-56 [-1, 64, 8, 8] 0\n",
" BasicBlock-57 [-1, 64, 8, 8] 0\n",
" Conv2d-58 [-1, 64, 8, 8] 36,864\n",
" BatchNorm2d-59 [-1, 64, 8, 8] 128\n",
" ReLU-60 [-1, 64, 8, 8] 0\n",
" Conv2d-61 [-1, 64, 8, 8] 36,864\n",
" BatchNorm2d-62 [-1, 64, 8, 8] 128\n",
" ReLU-63 [-1, 64, 8, 8] 0\n",
" BasicBlock-64 [-1, 64, 8, 8] 0\n",
" Conv2d-65 [-1, 64, 8, 8] 36,864\n",
" BatchNorm2d-66 [-1, 64, 8, 8] 128\n",
" ReLU-67 [-1, 64, 8, 8] 0\n",
" Conv2d-68 [-1, 64, 8, 8] 36,864\n",
" BatchNorm2d-69 [-1, 64, 8, 8] 128\n",
" ReLU-70 [-1, 64, 8, 8] 0\n",
" BasicBlock-71 [-1, 64, 8, 8] 0\n",
"AdaptiveAvgPool2d-72 [-1, 64, 1, 1] 0\n",
" Linear-73 [-1, 3] 195\n",
" CifarResNet-74 [-1, 3] 0\n",
"================================================================\n",
"Total params: 272,019\n",
"Trainable params: 272,019\n",
"Non-trainable params: 0\n",
"----------------------------------------------------------------\n",
"Input size (MB): 0.01\n",
"Forward/backward pass size (MB): 5.18\n",
"Params size (MB): 1.04\n",
"Estimated Total Size (MB): 6.23\n",
"----------------------------------------------------------------\n",
"tensor([[ 0.0618, -0.5320, 0.1268]], device='cuda:0',\n",
" grad_fn=)\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"# Заморозка весов"
],
"metadata": {
"id": "cklFXQrBGai1"
}
},
{
"cell_type": "code",
"source": [
"print(\"Обучаемые параметры:\")\n",
"keep_last = 2\n",
"total = len([*new_model.named_parameters()])\n",
"params_to_update = []\n",
"for i, (name, param) in enumerate(new_model.named_parameters()):\n",
" if i < total - keep_last:\n",
" param.requires_grad = False \n",
" else:\n",
" params_to_update.append(param)\n",
" print(\"\\t\",name)\n",
"summary(new_model, input_size=(32, 32, 3))"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "2CkfRJgxGHtf",
"outputId": "9f3c5ba4-df77-41cb-ca56-e783191c637b"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Обучаемые параметры:\n",
"\t 1.fc.weight\n",
"\t 1.fc.bias\n",
"----------------------------------------------------------------\n",
" Layer (type) Output Shape Param #\n",
"================================================================\n",
" Normalize-1 [-1, 3, 32, 32] 0\n",
" Conv2d-2 [-1, 16, 32, 32] 432\n",
" BatchNorm2d-3 [-1, 16, 32, 32] 32\n",
" ReLU-4 [-1, 16, 32, 32] 0\n",
" Conv2d-5 [-1, 16, 32, 32] 2,304\n",
" BatchNorm2d-6 [-1, 16, 32, 32] 32\n",
" ReLU-7 [-1, 16, 32, 32] 0\n",
" Conv2d-8 [-1, 16, 32, 32] 2,304\n",
" BatchNorm2d-9 [-1, 16, 32, 32] 32\n",
" ReLU-10 [-1, 16, 32, 32] 0\n",
" BasicBlock-11 [-1, 16, 32, 32] 0\n",
" Conv2d-12 [-1, 16, 32, 32] 2,304\n",
" BatchNorm2d-13 [-1, 16, 32, 32] 32\n",
" ReLU-14 [-1, 16, 32, 32] 0\n",
" Conv2d-15 [-1, 16, 32, 32] 2,304\n",
" BatchNorm2d-16 [-1, 16, 32, 32] 32\n",
" ReLU-17 [-1, 16, 32, 32] 0\n",
" BasicBlock-18 [-1, 16, 32, 32] 0\n",
" Conv2d-19 [-1, 16, 32, 32] 2,304\n",
" BatchNorm2d-20 [-1, 16, 32, 32] 32\n",
" ReLU-21 [-1, 16, 32, 32] 0\n",
" Conv2d-22 [-1, 16, 32, 32] 2,304\n",
" BatchNorm2d-23 [-1, 16, 32, 32] 32\n",
" ReLU-24 [-1, 16, 32, 32] 0\n",
" BasicBlock-25 [-1, 16, 32, 32] 0\n",
" Conv2d-26 [-1, 32, 16, 16] 4,608\n",
" BatchNorm2d-27 [-1, 32, 16, 16] 64\n",
" ReLU-28 [-1, 32, 16, 16] 0\n",
" Conv2d-29 [-1, 32, 16, 16] 9,216\n",
" BatchNorm2d-30 [-1, 32, 16, 16] 64\n",
" Conv2d-31 [-1, 32, 16, 16] 512\n",
" BatchNorm2d-32 [-1, 32, 16, 16] 64\n",
" ReLU-33 [-1, 32, 16, 16] 0\n",
" BasicBlock-34 [-1, 32, 16, 16] 0\n",
" Conv2d-35 [-1, 32, 16, 16] 9,216\n",
" BatchNorm2d-36 [-1, 32, 16, 16] 64\n",
" ReLU-37 [-1, 32, 16, 16] 0\n",
" Conv2d-38 [-1, 32, 16, 16] 9,216\n",
" BatchNorm2d-39 [-1, 32, 16, 16] 64\n",
" ReLU-40 [-1, 32, 16, 16] 0\n",
" BasicBlock-41 [-1, 32, 16, 16] 0\n",
" Conv2d-42 [-1, 32, 16, 16] 9,216\n",
" BatchNorm2d-43 [-1, 32, 16, 16] 64\n",
" ReLU-44 [-1, 32, 16, 16] 0\n",
" Conv2d-45 [-1, 32, 16, 16] 9,216\n",
" BatchNorm2d-46 [-1, 32, 16, 16] 64\n",
" ReLU-47 [-1, 32, 16, 16] 0\n",
" BasicBlock-48 [-1, 32, 16, 16] 0\n",
" Conv2d-49 [-1, 64, 8, 8] 18,432\n",
" BatchNorm2d-50 [-1, 64, 8, 8] 128\n",
" ReLU-51 [-1, 64, 8, 8] 0\n",
" Conv2d-52 [-1, 64, 8, 8] 36,864\n",
" BatchNorm2d-53 [-1, 64, 8, 8] 128\n",
" Conv2d-54 [-1, 64, 8, 8] 2,048\n",
" BatchNorm2d-55 [-1, 64, 8, 8] 128\n",
" ReLU-56 [-1, 64, 8, 8] 0\n",
" BasicBlock-57 [-1, 64, 8, 8] 0\n",
" Conv2d-58 [-1, 64, 8, 8] 36,864\n",
" BatchNorm2d-59 [-1, 64, 8, 8] 128\n",
" ReLU-60 [-1, 64, 8, 8] 0\n",
" Conv2d-61 [-1, 64, 8, 8] 36,864\n",
" BatchNorm2d-62 [-1, 64, 8, 8] 128\n",
" ReLU-63 [-1, 64, 8, 8] 0\n",
" BasicBlock-64 [-1, 64, 8, 8] 0\n",
" Conv2d-65 [-1, 64, 8, 8] 36,864\n",
" BatchNorm2d-66 [-1, 64, 8, 8] 128\n",
" ReLU-67 [-1, 64, 8, 8] 0\n",
" Conv2d-68 [-1, 64, 8, 8] 36,864\n",
" BatchNorm2d-69 [-1, 64, 8, 8] 128\n",
" ReLU-70 [-1, 64, 8, 8] 0\n",
" BasicBlock-71 [-1, 64, 8, 8] 0\n",
"AdaptiveAvgPool2d-72 [-1, 64, 1, 1] 0\n",
" Linear-73 [-1, 3] 195\n",
" CifarResNet-74 [-1, 3] 0\n",
"================================================================\n",
"Total params: 272,019\n",
"Trainable params: 195\n",
"Non-trainable params: 271,824\n",
"----------------------------------------------------------------\n",
"Input size (MB): 0.01\n",
"Forward/backward pass size (MB): 5.18\n",
"Params size (MB): 1.04\n",
"Estimated Total Size (MB): 6.23\n",
"----------------------------------------------------------------\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"# Fine tunning"
],
"metadata": {
"id": "AKGQ9CH3HoLq"
}
},
{
"cell_type": "code",
"source": [
"# добавляем сглаживание целевых меток, это увеличит значение функции потерь\n",
"# но полученная модель будет более устойчивой к выбросам в обучающей выборке\n",
"criterion = nn.CrossEntropyLoss(label_smoothing=0.1)\n",
"# используется SGD c momentum и L2-регуляризацией весов\n",
"optimizer = optim.SGD(params_to_update, lr=3e-4, momentum=0.9,\n",
" weight_decay=1e-5)\n",
"# добавляем постепенное уменьшение шага обучения каждые 200 эпох\n",
"scheduler = optim.lr_scheduler.StepLR(optimizer, step_size=20, gamma=0.5)"
],
"metadata": {
"id": "l6HA-mcOHra1"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"EPOCHS = 60\n",
"REDRAW_EVERY = 10\n",
"steps_per_epoch = len(dataloader['train'])\n",
"steps_per_epoch_val = len(dataloader['test'])\n",
"# NEW\n",
"pbar = tqdm(total=EPOCHS*steps_per_epoch)\n",
"losses = []\n",
"losses_val = []\n",
"passed = 0\n",
"# для создания чекпоинта\n",
"best_acc = 0\n",
"checkpoint_path = 'cifar_cnn_fine.pth' \n",
"for epoch in range(EPOCHS): # проход по набору данных несколько раз\n",
" tmp = []\n",
" new_model.train()\n",
" for i, batch in enumerate(dataloader['train'], 0):\n",
" # получение одного минибатча; batch это двуэлементный список из [inputs, labels]\n",
" inputs, labels = batch\n",
" # на GPU\n",
" inputs, labels = inputs.to(device), labels.to(device)\n",
"\n",
" # очищение прошлых градиентов с прошлой итерации\n",
" optimizer.zero_grad()\n",
"\n",
" # прямой + обратный проходы + оптимизация\n",
" outputs = new_model(inputs)\n",
" loss = criterion(outputs, labels)\n",
" #loss = F.cross_entropy(outputs, labels)\n",
" loss.backward()\n",
" optimizer.step()\n",
"\n",
" # для подсчёта статистик\n",
" accuracy = (labels.detach().argmax(dim=-1)==outputs.detach().argmax(dim=-1)).\\\n",
" to(torch.float32).mean().cpu()*100\n",
" tmp.append((loss.item(), accuracy.item()))\n",
" pbar.update(1)\n",
" losses.append((np.mean(tmp, axis=0),\n",
" np.percentile(tmp, 25, axis=0),\n",
" np.percentile(tmp, 75, axis=0)))\n",
" scheduler.step() # обновляем learning_rate каждую эпоху\n",
" tmp = []\n",
" new_model.eval()\n",
" with torch.no_grad(): # отключение автоматического дифференцирования\n",
" for i, data in enumerate(dataloader['test'], 0):\n",
" inputs, labels = data\n",
" # на GPU\n",
" inputs, labels = inputs.to(device), labels.to(device)\n",
"\n",
" outputs = new_model(inputs)\n",
" loss = criterion(outputs, labels)\n",
" accuracy = (labels.argmax(dim=-1)==outputs.argmax(dim=-1)).\\\n",
" to(torch.float32).mean().cpu()*100\n",
" tmp.append((loss.item(), accuracy.item()))\n",
" losses_val.append((np.mean(tmp, axis=0),\n",
" np.percentile(tmp, 25, axis=0),\n",
" np.percentile(tmp, 75, axis=0)))\n",
" # сохранение чекпоинта\n",
" acc = losses_val[-1][0][1]\n",
" if acc > best_acc:\n",
" best_acc = acc\n",
" torch.save(new_model.state_dict(), checkpoint_path)\n",
" # обновление графиков\n",
" if (epoch+1) % REDRAW_EVERY != 0:\n",
" continue\n",
" clear_output(wait=False)\n",
" print('Эпоха: %s\\n'\n",
" 'Лучшая доля правильных ответов: %s\\n'\n",
" 'Текущая доля правильных ответов: %s' % (epoch+1, best_acc, acc))\n",
" passed += pbar.format_dict['elapsed']\n",
" pbar = tqdm(total=EPOCHS*steps_per_epoch, miniters=5)\n",
" pbar.update((epoch+1)*steps_per_epoch)\n",
" x_vals = np.arange(epoch+1)\n",
" _, ax = plt.subplots(1, 2, figsize=(15, 5))\n",
" stats = np.array(losses)\n",
" stats_val = np.array(losses_val)\n",
" ax[1].set_ylim(stats_val[:, 0, 1].min()-5, 100)\n",
" ax[1].grid(axis='y')\n",
" for i, title in enumerate(['CCE', 'Accuracy']):\n",
" ax[i].plot(x_vals, stats[:, 0, i], label='train')\n",
" ax[i].fill_between(x_vals, stats[:, 1, i],\n",
" stats[:, 2, i], alpha=0.4)\n",
" ax[i].plot(x_vals, stats_val[:, 0, i], label='val')\n",
" ax[i].fill_between(x_vals,\n",
" stats_val[:, 1, i],\n",
" stats_val[:, 2, i], alpha=0.4)\n",
" ax[i].legend()\n",
" ax[i].set_title(title)\n",
" plt.show()\n",
"new_model.load_state_dict(torch.load(checkpoint_path))\n",
"print('Обучение закончено за %s секунд' % passed)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 437,
"referenced_widgets": [
"52b580e658764226bca8ec6150f5dfa2",
"d4178aeef56f4d9093d95f9dad6f4659",
"c3d864076bb647dea8c7a87a088fdd86",
"cafdce4646284737be1052a7b5d34b19",
"da5923b8f2b942a3a2f11408ad95339c",
"13d8f5e34d174c2b91f2e12923c6273e",
"d4adee0ff01440649eb226d465db6291",
"181e562939b646178a41d5cbea4b421e",
"ae88d9aef9de4944ad902e1f592ed72f",
"55052d9744e94ae99ada21afb7b2bfd6",
"de3a27f3bab54c53b1bee011f9e572d8",
"2d880be240d84dd48e0a7eaef1104c14",
"72914891589a48d992915f28a8f33915",
"121214d561bb4cc482fa0b53050af2d1",
"acb1dc0badb04b4db62972d334a28c58",
"a06baafca0fc4416807c49049728756f",
"e3bb0de942f44d88808ab207a968d24c",
"ca115b9aadea481398cca2a2f64479be",
"b643da0174424466a393872c3eb0ebd4",
"480eb2b175e94de79df27041596f7a89",
"e1e207f85ebb47c9bed26d71509f21b8",
"39bac9d2b79040659535d2e03372bde5",
"5436e909c7704c3987fc31d4996a364c",
"fddb57b98a2a4befa9973b59a851ceae",
"219ca528efe34441a6cc772c17d99640",
"935ff14bb0c44d3ebd7cd33644f6d3a7",
"c0ff465f8b7540c8b094d847a232bb6a",
"dcf74eac636045838d4f2da32276df8b",
"38cdf52fcd514d27841e42975a0dd9f6",
"7a623791cdd64b8698026dc7944bb78f",
"8dc54c237e3b449f9d342d027a36c356",
"5625ff26ad14498d92a8f3cabf1079be",
"2998111c6ee8484ba994c6df5775621a",
"8d7c071fa80b41699d5119cd88500139",
"49fd1c193d71437386b147387f608362",
"98f6c27dfc4243a4942e759654f47d45",
"c452e937822e4995bb551325bf0c854f",
"365f03995a5a4261b12640af61c1dd2e",
"03e2d5368fab40a4b955613125f6486a",
"14887211d54442bebca080f5367a7830",
"a06c616ce20c4ee98de36b03573204c6",
"8f9ad2ad53f7462e97b9aa564c732430",
"88071d3d9efe4ca289e44106e506803c",
"35a33dd6388849859c2a7c07d564eb78",
"35c1de0d70dc41ca91004c35e3ac8f01",
"8cf0150a8f054d6987d1b8fc7b4dbc6f",
"ddaff05f0f9943a6a672cfa19163f4c5",
"71a2510006ee43f2be0bcad1d6e94b92",
"449eed7546c24757b60b62eca25d2abc",
"71ce471c5c344d1e8cd943aa3b0a6349",
"23918549ba3b4b3190e64f64e8d713ce",
"f24b7471de2244b09adf2cf91d36ad5e",
"498036fa8d9a45ae9fe0526c3fcfbb87",
"55c45fa03e234b6bb0639359fe5457f8",
"f178589a800543e0bdb59ad179284972",
"9470581189364d40a0af9bbe80dc6325",
"59350d6a3c9c454bbd3e0ccefecdb016",
"c00a039340cd4db1b5e384ea6345fadc",
"4bab78472d37459090dd434ed6783fef",
"9a92d06114b046d1a91a0afd753fdcb2",
"46b99851631c4c6787c97b0d590b80b0",
"2eea7e772de54161a362d26f371a5d56",
"772927770cea443ebd2d11b056e52d9a",
"ecfad20cecb04416baa2921794e7960a",
"fadeff7d65894b4283fea4972b221831",
"1ff701777eff40b0b5ed3e3aae6c3d5e",
"63307ca4f344461dad241d73a1bd564a",
"a70a54a222dd4c74a53a5143affd6697",
"a47f7a8a55d443f69f1071a63f790598",
"39c38679384148cb84a88780e1d13b38",
"38031802dd5c441bbc4fb1ad4655bc25",
"46a9cef0c4a14edd8719dd41ce7dbaba",
"e4b78d907e4c4ae1af9d751666b8eb11",
"8b4ec4fc917e4c14bf79819c694f3eae",
"12b1ef8207cf47cb87b222b187832df8",
"bb9d81a91324440893a5767dc03511c4",
"afb958bec9b147ee85eb6e66ce8ac1d2"
]
},
"id": "eC0xA-UoH2qc",
"outputId": "fa784571-84dc-4adc-beb6-4a9a9a7a6d93"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Эпоха: 60\n",
"Лучшая доля правильных ответов: 98.4375\n",
"Текущая доля правильных ответов: 96.68560536702473\n"
]
},
{
"output_type": "display_data",
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "63307ca4f344461dad241d73a1bd564a",
"version_minor": 0,
"version_major": 2
},
"text/plain": [
" 0%| | 0/720 [00:00, ?it/s]"
]
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"