{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"provenance":[],"gpuType":"T4","authorship_tag":"ABX9TyNuvRJGuRdzRH8lJdNlNFMR"},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"},"accelerator":"GPU","widgets":{"application/vnd.jupyter.widget-state+json":{"78d38d335b8b4ad3a738721abc441020":{"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_144596c3f64940a1a8f519e864e06928","IPY_MODEL_da6ef660b5ff4babb3ac62e6687d3055","IPY_MODEL_1d5bc65e1d9144af8a3698f646dff717"],"layout":"IPY_MODEL_a3990f0ada62414cbcdf3e038b116b93"}},"144596c3f64940a1a8f519e864e06928":{"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_145ae131505e42ad8610689a55a9a42f","placeholder":"​","style":"IPY_MODEL_e11b78d7d2b54ebd9c7711d9a7529882","value":"Resolving data files: 100%"}},"da6ef660b5ff4babb3ac62e6687d3055":{"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_726af48ced6e440b9147fd89ee71a056","max":17,"min":0,"orientation":"horizontal","style":"IPY_MODEL_bed01c36b8884e5eb45d7fa936564489","value":17}},"1d5bc65e1d9144af8a3698f646dff717":{"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_d6e6b2aae1fd4f4fba084fef60ae5d27","placeholder":"​","style":"IPY_MODEL_6c30b6a76ed14d4eba44adc7fa5ef6ad","value":" 17/17 [00:00<00:00, 1355.73it/s]"}},"a3990f0ada62414cbcdf3e038b116b93":{"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}},"145ae131505e42ad8610689a55a9a42f":{"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}},"e11b78d7d2b54ebd9c7711d9a7529882":{"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":""}},"726af48ced6e440b9147fd89ee71a056":{"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}},"bed01c36b8884e5eb45d7fa936564489":{"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":""}},"d6e6b2aae1fd4f4fba084fef60ae5d27":{"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}},"6c30b6a76ed14d4eba44adc7fa5ef6ad":{"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":""}},"60e73cce8fbf42658c1f0c38bcb528cb":{"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_dd5e15babe9a4c9ab8cd2a22e63c567d","IPY_MODEL_f65b1b69ab6a44daa180619dec4986c5","IPY_MODEL_b1630201283141c5adb7ce873a01b078"],"layout":"IPY_MODEL_04c0f51257fb4fbfbc12f26994e04016"}},"dd5e15babe9a4c9ab8cd2a22e63c567d":{"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_1db3ed57b6ce444eb836d80aaf220860","placeholder":"​","style":"IPY_MODEL_88039e7373a84937b8baae445ed5cc39","value":"Resolving data files: 100%"}},"f65b1b69ab6a44daa180619dec4986c5":{"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_b64abcab8d6a4dabbd3a70b841b90a59","max":17,"min":0,"orientation":"horizontal","style":"IPY_MODEL_4a643229f33f4850b3f47a9d114ac6fe","value":17}},"b1630201283141c5adb7ce873a01b078":{"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_a40c5af8ca8747b49a7820c1b5c62e2c","placeholder":"​","style":"IPY_MODEL_d32e2f08d5cb4c0ab8af1f3a6d732e13","value":" 17/17 [00:00<00:00, 1663.75it/s]"}},"04c0f51257fb4fbfbc12f26994e04016":{"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}},"1db3ed57b6ce444eb836d80aaf220860":{"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}},"88039e7373a84937b8baae445ed5cc39":{"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":""}},"b64abcab8d6a4dabbd3a70b841b90a59":{"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}},"4a643229f33f4850b3f47a9d114ac6fe":{"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":""}},"a40c5af8ca8747b49a7820c1b5c62e2c":{"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}},"d32e2f08d5cb4c0ab8af1f3a6d732e13":{"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":""}},"dd2fd8e69bd842499aed9155e5652793":{"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_ea03d8eab8a44c8693484f06ebe602cb","IPY_MODEL_bdaff7b48c0648e5bf51bc1fcb630a7d","IPY_MODEL_5f8fec5e92444205881ea18a4f845ae9"],"layout":"IPY_MODEL_ac1239f5bbc949939147a8ec6c5ce1ba"}},"ea03d8eab8a44c8693484f06ebe602cb":{"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_55ea83abccf24035b8380617f966e7c1","placeholder":"​","style":"IPY_MODEL_0dd406e0f6994b79b650e554e9928779","value":"Loading dataset shards: 100%"}},"bdaff7b48c0648e5bf51bc1fcb630a7d":{"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_b0cb8d910bce4dc49dd58b932e0f0e42","max":17,"min":0,"orientation":"horizontal","style":"IPY_MODEL_e17a127158d1453599d4ce744044bfb1","value":17}},"5f8fec5e92444205881ea18a4f845ae9":{"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_7848e61cd8d9427cb7b7a1b8e58d1029","placeholder":"​","style":"IPY_MODEL_3f95e539d83f4b4fbb458c7bbc425d81","value":" 17/17 [00:05<00:00,  4.06it/s]"}},"ac1239f5bbc949939147a8ec6c5ce1ba":{"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}},"55ea83abccf24035b8380617f966e7c1":{"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}},"0dd406e0f6994b79b650e554e9928779":{"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":""}},"b0cb8d910bce4dc49dd58b932e0f0e42":{"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}},"e17a127158d1453599d4ce744044bfb1":{"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":""}},"7848e61cd8d9427cb7b7a1b8e58d1029":{"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}},"3f95e539d83f4b4fbb458c7bbc425d81":{"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":""}},"ffa21ad758864328b4500acb7e0c6196":{"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_27c4b201182e4b79a2ca1b2cd9b0c223","IPY_MODEL_2dd4e343f6e34e75936dbd37e92d5399","IPY_MODEL_03fcb939ed1548fb9574314047121507"],"layout":"IPY_MODEL_1eafe5d8e02f4a3db696f11b2e9d92ea"}},"27c4b201182e4b79a2ca1b2cd9b0c223":{"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_4df704393ac2456ea0627e5e853cf208","placeholder":"​","style":"IPY_MODEL_d77ab826b352471da36927257eff5b52","value":"Resolving data files: 100%"}},"2dd4e343f6e34e75936dbd37e92d5399":{"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_f4ada55941f940bbb85852e61c0c41db","max":17,"min":0,"orientation":"horizontal","style":"IPY_MODEL_44b7ff5c14ba4136bcd5887bad4a2063","value":17}},"03fcb939ed1548fb9574314047121507":{"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_2b54c8c8bf3d48d99e8709e5e0eb3c8e","placeholder":"​","style":"IPY_MODEL_7eb8f4892bfe4bba9d64d750ea0a3573","value":" 17/17 [00:00<00:00, 1585.25it/s]"}},"1eafe5d8e02f4a3db696f11b2e9d92ea":{"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}},"4df704393ac2456ea0627e5e853cf208":{"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}},"d77ab826b352471da36927257eff5b52":{"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":""}},"f4ada55941f940bbb85852e61c0c41db":{"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}},"44b7ff5c14ba4136bcd5887bad4a2063":{"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":""}},"2b54c8c8bf3d48d99e8709e5e0eb3c8e":{"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}},"7eb8f4892bfe4bba9d64d750ea0a3573":{"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":""}},"a81f499252924d25bb0caac0952841a2":{"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_e083364358684a1b9a58dcfc11007232","IPY_MODEL_0ff37e2fdc4b4faabdf0166cd20846d8","IPY_MODEL_0e9e2f94e16749ff858b8e9dc21f2190"],"layout":"IPY_MODEL_a2eadd47be004647b6c7a9be948b7c0b"}},"e083364358684a1b9a58dcfc11007232":{"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_feb827a81c7e487e948b0bcde2a67faf","placeholder":"​","style":"IPY_MODEL_5b800e9bebc549f18c65cc49d6077961","value":"Resolving data files: 100%"}},"0ff37e2fdc4b4faabdf0166cd20846d8":{"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_c18e0f2e084c4164804f78e3b5d48320","max":17,"min":0,"orientation":"horizontal","style":"IPY_MODEL_18c35f5c35ae4987a1441ebe5ff18c12","value":17}},"0e9e2f94e16749ff858b8e9dc21f2190":{"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_04f5395411d2441fa911161ab192dad3","placeholder":"​","style":"IPY_MODEL_1afe2fd68e6f45208cf8c4887ea44987","value":" 17/17 [00:00<00:00, 2045.18it/s]"}},"a2eadd47be004647b6c7a9be948b7c0b":{"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}},"feb827a81c7e487e948b0bcde2a67faf":{"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}},"5b800e9bebc549f18c65cc49d6077961":{"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":""}},"c18e0f2e084c4164804f78e3b5d48320":{"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}},"18c35f5c35ae4987a1441ebe5ff18c12":{"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":""}},"04f5395411d2441fa911161ab192dad3":{"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}},"1afe2fd68e6f45208cf8c4887ea44987":{"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":""}},"7325d88f1099481da925e89ca5a8a3fb":{"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_86a719e351db4a74a28025188e6dfed2","IPY_MODEL_f4c8b028e7d440b5baeb3a162915327a","IPY_MODEL_4f54fba5392b4f81a4ab4d60b1101442"],"layout":"IPY_MODEL_72013749be64470c9d47271a80183fc6"}},"86a719e351db4a74a28025188e6dfed2":{"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_6d2f81d472e24584afac3f8a67a71ae0","placeholder":"​","style":"IPY_MODEL_75f63e06a336404783ba07052524a473","value":"Resolving data files: 100%"}},"f4c8b028e7d440b5baeb3a162915327a":{"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_a2d9e2b5731e48f187d9cc0e425d9c46","max":17,"min":0,"orientation":"horizontal","style":"IPY_MODEL_c02a66e3b27540179d88eb5a497d750b","value":17}},"4f54fba5392b4f81a4ab4d60b1101442":{"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_ed1ae4a0fc374f72aa39679205062373","placeholder":"​","style":"IPY_MODEL_286ff85d53ae46a4b232d7cca941dde8","value":" 17/17 [00:00<00:00, 1226.09it/s]"}},"72013749be64470c9d47271a80183fc6":{"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}},"6d2f81d472e24584afac3f8a67a71ae0":{"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}},"75f63e06a336404783ba07052524a473":{"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":""}},"a2d9e2b5731e48f187d9cc0e425d9c46":{"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}},"c02a66e3b27540179d88eb5a497d750b":{"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":""}},"ed1ae4a0fc374f72aa39679205062373":{"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}},"286ff85d53ae46a4b232d7cca941dde8":{"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":""}},"d2480033aac94b6099ea8c0d3e9e9c94":{"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_601eb44d32a54e688c9733045d48b294","IPY_MODEL_4ab7cb6710ae4d17bc5d57f24d00b47f","IPY_MODEL_edf70b19db87433e823550136cc39be7"],"layout":"IPY_MODEL_9fd9593d459545f5982de0ad307d47f7"}},"601eb44d32a54e688c9733045d48b294":{"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_aa67eecf06b74cd7a874ec01b2965fb1","placeholder":"​","style":"IPY_MODEL_65c3f3039e03463fb1c5844bc2e31b9a","value":"Resolving data files: 100%"}},"4ab7cb6710ae4d17bc5d57f24d00b47f":{"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_1485f505f52f45eab5f1adcc8fd004c0","max":17,"min":0,"orientation":"horizontal","style":"IPY_MODEL_72d7895353f6400e839d9e5dcbdf80d5","value":17}},"edf70b19db87433e823550136cc39be7":{"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_2d555ac1a414444fbb7690b5335d28aa","placeholder":"​","style":"IPY_MODEL_589b3f6d35bc4fa185e1c3a536dea9ce","value":" 17/17 [00:00<00:00, 1397.14it/s]"}},"9fd9593d459545f5982de0ad307d47f7":{"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}},"aa67eecf06b74cd7a874ec01b2965fb1":{"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}},"65c3f3039e03463fb1c5844bc2e31b9a":{"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":""}},"1485f505f52f45eab5f1adcc8fd004c0":{"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}},"72d7895353f6400e839d9e5dcbdf80d5":{"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":""}},"2d555ac1a414444fbb7690b5335d28aa":{"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}},"589b3f6d35bc4fa185e1c3a536dea9ce":{"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":""}},"8516ddba9ad042488e68e9ee7213adbe":{"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_eb67cd5c9aeb44d38170f6e4f9ddf2e7","IPY_MODEL_40863b90d78242208cdfd464b1cfa093","IPY_MODEL_8e76d167b49041c9aa3c0ada8e0c139b"],"layout":"IPY_MODEL_d15a132a7562464e8490aec553f6a718"}},"eb67cd5c9aeb44d38170f6e4f9ddf2e7":{"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_6805490dae034188b32fa8290370e78c","placeholder":"​","style":"IPY_MODEL_3ab4d115cb0d4163b98145152c33d4a0","value":"Loading dataset shards: 100%"}},"40863b90d78242208cdfd464b1cfa093":{"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_a2cc00f5246a464ea3b0a4a5b1942839","max":17,"min":0,"orientation":"horizontal","style":"IPY_MODEL_8dff21a4cdfd4e11bd1ea4597e22e04e","value":17}},"8e76d167b49041c9aa3c0ada8e0c139b":{"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_37ba94e89ada4e0fab30180a37b2c665","placeholder":"​","style":"IPY_MODEL_2a0675f7588c4c828f2808be35097022","value":" 17/17 [00:02<00:00, 11.34it/s]"}},"d15a132a7562464e8490aec553f6a718":{"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}},"6805490dae034188b32fa8290370e78c":{"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}},"3ab4d115cb0d4163b98145152c33d4a0":{"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":""}},"a2cc00f5246a464ea3b0a4a5b1942839":{"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}},"8dff21a4cdfd4e11bd1ea4597e22e04e":{"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":""}},"37ba94e89ada4e0fab30180a37b2c665":{"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}},"2a0675f7588c4c828f2808be35097022":{"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":""}},"546ac3fc53d248cc8fecd622e76ddf5e":{"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_7cea74b439804c20989a41d5d987096b","IPY_MODEL_39c8896a0b0f45308346de1928a37008","IPY_MODEL_45d56470866641f39cda96fed2c6f6eb"],"layout":"IPY_MODEL_3114ed8b8b7440e4bcbebe3012d9f8e3"}},"7cea74b439804c20989a41d5d987096b":{"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_b20c6ca392e448d5b55894d288ee8579","placeholder":"​","style":"IPY_MODEL_a5e976ca30a74af0be0ab15990fb633c","value":"Resolving data files: 100%"}},"39c8896a0b0f45308346de1928a37008":{"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_5dcb2f8031874a7ea5413484df1e9ca8","max":17,"min":0,"orientation":"horizontal","style":"IPY_MODEL_25dc8f95a939465ebeaabb87e296c1bd","value":17}},"45d56470866641f39cda96fed2c6f6eb":{"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_52594dc6a6274df6860aaaa745d55f9e","placeholder":"​","style":"IPY_MODEL_8f1015ae189c4d48b95be3b26d621649","value":" 17/17 [00:00<00:00, 1797.82it/s]"}},"3114ed8b8b7440e4bcbebe3012d9f8e3":{"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}},"b20c6ca392e448d5b55894d288ee8579":{"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}},"a5e976ca30a74af0be0ab15990fb633c":{"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":""}},"5dcb2f8031874a7ea5413484df1e9ca8":{"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}},"25dc8f95a939465ebeaabb87e296c1bd":{"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":""}},"52594dc6a6274df6860aaaa745d55f9e":{"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}},"8f1015ae189c4d48b95be3b26d621649":{"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":""}},"e4b7bd8b29bd41fe9e6eef4a3b85ece9":{"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_9a01e519f09f41d187ba18f4c7c7cd63","IPY_MODEL_d9dfa9c7d3f64a119619244aa6fdec72","IPY_MODEL_6c5cbabf6ebb44da86f94f0f4d04b0e1"],"layout":"IPY_MODEL_20a999db12c24dfaa4e56aeeaab3ba02"}},"9a01e519f09f41d187ba18f4c7c7cd63":{"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_0e9d1f74a42a442395f2c822340fd9b1","placeholder":"​","style":"IPY_MODEL_10593b86c7b8462c9d6aedc897b019ae","value":"Resolving data files: 100%"}},"d9dfa9c7d3f64a119619244aa6fdec72":{"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_3908f7f59f374ef0bf595167880b6f0c","max":17,"min":0,"orientation":"horizontal","style":"IPY_MODEL_88fc57e6d3a943df9239e05482a14e9c","value":17}},"6c5cbabf6ebb44da86f94f0f4d04b0e1":{"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_c7872e29107840a787dfd2f65ef02968","placeholder":"​","style":"IPY_MODEL_b04fc416277d45e7a0d5b93ce2cd5d66","value":" 17/17 [00:00<00:00, 2014.67it/s]"}},"20a999db12c24dfaa4e56aeeaab3ba02":{"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}},"0e9d1f74a42a442395f2c822340fd9b1":{"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}},"10593b86c7b8462c9d6aedc897b019ae":{"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":""}},"3908f7f59f374ef0bf595167880b6f0c":{"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}},"88fc57e6d3a943df9239e05482a14e9c":{"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":""}},"c7872e29107840a787dfd2f65ef02968":{"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}},"b04fc416277d45e7a0d5b93ce2cd5d66":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}}}}},"cells":[{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":1000,"referenced_widgets":["78d38d335b8b4ad3a738721abc441020","144596c3f64940a1a8f519e864e06928","da6ef660b5ff4babb3ac62e6687d3055","1d5bc65e1d9144af8a3698f646dff717","a3990f0ada62414cbcdf3e038b116b93","145ae131505e42ad8610689a55a9a42f","e11b78d7d2b54ebd9c7711d9a7529882","726af48ced6e440b9147fd89ee71a056","bed01c36b8884e5eb45d7fa936564489","d6e6b2aae1fd4f4fba084fef60ae5d27","6c30b6a76ed14d4eba44adc7fa5ef6ad","60e73cce8fbf42658c1f0c38bcb528cb","dd5e15babe9a4c9ab8cd2a22e63c567d","f65b1b69ab6a44daa180619dec4986c5","b1630201283141c5adb7ce873a01b078","04c0f51257fb4fbfbc12f26994e04016","1db3ed57b6ce444eb836d80aaf220860","88039e7373a84937b8baae445ed5cc39","b64abcab8d6a4dabbd3a70b841b90a59","4a643229f33f4850b3f47a9d114ac6fe","a40c5af8ca8747b49a7820c1b5c62e2c","d32e2f08d5cb4c0ab8af1f3a6d732e13","dd2fd8e69bd842499aed9155e5652793","ea03d8eab8a44c8693484f06ebe602cb","bdaff7b48c0648e5bf51bc1fcb630a7d","5f8fec5e92444205881ea18a4f845ae9","ac1239f5bbc949939147a8ec6c5ce1ba","55ea83abccf24035b8380617f966e7c1","0dd406e0f6994b79b650e554e9928779","b0cb8d910bce4dc49dd58b932e0f0e42","e17a127158d1453599d4ce744044bfb1","7848e61cd8d9427cb7b7a1b8e58d1029","3f95e539d83f4b4fbb458c7bbc425d81","ffa21ad758864328b4500acb7e0c6196","27c4b201182e4b79a2ca1b2cd9b0c223","2dd4e343f6e34e75936dbd37e92d5399","03fcb939ed1548fb9574314047121507","1eafe5d8e02f4a3db696f11b2e9d92ea","4df704393ac2456ea0627e5e853cf208","d77ab826b352471da36927257eff5b52","f4ada55941f940bbb85852e61c0c41db","44b7ff5c14ba4136bcd5887bad4a2063","2b54c8c8bf3d48d99e8709e5e0eb3c8e","7eb8f4892bfe4bba9d64d750ea0a3573","a81f499252924d25bb0caac0952841a2","e083364358684a1b9a58dcfc11007232","0ff37e2fdc4b4faabdf0166cd20846d8","0e9e2f94e16749ff858b8e9dc21f2190","a2eadd47be004647b6c7a9be948b7c0b","feb827a81c7e487e948b0bcde2a67faf","5b800e9bebc549f18c65cc49d6077961","c18e0f2e084c4164804f78e3b5d48320","18c35f5c35ae4987a1441ebe5ff18c12","04f5395411d2441fa911161ab192dad3","1afe2fd68e6f45208cf8c4887ea44987"]},"id":"h-yeC9yq9aLe","outputId":"d8a4afe3-beee-460e-a67b-b301ee2ec6ea"},"outputs":[{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.12/dist-packages/huggingface_hub/utils/_auth.py:93: UserWarning: \n","The secret `HF_TOKEN` does not exist in your Colab secrets.\n","To authenticate with the Hugging Face Hub, create a token in your settings tab (https://huggingface.co/settings/tokens), set it as secret in your Google Colab and restart your session.\n","You will be able to reuse this secret in all of your notebooks.\n","Please note that authentication is recommended but still optional to access public models or datasets.\n"," warnings.warn(\n","Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads.\n","WARNING:huggingface_hub.utils._http:Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads.\n"]},{"output_type":"display_data","data":{"text/plain":["Resolving data files: 0%| | 0/17 [00:00btj\", x, self.mod1_w1) + self.mod1_b1\n"," out_m1 = torch.einsum(\"btj,tjk->btk\", F.gelu(h1), self.mod1_w2) + self.mod1_b2\n"," h2 = torch.einsum(\"bti,tij->btj\", x, self.mod2_w1) + self.mod2_b1\n"," out_m2 = torch.einsum(\"btj,tjk->btk\", F.gelu(h2), self.mod2_w2) + self.mod2_b2\n","\n"," # Stabilized division\n"," out_m2_safe = torch.sign(out_m2) * torch.clamp(torch.abs(out_m2), min=1e-6)\n"," compare = torch.tanh(out_m1.unsqueeze(2) / out_m2_safe.unsqueeze(1))\n"," compare2 = torch.tanh(out_m1.unsqueeze(1) / out_m2_safe.unsqueeze(2))\n","\n"," trans_compare = torch.einsum(\"bije,jef->bijf\", compare, self.trans_w) + self.trans_b.view(1, 1, N, 1)\n"," trans_compare2 = torch.einsum(\"bije,jef->bijf\", compare2, self.trans_w) + self.trans_b.view(1, 1, N, 1)\n","\n"," interaksi = (trans_compare * x.unsqueeze(2) + trans_compare2 * x.unsqueeze(1)) / 2\n"," mask = (1.0 - torch.eye(N, device=x.device)).view(1, N, N, 1)\n"," return (interaksi * mask).sum(dim=2) / (N - 1.0)\n","\n","class LiteResidualBlock(nn.Module):\n"," def __init__(self, dim, dropout=0.05):\n"," super().__init__()\n"," self.block = nn.Sequential(nn.Linear(dim, dim), nn.GELU(), nn.Dropout(dropout), nn.Linear(dim, dim))\n"," self.norm = nn.LayerNorm(dim)\n"," def forward(self, x):\n"," return self.norm(x + self.block(x))\n","\n","class LookThemV8(nn.Module):\n"," def __init__(self):\n"," super().__init__()\n"," self.stream_a = nn.Sequential(nn.Conv2d(3, 16, 3, 2, 1), nn.BatchNorm2d(16), nn.GELU(), nn.Conv2d(16, 32, 3, 2, 1), nn.BatchNorm2d(32), nn.GELU(), nn.Conv2d(32, 64, 3, 2, 1), nn.BatchNorm2d(64), nn.GELU(), nn.AdaptiveMaxPool2d((8, 8)))\n"," self.stream_b = nn.Sequential(nn.Conv2d(3, 16, 3, 2, 1), nn.BatchNorm2d(16), nn.GELU(), nn.Conv2d(16, 32, 3, 1, 1), nn.BatchNorm2d(32), nn.GELU(), nn.Conv2d(32, 64, 3, 1, 1), nn.BatchNorm2d(64), nn.GELU(), nn.AdaptiveMaxPool2d((8, 8)))\n","\n"," self.lookthemA = LookThemLayer(64, 64, 32)\n"," self.lookthemB = LookThemLayer(64, 64, 32)\n"," self.lookthem_comb = LookThemLayer(64, 128, 32)\n"," self.comb_norm = nn.LayerNorm(128) # Reset distribution after combined LookThem\n","\n"," self.FFN1 = nn.Conv1d(128, 64, 1)\n"," self.lookthem2 = LookThemLayer(64, 64, 32)\n"," self.FFN2 = nn.Conv1d(64, 64, 1)\n","\n"," self.compressor = nn.Conv1d(64, 16, 1)\n"," self.input_proj = nn.Linear(64 * 16, 256)\n"," self.res_blocks = nn.Sequential(LiteResidualBlock(256), LiteResidualBlock(256))\n"," self.head = nn.Sequential(nn.Linear(256, 128), nn.GELU(), nn.Linear(128, 100))\n","\n"," def forward(self, x):\n"," b = x.size(0)\n"," fa = self.lookthemA(self.stream_a(x).view(b, 64, 64).transpose(1, 2))\n"," fb = self.lookthemB(self.stream_b(x).view(b, 64, 64).transpose(1, 2))\n"," x = self.comb_norm(self.lookthem_comb(torch.cat([fa, fb], dim=2)))\n"," x = x.transpose(1, 2)\n"," x = self.FFN1(x).transpose(1, 2)\n"," res = x\n"," x = self.lookthem2(x).transpose(1, 2)\n"," x = self.FFN2(x) + res.transpose(1, 2) # Strong residual\n"," x = self.compressor(x).flatten(1)\n"," x = self.res_blocks(self.input_proj(x))\n"," return self.head(x)\n","\n","model = LookThemV8().to(DEVICE)\n","optimizer = optim.AdamW(model.parameters(), lr=LR, weight_decay=WEIGHT_DECAY)\n","criterion = nn.CrossEntropyLoss()\n","scheduler = optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max=EPOCHS)\n","\n","print(f\"Model initialized. Total params: {sum(p.numel() for p in model.parameters()):,}\")\n","\n","for epoch in range(EPOCHS):\n"," model.train()\n"," for step, (data, target) in enumerate(train_loader):\n"," data, target = data.to(DEVICE), target.to(DEVICE)\n"," optimizer.zero_grad()\n"," output = model(data)\n"," loss = criterion(output, target)\n"," loss.backward()\n"," torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0)\n"," optimizer.step()\n"," if (step+1) % 50 == 0:\n"," grads = [p.grad.abs().mean().item() for p in model.parameters() if p.grad is not None]\n"," avg_grad = sum(grads)/len(grads) if grads else 0\n"," print(f\"Ep {epoch+1} | Step {step+1} | Loss {loss.item():.4f} | Grad {avg_grad:.8f}\")\n"," scheduler.step()"]},{"cell_type":"code","source":["for epoch in range(EPOCHS - 3):\n"," model.train()\n"," for step, (data, target) in enumerate(train_loader):\n"," data, target = data.to(DEVICE), target.to(DEVICE)\n"," optimizer.zero_grad()\n"," output = model(data)\n"," loss = criterion(output, target)\n"," loss.backward()\n"," torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0)\n"," optimizer.step()\n"," if (step+1) % 50 == 0:\n"," grads = [p.grad.abs().mean().item() for p in model.parameters() if p.grad is not None]\n"," avg_grad = sum(grads)/len(grads) if grads else 0\n"," print(f\"Ep {epoch+1} | Step {step+1} | Loss {loss.item():.4f} | Grad {avg_grad:.8f}\")\n"," scheduler.step()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":1000},"id":"8aRhyRYFh_1I","outputId":"ce1b682c-29bc-49be-e86d-7cac5274d74d","executionInfo":{"status":"error","timestamp":1779457422417,"user_tz":-420,"elapsed":921964,"user":{"displayName":"Apa Tau","userId":"02751722439959693254"}}},"execution_count":2,"outputs":[{"output_type":"stream","name":"stdout","text":["Ep 1 | Step 50 | Loss 2.1365 | Grad 0.00173855\n","Ep 1 | Step 100 | Loss 2.0145 | Grad 0.00156589\n","Ep 1 | Step 150 | Loss 2.2229 | Grad 0.00164188\n","Ep 1 | Step 200 | Loss 2.1642 | Grad 0.00144604\n","Ep 1 | Step 250 | Loss 2.0305 | Grad 0.00153686\n","Ep 1 | Step 300 | Loss 2.3139 | Grad 0.00131041\n","Ep 1 | Step 350 | Loss 2.2375 | Grad 0.00178409\n","Ep 1 | Step 400 | Loss 2.2298 | Grad 0.00167791\n","Ep 1 | Step 450 | Loss 2.2260 | Grad 0.00158893\n","Ep 1 | Step 500 | Loss 2.1760 | Grad 0.00136948\n","Ep 1 | Step 550 | Loss 2.0350 | Grad 0.00163608\n","Ep 1 | Step 600 | Loss 2.0969 | Grad 0.00152750\n","Ep 1 | Step 650 | Loss 2.1169 | Grad 0.00127607\n","Ep 1 | Step 700 | Loss 2.2720 | Grad 0.00157426\n","Ep 1 | Step 750 | Loss 2.4155 | Grad 0.00189562\n","Ep 1 | Step 800 | Loss 1.7447 | Grad 0.00159262\n","Ep 1 | Step 850 | Loss 1.8480 | Grad 0.00171443\n","Ep 1 | Step 900 | Loss 2.0879 | Grad 0.00157519\n","Ep 1 | Step 950 | Loss 2.0699 | Grad 0.00148770\n","Ep 1 | Step 1000 | Loss 2.3359 | Grad 0.00150285\n","Ep 1 | Step 1050 | Loss 2.2491 | Grad 0.00159482\n","Ep 1 | Step 1100 | Loss 2.3261 | Grad 0.00168051\n","Ep 1 | Step 1150 | Loss 1.8654 | Grad 0.00179979\n","Ep 1 | Step 1200 | Loss 2.1454 | Grad 0.00124413\n","Ep 1 | Step 1250 | Loss 2.2650 | Grad 0.00135890\n","Ep 1 | Step 1300 | Loss 2.2421 | Grad 0.00135313\n","Ep 2 | Step 50 | Loss 1.6596 | Grad 0.00177461\n","Ep 2 | Step 100 | Loss 2.2264 | Grad 0.00170942\n","Ep 2 | Step 150 | Loss 1.8808 | Grad 0.00167015\n","Ep 2 | Step 200 | Loss 1.8482 | Grad 0.00163940\n","Ep 2 | Step 250 | Loss 1.8200 | Grad 0.00165982\n","Ep 2 | Step 300 | Loss 1.9970 | Grad 0.00193787\n","Ep 2 | Step 350 | Loss 2.0747 | Grad 0.00177447\n","Ep 2 | Step 400 | Loss 1.8052 | Grad 0.00153881\n","Ep 2 | Step 450 | Loss 2.2350 | Grad 0.00185314\n","Ep 2 | Step 500 | Loss 2.2388 | Grad 0.00184469\n","Ep 2 | Step 550 | Loss 2.2880 | Grad 0.00183930\n","Ep 2 | Step 600 | Loss 2.1480 | Grad 0.00147943\n","Ep 2 | Step 650 | Loss 1.9225 | Grad 0.00147663\n","Ep 2 | Step 700 | Loss 2.0664 | Grad 0.00134991\n","Ep 2 | Step 750 | Loss 2.0625 | Grad 0.00158896\n","Ep 2 | Step 800 | Loss 2.3144 | Grad 0.00149477\n","Ep 2 | Step 850 | Loss 1.8646 | Grad 0.00164488\n","Ep 2 | Step 900 | Loss 2.2377 | Grad 0.00153330\n","Ep 2 | Step 950 | Loss 1.7107 | Grad 0.00156035\n","Ep 2 | Step 1000 | Loss 1.9424 | Grad 0.00157259\n","Ep 2 | Step 1050 | Loss 1.7481 | Grad 0.00148361\n","Ep 2 | Step 1100 | Loss 2.0069 | Grad 0.00155625\n","Ep 2 | Step 1150 | Loss 2.0300 | Grad 0.00147962\n","Ep 2 | Step 1200 | Loss 2.3741 | Grad 0.00192230\n","Ep 2 | Step 1250 | Loss 1.6132 | Grad 0.00182257\n","Ep 2 | Step 1300 | Loss 2.0093 | Grad 0.00148918\n","Ep 3 | Step 50 | Loss 1.8613 | Grad 0.00155335\n","Ep 3 | Step 100 | Loss 1.4294 | Grad 0.00190869\n","Ep 3 | Step 150 | Loss 1.5974 | Grad 0.00185474\n","Ep 3 | Step 200 | Loss 1.8411 | Grad 0.00172935\n","Ep 3 | Step 250 | Loss 2.0787 | Grad 0.00157514\n","Ep 3 | Step 300 | Loss 2.0542 | Grad 0.00165823\n","Ep 3 | Step 350 | Loss 2.2246 | Grad 0.00175410\n","Ep 3 | Step 400 | Loss 1.9051 | Grad 0.00185872\n","Ep 3 | Step 450 | Loss 1.7098 | Grad 0.00149513\n","Ep 3 | Step 500 | Loss 1.8542 | Grad 0.00161758\n","Ep 3 | Step 550 | Loss 1.8229 | Grad 0.00175708\n","Ep 3 | Step 600 | Loss 2.2243 | Grad 0.00149133\n","Ep 3 | Step 650 | Loss 2.0169 | Grad 0.00194545\n","Ep 3 | Step 700 | Loss 3.0391 | Grad 0.00193398\n","Ep 3 | Step 750 | Loss 2.8655 | Grad 0.00147445\n","Ep 3 | Step 800 | Loss 2.4443 | Grad 0.00220931\n","Ep 3 | Step 850 | Loss 2.3788 | Grad 0.00155789\n","Ep 3 | Step 900 | Loss 1.8999 | Grad 0.00189297\n","Ep 3 | Step 950 | Loss 2.3950 | Grad 0.00196259\n","Ep 3 | Step 1000 | Loss 2.4993 | Grad 0.00165662\n","Ep 3 | Step 1050 | Loss 2.4937 | Grad 0.00153023\n","Ep 3 | Step 1100 | Loss 2.2837 | Grad 0.00204582\n","Ep 3 | Step 1150 | Loss 2.2382 | Grad 0.00215961\n","Ep 3 | Step 1200 | Loss 2.1998 | Grad 0.00150799\n","Ep 3 | Step 1250 | Loss 1.9584 | Grad 0.00155937\n","Ep 3 | Step 1300 | Loss 2.5482 | Grad 0.00174181\n","Ep 4 | Step 50 | Loss 2.1141 | Grad 0.00173741\n","Ep 4 | Step 100 | Loss 1.8591 | Grad 0.00206947\n","Ep 4 | Step 150 | Loss 1.9802 | Grad 0.00173036\n","Ep 4 | Step 200 | Loss 1.7396 | Grad 0.00198632\n","Ep 4 | Step 250 | Loss 2.2055 | Grad 0.00170943\n","Ep 4 | Step 300 | Loss 1.9759 | Grad 0.00129646\n","Ep 4 | Step 350 | Loss 1.8227 | Grad 0.00096722\n","Ep 4 | Step 400 | Loss 1.9860 | Grad 0.00194075\n","Ep 4 | Step 450 | Loss 1.8081 | Grad 0.00179537\n","Ep 4 | Step 500 | Loss 1.9729 | Grad 0.00172339\n","Ep 4 | Step 550 | Loss 1.9754 | Grad 0.00191497\n","Ep 4 | Step 600 | Loss 1.9272 | Grad 0.00201840\n","Ep 4 | Step 650 | Loss 1.9968 | Grad 0.00166545\n","Ep 4 | Step 700 | Loss 2.1347 | Grad 0.00189379\n","Ep 4 | Step 750 | Loss 1.8762 | Grad 0.00174858\n","Ep 4 | Step 800 | Loss 1.7586 | Grad 0.00191947\n","Ep 4 | Step 850 | Loss 1.8986 | Grad 0.00187629\n","Ep 4 | Step 900 | Loss 1.7470 | Grad 0.00189350\n","Ep 4 | Step 950 | Loss 2.0624 | Grad 0.00185954\n","Ep 4 | Step 1000 | Loss 1.9380 | Grad 0.00161267\n","Ep 4 | Step 1050 | Loss 1.8512 | Grad 0.00203925\n","Ep 4 | Step 1100 | Loss 1.9075 | Grad 0.00178974\n","Ep 4 | Step 1150 | Loss 2.0232 | Grad 0.00197134\n","Ep 4 | Step 1200 | Loss 1.7074 | Grad 0.00182881\n","Ep 4 | Step 1250 | Loss 1.8137 | Grad 0.00201680\n","Ep 4 | Step 1300 | Loss 1.8079 | Grad 0.00199958\n","Ep 5 | Step 50 | Loss 1.4103 | Grad 0.00209922\n","Ep 5 | Step 100 | Loss 1.9455 | Grad 0.00178162\n","Ep 5 | Step 150 | Loss 1.8938 | Grad 0.00195428\n","Ep 5 | Step 200 | Loss 1.4581 | Grad 0.00213097\n","Ep 5 | Step 250 | Loss 1.2665 | Grad 0.00156816\n","Ep 5 | Step 300 | Loss 1.8204 | Grad 0.00185833\n","Ep 5 | Step 350 | Loss 1.4092 | Grad 0.00201365\n","Ep 5 | Step 400 | Loss 2.2275 | Grad 0.00157735\n","Ep 5 | Step 450 | Loss 1.6270 | Grad 0.00191010\n","Ep 5 | Step 500 | Loss 1.8030 | Grad 0.00172647\n","Ep 5 | Step 550 | Loss 1.9129 | Grad 0.00152830\n","Ep 5 | Step 600 | Loss 1.8871 | Grad 0.00160201\n","Ep 5 | Step 650 | Loss 1.9705 | Grad 0.00152601\n","Ep 5 | Step 700 | Loss 1.8671 | Grad 0.00171867\n","Ep 5 | Step 750 | Loss 1.6228 | Grad 0.00173272\n","Ep 5 | Step 800 | Loss 1.9240 | Grad 0.00189696\n","Ep 5 | Step 850 | Loss 1.8009 | Grad 0.00161137\n","Ep 5 | Step 900 | Loss 1.6923 | Grad 0.00132227\n","Ep 5 | Step 950 | Loss 2.2605 | Grad 0.00166239\n","Ep 5 | Step 1000 | Loss 1.7995 | Grad 0.00153079\n","Ep 5 | Step 1050 | Loss 1.5996 | Grad 0.00211150\n","Ep 5 | Step 1100 | Loss 1.9354 | Grad 0.00198824\n","Ep 5 | Step 1150 | Loss 1.9058 | Grad 0.00157765\n","Ep 5 | Step 1200 | Loss 2.1465 | Grad 0.00172296\n","Ep 5 | Step 1250 | Loss 1.9221 | Grad 0.00185514\n","Ep 5 | Step 1300 | Loss 1.6717 | Grad 0.00161635\n","Ep 6 | Step 50 | Loss 1.5530 | Grad 0.00198488\n","Ep 6 | Step 100 | Loss 1.7430 | Grad 0.00219305\n","Ep 6 | Step 150 | Loss 1.8371 | Grad 0.00221473\n","Ep 6 | Step 200 | Loss 1.6486 | Grad 0.00185611\n","Ep 6 | Step 250 | Loss 1.5958 | Grad 0.00202727\n","Ep 6 | Step 300 | Loss 1.6110 | Grad 0.00193159\n","Ep 6 | Step 350 | Loss 1.7890 | Grad 0.00159278\n","Ep 6 | Step 400 | Loss 1.7477 | Grad 0.00208245\n","Ep 6 | Step 450 | Loss 1.9627 | Grad 0.00223599\n","Ep 6 | Step 500 | Loss 1.4884 | Grad 0.00165164\n","Ep 6 | Step 550 | Loss 1.7302 | Grad 0.00152149\n","Ep 6 | Step 600 | Loss 1.2975 | Grad 0.00192363\n","Ep 6 | Step 650 | Loss 1.2940 | Grad 0.00190801\n","Ep 6 | Step 700 | Loss 1.5042 | Grad 0.00156186\n","Ep 6 | Step 750 | Loss 1.3465 | Grad 0.00154623\n","Ep 6 | Step 800 | Loss 1.7159 | Grad 0.00145637\n","Ep 6 | Step 850 | Loss 1.6177 | Grad 0.00173674\n","Ep 6 | Step 900 | Loss 1.9747 | Grad 0.00175113\n","Ep 6 | Step 950 | Loss 1.7587 | Grad 0.00188052\n","Ep 6 | Step 1000 | Loss 1.3153 | Grad 0.00173361\n","Ep 6 | Step 1050 | Loss 1.8560 | Grad 0.00178276\n","Ep 6 | Step 1100 | Loss 1.9386 | Grad 0.00159451\n","Ep 6 | Step 1150 | Loss 1.6268 | Grad 0.00169394\n","Ep 6 | Step 1200 | Loss 1.6971 | Grad 0.00170959\n","Ep 6 | Step 1250 | Loss 2.0800 | Grad 0.00202771\n","Ep 6 | Step 1300 | Loss 1.5503 | Grad 0.00220969\n","Ep 7 | Step 50 | Loss 1.6910 | Grad 0.00186754\n","Ep 7 | Step 100 | Loss 1.7838 | Grad 0.00171928\n","Ep 7 | Step 150 | Loss 1.4444 | Grad 0.00183843\n","Ep 7 | Step 200 | Loss 1.6079 | Grad 0.00187295\n","Ep 7 | Step 250 | Loss 1.4668 | Grad 0.00201912\n","Ep 7 | Step 300 | Loss 1.9363 | Grad 0.00181520\n","Ep 7 | Step 350 | Loss 1.3642 | Grad 0.00197354\n","Ep 7 | Step 400 | Loss 1.5843 | Grad 0.00185300\n","Ep 7 | Step 450 | Loss 1.7287 | Grad 0.00181071\n","Ep 7 | Step 500 | Loss 1.4587 | Grad 0.00145472\n","Ep 7 | Step 550 | Loss 1.5767 | Grad 0.00201080\n","Ep 7 | Step 600 | Loss 1.6293 | Grad 0.00194596\n","Ep 7 | Step 650 | Loss 1.5271 | Grad 0.00216784\n","Ep 7 | Step 700 | Loss 1.7355 | Grad 0.00184115\n","Ep 7 | Step 750 | Loss 1.4806 | Grad 0.00164597\n","Ep 7 | Step 800 | Loss 1.5546 | Grad 0.00196592\n","Ep 7 | Step 850 | Loss 1.9650 | Grad 0.00165946\n","Ep 7 | Step 900 | Loss 1.9996 | Grad 0.00202244\n","Ep 7 | Step 950 | Loss 1.7631 | Grad 0.00173959\n","Ep 7 | Step 1000 | Loss 1.7983 | Grad 0.00149975\n","Ep 7 | Step 1050 | Loss 1.9417 | Grad 0.00203794\n","Ep 7 | Step 1100 | Loss 1.7438 | Grad 0.00168915\n","Ep 7 | Step 1150 | Loss 1.4928 | Grad 0.00195189\n","Ep 7 | Step 1200 | Loss 1.7306 | Grad 0.00169811\n","Ep 7 | Step 1250 | Loss 1.4769 | Grad 0.00189058\n","Ep 7 | Step 1300 | Loss 1.4957 | Grad 0.00172448\n","Ep 8 | Step 50 | Loss 1.2252 | Grad 0.00188737\n","Ep 8 | Step 100 | Loss 1.6711 | Grad 0.00180122\n","Ep 8 | Step 150 | Loss 1.9349 | Grad 0.00192090\n","Ep 8 | Step 200 | Loss 1.4114 | Grad 0.00195194\n","Ep 8 | Step 250 | Loss 1.6143 | Grad 0.00204046\n","Ep 8 | Step 300 | Loss 1.3812 | Grad 0.00215780\n","Ep 8 | Step 350 | Loss 1.6685 | Grad 0.00167961\n","Ep 8 | Step 400 | Loss 1.3010 | Grad 0.00156003\n","Ep 8 | Step 450 | Loss 1.4129 | Grad 0.00191479\n","Ep 8 | Step 500 | Loss 1.7975 | Grad 0.00203489\n","Ep 8 | Step 550 | Loss 1.7706 | Grad 0.00181164\n","Ep 8 | Step 600 | Loss 1.7579 | Grad 0.00195250\n","Ep 8 | Step 650 | Loss 1.8994 | Grad 0.00201964\n","Ep 8 | Step 700 | Loss 1.4440 | Grad 0.00202445\n","Ep 8 | Step 750 | Loss 1.7053 | Grad 0.00213706\n","Ep 8 | Step 800 | Loss 1.6839 | Grad 0.00191493\n","Ep 8 | Step 850 | Loss 1.5286 | Grad 0.00208419\n","Ep 8 | Step 900 | Loss 1.6180 | Grad 0.00135436\n","Ep 8 | Step 950 | Loss 1.4814 | Grad 0.00168417\n","Ep 8 | Step 1000 | Loss 1.3659 | Grad 0.00195383\n","Ep 8 | Step 1050 | Loss 1.3346 | Grad 0.00180045\n","Ep 8 | Step 1100 | Loss 1.5186 | Grad 0.00194384\n","Ep 8 | Step 1150 | Loss 1.6878 | Grad 0.00197898\n","Ep 8 | Step 1200 | Loss 1.3345 | Grad 0.00169066\n","Ep 8 | Step 1250 | Loss 1.6262 | Grad 0.00197704\n","Ep 8 | Step 1300 | Loss 1.6268 | Grad 0.00198637\n","Ep 9 | Step 50 | Loss 1.5609 | Grad 0.00203342\n","Ep 9 | Step 100 | Loss 1.3217 | Grad 0.00184343\n","Ep 9 | Step 150 | Loss 1.6130 | Grad 0.00189633\n","Ep 9 | Step 200 | Loss 1.5129 | Grad 0.00182160\n","Ep 9 | Step 250 | Loss 1.5751 | Grad 0.00150895\n","Ep 9 | Step 300 | Loss 1.3628 | Grad 0.00178173\n","Ep 9 | Step 350 | Loss 1.4551 | Grad 0.00179062\n","Ep 9 | Step 400 | Loss 1.6831 | Grad 0.00206626\n","Ep 9 | Step 450 | Loss 1.3289 | Grad 0.00186973\n","Ep 9 | Step 500 | Loss 1.8083 | Grad 0.00138770\n","Ep 9 | Step 550 | Loss 1.2540 | Grad 0.00185758\n","Ep 9 | Step 600 | Loss 1.2077 | Grad 0.00155737\n","Ep 9 | Step 650 | Loss 1.5649 | Grad 0.00209376\n","Ep 9 | Step 700 | Loss 1.5940 | Grad 0.00180183\n","Ep 9 | Step 750 | Loss 1.5375 | Grad 0.00208772\n","Ep 9 | Step 800 | Loss 1.3013 | Grad 0.00147646\n","Ep 9 | Step 850 | Loss 1.3343 | Grad 0.00169505\n","Ep 9 | Step 900 | Loss 1.5140 | Grad 0.00156980\n","Ep 9 | Step 950 | Loss 1.4658 | Grad 0.00158870\n","Ep 9 | Step 1000 | Loss 1.2272 | Grad 0.00187325\n","Ep 9 | Step 1050 | Loss 1.7694 | Grad 0.00132946\n","Ep 9 | Step 1100 | Loss 1.2716 | Grad 0.00216755\n","Ep 9 | Step 1150 | Loss 1.2377 | Grad 0.00184110\n","Ep 9 | Step 1200 | Loss 1.5150 | Grad 0.00147893\n","Ep 9 | Step 1250 | Loss 1.5683 | Grad 0.00212760\n","Ep 9 | Step 1300 | Loss 1.5839 | Grad 0.00200724\n","Ep 10 | Step 50 | Loss 1.3648 | Grad 0.00193225\n","Ep 10 | Step 100 | Loss 1.1941 | Grad 0.00216724\n","Ep 10 | Step 150 | Loss 1.7200 | Grad 0.00195787\n","Ep 10 | Step 200 | Loss 1.2921 | Grad 0.00152486\n","Ep 10 | Step 250 | Loss 1.3754 | Grad 0.00176435\n","Ep 10 | Step 300 | Loss 1.4750 | Grad 0.00154962\n","Ep 10 | Step 350 | Loss 1.7273 | Grad 0.00240482\n","Ep 10 | Step 400 | Loss 1.9095 | Grad 0.00196441\n","Ep 10 | Step 450 | Loss 2.0732 | Grad 0.00223262\n","Ep 10 | Step 500 | Loss 1.5064 | Grad 0.00205962\n","Ep 10 | Step 550 | Loss 1.5878 | Grad 0.00199282\n","Ep 10 | Step 600 | Loss 2.0774 | Grad 0.00179218\n","Ep 10 | Step 650 | Loss 2.0071 | Grad 0.00193135\n","Ep 10 | Step 700 | Loss 1.3318 | Grad 0.00168926\n","Ep 10 | Step 750 | Loss 1.4713 | Grad 0.00186605\n","Ep 10 | Step 800 | Loss 1.3780 | Grad 0.00163646\n","Ep 10 | Step 850 | Loss 1.4536 | Grad 0.00208532\n","Ep 10 | Step 900 | Loss 1.3528 | Grad 0.00167349\n","Ep 10 | Step 950 | Loss 1.5153 | Grad 0.00064955\n","Ep 10 | Step 1000 | Loss 1.6508 | Grad 0.00200254\n","Ep 10 | Step 1050 | Loss 1.7916 | Grad 0.00192328\n","Ep 10 | Step 1100 | Loss 1.9305 | Grad 0.00189280\n","Ep 10 | Step 1150 | Loss 1.4302 | Grad 0.00185064\n","Ep 10 | Step 1200 | Loss 1.5404 | Grad 0.00179715\n","Ep 10 | Step 1250 | Loss 1.6548 | Grad 0.00191919\n","Ep 10 | Step 1300 | Loss 1.5745 | Grad 0.00233163\n","Ep 11 | Step 50 | Loss 1.6625 | Grad 0.00182069\n","Ep 11 | Step 100 | Loss 1.6390 | Grad 0.00183867\n","Ep 11 | Step 150 | Loss 1.4833 | Grad 0.00111724\n","Ep 11 | Step 200 | Loss 1.4980 | Grad 0.00187862\n","Ep 11 | Step 250 | Loss 1.3870 | Grad 0.00209350\n","Ep 11 | Step 300 | Loss 1.2844 | Grad 0.00191392\n","Ep 11 | Step 350 | Loss 1.1578 | Grad 0.00179986\n","Ep 11 | Step 400 | Loss 1.5500 | Grad 0.00178757\n","Ep 11 | Step 450 | Loss 1.2552 | Grad 0.00199292\n","Ep 11 | Step 500 | Loss 1.7910 | Grad 0.00218453\n","Ep 11 | Step 550 | Loss 1.6306 | Grad 0.00182578\n","Ep 11 | Step 600 | Loss 1.5594 | Grad 0.00207796\n","Ep 11 | Step 650 | Loss 1.6361 | Grad 0.00184522\n","Ep 11 | Step 700 | Loss 1.4165 | Grad 0.00202910\n","Ep 11 | Step 750 | Loss 1.5605 | Grad 0.00183229\n","Ep 11 | Step 800 | Loss 1.5218 | Grad 0.00222147\n","Ep 11 | Step 850 | Loss 1.1609 | Grad 0.00183870\n","Ep 11 | Step 900 | Loss 1.3803 | Grad 0.00188163\n","Ep 11 | Step 950 | Loss 1.4087 | Grad 0.00187030\n","Ep 11 | Step 1000 | Loss 1.4576 | Grad 0.00190541\n","Ep 11 | Step 1050 | Loss 1.5229 | Grad 0.00209261\n","Ep 11 | Step 1100 | Loss 1.4512 | Grad 0.00205196\n","Ep 11 | Step 1150 | Loss 1.6478 | Grad 0.00179252\n","Ep 11 | Step 1200 | Loss 1.2794 | Grad 0.00202409\n","Ep 11 | Step 1250 | Loss 1.5858 | Grad 0.00200117\n","Ep 11 | Step 1300 | Loss 1.4142 | Grad 0.00198084\n"]},{"output_type":"error","ename":"KeyboardInterrupt","evalue":"","traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)","\u001b[0;32m/tmp/ipykernel_7384/15432679.py\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mepoch\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mEPOCHS\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0;36m3\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtrain\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mstep\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtarget\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtrain_loader\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtarget\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mDEVICE\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtarget\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mDEVICE\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0moptimizer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mzero_grad\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.12/dist-packages/torch/utils/data/dataloader.py\u001b[0m in \u001b[0;36m__next__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 739\u001b[0m \u001b[0;31m# TODO(https://github.com/pytorch/pytorch/issues/76750)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 740\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_reset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# type: ignore[call-arg]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 741\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_next_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 742\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_num_yielded\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 743\u001b[0m if (\n","\u001b[0;32m/usr/local/lib/python3.12/dist-packages/torch/utils/data/dataloader.py\u001b[0m in \u001b[0;36m_next_data\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1522\u001b[0m \u001b[0;34m\"Invalid iterator state: shutdown or no outstanding tasks when fetching next data\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1523\u001b[0m )\n\u001b[0;32m-> 1524\u001b[0;31m \u001b[0midx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1525\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_tasks_outstanding\u001b[0m \u001b[0;34m-=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1526\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_dataset_kind\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0m_DatasetKind\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mIterable\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.12/dist-packages/torch/utils/data/dataloader.py\u001b[0m in \u001b[0;36m_get_data\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1471\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_pin_memory\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1472\u001b[0m \u001b[0;32mwhile\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_pin_memory_thread\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_alive\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1473\u001b[0;31m \u001b[0msuccess\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_try_get_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1474\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0msuccess\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1475\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.12/dist-packages/torch/utils/data/dataloader.py\u001b[0m in \u001b[0;36m_try_get_data\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 1308\u001b[0m \u001b[0;31m# (bool: whether successfully get data, any: data if successful else None)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1309\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1310\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data_queue\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1311\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1312\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mException\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/lib/python3.12/queue.py\u001b[0m in \u001b[0;36mget\u001b[0;34m(self, block, timeout)\u001b[0m\n\u001b[1;32m 178\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mremaining\u001b[0m \u001b[0;34m<=\u001b[0m \u001b[0;36m0.0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 179\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mEmpty\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 180\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnot_empty\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwait\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mremaining\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 181\u001b[0m \u001b[0mitem\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 182\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnot_full\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnotify\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/lib/python3.12/threading.py\u001b[0m in \u001b[0;36mwait\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 357\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 358\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mtimeout\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 359\u001b[0;31m \u001b[0mgotit\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mwaiter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0macquire\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 360\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 361\u001b[0m \u001b[0mgotit\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mwaiter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0macquire\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;31mKeyboardInterrupt\u001b[0m: "]}]},{"cell_type":"code","source":["def calculate_accuracy(model, data_loader, device):\n"," model.eval() # Set the model to evaluation mode\n"," correct = 0\n"," total = 0\n"," with torch.no_grad():\n"," for data, target in data_loader:\n"," data, target = data.to(device), target.to(device)\n"," output = model(data)\n"," _, predicted = output.max(1)\n"," total += target.size(0)\n"," correct += predicted.eq(target).sum().item()\n"," return 100. * correct / total\n","\n","# Calculate training accuracy\n","# Assuming model, train_loader, and DEVICE are available from previous cells\n","#train_accuracy = calculate_accuracy(model, train_loader, DEVICE)\n","#print(f\"Training Accuracy: {train_accuracy:.2f}%\")\n","\n","# Calculate test accuracy (using val_loader as the test set)\n","# Assuming model, val_loader, and DEVICE are available from previous cells\n","test_accuracy = calculate_accuracy(model, val_loader, DEVICE)\n","print(f\"Test Accuracy: {test_accuracy:.2f}%\")\n","# Assuming model, train_loader, and DEVICE are available from previous cells\n","train_accuracy = calculate_accuracy(model, train_loader, DEVICE)\n","print(f\"Training Accuracy: {train_accuracy:.2f}%\")"],"metadata":{"id":"GR-iX2_Vm0m0","colab":{"base_uri":"https://localhost:8080/","height":356},"executionInfo":{"status":"error","timestamp":1779458071477,"user_tz":-420,"elapsed":392575,"user":{"displayName":"Apa Tau","userId":"02751722439959693254"}},"outputId":"b5b511ec-24f4-4171-dc89-3075fb7067dd"},"execution_count":5,"outputs":[{"output_type":"stream","name":"stdout","text":["Test Accuracy: 49.72%\n"]},{"output_type":"error","ename":"KeyboardInterrupt","evalue":"","traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)","\u001b[0;32m/tmp/ipykernel_7384/2246548570.py\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 22\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Test Accuracy: {test_accuracy:.2f}%\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 23\u001b[0m \u001b[0;31m# Assuming model, train_loader, and DEVICE are available from previous cells\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 24\u001b[0;31m \u001b[0mtrain_accuracy\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcalculate_accuracy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtrain_loader\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mDEVICE\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 25\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Training Accuracy: {train_accuracy:.2f}%\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/tmp/ipykernel_7384/2246548570.py\u001b[0m in \u001b[0;36mcalculate_accuracy\u001b[0;34m(model, data_loader, device)\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mtotal\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mno_grad\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtarget\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mdata_loader\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 7\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtarget\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdevice\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtarget\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdevice\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0moutput\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.12/dist-packages/torch/utils/data/dataloader.py\u001b[0m in \u001b[0;36m__next__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 739\u001b[0m \u001b[0;31m# TODO(https://github.com/pytorch/pytorch/issues/76750)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 740\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_reset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# type: ignore[call-arg]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 741\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_next_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 742\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_num_yielded\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 743\u001b[0m if (\n","\u001b[0;32m/usr/local/lib/python3.12/dist-packages/torch/utils/data/dataloader.py\u001b[0m in \u001b[0;36m_next_data\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1522\u001b[0m \u001b[0;34m\"Invalid iterator state: shutdown or no outstanding tasks when fetching next data\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1523\u001b[0m )\n\u001b[0;32m-> 1524\u001b[0;31m \u001b[0midx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1525\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_tasks_outstanding\u001b[0m \u001b[0;34m-=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1526\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_dataset_kind\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0m_DatasetKind\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mIterable\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.12/dist-packages/torch/utils/data/dataloader.py\u001b[0m in \u001b[0;36m_get_data\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1471\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_pin_memory\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1472\u001b[0m \u001b[0;32mwhile\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_pin_memory_thread\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_alive\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1473\u001b[0;31m \u001b[0msuccess\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_try_get_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1474\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0msuccess\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1475\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.12/dist-packages/torch/utils/data/dataloader.py\u001b[0m in \u001b[0;36m_try_get_data\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 1308\u001b[0m \u001b[0;31m# (bool: whether successfully get data, any: data if successful else None)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1309\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1310\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data_queue\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1311\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1312\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mException\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/lib/python3.12/queue.py\u001b[0m in \u001b[0;36mget\u001b[0;34m(self, block, timeout)\u001b[0m\n\u001b[1;32m 178\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mremaining\u001b[0m \u001b[0;34m<=\u001b[0m \u001b[0;36m0.0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 179\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mEmpty\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 180\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnot_empty\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwait\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mremaining\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 181\u001b[0m \u001b[0mitem\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 182\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnot_full\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnotify\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/lib/python3.12/threading.py\u001b[0m in \u001b[0;36mwait\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 357\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 358\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mtimeout\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 359\u001b[0;31m \u001b[0mgotit\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mwaiter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0macquire\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 360\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 361\u001b[0m \u001b[0mgotit\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mwaiter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0macquire\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;31mKeyboardInterrupt\u001b[0m: "]}]},{"cell_type":"code","source":["import torchinfo\n","\n","torchinfo.summary(model, input_size=(1, 3, 256, 256))"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"M29hGY-q92Wq","executionInfo":{"status":"ok","timestamp":1779458279972,"user_tz":-420,"elapsed":72,"user":{"displayName":"Apa Tau","userId":"02751722439959693254"}},"outputId":"c24ab5c6-c842-44d4-df97-7ab318817805"},"execution_count":8,"outputs":[{"output_type":"execute_result","data":{"text/plain":["==========================================================================================\n","Layer (type:depth-idx) Output Shape Param #\n","==========================================================================================\n","LookThemV8 [1, 100] --\n","├─Sequential: 1-1 [1, 64, 8, 8] --\n","│ └─Conv2d: 2-1 [1, 16, 128, 128] 448\n","│ └─BatchNorm2d: 2-2 [1, 16, 128, 128] 32\n","│ └─GELU: 2-3 [1, 16, 128, 128] --\n","│ └─Conv2d: 2-4 [1, 32, 64, 64] 4,640\n","│ └─BatchNorm2d: 2-5 [1, 32, 64, 64] 64\n","│ └─GELU: 2-6 [1, 32, 64, 64] --\n","│ └─Conv2d: 2-7 [1, 64, 32, 32] 18,496\n","│ └─BatchNorm2d: 2-8 [1, 64, 32, 32] 128\n","│ └─GELU: 2-9 [1, 64, 32, 32] --\n","│ └─AdaptiveMaxPool2d: 2-10 [1, 64, 8, 8] --\n","├─LookThemLayer: 1-2 [1, 64, 64] 270,592\n","├─Sequential: 1-3 [1, 64, 8, 8] --\n","│ └─Conv2d: 2-11 [1, 16, 128, 128] 448\n","│ └─BatchNorm2d: 2-12 [1, 16, 128, 128] 32\n","│ └─GELU: 2-13 [1, 16, 128, 128] --\n","│ └─Conv2d: 2-14 [1, 32, 128, 128] 4,640\n","│ └─BatchNorm2d: 2-15 [1, 32, 128, 128] 64\n","│ └─GELU: 2-16 [1, 32, 128, 128] --\n","│ └─Conv2d: 2-17 [1, 64, 128, 128] 18,496\n","│ └─BatchNorm2d: 2-18 [1, 64, 128, 128] 128\n","│ └─GELU: 2-19 [1, 64, 128, 128] --\n","│ └─AdaptiveMaxPool2d: 2-20 [1, 64, 8, 8] --\n","├─LookThemLayer: 1-4 [1, 64, 64] 270,592\n","├─LookThemLayer: 1-5 [1, 64, 128] 532,736\n","├─LayerNorm: 1-6 [1, 64, 128] 256\n","├─Conv1d: 1-7 [1, 64, 64] 8,256\n","├─LookThemLayer: 1-8 [1, 64, 64] 270,592\n","├─Conv1d: 1-9 [1, 64, 64] 4,160\n","├─Conv1d: 1-10 [1, 16, 64] 1,040\n","├─Linear: 1-11 [1, 256] 262,400\n","├─Sequential: 1-12 [1, 256] --\n","│ └─LiteResidualBlock: 2-21 [1, 256] --\n","│ │ └─Sequential: 3-1 [1, 256] 131,584\n","│ │ └─LayerNorm: 3-2 [1, 256] 512\n","│ └─LiteResidualBlock: 2-22 [1, 256] --\n","│ │ └─Sequential: 3-3 [1, 256] 131,584\n","│ │ └─LayerNorm: 3-4 [1, 256] 512\n","├─Sequential: 1-13 [1, 100] --\n","│ └─Linear: 2-23 [1, 128] 32,896\n","│ └─GELU: 2-24 [1, 128] --\n","│ └─Linear: 2-25 [1, 100] 12,900\n","==========================================================================================\n","Total params: 1,978,228\n","Trainable params: 1,978,228\n","Non-trainable params: 0\n","Total mult-adds (Units.MEGABYTES): 433.12\n","==========================================================================================\n","Input size (MB): 0.79\n","Forward/backward pass size (MB): 37.02\n","Params size (MB): 7.91\n","Estimated Total Size (MB): 45.72\n","=========================================================================================="]},"metadata":{},"execution_count":8}]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"fea66bc4","executionInfo":{"status":"ok","timestamp":1779458268341,"user_tz":-420,"elapsed":7398,"user":{"displayName":"Apa Tau","userId":"02751722439959693254"}},"outputId":"47e975b0-fdf1-4b39-a09a-c5cc8faac407"},"source":["!pip install torchinfo"],"execution_count":7,"outputs":[{"output_type":"stream","name":"stdout","text":["Collecting torchinfo\n"," Downloading torchinfo-1.8.0-py3-none-any.whl.metadata (21 kB)\n","Downloading torchinfo-1.8.0-py3-none-any.whl (23 kB)\n","Installing collected packages: torchinfo\n","Successfully installed torchinfo-1.8.0\n"]}]},{"cell_type":"code","source":["import os\n","import torch\n","\n","torch.save(model.state_dict(), MODEL_SAVE_PATH)\n","\n","real_size = os.path.getsize(MODEL_SAVE_PATH) / (1024 * 1024)\n","\n","print(\"\\nâš¡ MODEL SAVED!\")\n","print(f\"📁 Path : {MODEL_SAVE_PATH}\")\n","print(f\"📦 Size : {real_size:.2f} MB\")"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"1Ne-oSc17cbP","executionInfo":{"status":"ok","timestamp":1779457528155,"user_tz":-420,"elapsed":65,"user":{"displayName":"Apa Tau","userId":"02751722439959693254"}},"outputId":"287b2379-ef6f-4805-90f8-b371bea52259"},"execution_count":4,"outputs":[{"output_type":"stream","name":"stdout","text":["\n","âš¡ MODEL SAVED!\n","📁 Path : LookThem_V8_Stabilized.pth\n","📦 Size : 7.58 MB\n"]}]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":368,"referenced_widgets":["7325d88f1099481da925e89ca5a8a3fb","86a719e351db4a74a28025188e6dfed2","f4c8b028e7d440b5baeb3a162915327a","4f54fba5392b4f81a4ab4d60b1101442","72013749be64470c9d47271a80183fc6","6d2f81d472e24584afac3f8a67a71ae0","75f63e06a336404783ba07052524a473","a2d9e2b5731e48f187d9cc0e425d9c46","c02a66e3b27540179d88eb5a497d750b","ed1ae4a0fc374f72aa39679205062373","286ff85d53ae46a4b232d7cca941dde8","d2480033aac94b6099ea8c0d3e9e9c94","601eb44d32a54e688c9733045d48b294","4ab7cb6710ae4d17bc5d57f24d00b47f","edf70b19db87433e823550136cc39be7","9fd9593d459545f5982de0ad307d47f7","aa67eecf06b74cd7a874ec01b2965fb1","65c3f3039e03463fb1c5844bc2e31b9a","1485f505f52f45eab5f1adcc8fd004c0","72d7895353f6400e839d9e5dcbdf80d5","2d555ac1a414444fbb7690b5335d28aa","589b3f6d35bc4fa185e1c3a536dea9ce","8516ddba9ad042488e68e9ee7213adbe","eb67cd5c9aeb44d38170f6e4f9ddf2e7","40863b90d78242208cdfd464b1cfa093","8e76d167b49041c9aa3c0ada8e0c139b","d15a132a7562464e8490aec553f6a718","6805490dae034188b32fa8290370e78c","3ab4d115cb0d4163b98145152c33d4a0","a2cc00f5246a464ea3b0a4a5b1942839","8dff21a4cdfd4e11bd1ea4597e22e04e","37ba94e89ada4e0fab30180a37b2c665","2a0675f7588c4c828f2808be35097022","546ac3fc53d248cc8fecd622e76ddf5e","7cea74b439804c20989a41d5d987096b","39c8896a0b0f45308346de1928a37008","45d56470866641f39cda96fed2c6f6eb","3114ed8b8b7440e4bcbebe3012d9f8e3","b20c6ca392e448d5b55894d288ee8579","a5e976ca30a74af0be0ab15990fb633c","5dcb2f8031874a7ea5413484df1e9ca8","25dc8f95a939465ebeaabb87e296c1bd","52594dc6a6274df6860aaaa745d55f9e","8f1015ae189c4d48b95be3b26d621649","e4b7bd8b29bd41fe9e6eef4a3b85ece9","9a01e519f09f41d187ba18f4c7c7cd63","d9dfa9c7d3f64a119619244aa6fdec72","6c5cbabf6ebb44da86f94f0f4d04b0e1","20a999db12c24dfaa4e56aeeaab3ba02","0e9d1f74a42a442395f2c822340fd9b1","10593b86c7b8462c9d6aedc897b019ae","3908f7f59f374ef0bf595167880b6f0c","88fc57e6d3a943df9239e05482a14e9c","c7872e29107840a787dfd2f65ef02968","b04fc416277d45e7a0d5b93ce2cd5d66"]},"outputId":"7b8507b6-4de1-4fc9-f974-3f0599cc2dac","id":"ruvbWQd5Rl-q"},"outputs":[{"output_type":"stream","name":"stdout","text":["📡 Loading ImageNet-100...\n"]},{"output_type":"display_data","data":{"text/plain":["Resolving data files: 0%| | 0/17 [00:00btj\",\n"," x,\n"," self.mod1_w1\n"," )\n"," + self.mod1_b1\n"," )\n","\n"," out_m1 = (\n"," torch.einsum(\n"," \"btj,tjk->btk\",\n"," F.gelu(h1),\n"," self.mod1_w2\n"," )\n"," + self.mod1_b2\n"," )\n","\n"," h2 = (\n"," torch.einsum(\n"," \"bti,tij->btj\",\n"," x,\n"," self.mod2_w1\n"," )\n"," + self.mod2_b1\n"," )\n","\n"," out_m2 = (\n"," torch.einsum(\n"," \"btj,tjk->btk\",\n"," F.gelu(h2),\n"," self.mod2_w2\n"," )\n"," + self.mod2_b2\n"," )\n","\n"," out_m2_safe = out_m2 + 1e-5\n","\n"," compare = torch.tanh(\n"," out_m1.unsqueeze(2)\n"," / out_m2_safe.unsqueeze(1)\n"," )\n","\n"," compare2 = torch.tanh(\n"," out_m1.unsqueeze(1)\n"," / out_m2_safe.unsqueeze(2)\n"," )\n","\n"," bias_reshaped = self.trans_b.view(\n"," 1, 1, N, 1\n"," )\n","\n"," trans_compare = (\n"," torch.einsum(\n"," \"bije,jef->bijf\",\n"," compare,\n"," self.trans_w\n"," )\n"," + bias_reshaped\n"," )\n","\n"," trans_compare2 = (\n"," torch.einsum(\n"," \"bije,jef->bijf\",\n"," compare2,\n"," self.trans_w\n"," )\n"," + bias_reshaped\n"," )\n","\n"," interaksi = (\n"," trans_compare * x.unsqueeze(2)\n"," + trans_compare2 * x.unsqueeze(1)\n"," ) / 2\n","\n"," mask = 1.0 - torch.eye(\n"," N,\n"," device=x.device\n"," )\n","\n"," interaksi_masked = (\n"," interaksi\n"," * mask.view(1, N, N, 1)\n"," )\n","\n"," return interaksi_masked.sum(dim=2) / (N - 1.0)\n","\n","# ============================================================\n","# LITE RESIDUAL BLOCK\n","# ============================================================\n","\n","class LiteResidualBlock(nn.Module):\n","\n"," def __init__(self, dim, dropout=0.05):\n","\n"," super().__init__()\n","\n"," self.block = nn.Sequential(\n","\n"," nn.Linear(dim, dim),\n"," nn.GELU(),\n"," nn.Dropout(dropout),\n","\n"," nn.Linear(dim, dim)\n"," )\n","\n"," self.norm = nn.LayerNorm(dim)\n","\n"," def forward(self, x):\n","\n"," residual = x\n","\n"," x = self.block(x)\n","\n"," x = x + residual\n","\n"," x = self.norm(x)\n","\n"," return x\n","\n","# ============================================================\n","# FULL MODEL\n","# ============================================================\n","\n","class LookThemV8(nn.Module):\n","\n"," def __init__(self):\n","\n"," super().__init__()\n","\n"," # ====================================================\n"," # STREAM A\n"," # ====================================================\n","\n"," self.stream_a = nn.Sequential(\n","\n"," nn.Conv2d(\n"," 3,\n"," 16,\n"," kernel_size=3,\n"," stride=2,\n"," padding=1\n"," ),\n","\n"," nn.BatchNorm2d(16),\n"," nn.GELU(),\n","\n"," nn.Conv2d(\n"," 16,\n"," 32,\n"," kernel_size=3,\n"," stride=2,\n"," padding=1\n"," ),\n","\n"," nn.BatchNorm2d(32),\n"," nn.GELU(),\n","\n"," nn.Conv2d(\n"," 32,\n"," 64,\n"," kernel_size=3,\n"," stride=2,\n"," padding=1\n"," ),\n","\n"," nn.BatchNorm2d(64),\n"," nn.GELU(),\n","\n"," nn.AdaptiveMaxPool2d((8, 8))\n"," )\n","\n"," # ====================================================\n"," # STREAM B\n"," # ====================================================\n","\n"," self.stream_b = nn.Sequential(\n","\n"," nn.Conv2d(\n"," 3,\n"," 16,\n"," kernel_size=3,\n"," stride=2,\n"," padding=1\n"," ),\n","\n"," nn.BatchNorm2d(16),\n"," nn.GELU(),\n","\n"," nn.Conv2d(\n"," 16,\n"," 32,\n"," kernel_size=3,\n"," stride=1,\n"," padding=1\n"," ),\n","\n"," nn.BatchNorm2d(32),\n"," nn.GELU(),\n","\n"," nn.Conv2d(\n"," 32,\n"," 64,\n"," kernel_size=3,\n"," stride=1,\n"," padding=1\n"," ),\n","\n"," nn.BatchNorm2d(64),\n"," nn.GELU(),\n","\n","\n"," nn.AdaptiveMaxPool2d((8, 8))\n"," )\n","\n"," # ====================================================\n"," # LOOKTHEM\n"," # ====================================================\n","\n"," self.lookthemA = LookThemLayer(\n"," num_tokens=64,\n"," in_features=64,\n"," hidden_dim=32\n"," )\n","\n"," self.lookthemB = LookThemLayer(\n"," num_tokens=64,\n"," in_features=64,\n"," hidden_dim=32\n"," )\n","\n","\n"," self.lookthem = LookThemLayer(\n"," num_tokens=64,\n"," in_features=128,\n"," hidden_dim=32\n"," )\n","\n"," self.FFN1 = nn.Sequential(\n"," nn.Conv1d(128, 32, kernel_size=1),\n"," nn.GELU(),\n"," nn.Conv1d(32, 64, kernel_size=1)\n"," )\n"," # view back to 4 features\n"," self.lookthem2 = LookThemLayer(\n"," num_tokens=64,\n"," in_features=64,\n"," hidden_dim=32\n"," )\n"," self.FFN2 = nn.Sequential(\n"," nn.Conv1d(64, 32, kernel_size=1),\n"," nn.GELU(),\n"," nn.Conv1d(32, 64, kernel_size=1)\n"," )\n"," # view back to 4 features\n"," self.lookthem3 = LookThemLayer(\n"," num_tokens=64,\n"," in_features=64,\n"," hidden_dim=32\n"," )\n"," self.FFN3 = nn.Sequential(\n"," nn.Conv1d(64, 32, kernel_size=1),\n"," nn.GELU(),\n"," nn.Conv1d(32, 64, kernel_size=1)\n"," )\n","\n"," self.compressor = nn.Conv1d(\n"," 64,\n"," 16,\n"," kernel_size=1\n"," )\n","\n"," self.imageCorrupter = nn.Dropout(0.1)\n","\n"," # ====================================================\n"," # CLASSIFIER\n"," # ====================================================\n","\n"," self.flatten = nn.Flatten()\n","\n"," self.input_proj = nn.Sequential(\n","\n"," nn.Linear(64 * 16, 256),\n"," nn.GELU(),\n"," nn.Dropout(0.08)\n"," )\n","\n"," self.res1 = LiteResidualBlock(256, 0.05)\n","\n"," self.res2 = LiteResidualBlock(256, 0.05)\n","\n"," self.head = nn.Sequential(\n","\n"," nn.Linear(256, 128),\n"," nn.GELU(),\n","\n"," nn.Linear(128, 100)\n"," )\n","\n"," def extract_features(self, x):\n","\n"," batch_size = x.size(0)\n","\n"," # ====================================================\n"," # STREAM A\n"," # ====================================================\n","\n"," feat_a = self.stream_a(x)\n","\n"," feat_a_tokens = feat_a.view(\n"," batch_size,\n"," 64,\n"," 64\n"," ).transpose(1, 2)\n","\n"," feat_a_tokens = self.imageCorrupter(\n"," feat_a_tokens\n"," )\n","\n"," feat_a_lt = self.lookthemA(feat_a_tokens)\n","\n"," # ====================================================\n"," # STREAM B\n"," # ====================================================\n","\n"," feat_b = self.stream_b(x)\n","\n"," feat_b_tokens = feat_b.view(\n"," batch_size,\n"," 64,\n"," 64\n"," ).transpose(1, 2)\n","\n"," feat_b_tokens = self.imageCorrupter(\n"," feat_b_tokens\n"," )\n","\n"," feat_b_lt = self.lookthemB(feat_b_tokens)\n","\n"," # ====================================================\n"," # COMBINE\n"," # ====================================================\n","\n"," tokens_combined = torch.cat(\n"," [feat_a_lt, feat_b_lt],\n"," dim=2\n"," )\n","\n"," out_lookthem = self.lookthem(tokens_combined)\n","\n"," out_lookthem = out_lookthem.transpose(1, 2)\n","\n"," return out_lookthem\n","\n"," def logic1(self, x):\n"," x = self.lookthem2(x)\n"," x = self.FFN2(x)\n"," return x\n","\n"," def logic2(self, x):\n"," x = self.lookthem3(x)\n"," x = self.FFN3(x)\n"," return x\n","\n"," def forward(self, x):\n","\n"," x = self.extract_features(x)\n","\n"," x = self.FFN1(x)\n","\n"," x = self.logic1(x)\n","\n"," # Re-enable residual here for better gradient flow\n"," x = self.logic2(x) + x\n","\n"," x = self.compressor(x)\n","\n"," x = self.flatten(x)\n","\n"," x = self.input_proj(x)\n","\n"," x = self.res1(x)\n","\n"," x = self.res2(x)\n","\n"," x = self.head(x)\n","\n"," return x\n","\n","# ============================================================\n","# MODEL INIT\n","# ============================================================\n","\n","model = LookThemV8().to(DEVICE)\n","\n","# ============================================================\n","# PARAMETER COUNT\n","# ============================================================\n","\n","total_params = sum(\n"," p.numel()\n"," for p in model.parameters()\n",")\n","\n","print(f\"\\n🧠Total Parameters : {total_params:,}\")\n","\n","size_mb = total_params * 4 / (1024 * 1024)\n","\n","print(f\"📦 Estimated Size : {size_mb:.2f} MB\")\n","\n","# ============================================================\n","# LOSS & OPTIMIZER\n","# ============================================================\n","\n","criterion = nn.CrossEntropyLoss()\n","\n","optimizer = optim.AdamW(\n"," model.parameters(),\n"," lr=LR,\n"," weight_decay=WEIGHT_DECAY\n",")\n","\n","scheduler = optim.lr_scheduler.CosineAnnealingLR(\n"," optimizer,\n"," T_max=EPOCHS\n",")\n","\n","# ============================================================\n","# TRAINING\n","# ============================================================\n","\n","print(\"\\n🚀 Training Started...\\n\")\n","\n","for epoch in range(EPOCHS):\n","\n"," model.train()\n","\n"," total_loss = 0\n"," correct = 0\n"," total = 0\n","\n"," for step, (data, target) in enumerate(train_loader):\n","\n"," data = data.to(DEVICE)\n"," target = target.to(DEVICE)\n","\n"," optimizer.zero_grad()\n","\n"," output = model(data)\n","\n"," loss = criterion(output, target)\n","\n"," loss.backward()\n","\n"," # Optional: Gradient Clipping to prevent explosion\n"," torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0)\n","\n"," optimizer.step()\n","\n"," total_loss += loss.item()\n","\n"," _, predicted = output.max(1)\n","\n"," total += target.size(0)\n","\n"," correct += predicted.eq(target).sum().item()\n","\n"," if (step + 1) % 100 == 0:\n","\n"," # Debug: Check mean gradient magnitude\n"," grads = [p.grad.abs().mean().item() for p in model.parameters() if p.grad is not None]\n"," avg_grad = sum(grads)/len(grads) if grads else 0\n","\n"," print(\n"," f\"Epoch [{epoch+1:02d}/{EPOCHS}] \"\n"," f\"| Step [{step+1}/{len(train_loader)}] \"\n"," f\"| Loss: {loss.item():.4f} \"\n"," f\"| AvgGrad: {avg_grad:.6f}\"\n"," )\n","\n"," scheduler.step()\n","\n"," acc = 100. * correct / total\n","\n"," current_lr = optimizer.param_groups[0][\"lr\"]\n","\n"," print(\n"," f\"\\n🏁 Epoch [{epoch+1:02d}/{EPOCHS}] \"\n"," f\"| Loss: {total_loss / len(train_loader):.4f} \"\n"," f\"| Train Acc: {acc:.2f}% \"\n"," f\"| LR: {current_lr:.6f}\\n\"\n"," )\n","\n","# ============================================================\n","# VALIDATION\n","# ============================================================\n","\n","print(\"\\n🧪 Validation...\\n\")\n","\n","model.eval()\n","\n","val_loss = 0\n","val_correct = 0\n","val_total = 0\n","\n","with torch.no_grad():\n","\n"," for data, target in val_loader:\n","\n"," data = data.to(DEVICE)\n"," target = target.to(DEVICE)\n","\n"," output = model(data)\n","\n"," loss = criterion(output, target)\n","\n"," val_loss += loss.item()\n","\n"," _, predicted = output.max(1)\n","\n"," val_total += target.size(0)\n","\n"," val_correct += predicted.eq(target).sum().item()\n","\n","val_acc = 100. * val_correct / val_total\n","\n","print(\n"," f\"\\n🏆 Validation Accuracy: {val_acc:.2f}%\"\n",")\n","\n","# ============================================================\n","# SAVE MODEL\n","# ============================================================\n","\n","torch.save(\n"," model.state_dict(),\n"," MODEL_SAVE_PATH\n",")\n","\n","real_size = os.path.getsize(\n"," MODEL_SAVE_PATH\n",") / (1024 * 1024)\n","\n","print(\"\\n💾 MODEL SAVED!\")\n","print(f\"📁 Path : {MODEL_SAVE_PATH}\")\n","print(f\"📦 Size : {real_size:.2f} MB\")"]}]}