Last active
November 7, 2023 23:08
-
-
Save aleksejalex/6e2313bed2f9670daa33f84611b1367d to your computer and use it in GitHub Desktop.
su2_cv2_dcv.ipynb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"nbformat": 4, | |
"nbformat_minor": 0, | |
"metadata": { | |
"colab": { | |
"provenance": [], | |
"gpuType": "T4", | |
"collapsed_sections": [ | |
"hzcNPvpAvWyb" | |
], | |
"toc_visible": true, | |
"authorship_tag": "ABX9TyMNSlpDi8MUV9o/Wtn2k5vr", | |
"include_colab_link": true | |
}, | |
"kernelspec": { | |
"name": "python3", | |
"display_name": "Python 3" | |
}, | |
"language_info": { | |
"name": "python" | |
}, | |
"accelerator": "GPU", | |
"widgets": { | |
"application/vnd.jupyter.widget-state+json": { | |
"5a6256bf3d2d496aa855d9b2f60eb9ce": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HBoxModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HBoxModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HBoxView", | |
"box_style": "", | |
"children": [ | |
"IPY_MODEL_33168df86800403aa5bb74987505ae8c", | |
"IPY_MODEL_a5c8162d9178459f8aaa0fb89f7659d6", | |
"IPY_MODEL_dbc712b85a394c7dafc0eccbf4f63cd3" | |
], | |
"layout": "IPY_MODEL_5b74293cddbf4dc386777c6f7fb6c40e" | |
} | |
}, | |
"33168df86800403aa5bb74987505ae8c": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HTMLModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HTMLModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HTMLView", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_d3e35871f84649b9a62985ec07c21cd5", | |
"placeholder": "", | |
"style": "IPY_MODEL_126118df078d46c2976fc0317890051d", | |
"value": "Sanity Checking DataLoader 0: 100%" | |
} | |
}, | |
"a5c8162d9178459f8aaa0fb89f7659d6": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "FloatProgressModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "FloatProgressModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "ProgressView", | |
"bar_style": "", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_4845fd2b96a14ace9ecfa9f542f95f31", | |
"max": 2, | |
"min": 0, | |
"orientation": "horizontal", | |
"style": "IPY_MODEL_c7fae93195dd451a805ee5b61a5d121b", | |
"value": 2 | |
} | |
}, | |
"dbc712b85a394c7dafc0eccbf4f63cd3": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HTMLModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HTMLModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HTMLView", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_f355ef6df1a7492197c6db9b293c51e4", | |
"placeholder": "", | |
"style": "IPY_MODEL_b9cdc0d98ef74997b4072f7940b5373e", | |
"value": " 2/2 [00:02<00:00, 0.92it/s]" | |
} | |
}, | |
"5b74293cddbf4dc386777c6f7fb6c40e": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": "inline-flex", | |
"flex": null, | |
"flex_flow": "row wrap", | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": "hidden", | |
"width": "100%" | |
} | |
}, | |
"d3e35871f84649b9a62985ec07c21cd5": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": null, | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"126118df078d46c2976fc0317890051d": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "DescriptionStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "DescriptionStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"description_width": "" | |
} | |
}, | |
"4845fd2b96a14ace9ecfa9f542f95f31": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": "2", | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"c7fae93195dd451a805ee5b61a5d121b": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "ProgressStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "ProgressStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"bar_color": null, | |
"description_width": "" | |
} | |
}, | |
"f355ef6df1a7492197c6db9b293c51e4": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": null, | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"b9cdc0d98ef74997b4072f7940b5373e": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "DescriptionStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "DescriptionStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"description_width": "" | |
} | |
}, | |
"ec842ae29f9f40f1ae1962d442b12e63": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HBoxModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HBoxModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HBoxView", | |
"box_style": "", | |
"children": [ | |
"IPY_MODEL_5b70f5bfcc484717983a0292701e5048", | |
"IPY_MODEL_1a8449b0226449b4ae81b802e0a41bb7", | |
"IPY_MODEL_4af5638a98bc4189becfdf7151c9d2aa" | |
], | |
"layout": "IPY_MODEL_6d5c8634914d403e879535e903c2fe76" | |
} | |
}, | |
"5b70f5bfcc484717983a0292701e5048": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HTMLModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HTMLModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HTMLView", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_0b94020ef47d498ab85e105ff04f6615", | |
"placeholder": "", | |
"style": "IPY_MODEL_f26d67510314489cbb55592af2318509", | |
"value": "Epoch 0: 100%" | |
} | |
}, | |
"1a8449b0226449b4ae81b802e0a41bb7": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "FloatProgressModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "FloatProgressModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "ProgressView", | |
"bar_style": "success", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_7d195d4a96904019ae55f02683385cbb", | |
"max": 158, | |
"min": 0, | |
"orientation": "horizontal", | |
"style": "IPY_MODEL_09daf0cdbea64a6fa33efe809fb86585", | |
"value": 158 | |
} | |
}, | |
"4af5638a98bc4189becfdf7151c9d2aa": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HTMLModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HTMLModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HTMLView", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_e72350285421410580234211f8cc4263", | |
"placeholder": "", | |
"style": "IPY_MODEL_f5fa966af73e4d8586bc8c35ade142aa", | |
"value": " 158/158 [00:26<00:00, 5.92it/s, v_num=0, train_loss_step=0.0166, val_loss_step=0.0135, val_loss_epoch=0.191, train_loss_epoch=0.0974]" | |
} | |
}, | |
"6d5c8634914d403e879535e903c2fe76": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": "inline-flex", | |
"flex": null, | |
"flex_flow": "row wrap", | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": "100%" | |
} | |
}, | |
"0b94020ef47d498ab85e105ff04f6615": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": null, | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"f26d67510314489cbb55592af2318509": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "DescriptionStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "DescriptionStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"description_width": "" | |
} | |
}, | |
"7d195d4a96904019ae55f02683385cbb": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": "2", | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"09daf0cdbea64a6fa33efe809fb86585": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "ProgressStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "ProgressStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"bar_color": null, | |
"description_width": "" | |
} | |
}, | |
"e72350285421410580234211f8cc4263": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": null, | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"f5fa966af73e4d8586bc8c35ade142aa": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "DescriptionStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "DescriptionStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"description_width": "" | |
} | |
}, | |
"29c20be1cf20480a93c8266ca2f0f340": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HBoxModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HBoxModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HBoxView", | |
"box_style": "", | |
"children": [ | |
"IPY_MODEL_3849cf1e616a4eec97b73edaca9027d1", | |
"IPY_MODEL_fce83dad788348588f79b63b68523b38", | |
"IPY_MODEL_41f2a87b486e4da482419a2f4fc8e389" | |
], | |
"layout": "IPY_MODEL_47ac2b16060e4846bdee5c7c8935afa0" | |
} | |
}, | |
"3849cf1e616a4eec97b73edaca9027d1": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HTMLModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HTMLModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HTMLView", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_024f6d8bcf074df58c29e364b3fe71bd", | |
"placeholder": "", | |
"style": "IPY_MODEL_d8c649dcfbc8409bb8cb8251eb6520a8", | |
"value": "Validation DataLoader 0: 100%" | |
} | |
}, | |
"fce83dad788348588f79b63b68523b38": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "FloatProgressModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "FloatProgressModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "ProgressView", | |
"bar_style": "", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_0bc19bc3c898415a87deb38564ee9ca9", | |
"max": 24, | |
"min": 0, | |
"orientation": "horizontal", | |
"style": "IPY_MODEL_bf5698c4cb104238966995796ae7abda", | |
"value": 24 | |
} | |
}, | |
"41f2a87b486e4da482419a2f4fc8e389": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HTMLModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HTMLModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HTMLView", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_9668ca270d934a1ba81f34aeae265bec", | |
"placeholder": "", | |
"style": "IPY_MODEL_d6c4f31a29b84d2db55171d02c657a54", | |
"value": " 24/24 [00:03<00:00, 7.43it/s]" | |
} | |
}, | |
"47ac2b16060e4846bdee5c7c8935afa0": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": "inline-flex", | |
"flex": null, | |
"flex_flow": "row wrap", | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": "hidden", | |
"width": "100%" | |
} | |
}, | |
"024f6d8bcf074df58c29e364b3fe71bd": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": null, | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"d8c649dcfbc8409bb8cb8251eb6520a8": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "DescriptionStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "DescriptionStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"description_width": "" | |
} | |
}, | |
"0bc19bc3c898415a87deb38564ee9ca9": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": "2", | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"bf5698c4cb104238966995796ae7abda": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "ProgressStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "ProgressStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"bar_color": null, | |
"description_width": "" | |
} | |
}, | |
"9668ca270d934a1ba81f34aeae265bec": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": null, | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"d6c4f31a29b84d2db55171d02c657a54": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "DescriptionStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "DescriptionStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"description_width": "" | |
} | |
}, | |
"ce2f83d22b154a8f9f96f32f4271a728": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HBoxModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HBoxModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HBoxView", | |
"box_style": "", | |
"children": [ | |
"IPY_MODEL_0eb5429d82c2486eb2da141635a3388f", | |
"IPY_MODEL_f994a5895cac4fc5b7f159d50904d6dd", | |
"IPY_MODEL_ca34c898901b4d2a8a38ddc8b5612989" | |
], | |
"layout": "IPY_MODEL_d8e6c96cfc3c445489b71ae0ec0776cd" | |
} | |
}, | |
"0eb5429d82c2486eb2da141635a3388f": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HTMLModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HTMLModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HTMLView", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_7c2c0d73ee83406eb875654658f9f566", | |
"placeholder": "", | |
"style": "IPY_MODEL_3f8e6c96287640d686f65c5510498964", | |
"value": "Sanity Checking DataLoader 0: 100%" | |
} | |
}, | |
"f994a5895cac4fc5b7f159d50904d6dd": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "FloatProgressModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "FloatProgressModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "ProgressView", | |
"bar_style": "", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_02846e8a5bb347f8896b25be313761f5", | |
"max": 2, | |
"min": 0, | |
"orientation": "horizontal", | |
"style": "IPY_MODEL_7b0feacb2ae24dc7b54aae18c0d62ecf", | |
"value": 2 | |
} | |
}, | |
"ca34c898901b4d2a8a38ddc8b5612989": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HTMLModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HTMLModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HTMLView", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_5abbd461e0a44a9186a9a2f4af48c5d2", | |
"placeholder": "", | |
"style": "IPY_MODEL_3e064c0de3b7428b9d37c0af6e024620", | |
"value": " 2/2 [00:00<00:00, 16.07it/s]" | |
} | |
}, | |
"d8e6c96cfc3c445489b71ae0ec0776cd": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": "inline-flex", | |
"flex": null, | |
"flex_flow": "row wrap", | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": "hidden", | |
"width": "100%" | |
} | |
}, | |
"7c2c0d73ee83406eb875654658f9f566": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": null, | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"3f8e6c96287640d686f65c5510498964": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "DescriptionStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "DescriptionStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"description_width": "" | |
} | |
}, | |
"02846e8a5bb347f8896b25be313761f5": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": "2", | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"7b0feacb2ae24dc7b54aae18c0d62ecf": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "ProgressStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "ProgressStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"bar_color": null, | |
"description_width": "" | |
} | |
}, | |
"5abbd461e0a44a9186a9a2f4af48c5d2": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": null, | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"3e064c0de3b7428b9d37c0af6e024620": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "DescriptionStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "DescriptionStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"description_width": "" | |
} | |
}, | |
"9d685cb152094a2982dd0fbd960e7b35": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HBoxModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HBoxModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HBoxView", | |
"box_style": "", | |
"children": [ | |
"IPY_MODEL_27b333bb5d9445ecbb97d0d64732f509", | |
"IPY_MODEL_afca60a353f94e0483d6d2c30eb8476f", | |
"IPY_MODEL_60654e0ee573447b9547182a759856de" | |
], | |
"layout": "IPY_MODEL_5cd0d8185276454ba66e681d2db26ed7" | |
} | |
}, | |
"27b333bb5d9445ecbb97d0d64732f509": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HTMLModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HTMLModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HTMLView", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_335994b692c54a7aa6e054104d3cd315", | |
"placeholder": "", | |
"style": "IPY_MODEL_b2909cb095b841cda6097f694e83fbe9", | |
"value": "Epoch 0: 100%" | |
} | |
}, | |
"afca60a353f94e0483d6d2c30eb8476f": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "FloatProgressModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "FloatProgressModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "ProgressView", | |
"bar_style": "success", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_bd1edb2c76984f1caf70796c9fb722b5", | |
"max": 158, | |
"min": 0, | |
"orientation": "horizontal", | |
"style": "IPY_MODEL_4e09a6b22555424a8198d0fc4b1b6598", | |
"value": 158 | |
} | |
}, | |
"60654e0ee573447b9547182a759856de": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HTMLModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HTMLModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HTMLView", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_2f9a49adbc7c4df58d1bcb4014cc7dbf", | |
"placeholder": "", | |
"style": "IPY_MODEL_61ade10c5675439db9e39cc1f5725585", | |
"value": " 158/158 [00:28<00:00, 5.59it/s, v_num=2, train_loss_step=0.107, val_loss_step=0.172, val_loss_epoch=0.695, train_loss_epoch=0.249]" | |
} | |
}, | |
"5cd0d8185276454ba66e681d2db26ed7": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": "inline-flex", | |
"flex": null, | |
"flex_flow": "row wrap", | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": "100%" | |
} | |
}, | |
"335994b692c54a7aa6e054104d3cd315": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": null, | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"b2909cb095b841cda6097f694e83fbe9": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "DescriptionStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "DescriptionStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"description_width": "" | |
} | |
}, | |
"bd1edb2c76984f1caf70796c9fb722b5": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": "2", | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"4e09a6b22555424a8198d0fc4b1b6598": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "ProgressStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "ProgressStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"bar_color": null, | |
"description_width": "" | |
} | |
}, | |
"2f9a49adbc7c4df58d1bcb4014cc7dbf": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": null, | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"61ade10c5675439db9e39cc1f5725585": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "DescriptionStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "DescriptionStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"description_width": "" | |
} | |
}, | |
"0cfac08c924146aeac1a9c9dbe96b3ae": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HBoxModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HBoxModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HBoxView", | |
"box_style": "", | |
"children": [ | |
"IPY_MODEL_de1a95a91edb4fc1834f40a53f59afc8", | |
"IPY_MODEL_33d4dabf2f4e4f88bb27e671ae0dd320", | |
"IPY_MODEL_c0d84080bc30404ea32033114deb5985" | |
], | |
"layout": "IPY_MODEL_5a7390e2542f41f786662e8f6b4559b7" | |
} | |
}, | |
"de1a95a91edb4fc1834f40a53f59afc8": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HTMLModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HTMLModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HTMLView", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_19533f52e0ca4f4eb42a9d80b769836f", | |
"placeholder": "", | |
"style": "IPY_MODEL_6f6099f4edf742578b6eda2968369ed6", | |
"value": "Validation DataLoader 0: 100%" | |
} | |
}, | |
"33d4dabf2f4e4f88bb27e671ae0dd320": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "FloatProgressModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "FloatProgressModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "ProgressView", | |
"bar_style": "", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_6b38a1990da8497aa4de1dbbe0cd1058", | |
"max": 24, | |
"min": 0, | |
"orientation": "horizontal", | |
"style": "IPY_MODEL_5c9538315eb442b58d3b1370b9fb3ac3", | |
"value": 24 | |
} | |
}, | |
"c0d84080bc30404ea32033114deb5985": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HTMLModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HTMLModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HTMLView", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_c72a767f4cfd481fb940bc8e36b208d3", | |
"placeholder": "", | |
"style": "IPY_MODEL_e30e189e238341898ba947c4d906d19a", | |
"value": " 24/24 [00:02<00:00, 9.57it/s]" | |
} | |
}, | |
"5a7390e2542f41f786662e8f6b4559b7": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": "inline-flex", | |
"flex": null, | |
"flex_flow": "row wrap", | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": "hidden", | |
"width": "100%" | |
} | |
}, | |
"19533f52e0ca4f4eb42a9d80b769836f": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": null, | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"6f6099f4edf742578b6eda2968369ed6": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "DescriptionStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "DescriptionStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"description_width": "" | |
} | |
}, | |
"6b38a1990da8497aa4de1dbbe0cd1058": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": "2", | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"5c9538315eb442b58d3b1370b9fb3ac3": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "ProgressStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "ProgressStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"bar_color": null, | |
"description_width": "" | |
} | |
}, | |
"c72a767f4cfd481fb940bc8e36b208d3": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": null, | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"e30e189e238341898ba947c4d906d19a": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "DescriptionStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "DescriptionStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"description_width": "" | |
} | |
}, | |
"20b4ca77a8f34fd38231368b7cd578ca": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HBoxModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HBoxModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HBoxView", | |
"box_style": "", | |
"children": [ | |
"IPY_MODEL_f6a12d422bdb4c6a8a183c1c7aa114d2", | |
"IPY_MODEL_7aed0db4ffae47d4a483160ab8c866fe", | |
"IPY_MODEL_39d7ab6854f441989d7ec8c1e9182051" | |
], | |
"layout": "IPY_MODEL_76c50aa0fdc8433c8c2212debd036ec3" | |
} | |
}, | |
"f6a12d422bdb4c6a8a183c1c7aa114d2": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HTMLModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HTMLModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HTMLView", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_1b966e2c4c6948d9870a35f3093bca70", | |
"placeholder": "", | |
"style": "IPY_MODEL_34073e80e2c84f91b60870d3e15bd22f", | |
"value": "Sanity Checking DataLoader 0: 100%" | |
} | |
}, | |
"7aed0db4ffae47d4a483160ab8c866fe": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "FloatProgressModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "FloatProgressModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "ProgressView", | |
"bar_style": "", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_62c7130f7aa74459bc72160c2d40e4c9", | |
"max": 2, | |
"min": 0, | |
"orientation": "horizontal", | |
"style": "IPY_MODEL_ba92f785c25c4c9ebb85fb0e0bbb2582", | |
"value": 2 | |
} | |
}, | |
"39d7ab6854f441989d7ec8c1e9182051": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HTMLModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HTMLModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HTMLView", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_50ea6961a36043fbaf3346c9c1501f6a", | |
"placeholder": "", | |
"style": "IPY_MODEL_16102d80d445473a90ecc77ecfe82e4d", | |
"value": " 2/2 [00:00<00:00, 8.82it/s]" | |
} | |
}, | |
"76c50aa0fdc8433c8c2212debd036ec3": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": "inline-flex", | |
"flex": null, | |
"flex_flow": "row wrap", | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": "hidden", | |
"width": "100%" | |
} | |
}, | |
"1b966e2c4c6948d9870a35f3093bca70": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": null, | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"34073e80e2c84f91b60870d3e15bd22f": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "DescriptionStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "DescriptionStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"description_width": "" | |
} | |
}, | |
"62c7130f7aa74459bc72160c2d40e4c9": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": "2", | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"ba92f785c25c4c9ebb85fb0e0bbb2582": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "ProgressStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "ProgressStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"bar_color": null, | |
"description_width": "" | |
} | |
}, | |
"50ea6961a36043fbaf3346c9c1501f6a": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": null, | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"16102d80d445473a90ecc77ecfe82e4d": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "DescriptionStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "DescriptionStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"description_width": "" | |
} | |
}, | |
"2952fa035c1a4699ba9d8c7dcb6ce710": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HBoxModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HBoxModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HBoxView", | |
"box_style": "", | |
"children": [ | |
"IPY_MODEL_59b39417536c4de39a0932c7afcba4bd", | |
"IPY_MODEL_75218aec6e9947699089d49d7c9a139d", | |
"IPY_MODEL_612a86f927144dc98f38af351d100e62" | |
], | |
"layout": "IPY_MODEL_6e9a406f23d94f11badde14d27a6d77d" | |
} | |
}, | |
"59b39417536c4de39a0932c7afcba4bd": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HTMLModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HTMLModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HTMLView", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_981fce8101044e639816dee282003e67", | |
"placeholder": "", | |
"style": "IPY_MODEL_17e6c17527104e62af617f9b9fad5a1d", | |
"value": "Epoch 0: 100%" | |
} | |
}, | |
"75218aec6e9947699089d49d7c9a139d": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "FloatProgressModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "FloatProgressModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "ProgressView", | |
"bar_style": "success", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_11a926a8365245e58238be0d9fa475bf", | |
"max": 158, | |
"min": 0, | |
"orientation": "horizontal", | |
"style": "IPY_MODEL_e779fb221e924587adb553a0a51f056b", | |
"value": 158 | |
} | |
}, | |
"612a86f927144dc98f38af351d100e62": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HTMLModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HTMLModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HTMLView", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_4297bbafa4ac491cafe2215af7df61c8", | |
"placeholder": "", | |
"style": "IPY_MODEL_2dd9ccdc72a1480f9108abfeaca12599", | |
"value": " 158/158 [00:23<00:00, 6.79it/s, v_num=0, train_loss_step=0.719, val_loss_step=0.290, val_loss_epoch=0.508, train_loss_epoch=0.494]" | |
} | |
}, | |
"6e9a406f23d94f11badde14d27a6d77d": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": "inline-flex", | |
"flex": null, | |
"flex_flow": "row wrap", | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": "100%" | |
} | |
}, | |
"981fce8101044e639816dee282003e67": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": null, | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"17e6c17527104e62af617f9b9fad5a1d": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "DescriptionStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "DescriptionStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"description_width": "" | |
} | |
}, | |
"11a926a8365245e58238be0d9fa475bf": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": "2", | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"e779fb221e924587adb553a0a51f056b": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "ProgressStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "ProgressStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"bar_color": null, | |
"description_width": "" | |
} | |
}, | |
"4297bbafa4ac491cafe2215af7df61c8": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": null, | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"2dd9ccdc72a1480f9108abfeaca12599": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "DescriptionStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "DescriptionStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"description_width": "" | |
} | |
}, | |
"6893cf3eec454b5185d83631226c029f": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HBoxModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HBoxModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HBoxView", | |
"box_style": "", | |
"children": [ | |
"IPY_MODEL_32ce06372aa44ff0b04628ed008647d7", | |
"IPY_MODEL_8e5547535152493e9d160eef8ac7866a", | |
"IPY_MODEL_d24fca2fdab344458300f9e039117f9a" | |
], | |
"layout": "IPY_MODEL_dd9ed63e5bd547f1b8f11d674d48708a" | |
} | |
}, | |
"32ce06372aa44ff0b04628ed008647d7": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HTMLModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HTMLModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HTMLView", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_06d3c4c9529c4ca6b3a5e60efb6f96c9", | |
"placeholder": "", | |
"style": "IPY_MODEL_d2abe57b89b149d7badbda92505a1e90", | |
"value": "Validation DataLoader 0: 100%" | |
} | |
}, | |
"8e5547535152493e9d160eef8ac7866a": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "FloatProgressModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "FloatProgressModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "ProgressView", | |
"bar_style": "", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_e11d060d378d492288621a43d53cfb1d", | |
"max": 24, | |
"min": 0, | |
"orientation": "horizontal", | |
"style": "IPY_MODEL_c3dd6037f2034d82a808bb021e4fa7d9", | |
"value": 24 | |
} | |
}, | |
"d24fca2fdab344458300f9e039117f9a": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HTMLModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HTMLModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HTMLView", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_7d7e8bd09f224824bb10e008375b08ce", | |
"placeholder": "", | |
"style": "IPY_MODEL_f1a59fd2c9814610903b66c3498e9e17", | |
"value": " 24/24 [00:03<00:00, 7.12it/s]" | |
} | |
}, | |
"dd9ed63e5bd547f1b8f11d674d48708a": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": "inline-flex", | |
"flex": null, | |
"flex_flow": "row wrap", | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": "hidden", | |
"width": "100%" | |
} | |
}, | |
"06d3c4c9529c4ca6b3a5e60efb6f96c9": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": null, | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"d2abe57b89b149d7badbda92505a1e90": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "DescriptionStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "DescriptionStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"description_width": "" | |
} | |
}, | |
"e11d060d378d492288621a43d53cfb1d": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": "2", | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"c3dd6037f2034d82a808bb021e4fa7d9": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "ProgressStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "ProgressStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"bar_color": null, | |
"description_width": "" | |
} | |
}, | |
"7d7e8bd09f224824bb10e008375b08ce": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": null, | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"f1a59fd2c9814610903b66c3498e9e17": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "DescriptionStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "DescriptionStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"description_width": "" | |
} | |
}, | |
"b7024be89aa74d3d8e849a52471f22ee": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HBoxModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HBoxModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HBoxView", | |
"box_style": "", | |
"children": [ | |
"IPY_MODEL_af4bfa14bb8a4465aec6ebcee9e76bd1", | |
"IPY_MODEL_6844ced94b3e4f019333cef5d768ee73", | |
"IPY_MODEL_7b3bd38ca9e14169adbf8b478dc608c1" | |
], | |
"layout": "IPY_MODEL_c04e04870a334a7aa73e0c3cccd0b19d" | |
} | |
}, | |
"af4bfa14bb8a4465aec6ebcee9e76bd1": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HTMLModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HTMLModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HTMLView", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_9304e5c194564240b11fc288dec8e884", | |
"placeholder": "", | |
"style": "IPY_MODEL_a320531a9fb64f549b8c603bb44d66ad", | |
"value": "Sanity Checking DataLoader 0: 100%" | |
} | |
}, | |
"6844ced94b3e4f019333cef5d768ee73": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "FloatProgressModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "FloatProgressModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "ProgressView", | |
"bar_style": "", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_0b1472b69f024fd0855f8f4f8b8cb36a", | |
"max": 2, | |
"min": 0, | |
"orientation": "horizontal", | |
"style": "IPY_MODEL_746c0bb6700c4fa2aa008a87fe4cebd5", | |
"value": 2 | |
} | |
}, | |
"7b3bd38ca9e14169adbf8b478dc608c1": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HTMLModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HTMLModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HTMLView", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_8bf40833ae654b4f968e0fd94a07f029", | |
"placeholder": "", | |
"style": "IPY_MODEL_88ff249828da490b9b639f89a83d17dc", | |
"value": " 2/2 [00:00<00:00, 4.61it/s]" | |
} | |
}, | |
"c04e04870a334a7aa73e0c3cccd0b19d": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": "inline-flex", | |
"flex": null, | |
"flex_flow": "row wrap", | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": "hidden", | |
"width": "100%" | |
} | |
}, | |
"9304e5c194564240b11fc288dec8e884": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": null, | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"a320531a9fb64f549b8c603bb44d66ad": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "DescriptionStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "DescriptionStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"description_width": "" | |
} | |
}, | |
"0b1472b69f024fd0855f8f4f8b8cb36a": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": "2", | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"746c0bb6700c4fa2aa008a87fe4cebd5": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "ProgressStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "ProgressStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"bar_color": null, | |
"description_width": "" | |
} | |
}, | |
"8bf40833ae654b4f968e0fd94a07f029": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": null, | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"88ff249828da490b9b639f89a83d17dc": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "DescriptionStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "DescriptionStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"description_width": "" | |
} | |
}, | |
"9c6e12409612454789e46a358034e786": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HBoxModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HBoxModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HBoxView", | |
"box_style": "", | |
"children": [ | |
"IPY_MODEL_56cc2d41c34f4bab86c13e96bc1f83a4", | |
"IPY_MODEL_8b78a45329d245f09c3c3d181aeded51", | |
"IPY_MODEL_f7d9a1d399e642a9b83e54a33b8e89f5" | |
], | |
"layout": "IPY_MODEL_b4a6eac3ca914a3c9001d7032f40a992" | |
} | |
}, | |
"56cc2d41c34f4bab86c13e96bc1f83a4": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HTMLModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HTMLModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HTMLView", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_1532d5de85d841fabf1aa90a2c8e8eed", | |
"placeholder": "", | |
"style": "IPY_MODEL_f7bd64a035194680b0ecbc486f4556a4", | |
"value": "Epoch 0: 100%" | |
} | |
}, | |
"8b78a45329d245f09c3c3d181aeded51": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "FloatProgressModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "FloatProgressModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "ProgressView", | |
"bar_style": "success", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_e7a7cf75f18c4a34bfe0558f33b42731", | |
"max": 158, | |
"min": 0, | |
"orientation": "horizontal", | |
"style": "IPY_MODEL_e7f0ec7a661c4bda98345d4f96ced559", | |
"value": 158 | |
} | |
}, | |
"f7d9a1d399e642a9b83e54a33b8e89f5": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HTMLModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HTMLModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HTMLView", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_ebdad37c6a264ba2a6f22bb1a9d0753a", | |
"placeholder": "", | |
"style": "IPY_MODEL_e2dac6bd39e949dab147e03939ecf27f", | |
"value": " 158/158 [00:22<00:00, 7.17it/s, v_num=0, train_loss_step=0.331, val_loss_step=0.132, val_loss_epoch=0.514, train_loss_epoch=0.404]" | |
} | |
}, | |
"b4a6eac3ca914a3c9001d7032f40a992": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": "inline-flex", | |
"flex": null, | |
"flex_flow": "row wrap", | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": "100%" | |
} | |
}, | |
"1532d5de85d841fabf1aa90a2c8e8eed": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": null, | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"f7bd64a035194680b0ecbc486f4556a4": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "DescriptionStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "DescriptionStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"description_width": "" | |
} | |
}, | |
"e7a7cf75f18c4a34bfe0558f33b42731": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": "2", | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"e7f0ec7a661c4bda98345d4f96ced559": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "ProgressStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "ProgressStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"bar_color": null, | |
"description_width": "" | |
} | |
}, | |
"ebdad37c6a264ba2a6f22bb1a9d0753a": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": null, | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"e2dac6bd39e949dab147e03939ecf27f": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "DescriptionStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "DescriptionStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"description_width": "" | |
} | |
}, | |
"8165d7a2172a4661b936d767be42bc41": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HBoxModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HBoxModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HBoxView", | |
"box_style": "", | |
"children": [ | |
"IPY_MODEL_3f506cb689ce490fbcf0ffe136f20092", | |
"IPY_MODEL_2eca112706e14123a49c8c0a2d258245", | |
"IPY_MODEL_3e23c453c3aa47a6acd654cc717f6ecd" | |
], | |
"layout": "IPY_MODEL_65882fb6149a461f966e89e083773672" | |
} | |
}, | |
"3f506cb689ce490fbcf0ffe136f20092": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HTMLModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HTMLModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HTMLView", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_494458ef340a4cbd80d21d78c0f96c04", | |
"placeholder": "", | |
"style": "IPY_MODEL_106bdbf783be42ba81059b0e402e46b9", | |
"value": "Validation DataLoader 0: 100%" | |
} | |
}, | |
"2eca112706e14123a49c8c0a2d258245": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "FloatProgressModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "FloatProgressModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "ProgressView", | |
"bar_style": "", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_c6875be82e544c3fb5af949b484a1c86", | |
"max": 24, | |
"min": 0, | |
"orientation": "horizontal", | |
"style": "IPY_MODEL_4cc5fed3e3df44f39ba89751425ce66e", | |
"value": 24 | |
} | |
}, | |
"3e23c453c3aa47a6acd654cc717f6ecd": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "HTMLModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_dom_classes": [], | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "HTMLModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/controls", | |
"_view_module_version": "1.5.0", | |
"_view_name": "HTMLView", | |
"description": "", | |
"description_tooltip": null, | |
"layout": "IPY_MODEL_ab254e6fae604a3fb2ef38f6e2307d21", | |
"placeholder": "", | |
"style": "IPY_MODEL_3bb02b54eed5479b9c798fbe6d7544e1", | |
"value": " 24/24 [00:02<00:00, 8.31it/s]" | |
} | |
}, | |
"65882fb6149a461f966e89e083773672": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": "inline-flex", | |
"flex": null, | |
"flex_flow": "row wrap", | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": "hidden", | |
"width": "100%" | |
} | |
}, | |
"494458ef340a4cbd80d21d78c0f96c04": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": null, | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"106bdbf783be42ba81059b0e402e46b9": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "DescriptionStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "DescriptionStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"description_width": "" | |
} | |
}, | |
"c6875be82e544c3fb5af949b484a1c86": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": "2", | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"4cc5fed3e3df44f39ba89751425ce66e": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "ProgressStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "ProgressStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"bar_color": null, | |
"description_width": "" | |
} | |
}, | |
"ab254e6fae604a3fb2ef38f6e2307d21": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"model_module_version": "1.2.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.2.0", | |
"_model_name": "LayoutModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "LayoutView", | |
"align_content": null, | |
"align_items": null, | |
"align_self": null, | |
"border": null, | |
"bottom": null, | |
"display": null, | |
"flex": null, | |
"flex_flow": null, | |
"grid_area": null, | |
"grid_auto_columns": null, | |
"grid_auto_flow": null, | |
"grid_auto_rows": null, | |
"grid_column": null, | |
"grid_gap": null, | |
"grid_row": null, | |
"grid_template_areas": null, | |
"grid_template_columns": null, | |
"grid_template_rows": null, | |
"height": null, | |
"justify_content": null, | |
"justify_items": null, | |
"left": null, | |
"margin": null, | |
"max_height": null, | |
"max_width": null, | |
"min_height": null, | |
"min_width": null, | |
"object_fit": null, | |
"object_position": null, | |
"order": null, | |
"overflow": null, | |
"overflow_x": null, | |
"overflow_y": null, | |
"padding": null, | |
"right": null, | |
"top": null, | |
"visibility": null, | |
"width": null | |
} | |
}, | |
"3bb02b54eed5479b9c798fbe6d7544e1": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "DescriptionStyleModel", | |
"model_module_version": "1.5.0", | |
"state": { | |
"_model_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_model_name": "DescriptionStyleModel", | |
"_view_count": null, | |
"_view_module": "@jupyter-widgets/base", | |
"_view_module_version": "1.2.0", | |
"_view_name": "StyleView", | |
"description_width": "" | |
} | |
} | |
} | |
} | |
}, | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "view-in-github", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"<a href=\"https://colab.research.google.com/gist/aleksejalex/6e2313bed2f9670daa33f84611b1367d/su2_cv2_dcv.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"# **SU2 cv2 DCv**\n", | |
"by Aleksej Gaj ([@aleksejalex](https://github.com/aleksejalex))" | |
], | |
"metadata": { | |
"id": "4AQyW1jvtq5v" | |
} | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"## imports" | |
], | |
"metadata": { | |
"id": "47m0OOWGt-6i" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"\"\"\"\n", | |
"dobry dataloader, lze pouzit v kodu\n", | |
"\"\"\"\n", | |
"\n", | |
"import requests\n", | |
"import zipfile\n", | |
"import os\n", | |
"import errno\n", | |
"\n", | |
"filenames = ['rps.zip', 'rps-test-set.zip']\n", | |
"for filename in filenames:\n", | |
" try:\n", | |
" os.mkdir(f'{filename[:-4]}')\n", | |
"\n", | |
" localfile = f'{filename}'\n", | |
" url = 'https://huggingface.co/datasets/jerpint/rock-paper-scissors/resolve/main/{}'\n", | |
" r = requests.get(url.format(filename), allow_redirects=True)\n", | |
" open(localfile, 'wb').write(r.content)\n", | |
" with zipfile.ZipFile(localfile, 'r') as zip_ref:\n", | |
" zip_ref.extractall(\"\")\n", | |
" except OSError as e:\n", | |
" if e.errno != errno.EEXIST:\n", | |
" raise\n", | |
" else:\n", | |
" print(f'{filename[:-4]} folder already exists!')\n", | |
"\n" | |
], | |
"metadata": { | |
"id": "Y6V5tagPranB" | |
}, | |
"execution_count": 1, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"%%capture\n", | |
"!pip install lightning\n", | |
"#!pip install wandb" | |
], | |
"metadata": { | |
"id": "rS4Q4JaYodvp" | |
}, | |
"execution_count": 2, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"# Required Libraries\n", | |
"# common libs\n", | |
"import numpy as np\n", | |
"import matplotlib.pyplot as plt\n", | |
"import pandas as pd\n", | |
"#import wandb\n", | |
"from PIL import Image\n", | |
"from copy import deepcopy # what's that?!\n", | |
"\n", | |
"import torch\n", | |
"import torch.nn as nn\n", | |
"from torch.nn import Linear, MSELoss\n", | |
"from torch.optim import SGD\n", | |
"#import torch.nn.functional as F\n", | |
"#import torch.optim as optim\n", | |
"\n", | |
"import torchvision\n", | |
"from torch.utils.data import DataLoader, TensorDataset, random_split\n", | |
"from torchvision.datasets import ImageFolder\n", | |
"from torchvision.transforms import Compose, ToTensor, Normalize, ToPILImage, Resize, CenterCrop\n", | |
"\n", | |
"import lightning.pytorch as pl\n", | |
"from lightning.pytorch.loggers import CSVLogger, WandbLogger\n", | |
"\n", | |
"from torchvision.models import alexnet\n", | |
"from torch.utils.model_zoo import load_url as load_state_dict_from_url\n", | |
"\n", | |
"#plt.style.use('fivethirtyeight')" | |
], | |
"metadata": { | |
"id": "-FOmACN6obpO" | |
}, | |
"execution_count": 3, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"## AlexNET\n", | |
"just recap of what was done on labs2" | |
], | |
"metadata": { | |
"id": "p_7akHGzth-A" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"alex = alexnet(pretrained=False)\n", | |
"print(alex)\n", | |
"\n", | |
"\"\"\"\n", | |
"The element in the middle, `AdaptiveAvgPool2d` (`F.adaptive_avg_pool2d` in its\n", | |
"functional form), is a special kind of pooling: instead of requiring the kernel size\n", | |
"(and stride), it requires the desired output size. In other words, whatever the\n", | |
"image size it gets as input, it will return a tensor with the desired size.\n", | |
"\"\"\"" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 639 | |
}, | |
"id": "zOkEgBaHkIl4", | |
"outputId": "d809e7b3-227c-48ec-e43e-a3fb48c2530a" | |
}, | |
"execution_count": 4, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stderr", | |
"text": [ | |
"/usr/local/lib/python3.10/dist-packages/torchvision/models/_utils.py:208: UserWarning: The parameter 'pretrained' is deprecated since 0.13 and may be removed in the future, please use 'weights' instead.\n", | |
" warnings.warn(\n", | |
"/usr/local/lib/python3.10/dist-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing `weights=None`.\n", | |
" warnings.warn(msg)\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"AlexNet(\n", | |
" (features): Sequential(\n", | |
" (0): Conv2d(3, 64, kernel_size=(11, 11), stride=(4, 4), padding=(2, 2))\n", | |
" (1): ReLU(inplace=True)\n", | |
" (2): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)\n", | |
" (3): Conv2d(64, 192, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))\n", | |
" (4): ReLU(inplace=True)\n", | |
" (5): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)\n", | |
" (6): Conv2d(192, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", | |
" (7): ReLU(inplace=True)\n", | |
" (8): Conv2d(384, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", | |
" (9): ReLU(inplace=True)\n", | |
" (10): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", | |
" (11): ReLU(inplace=True)\n", | |
" (12): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)\n", | |
" )\n", | |
" (avgpool): AdaptiveAvgPool2d(output_size=(6, 6))\n", | |
" (classifier): Sequential(\n", | |
" (0): Dropout(p=0.5, inplace=False)\n", | |
" (1): Linear(in_features=9216, out_features=4096, bias=True)\n", | |
" (2): ReLU(inplace=True)\n", | |
" (3): Dropout(p=0.5, inplace=False)\n", | |
" (4): Linear(in_features=4096, out_features=4096, bias=True)\n", | |
" (5): ReLU(inplace=True)\n", | |
" (6): Linear(in_features=4096, out_features=1000, bias=True)\n", | |
" )\n", | |
")\n" | |
] | |
}, | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"'\\nThe element in the middle, `AdaptiveAvgPool2d` (`F.adaptive_avg_pool2d` in its\\nfunctional form), is a special kind of pooling: instead of requiring the kernel size\\n(and stride), it requires the desired output size. In other words, whatever the\\nimage size it gets as input, it will return a tensor with the desired size.\\n'" | |
], | |
"application/vnd.google.colaboratory.intrinsic+json": { | |
"type": "string" | |
} | |
}, | |
"metadata": {}, | |
"execution_count": 4 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"url = 'https://download.pytorch.org/models/alexnet-owt-7be5be79.pth'\n", | |
"state_dict = load_state_dict_from_url(url, model_dir='./pretrained', progress=True)\n", | |
"alex.load_state_dict(state_dict)" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "1p1QtWT0kIi8", | |
"outputId": "311ada52-e08f-4ac0-91d8-159bd4b3b073" | |
}, | |
"execution_count": 5, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stderr", | |
"text": [ | |
"Downloading: \"https://download.pytorch.org/models/alexnet-owt-7be5be79.pth\" to ./pretrained/alexnet-owt-7be5be79.pth\n", | |
"100%|██████████| 233M/233M [00:01<00:00, 181MB/s]\n" | |
] | |
}, | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"<All keys matched successfully>" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 5 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"def freeze_model(model):\n", | |
" for parameter in model.parameters():\n", | |
" parameter.requires_grad = False\n", | |
"\n", | |
"freeze_model(alex) # zmazime vse, co v alexovi bylo natrenovano (at uz nami vuse, nebo naimportovano od nekoho jineho)" | |
], | |
"metadata": { | |
"id": "CzwYglt0kIgG" | |
}, | |
"execution_count": 6, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"print(alex.classifier) # zde jsme vypsali vsechny vrstvy, ktere alex obsahuje.\n", | |
"# Vidime, ze posledni klasifikuje do 1000 trid. My ale potrebujeme jen do 3 (kamen, nuzky, papir)" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "K8IDPmIakIdl", | |
"outputId": "04c6566c-abdc-4f43-be67-5ea8093d3c42" | |
}, | |
"execution_count": 7, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"Sequential(\n", | |
" (0): Dropout(p=0.5, inplace=False)\n", | |
" (1): Linear(in_features=9216, out_features=4096, bias=True)\n", | |
" (2): ReLU(inplace=True)\n", | |
" (3): Dropout(p=0.5, inplace=False)\n", | |
" (4): Linear(in_features=4096, out_features=4096, bias=True)\n", | |
" (5): ReLU(inplace=True)\n", | |
" (6): Linear(in_features=4096, out_features=1000, bias=True)\n", | |
")\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"torch.manual_seed(11)\n", | |
"alex.classifier[6] = nn.Linear(4096, 3) # zde jsme zamenili posledni vrstvu alexe na vlastni (klasifikujici do 3 trid)" | |
], | |
"metadata": { | |
"id": "7cUmLIfvkIa-" | |
}, | |
"execution_count": 8, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"for name, param in alex.named_parameters():\n", | |
" if param.requires_grad == True:\n", | |
" print(name)\n", | |
"# zde vidime, ze jen posledni, 6-ta vrstva ma povolene uceni parametru (\"vyzaduji gradienty\"). Ostatni jsou zmrazene, to je ok." | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "BTYFl9ZEkIYq", | |
"outputId": "2879c6c8-09c0-4ac6-eb77-5975c92e4767" | |
}, | |
"execution_count": 9, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"classifier.6.weight\n", | |
"classifier.6.bias\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"def freeze_model(model):\n", | |
" for parameter in model.parameters():\n", | |
" parameter.requires_grad = False\n", | |
"\n", | |
"class AlexDataModule(pl.LightningDataModule):\n", | |
" def __init__(self, batch_size=16):\n", | |
" super().__init__()\n", | |
" self.batch_size = batch_size\n", | |
" self.train_dir = 'rps'\n", | |
" self.test_dir = 'rps-test-set'\n", | |
" self.composer = None\n", | |
"\n", | |
" def setup(self, stage=None):\n", | |
" # Define the normalization values (based on the original Alexnet paper)\n", | |
" norm_mean = [0.485, 0.456, 0.406]\n", | |
" norm_std = [0.229, 0.224, 0.225]\n", | |
"\n", | |
" # Build the transformation and datasets\n", | |
" self.composer = torchvision.transforms.Compose([\n", | |
" torchvision.transforms.Resize(256),\n", | |
" torchvision.transforms.CenterCrop(224),\n", | |
" torchvision.transforms.ToTensor(),\n", | |
" torchvision.transforms.Normalize(mean=norm_mean, std=norm_std)\n", | |
" ])\n", | |
"\n", | |
" self.train_data = ImageFolder(root=self.train_dir, transform=self.composer)\n", | |
" self.val_data = ImageFolder(root=self.test_dir, transform=self.composer)\n", | |
"\n", | |
" def train_dataloader(self):\n", | |
" return DataLoader(self.train_data, batch_size=self.batch_size, shuffle=True)\n", | |
"\n", | |
" def val_dataloader(self):\n", | |
" return DataLoader(self.val_data, batch_size=self.batch_size)\n" | |
], | |
"metadata": { | |
"id": "d0mW06nmkIVV" | |
}, | |
"execution_count": 10, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"class AlexModel(pl.LightningModule):\n", | |
" def __init__(self):\n", | |
" super().__init__()\n", | |
"\n", | |
" # Load the pretrained AlexNet model and replace the classifier\n", | |
" alex = alexnet(pretrained=False)\n", | |
" url = 'https://download.pytorch.org/models/alexnet-owt-7be5be79.pth'\n", | |
" state_dict = load_state_dict_from_url(url, model_dir='./pretrained', progress=True)\n", | |
" alex.load_state_dict(state_dict)\n", | |
"\n", | |
" # Freeze the parameters of the pretrained model\n", | |
" freeze_model(alex)\n", | |
"\n", | |
" # Replace the last fully connected layer for the new classification task\n", | |
" alex.classifier[6] = nn.Linear(4096, 3)\n", | |
"\n", | |
" # Assign the modified AlexNet to self.model\n", | |
" self.model = alex\n", | |
"\n", | |
" # Loss function for the new classifier\n", | |
" self.loss_fn = nn.CrossEntropyLoss()\n", | |
"\n", | |
" def forward(self, x):\n", | |
" return self.model(x)\n", | |
"\n", | |
" def training_step(self, batch, batch_idx):\n", | |
" x, y = batch\n", | |
" y_hat = self(x)\n", | |
" loss = self.loss_fn(y_hat, y)\n", | |
" self.log('train_loss', loss, on_step=True, on_epoch=True, prog_bar=True, logger=True)\n", | |
" return loss\n", | |
"\n", | |
" def validation_step(self, batch, batch_idx):\n", | |
" x, y = batch\n", | |
" y_hat = self(x)\n", | |
" loss = self.loss_fn(y_hat, y)\n", | |
" self.log('val_loss', loss, on_step=True, on_epoch=True, prog_bar=True, logger=True)\n", | |
" return loss\n", | |
"\n", | |
" def configure_optimizers(self):\n", | |
" return torch.optim.SGD(self.parameters(), lr=1e-3, momentum=0.9, nesterov=True)" | |
], | |
"metadata": { | |
"id": "dX6Nk7c9qdP4" | |
}, | |
"execution_count": 11, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"# Initialize the model and data module\n", | |
"alex_model = AlexModel()\n", | |
"alex_data_module = AlexDataModule()\n", | |
"\n", | |
"# Get the number of available GPUs, else use CPU\n", | |
"ngpus = torch.cuda.device_count() if torch.cuda.is_available() else 1\n", | |
"\n", | |
"logger = CSVLogger(\"logs\", name=\"Alex_RockPaperScissors\")\n", | |
"\n", | |
"# Train and Validate the model\n", | |
"trainer = pl.Trainer(logger=CSVLogger(\"logs\", name=\"Alex_RockPaperScissors\"), devices=ngpus, accelerator=\"gpu\" if ngpus > 0 else None, max_epochs=1)\n", | |
"trainer.fit(alex_model, alex_data_module)" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 726, | |
"referenced_widgets": [ | |
"5a6256bf3d2d496aa855d9b2f60eb9ce", | |
"33168df86800403aa5bb74987505ae8c", | |
"a5c8162d9178459f8aaa0fb89f7659d6", | |
"dbc712b85a394c7dafc0eccbf4f63cd3", | |
"5b74293cddbf4dc386777c6f7fb6c40e", | |
"d3e35871f84649b9a62985ec07c21cd5", | |
"126118df078d46c2976fc0317890051d", | |
"4845fd2b96a14ace9ecfa9f542f95f31", | |
"c7fae93195dd451a805ee5b61a5d121b", | |
"f355ef6df1a7492197c6db9b293c51e4", | |
"b9cdc0d98ef74997b4072f7940b5373e", | |
"ec842ae29f9f40f1ae1962d442b12e63", | |
"5b70f5bfcc484717983a0292701e5048", | |
"1a8449b0226449b4ae81b802e0a41bb7", | |
"4af5638a98bc4189becfdf7151c9d2aa", | |
"6d5c8634914d403e879535e903c2fe76", | |
"0b94020ef47d498ab85e105ff04f6615", | |
"f26d67510314489cbb55592af2318509", | |
"7d195d4a96904019ae55f02683385cbb", | |
"09daf0cdbea64a6fa33efe809fb86585", | |
"e72350285421410580234211f8cc4263", | |
"f5fa966af73e4d8586bc8c35ade142aa", | |
"29c20be1cf20480a93c8266ca2f0f340", | |
"3849cf1e616a4eec97b73edaca9027d1", | |
"fce83dad788348588f79b63b68523b38", | |
"41f2a87b486e4da482419a2f4fc8e389", | |
"47ac2b16060e4846bdee5c7c8935afa0", | |
"024f6d8bcf074df58c29e364b3fe71bd", | |
"d8c649dcfbc8409bb8cb8251eb6520a8", | |
"0bc19bc3c898415a87deb38564ee9ca9", | |
"bf5698c4cb104238966995796ae7abda", | |
"9668ca270d934a1ba81f34aeae265bec", | |
"d6c4f31a29b84d2db55171d02c657a54" | |
] | |
}, | |
"id": "PC0Pl8YvqgP2", | |
"outputId": "6de19aa9-b554-4f8d-ac20-6f1f655a0814" | |
}, | |
"execution_count": 12, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stderr", | |
"text": [ | |
"INFO: GPU available: True (cuda), used: True\n", | |
"INFO:lightning.pytorch.utilities.rank_zero:GPU available: True (cuda), used: True\n", | |
"INFO: TPU available: False, using: 0 TPU cores\n", | |
"INFO:lightning.pytorch.utilities.rank_zero:TPU available: False, using: 0 TPU cores\n", | |
"INFO: IPU available: False, using: 0 IPUs\n", | |
"INFO:lightning.pytorch.utilities.rank_zero:IPU available: False, using: 0 IPUs\n", | |
"INFO: HPU available: False, using: 0 HPUs\n", | |
"INFO:lightning.pytorch.utilities.rank_zero:HPU available: False, using: 0 HPUs\n", | |
"WARNING: Missing logger folder: logs/Alex_RockPaperScissors\n", | |
"WARNING:lightning.fabric.loggers.csv_logs:Missing logger folder: logs/Alex_RockPaperScissors\n", | |
"INFO: LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]\n", | |
"INFO:lightning.pytorch.accelerators.cuda:LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]\n", | |
"INFO: \n", | |
" | Name | Type | Params\n", | |
"---------------------------------------------\n", | |
"0 | model | AlexNet | 57.0 M\n", | |
"1 | loss_fn | CrossEntropyLoss | 0 \n", | |
"---------------------------------------------\n", | |
"12.3 K Trainable params\n", | |
"57.0 M Non-trainable params\n", | |
"57.0 M Total params\n", | |
"228.065 Total estimated model params size (MB)\n", | |
"INFO:lightning.pytorch.callbacks.model_summary:\n", | |
" | Name | Type | Params\n", | |
"---------------------------------------------\n", | |
"0 | model | AlexNet | 57.0 M\n", | |
"1 | loss_fn | CrossEntropyLoss | 0 \n", | |
"---------------------------------------------\n", | |
"12.3 K Trainable params\n", | |
"57.0 M Non-trainable params\n", | |
"57.0 M Total params\n", | |
"228.065 Total estimated model params size (MB)\n" | |
] | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"Sanity Checking: | | 0/? [00:00<?, ?it/s]" | |
], | |
"application/vnd.jupyter.widget-view+json": { | |
"version_major": 2, | |
"version_minor": 0, | |
"model_id": "5a6256bf3d2d496aa855d9b2f60eb9ce" | |
} | |
}, | |
"metadata": {} | |
}, | |
{ | |
"output_type": "stream", | |
"name": "stderr", | |
"text": [ | |
"/usr/local/lib/python3.10/dist-packages/lightning/pytorch/trainer/connectors/data_connector.py:441: The 'val_dataloader' does not have many workers which may be a bottleneck. Consider increasing the value of the `num_workers` argument` to `num_workers=1` in the `DataLoader` to improve performance.\n", | |
"/usr/local/lib/python3.10/dist-packages/lightning/pytorch/trainer/connectors/data_connector.py:441: The 'train_dataloader' does not have many workers which may be a bottleneck. Consider increasing the value of the `num_workers` argument` to `num_workers=1` in the `DataLoader` to improve performance.\n" | |
] | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"Training: | | 0/? [00:00<?, ?it/s]" | |
], | |
"application/vnd.jupyter.widget-view+json": { | |
"version_major": 2, | |
"version_minor": 0, | |
"model_id": "ec842ae29f9f40f1ae1962d442b12e63" | |
} | |
}, | |
"metadata": {} | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"Validation: | | 0/? [00:00<?, ?it/s]" | |
], | |
"application/vnd.jupyter.widget-view+json": { | |
"version_major": 2, | |
"version_minor": 0, | |
"model_id": "29c20be1cf20480a93c8266ca2f0f340" | |
} | |
}, | |
"metadata": {} | |
}, | |
{ | |
"output_type": "stream", | |
"name": "stderr", | |
"text": [ | |
"INFO: `Trainer.fit` stopped: `max_epochs=1` reached.\n", | |
"INFO:lightning.pytorch.utilities.rank_zero:`Trainer.fit` stopped: `max_epochs=1` reached.\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"log_dir = 'version_0'\n", | |
"\n", | |
"log_file = f'/content/logs/Alex_RockPaperScissors/{log_dir}/metrics.csv'\n", | |
"df = pd.read_csv(log_file)\n", | |
"df_grouped = df.groupby('epoch').first().reset_index()\n", | |
"df_grouped" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 81 | |
}, | |
"id": "jVSO1_kskISO", | |
"outputId": "0ab77c73-ab93-4163-eeff-eda8b4ec322a" | |
}, | |
"execution_count": 14, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
" epoch train_loss_step step val_loss_step val_loss_epoch \\\n", | |
"0 0.0 0.064842 49 NaN 0.190937 \n", | |
"\n", | |
" train_loss_epoch \n", | |
"0 0.097383 " | |
], | |
"text/html": [ | |
"\n", | |
" <div id=\"df-ea5bd377-db86-48c8-bbd1-6df6d0c5fe4c\" class=\"colab-df-container\">\n", | |
" <div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>epoch</th>\n", | |
" <th>train_loss_step</th>\n", | |
" <th>step</th>\n", | |
" <th>val_loss_step</th>\n", | |
" <th>val_loss_epoch</th>\n", | |
" <th>train_loss_epoch</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>0.0</td>\n", | |
" <td>0.064842</td>\n", | |
" <td>49</td>\n", | |
" <td>NaN</td>\n", | |
" <td>0.190937</td>\n", | |
" <td>0.097383</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>\n", | |
" <div class=\"colab-df-buttons\">\n", | |
"\n", | |
" <div class=\"colab-df-container\">\n", | |
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-ea5bd377-db86-48c8-bbd1-6df6d0c5fe4c')\"\n", | |
" title=\"Convert this dataframe to an interactive table.\"\n", | |
" style=\"display:none;\">\n", | |
"\n", | |
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n", | |
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n", | |
" </svg>\n", | |
" </button>\n", | |
"\n", | |
" <style>\n", | |
" .colab-df-container {\n", | |
" display:flex;\n", | |
" gap: 12px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert {\n", | |
" background-color: #E8F0FE;\n", | |
" border: none;\n", | |
" border-radius: 50%;\n", | |
" cursor: pointer;\n", | |
" display: none;\n", | |
" fill: #1967D2;\n", | |
" height: 32px;\n", | |
" padding: 0 0 0 0;\n", | |
" width: 32px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert:hover {\n", | |
" background-color: #E2EBFA;\n", | |
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n", | |
" fill: #174EA6;\n", | |
" }\n", | |
"\n", | |
" .colab-df-buttons div {\n", | |
" margin-bottom: 4px;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert {\n", | |
" background-color: #3B4455;\n", | |
" fill: #D2E3FC;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert:hover {\n", | |
" background-color: #434B5C;\n", | |
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n", | |
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n", | |
" fill: #FFFFFF;\n", | |
" }\n", | |
" </style>\n", | |
"\n", | |
" <script>\n", | |
" const buttonEl =\n", | |
" document.querySelector('#df-ea5bd377-db86-48c8-bbd1-6df6d0c5fe4c button.colab-df-convert');\n", | |
" buttonEl.style.display =\n", | |
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n", | |
"\n", | |
" async function convertToInteractive(key) {\n", | |
" const element = document.querySelector('#df-ea5bd377-db86-48c8-bbd1-6df6d0c5fe4c');\n", | |
" const dataTable =\n", | |
" await google.colab.kernel.invokeFunction('convertToInteractive',\n", | |
" [key], {});\n", | |
" if (!dataTable) return;\n", | |
"\n", | |
" const docLinkHtml = 'Like what you see? Visit the ' +\n", | |
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n", | |
" + ' to learn more about interactive tables.';\n", | |
" element.innerHTML = '';\n", | |
" dataTable['output_type'] = 'display_data';\n", | |
" await google.colab.output.renderOutput(dataTable, element);\n", | |
" const docLink = document.createElement('div');\n", | |
" docLink.innerHTML = docLinkHtml;\n", | |
" element.appendChild(docLink);\n", | |
" }\n", | |
" </script>\n", | |
" </div>\n", | |
"\n", | |
" </div>\n", | |
" </div>\n" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 14 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"def correct(model, loader):\n", | |
" \"\"\"\n", | |
" fction pre-built by T.Kerepecky\n", | |
" \"\"\"\n", | |
" model.eval() # Set the model to evaluation mode\n", | |
" device = next(model.parameters()).device # Get the device\n", | |
"\n", | |
" results = []\n", | |
" for batch in loader:\n", | |
" x, y = batch\n", | |
" x, y = x.to(device), y.to(device)\n", | |
"\n", | |
" y_hat = model(x)\n", | |
"\n", | |
" _, n_dims = y_hat.shape\n", | |
" _, predicted = torch.max(y_hat, 1)\n", | |
"\n", | |
" for c in range(n_dims):\n", | |
" n_class = (y == c).sum().item()\n", | |
" n_correct = (predicted[y == c] == c).sum().item()\n", | |
" results.append((n_correct, n_class))\n", | |
"\n", | |
" model.train() # Set the model back to training mode\n", | |
"\n", | |
" return torch.tensor(results)" | |
], | |
"metadata": { | |
"id": "K9K6V9-Ys6r2" | |
}, | |
"execution_count": 15, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"train_results = correct(alex_model, alex_data_module.train_dataloader())\n", | |
"train_results = train_results.sum(axis=0)\n", | |
"print(f'The training set: our model got {train_results[0]} out of {train_results[1]} images correctly classified, an accuracy of {train_results[0]/train_results[1]:.2f}%!')\n", | |
"\n", | |
"val_results = correct(alex_model, alex_data_module.val_dataloader())\n", | |
"val_results = val_results.sum(axis=0)\n", | |
"print(f'The validation set: our model got {val_results[0]} out of {val_results[1]} images correctly classified, an accuracy of {val_results[0]/val_results[1]:.2f}%!')\n" | |
], | |
"metadata": { | |
"id": "3nrfvyREkIOU" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"## VGG\n", | |
"aka" | |
], | |
"metadata": { | |
"id": "JhbzHnj4tdvO" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"# import pretrained NN and print its structure\n", | |
"from torchvision.models import vgg16\n", | |
"\n", | |
"#vgg = vgg16(pretrained=True)\n", | |
"vgg = vgg16(weights='DEFAULT')" | |
], | |
"metadata": { | |
"id": "vFKdYzPikIL8" | |
}, | |
"execution_count": 55, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"print(vgg.classifier)\n", | |
"vgg.classifier[6] = nn.Linear(in_features=4096, out_features=3)\n", | |
"print(vgg.classifier)" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "h4nJT-Uw1x1I", | |
"outputId": "2e7ccd41-d1a5-471b-fdbd-aec075ef7055" | |
}, | |
"execution_count": 56, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"Sequential(\n", | |
" (0): Linear(in_features=25088, out_features=4096, bias=True)\n", | |
" (1): ReLU(inplace=True)\n", | |
" (2): Dropout(p=0.5, inplace=False)\n", | |
" (3): Linear(in_features=4096, out_features=4096, bias=True)\n", | |
" (4): ReLU(inplace=True)\n", | |
" (5): Dropout(p=0.5, inplace=False)\n", | |
" (6): Linear(in_features=4096, out_features=1000, bias=True)\n", | |
")\n", | |
"Sequential(\n", | |
" (0): Linear(in_features=25088, out_features=4096, bias=True)\n", | |
" (1): ReLU(inplace=True)\n", | |
" (2): Dropout(p=0.5, inplace=False)\n", | |
" (3): Linear(in_features=4096, out_features=4096, bias=True)\n", | |
" (4): ReLU(inplace=True)\n", | |
" (5): Dropout(p=0.5, inplace=False)\n", | |
" (6): Linear(in_features=4096, out_features=3, bias=True)\n", | |
")\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"class vggDataModule(pl.LightningDataModule):\n", | |
" def __init__(self, batch_size=16):\n", | |
" super().__init__()\n", | |
" self.batch_size = batch_size\n", | |
" self.train_dir = 'rps'\n", | |
" self.test_dir = 'rps-test-set'\n", | |
" self.composer = None\n", | |
"\n", | |
" def setup(self, stage=None):\n", | |
" # Define the normalization values (based on the original Alexnet paper)\n", | |
" norm_mean = [0.485, 0.456, 0.406]\n", | |
" norm_std = [0.229, 0.224, 0.225]\n", | |
"\n", | |
" # Build the transformation and datasets\n", | |
" self.composer = torchvision.transforms.Compose([\n", | |
" torchvision.transforms.Resize(256),\n", | |
" torchvision.transforms.CenterCrop(224),\n", | |
" torchvision.transforms.ToTensor(),\n", | |
" torchvision.transforms.Normalize(mean=norm_mean, std=norm_std)\n", | |
" ])\n", | |
"\n", | |
" self.train_data = ImageFolder(root=self.train_dir, transform=self.composer)\n", | |
" self.val_data = ImageFolder(root=self.test_dir, transform=self.composer)\n", | |
"\n", | |
" def train_dataloader(self):\n", | |
" return DataLoader(self.train_data, batch_size=self.batch_size, shuffle=True, num_workers=2)\n", | |
"\n", | |
" def val_dataloader(self):\n", | |
" return DataLoader(self.val_data, batch_size=self.batch_size, num_workers=2)" | |
], | |
"metadata": { | |
"id": "0r3hOdMj1xsp" | |
}, | |
"execution_count": 46, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"class vggModel(pl.LightningModule):\n", | |
" def __init__(self):\n", | |
" super().__init__()\n", | |
"\n", | |
" # Load the pretrained AlexNet model and replace the classifier\n", | |
" vgg = vgg16(pretrained=True)\n", | |
"\n", | |
" # Freeze the parameters of the pretrained model\n", | |
" freeze_model(vgg)\n", | |
"\n", | |
" # Replace the last fully connected layer for the new classification task\n", | |
" vgg.classifier[6] = nn.Linear(in_features=4096, out_features=3)\n", | |
"\n", | |
" # Assign the modified AlexNet to self.model\n", | |
" self.model = vgg\n", | |
"\n", | |
" # Loss function for the new classifier\n", | |
" self.loss_fn = nn.CrossEntropyLoss()\n", | |
"\n", | |
" def forward(self, x):\n", | |
" return self.model(x)\n", | |
"\n", | |
" def training_step(self, batch, batch_idx):\n", | |
" x, y = batch\n", | |
" y_hat = self(x)\n", | |
" loss = self.loss_fn(y_hat, y)\n", | |
" self.log('train_loss', loss, on_step=True, on_epoch=True, prog_bar=True, logger=True)\n", | |
" return loss\n", | |
"\n", | |
" def validation_step(self, batch, batch_idx):\n", | |
" x, y = batch\n", | |
" y_hat = self(x)\n", | |
" loss = self.loss_fn(y_hat, y)\n", | |
" self.log('val_loss', loss, on_step=True, on_epoch=True, prog_bar=True, logger=True)\n", | |
" return loss\n", | |
"\n", | |
" def configure_optimizers(self):\n", | |
" return torch.optim.SGD(self.parameters(), lr=1e-3, momentum=0.9, nesterov=True)" | |
], | |
"metadata": { | |
"id": "A6ZPemgw2Yw9" | |
}, | |
"execution_count": 47, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"# Initialize the model and data module\n", | |
"vgg_model = vggModel()\n", | |
"vgg_data_module = vggDataModule()\n", | |
"\n", | |
"# Get the number of available GPUs, else use CPU\n", | |
"ngpus = torch.cuda.device_count() if torch.cuda.is_available() else 1\n", | |
"\n", | |
"logger = CSVLogger(\"logs\", name=\"vgg_RockPaperScissors\")\n", | |
"\n", | |
"# Train and Validate the model\n", | |
"trainer = pl.Trainer(logger=CSVLogger(\"logs\", name=\"vgg_RockPaperScissors\"), devices=ngpus, accelerator=\"gpu\" if ngpus > 0 else None, max_epochs=1)\n", | |
"trainer.fit(vgg_model, vgg_data_module)" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 726, | |
"referenced_widgets": [ | |
"ce2f83d22b154a8f9f96f32f4271a728", | |
"0eb5429d82c2486eb2da141635a3388f", | |
"f994a5895cac4fc5b7f159d50904d6dd", | |
"ca34c898901b4d2a8a38ddc8b5612989", | |
"d8e6c96cfc3c445489b71ae0ec0776cd", | |
"7c2c0d73ee83406eb875654658f9f566", | |
"3f8e6c96287640d686f65c5510498964", | |
"02846e8a5bb347f8896b25be313761f5", | |
"7b0feacb2ae24dc7b54aae18c0d62ecf", | |
"5abbd461e0a44a9186a9a2f4af48c5d2", | |
"3e064c0de3b7428b9d37c0af6e024620", | |
"9d685cb152094a2982dd0fbd960e7b35", | |
"27b333bb5d9445ecbb97d0d64732f509", | |
"afca60a353f94e0483d6d2c30eb8476f", | |
"60654e0ee573447b9547182a759856de", | |
"5cd0d8185276454ba66e681d2db26ed7", | |
"335994b692c54a7aa6e054104d3cd315", | |
"b2909cb095b841cda6097f694e83fbe9", | |
"bd1edb2c76984f1caf70796c9fb722b5", | |
"4e09a6b22555424a8198d0fc4b1b6598", | |
"2f9a49adbc7c4df58d1bcb4014cc7dbf", | |
"61ade10c5675439db9e39cc1f5725585", | |
"0cfac08c924146aeac1a9c9dbe96b3ae", | |
"de1a95a91edb4fc1834f40a53f59afc8", | |
"33d4dabf2f4e4f88bb27e671ae0dd320", | |
"c0d84080bc30404ea32033114deb5985", | |
"5a7390e2542f41f786662e8f6b4559b7", | |
"19533f52e0ca4f4eb42a9d80b769836f", | |
"6f6099f4edf742578b6eda2968369ed6", | |
"6b38a1990da8497aa4de1dbbe0cd1058", | |
"5c9538315eb442b58d3b1370b9fb3ac3", | |
"c72a767f4cfd481fb940bc8e36b208d3", | |
"e30e189e238341898ba947c4d906d19a" | |
] | |
}, | |
"id": "D0xCISVT2Yn_", | |
"outputId": "4202cbef-4544-47b3-ca5d-d9e4c2006b4d" | |
}, | |
"execution_count": 48, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stderr", | |
"text": [ | |
"/usr/local/lib/python3.10/dist-packages/torchvision/models/_utils.py:208: UserWarning: The parameter 'pretrained' is deprecated since 0.13 and may be removed in the future, please use 'weights' instead.\n", | |
" warnings.warn(\n", | |
"/usr/local/lib/python3.10/dist-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing `weights=VGG16_Weights.IMAGENET1K_V1`. You can also use `weights=VGG16_Weights.DEFAULT` to get the most up-to-date weights.\n", | |
" warnings.warn(msg)\n", | |
"INFO: GPU available: True (cuda), used: True\n", | |
"INFO:lightning.pytorch.utilities.rank_zero:GPU available: True (cuda), used: True\n", | |
"INFO: TPU available: False, using: 0 TPU cores\n", | |
"INFO:lightning.pytorch.utilities.rank_zero:TPU available: False, using: 0 TPU cores\n", | |
"INFO: IPU available: False, using: 0 IPUs\n", | |
"INFO:lightning.pytorch.utilities.rank_zero:IPU available: False, using: 0 IPUs\n", | |
"INFO: HPU available: False, using: 0 HPUs\n", | |
"INFO:lightning.pytorch.utilities.rank_zero:HPU available: False, using: 0 HPUs\n", | |
"INFO: LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]\n", | |
"INFO:lightning.pytorch.accelerators.cuda:LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]\n", | |
"INFO: \n", | |
" | Name | Type | Params\n", | |
"---------------------------------------------\n", | |
"0 | model | VGG | 134 M \n", | |
"1 | loss_fn | CrossEntropyLoss | 0 \n", | |
"---------------------------------------------\n", | |
"12.3 K Trainable params\n", | |
"134 M Non-trainable params\n", | |
"134 M Total params\n", | |
"537.091 Total estimated model params size (MB)\n", | |
"INFO:lightning.pytorch.callbacks.model_summary:\n", | |
" | Name | Type | Params\n", | |
"---------------------------------------------\n", | |
"0 | model | VGG | 134 M \n", | |
"1 | loss_fn | CrossEntropyLoss | 0 \n", | |
"---------------------------------------------\n", | |
"12.3 K Trainable params\n", | |
"134 M Non-trainable params\n", | |
"134 M Total params\n", | |
"537.091 Total estimated model params size (MB)\n" | |
] | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"Sanity Checking: | | 0/? [00:00<?, ?it/s]" | |
], | |
"application/vnd.jupyter.widget-view+json": { | |
"version_major": 2, | |
"version_minor": 0, | |
"model_id": "ce2f83d22b154a8f9f96f32f4271a728" | |
} | |
}, | |
"metadata": {} | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"Training: | | 0/? [00:00<?, ?it/s]" | |
], | |
"application/vnd.jupyter.widget-view+json": { | |
"version_major": 2, | |
"version_minor": 0, | |
"model_id": "9d685cb152094a2982dd0fbd960e7b35" | |
} | |
}, | |
"metadata": {} | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"Validation: | | 0/? [00:00<?, ?it/s]" | |
], | |
"application/vnd.jupyter.widget-view+json": { | |
"version_major": 2, | |
"version_minor": 0, | |
"model_id": "0cfac08c924146aeac1a9c9dbe96b3ae" | |
} | |
}, | |
"metadata": {} | |
}, | |
{ | |
"output_type": "stream", | |
"name": "stderr", | |
"text": [ | |
"INFO: `Trainer.fit` stopped: `max_epochs=1` reached.\n", | |
"INFO:lightning.pytorch.utilities.rank_zero:`Trainer.fit` stopped: `max_epochs=1` reached.\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"log_dir = 'version_0'\n", | |
"\n", | |
"log_file = f'/content/logs/vgg_RockPaperScissors/{log_dir}/metrics.csv'\n", | |
"df = pd.read_csv(log_file)\n", | |
"df_grouped = df.groupby('epoch').first().reset_index()\n", | |
"df_grouped" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 81 | |
}, | |
"id": "Jwknqauv2Yfr", | |
"outputId": "f328723c-6433-46c4-f52a-3efc8e203e45" | |
}, | |
"execution_count": 49, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
" epoch train_loss_step step val_loss_step val_loss_epoch \\\n", | |
"0 0.0 0.21497 49 NaN 0.69801 \n", | |
"\n", | |
" train_loss_epoch \n", | |
"0 0.247861 " | |
], | |
"text/html": [ | |
"\n", | |
" <div id=\"df-7c77433b-3248-439e-a9d5-af70427bed0e\" class=\"colab-df-container\">\n", | |
" <div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>epoch</th>\n", | |
" <th>train_loss_step</th>\n", | |
" <th>step</th>\n", | |
" <th>val_loss_step</th>\n", | |
" <th>val_loss_epoch</th>\n", | |
" <th>train_loss_epoch</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>0.0</td>\n", | |
" <td>0.21497</td>\n", | |
" <td>49</td>\n", | |
" <td>NaN</td>\n", | |
" <td>0.69801</td>\n", | |
" <td>0.247861</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>\n", | |
" <div class=\"colab-df-buttons\">\n", | |
"\n", | |
" <div class=\"colab-df-container\">\n", | |
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-7c77433b-3248-439e-a9d5-af70427bed0e')\"\n", | |
" title=\"Convert this dataframe to an interactive table.\"\n", | |
" style=\"display:none;\">\n", | |
"\n", | |
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n", | |
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n", | |
" </svg>\n", | |
" </button>\n", | |
"\n", | |
" <style>\n", | |
" .colab-df-container {\n", | |
" display:flex;\n", | |
" gap: 12px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert {\n", | |
" background-color: #E8F0FE;\n", | |
" border: none;\n", | |
" border-radius: 50%;\n", | |
" cursor: pointer;\n", | |
" display: none;\n", | |
" fill: #1967D2;\n", | |
" height: 32px;\n", | |
" padding: 0 0 0 0;\n", | |
" width: 32px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert:hover {\n", | |
" background-color: #E2EBFA;\n", | |
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n", | |
" fill: #174EA6;\n", | |
" }\n", | |
"\n", | |
" .colab-df-buttons div {\n", | |
" margin-bottom: 4px;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert {\n", | |
" background-color: #3B4455;\n", | |
" fill: #D2E3FC;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert:hover {\n", | |
" background-color: #434B5C;\n", | |
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n", | |
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n", | |
" fill: #FFFFFF;\n", | |
" }\n", | |
" </style>\n", | |
"\n", | |
" <script>\n", | |
" const buttonEl =\n", | |
" document.querySelector('#df-7c77433b-3248-439e-a9d5-af70427bed0e button.colab-df-convert');\n", | |
" buttonEl.style.display =\n", | |
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n", | |
"\n", | |
" async function convertToInteractive(key) {\n", | |
" const element = document.querySelector('#df-7c77433b-3248-439e-a9d5-af70427bed0e');\n", | |
" const dataTable =\n", | |
" await google.colab.kernel.invokeFunction('convertToInteractive',\n", | |
" [key], {});\n", | |
" if (!dataTable) return;\n", | |
"\n", | |
" const docLinkHtml = 'Like what you see? Visit the ' +\n", | |
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n", | |
" + ' to learn more about interactive tables.';\n", | |
" element.innerHTML = '';\n", | |
" dataTable['output_type'] = 'display_data';\n", | |
" await google.colab.output.renderOutput(dataTable, element);\n", | |
" const docLink = document.createElement('div');\n", | |
" docLink.innerHTML = docLinkHtml;\n", | |
" element.appendChild(docLink);\n", | |
" }\n", | |
" </script>\n", | |
" </div>\n", | |
"\n", | |
" </div>\n", | |
" </div>\n" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 49 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"train_results1 = correct(vgg_model, vgg_data_module.train_dataloader())\n", | |
"train_results1 = train_results1.sum(axis=0)\n", | |
"print(f'The training set: our model got {train_results1[0]} out of {train_results1[1]} images correctly classified, an accuracy of {train_results1[0]/train_results1[1]:.2f}%!')\n", | |
"\n", | |
"val_results1 = correct(vgg_model, vgg_data_module.val_dataloader())\n", | |
"val_results1 = val_results1.sum(axis=0)\n", | |
"print(f'The validation set: our model got {val_results1[0]} out of {val_results1[1]} images correctly classified, an accuracy of {val_results1[0]/val_results1[1]:.2f}%!')\n", | |
"" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 405 | |
}, | |
"id": "0Rj0HfDN2YX0", | |
"outputId": "3a3e6e33-3bc7-45ae-f503-e104355861cb" | |
}, | |
"execution_count": 50, | |
"outputs": [ | |
{ | |
"output_type": "error", | |
"ename": "KeyboardInterrupt", | |
"evalue": "ignored", | |
"traceback": [ | |
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", | |
"\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", | |
"\u001b[0;32m<ipython-input-50-ab3885af39cb>\u001b[0m in \u001b[0;36m<cell line: 1>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mtrain_results1\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcorrect\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvgg_model\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvgg_data_module\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtrain_dataloader\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mtrain_results1\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtrain_results1\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msum\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf'The training set: our model got {train_results1[0]} out of {train_results1[1]} images correctly classified, an accuracy of {train_results1[0]/train_results1[1]:.2f}%!'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mval_results1\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcorrect\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvgg_model\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvgg_data_module\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mval_dataloader\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m<ipython-input-15-a46b63ba2601>\u001b[0m in \u001b[0;36mcorrect\u001b[0;34m(model, loader)\u001b[0m\n\u001b[1;32m 11\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdevice\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdevice\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 12\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 13\u001b[0;31m \u001b[0my_hat\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 14\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[0m_\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_dims\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0my_hat\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py\u001b[0m in \u001b[0;36m_wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1516\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_compiled_call_impl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# type: ignore[misc]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1517\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1518\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_call_impl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1519\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1520\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_call_impl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py\u001b[0m in \u001b[0;36m_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1525\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0m_global_backward_pre_hooks\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0m_global_backward_hooks\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1526\u001b[0m or _global_forward_hooks or _global_forward_pre_hooks):\n\u001b[0;32m-> 1527\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mforward_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1528\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1529\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m<ipython-input-47-9def1fe30631>\u001b[0m in \u001b[0;36mforward\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 19\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 20\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mforward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 21\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 22\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 23\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mtraining_step\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbatch\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbatch_idx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py\u001b[0m in \u001b[0;36m_wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1516\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_compiled_call_impl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# type: ignore[misc]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1517\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1518\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_call_impl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1519\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1520\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_call_impl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py\u001b[0m in \u001b[0;36m_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1525\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0m_global_backward_pre_hooks\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0m_global_backward_hooks\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1526\u001b[0m or _global_forward_hooks or _global_forward_pre_hooks):\n\u001b[0;32m-> 1527\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mforward_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1528\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1529\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.10/dist-packages/torchvision/models/vgg.py\u001b[0m in \u001b[0;36mforward\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 64\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 65\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mforward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTensor\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTensor\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 66\u001b[0;31m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfeatures\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 67\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mavgpool\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mflatten\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py\u001b[0m in \u001b[0;36m_wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1516\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_compiled_call_impl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# type: ignore[misc]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1517\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1518\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_call_impl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1519\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1520\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_call_impl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py\u001b[0m in \u001b[0;36m_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1525\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0m_global_backward_pre_hooks\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0m_global_backward_hooks\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1526\u001b[0m or _global_forward_hooks or _global_forward_pre_hooks):\n\u001b[0;32m-> 1527\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mforward_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1528\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1529\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.10/dist-packages/torch/nn/modules/container.py\u001b[0m in \u001b[0;36mforward\u001b[0;34m(self, input)\u001b[0m\n\u001b[1;32m 213\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mforward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minput\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 214\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mmodule\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 215\u001b[0;31m \u001b[0minput\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmodule\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 216\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0minput\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 217\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py\u001b[0m in \u001b[0;36m_wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1516\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_compiled_call_impl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# type: ignore[misc]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1517\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1518\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_call_impl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1519\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1520\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_call_impl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py\u001b[0m in \u001b[0;36m_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1525\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0m_global_backward_pre_hooks\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0m_global_backward_hooks\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1526\u001b[0m or _global_forward_hooks or _global_forward_pre_hooks):\n\u001b[0;32m-> 1527\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mforward_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1528\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1529\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.10/dist-packages/torch/nn/modules/conv.py\u001b[0m in \u001b[0;36mforward\u001b[0;34m(self, input)\u001b[0m\n\u001b[1;32m 458\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 459\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mforward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minput\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mTensor\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0mTensor\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 460\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_conv_forward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mweight\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbias\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 461\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 462\u001b[0m \u001b[0;32mclass\u001b[0m \u001b[0mConv3d\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_ConvNd\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.10/dist-packages/torch/nn/modules/conv.py\u001b[0m in \u001b[0;36m_conv_forward\u001b[0;34m(self, input, weight, bias)\u001b[0m\n\u001b[1;32m 454\u001b[0m \u001b[0mweight\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbias\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstride\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 455\u001b[0m _pair(0), self.dilation, self.groups)\n\u001b[0;32m--> 456\u001b[0;31m return F.conv2d(input, weight, bias, self.stride,\n\u001b[0m\u001b[1;32m 457\u001b[0m self.padding, self.dilation, self.groups)\n\u001b[1;32m 458\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;31mKeyboardInterrupt\u001b[0m: " | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [], | |
"metadata": { | |
"id": "NodS2KqQ2YQT" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [], | |
"metadata": { | |
"id": "RhZtOMS51xae" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"## ResNET\n", | |
"aka" | |
], | |
"metadata": { | |
"id": "hzcNPvpAvWyb" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"# import pretrained NN and print its structure\n", | |
"from torchvision.models import resnet50\n", | |
"\n", | |
"rnet = resnet50(pretrained=True)\n", | |
"print(rnet)" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "FCxhHn8mkIJL", | |
"outputId": "17837222-1868-4050-bcd0-368bc4a34eb5" | |
}, | |
"execution_count": 16, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stderr", | |
"text": [ | |
"/usr/local/lib/python3.10/dist-packages/torchvision/models/_utils.py:208: UserWarning: The parameter 'pretrained' is deprecated since 0.13 and may be removed in the future, please use 'weights' instead.\n", | |
" warnings.warn(\n", | |
"/usr/local/lib/python3.10/dist-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing `weights=ResNet50_Weights.IMAGENET1K_V1`. You can also use `weights=ResNet50_Weights.DEFAULT` to get the most up-to-date weights.\n", | |
" warnings.warn(msg)\n", | |
"Downloading: \"https://download.pytorch.org/models/resnet50-0676ba61.pth\" to /root/.cache/torch/hub/checkpoints/resnet50-0676ba61.pth\n", | |
"100%|██████████| 97.8M/97.8M [00:00<00:00, 158MB/s]\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"ResNet(\n", | |
" (conv1): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)\n", | |
" (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu): ReLU(inplace=True)\n", | |
" (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n", | |
" (layer1): Sequential(\n", | |
" (0): Bottleneck(\n", | |
" (conv1): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu): ReLU(inplace=True)\n", | |
" (downsample): Sequential(\n", | |
" (0): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" )\n", | |
" )\n", | |
" (1): Bottleneck(\n", | |
" (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu): ReLU(inplace=True)\n", | |
" )\n", | |
" (2): Bottleneck(\n", | |
" (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu): ReLU(inplace=True)\n", | |
" )\n", | |
" )\n", | |
" (layer2): Sequential(\n", | |
" (0): Bottleneck(\n", | |
" (conv1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n", | |
" (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu): ReLU(inplace=True)\n", | |
" (downsample): Sequential(\n", | |
" (0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", | |
" (1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" )\n", | |
" )\n", | |
" (1): Bottleneck(\n", | |
" (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu): ReLU(inplace=True)\n", | |
" )\n", | |
" (2): Bottleneck(\n", | |
" (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu): ReLU(inplace=True)\n", | |
" )\n", | |
" (3): Bottleneck(\n", | |
" (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu): ReLU(inplace=True)\n", | |
" )\n", | |
" )\n", | |
" (layer3): Sequential(\n", | |
" (0): Bottleneck(\n", | |
" (conv1): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n", | |
" (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu): ReLU(inplace=True)\n", | |
" (downsample): Sequential(\n", | |
" (0): Conv2d(512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", | |
" (1): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" )\n", | |
" )\n", | |
" (1): Bottleneck(\n", | |
" (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu): ReLU(inplace=True)\n", | |
" )\n", | |
" (2): Bottleneck(\n", | |
" (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu): ReLU(inplace=True)\n", | |
" )\n", | |
" (3): Bottleneck(\n", | |
" (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu): ReLU(inplace=True)\n", | |
" )\n", | |
" (4): Bottleneck(\n", | |
" (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu): ReLU(inplace=True)\n", | |
" )\n", | |
" (5): Bottleneck(\n", | |
" (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu): ReLU(inplace=True)\n", | |
" )\n", | |
" )\n", | |
" (layer4): Sequential(\n", | |
" (0): Bottleneck(\n", | |
" (conv1): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n", | |
" (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu): ReLU(inplace=True)\n", | |
" (downsample): Sequential(\n", | |
" (0): Conv2d(1024, 2048, kernel_size=(1, 1), stride=(2, 2), bias=False)\n", | |
" (1): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" )\n", | |
" )\n", | |
" (1): Bottleneck(\n", | |
" (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu): ReLU(inplace=True)\n", | |
" )\n", | |
" (2): Bottleneck(\n", | |
" (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu): ReLU(inplace=True)\n", | |
" )\n", | |
" )\n", | |
" (avgpool): AdaptiveAvgPool2d(output_size=(1, 1))\n", | |
" (fc): Linear(in_features=2048, out_features=1000, bias=True)\n", | |
")\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"# freeze to stop learning where we dont want it\n", | |
"freeze_model(rnet)" | |
], | |
"metadata": { | |
"id": "0XnPXafwwop2" | |
}, | |
"execution_count": 17, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"print(rnet.fc)" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "_bBR8IRvw-zQ", | |
"outputId": "1d66fb3b-44fc-4c49-d1d2-46baeacad05c" | |
}, | |
"execution_count": 19, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"Linear(in_features=2048, out_features=1000, bias=True)\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"rnet.fc = nn.Linear(2048, 3)" | |
], | |
"metadata": { | |
"id": "F-LKceqZxTkE" | |
}, | |
"execution_count": 21, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"print(rnet.fc)" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "Pr_mUoAQxfQT", | |
"outputId": "cd90c1aa-8976-4f62-9830-b1a5d3dc546f" | |
}, | |
"execution_count": 22, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"Linear(in_features=4096, out_features=3, bias=True)\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"for name, param in rnet.named_parameters():\n", | |
" if param.requires_grad == True:\n", | |
" print(name)" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "P4yOrcebxkmQ", | |
"outputId": "8cfad9e3-6cc0-45e6-a28f-9dc88701411c" | |
}, | |
"execution_count": 24, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"fc.weight\n", | |
"fc.bias\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"class ResNETDataModule(pl.LightningDataModule):\n", | |
" def __init__(self, batch_size=16):\n", | |
" super().__init__()\n", | |
" self.batch_size = batch_size\n", | |
" self.train_dir = 'rps'\n", | |
" self.test_dir = 'rps-test-set'\n", | |
" self.composer = None\n", | |
"\n", | |
" def setup(self, stage=None):\n", | |
" # Define the normalization values (based on the original Alexnet paper)\n", | |
" norm_mean = [0.485, 0.456, 0.406]\n", | |
" norm_std = [0.229, 0.224, 0.225]\n", | |
"\n", | |
" # Build the transformation and datasets\n", | |
" self.composer = torchvision.transforms.Compose([\n", | |
" torchvision.transforms.Resize(256),\n", | |
" torchvision.transforms.CenterCrop(224),\n", | |
" torchvision.transforms.ToTensor(),\n", | |
" torchvision.transforms.Normalize(mean=norm_mean, std=norm_std)\n", | |
" ])\n", | |
"\n", | |
" self.train_data = ImageFolder(root=self.train_dir, transform=self.composer)\n", | |
" self.val_data = ImageFolder(root=self.test_dir, transform=self.composer)\n", | |
"\n", | |
" def train_dataloader(self):\n", | |
" return DataLoader(self.train_data, batch_size=self.batch_size, shuffle=True)\n", | |
"\n", | |
" def val_dataloader(self):\n", | |
" return DataLoader(self.val_data, batch_size=self.batch_size)" | |
], | |
"metadata": { | |
"id": "mL_vYF_exkh6" | |
}, | |
"execution_count": 25, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"class ResNETModel(pl.LightningModule):\n", | |
" def __init__(self):\n", | |
" super().__init__()\n", | |
"\n", | |
" # Load the pretrained AlexNet model and replace the classifier\n", | |
" rnet = resnet50(pretrained=True)\n", | |
"\n", | |
" # Freeze the parameters of the pretrained model\n", | |
" freeze_model(rnet)\n", | |
"\n", | |
" # Replace the last fully connected layer for the new classification task\n", | |
" rnet.fc = nn.Linear(2048, 3)\n", | |
"\n", | |
" # Assign the modified AlexNet to self.model\n", | |
" self.model = rnet\n", | |
"\n", | |
" # Loss function for the new classifier\n", | |
" self.loss_fn = nn.CrossEntropyLoss()\n", | |
"\n", | |
" def forward(self, x):\n", | |
" return self.model(x)\n", | |
"\n", | |
" def training_step(self, batch, batch_idx):\n", | |
" x, y = batch\n", | |
" y_hat = self(x)\n", | |
" loss = self.loss_fn(y_hat, y)\n", | |
" self.log('train_loss', loss, on_step=True, on_epoch=True, prog_bar=True, logger=True)\n", | |
" return loss\n", | |
"\n", | |
" def validation_step(self, batch, batch_idx):\n", | |
" x, y = batch\n", | |
" y_hat = self(x)\n", | |
" loss = self.loss_fn(y_hat, y)\n", | |
" self.log('val_loss', loss, on_step=True, on_epoch=True, prog_bar=True, logger=True)\n", | |
" return loss\n", | |
"\n", | |
" def configure_optimizers(self):\n", | |
" return torch.optim.SGD(self.parameters(), lr=1e-3, momentum=0.9, nesterov=True)" | |
], | |
"metadata": { | |
"id": "NrsD6pbUyaKZ" | |
}, | |
"execution_count": 26, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"# Initialize the model and data module\n", | |
"rnet_model = ResNETModel()\n", | |
"rnet_data_module = ResNETDataModule()\n", | |
"\n", | |
"# Get the number of available GPUs, else use CPU\n", | |
"ngpus = torch.cuda.device_count() if torch.cuda.is_available() else 1\n", | |
"\n", | |
"logger = CSVLogger(\"logs\", name=\"ResNET_RockPaperScissors\")\n", | |
"\n", | |
"# Train and Validate the model\n", | |
"trainer = pl.Trainer(logger=CSVLogger(\"logs\", name=\"ResNET_RockPaperScissors\"), devices=ngpus, accelerator=\"gpu\" if ngpus > 0 else None, max_epochs=1)\n", | |
"trainer.fit(rnet_model, rnet_data_module)" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 798, | |
"referenced_widgets": [ | |
"20b4ca77a8f34fd38231368b7cd578ca", | |
"f6a12d422bdb4c6a8a183c1c7aa114d2", | |
"7aed0db4ffae47d4a483160ab8c866fe", | |
"39d7ab6854f441989d7ec8c1e9182051", | |
"76c50aa0fdc8433c8c2212debd036ec3", | |
"1b966e2c4c6948d9870a35f3093bca70", | |
"34073e80e2c84f91b60870d3e15bd22f", | |
"62c7130f7aa74459bc72160c2d40e4c9", | |
"ba92f785c25c4c9ebb85fb0e0bbb2582", | |
"50ea6961a36043fbaf3346c9c1501f6a", | |
"16102d80d445473a90ecc77ecfe82e4d", | |
"2952fa035c1a4699ba9d8c7dcb6ce710", | |
"59b39417536c4de39a0932c7afcba4bd", | |
"75218aec6e9947699089d49d7c9a139d", | |
"612a86f927144dc98f38af351d100e62", | |
"6e9a406f23d94f11badde14d27a6d77d", | |
"981fce8101044e639816dee282003e67", | |
"17e6c17527104e62af617f9b9fad5a1d", | |
"11a926a8365245e58238be0d9fa475bf", | |
"e779fb221e924587adb553a0a51f056b", | |
"4297bbafa4ac491cafe2215af7df61c8", | |
"2dd9ccdc72a1480f9108abfeaca12599", | |
"6893cf3eec454b5185d83631226c029f", | |
"32ce06372aa44ff0b04628ed008647d7", | |
"8e5547535152493e9d160eef8ac7866a", | |
"d24fca2fdab344458300f9e039117f9a", | |
"dd9ed63e5bd547f1b8f11d674d48708a", | |
"06d3c4c9529c4ca6b3a5e60efb6f96c9", | |
"d2abe57b89b149d7badbda92505a1e90", | |
"e11d060d378d492288621a43d53cfb1d", | |
"c3dd6037f2034d82a808bb021e4fa7d9", | |
"7d7e8bd09f224824bb10e008375b08ce", | |
"f1a59fd2c9814610903b66c3498e9e17" | |
] | |
}, | |
"id": "2x8_8g6Lxkdj", | |
"outputId": "1431ebbb-4d9a-4579-a8c1-4c3a2728e0c3" | |
}, | |
"execution_count": 27, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stderr", | |
"text": [ | |
"/usr/local/lib/python3.10/dist-packages/torchvision/models/_utils.py:208: UserWarning: The parameter 'pretrained' is deprecated since 0.13 and may be removed in the future, please use 'weights' instead.\n", | |
" warnings.warn(\n", | |
"/usr/local/lib/python3.10/dist-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing `weights=ResNet50_Weights.IMAGENET1K_V1`. You can also use `weights=ResNet50_Weights.DEFAULT` to get the most up-to-date weights.\n", | |
" warnings.warn(msg)\n", | |
"INFO: GPU available: True (cuda), used: True\n", | |
"INFO:lightning.pytorch.utilities.rank_zero:GPU available: True (cuda), used: True\n", | |
"INFO: TPU available: False, using: 0 TPU cores\n", | |
"INFO:lightning.pytorch.utilities.rank_zero:TPU available: False, using: 0 TPU cores\n", | |
"INFO: IPU available: False, using: 0 IPUs\n", | |
"INFO:lightning.pytorch.utilities.rank_zero:IPU available: False, using: 0 IPUs\n", | |
"INFO: HPU available: False, using: 0 HPUs\n", | |
"INFO:lightning.pytorch.utilities.rank_zero:HPU available: False, using: 0 HPUs\n", | |
"WARNING: Missing logger folder: logs/ResNET_RockPaperScissors\n", | |
"WARNING:lightning.fabric.loggers.csv_logs:Missing logger folder: logs/ResNET_RockPaperScissors\n", | |
"INFO: LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]\n", | |
"INFO:lightning.pytorch.accelerators.cuda:LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]\n", | |
"INFO: \n", | |
" | Name | Type | Params\n", | |
"---------------------------------------------\n", | |
"0 | model | ResNet | 23.5 M\n", | |
"1 | loss_fn | CrossEntropyLoss | 0 \n", | |
"---------------------------------------------\n", | |
"6.1 K Trainable params\n", | |
"23.5 M Non-trainable params\n", | |
"23.5 M Total params\n", | |
"94.057 Total estimated model params size (MB)\n", | |
"INFO:lightning.pytorch.callbacks.model_summary:\n", | |
" | Name | Type | Params\n", | |
"---------------------------------------------\n", | |
"0 | model | ResNet | 23.5 M\n", | |
"1 | loss_fn | CrossEntropyLoss | 0 \n", | |
"---------------------------------------------\n", | |
"6.1 K Trainable params\n", | |
"23.5 M Non-trainable params\n", | |
"23.5 M Total params\n", | |
"94.057 Total estimated model params size (MB)\n" | |
] | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"Sanity Checking: | | 0/? [00:00<?, ?it/s]" | |
], | |
"application/vnd.jupyter.widget-view+json": { | |
"version_major": 2, | |
"version_minor": 0, | |
"model_id": "20b4ca77a8f34fd38231368b7cd578ca" | |
} | |
}, | |
"metadata": {} | |
}, | |
{ | |
"output_type": "stream", | |
"name": "stderr", | |
"text": [ | |
"/usr/local/lib/python3.10/dist-packages/lightning/pytorch/trainer/connectors/data_connector.py:441: The 'val_dataloader' does not have many workers which may be a bottleneck. Consider increasing the value of the `num_workers` argument` to `num_workers=1` in the `DataLoader` to improve performance.\n", | |
"/usr/local/lib/python3.10/dist-packages/lightning/pytorch/trainer/connectors/data_connector.py:441: The 'train_dataloader' does not have many workers which may be a bottleneck. Consider increasing the value of the `num_workers` argument` to `num_workers=1` in the `DataLoader` to improve performance.\n" | |
] | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"Training: | | 0/? [00:00<?, ?it/s]" | |
], | |
"application/vnd.jupyter.widget-view+json": { | |
"version_major": 2, | |
"version_minor": 0, | |
"model_id": "2952fa035c1a4699ba9d8c7dcb6ce710" | |
} | |
}, | |
"metadata": {} | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"Validation: | | 0/? [00:00<?, ?it/s]" | |
], | |
"application/vnd.jupyter.widget-view+json": { | |
"version_major": 2, | |
"version_minor": 0, | |
"model_id": "6893cf3eec454b5185d83631226c029f" | |
} | |
}, | |
"metadata": {} | |
}, | |
{ | |
"output_type": "stream", | |
"name": "stderr", | |
"text": [ | |
"INFO: `Trainer.fit` stopped: `max_epochs=1` reached.\n", | |
"INFO:lightning.pytorch.utilities.rank_zero:`Trainer.fit` stopped: `max_epochs=1` reached.\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"log_dir = 'version_0'\n", | |
"\n", | |
"log_file = f'/content/logs/ResNET_RockPaperScissors/{log_dir}/metrics.csv'\n", | |
"df = pd.read_csv(log_file)\n", | |
"df_grouped = df.groupby('epoch').first().reset_index()\n", | |
"df_grouped" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 81 | |
}, | |
"id": "gq1vs_82xkZo", | |
"outputId": "1d9187b9-de48-407c-e7e8-9406af5c6764" | |
}, | |
"execution_count": 28, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
" epoch train_loss_step step val_loss_step val_loss_epoch \\\n", | |
"0 0.0 0.42707 49 NaN 0.508469 \n", | |
"\n", | |
" train_loss_epoch \n", | |
"0 0.494132 " | |
], | |
"text/html": [ | |
"\n", | |
" <div id=\"df-df871223-0bd3-40db-9b09-7715c245086f\" class=\"colab-df-container\">\n", | |
" <div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>epoch</th>\n", | |
" <th>train_loss_step</th>\n", | |
" <th>step</th>\n", | |
" <th>val_loss_step</th>\n", | |
" <th>val_loss_epoch</th>\n", | |
" <th>train_loss_epoch</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>0.0</td>\n", | |
" <td>0.42707</td>\n", | |
" <td>49</td>\n", | |
" <td>NaN</td>\n", | |
" <td>0.508469</td>\n", | |
" <td>0.494132</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>\n", | |
" <div class=\"colab-df-buttons\">\n", | |
"\n", | |
" <div class=\"colab-df-container\">\n", | |
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-df871223-0bd3-40db-9b09-7715c245086f')\"\n", | |
" title=\"Convert this dataframe to an interactive table.\"\n", | |
" style=\"display:none;\">\n", | |
"\n", | |
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n", | |
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n", | |
" </svg>\n", | |
" </button>\n", | |
"\n", | |
" <style>\n", | |
" .colab-df-container {\n", | |
" display:flex;\n", | |
" gap: 12px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert {\n", | |
" background-color: #E8F0FE;\n", | |
" border: none;\n", | |
" border-radius: 50%;\n", | |
" cursor: pointer;\n", | |
" display: none;\n", | |
" fill: #1967D2;\n", | |
" height: 32px;\n", | |
" padding: 0 0 0 0;\n", | |
" width: 32px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert:hover {\n", | |
" background-color: #E2EBFA;\n", | |
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n", | |
" fill: #174EA6;\n", | |
" }\n", | |
"\n", | |
" .colab-df-buttons div {\n", | |
" margin-bottom: 4px;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert {\n", | |
" background-color: #3B4455;\n", | |
" fill: #D2E3FC;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert:hover {\n", | |
" background-color: #434B5C;\n", | |
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n", | |
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n", | |
" fill: #FFFFFF;\n", | |
" }\n", | |
" </style>\n", | |
"\n", | |
" <script>\n", | |
" const buttonEl =\n", | |
" document.querySelector('#df-df871223-0bd3-40db-9b09-7715c245086f button.colab-df-convert');\n", | |
" buttonEl.style.display =\n", | |
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n", | |
"\n", | |
" async function convertToInteractive(key) {\n", | |
" const element = document.querySelector('#df-df871223-0bd3-40db-9b09-7715c245086f');\n", | |
" const dataTable =\n", | |
" await google.colab.kernel.invokeFunction('convertToInteractive',\n", | |
" [key], {});\n", | |
" if (!dataTable) return;\n", | |
"\n", | |
" const docLinkHtml = 'Like what you see? Visit the ' +\n", | |
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n", | |
" + ' to learn more about interactive tables.';\n", | |
" element.innerHTML = '';\n", | |
" dataTable['output_type'] = 'display_data';\n", | |
" await google.colab.output.renderOutput(dataTable, element);\n", | |
" const docLink = document.createElement('div');\n", | |
" docLink.innerHTML = docLinkHtml;\n", | |
" element.appendChild(docLink);\n", | |
" }\n", | |
" </script>\n", | |
" </div>\n", | |
"\n", | |
" </div>\n", | |
" </div>\n" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 28 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"train_results2 = correct(rnet_model, rnet_data_module.train_dataloader())\n", | |
"train_results2 = train_results2.sum(axis=0)\n", | |
"print(f'The training set: our model got {train_results2[0]} out of {train_results2[1]} images correctly classified, an accuracy of {train_results2[0]/train_results2[1]:.2f}%!')\n", | |
"\n", | |
"val_results2 = correct(rnet_model, rnet_data_module.val_dataloader())\n", | |
"val_results2 = val_results2.sum(axis=0)\n", | |
"print(f'The validation set: our model got {val_results2[0]} out of {val_results2[1]} images correctly classified, an accuracy of {val_results2[0]/val_results2[1]:.2f}%!')\n" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "N6jNYYkzxkO8", | |
"outputId": "2561c69e-3c04-44e3-c9fd-cfe86f28993a" | |
}, | |
"execution_count": 29, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"The training set: our model got 2508 out of 2520 images correctly classified, an accuracy of 1.00%!\n", | |
"The validation set: our model got 316 out of 372 images correctly classified, an accuracy of 0.85%!\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"## DenseNET\n", | |
"aka the Densely Connected Convolutional Network" | |
], | |
"metadata": { | |
"id": "BnOaMN1gvXeZ" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"# import pretrained NN and print its structure\n", | |
"from torchvision.models import densenet201\n", | |
"\n", | |
"# dn = densenet201(pretrained=True)\n", | |
"dn = densenet201(weights='DEFAULT')" | |
], | |
"metadata": { | |
"id": "0lKFTINgkIG7" | |
}, | |
"execution_count": 53, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"print(dn)" | |
], | |
"metadata": { | |
"id": "NwATLv_8kIER", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "458bc625-094f-4ea4-c5a9-dc87f0584648" | |
}, | |
"execution_count": 54, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"DenseNet(\n", | |
" (features): Sequential(\n", | |
" (conv0): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)\n", | |
" (norm0): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu0): ReLU(inplace=True)\n", | |
" (pool0): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n", | |
" (denseblock1): _DenseBlock(\n", | |
" (denselayer1): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(64, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer2): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(96, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer3): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer4): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(160, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(160, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer5): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(192, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer6): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(224, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(224, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" )\n", | |
" (transition1): _Transition(\n", | |
" (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu): ReLU(inplace=True)\n", | |
" (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (pool): AvgPool2d(kernel_size=2, stride=2, padding=0)\n", | |
" )\n", | |
" (denseblock2): _DenseBlock(\n", | |
" (denselayer1): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer2): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(160, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(160, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer3): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(192, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer4): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(224, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(224, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer5): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer6): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(288, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(288, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer7): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(320, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(320, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer8): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(352, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(352, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer9): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(384, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer10): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(416, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(416, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer11): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(448, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(448, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer12): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(480, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(480, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" )\n", | |
" (transition2): _Transition(\n", | |
" (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu): ReLU(inplace=True)\n", | |
" (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (pool): AvgPool2d(kernel_size=2, stride=2, padding=0)\n", | |
" )\n", | |
" (denseblock3): _DenseBlock(\n", | |
" (denselayer1): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer2): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(288, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(288, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer3): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(320, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(320, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer4): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(352, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(352, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer5): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(384, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer6): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(416, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(416, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer7): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(448, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(448, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer8): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(480, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(480, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer9): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer10): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(544, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(544, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer11): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(576, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(576, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer12): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(608, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(608, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer13): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(640, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(640, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer14): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(672, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(672, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer15): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(704, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(704, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer16): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(736, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(736, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer17): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(768, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(768, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer18): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(800, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(800, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer19): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(832, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(832, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer20): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(864, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(864, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer21): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(896, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(896, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer22): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(928, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(928, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer23): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(960, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(960, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer24): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(992, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(992, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer25): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1024, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer26): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1056, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1056, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer27): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1088, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1088, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer28): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1120, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1120, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer29): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1152, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1152, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer30): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1184, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1184, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer31): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1216, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1216, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer32): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1248, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1248, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer33): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1280, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1280, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer34): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1312, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1312, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer35): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1344, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1344, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer36): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1376, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1376, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer37): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1408, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1408, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer38): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1440, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1440, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer39): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1472, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1472, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer40): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1504, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1504, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer41): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1536, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1536, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer42): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1568, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1568, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer43): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1600, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1600, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer44): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1632, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1632, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer45): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1664, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1664, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer46): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1696, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1696, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer47): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1728, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer48): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1760, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1760, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" )\n", | |
" (transition3): _Transition(\n", | |
" (norm): BatchNorm2d(1792, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu): ReLU(inplace=True)\n", | |
" (conv): Conv2d(1792, 896, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (pool): AvgPool2d(kernel_size=2, stride=2, padding=0)\n", | |
" )\n", | |
" (denseblock4): _DenseBlock(\n", | |
" (denselayer1): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(896, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(896, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer2): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(928, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(928, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer3): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(960, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(960, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer4): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(992, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(992, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer5): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1024, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer6): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1056, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1056, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer7): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1088, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1088, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer8): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1120, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1120, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer9): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1152, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1152, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer10): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1184, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1184, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer11): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1216, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1216, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer12): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1248, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1248, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer13): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1280, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1280, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer14): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1312, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1312, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer15): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1344, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1344, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer16): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1376, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1376, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer17): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1408, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1408, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer18): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1440, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1440, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer19): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1472, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1472, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer20): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1504, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1504, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer21): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1536, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1536, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer22): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1568, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1568, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer23): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1600, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1600, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer24): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1632, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1632, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer25): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1664, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1664, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer26): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1696, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1696, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer27): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1728, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1728, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer28): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1760, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1760, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer29): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1792, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1792, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer30): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1824, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1824, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer31): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1856, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1856, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" (denselayer32): _DenseLayer(\n", | |
" (norm1): BatchNorm2d(1888, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu1): ReLU(inplace=True)\n", | |
" (conv1): Conv2d(1888, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n", | |
" (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" (relu2): ReLU(inplace=True)\n", | |
" (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n", | |
" )\n", | |
" )\n", | |
" (norm5): BatchNorm2d(1920, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", | |
" )\n", | |
" (classifier): Linear(in_features=1920, out_features=1000, bias=True)\n", | |
")\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"print(dn.classifier)\n", | |
"dn.classifier = nn.Linear(in_features=1920, out_features=3)\n", | |
"print(dn.classifier)" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "ixP601UO-Bu0", | |
"outputId": "21e36545-4a31-4b2b-83be-66d1aa246aca" | |
}, | |
"execution_count": 58, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"Linear(in_features=1920, out_features=1000, bias=True)\n", | |
"Linear(in_features=1920, out_features=3, bias=True)\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"class dnDataModule(pl.LightningDataModule):\n", | |
" def __init__(self, batch_size=16):\n", | |
" super().__init__()\n", | |
" self.batch_size = batch_size\n", | |
" self.train_dir = 'rps'\n", | |
" self.test_dir = 'rps-test-set'\n", | |
" self.composer = None\n", | |
"\n", | |
" def setup(self, stage=None):\n", | |
" # Define the normalization values (based on the original Alexnet paper)\n", | |
" norm_mean = [0.485, 0.456, 0.406]\n", | |
" norm_std = [0.229, 0.224, 0.225]\n", | |
"\n", | |
" # Build the transformation and datasets\n", | |
" self.composer = torchvision.transforms.Compose([\n", | |
" torchvision.transforms.Resize(256),\n", | |
" torchvision.transforms.CenterCrop(224),\n", | |
" torchvision.transforms.ToTensor(),\n", | |
" torchvision.transforms.Normalize(mean=norm_mean, std=norm_std)\n", | |
" ])\n", | |
"\n", | |
" self.train_data = ImageFolder(root=self.train_dir, transform=self.composer)\n", | |
" self.val_data = ImageFolder(root=self.test_dir, transform=self.composer)\n", | |
"\n", | |
" def train_dataloader(self):\n", | |
" return DataLoader(self.train_data, batch_size=self.batch_size, shuffle=True, num_workers=2)\n", | |
"\n", | |
" def val_dataloader(self):\n", | |
" return DataLoader(self.val_data, batch_size=self.batch_size, num_workers=2)" | |
], | |
"metadata": { | |
"id": "ZGAliMzi-BOm" | |
}, | |
"execution_count": 59, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"class dnModel(pl.LightningModule):\n", | |
" def __init__(self):\n", | |
" super().__init__()\n", | |
"\n", | |
" # Load the pretrained AlexNet model and replace the classifier\n", | |
" dn = densenet201(weights='DEFAULT')\n", | |
"\n", | |
" # Freeze the parameters of the pretrained model\n", | |
" freeze_model(dn)\n", | |
"\n", | |
" # Replace the last fully connected layer for the new classification task\n", | |
" dn.classifier = nn.Linear(in_features=1920, out_features=3)\n", | |
"\n", | |
" # Assign the modified AlexNet to self.model\n", | |
" self.model = dn\n", | |
"\n", | |
" # Loss function for the new classifier\n", | |
" self.loss_fn = nn.CrossEntropyLoss()\n", | |
"\n", | |
" def forward(self, x):\n", | |
" return self.model(x)\n", | |
"\n", | |
" def training_step(self, batch, batch_idx):\n", | |
" x, y = batch\n", | |
" y_hat = self(x)\n", | |
" loss = self.loss_fn(y_hat, y)\n", | |
" self.log('train_loss', loss, on_step=True, on_epoch=True, prog_bar=True, logger=True)\n", | |
" return loss\n", | |
"\n", | |
" def validation_step(self, batch, batch_idx):\n", | |
" x, y = batch\n", | |
" y_hat = self(x)\n", | |
" loss = self.loss_fn(y_hat, y)\n", | |
" self.log('val_loss', loss, on_step=True, on_epoch=True, prog_bar=True, logger=True)\n", | |
" return loss\n", | |
"\n", | |
" def configure_optimizers(self):\n", | |
" return torch.optim.SGD(self.parameters(), lr=1e-3, momentum=0.9, nesterov=True)" | |
], | |
"metadata": { | |
"id": "VA4kOKBF-AvK" | |
}, | |
"execution_count": 60, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"# Initialize the model and data module\n", | |
"dn_model = dnModel()\n", | |
"dn_data_module = dnDataModule()\n", | |
"\n", | |
"# Get the number of available GPUs, else use CPU\n", | |
"ngpus = torch.cuda.device_count() if torch.cuda.is_available() else 1\n", | |
"\n", | |
"logger = CSVLogger(\"logs\", name=\"DenseNET_RockPaperScissors\")\n", | |
"\n", | |
"# Train and Validate the model\n", | |
"trainer = pl.Trainer(logger=CSVLogger(\"logs\", name=\"DenseNET_RockPaperScissors\"), devices=ngpus, accelerator=\"gpu\" if ngpus > 0 else None, max_epochs=1)\n", | |
"trainer.fit(dn_model, dn_data_module)" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 669, | |
"referenced_widgets": [ | |
"b7024be89aa74d3d8e849a52471f22ee", | |
"af4bfa14bb8a4465aec6ebcee9e76bd1", | |
"6844ced94b3e4f019333cef5d768ee73", | |
"7b3bd38ca9e14169adbf8b478dc608c1", | |
"c04e04870a334a7aa73e0c3cccd0b19d", | |
"9304e5c194564240b11fc288dec8e884", | |
"a320531a9fb64f549b8c603bb44d66ad", | |
"0b1472b69f024fd0855f8f4f8b8cb36a", | |
"746c0bb6700c4fa2aa008a87fe4cebd5", | |
"8bf40833ae654b4f968e0fd94a07f029", | |
"88ff249828da490b9b639f89a83d17dc", | |
"9c6e12409612454789e46a358034e786", | |
"56cc2d41c34f4bab86c13e96bc1f83a4", | |
"8b78a45329d245f09c3c3d181aeded51", | |
"f7d9a1d399e642a9b83e54a33b8e89f5", | |
"b4a6eac3ca914a3c9001d7032f40a992", | |
"1532d5de85d841fabf1aa90a2c8e8eed", | |
"f7bd64a035194680b0ecbc486f4556a4", | |
"e7a7cf75f18c4a34bfe0558f33b42731", | |
"e7f0ec7a661c4bda98345d4f96ced559", | |
"ebdad37c6a264ba2a6f22bb1a9d0753a", | |
"e2dac6bd39e949dab147e03939ecf27f", | |
"8165d7a2172a4661b936d767be42bc41", | |
"3f506cb689ce490fbcf0ffe136f20092", | |
"2eca112706e14123a49c8c0a2d258245", | |
"3e23c453c3aa47a6acd654cc717f6ecd", | |
"65882fb6149a461f966e89e083773672", | |
"494458ef340a4cbd80d21d78c0f96c04", | |
"106bdbf783be42ba81059b0e402e46b9", | |
"c6875be82e544c3fb5af949b484a1c86", | |
"4cc5fed3e3df44f39ba89751425ce66e", | |
"ab254e6fae604a3fb2ef38f6e2307d21", | |
"3bb02b54eed5479b9c798fbe6d7544e1" | |
] | |
}, | |
"id": "FBauwOUp-AQn", | |
"outputId": "4494a258-e73a-4f3f-8092-1fdd8df27053" | |
}, | |
"execution_count": 61, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stderr", | |
"text": [ | |
"INFO: GPU available: True (cuda), used: True\n", | |
"INFO:lightning.pytorch.utilities.rank_zero:GPU available: True (cuda), used: True\n", | |
"INFO: TPU available: False, using: 0 TPU cores\n", | |
"INFO:lightning.pytorch.utilities.rank_zero:TPU available: False, using: 0 TPU cores\n", | |
"INFO: IPU available: False, using: 0 IPUs\n", | |
"INFO:lightning.pytorch.utilities.rank_zero:IPU available: False, using: 0 IPUs\n", | |
"INFO: HPU available: False, using: 0 HPUs\n", | |
"INFO:lightning.pytorch.utilities.rank_zero:HPU available: False, using: 0 HPUs\n", | |
"WARNING: Missing logger folder: logs/DenseNET_RockPaperScissors\n", | |
"WARNING:lightning.fabric.loggers.csv_logs:Missing logger folder: logs/DenseNET_RockPaperScissors\n", | |
"INFO: LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]\n", | |
"INFO:lightning.pytorch.accelerators.cuda:LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]\n", | |
"INFO: \n", | |
" | Name | Type | Params\n", | |
"---------------------------------------------\n", | |
"0 | model | DenseNet | 18.1 M\n", | |
"1 | loss_fn | CrossEntropyLoss | 0 \n", | |
"---------------------------------------------\n", | |
"5.8 K Trainable params\n", | |
"18.1 M Non-trainable params\n", | |
"18.1 M Total params\n", | |
"72.395 Total estimated model params size (MB)\n", | |
"INFO:lightning.pytorch.callbacks.model_summary:\n", | |
" | Name | Type | Params\n", | |
"---------------------------------------------\n", | |
"0 | model | DenseNet | 18.1 M\n", | |
"1 | loss_fn | CrossEntropyLoss | 0 \n", | |
"---------------------------------------------\n", | |
"5.8 K Trainable params\n", | |
"18.1 M Non-trainable params\n", | |
"18.1 M Total params\n", | |
"72.395 Total estimated model params size (MB)\n" | |
] | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"Sanity Checking: | | 0/? [00:00<?, ?it/s]" | |
], | |
"application/vnd.jupyter.widget-view+json": { | |
"version_major": 2, | |
"version_minor": 0, | |
"model_id": "b7024be89aa74d3d8e849a52471f22ee" | |
} | |
}, | |
"metadata": {} | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"Training: | | 0/? [00:00<?, ?it/s]" | |
], | |
"application/vnd.jupyter.widget-view+json": { | |
"version_major": 2, | |
"version_minor": 0, | |
"model_id": "9c6e12409612454789e46a358034e786" | |
} | |
}, | |
"metadata": {} | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"Validation: | | 0/? [00:00<?, ?it/s]" | |
], | |
"application/vnd.jupyter.widget-view+json": { | |
"version_major": 2, | |
"version_minor": 0, | |
"model_id": "8165d7a2172a4661b936d767be42bc41" | |
} | |
}, | |
"metadata": {} | |
}, | |
{ | |
"output_type": "stream", | |
"name": "stderr", | |
"text": [ | |
"INFO: `Trainer.fit` stopped: `max_epochs=1` reached.\n", | |
"INFO:lightning.pytorch.utilities.rank_zero:`Trainer.fit` stopped: `max_epochs=1` reached.\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"log_dir = 'version_0'\n", | |
"\n", | |
"log_file = f'/content/logs/DenseNET_RockPaperScissors/{log_dir}/metrics.csv'\n", | |
"df = pd.read_csv(log_file)\n", | |
"df_grouped = df.groupby('epoch').first().reset_index()\n", | |
"df_grouped" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 81 | |
}, | |
"id": "-hADKUnK9_yj", | |
"outputId": "a81a7440-ac5c-4851-950e-87877465e794" | |
}, | |
"execution_count": 62, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
" epoch train_loss_step step val_loss_step val_loss_epoch \\\n", | |
"0 0.0 0.399444 49 NaN 0.51433 \n", | |
"\n", | |
" train_loss_epoch \n", | |
"0 0.404125 " | |
], | |
"text/html": [ | |
"\n", | |
" <div id=\"df-3f7a65b9-3088-4f2d-b4f0-23759e18b8f6\" class=\"colab-df-container\">\n", | |
" <div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>epoch</th>\n", | |
" <th>train_loss_step</th>\n", | |
" <th>step</th>\n", | |
" <th>val_loss_step</th>\n", | |
" <th>val_loss_epoch</th>\n", | |
" <th>train_loss_epoch</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>0.0</td>\n", | |
" <td>0.399444</td>\n", | |
" <td>49</td>\n", | |
" <td>NaN</td>\n", | |
" <td>0.51433</td>\n", | |
" <td>0.404125</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>\n", | |
" <div class=\"colab-df-buttons\">\n", | |
"\n", | |
" <div class=\"colab-df-container\">\n", | |
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-3f7a65b9-3088-4f2d-b4f0-23759e18b8f6')\"\n", | |
" title=\"Convert this dataframe to an interactive table.\"\n", | |
" style=\"display:none;\">\n", | |
"\n", | |
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n", | |
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n", | |
" </svg>\n", | |
" </button>\n", | |
"\n", | |
" <style>\n", | |
" .colab-df-container {\n", | |
" display:flex;\n", | |
" gap: 12px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert {\n", | |
" background-color: #E8F0FE;\n", | |
" border: none;\n", | |
" border-radius: 50%;\n", | |
" cursor: pointer;\n", | |
" display: none;\n", | |
" fill: #1967D2;\n", | |
" height: 32px;\n", | |
" padding: 0 0 0 0;\n", | |
" width: 32px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert:hover {\n", | |
" background-color: #E2EBFA;\n", | |
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n", | |
" fill: #174EA6;\n", | |
" }\n", | |
"\n", | |
" .colab-df-buttons div {\n", | |
" margin-bottom: 4px;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert {\n", | |
" background-color: #3B4455;\n", | |
" fill: #D2E3FC;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert:hover {\n", | |
" background-color: #434B5C;\n", | |
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n", | |
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n", | |
" fill: #FFFFFF;\n", | |
" }\n", | |
" </style>\n", | |
"\n", | |
" <script>\n", | |
" const buttonEl =\n", | |
" document.querySelector('#df-3f7a65b9-3088-4f2d-b4f0-23759e18b8f6 button.colab-df-convert');\n", | |
" buttonEl.style.display =\n", | |
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n", | |
"\n", | |
" async function convertToInteractive(key) {\n", | |
" const element = document.querySelector('#df-3f7a65b9-3088-4f2d-b4f0-23759e18b8f6');\n", | |
" const dataTable =\n", | |
" await google.colab.kernel.invokeFunction('convertToInteractive',\n", | |
" [key], {});\n", | |
" if (!dataTable) return;\n", | |
"\n", | |
" const docLinkHtml = 'Like what you see? Visit the ' +\n", | |
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n", | |
" + ' to learn more about interactive tables.';\n", | |
" element.innerHTML = '';\n", | |
" dataTable['output_type'] = 'display_data';\n", | |
" await google.colab.output.renderOutput(dataTable, element);\n", | |
" const docLink = document.createElement('div');\n", | |
" docLink.innerHTML = docLinkHtml;\n", | |
" element.appendChild(docLink);\n", | |
" }\n", | |
" </script>\n", | |
" </div>\n", | |
"\n", | |
" </div>\n", | |
" </div>\n" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 62 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"train_results3 = correct(dn_model, dn_data_module.train_dataloader())\n", | |
"train_results3 = train_results3.sum(axis=0)\n", | |
"print(f'The training set: our model got {train_results3[0]} out of {train_results3[1]} images correctly classified, an accuracy of {train_results3[0]/train_results3[1]:.2f}%!')\n", | |
"\n", | |
"val_results3 = correct(dn_model, dn_data_module.val_dataloader())\n", | |
"val_results3 = val_results3.sum(axis=0)\n", | |
"print(f'The validation set: our model got {val_results3[0]} out of {val_results3[1]} images correctly classified, an accuracy of {val_results3[0]/val_results3[1]:.2f}%!')\n" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "IM5ewMpx9_VR", | |
"outputId": "299511b0-46ff-4eec-af9c-624201612f27" | |
}, | |
"execution_count": 63, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"The training set: our model got 2518 out of 2520 images correctly classified, an accuracy of 1.00%!\n", | |
"The validation set: our model got 296 out of 372 images correctly classified, an accuracy of 0.80%!\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [], | |
"metadata": { | |
"id": "XMxJ4Neb9-5I" | |
}, | |
"execution_count": 60, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"..." | |
], | |
"metadata": { | |
"id": "fjGIAe2W9-eI" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [], | |
"metadata": { | |
"id": "QTt9NlWP9-Dm" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [], | |
"metadata": { | |
"id": "tJACjrdK99qO" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [], | |
"metadata": { | |
"id": "63v58DKX99RQ" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [], | |
"metadata": { | |
"id": "mSrNGWw0985H" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [], | |
"metadata": { | |
"id": "k2sRmbqW98hp" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [], | |
"metadata": { | |
"id": "XxC0vf1p98K3" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [], | |
"metadata": { | |
"id": "S--ZFtJB970x" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [], | |
"metadata": { | |
"id": "PgYzbuLC97ej" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [], | |
"metadata": { | |
"id": "gcLgJ_e897Gr" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [], | |
"metadata": { | |
"id": "CX9bzI4E96wX" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [], | |
"metadata": { | |
"id": "1c6iINTo96dN" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [], | |
"metadata": { | |
"id": "xPkm4nt-96KQ" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [], | |
"metadata": { | |
"id": "v3pCoOUq954Q" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [], | |
"metadata": { | |
"id": "e5tn42fS95nA" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [], | |
"metadata": { | |
"id": "K1rnkKrk95WX" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [], | |
"metadata": { | |
"id": "BXa4PAMJ95GH" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [], | |
"metadata": { | |
"id": "XRQt2NCV942I" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [], | |
"metadata": { | |
"id": "5QwOaC3nkIBS" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment