{"metadata":{"colab":{"provenance":[],"gpuType":"T4"},"kernelspec":{"name":"python3","display_name":"Python 3","language":"python"},"language_info":{"name":"python","version":"3.10.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"accelerator":"GPU","widgets":{"application/vnd.jupyter.widget-state+json":{"92b517f37a204d39974754c1dd21e950":{"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_e7ab7a29ec764229a640fabc62f730c9","IPY_MODEL_b05ec0b84c0344459cf3cce8b523b6db","IPY_MODEL_f379121be4874922879ccb2152feea57"],"layout":"IPY_MODEL_69eee0e8dff04a67a3b10cd643680582"}},"e7ab7a29ec764229a640fabc62f730c9":{"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_f872f114d86642b1a3883ac0fa9fcfbc","placeholder":"​","style":"IPY_MODEL_4223c2aec2754349ab7c5f0c6ad414bb","value":"model.safetensors: 100%"}},"b05ec0b84c0344459cf3cce8b523b6db":{"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_959bf9ba95c04423923dabc647488d81","max":102469840,"min":0,"orientation":"horizontal","style":"IPY_MODEL_0794528c41fd489baa3c27ad2aaef07e","value":102469840}},"f379121be4874922879ccb2152feea57":{"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_ca0695212b174eea9c7b80476c14b058","placeholder":"​","style":"IPY_MODEL_e770d49097414bf9bbb35b4943849843","value":" 102M/102M [00:00&lt;00:00, 183MB/s]"}},"69eee0e8dff04a67a3b10cd643680582":{"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}},"f872f114d86642b1a3883ac0fa9fcfbc":{"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}},"4223c2aec2754349ab7c5f0c6ad414bb":{"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":""}},"959bf9ba95c04423923dabc647488d81":{"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}},"0794528c41fd489baa3c27ad2aaef07e":{"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":""}},"ca0695212b174eea9c7b80476c14b058":{"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}},"e770d49097414bf9bbb35b4943849843":{"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":""}},"bf0187cc3620493f9ac93093c516ebd3":{"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_627668c9bc654aa0b2006a57a3220ed4","IPY_MODEL_53d2d642836e454d8ac1991f4d15bac6","IPY_MODEL_5f20786589c542febb20de1643f10b03"],"layout":"IPY_MODEL_cf1f738980e649aa9b2351d8c1d3d59d"}},"627668c9bc654aa0b2006a57a3220ed4":{"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_64be7174d0bd424586841834c6ff7161","placeholder":"​","style":"IPY_MODEL_64112fb5b11b443eb2b1b141476e6993","value":"Sanity Checking DataLoader 0: 100%"}},"53d2d642836e454d8ac1991f4d15bac6":{"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_f3ec5f4f9ea04f9ca02aedefb31f1838","max":2,"min":0,"orientation":"horizontal","style":"IPY_MODEL_ae779c5afe7e499daa01f7192a759e41","value":2}},"5f20786589c542febb20de1643f10b03":{"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_6e39c3cccb12405d8405c8449b3afd0f","placeholder":"​","style":"IPY_MODEL_855106b9ca7a435a9b0362fc18b61dd4","value":" 2/2 [00:00&lt;00:00,  7.96it/s]"}},"cf1f738980e649aa9b2351d8c1d3d59d":{"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%"}},"64be7174d0bd424586841834c6ff7161":{"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}},"64112fb5b11b443eb2b1b141476e6993":{"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":""}},"f3ec5f4f9ea04f9ca02aedefb31f1838":{"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}},"ae779c5afe7e499daa01f7192a759e41":{"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":""}},"6e39c3cccb12405d8405c8449b3afd0f":{"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}},"855106b9ca7a435a9b0362fc18b61dd4":{"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":""}},"e9bee7939ad846b8a684f3c07721eea4":{"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_d30bbcdc24d74c2fb9fe74e5c4ff842b","IPY_MODEL_a1602842dd2348e28ccc0bacb12ce14e","IPY_MODEL_11315f7026b24a4db840f4667e3da8d8"],"layout":"IPY_MODEL_62b57b92476440fca6c3e3fd907fd1a5"}},"d30bbcdc24d74c2fb9fe74e5c4ff842b":{"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_5734a346723a45c5ace07fda36d7183d","placeholder":"​","style":"IPY_MODEL_71c9a50f936e4291a227390273e28ab4","value":"Epoch 1: 100%"}},"a1602842dd2348e28ccc0bacb12ce14e":{"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_63d9b226217a4c609fe090994a055be1","max":657,"min":0,"orientation":"horizontal","style":"IPY_MODEL_e2ceedc6251d4cc6814893f01860ec78","value":657}},"11315f7026b24a4db840f4667e3da8d8":{"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_dab6976929534ed89393109d20ec0eb3","placeholder":"​","style":"IPY_MODEL_33486265d122400a93e4537658de2ad5","value":" 657/657 [01:24&lt;00:00,  7.75it/s, v_num=2]"}},"62b57b92476440fca6c3e3fd907fd1a5":{"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%"}},"5734a346723a45c5ace07fda36d7183d":{"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}},"71c9a50f936e4291a227390273e28ab4":{"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":""}},"63d9b226217a4c609fe090994a055be1":{"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}},"e2ceedc6251d4cc6814893f01860ec78":{"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":""}},"dab6976929534ed89393109d20ec0eb3":{"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}},"33486265d122400a93e4537658de2ad5":{"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":""}},"e05b1bfb5c724009bedd22dbba8de0bd":{"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_80277236b5ab490e870b41759cefc1f2","IPY_MODEL_c8c70d0e3ca4407da1a8ebc6e9dc0465","IPY_MODEL_b6b867bebbea45da9aa22ab9f1059587"],"layout":"IPY_MODEL_f3765e11e8e7444f852c590c4f8ed651"}},"80277236b5ab490e870b41759cefc1f2":{"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_56215116cf0f4250875c7184919be87f","placeholder":"​","style":"IPY_MODEL_aa9a8cbe8aff40998bb0dd2d8517b444","value":"Validation DataLoader 0: 100%"}},"c8c70d0e3ca4407da1a8ebc6e9dc0465":{"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_9d7eff4f83114c7eb5fc2dc236bb282f","max":282,"min":0,"orientation":"horizontal","style":"IPY_MODEL_22278aaa33fa4b1c87ad423195b59ce1","value":282}},"b6b867bebbea45da9aa22ab9f1059587":{"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_576f5fa2067f441ea1d65e1b5f33b1b6","placeholder":"​","style":"IPY_MODEL_ee07b3e1309244a5bd32ba683a835f2a","value":" 282/282 [00:21&lt;00:00, 13.06it/s]"}},"f3765e11e8e7444f852c590c4f8ed651":{"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%"}},"56215116cf0f4250875c7184919be87f":{"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}},"aa9a8cbe8aff40998bb0dd2d8517b444":{"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":""}},"9d7eff4f83114c7eb5fc2dc236bb282f":{"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}},"22278aaa33fa4b1c87ad423195b59ce1":{"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":""}},"576f5fa2067f441ea1d65e1b5f33b1b6":{"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}},"ee07b3e1309244a5bd32ba683a835f2a":{"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":""}},"af7c34f0ec7344038497f04ff4adddf7":{"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_dbceec8cf5b945a68c6dbc37a40411c3","IPY_MODEL_520c234de8614589ac2b5ca464c5bbd6","IPY_MODEL_8a7d8f45c55143e2b7fab1ab3f41e3e1"],"layout":"IPY_MODEL_23fda2fb894b4c1eaec25fd9e94a93e2"}},"dbceec8cf5b945a68c6dbc37a40411c3":{"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_f7e262f54a9c44a1a7b72cfdfc9ddd67","placeholder":"​","style":"IPY_MODEL_b877344147504ec1ace5886b22fbeda3","value":"Validation DataLoader 0: 100%"}},"520c234de8614589ac2b5ca464c5bbd6":{"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_078cadbf9e61470b87bbd78632c2dc50","max":282,"min":0,"orientation":"horizontal","style":"IPY_MODEL_2b1899caeed6454aa2728db5364a4bfb","value":282}},"8a7d8f45c55143e2b7fab1ab3f41e3e1":{"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_8d297f5d99f049089224dab5d3a6176a","placeholder":"​","style":"IPY_MODEL_4d138815c3e24c9fb4fc04bee4eced52","value":" 282/282 [00:22&lt;00:00, 12.75it/s]"}},"23fda2fb894b4c1eaec25fd9e94a93e2":{"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%"}},"f7e262f54a9c44a1a7b72cfdfc9ddd67":{"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}},"b877344147504ec1ace5886b22fbeda3":{"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":""}},"078cadbf9e61470b87bbd78632c2dc50":{"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}},"2b1899caeed6454aa2728db5364a4bfb":{"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":""}},"8d297f5d99f049089224dab5d3a6176a":{"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}},"4d138815c3e24c9fb4fc04bee4eced52":{"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":""}},"ec58e27449054b349175ae4021b2a92b":{"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_7d58b3aff33c485a8b7aa6580c3d3aba","IPY_MODEL_465b29cfe8334b4c985edd3a29118681","IPY_MODEL_43d83952655f4f55b848b4c341b9dc63"],"layout":"IPY_MODEL_a0335df5f10e449390b29c296a23cc91"}},"7d58b3aff33c485a8b7aa6580c3d3aba":{"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_46ee0b5a674a40d6a041cf3f224843d5","placeholder":"​","style":"IPY_MODEL_538a780a5d9d4340a6f51150f2aec928","value":"Sanity Checking DataLoader 0: 100%"}},"465b29cfe8334b4c985edd3a29118681":{"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_0e54f07db0ff4f1c9d5abf2a79cc4099","max":2,"min":0,"orientation":"horizontal","style":"IPY_MODEL_44f29d32610c4856b13a137de64e7844","value":2}},"43d83952655f4f55b848b4c341b9dc63":{"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_d262d170ffc14b8ba58663e42d71ebd7","placeholder":"​","style":"IPY_MODEL_16b2a02321f54909b1f16092fd3ac2ab","value":" 2/2 [00:00&lt;00:00, 23.45it/s]"}},"a0335df5f10e449390b29c296a23cc91":{"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%"}},"46ee0b5a674a40d6a041cf3f224843d5":{"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}},"538a780a5d9d4340a6f51150f2aec928":{"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":""}},"0e54f07db0ff4f1c9d5abf2a79cc4099":{"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}},"44f29d32610c4856b13a137de64e7844":{"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":""}},"d262d170ffc14b8ba58663e42d71ebd7":{"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}},"16b2a02321f54909b1f16092fd3ac2ab":{"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":""}},"d43da46211284ac182de688ce6077aff":{"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_b9ab1a48652448368b9074da24d24d4a","IPY_MODEL_d75d8fb8957944bcb2c0898c00d1c96a","IPY_MODEL_a16743f4e50d4340bc62b864323b093d"],"layout":"IPY_MODEL_f5d2a66b0775456a8b5abe000d26b851"}},"b9ab1a48652448368b9074da24d24d4a":{"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_ce77638ae1a84515b5e01a55950cc436","placeholder":"​","style":"IPY_MODEL_a5803ad583274789a9e8a819b0659d97","value":"Epoch 0: 100%"}},"d75d8fb8957944bcb2c0898c00d1c96a":{"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_147c5fae7c7345ba99ca456157878cb1","max":657,"min":0,"orientation":"horizontal","style":"IPY_MODEL_380730e9b0ca4c35816b4183c0df4df0","value":657}},"a16743f4e50d4340bc62b864323b093d":{"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_f36fc7faa4b24da38f980f27992c8b42","placeholder":"​","style":"IPY_MODEL_7c0057912f0a4986bd3ac0125a531cb5","value":" 657/657 [00:49&lt;00:00, 13.38it/s, v_num=7, valid_loss=0.247, valid_accuracy=0.970, valid_f1_score=0.970, train_loss=0.849, train_accuracy=0.929, train_f1_score=0.929]"}},"f5d2a66b0775456a8b5abe000d26b851":{"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%"}},"ce77638ae1a84515b5e01a55950cc436":{"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}},"a5803ad583274789a9e8a819b0659d97":{"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":""}},"147c5fae7c7345ba99ca456157878cb1":{"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}},"380730e9b0ca4c35816b4183c0df4df0":{"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":""}},"f36fc7faa4b24da38f980f27992c8b42":{"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}},"7c0057912f0a4986bd3ac0125a531cb5":{"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":""}},"8a1a14abcec544ffb64e055542c702ed":{"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_2da91effab4a448489a4e0116f5ad175","IPY_MODEL_87b949c9d2d94de08000866a51351474","IPY_MODEL_527fb3b075d446b7bf0b455e80091622"],"layout":"IPY_MODEL_461dd45f080b4017a33995bbfa52fc3b"}},"2da91effab4a448489a4e0116f5ad175":{"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_452352181e77442b8cc7b7686ce0216e","placeholder":"​","style":"IPY_MODEL_b925d68766f04bf3b95203a524377f2c","value":"Validation DataLoader 0: 100%"}},"87b949c9d2d94de08000866a51351474":{"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_7989bb36bfa2426ab74640029eb8ceda","max":282,"min":0,"orientation":"horizontal","style":"IPY_MODEL_dca258d8783b4f4d95805f552537a6ec","value":282}},"527fb3b075d446b7bf0b455e80091622":{"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_bfea56db65714dc68dd4119d5817bfd6","placeholder":"​","style":"IPY_MODEL_2384c0d83471468583367417ef75ce3c","value":" 282/282 [00:13&lt;00:00, 21.01it/s]"}},"461dd45f080b4017a33995bbfa52fc3b":{"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%"}},"452352181e77442b8cc7b7686ce0216e":{"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}},"b925d68766f04bf3b95203a524377f2c":{"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":""}},"7989bb36bfa2426ab74640029eb8ceda":{"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}},"dca258d8783b4f4d95805f552537a6ec":{"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":""}},"bfea56db65714dc68dd4119d5817bfd6":{"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}},"2384c0d83471468583367417ef75ce3c":{"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":""}},"59dc50944e054da1bf6016635e9a3313":{"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_d544af9ab60248b4be1a8edf96750fd6","IPY_MODEL_a9fd674d7eac4c94936b7289a4afc2c0","IPY_MODEL_284b53bd3a634d50a985dde8a4d059bd"],"layout":"IPY_MODEL_2ba458840a054a4295d1d1f945b2212f"}},"d544af9ab60248b4be1a8edf96750fd6":{"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_849225c5fc854d6db075027851b24cb0","placeholder":"​","style":"IPY_MODEL_a73cb23bb0524f74b0bbaf2845712494","value":"Validation DataLoader 0: 100%"}},"a9fd674d7eac4c94936b7289a4afc2c0":{"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_84c000955330463aaa2303667d7fd05d","max":282,"min":0,"orientation":"horizontal","style":"IPY_MODEL_155e40e109074dd589e44667650b6179","value":282}},"284b53bd3a634d50a985dde8a4d059bd":{"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_87a4548a8e964ccfb2a721ca1ed60a37","placeholder":"​","style":"IPY_MODEL_0e5ff5e6bd2a404f83fa76470617438c","value":" 282/282 [00:12&lt;00:00, 22.25it/s]"}},"2ba458840a054a4295d1d1f945b2212f":{"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%"}},"849225c5fc854d6db075027851b24cb0":{"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}},"a73cb23bb0524f74b0bbaf2845712494":{"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":""}},"84c000955330463aaa2303667d7fd05d":{"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}},"155e40e109074dd589e44667650b6179":{"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":""}},"87a4548a8e964ccfb2a721ca1ed60a37":{"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}},"0e5ff5e6bd2a404f83fa76470617438c":{"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":""}},"b743043c4745476dbd214570426fe2e9":{"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_464cc3f6187647a9af74f65a931dca2d","IPY_MODEL_495618d1eb02418792b3faa664654614","IPY_MODEL_1bdc892e0c2543c48c021f6ad8b1df33"],"layout":"IPY_MODEL_9f4ff9726a68437b909460c8d651afde"}},"464cc3f6187647a9af74f65a931dca2d":{"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_771ca12b12dc498cb9ecd1a632da67f5","placeholder":"​","style":"IPY_MODEL_65dc0a406e474e118d5178360eee1317","value":"Testing DataLoader 0: 100%"}},"495618d1eb02418792b3faa664654614":{"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_cd235774ff084755aab5634b6be86233","max":157,"min":0,"orientation":"horizontal","style":"IPY_MODEL_b00901ffb4e544858c5c62228a035141","value":157}},"1bdc892e0c2543c48c021f6ad8b1df33":{"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_b8f83e153f3448db8464081dca8da537","placeholder":"​","style":"IPY_MODEL_ca7669d7035e432a96db50485ed6722d","value":" 157/157 [00:03&lt;00:00, 44.32it/s]"}},"9f4ff9726a68437b909460c8d651afde":{"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%"}},"771ca12b12dc498cb9ecd1a632da67f5":{"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}},"65dc0a406e474e118d5178360eee1317":{"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":""}},"cd235774ff084755aab5634b6be86233":{"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}},"b00901ffb4e544858c5c62228a035141":{"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":""}},"b8f83e153f3448db8464081dca8da537":{"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}},"ca7669d7035e432a96db50485ed6722d":{"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":""}}}},"kaggle":{"accelerator":"nvidiaTeslaT4","dataSources":[{"sourceId":44224,"databundleVersionId":5188730,"sourceType":"competition"},{"sourceId":5148212,"sourceType":"datasetVersion","datasetId":2991134},{"sourceId":121796742,"sourceType":"kernelVersion"}],"dockerImageVersionId":30636,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# BIRDClef 2023 Training with Supervised Contrastive Learning and PyTorch Lightning\n\nWelcome to my Kaggle notebook! In this notebook, I'll take you through the process of training a model for the BIRDClef 2023 competition using supervised contrastive learning and PyTorch Lightning.\n\n## Notebook Overview\n\n- **Training Approach:** I am using supervised contrastive learning, a powerful technique that enhances the performance of models in classification tasks.\n- **Framework:** The training is implemented using PyTorch Lightning, which simplifies the training process and provides helpful abstractions.\n\n## How to Use This Notebook\n\nFeel free to explore the code, experiment with different hyperparameters, and adapt the model for your own use cases. If you find this notebook helpful, please consider upvoting it to show your support.\n\n**Notebook Credits:**\n- This notebook is based on the work of [\nNischay Dhankhar](https://www.kaggle.com/nischaydnk/) in their notebook https://www.kaggle.com/nischaydnk/code where I adapted and extended their code for the BIRDClef 2023 competition.\n\n\n## Upvote if Useful\n\nIf you find this notebook valuable or informative, please consider giving it an upvote. Your feedback and support are greatly appreciated!\n\nHappy coding!","metadata":{}},{"cell_type":"code","source":"!pip install timm\n!pip install pytorch-lightning","metadata":{"id":"qfinKp5Kaql2","outputId":"93e7d7fa-eb92-46cb-d7f2-e3a99714c31a","execution":{"iopub.status.busy":"2024-01-22T16:48:36.625550Z","iopub.execute_input":"2024-01-22T16:48:36.626042Z","iopub.status.idle":"2024-01-22T16:49:03.145574Z","shell.execute_reply.started":"2024-01-22T16:48:36.626016Z","shell.execute_reply":"2024-01-22T16:49:03.144418Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#Implementing Supervised Constrastive Learning using Pytorch Lightning with MNIST Dataset\n\n# Stage 1: Training the Enconder\n\n#import\nimport os\nimport torch\nimport torch.nn.functional as F\nfrom torchvision import datasets, transforms\nimport torchvision.transforms as transforms\nfrom torch import nn, optim\nfrom torch.utils.data import DataLoader\nfrom tqdm import tqdm\nfrom torch.utils.data import random_split\nimport pytorch_lightning as pl\nimport torchmetrics\nfrom torchmetrics import Metric\nimport timm\nimport torch.nn as nn\nimport pandas as pd\nimport numpy as np","metadata":{"id":"ZIf4Ot-JcgTF","execution":{"iopub.status.busy":"2024-01-22T16:49:03.147765Z","iopub.execute_input":"2024-01-22T16:49:03.148117Z","iopub.status.idle":"2024-01-22T16:49:11.499895Z","shell.execute_reply.started":"2024-01-22T16:49:03.148085Z","shell.execute_reply":"2024-01-22T16:49:11.499098Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"device = torch.device(\"cuda\" if torch.cuda.is_available() else 'cpu')\ndevice","metadata":{"execution":{"iopub.status.busy":"2024-01-22T16:49:11.501073Z","iopub.execute_input":"2024-01-22T16:49:11.501519Z","iopub.status.idle":"2024-01-22T16:49:11.531874Z","shell.execute_reply.started":"2024-01-22T16:49:11.501493Z","shell.execute_reply":"2024-01-22T16:49:11.531062Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"class Config:\n    use_aug = False\n    num_classes = 264\n    batch_size = 64\n    epochs = 12\n    PRECISION = 16    \n    PATIENCE = 8    \n    seed = 2023\n    model = \"tf_efficientnet_b0_ns\"\n    pretrained = True            \n    weight_decay = 1e-3\n    use_mixup = True\n    mixup_alpha = 0.2   \n    DEVICE = torch.device('cuda' if torch.cuda.is_available() else 'cpu')    \n\n    data_root = \"/kaggle/input/birdclef-2023/\"\n    train_images = \"/kaggle/input/split-creating-melspecs-stage-1/specs/train/\"\n    valid_images = \"/kaggle/input/split-creating-melspecs-stage-1/specs/valid/\"\n    train_path = \"/kaggle/input/bc2023-train-val-df/train.csv\"\n    valid_path = \"/kaggle/input/bc2023-train-val-df/valid.csv\"\n    \n    \n    SR = 32000\n    DURATION = 5\n    MAX_READ_SAMPLES = 5\n    LR = 5e-4","metadata":{"execution":{"iopub.status.busy":"2024-01-22T16:49:11.534075Z","iopub.execute_input":"2024-01-22T16:49:11.534389Z","iopub.status.idle":"2024-01-22T16:49:11.541366Z","shell.execute_reply.started":"2024-01-22T16:49:11.534362Z","shell.execute_reply":"2024-01-22T16:49:11.540401Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"pl.seed_everything(Config.seed, workers=True)","metadata":{"execution":{"iopub.status.busy":"2024-01-22T16:49:11.542599Z","iopub.execute_input":"2024-01-22T16:49:11.542934Z","iopub.status.idle":"2024-01-22T16:49:11.558568Z","shell.execute_reply.started":"2024-01-22T16:49:11.542875Z","shell.execute_reply":"2024-01-22T16:49:11.557699Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_train = pd.read_csv(Config.train_path)\ndf_valid = pd.read_csv(Config.valid_path)\ndf_train.head()","metadata":{"execution":{"iopub.status.busy":"2024-01-22T16:49:11.559787Z","iopub.execute_input":"2024-01-22T16:49:11.560141Z","iopub.status.idle":"2024-01-22T16:49:11.781355Z","shell.execute_reply.started":"2024-01-22T16:49:11.560115Z","shell.execute_reply":"2024-01-22T16:49:11.780455Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"CLASS_23 = sorted(os.listdir('/kaggle/input/birdclef-2023/train_audio'))\nNUM_CLASSES_23 = len(CLASS_23)\nLABEL2NAME23 = dict(zip(list(range(NUM_CLASSES_23)), CLASS_23))\nNAME2LABEL23 = {v:k for k, v in LABEL2NAME23.items()}","metadata":{"execution":{"iopub.status.busy":"2024-01-22T16:49:11.783020Z","iopub.execute_input":"2024-01-22T16:49:11.783322Z","iopub.status.idle":"2024-01-22T16:49:11.896194Z","shell.execute_reply.started":"2024-01-22T16:49:11.783297Z","shell.execute_reply":"2024-01-22T16:49:11.895317Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_train['target'] = df_train.primary_label.map(NAME2LABEL23)\ndf_valid['target'] = df_valid.primary_label.map(NAME2LABEL23)\ndf_train.head()","metadata":{"execution":{"iopub.status.busy":"2024-01-22T16:49:11.897795Z","iopub.execute_input":"2024-01-22T16:49:11.898132Z","iopub.status.idle":"2024-01-22T16:49:11.928858Z","shell.execute_reply.started":"2024-01-22T16:49:11.898104Z","shell.execute_reply":"2024-01-22T16:49:11.928000Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"Config.num_classes = len(df_train.primary_label.unique())","metadata":{"execution":{"iopub.status.busy":"2024-01-22T16:49:11.930067Z","iopub.execute_input":"2024-01-22T16:49:11.930354Z","iopub.status.idle":"2024-01-22T16:49:11.939573Z","shell.execute_reply.started":"2024-01-22T16:49:11.930328Z","shell.execute_reply":"2024-01-22T16:49:11.938570Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from torchvision.transforms.functional import to_pil_image, to_tensor\n\nclass BirdDataset(torch.utils.data.Dataset):\n\n    def __init__(self, df, sr = Config.SR, duration = Config.DURATION, transforms = None, train = True):\n        self.df = df\n        self.sr = sr \n        self.train = train\n        self.duration = duration\n        self.transforms = transforms\n        if train:\n            self.img_dir = Config.train_images\n        else:\n            self.img_dir = Config.valid_images\n\n    def __len__(self):\n        return len(self.df)\n\n    @staticmethod\n    def normalize(image):\n        image = image / 255.0\n        return image\n\n    def __getitem__(self, idx):\n\n        row = self.df.iloc[idx]\n        \n        impath = self.img_dir + f\"{row.filename}.npy\"\n\n        image = np.load(str(impath))[:Config.MAX_READ_SAMPLES]\n        \n        image = image[0]\n        \n        image = to_pil_image(image)\n        \n        images = self.transforms(image)\n        \n        return images, torch.tensor(row.target)\n","metadata":{"execution":{"iopub.status.busy":"2024-01-22T16:49:11.940855Z","iopub.execute_input":"2024-01-22T16:49:11.941606Z","iopub.status.idle":"2024-01-22T16:49:11.950347Z","shell.execute_reply.started":"2024-01-22T16:49:11.941579Z","shell.execute_reply":"2024-01-22T16:49:11.949305Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Transformation to get multiple versions of a image (anchor, positives)\nclass TwoCropTransform:\n    \"\"\"Create two crops of the same image\"\"\"\n    def __init__(self, transform):\n        self.transform = transform\n\n    def __call__(self, x):\n        return [self.transform(x), self.transform(x)]","metadata":{"execution":{"iopub.status.busy":"2024-01-22T16:49:11.953600Z","iopub.execute_input":"2024-01-22T16:49:11.953881Z","iopub.status.idle":"2024-01-22T16:49:11.960640Z","shell.execute_reply.started":"2024-01-22T16:49:11.953856Z","shell.execute_reply":"2024-01-22T16:49:11.959763Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"class To3Channel:\n    def __call__(self, img):\n\n        stacked_img = torch.stack([img[0], img[0], img[0]])\n    \n        return stacked_img","metadata":{"execution":{"iopub.status.busy":"2024-01-22T16:49:11.961738Z","iopub.execute_input":"2024-01-22T16:49:11.963782Z","iopub.status.idle":"2024-01-22T16:49:11.970856Z","shell.execute_reply.started":"2024-01-22T16:49:11.963756Z","shell.execute_reply":"2024-01-22T16:49:11.970140Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import albumentations as A\n#DataLoader\nclass BirdCLEFDataModuleSCL(pl.LightningDataModule):\n    def __init__(self, train_df, valid_df, batch_size, num_workers):\n        super().__init__()\n        self.train_df = train_df\n        self.valid_df = valid_df\n        self.batch_size = batch_size\n        self.num_workers = num_workers\n\n    # Single GPU, We download the data here\n    def prepare_data(self):\n        pass\n\n    # Multiple GPUs\n    def setup(self, stage):\n        transform = transforms.Compose([transforms.RandomHorizontalFlip(),\n                                       transforms.RandomGrayscale(p=0.2), \n                                       transforms.ToTensor(),\n                                       To3Channel()])\n\n        self.train_ds = BirdDataset(self.train_df, transforms = TwoCropTransform(transform))\n        self.valid_ds = BirdDataset(self.valid_df, transforms = TwoCropTransform(transform), train = False)\n\n    def train_dataloader(self):\n        return DataLoader(self.train_ds, batch_size = self.batch_size,\n                          num_workers = self.num_workers, shuffle = True)\n\n    def val_dataloader(self):\n        return DataLoader(self.valid_ds, batch_size = self.batch_size,\n                          num_workers = self.num_workers, shuffle = False)\n\n    def test_dataloader(self):\n        return DataLoader(self.test_ds, batch_size = self.batch_size,\n                          num_workers = self.num_workers, shuffle = False)","metadata":{"execution":{"iopub.status.busy":"2024-01-22T16:49:11.971995Z","iopub.execute_input":"2024-01-22T16:49:11.972360Z","iopub.status.idle":"2024-01-22T16:49:13.718805Z","shell.execute_reply.started":"2024-01-22T16:49:11.972327Z","shell.execute_reply":"2024-01-22T16:49:13.717826Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# SupConLoss: https://github.com/HobbitLong/SupContrast/blob/master/losses.py\nclass SupConLoss(nn.Module):\n    \"\"\"Supervised Contrastive Learning: https://arxiv.org/pdf/2004.11362.pdf.\n    It also supports the unsupervised contrastive loss in SimCLR\"\"\"\n    def __init__(self, temperature=0.07, contrast_mode='all',\n                 base_temperature=0.07):\n        super(SupConLoss, self).__init__()\n        self.temperature = temperature\n        self.contrast_mode = contrast_mode\n        self.base_temperature = base_temperature\n\n    def forward(self, features, labels=None, mask=None):\n        \"\"\"Compute loss for model. If both `labels` and `mask` are None,\n        it degenerates to SimCLR unsupervised loss:\n        https://arxiv.org/pdf/2002.05709.pdf\n\n        Args:\n            features: hidden vector of shape [bsz, n_views, ...].\n            labels: ground truth of shape [bsz].\n            mask: contrastive mask of shape [bsz, bsz], mask_{i,j}=1 if sample j\n                has the same class as sample i. Can be asymmetric.\n        Returns:\n            A loss scalar.\n        \"\"\"\n        device = (torch.device('cuda')\n                  if features.is_cuda\n                  else torch.device('cpu'))\n\n        if len(features.shape) < 3:\n            raise ValueError('`features` needs to be [bsz, n_views, ...],'\n                             'at least 3 dimensions are required')\n        if len(features.shape) > 3:\n            features = features.view(features.shape[0], features.shape[1], -1)\n\n        batch_size = features.shape[0]\n        if labels is not None and mask is not None:\n            raise ValueError('Cannot define both `labels` and `mask`')\n        elif labels is None and mask is None:\n            mask = torch.eye(batch_size, dtype=torch.float32).to(device)\n        elif labels is not None:\n            labels = labels.contiguous().view(-1, 1)\n            if labels.shape[0] != batch_size:\n                raise ValueError('Num of labels does not match num of features')\n            mask = torch.eq(labels, labels.T).float().to(device)\n        else:\n            mask = mask.float().to(device)\n\n        contrast_count = features.shape[1]\n        contrast_feature = torch.cat(torch.unbind(features, dim=1), dim=0)\n        if self.contrast_mode == 'one':\n            anchor_feature = features[:, 0]\n            anchor_count = 1\n        elif self.contrast_mode == 'all':\n            anchor_feature = contrast_feature\n            anchor_count = contrast_count\n        else:\n            raise ValueError('Unknown mode: {}'.format(self.contrast_mode))\n\n        # compute logits\n        anchor_dot_contrast = torch.div(\n            torch.matmul(anchor_feature, contrast_feature.T),\n            self.temperature)\n        # for numerical stability\n        logits_max, _ = torch.max(anchor_dot_contrast, dim=1, keepdim=True)\n        logits = anchor_dot_contrast - logits_max.detach()\n\n        # tile mask\n        mask = mask.repeat(anchor_count, contrast_count)\n        # mask-out self-contrast cases\n        logits_mask = torch.scatter(\n            torch.ones_like(mask),\n            1,\n            torch.arange(batch_size * anchor_count).view(-1, 1).to(device),\n            0\n        )\n        mask = mask * logits_mask\n\n        # compute log_prob\n        exp_logits = torch.exp(logits) * logits_mask\n        log_prob = logits - torch.log(exp_logits.sum(1, keepdim=True))\n\n        # compute mean of log-likelihood over positive\n        # modified to handle edge cases when there is no positive pair\n        # for an anchor point.\n        # Edge case e.g.:-\n        # features of shape: [4,1,...]\n        # labels:            [0,1,1,2]\n        # loss before mean:  [nan, ..., ..., nan]\n        mask_pos_pairs = mask.sum(1)\n        mask_pos_pairs = torch.where(mask_pos_pairs < 1e-6, 1, mask_pos_pairs)\n        mean_log_prob_pos = (mask * log_prob).sum(1) / mask_pos_pairs\n\n        # loss\n        loss = - (self.temperature / self.base_temperature) * mean_log_prob_pos\n        loss = loss.view(anchor_count, batch_size).mean()\n\n        return loss","metadata":{"id":"XMBiI9Ixcmj7","execution":{"iopub.status.busy":"2024-01-22T16:49:13.720654Z","iopub.execute_input":"2024-01-22T16:49:13.721376Z","iopub.status.idle":"2024-01-22T16:49:13.740204Z","shell.execute_reply.started":"2024-01-22T16:49:13.721340Z","shell.execute_reply":"2024-01-22T16:49:13.739316Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Model\nclass Encoder(pl.LightningModule):\n    def __init__(self, model_name, emb_dim):\n        super().__init__()\n        self.backbone = timm.create_model(model_name, pretrained = True)\n        self.in_features = self.backbone.fc.in_features\n        self.backbone.fc = nn.Linear(self.in_features, emb_dim)\n        self.loss_fn = SupConLoss(0.07, 'one', 0.07)\n\n\n    def forward(self, x):\n        emb = self.backbone(x)\n        return emb\n\n    # Difference between Normal and Lightning: The train, valid and test steps is written here inside the class\n    def training_step(self, batch, batch_idx):\n        images, labels = batch\n\n        bsz = len(labels)\n\n        images = torch.cat([images[0], images[1]], dim=0)\n\n        #print(images.shape)\n\n        features = self.forward(images)\n\n        # Manipulating the features for SupConLoss\n        f1, f2 = torch.split(features, [bsz, bsz], dim=0)\n        features = torch.cat([f1.unsqueeze(1), f2.unsqueeze(1)], dim=1)\n\n        # Calculating SupConLoss\n        loss = self.loss_fn(features,labels)\n\n        return loss\n\n    # We have training_epoch_end function\n    # def on_train_epoch_end(self):\n    #     #print(\"Epoch Done\")\n\n    def validation_step(self, batch , batch_idx):\n\n        images, labels = batch\n\n        bsz = len(labels)\n\n        images = torch.cat([images[0], images[1]], dim=0)\n        \n        #print(images.shape)\n\n        features = self.forward(images)\n\n        # Manipulating the arrangment of features for SupConLoss\n        f1, f2 = torch.split(features, [bsz, bsz], dim=0)\n\n        features = torch.cat([f1.unsqueeze(1), f2.unsqueeze(1)], dim=1)\n\n        # Calculating SupConLoss\n        loss = self.loss_fn(features,labels)\n\n        return loss\n\n    def test_step(self, batch, batch_idx):\n        images, labels = batch\n        \n        bsz = len(labels)\n\n        images = torch.cat([images[0], images[1]], dim=0)\n        \n\n        features = self.forward(images)\n\n        # Manipulating the arrangment of features for SupConLoss\n        f1, f2 = torch.split(features, [bsz, bsz], dim=0)\n\n        features = torch.cat([f1.unsqueeze(1), f2.unsqueeze(1)], dim=1)\n\n        # Calculating SupConLoss\n        loss = self.loss_fn(features,labels)\n        return loss\n\n    # We can add schedulers to this method\n    def configure_optimizers(self):\n        return optim.Adam(self.parameters(), lr = 0.001)","metadata":{"id":"sQBeNNbCnAuY","execution":{"iopub.status.busy":"2024-01-22T16:49:13.741834Z","iopub.execute_input":"2024-01-22T16:49:13.742112Z","iopub.status.idle":"2024-01-22T16:49:13.757040Z","shell.execute_reply.started":"2024-01-22T16:49:13.742087Z","shell.execute_reply":"2024-01-22T16:49:13.756336Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"device = torch.device(\"cuda\" if torch.backends.mps.is_available() else 'cpu')\n\n# HP\nemb_dim = 128\nlearning_rate = 0.001\nnum_epochs = 2\nbackbone = \"resnet50\"\n\n#Data Loading\ndm = BirdCLEFDataModuleSCL(df_train, df_valid, batch_size = Config.batch_size, num_workers = 1)\n\n# Init Model\nmodel = Encoder(backbone, emb_dim).to(device)\n\n# Trainer\ntrainer = pl.Trainer(accelerator = \"cuda\", devices = [0], min_epochs = 1, max_epochs = num_epochs, precision = 16)\ntrainer.fit(model, dm)","metadata":{"id":"WYqWb1wuiSDu","outputId":"4fd2e27d-88d2-42f5-dc51-76fbd5b32a1c","execution":{"iopub.status.busy":"2024-01-22T16:49:13.757998Z","iopub.execute_input":"2024-01-22T16:49:13.758291Z","iopub.status.idle":"2024-01-22T16:56:06.105326Z","shell.execute_reply.started":"2024-01-22T16:49:13.758259Z","shell.execute_reply":"2024-01-22T16:56:06.104372Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Save the model checkpoint\nmodel_checkpoint_path = './birdclef_supconencoder.ckpt'\ntrainer.save_checkpoint(model_checkpoint_path)","metadata":{"id":"zVUWRBZpi6kH","execution":{"iopub.status.busy":"2024-01-22T16:56:06.106989Z","iopub.execute_input":"2024-01-22T16:56:06.108088Z","iopub.status.idle":"2024-01-22T16:56:06.726402Z","shell.execute_reply.started":"2024-01-22T16:56:06.108030Z","shell.execute_reply":"2024-01-22T16:56:06.725451Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#DataLoader\nclass BirdCLEFDataModuleCE(pl.LightningDataModule):\n    def __init__(self, train_df, valid_df, batch_size, num_workers):\n        super().__init__()\n        self.train_df = train_df\n        self.valid_df = valid_df\n        self.batch_size = batch_size\n        self.num_workers = num_workers\n        \n\n    # Single GPU, We download the data here\n    def prepare_data(self):\n        pass\n\n    # Multiple GPUs\n    def setup(self, stage):\n        transform = transforms.Compose([transforms.ToTensor(),\n                                       To3Channel()])\n\n        self.train_ds = BirdDataset(self.train_df, transforms = transform)\n        self.valid_ds = BirdDataset(self.valid_df, transforms = transform, train = False)\n\n    def train_dataloader(self):\n        return DataLoader(self.train_ds, batch_size = self.batch_size,\n                          num_workers = self.num_workers, shuffle = True)\n\n    def val_dataloader(self):\n        return DataLoader(self.valid_ds, batch_size = self.batch_size,\n                          num_workers = self.num_workers, shuffle = False)\n\n    def test_dataloader(self):\n        return DataLoader(self.valid_ds, batch_size = self.batch_size,\n                          num_workers = self.num_workers, shuffle = False)","metadata":{"id":"l6ph-dmWtxzy","execution":{"iopub.status.busy":"2024-01-22T16:56:06.727783Z","iopub.execute_input":"2024-01-22T16:56:06.728134Z","iopub.status.idle":"2024-01-22T16:56:06.738259Z","shell.execute_reply.started":"2024-01-22T16:56:06.728105Z","shell.execute_reply":"2024-01-22T16:56:06.737155Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import sklearn.metrics\n\ndef padded_cmap(solution, submission, padding_factor=5):\n    solution = solution\n    submission = submission\n    new_rows = []\n    for i in range(padding_factor):\n        new_rows.append([1 for i in range(len(solution.columns))])\n    new_rows = pd.DataFrame(new_rows)\n    new_rows.columns = solution.columns\n    padded_solution = pd.concat([solution, new_rows]).reset_index(drop=True).copy()\n    padded_submission = pd.concat([submission, new_rows]).reset_index(drop=True).copy()\n    score = sklearn.metrics.average_precision_score(\n        padded_solution.values,\n        padded_submission.values,\n        average='macro',\n    )\n    return score\n\ndef map_score(solution, submission):\n    solution = solution\n    submission = submission\n    score = sklearn.metrics.average_precision_score(\n        solution.values,\n        submission.values,\n        average='micro',\n    )\n    return score","metadata":{"execution":{"iopub.status.busy":"2024-01-22T16:56:06.739461Z","iopub.execute_input":"2024-01-22T16:56:06.739774Z","iopub.status.idle":"2024-01-22T16:56:06.754687Z","shell.execute_reply.started":"2024-01-22T16:56:06.739746Z","shell.execute_reply":"2024-01-22T16:56:06.753795Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import torch\nimport torch.nn as nn\nimport pickle\nimport pytorch_lightning as pl\nfrom torch.optim import Adam\n\n\n\nclass SupConCE(pl.LightningModule):\n    def __init__(self,):\n        super().__init__()\n        self.loss_fn = nn.CrossEntropyLoss()\n        self.accuracy = torchmetrics.Accuracy(task = 'multiclass', num_classes = 264)\n        self.f1_score = torchmetrics.F1Score(task = 'multiclass', num_classes = 264)\n\n        model_path = '/kaggle/working/birdclef_supconencoder.ckpt'\n        pretrained_model = Encoder.load_from_checkpoint(model_path, model_name = backbone, emb_dim = 128)\n\n\n        #Freezing all the encoder layers\n        for param in pretrained_model.parameters():\n            param.requires_grad = False\n\n\n        #Trainging only the last layer\n        pretrained_model.backbone.fc = nn.Linear(in_features=pretrained_model.backbone.fc.in_features, out_features=264)\n\n        pretrained_model.backbone.fc.requires_grad = True\n\n        self.model = pretrained_model\n\n\n    def forward(self, x):\n        logits = self.model(x)\n        return logits\n\n    def training_step(self, batch, batch_idx):\n        images, labels = batch\n        y_pred = self.forward(images)\n        loss = self.loss_fn(y_pred,labels)\n        accuracy = self.accuracy(y_pred,labels)\n        f1_score = self.f1_score(y_pred,labels)\n        self.log_dict({'train_loss': loss, 'train_accuracy': accuracy, 'train_f1_score': f1_score},\n                      on_step = False, on_epoch = True, prog_bar = True)\n        return loss\n\n    def validation_step(self, batch, batch_idx):\n        images, labels = batch\n        y_pred = self.forward(images)\n        loss = self.loss_fn(y_pred,labels)\n        accuracy = self.accuracy(y_pred,labels)\n        f1_score = self.f1_score(y_pred,labels)\n        \n        one_hot_target = F.one_hot(labels, num_classes=264)\n        \n        y_pred = pd.DataFrame(y_pred.cpu().detach().numpy())\n        y_true = pd.DataFrame(one_hot_target.cpu().detach().numpy())\n        \n        cmap_score = padded_cmap(y_true, y_pred)\n        \n        self.log_dict({'valid_loss': loss, 'valid_accuracy': accuracy, 'valid_f1_score': f1_score, 'cmap_score': cmap_score},\n                      on_step = False, on_epoch = True, prog_bar = True)\n        return loss\n\n    def test_step(self, batch, batch_idx):\n        images, labels = batch\n        y_pred = self.forward(images)\n        loss = self.loss_fn(y_pred,labels)\n        accuracy = self.accuracy(y_pred,labels)\n        f1_score = self.f1_score(y_pred,labels)\n        \n        one_hot_target = F.one_hot(labels, num_classes=264)\n        \n        y_pred = pd.DataFrame(y_pred.cpu().detach().numpy())\n        y_true = pd.DataFrame(one_hot_target.cpu().detach().numpy())\n        \n        cmap_score = padded_cmap(y_true, y_pred)\n        self.log_dict({'test_loss': loss, 'test_accuracy': accuracy, 'test_f1_score': f1_score, 'cmap_score': cmap_score},\n                      on_step = False, on_epoch = True, prog_bar = True)\n        return loss\n\n    def configure_optimizers(self):\n        return optim.Adam(self.parameters(), lr = 0.001)\n\n\n\ndm_ce = BirdCLEFDataModuleCE(df_train, df_valid, batch_size = Config.batch_size, num_workers = 1)\n\nfinal_model = SupConCE().to(device)\n\ntrainer_ce = pl.Trainer(accelerator = \"cuda\", devices = [0], min_epochs = 1, max_epochs = 1, precision = 16)\n\ntrainer_ce.fit(final_model, dm_ce)\n\ntrainer_ce.validate(final_model, dm_ce)\n\ntrainer_ce.test(final_model, dm_ce)","metadata":{"id":"5BV9hvINow3J","outputId":"278f5c67-b070-4cf6-f64d-eae1ebcd2d64","execution":{"iopub.status.busy":"2024-01-22T16:56:06.758197Z","iopub.execute_input":"2024-01-22T16:56:06.758510Z","iopub.status.idle":"2024-01-22T16:57:19.809797Z","shell.execute_reply.started":"2024-01-22T16:56:06.758484Z","shell.execute_reply":"2024-01-22T16:57:19.808824Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Save the model checkpoint\nmodel_checkpoint_path = './birdclef_supconmodel.ckpt'\ntrainer_ce.save_checkpoint(model_checkpoint_path)","metadata":{"execution":{"iopub.status.busy":"2024-01-22T16:57:19.811078Z","iopub.execute_input":"2024-01-22T16:57:19.811352Z","iopub.status.idle":"2024-01-22T16:57:20.142962Z","shell.execute_reply.started":"2024-01-22T16:57:19.811324Z","shell.execute_reply":"2024-01-22T16:57:20.142065Z"},"trusted":true},"execution_count":null,"outputs":[]}]}