diff --git "a/4\354\243\274\354\260\250 \354\204\270\354\205\230 \354\240\225\353\246\254.pdf" "b/4\354\243\274\354\260\250 \354\204\270\354\205\230 \354\240\225\353\246\254.pdf" new file mode 100644 index 0000000..b4698a5 Binary files /dev/null and "b/4\354\243\274\354\260\250 \354\204\270\354\205\230 \354\240\225\353\246\254.pdf" differ diff --git "a/[BOAZ]_BASE_4\354\243\274\354\260\250_\352\263\274\354\240\234.ipynb" "b/[BOAZ]_BASE_4\354\243\274\354\260\250_\352\263\274\354\240\234.ipynb" new file mode 100644 index 0000000..6272c0e --- /dev/null +++ "b/[BOAZ]_BASE_4\354\243\274\354\260\250_\352\263\274\354\240\234.ipynb" @@ -0,0 +1,8786 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [], + "gpuType": "T4" + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "d26402b3323f434ea82e8cbdf1212641": { + "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_64d84a74a3514f3b831db82e78b3a138", + "IPY_MODEL_4295db32215e46838e5bc88b8dcf3b85", + "IPY_MODEL_b944ce87b716433fbe6ed157c35e4ef3" + ], + "layout": "IPY_MODEL_2ced4257d92d44d392baaee5e89abbeb" + } + }, + "64d84a74a3514f3b831db82e78b3a138": { + "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_1a9439b7f8ee4fc49a73df6869a60ba1", + "placeholder": "​", + "style": "IPY_MODEL_d668330aca8b49149671bd477315e3da", + "value": "Train 1: 100%" + } + }, + "4295db32215e46838e5bc88b8dcf3b85": { + "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_e5f14aadb544420f9476169c03e07a4a", + "max": 64, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_afb0be0dd3514627a3f6060b70ed824f", + "value": 64 + } + }, + "b944ce87b716433fbe6ed157c35e4ef3": { + "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_7664a9c3e7714c90a50f172c7b6b53df", + "placeholder": "​", + "style": "IPY_MODEL_4d2d0b7d9ffc41e6ac5c322d14a32c2c", + "value": " 64/64 [00:05<00:00, 13.42it/s]" + } + }, + "2ced4257d92d44d392baaee5e89abbeb": { + "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 + } + }, + "1a9439b7f8ee4fc49a73df6869a60ba1": { + "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 + } + }, + "d668330aca8b49149671bd477315e3da": { + "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": "" + } + }, + "e5f14aadb544420f9476169c03e07a4a": { + "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 + } + }, + "afb0be0dd3514627a3f6060b70ed824f": { + "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": "" + } + }, + "7664a9c3e7714c90a50f172c7b6b53df": { + "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 + } + }, + "4d2d0b7d9ffc41e6ac5c322d14a32c2c": { + "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": "" + } + }, + "742bea77ec6344ecad53d146963502c1": { + "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_9f0ecf5563ce46a0a946aa625075d613", + "IPY_MODEL_9e316848597f44f485f025e454b4d360", + "IPY_MODEL_56d3e310ccf545b7a24f31971b6f1b34" + ], + "layout": "IPY_MODEL_ba60e23fca4e46a1a52b4a6a05efe945" + } + }, + "9f0ecf5563ce46a0a946aa625075d613": { + "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_6761d31025ad4b038f97dfadaa9c151a", + "placeholder": "​", + "style": "IPY_MODEL_fcc20e772c094fbfabe89c8da869de19", + "value": "Train 2: 100%" + } + }, + "9e316848597f44f485f025e454b4d360": { + "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_4673afd5f17f4fe5a639ec87b986c81d", + "max": 64, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_e52d3209472d44c1814b3de06f770ee9", + "value": 64 + } + }, + "56d3e310ccf545b7a24f31971b6f1b34": { + "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_adb3d0b351e04409907ab60469317c16", + "placeholder": "​", + "style": "IPY_MODEL_7297d93c3d9b44d4a1b38e7221c946f9", + "value": " 64/64 [00:04<00:00, 12.84it/s]" + } + }, + "ba60e23fca4e46a1a52b4a6a05efe945": { + "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 + } + }, + "6761d31025ad4b038f97dfadaa9c151a": { + "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 + } + }, + "fcc20e772c094fbfabe89c8da869de19": { + "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": "" + } + }, + "4673afd5f17f4fe5a639ec87b986c81d": { + "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 + } + }, + "e52d3209472d44c1814b3de06f770ee9": { + "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": "" + } + }, + "adb3d0b351e04409907ab60469317c16": { + "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 + } + }, + "7297d93c3d9b44d4a1b38e7221c946f9": { + "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": "" + } + }, + "cbe5521c5f0f4b9f8b90404dea5e39e1": { + "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_282fbd4a90414eb099877697af4e8860", + "IPY_MODEL_3ae65880b50b4804b995a919f1186c0c", + "IPY_MODEL_de021b9f99fc4a209f75efaa31370fb1" + ], + "layout": "IPY_MODEL_77eba73ece8a4881a29f8d2d023379bf" + } + }, + "282fbd4a90414eb099877697af4e8860": { + "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_cac3e937a13f447ca6aa6887b392259a", + "placeholder": "​", + "style": "IPY_MODEL_ed1c4a1670244a65898e5b41058839df", + "value": "Train 3: 100%" + } + }, + "3ae65880b50b4804b995a919f1186c0c": { + "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_dd4b91896b2342089e17757985280a78", + "max": 64, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_994aeeaaf2f84655890437ca539ed8b1", + "value": 64 + } + }, + "de021b9f99fc4a209f75efaa31370fb1": { + "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_254514b57fed4862996c10dcc885e164", + "placeholder": "​", + "style": "IPY_MODEL_bf8ce3a8c3ec4df8a24e1e29a8ed173c", + "value": " 64/64 [00:04<00:00, 13.04it/s]" + } + }, + "77eba73ece8a4881a29f8d2d023379bf": { + "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 + } + }, + "cac3e937a13f447ca6aa6887b392259a": { + "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 + } + }, + "ed1c4a1670244a65898e5b41058839df": { + "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": "" + } + }, + "dd4b91896b2342089e17757985280a78": { + "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 + } + }, + "994aeeaaf2f84655890437ca539ed8b1": { + "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": "" + } + }, + "254514b57fed4862996c10dcc885e164": { + "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 + } + }, + "bf8ce3a8c3ec4df8a24e1e29a8ed173c": { + "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": "" + } + }, + "86d74ce7591548b5969197f43aaff33d": { + "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_04339d0aac8c445b862ae668a2eb6e94", + "IPY_MODEL_aedaa1f9360542c381a01d1a7169322b", + "IPY_MODEL_3e15ff6725c34dbc9490e00916c9f5b5" + ], + "layout": "IPY_MODEL_23467ed6d0f341f2bad2610d024883d0" + } + }, + "04339d0aac8c445b862ae668a2eb6e94": { + "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_888b352ed64b484dbd754be07a53b14b", + "placeholder": "​", + "style": "IPY_MODEL_5389cd8f40a24009b1ed2fb117f6b012", + "value": "Train 4: 100%" + } + }, + "aedaa1f9360542c381a01d1a7169322b": { + "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_b07fd91860864416ad496c0479df0880", + "max": 64, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_794bf93c9de74d9bacf3c8e75f9ab314", + "value": 64 + } + }, + "3e15ff6725c34dbc9490e00916c9f5b5": { + "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_721dc5ff2dd14a4bb1d60bf3bb0eacb9", + "placeholder": "​", + "style": "IPY_MODEL_d7988880e4784b10bc39ed2d08308324", + "value": " 64/64 [00:04<00:00, 12.99it/s]" + } + }, + "23467ed6d0f341f2bad2610d024883d0": { + "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 + } + }, + "888b352ed64b484dbd754be07a53b14b": { + "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 + } + }, + "5389cd8f40a24009b1ed2fb117f6b012": { + "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": "" + } + }, + "b07fd91860864416ad496c0479df0880": { + "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 + } + }, + "794bf93c9de74d9bacf3c8e75f9ab314": { + "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": "" + } + }, + "721dc5ff2dd14a4bb1d60bf3bb0eacb9": { + "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 + } + }, + "d7988880e4784b10bc39ed2d08308324": { + "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": "" + } + }, + "761c9be89a8f4f8782e7230d8aa3c728": { + "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_eabc6eb4c40b44d8bb60de43b0d0f0b8", + "IPY_MODEL_99588db9ca06449cadad834330041014", + "IPY_MODEL_abc93165c2484bcdbc0301d3cdd78970" + ], + "layout": "IPY_MODEL_d2b943835d6649a793d14744ac9687ca" + } + }, + "eabc6eb4c40b44d8bb60de43b0d0f0b8": { + "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_63e77c1dda244a8f9a77ca59e1ac8909", + "placeholder": "​", + "style": "IPY_MODEL_bba84f868bcf428286a31b070c854491", + "value": "Train 5: 100%" + } + }, + "99588db9ca06449cadad834330041014": { + "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_39ef67e06cc1417fa2dc635728b1b2f4", + "max": 64, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_30d15a36159f49319937567d2aab37a5", + "value": 64 + } + }, + "abc93165c2484bcdbc0301d3cdd78970": { + "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_4cc870b95b9a4edf87d1fa0ca6fc2e35", + "placeholder": "​", + "style": "IPY_MODEL_c41669041cc345969545483203035555", + "value": " 64/64 [00:05<00:00, 12.04it/s]" + } + }, + "d2b943835d6649a793d14744ac9687ca": { + "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 + } + }, + "63e77c1dda244a8f9a77ca59e1ac8909": { + "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 + } + }, + "bba84f868bcf428286a31b070c854491": { + "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": "" + } + }, + "39ef67e06cc1417fa2dc635728b1b2f4": { + "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 + } + }, + "30d15a36159f49319937567d2aab37a5": { + "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": "" + } + }, + "4cc870b95b9a4edf87d1fa0ca6fc2e35": { + "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 + } + }, + "c41669041cc345969545483203035555": { + "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": "" + } + }, + "78ebc91f182e4149971c12284f65a84a": { + "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_b5e4ca91baf648569adb2da6c052bd88", + "IPY_MODEL_f9f059ba8a334afd97caee5c2377c00f", + "IPY_MODEL_c3e35c99675644c8a1ce1f51cd7fa567" + ], + "layout": "IPY_MODEL_518277c986b64b34a2c52f60dbe518a7" + } + }, + "b5e4ca91baf648569adb2da6c052bd88": { + "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_2074ef40576b46da88c5a7862b858657", + "placeholder": "​", + "style": "IPY_MODEL_a95357d639004ccabf978e8efec5ef85", + "value": "Train 6: 100%" + } + }, + "f9f059ba8a334afd97caee5c2377c00f": { + "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_13770e3335d04c09bec81c5d52c6e597", + "max": 64, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_c42a36769cb04fce93689adc018025d0", + "value": 64 + } + }, + "c3e35c99675644c8a1ce1f51cd7fa567": { + "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_ac5c1bd41ae149a5814a398e895176ac", + "placeholder": "​", + "style": "IPY_MODEL_ce3e104e9921438191c543a0b9db0f2b", + "value": " 64/64 [00:05<00:00, 12.81it/s]" + } + }, + "518277c986b64b34a2c52f60dbe518a7": { + "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 + } + }, + "2074ef40576b46da88c5a7862b858657": { + "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 + } + }, + "a95357d639004ccabf978e8efec5ef85": { + "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": "" + } + }, + "13770e3335d04c09bec81c5d52c6e597": { + "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 + } + }, + "c42a36769cb04fce93689adc018025d0": { + "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": "" + } + }, + "ac5c1bd41ae149a5814a398e895176ac": { + "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 + } + }, + "ce3e104e9921438191c543a0b9db0f2b": { + "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": "" + } + }, + "903cc7b9f0b64e90851ee680195e9c74": { + "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_5166155aa0e24a838c0db568882d3f67", + "IPY_MODEL_e6f6f0f3f3654023818c99660c2c1ed2", + "IPY_MODEL_1f202ba0af23400c9a70a750b2cc682c" + ], + "layout": "IPY_MODEL_38ceb7c90e5c4e3aa2925da224ad2a02" + } + }, + "5166155aa0e24a838c0db568882d3f67": { + "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_9139385ab8b64a8488a0dab1b3041083", + "placeholder": "​", + "style": "IPY_MODEL_efe581fdde2d4680bbcbd0a71aac7a55", + "value": "Train 7: 100%" + } + }, + "e6f6f0f3f3654023818c99660c2c1ed2": { + "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_47317b4e48014f0d81bf4f92815f5575", + "max": 64, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_cd75cda5d2ef46669deb6b1cf16edf20", + "value": 64 + } + }, + "1f202ba0af23400c9a70a750b2cc682c": { + "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_d69c0134af4e444cbbbb0fc3578b237c", + "placeholder": "​", + "style": "IPY_MODEL_f2b21b2bfb944043905bdce3b97a1431", + "value": " 64/64 [00:05<00:00, 12.71it/s]" + } + }, + "38ceb7c90e5c4e3aa2925da224ad2a02": { + "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 + } + }, + "9139385ab8b64a8488a0dab1b3041083": { + "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 + } + }, + "efe581fdde2d4680bbcbd0a71aac7a55": { + "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": "" + } + }, + "47317b4e48014f0d81bf4f92815f5575": { + "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 + } + }, + "cd75cda5d2ef46669deb6b1cf16edf20": { + "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": "" + } + }, + "d69c0134af4e444cbbbb0fc3578b237c": { + "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 + } + }, + "f2b21b2bfb944043905bdce3b97a1431": { + "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": "" + } + }, + "bd92d5e7936c464e80db12a65a05b303": { + "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_2eaeeafbe79d4f9ab173aba9b6202b48", + "IPY_MODEL_e971e1278e494c339e01db03724a7655", + "IPY_MODEL_d904d003a52e406dad3a2e3d2f59bb6a" + ], + "layout": "IPY_MODEL_d3c12139452c40d59b01d79770f95903" + } + }, + "2eaeeafbe79d4f9ab173aba9b6202b48": { + "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_6522b7c2a4344c08bf4fb36ba7f7020b", + "placeholder": "​", + "style": "IPY_MODEL_dcc9cd4d827c402dabec5ea7813774b8", + "value": "Train 8: 100%" + } + }, + "e971e1278e494c339e01db03724a7655": { + "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_a14db5bce7cf4559af6f29b0d3b04673", + "max": 64, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_7874d5faa64f4992aa211adbb9b96791", + "value": 64 + } + }, + "d904d003a52e406dad3a2e3d2f59bb6a": { + "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_aff4e5f6af304678af2d765c24d21b48", + "placeholder": "​", + "style": "IPY_MODEL_8e3dc8d227da441c888c0ddea4aa5f3d", + "value": " 64/64 [00:05<00:00, 12.55it/s]" + } + }, + "d3c12139452c40d59b01d79770f95903": { + "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 + } + }, + "6522b7c2a4344c08bf4fb36ba7f7020b": { + "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 + } + }, + "dcc9cd4d827c402dabec5ea7813774b8": { + "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": "" + } + }, + "a14db5bce7cf4559af6f29b0d3b04673": { + "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 + } + }, + "7874d5faa64f4992aa211adbb9b96791": { + "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": "" + } + }, + "aff4e5f6af304678af2d765c24d21b48": { + "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 + } + }, + "8e3dc8d227da441c888c0ddea4aa5f3d": { + "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": "" + } + }, + "58118383c4764bcdba5e08145fd3b334": { + "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_d0b5ae1a0388496cb7acc6cc55df4840", + "IPY_MODEL_f00eb7a8c5c14c3a9bbeb20be70ba862", + "IPY_MODEL_9fc30318f5c344f2984bd7be691a89ac" + ], + "layout": "IPY_MODEL_e18decf582ca49f6ae6170bf165176bd" + } + }, + "d0b5ae1a0388496cb7acc6cc55df4840": { + "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_db8210c5b78a4e3aa4c464f1dfcca8b2", + "placeholder": "​", + "style": "IPY_MODEL_a9684f9a9ad4432aa629522cc746b892", + "value": "Train 9: 100%" + } + }, + "f00eb7a8c5c14c3a9bbeb20be70ba862": { + "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_9bff30cecaf94f56853fddf0c2659f81", + "max": 64, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_b46f833fd2c1409492e8ac343e413d80", + "value": 64 + } + }, + "9fc30318f5c344f2984bd7be691a89ac": { + "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_67ed87acc0294ea085f29403e4e46703", + "placeholder": "​", + "style": "IPY_MODEL_299cd954932c4615b56fbe03611e5f39", + "value": " 64/64 [00:05<00:00, 12.32it/s]" + } + }, + "e18decf582ca49f6ae6170bf165176bd": { + "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 + } + }, + "db8210c5b78a4e3aa4c464f1dfcca8b2": { + "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 + } + }, + "a9684f9a9ad4432aa629522cc746b892": { + "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": "" + } + }, + "9bff30cecaf94f56853fddf0c2659f81": { + "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 + } + }, + "b46f833fd2c1409492e8ac343e413d80": { + "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": "" + } + }, + "67ed87acc0294ea085f29403e4e46703": { + "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 + } + }, + "299cd954932c4615b56fbe03611e5f39": { + "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": "" + } + }, + "7c60e56f5f324fb98ad90bc2dddd4730": { + "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_1a4259a6a7b54cfbaa9133a7a2c10494", + "IPY_MODEL_629153b5b9614d5282cc9a01546e4932", + "IPY_MODEL_ce06007a7a1d463f90ba478e9a9827ea" + ], + "layout": "IPY_MODEL_1c3fa98bfb34496bb4dd7dcd72a0db08" + } + }, + "1a4259a6a7b54cfbaa9133a7a2c10494": { + "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_06b33de153bb4213970abe0cf3f45a8b", + "placeholder": "​", + "style": "IPY_MODEL_cf80d7f9a69e4a8aabd9b596b58baa3f", + "value": "Train 10: 100%" + } + }, + "629153b5b9614d5282cc9a01546e4932": { + "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_962a15d4260e4367868e821744d2ca86", + "max": 64, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_20e8550de08b4c4d930d81823facdf9c", + "value": 64 + } + }, + "ce06007a7a1d463f90ba478e9a9827ea": { + "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_3950d96600d24166a8fcd7a8249e3f70", + "placeholder": "​", + "style": "IPY_MODEL_775aa16af507482d99fe6195b31e0397", + "value": " 64/64 [00:05<00:00, 12.34it/s]" + } + }, + "1c3fa98bfb34496bb4dd7dcd72a0db08": { + "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 + } + }, + "06b33de153bb4213970abe0cf3f45a8b": { + "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 + } + }, + "cf80d7f9a69e4a8aabd9b596b58baa3f": { + "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": "" + } + }, + "962a15d4260e4367868e821744d2ca86": { + "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 + } + }, + "20e8550de08b4c4d930d81823facdf9c": { + "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": "" + } + }, + "3950d96600d24166a8fcd7a8249e3f70": { + "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 + } + }, + "775aa16af507482d99fe6195b31e0397": { + "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": "" + } + }, + "8ae2420e03d74b8fa3749761b3fa5a53": { + "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_61087d9a0dcf4e0ca14baf53d9a4e52f", + "IPY_MODEL_e1691d97eb3e48d58ccb30c7e23f4922", + "IPY_MODEL_3eef35748e644c7a83a17c3044f7e618" + ], + "layout": "IPY_MODEL_e23785405e4e455ab47c390e0e3d69fb" + } + }, + "61087d9a0dcf4e0ca14baf53d9a4e52f": { + "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_474b9993b249448d96bf2ad126c0c351", + "placeholder": "​", + "style": "IPY_MODEL_2ca4e660b5894a33bbc2111d7012bc6c", + "value": "Train 11: 100%" + } + }, + "e1691d97eb3e48d58ccb30c7e23f4922": { + "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_c8f90fd79d364e21bc3017d0eff147be", + "max": 64, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_14fe9959002547ccb6d6dc439bb1b0d5", + "value": 64 + } + }, + "3eef35748e644c7a83a17c3044f7e618": { + "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_214144a6dc96408f8de5f817a1d7c4c5", + "placeholder": "​", + "style": "IPY_MODEL_06a572dfc5a44318a10e3ed1fc86dc5f", + "value": " 64/64 [00:05<00:00, 12.34it/s]" + } + }, + "e23785405e4e455ab47c390e0e3d69fb": { + "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 + } + }, + "474b9993b249448d96bf2ad126c0c351": { + "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 + } + }, + "2ca4e660b5894a33bbc2111d7012bc6c": { + "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": "" + } + }, + "c8f90fd79d364e21bc3017d0eff147be": { + "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 + } + }, + "14fe9959002547ccb6d6dc439bb1b0d5": { + "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": "" + } + }, + "214144a6dc96408f8de5f817a1d7c4c5": { + "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 + } + }, + "06a572dfc5a44318a10e3ed1fc86dc5f": { + "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": "" + } + }, + "cc31fc4c631a4addbadec04b9f275564": { + "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_29e3f13ebaeb4463acfdbe88e2044fd5", + "IPY_MODEL_d22bcf60b34e4039b7a57a32d4521314", + "IPY_MODEL_2e06be3369c747c9b652f2064720d945" + ], + "layout": "IPY_MODEL_5db2873a01764de1a8388ba95a688507" + } + }, + "29e3f13ebaeb4463acfdbe88e2044fd5": { + "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_73fc171976bb4172816086ccd413ccbf", + "placeholder": "​", + "style": "IPY_MODEL_259926f1183b47ea810af0b39eb3c0b0", + "value": "Train 12: 100%" + } + }, + "d22bcf60b34e4039b7a57a32d4521314": { + "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_be394d3f655f4afc9670420dc3ad695e", + "max": 64, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_205574ad304c4dfb9163151fb6b11971", + "value": 64 + } + }, + "2e06be3369c747c9b652f2064720d945": { + "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_431a0a55915041e3b7e8e1d6ddb5b0f9", + "placeholder": "​", + "style": "IPY_MODEL_a7544d0091c2487cb2e1617f2dce6e17", + "value": " 64/64 [00:05<00:00, 11.99it/s]" + } + }, + "5db2873a01764de1a8388ba95a688507": { + "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 + } + }, + "73fc171976bb4172816086ccd413ccbf": { + "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 + } + }, + "259926f1183b47ea810af0b39eb3c0b0": { + "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": "" + } + }, + "be394d3f655f4afc9670420dc3ad695e": { + "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 + } + }, + "205574ad304c4dfb9163151fb6b11971": { + "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": "" + } + }, + "431a0a55915041e3b7e8e1d6ddb5b0f9": { + "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 + } + }, + "a7544d0091c2487cb2e1617f2dce6e17": { + "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": "" + } + }, + "0ec5e93fe8b74caf9975bd4b629e04f7": { + "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_0f237effd68d4402bc97237252c74872", + "IPY_MODEL_077656de56734e95836a070e6f8135ab", + "IPY_MODEL_812c399da6f44ff6a0469365b8057667" + ], + "layout": "IPY_MODEL_a31cd9f91cc549698497d610b469755e" + } + }, + "0f237effd68d4402bc97237252c74872": { + "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_c6dcfc9acc3b47259138ba75924ed86c", + "placeholder": "​", + "style": "IPY_MODEL_73a44d4d4dfd4673ba938909d72c5ab7", + "value": "Train 13: 100%" + } + }, + "077656de56734e95836a070e6f8135ab": { + "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_f167a1484a9e4337a4f2e1ae37099427", + "max": 64, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_7f96706665db45e7a825030aa1558132", + "value": 64 + } + }, + "812c399da6f44ff6a0469365b8057667": { + "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_4515cefb1ba944ff9f67ffc5e9ba24da", + "placeholder": "​", + "style": "IPY_MODEL_12938f9e121f4fa6a3d644f3e2dc83fd", + "value": " 64/64 [00:05<00:00, 11.88it/s]" + } + }, + "a31cd9f91cc549698497d610b469755e": { + "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 + } + }, + "c6dcfc9acc3b47259138ba75924ed86c": { + "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 + } + }, + "73a44d4d4dfd4673ba938909d72c5ab7": { + "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": "" + } + }, + "f167a1484a9e4337a4f2e1ae37099427": { + "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 + } + }, + "7f96706665db45e7a825030aa1558132": { + "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": "" + } + }, + "4515cefb1ba944ff9f67ffc5e9ba24da": { + "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 + } + }, + "12938f9e121f4fa6a3d644f3e2dc83fd": { + "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": "" + } + }, + "cae40331499c4e3dbc204b5856c0075c": { + "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_fc4ef200709e45518c18e6a9197454c8", + "IPY_MODEL_9e8507bb52b2453a8be9ddf9e952666a", + "IPY_MODEL_d40034fc7ecf4f74a52d4b343cfdeade" + ], + "layout": "IPY_MODEL_c69833f4fee242a4bd1e8cee18e1c500" + } + }, + "fc4ef200709e45518c18e6a9197454c8": { + "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_4f616a05acd2402f959ec2140128436a", + "placeholder": "​", + "style": "IPY_MODEL_cfd11af5fa1741429f00a8f4376fae6c", + "value": "Train 14: 100%" + } + }, + "9e8507bb52b2453a8be9ddf9e952666a": { + "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_6f6b966160304b60966b22890d49849f", + "max": 64, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_3a33ac92e53442c4bc3231c4a1ef8bd1", + "value": 64 + } + }, + "d40034fc7ecf4f74a52d4b343cfdeade": { + "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_c32072f5b2614dbeafef209a8b80c37c", + "placeholder": "​", + "style": "IPY_MODEL_b05e0c7ab44c4f92be56a5b43020a3b4", + "value": " 64/64 [00:05<00:00, 11.87it/s]" + } + }, + "c69833f4fee242a4bd1e8cee18e1c500": { + "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 + } + }, + "4f616a05acd2402f959ec2140128436a": { + "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 + } + }, + "cfd11af5fa1741429f00a8f4376fae6c": { + "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": "" + } + }, + "6f6b966160304b60966b22890d49849f": { + "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 + } + }, + "3a33ac92e53442c4bc3231c4a1ef8bd1": { + "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": "" + } + }, + "c32072f5b2614dbeafef209a8b80c37c": { + "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 + } + }, + "b05e0c7ab44c4f92be56a5b43020a3b4": { + "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": "" + } + }, + "ada53c0a69744ba3b756bcfa9013182e": { + "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_379d2b9735ee4037bf4cd2fa51107cf5", + "IPY_MODEL_55bf05fe136e467486850c7e5666108a", + "IPY_MODEL_47e9c07d2fa14f328a066321214eea32" + ], + "layout": "IPY_MODEL_d5980ee0a164475491ca0fb3b4135879" + } + }, + "379d2b9735ee4037bf4cd2fa51107cf5": { + "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_789654be95a64d538bf093e12a3396e3", + "placeholder": "​", + "style": "IPY_MODEL_f4376eb640364bd1a9c87503397ffe7b", + "value": "Train 15: 100%" + } + }, + "55bf05fe136e467486850c7e5666108a": { + "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_0368d8e264ec4160a16347eb23f52c00", + "max": 64, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_124f6f7c465b4c8f8d97c9793582260d", + "value": 64 + } + }, + "47e9c07d2fa14f328a066321214eea32": { + "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_836b0b77e7e94d279ddba1454d849f79", + "placeholder": "​", + "style": "IPY_MODEL_a8021f268a674844bce70f69f65636a8", + "value": " 64/64 [00:05<00:00, 11.87it/s]" + } + }, + "d5980ee0a164475491ca0fb3b4135879": { + "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 + } + }, + "789654be95a64d538bf093e12a3396e3": { + "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 + } + }, + "f4376eb640364bd1a9c87503397ffe7b": { + "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": "" + } + }, + "0368d8e264ec4160a16347eb23f52c00": { + "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 + } + }, + "124f6f7c465b4c8f8d97c9793582260d": { + "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": "" + } + }, + "836b0b77e7e94d279ddba1454d849f79": { + "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 + } + }, + "a8021f268a674844bce70f69f65636a8": { + "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": "" + } + }, + "3b5bf05d173b406a9ddae5c6e9d796bf": { + "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_5bdad48dd3a940bfb28f9308cccab2a0", + "IPY_MODEL_9adf2bd0312a42709b463b11955f75c8", + "IPY_MODEL_ecebd566dd104385b54cb2f5a69aab8d" + ], + "layout": "IPY_MODEL_6d6d820d484148e48c6bc7c5c4706ee1" + } + }, + "5bdad48dd3a940bfb28f9308cccab2a0": { + "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_f93eaede47e3496e946dea6f341ca32f", + "placeholder": "​", + "style": "IPY_MODEL_8a6575b1e1cf479a8cfcd4d2983e6b8c", + "value": "Train 16: 100%" + } + }, + "9adf2bd0312a42709b463b11955f75c8": { + "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_af99ebb6888c47ad81a2748f18db3443", + "max": 64, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_3845a5b45d224ffa983305a934a4feca", + "value": 64 + } + }, + "ecebd566dd104385b54cb2f5a69aab8d": { + "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_08b753931e34460bbae5eb2665d53c55", + "placeholder": "​", + "style": "IPY_MODEL_a26bd2d3ca8248979b1ca1f7dd122c28", + "value": " 64/64 [00:05<00:00, 11.63it/s]" + } + }, + "6d6d820d484148e48c6bc7c5c4706ee1": { + "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 + } + }, + "f93eaede47e3496e946dea6f341ca32f": { + "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 + } + }, + "8a6575b1e1cf479a8cfcd4d2983e6b8c": { + "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": "" + } + }, + "af99ebb6888c47ad81a2748f18db3443": { + "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 + } + }, + "3845a5b45d224ffa983305a934a4feca": { + "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": "" + } + }, + "08b753931e34460bbae5eb2665d53c55": { + "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 + } + }, + "a26bd2d3ca8248979b1ca1f7dd122c28": { + "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": "" + } + }, + "5077f5edf4614d3e929cef71ae9c02fa": { + "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_d11861fe0b2148018425633222c032d0", + "IPY_MODEL_82275da2c9f74c3fb11e399d1e4a54c1", + "IPY_MODEL_239ac3442445416c97ed35116979b426" + ], + "layout": "IPY_MODEL_b2cc304245ef432183381a1f897b89ae" + } + }, + "d11861fe0b2148018425633222c032d0": { + "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_61f73af7a82a4da39a7b1757c3afe12b", + "placeholder": "​", + "style": "IPY_MODEL_662f49fab8aa42aca062a897cf6b5172", + "value": "Train 17: 100%" + } + }, + "82275da2c9f74c3fb11e399d1e4a54c1": { + "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_d29a10705dcb483da8c46df3184e3635", + "max": 64, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_e89471060522464a92468b335f30b46a", + "value": 64 + } + }, + "239ac3442445416c97ed35116979b426": { + "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_21466c61ceb84710ad04ccf3b7d28bb2", + "placeholder": "​", + "style": "IPY_MODEL_9a5c833d058b4125948fa54bbd83c37b", + "value": " 64/64 [00:05<00:00, 11.53it/s]" + } + }, + "b2cc304245ef432183381a1f897b89ae": { + "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 + } + }, + "61f73af7a82a4da39a7b1757c3afe12b": { + "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 + } + }, + "662f49fab8aa42aca062a897cf6b5172": { + "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": "" + } + }, + "d29a10705dcb483da8c46df3184e3635": { + "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 + } + }, + "e89471060522464a92468b335f30b46a": { + "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": "" + } + }, + "21466c61ceb84710ad04ccf3b7d28bb2": { + "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 + } + }, + "9a5c833d058b4125948fa54bbd83c37b": { + "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": "" + } + }, + "1e14b01239674cc2b04142f04f47e8ec": { + "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_fe6d24caaa014429aee824b7c015eac7", + "IPY_MODEL_a646576d79394732beca85e0307736d0", + "IPY_MODEL_33a1c766e47c47d99b7bf75c565d7829" + ], + "layout": "IPY_MODEL_15814b02a7c5499997e0833409c187b8" + } + }, + "fe6d24caaa014429aee824b7c015eac7": { + "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_80e1a23ad659402ebf265761fea8fa61", + "placeholder": "​", + "style": "IPY_MODEL_f7253b36e48947d0ac8f5cee58a3c67d", + "value": "Train 18: 100%" + } + }, + "a646576d79394732beca85e0307736d0": { + "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_74a269ee9c314275945d03427095baff", + "max": 64, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_026dc97c246d4da39c10c726daa5067e", + "value": 64 + } + }, + "33a1c766e47c47d99b7bf75c565d7829": { + "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_9189b0d6114d4b7da5a3ce5e72f5911a", + "placeholder": "​", + "style": "IPY_MODEL_8c8473918c4f411cb55b5b11b5c3ee50", + "value": " 64/64 [00:05<00:00, 11.51it/s]" + } + }, + "15814b02a7c5499997e0833409c187b8": { + "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 + } + }, + "80e1a23ad659402ebf265761fea8fa61": { + "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 + } + }, + "f7253b36e48947d0ac8f5cee58a3c67d": { + "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": "" + } + }, + "74a269ee9c314275945d03427095baff": { + "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 + } + }, + "026dc97c246d4da39c10c726daa5067e": { + "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": "" + } + }, + "9189b0d6114d4b7da5a3ce5e72f5911a": { + "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 + } + }, + "8c8473918c4f411cb55b5b11b5c3ee50": { + "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": "" + } + }, + "f5eaaf1baa8f4cfcacf97cb82d14bf62": { + "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_c896e16465b04134ab19e7661d34d6a9", + "IPY_MODEL_1bdcfcfc9a5844c3b292a18c7e2aa912", + "IPY_MODEL_ae3694f8cc06473baae154b1a0e77d2b" + ], + "layout": "IPY_MODEL_be409adfc7724ca4be47f16d84156987" + } + }, + "c896e16465b04134ab19e7661d34d6a9": { + "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_6985ff9269804c3a90079d1a17cc917d", + "placeholder": "​", + "style": "IPY_MODEL_33d9ee60a3c94d1f8f50d5eb135e4105", + "value": "Train 19: 100%" + } + }, + "1bdcfcfc9a5844c3b292a18c7e2aa912": { + "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_f902c0ba3fd149aeb563c20ce4b2949f", + "max": 64, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_3e5f962cb74845dd8019b9c12463562d", + "value": 64 + } + }, + "ae3694f8cc06473baae154b1a0e77d2b": { + "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_ef9b861baa164402bcf616b7c82400f2", + "placeholder": "​", + "style": "IPY_MODEL_92b6f66ace5f4d538e4322ac5e6bb7fa", + "value": " 64/64 [00:05<00:00, 11.22it/s]" + } + }, + "be409adfc7724ca4be47f16d84156987": { + "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 + } + }, + "6985ff9269804c3a90079d1a17cc917d": { + "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 + } + }, + "33d9ee60a3c94d1f8f50d5eb135e4105": { + "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": "" + } + }, + "f902c0ba3fd149aeb563c20ce4b2949f": { + "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 + } + }, + "3e5f962cb74845dd8019b9c12463562d": { + "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": "" + } + }, + "ef9b861baa164402bcf616b7c82400f2": { + "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 + } + }, + "92b6f66ace5f4d538e4322ac5e6bb7fa": { + "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": "" + } + }, + "674790611d654155ab242a3fd2671798": { + "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_053594f2d1c34e5c9d475e6bb94e73e2", + "IPY_MODEL_b83ec1839e014ef1a00fd643de4451c0", + "IPY_MODEL_68df26a77d714c75a46302da698da68d" + ], + "layout": "IPY_MODEL_faaac30f7ea14e709499548205b65751" + } + }, + "053594f2d1c34e5c9d475e6bb94e73e2": { + "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_9a54382b56fe42bb96e409ca1ecd8119", + "placeholder": "​", + "style": "IPY_MODEL_bca3a15389ab483285aef6a04d197bc3", + "value": "Train 20: 100%" + } + }, + "b83ec1839e014ef1a00fd643de4451c0": { + "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_0d23f17e5b464b228395a95df246495d", + "max": 64, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_1ff45995d820482daa8a71c46ac96957", + "value": 64 + } + }, + "68df26a77d714c75a46302da698da68d": { + "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_ea22213964f4415aa909108f119b9d52", + "placeholder": "​", + "style": "IPY_MODEL_eb84f28749c445d790fbdfa0247674c4", + "value": " 64/64 [00:05<00:00, 10.98it/s]" + } + }, + "faaac30f7ea14e709499548205b65751": { + "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 + } + }, + "9a54382b56fe42bb96e409ca1ecd8119": { + "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 + } + }, + "bca3a15389ab483285aef6a04d197bc3": { + "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": "" + } + }, + "0d23f17e5b464b228395a95df246495d": { + "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 + } + }, + "1ff45995d820482daa8a71c46ac96957": { + "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": "" + } + }, + "ea22213964f4415aa909108f119b9d52": { + "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 + } + }, + "eb84f28749c445d790fbdfa0247674c4": { + "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": "" + } + } + } + }, + "accelerator": "GPU" + }, + "cells": [ + { + "cell_type": "markdown", + "source": [ + "## Transformer NMT (English → French) Experiment \n", + "\n", + "이번 복습과제에서는 Transformer Encoder–Decoder 구조를 직접 구현하여 영어 문장을 프랑스어로 번역하는 실험을 진행합니다.\n", + "\n", + "- ManyThings(Anki) 공개 번역 데이터를 활용하여, 데이터 정제 → 토크나이징 → 패딩 → 모델 학습 → 추론까지 전 과정을 포함하고 있습니다.\n", + "\n", + "- Positional Encoding, Padding Mask, Look-Ahead Mask, Multi-Head Attention, Feed-Forward Network 등 Transformer의 핵심 구성요소를 코드로 확인합니다.\n", + "\n", + "- Teacher Forcing 기반 학습을 통해, 디코더가 다음 단어를 예측하도록 학습되는 과정을 관찰합니다.\n", + "\n", + "- 학습된 모델로 임의의 영어 문장을 입력해 Autoregressive 방식으로 번역을 생성해봅니다.\n", + "\n", + "- 중간 출력(텐서 shape, 토큰 id, 마스크 형태 등)을 확인하며, Transformer 내부 흐름을 이해하는 데 초점을 둡니다." + ], + "metadata": { + "id": "9Jv1A9qC85tj" + } + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "id": "xl7WDwjj4Qhv" + }, + "outputs": [], + "source": [ + "#1 Imports + Seed + Utils\n", + "import os\n", + "import torch.optim as optim\n", + "import random\n", + "import math\n", + "import time\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import tensorflow as tf\n", + "\n", + "from tqdm import tqdm, tqdm_notebook, trange\n", + "\n", + "import torch\n", + "import torch.nn as nn\n", + "import torch.nn.functional as F\n", + "import unicodedata\n", + "import re\n", + "\n", + "from tensorflow.keras.preprocessing.sequence import pad_sequences\n", + "from tensorflow.keras.preprocessing.text import Tokenizer\n", + "\n", + "import urllib3\n", + "import zipfile\n", + "import shutil\n", + "import pandas as pd\n", + "\n", + "pd.set_option('display.max_colwidth', None)\n", + "\n", + "# 시드 고정\n", + "SEED = 1234\n", + "random.seed(SEED)\n", + "np.random.seed(SEED)\n", + "torch.manual_seed(SEED)\n", + "torch.cuda.manual_seed(SEED)\n", + "\n", + "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n", + "\n", + "ENCODER_LEN = 40 # 입력·출력 문장 토큰 길이를 40으로 고정\n", + "DECODER_LEN = ENCODER_LEN\n", + "BATCH_SIZE = 128 # 한 step에서 학습하는 문장쌍 개수\n", + "N_EPOCHS = 20 # 전체 데이터셋을 반복 학습하는 횟수 (*로컬 환경에서는 모델 학습에 장시간 소요되므로, 줄이는 것을 추천!)\n", + "\n", + "# 디버깅 함수\n", + "def show_shape(name, x):\n", + " if isinstance(x, torch.Tensor):\n", + " print(f\"{name}: shape={tuple(x.shape)}, dtype={x.dtype}, device={x.device}\")\n", + " else:\n", + " print(f\"{name}: type={type(x)}\")\n", + "\n", + "def show_tokens(tokenizer, seq, n=20):\n", + " seq = list(seq)\n", + " print(\"ids :\", seq[:n])\n", + " print(\"text :\", tokenizer.sequences_to_texts([seq[:n]])[0])\n", + "\n", + "def count_pad(x, pad_id=0):\n", + " return int((x == pad_id).sum().item()), x.numel()\n", + "\n", + "DEBUG_ONCE = {\"attn\": True}" + ] + }, + { + "cell_type": "code", + "source": [ + "#2 번역 데이터셋 다운로드 및 로드 (English-French Parallel Corpus)\n", + "!rm -f fra-eng.zip fra.txt\n", + "!wget -q https://www.manythings.org/anki/fra-eng.zip\n", + "!unzip -q fra-eng.zip\n", + "\n", + "import pandas as pd\n", + "\n", + "train_df = pd.read_csv('fra.txt', names=['SRC', 'TRG', 'lic'], sep='\\t')\n", + "del train_df['lic']\n", + "\n", + "print(\"영어-프랑스어 번역 쌍 총 개수:\", len(train_df))\n", + "train_df = train_df.loc[:, 'SRC':'TRG']\n", + "train_df.head()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 225 + }, + "id": "SW-HV8uI6EMr", + "outputId": "53c1780d-7817-437a-cfbb-0283bb5bf424" + }, + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "영어-프랑스어 번역 쌍 총 개수: 239189\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " SRC TRG\n", + "0 Go. Va !\n", + "1 Go. Marche.\n", + "2 Go. En route !\n", + "3 Go. Bouge !\n", + "4 Hi. Salut !" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
SRCTRG
0Go.Va !
1Go.Marche.
2Go.En route !
3Go.Bouge !
4Hi.Salut !
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "train_df" + } + }, + "metadata": {}, + "execution_count": 2 + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Length stats + Dedup + Filter + Sample\n", + "\n", + "train_df[\"src_len\"] = train_df[\"SRC\"].astype(str).str.split().str.len()\n", + "train_df[\"trg_len\"] = train_df[\"TRG\"].astype(str).str.split().str.len()\n", + "\n", + "print('Translation Pair :', len(train_df))\n", + "\n", + "train_df = train_df.drop_duplicates(subset=[\"SRC\"])\n", + "print('After SRC dedup :', len(train_df))\n", + "\n", + "train_df = train_df.drop_duplicates(subset=[\"TRG\"])\n", + "print('After TRG dedup :', len(train_df))\n", + "\n", + "is_within_len = (\n", + " (8 < train_df[\"src_len\"]) & (train_df[\"src_len\"] < 20) &\n", + " (8 < train_df[\"trg_len\"]) & (train_df[\"trg_len\"] < 20)\n", + ")\n", + "train_df = train_df[is_within_len]\n", + "\n", + "dataset_df_8096 = train_df.sample(n=1024*8, random_state=1234)\n", + "print('Sampled Pair :', len(dataset_df_8096))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "dSuwsvZm4qeC", + "outputId": "23e2ad06-1f62-45f3-ddfd-a64f0ec7f01e" + }, + "execution_count": 3, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Translation Pair : 239189\n", + "After SRC dedup : 171971\n", + "After TRG dedup : 153441\n", + "Sampled Pair : 8192\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Preprocess (raw_src/raw_trg) + Sanity Print\n", + "raw_src = []\n", + "for sentence in dataset_df_8096['SRC']:\n", + " sentence = sentence.lower().strip()\n", + " sentence = re.sub(r\"([?.!,])\", r\" \\1 \", sentence)\n", + " sentence = re.sub(r'[\" \"]+', \" \", sentence)\n", + "\n", + " sentence = re.sub(r\"i'm\", \"i am\", sentence)\n", + " sentence = re.sub(r\"he's\", \"he is\", sentence)\n", + " sentence = re.sub(r\"she's\", \"she is\", sentence)\n", + " sentence = re.sub(r\"it's\", \"it is\", sentence)\n", + " sentence = re.sub(r\"that's\", \"that is\", sentence)\n", + " sentence = re.sub(r\"what's\", \"that is\", sentence)\n", + " sentence = re.sub(r\"where's\", \"where is\", sentence)\n", + " sentence = re.sub(r\"how's\", \"how is\", sentence)\n", + " sentence = re.sub(r\"\\'ll\", \" will\", sentence)\n", + " sentence = re.sub(r\"\\'ve\", \" have\", sentence)\n", + " sentence = re.sub(r\"\\'re\", \" are\", sentence)\n", + " sentence = re.sub(r\"\\'d\", \" would\", sentence)\n", + " sentence = re.sub(r\"\\'re\", \" are\", sentence)\n", + " sentence = re.sub(r\"won't\", \"will not\", sentence)\n", + " sentence = re.sub(r\"can't\", \"cannot\", sentence)\n", + " sentence = re.sub(r\"n't\", \" not\", sentence)\n", + " sentence = re.sub(r\"n'\", \"ng\", sentence)\n", + " sentence = re.sub(r\"'bout\", \"about\", sentence)\n", + "\n", + " sentence = re.sub(r\"[^a-zA-Z?.!,]+\", \" \", sentence)\n", + " sentence = sentence.strip()\n", + " raw_src.append(sentence)\n", + "\n", + "raw_trg = []\n", + "def unicode_to_ascii(s):\n", + " return ''.join(c for c in unicodedata.normalize('NFD', s)\n", + " if unicodedata.category(c) != 'Mn')\n", + "\n", + "for sentence in dataset_df_8096['TRG']:\n", + " sentence = unicode_to_ascii(sentence.lower())\n", + " sentence = re.sub(r\"([?.!,¿])\", r\" \\1\", sentence)\n", + " sentence = re.sub(r\"[^a-zA-Z!.?]+\", r\" \", sentence)\n", + " sentence = re.sub(r\"\\s+\", \" \", sentence)\n", + " raw_trg.append(sentence)\n", + "\n", + "print(\"=== Preprocess sanity check (top-3) ===\")\n", + "for i in [0, 1, 2]:\n", + " print(f\"\\n[{i}] SRC_raw :\", dataset_df_8096['SRC'].iloc[i])\n", + " print(f\"[{i}] SRC_clean:\", raw_src[i])\n", + " print(f\"[{i}] TRG_raw :\", dataset_df_8096['TRG'].iloc[i])\n", + " print(f\"[{i}] TRG_clean:\", raw_trg[i])" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "siF93PVf4vU2", + "outputId": "6315c4a5-b7f3-4e26-9b74-8e15a3ccd6f6" + }, + "execution_count": 4, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "=== Preprocess sanity check (top-3) ===\n", + "\n", + "[0] SRC_raw : Was there a dead body in the room? \"No, there was no body there.\"\n", + "[0] SRC_clean: was there a dead body in the room ? no , there was no body there .\n", + "[0] TRG_raw : « Y avait-il un cadavre dans la chambre ? » « Non, il n'y avait pas de cadavre. »\n", + "[0] TRG_clean: y avait il un cadavre dans la chambre ? non il n y avait pas de cadavre . \n", + "\n", + "[1] SRC_raw : Our teacher doesn't just speak English, but French too.\n", + "[1] SRC_clean: our teacher does not just speak english , but french too .\n", + "[1] TRG_raw : Notre professeur ne parle pas juste anglais mais aussi français.\n", + "[1] TRG_clean: notre professeur ne parle pas juste anglais mais aussi francais .\n", + "\n", + "[2] SRC_raw : I don't know whether he is dead or alive.\n", + "[2] SRC_clean: i do not know whether he is dead or alive .\n", + "[2] TRG_raw : Je ne sais pas s'il est mort ou vivant.\n", + "[2] TRG_clean: je ne sais pas s il est mort ou vivant .\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "### Q1. / 토큰의 역할\n", + "이 코드에서는 입력/출력 문장에 ``, `` 토큰을 직접 붙였습니다.\n", + "\n", + "1) ``와 ``는 각각 언제/왜 필요한가요?\n", + "\n", + " **SOS**: 디코더가 첫 단어를 예측할 수 있도록 문장의 시작을 알려주는 토큰\n", + "\n", + " **EOS**: 디코더가 문장 생성을 멈추도록 끝을 알려주는 토큰" + ], + "metadata": { + "id": "L0yx1hKo6ud5" + } + }, + { + "cell_type": "code", + "source": [ + "# Build train_df + Add SOS/EOS + Tokenizer + Vocab Print\n", + "df1 = pd.DataFrame(raw_src)\n", + "df2 = pd.DataFrame(raw_trg)\n", + "df1.rename(columns={0: \"SRC\"}, errors=\"raise\", inplace=True)\n", + "df2.rename(columns={0: \"TRG\"}, errors=\"raise\", inplace=True)\n", + "train_df = pd.concat([df1, df2], axis=1)\n", + "print('Translation Pair :',len(train_df))\n", + "\n", + "raw_src = train_df['SRC']\n", + "raw_trg = train_df['TRG']\n", + "\n", + "src_sentence = raw_src.apply(lambda x: \" \" + str(x) + \" \")\n", + "trg_sentence = raw_trg.apply(lambda x: \" \"+ x + \" \")\n", + "\n", + "print(\"=== SOS/EOS check ===\")\n", + "print(\"SRC example:\", src_sentence.iloc[0])\n", + "print(\"TRG example:\", trg_sentence.iloc[0])\n", + "\n", + "filters = '!\"#$%&()*+,-./:;=?@[\\\\]^_`{|}~\\t\\n'\n", + "oov_token = ''\n", + "\n", + "SRC_tokenizer = tf.keras.preprocessing.text.Tokenizer(filters=filters, oov_token=oov_token)\n", + "TRG_tokenizer = tf.keras.preprocessing.text.Tokenizer(filters=filters, oov_token=oov_token)\n", + "\n", + "SRC_tokenizer.fit_on_texts(src_sentence)\n", + "TRG_tokenizer.fit_on_texts(trg_sentence)\n", + "\n", + "n_enc_vocab = len(SRC_tokenizer.word_index) + 1\n", + "n_dec_vocab = len(TRG_tokenizer.word_index) + 1\n", + "\n", + "print('Encoder vocab size :', n_enc_vocab)\n", + "print('Decoder vocab size :', n_dec_vocab)\n", + "\n", + "print(\"\\n=== Tokenizer vocab check ===\")\n", + "print(\"SRC '' id:\", SRC_tokenizer.word_index.get(\"\"))\n", + "print(\"SRC '' id:\", SRC_tokenizer.word_index.get(\"\"))\n", + "print(\"TRG '' id:\", TRG_tokenizer.word_index.get(\"\"))\n", + "print(\"TRG '' id:\", TRG_tokenizer.word_index.get(\"\"))\n", + "print(\"TRG '' id:\", TRG_tokenizer.word_index.get(\"\"))\n", + "\n", + "print(\"\\nSRC top-10:\", list(SRC_tokenizer.word_index.items())[:10])\n", + "print(\"TRG top-10:\", list(TRG_tokenizer.word_index.items())[:10])\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "bv61caIm4yng", + "outputId": "76a81918-4bfd-4ceb-9296-7413bbedb08c" + }, + "execution_count": 5, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Translation Pair : 8192\n", + "=== SOS/EOS check ===\n", + "SRC example: was there a dead body in the room ? no , there was no body there . \n", + "TRG example: y avait il un cadavre dans la chambre ? non il n y avait pas de cadavre . \n", + "Encoder vocab size : 5924\n", + "Decoder vocab size : 7773\n", + "\n", + "=== Tokenizer vocab check ===\n", + "SRC '' id: 2\n", + "SRC '' id: 3\n", + "TRG '' id: 2\n", + "TRG '' id: 3\n", + "TRG '' id: 1\n", + "\n", + "SRC top-10: [('', 1), ('', 2), ('', 3), ('the', 4), ('to', 5), ('i', 6), ('you', 7), ('a', 8), ('not', 9), ('is', 10)]\n", + "TRG top-10: [('', 1), ('', 2), ('', 3), ('de', 4), ('a', 5), ('je', 6), ('que', 7), ('la', 8), ('le', 9), ('pas', 10)]\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Tokenization Demo + Pad + Decode Check\n", + "lines = [\n", + " \"It is winter and the weather is very cold.\",\n", + " \"Will this Christmas be a white Christmas?\",\n", + " \"Be careful not to catch a cold in winter and have a happy new year.\"\n", + "]\n", + "print(\"=== SRC tokenizer demo ===\")\n", + "for line in lines:\n", + " txt_2_ids = SRC_tokenizer.texts_to_sequences([line])\n", + " ids_2_txt = SRC_tokenizer.sequences_to_texts(txt_2_ids)\n", + " print(\"Input :\", line)\n", + " print(\"txt_2_ids :\", txt_2_ids)\n", + " print(\"ids_2_txt :\", ids_2_txt[0],\"\\n\")\n", + "\n", + "lines = [\n", + " \"C'est l'hiver et il fait très froid.\",\n", + " \"Ce Noël sera-t-il un Noël blanc ?\",\n", + " \"Attention à ne pas attraper froid en hiver et bonne année.\"\n", + "]\n", + "print(\"=== TRG tokenizer demo ===\")\n", + "for line in lines:\n", + " txt_2_ids = TRG_tokenizer.texts_to_sequences([line])\n", + " ids_2_txt = TRG_tokenizer.sequences_to_texts(txt_2_ids)\n", + " print(\"Input :\", line)\n", + " print(\"txt_2_ids :\", txt_2_ids)\n", + " print(\"ids_2_txt :\", ids_2_txt[0],\"\\n\")\n", + "\n", + "tokenized_inputs = SRC_tokenizer.texts_to_sequences(src_sentence)\n", + "tokenized_outputs = TRG_tokenizer.texts_to_sequences(trg_sentence)\n", + "\n", + "tkn_sources = tf.keras.preprocessing.sequence.pad_sequences(\n", + " tokenized_inputs, maxlen=ENCODER_LEN, padding='post', truncating='post'\n", + ")\n", + "tkn_targets = tf.keras.preprocessing.sequence.pad_sequences(\n", + " tokenized_outputs, maxlen=DECODER_LEN, padding='post', truncating='post'\n", + ")\n", + "\n", + "print(\"=== Padding check ===\")\n", + "print(\"tkn_sources[0][:30]:\", tkn_sources[0][:30])\n", + "print(\"tkn_targets[0][:30]:\", tkn_targets[0][:30])\n", + "\n", + "print(\"\\nSRC decoded (first 30):\")\n", + "show_tokens(SRC_tokenizer, tkn_sources[0], n=30)\n", + "print(\"TRG decoded (first 30):\")\n", + "show_tokens(TRG_tokenizer, tkn_targets[0], n=30)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "KULY2MOO42bM", + "outputId": "b6210948-2e81-458e-d703-8ba969e83d4b" + }, + "execution_count": 6, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "=== SRC tokenizer demo ===\n", + "Input : It is winter and the weather is very cold.\n", + "txt_2_ids : [[15, 10, 926, 23, 4, 458, 10, 96, 304]]\n", + "ids_2_txt : it is winter and the weather is very cold \n", + "\n", + "Input : Will this Christmas be a white Christmas?\n", + "txt_2_ids : [[28, 25, 138, 26, 8, 466, 138]]\n", + "ids_2_txt : will this christmas be a white christmas \n", + "\n", + "Input : Be careful not to catch a cold in winter and have a happy new year.\n", + "txt_2_ids : [[26, 575, 9, 5, 372, 8, 304, 14, 926, 23, 17, 8, 319, 110, 179]]\n", + "ids_2_txt : be careful not to catch a cold in winter and have a happy new year \n", + "\n", + "=== TRG tokenizer demo ===\n", + "Input : C'est l'hiver et il fait très froid.\n", + "txt_2_ids : [[1, 1, 30, 11, 55, 1, 451]]\n", + "ids_2_txt : et il fait froid \n", + "\n", + "Input : Ce Noël sera-t-il un Noël blanc ?\n", + "txt_2_ids : [[17, 1, 245, 70, 11, 14, 1, 691]]\n", + "ids_2_txt : ce sera t il un blanc \n", + "\n", + "Input : Attention à ne pas attraper froid en hiver et bonne année.\n", + "txt_2_ids : [[740, 1, 13, 10, 666, 451, 24, 1001, 30, 190, 1]]\n", + "ids_2_txt : attention ne pas attraper froid en hiver et bonne \n", + "\n", + "=== Padding check ===\n", + "tkn_sources[0][:30]: [ 2 19 50 8 561 706 14 4 167 67 50 19 67 706 50 3 0 0\n", + " 0 0 0 0 0 0 0 0 0 0 0 0]\n", + "tkn_targets[0][:30]: [ 2 45 73 11 14 1665 31 8 324 199 11 21 45 73\n", + " 10 4 1665 3 0 0 0 0 0 0 0 0 0 0\n", + " 0 0]\n", + "\n", + "SRC decoded (first 30):\n", + "ids : [np.int32(2), np.int32(19), np.int32(50), np.int32(8), np.int32(561), np.int32(706), np.int32(14), np.int32(4), np.int32(167), np.int32(67), np.int32(50), np.int32(19), np.int32(67), np.int32(706), np.int32(50), np.int32(3), np.int32(0), np.int32(0), np.int32(0), np.int32(0), np.int32(0), np.int32(0), np.int32(0), np.int32(0), np.int32(0), np.int32(0), np.int32(0), np.int32(0), np.int32(0), np.int32(0)]\n", + "text : was there a dead body in the room no there was no body there \n", + "TRG decoded (first 30):\n", + "ids : [np.int32(2), np.int32(45), np.int32(73), np.int32(11), np.int32(14), np.int32(1665), np.int32(31), np.int32(8), np.int32(324), np.int32(199), np.int32(11), np.int32(21), np.int32(45), np.int32(73), np.int32(10), np.int32(4), np.int32(1665), np.int32(3), np.int32(0), np.int32(0), np.int32(0), np.int32(0), np.int32(0), np.int32(0), np.int32(0), np.int32(0), np.int32(0), np.int32(0), np.int32(0), np.int32(0)]\n", + "text : y avait il un cadavre dans la chambre non il n y avait pas de cadavre \n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Torch tensors + DataLoader + Batch Shape Check\n", + "tensors_src = torch.tensor(tkn_sources).to(device)\n", + "tensors_trg = torch.tensor(tkn_targets).to(device)\n", + "\n", + "from torch.utils.data import TensorDataset, DataLoader\n", + "\n", + "dataset = TensorDataset(tensors_src, tensors_trg)\n", + "dataloader = DataLoader(dataset, batch_size=BATCH_SIZE, shuffle=True)\n", + "\n", + "print(\"=== One batch shape check ===\")\n", + "src_batch, trg_batch = next(iter(dataloader))\n", + "show_shape(\"src_batch\", src_batch)\n", + "show_shape(\"trg_batch\", trg_batch)\n", + "pad_cnt, total = count_pad(src_batch, pad_id=0)\n", + "print(f\"SRC PAD ratio: {pad_cnt}/{total} = {pad_cnt/total:.3f}\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "kII7o1iq44e_", + "outputId": "26cabad3-e9d8-4a7d-cae8-63bacbd1d4e4" + }, + "execution_count": 7, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "=== One batch shape check ===\n", + "src_batch: shape=(128, 40), dtype=torch.int32, device=cuda:0\n", + "trg_batch: shape=(128, 40), dtype=torch.int32, device=cuda:0\n", + "SRC PAD ratio: 3415/5120 = 0.667\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "### Q2. Positional Encoding\n", + "\n", + "1) Positional Encoding을 하는 이유가 무엇인가요?\n", + "\n", + "Transformer는 입력된 모든 단어를 동시에 처리하며 단어 간 관계만 계산하는데, 이 과정에는 단어의 순서 정보가 포함되지 않기 때문에, 문장 내 각 단어의 위치를 알려주기 위해 Positional Encoding을 추가합니다." + ], + "metadata": { + "id": "t8lmXdL17cis" + } + }, + { + "cell_type": "code", + "source": [ + "# Hyperparams + Positional Encoding + Mask Functions + Mask Debug\n", + "n_layers = 2\n", + "hid_dim = 256\n", + "pf_dim = 1024\n", + "n_heads = 8\n", + "dropout = 0.3\n", + "pe_source = 512\n", + "pe_target = 512\n", + "layer_norm_epsilon = 1e-12\n", + "\n", + "class get_sinusoid_encoding_table(nn.Module):\n", + " def __init__(self, position, hid_dim):\n", + " super().__init__()\n", + " self.hid_dim = hid_dim\n", + " pe = torch.zeros(position, hid_dim).to(device)\n", + "\n", + " for pos in range(position):\n", + " for i in range(0, hid_dim, 2):\n", + " pe[pos, i] = math.sin(pos / (10000 ** ((2 * i)/hid_dim)))\n", + " pe[pos, i + 1] = math.cos(pos / (10000 ** ((2 * i)/hid_dim)))\n", + "\n", + " self.pe = pe.unsqueeze(0)\n", + " self.pe.requires_grad = False\n", + "\n", + " def forward(self, x):\n", + " ret = math.sqrt(self.hid_dim)*x + self.pe[:, :x.size(1)]\n", + " return ret\n", + "\n", + "def create_padding_mask(x):\n", + " input_pad = 0\n", + " mask = (x == input_pad).float()\n", + " mask = mask.unsqueeze(1).unsqueeze(1)\n", + " return mask\n", + "\n", + "def create_look_ahead_mask(seq):\n", + " seq_len = seq.shape[1]\n", + " look_ahead_mask = torch.ones(seq_len, seq_len)\n", + " look_ahead_mask = torch.triu(look_ahead_mask, diagonal=1).to(device)\n", + " return look_ahead_mask\n", + "\n", + "print(\"=== Positional Encoding sanity ===\")\n", + "x = torch.zeros(2, 5, hid_dim).to(device)\n", + "pe = get_sinusoid_encoding_table(10, hid_dim).to(device)\n", + "y = pe(x)\n", + "show_shape(\"x\", x)\n", + "show_shape(\"y\", y)\n", + "print(\"y[0,0,0:6] =\", y[0,0,:6].detach().cpu().numpy())\n", + "print(\"y[0,1,0:6] =\", y[0,1,:6].detach().cpu().numpy(), \"(different position)\")\n", + "\n", + "print(\"\\n=== Mask check ===\")\n", + "src_batch, trg_batch = next(iter(dataloader))\n", + "enc_pad = create_padding_mask(src_batch)\n", + "look = create_look_ahead_mask(trg_batch)\n", + "dec_pad = create_padding_mask(trg_batch)\n", + "combined = torch.maximum(dec_pad, look)\n", + "\n", + "show_shape(\"enc_padding_mask\", enc_pad)\n", + "show_shape(\"look_ahead_mask\", look)\n", + "show_shape(\"dec_target_padding_mask\", dec_pad)\n", + "show_shape(\"combined_mask\", combined)\n", + "print(\"\\nlook_ahead_mask[0:8,0:8]:\\n\", look[:8,:8].detach().cpu().numpy())" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "yZw-ECKG47sJ", + "outputId": "e5682926-e926-46d5-abd8-a577a8ad5ad4" + }, + "execution_count": 8, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "=== Positional Encoding sanity ===\n", + "x: shape=(2, 5, 256), dtype=torch.float32, device=cuda:0\n", + "y: shape=(2, 5, 256), dtype=torch.float32, device=cuda:0\n", + "y[0,0,0:6] = [0. 1. 0. 1. 0. 1.]\n", + "y[0,1,0:6] = [0.84147096 0.5403023 0.7617204 0.6479059 0.68156135 0.731761 ] (different position)\n", + "\n", + "=== Mask check ===\n", + "enc_padding_mask: shape=(128, 1, 1, 40), dtype=torch.float32, device=cuda:0\n", + "look_ahead_mask: shape=(40, 40), dtype=torch.float32, device=cuda:0\n", + "dec_target_padding_mask: shape=(128, 1, 1, 40), dtype=torch.float32, device=cuda:0\n", + "combined_mask: shape=(128, 1, 40, 40), dtype=torch.float32, device=cuda:0\n", + "\n", + "look_ahead_mask[0:8,0:8]:\n", + " [[0. 1. 1. 1. 1. 1. 1. 1.]\n", + " [0. 0. 1. 1. 1. 1. 1. 1.]\n", + " [0. 0. 0. 1. 1. 1. 1. 1.]\n", + " [0. 0. 0. 0. 1. 1. 1. 1.]\n", + " [0. 0. 0. 0. 0. 1. 1. 1.]\n", + " [0. 0. 0. 0. 0. 0. 1. 1.]\n", + " [0. 0. 0. 0. 0. 0. 0. 1.]\n", + " [0. 0. 0. 0. 0. 0. 0. 0.]]\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "### Q3. look-ahead mask의 의미(Decoder self-attention)\n", + "1) look-ahead mask는 어떤 정보를 “가리기” 위해 존재하나요? \n", + "\n", + "\n", + "Transformer는 입력을 병렬적으로 처리하기 때문에, 디코더가 현재 시점의 단어를 예측할 때 아직 생성되지 않은 미래 단어의 정보를 참조하지 못하도록 해야 한다. 이를 위해 look-ahead mask를 사용하여 미래 토큰에 대한 attention score를 차단함으로써, 생성되는 단어가 오직 현재까지의 정보만을 기반으로 예측되도록 한다." + ], + "metadata": { + "id": "G8yXCv_E7184" + } + }, + { + "cell_type": "code", + "source": [ + "# Attention + MHA + Encoder/Decoder/Transformer (with 1-time debug print)\n", + "class ScaledDotProductAttention(nn.Module):\n", + " def __init__(self):\n", + " super().__init__()\n", + " self.dropout = nn.Dropout(0.3)\n", + "\n", + " def forward(self, query, key, value, mask):\n", + " if DEBUG_ONCE[\"attn\"]:\n", + " print(\"=== [DEBUG] ScaledDotProductAttention ===\")\n", + " show_shape(\"query\", query)\n", + " show_shape(\"key\", key)\n", + " show_shape(\"value\", value)\n", + " if mask is not None: show_shape(\"mask\", mask)\n", + "\n", + " matmul_qk = torch.matmul(query, torch.transpose(key,2,3))\n", + " dk = key.shape[-1]\n", + " scaled_attention_logits = matmul_qk / math.sqrt(dk)\n", + "\n", + " if mask is not None:\n", + " scaled_attention_logits += (mask * -1e9)\n", + "\n", + " attention_weights = F.softmax(scaled_attention_logits, dim=-1)\n", + " output = torch.matmul(attention_weights, value)\n", + "\n", + " if DEBUG_ONCE[\"attn\"]:\n", + " show_shape(\"attention_weights\", attention_weights)\n", + " show_shape(\"output\", output)\n", + " print(\"attn_weights sample (head0, q0, first 8):\",\n", + " attention_weights[0,0,0,:8].detach().cpu().numpy())\n", + " DEBUG_ONCE[\"attn\"] = False\n", + "\n", + " return output, attention_weights\n", + "\n", + "class MultiHeadAttentionLayer(nn.Module):\n", + " def __init__(self, hid_dim, n_heads):\n", + " super(MultiHeadAttentionLayer, self).__init__()\n", + " self.n_heads = n_heads\n", + " assert hid_dim % self.n_heads == 0\n", + " self.hid_dim = hid_dim\n", + " self.depth = int(hid_dim/self.n_heads)\n", + "\n", + " self.q_linear = nn.Linear(hid_dim, hid_dim)\n", + " self.k_linear = nn.Linear(hid_dim, hid_dim)\n", + " self.v_linear = nn.Linear(hid_dim, hid_dim)\n", + "\n", + " self.scaled_dot_attn = ScaledDotProductAttention()\n", + " self.out = nn.Linear(hid_dim, hid_dim)\n", + "\n", + " def split_heads(self, inputs, batch_size):\n", + " inputs = torch.reshape(inputs, (batch_size, -1, self.n_heads, self.depth))\n", + " return torch.transpose(inputs, 1,2)\n", + "\n", + " def forward(self, inputs):\n", + " query, key, value, mask = inputs['query'], inputs['key'], inputs['value'], inputs['mask']\n", + " batch_size = query.shape[0]\n", + "\n", + " query = self.q_linear(query)\n", + " key = self.k_linear(key)\n", + " value = self.v_linear(value)\n", + "\n", + " query = self.split_heads(query, batch_size)\n", + " key = self.split_heads(key, batch_size)\n", + " value = self.split_heads(value, batch_size)\n", + "\n", + " scaled_attention, _ = self.scaled_dot_attn(query, key, value, mask)\n", + "\n", + " scaled_attention = torch.transpose(scaled_attention, 1,2)\n", + " concat_attention = torch.reshape(scaled_attention, (batch_size, -1, self.hid_dim))\n", + " outputs = self.out(concat_attention)\n", + " return outputs\n", + "\n", + "class PositionwiseFeedforwardLayer(nn.Module):\n", + " def __init__(self, hid_dim, pf_dim):\n", + " super(PositionwiseFeedforwardLayer, self).__init__()\n", + " self.linear_1 = nn.Linear(hid_dim, pf_dim)\n", + " self.linear_2 = nn.Linear(pf_dim, hid_dim)\n", + "\n", + " def forward(self, attention):\n", + " output = self.linear_1(attention)\n", + " output = F.relu(output)\n", + " output = self.linear_2(output)\n", + " return output\n", + "\n", + "class EncoderLayer(nn.Module):\n", + " def __init__(self):\n", + " super(EncoderLayer, self).__init__()\n", + " self.attn = MultiHeadAttentionLayer(hid_dim, n_heads)\n", + " self.ffn = PositionwiseFeedforwardLayer(hid_dim, pf_dim)\n", + "\n", + " self.layernorm1 = nn.LayerNorm(hid_dim)\n", + " self.layernorm2 = nn.LayerNorm(hid_dim)\n", + "\n", + " self.dropout1 = nn.Dropout(dropout)\n", + " self.dropout2 = nn.Dropout(dropout)\n", + "\n", + " def forward(self, inputs, padding_mask):\n", + " attention = self.attn({'query': inputs, 'key': inputs, 'value': inputs, 'mask': padding_mask})\n", + " attention = self.dropout1(attention)\n", + " attention = self.layernorm1(inputs + attention)\n", + "\n", + " ffn_outputs = self.ffn(attention)\n", + " ffn_outputs = self.dropout2(ffn_outputs)\n", + " ffn_outputs = self.layernorm2(attention + ffn_outputs)\n", + " return ffn_outputs\n", + "\n", + "class Encoder(nn.Module):\n", + " def __init__(self):\n", + " super(Encoder, self).__init__()\n", + " self.embedding = nn.Embedding(n_enc_vocab, hid_dim)\n", + " self.pos_encoding = get_sinusoid_encoding_table(pe_source, hid_dim)\n", + " self.enc_layers = EncoderLayer()\n", + " self.dropout1 = nn.Dropout(dropout)\n", + "\n", + " def forward(self, x, padding_mask):\n", + " emb = self.embedding(x)\n", + " emb *= math.sqrt(hid_dim)\n", + " emb = self.pos_encoding(emb)\n", + " output = self.dropout1(emb)\n", + "\n", + " for i in range(n_layers):\n", + " output = self.enc_layers(output, padding_mask)\n", + " return output\n", + "\n", + "class DecoderLayer(nn.Module):\n", + " def __init__(self):\n", + " super(DecoderLayer, self).__init__()\n", + " self.attn = MultiHeadAttentionLayer(hid_dim, n_heads)\n", + " self.attn_2 = MultiHeadAttentionLayer(hid_dim, n_heads)\n", + " self.ffn = PositionwiseFeedforwardLayer(hid_dim, pf_dim)\n", + "\n", + " self.layernorm1 = nn.LayerNorm(hid_dim)\n", + " self.layernorm2 = nn.LayerNorm(hid_dim)\n", + " self.layernorm3 = nn.LayerNorm(hid_dim)\n", + "\n", + " self.dropout1 = nn.Dropout(dropout)\n", + " self.dropout2 = nn.Dropout(dropout)\n", + " self.dropout3 = nn.Dropout(dropout)\n", + "\n", + " def forward(self, inputs, enc_outputs, padding_mask, look_ahead_mask):\n", + " attention1 = self.attn({'query': inputs, 'key': inputs, 'value': inputs, 'mask': look_ahead_mask})\n", + " attention1 = self.dropout1(attention1)\n", + " attention1 = self.layernorm1(inputs + attention1)\n", + "\n", + " attention2 = self.attn_2({'query': attention1, 'key': enc_outputs, 'value': enc_outputs, 'mask': padding_mask})\n", + " attention2 = self.dropout2(attention2)\n", + " attention2 = self.layernorm2(attention1 + attention2)\n", + "\n", + " ffn_outputs = self.ffn(attention2)\n", + " ffn_outputs = self.dropout3(ffn_outputs)\n", + " ffn_outputs = self.layernorm3(attention2 + ffn_outputs)\n", + " return ffn_outputs\n", + "\n", + "class Decoder(nn.Module):\n", + " def __init__(self):\n", + " super(Decoder, self).__init__()\n", + " self.embedding = nn.Embedding(n_dec_vocab, hid_dim)\n", + " self.pos_encoding = get_sinusoid_encoding_table(pe_target, hid_dim)\n", + " self.dec_layers = DecoderLayer()\n", + " self.dropout = nn.Dropout(dropout)\n", + "\n", + " def forward(self, enc_output, dec_input, padding_mask, look_ahead_mask):\n", + " emb = self.embedding(dec_input)\n", + " emb *= math.sqrt(hid_dim)\n", + " emb = self.pos_encoding(emb)\n", + " output = self.dropout(emb)\n", + "\n", + " for i in range(n_layers):\n", + " output = self.dec_layers(output, enc_output, padding_mask, look_ahead_mask)\n", + " return output\n", + "\n", + "class Transformer(nn.Module):\n", + " def __init__(self, n_enc_vocab, n_dec_vocab,\n", + " n_layers, pf_dim, hid_dim, n_heads,\n", + " pe_source, pe_target, dropout):\n", + " super(Transformer, self).__init__()\n", + "\n", + " self.encoder = Encoder()\n", + " self.decoder = Decoder()\n", + " self.fin_output = nn.Linear(hid_dim, n_dec_vocab)\n", + "\n", + " def forward(self, enc_inputs, dec_inputs):\n", + " enc_padding_mask = create_padding_mask(enc_inputs)\n", + " dec_padding_mask = create_padding_mask(enc_inputs)\n", + "\n", + " look_ahead_mask = create_look_ahead_mask(dec_inputs)\n", + " dec_target_padding_mask = create_padding_mask(dec_inputs).to(device)\n", + " look_ahead_mask = torch.maximum(dec_target_padding_mask, look_ahead_mask)\n", + "\n", + " enc_output = self.encoder(enc_inputs, enc_padding_mask)\n", + " dec_output = self.decoder(enc_output, dec_inputs, dec_padding_mask, look_ahead_mask)\n", + " final_output = self.fin_output(dec_output)\n", + " return final_output" + ], + "metadata": { + "id": "jW0LSuEK4_HB" + }, + "execution_count": 9, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Build model + Init + Forward Pass Shape Check (before training)\n", + "model = Transformer(\n", + " n_enc_vocab = n_enc_vocab,\n", + " n_dec_vocab = n_dec_vocab,\n", + " n_layers = n_layers,\n", + " pf_dim = pf_dim,\n", + " hid_dim = hid_dim,\n", + " n_heads = n_heads,\n", + " pe_source = 512,\n", + " pe_target = 512,\n", + " dropout = dropout\n", + ").to(device)\n", + "\n", + "def count_parameters(model):\n", + " return sum(p.numel() for p in model.parameters() if p.requires_grad)\n", + "\n", + "print(f'The model has {count_parameters(model):,} trainable parameters')\n", + "\n", + "def initialize_weights(m):\n", + " classname = m.__class__.__name__\n", + " if classname.find('Linear') != -1:\n", + " nn.init.kaiming_normal_(m.weight)\n", + " if m.bias is not None:\n", + " nn.init.constant_(m.bias, 0.0)\n", + "\n", + "model.apply(initialize_weights)\n", + "\n", + "import os.path\n", + "if os.path.isfile('./checkpoints/transformermodel.pt'):\n", + " model.load_state_dict(torch.load('./checkpoints/transformermodel.pt'))\n", + "\n", + "print('네트워크 초기화 완료')\n", + "\n", + "print(\"=== Forward pass shape check (no training) ===\")\n", + "src_batch, trg_batch = next(iter(dataloader))\n", + "with torch.no_grad():\n", + " out = model(src_batch, trg_batch)\n", + "show_shape(\"model_output(logits)\", out)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "smFtliiK4_2S", + "outputId": "a7296263-5f30-4769-8069-511ac2c8303c" + }, + "execution_count": 10, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "The model has 7,347,293 trainable parameters\n", + "네트워크 초기화 완료\n", + "=== Forward pass shape check (no training) ===\n", + "=== [DEBUG] ScaledDotProductAttention ===\n", + "query: shape=(128, 8, 40, 32), dtype=torch.float32, device=cuda:0\n", + "key: shape=(128, 8, 40, 32), dtype=torch.float32, device=cuda:0\n", + "value: shape=(128, 8, 40, 32), dtype=torch.float32, device=cuda:0\n", + "mask: shape=(128, 1, 1, 40), dtype=torch.float32, device=cuda:0\n", + "attention_weights: shape=(128, 8, 40, 40), dtype=torch.float32, device=cuda:0\n", + "output: shape=(128, 8, 40, 32), dtype=torch.float32, device=cuda:0\n", + "attn_weights sample (head0, q0, first 8): [0. 0. 0. 0. 0. 0. 0. 0.]\n", + "model_output(logits): shape=(128, 40, 7773), dtype=torch.float32, device=cuda:0\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Loss + Optimizer + Label Shift Debug (one batch)\n", + "criterion = nn.CrossEntropyLoss()\n", + "learning_rate = 0.0005\n", + "optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate)\n", + "\n", + "print(\"=== Label shift check ===\")\n", + "src_batch, trg_batch = next(iter(dataloader))\n", + "with torch.no_grad():\n", + " logits = model(src_batch, trg_batch)\n", + "\n", + "preds_id = torch.transpose(logits, 1, 2)\n", + "pad = torch.LongTensor(trg_batch.size(0), 1).fill_(0).to(device)\n", + "labels_lm = torch.cat((trg_batch[:, 1:], pad), -1)\n", + "\n", + "show_shape(\"preds_id\", preds_id)\n", + "show_shape(\"labels_lm\", labels_lm)\n", + "\n", + "print(\"TRG original first row:\", trg_batch[0, :15].detach().cpu().tolist())\n", + "print(\"TRG shifted first row:\", labels_lm[0, :15].detach().cpu().tolist())" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "9Z9wVB9L5FCJ", + "outputId": "0cfee16d-9765-4cb4-f6ff-2fff25495ad0" + }, + "execution_count": 11, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "=== Label shift check ===\n", + "preds_id: shape=(128, 7773, 40), dtype=torch.float32, device=cuda:0\n", + "labels_lm: shape=(128, 40), dtype=torch.int64, device=cuda:0\n", + "TRG original first row: [2, 12, 11, 1564, 4, 505, 4, 8, 736, 43, 9, 3253, 4, 108, 690]\n", + "TRG shifted first row: [12, 11, 1564, 4, 505, 4, 8, 736, 43, 9, 3253, 4, 108, 690, 3]\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Train Loop + Save Best + Loss Plot\n", + "def train(epoch, model, dataloader, optimizer, criterion, clip):\n", + " model.train()\n", + " epoch_loss = 0\n", + "\n", + " with tqdm_notebook(total=len(dataloader), desc=f\"Train {epoch+1}\") as pbar:\n", + " for batch_idx, samples in enumerate(dataloader):\n", + " src_inputs, trg_outputs = samples\n", + "\n", + " logits_lm = model(src_inputs, trg_outputs)\n", + "\n", + " pad = torch.LongTensor(trg_outputs.size(0), 1).fill_(0).to(device)\n", + " preds_id = torch.transpose(logits_lm,1,2)\n", + " labels_lm = torch.cat((trg_outputs[:, 1:], pad), -1)\n", + "\n", + " optimizer.zero_grad()\n", + " loss = criterion(preds_id, labels_lm)\n", + " loss.backward()\n", + " torch.nn.utils.clip_grad_norm_(model.parameters(), clip)\n", + " optimizer.step()\n", + "\n", + " epoch_loss += loss.item()\n", + " pbar.update(1)\n", + "\n", + " return epoch_loss / len(dataloader)\n", + "\n", + "CLIP = 0.5\n", + "epoch_ = []\n", + "epoch_train_loss = []\n", + "\n", + "torch.backends.cudnn.benchmark = True\n", + "best_epoch_loss = float(\"inf\")\n", + "\n", + "for epoch in range(N_EPOCHS):\n", + " train_loss = train(epoch, model, dataloader, optimizer, criterion, CLIP)\n", + "\n", + " if train_loss < best_epoch_loss:\n", + " if not os.path.isdir(\"checkpoints\"):\n", + " os.makedirs(\"checkpoints\")\n", + " best_epoch_loss = train_loss\n", + " torch.save(model.state_dict(), './checkpoints/transformermodel.pt')\n", + "\n", + " epoch_.append(epoch)\n", + " epoch_train_loss.append(train_loss)\n", + " print(f'\\tTrain Loss: {train_loss:.3f} | Train PPL: {math.exp(train_loss):7.3f}')\n", + "\n", + "fig = plt.figure(figsize=(8,8))\n", + "fig.set_facecolor('white')\n", + "ax = fig.add_subplot()\n", + "ax.plot(epoch_, epoch_train_loss, label='Average loss')\n", + "ax.legend()\n", + "ax.set_xlabel('epoch')\n", + "ax.set_ylabel('loss')\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000, + "referenced_widgets": [ + "d26402b3323f434ea82e8cbdf1212641", + "64d84a74a3514f3b831db82e78b3a138", + "4295db32215e46838e5bc88b8dcf3b85", + "b944ce87b716433fbe6ed157c35e4ef3", + "2ced4257d92d44d392baaee5e89abbeb", + "1a9439b7f8ee4fc49a73df6869a60ba1", + "d668330aca8b49149671bd477315e3da", + "e5f14aadb544420f9476169c03e07a4a", + "afb0be0dd3514627a3f6060b70ed824f", + "7664a9c3e7714c90a50f172c7b6b53df", + "4d2d0b7d9ffc41e6ac5c322d14a32c2c", + "742bea77ec6344ecad53d146963502c1", + "9f0ecf5563ce46a0a946aa625075d613", + "9e316848597f44f485f025e454b4d360", + "56d3e310ccf545b7a24f31971b6f1b34", + "ba60e23fca4e46a1a52b4a6a05efe945", + "6761d31025ad4b038f97dfadaa9c151a", + "fcc20e772c094fbfabe89c8da869de19", + "4673afd5f17f4fe5a639ec87b986c81d", + "e52d3209472d44c1814b3de06f770ee9", + "adb3d0b351e04409907ab60469317c16", + "7297d93c3d9b44d4a1b38e7221c946f9", + "cbe5521c5f0f4b9f8b90404dea5e39e1", + "282fbd4a90414eb099877697af4e8860", + "3ae65880b50b4804b995a919f1186c0c", + "de021b9f99fc4a209f75efaa31370fb1", + "77eba73ece8a4881a29f8d2d023379bf", + "cac3e937a13f447ca6aa6887b392259a", + "ed1c4a1670244a65898e5b41058839df", + "dd4b91896b2342089e17757985280a78", + "994aeeaaf2f84655890437ca539ed8b1", + "254514b57fed4862996c10dcc885e164", + "bf8ce3a8c3ec4df8a24e1e29a8ed173c", + "86d74ce7591548b5969197f43aaff33d", + "04339d0aac8c445b862ae668a2eb6e94", + "aedaa1f9360542c381a01d1a7169322b", + "3e15ff6725c34dbc9490e00916c9f5b5", + "23467ed6d0f341f2bad2610d024883d0", + "888b352ed64b484dbd754be07a53b14b", + "5389cd8f40a24009b1ed2fb117f6b012", + "b07fd91860864416ad496c0479df0880", + "794bf93c9de74d9bacf3c8e75f9ab314", + "721dc5ff2dd14a4bb1d60bf3bb0eacb9", + "d7988880e4784b10bc39ed2d08308324", + "761c9be89a8f4f8782e7230d8aa3c728", + "eabc6eb4c40b44d8bb60de43b0d0f0b8", + "99588db9ca06449cadad834330041014", + "abc93165c2484bcdbc0301d3cdd78970", + "d2b943835d6649a793d14744ac9687ca", + "63e77c1dda244a8f9a77ca59e1ac8909", + "bba84f868bcf428286a31b070c854491", + "39ef67e06cc1417fa2dc635728b1b2f4", + "30d15a36159f49319937567d2aab37a5", + "4cc870b95b9a4edf87d1fa0ca6fc2e35", + "c41669041cc345969545483203035555", + "78ebc91f182e4149971c12284f65a84a", + "b5e4ca91baf648569adb2da6c052bd88", + "f9f059ba8a334afd97caee5c2377c00f", + "c3e35c99675644c8a1ce1f51cd7fa567", + "518277c986b64b34a2c52f60dbe518a7", + "2074ef40576b46da88c5a7862b858657", + "a95357d639004ccabf978e8efec5ef85", + "13770e3335d04c09bec81c5d52c6e597", + "c42a36769cb04fce93689adc018025d0", + "ac5c1bd41ae149a5814a398e895176ac", + "ce3e104e9921438191c543a0b9db0f2b", + "903cc7b9f0b64e90851ee680195e9c74", + "5166155aa0e24a838c0db568882d3f67", + "e6f6f0f3f3654023818c99660c2c1ed2", + "1f202ba0af23400c9a70a750b2cc682c", + "38ceb7c90e5c4e3aa2925da224ad2a02", + "9139385ab8b64a8488a0dab1b3041083", + "efe581fdde2d4680bbcbd0a71aac7a55", + "47317b4e48014f0d81bf4f92815f5575", + "cd75cda5d2ef46669deb6b1cf16edf20", + "d69c0134af4e444cbbbb0fc3578b237c", + "f2b21b2bfb944043905bdce3b97a1431", + "bd92d5e7936c464e80db12a65a05b303", + "2eaeeafbe79d4f9ab173aba9b6202b48", + "e971e1278e494c339e01db03724a7655", + "d904d003a52e406dad3a2e3d2f59bb6a", + "d3c12139452c40d59b01d79770f95903", + "6522b7c2a4344c08bf4fb36ba7f7020b", + "dcc9cd4d827c402dabec5ea7813774b8", + "a14db5bce7cf4559af6f29b0d3b04673", + "7874d5faa64f4992aa211adbb9b96791", + "aff4e5f6af304678af2d765c24d21b48", + "8e3dc8d227da441c888c0ddea4aa5f3d", + "58118383c4764bcdba5e08145fd3b334", + "d0b5ae1a0388496cb7acc6cc55df4840", + "f00eb7a8c5c14c3a9bbeb20be70ba862", + "9fc30318f5c344f2984bd7be691a89ac", + "e18decf582ca49f6ae6170bf165176bd", + "db8210c5b78a4e3aa4c464f1dfcca8b2", + "a9684f9a9ad4432aa629522cc746b892", + "9bff30cecaf94f56853fddf0c2659f81", + "b46f833fd2c1409492e8ac343e413d80", + "67ed87acc0294ea085f29403e4e46703", + "299cd954932c4615b56fbe03611e5f39", + "7c60e56f5f324fb98ad90bc2dddd4730", + "1a4259a6a7b54cfbaa9133a7a2c10494", + "629153b5b9614d5282cc9a01546e4932", + "ce06007a7a1d463f90ba478e9a9827ea", + "1c3fa98bfb34496bb4dd7dcd72a0db08", + "06b33de153bb4213970abe0cf3f45a8b", + "cf80d7f9a69e4a8aabd9b596b58baa3f", + "962a15d4260e4367868e821744d2ca86", + "20e8550de08b4c4d930d81823facdf9c", + "3950d96600d24166a8fcd7a8249e3f70", + "775aa16af507482d99fe6195b31e0397", + "8ae2420e03d74b8fa3749761b3fa5a53", + "61087d9a0dcf4e0ca14baf53d9a4e52f", + "e1691d97eb3e48d58ccb30c7e23f4922", + "3eef35748e644c7a83a17c3044f7e618", + "e23785405e4e455ab47c390e0e3d69fb", + "474b9993b249448d96bf2ad126c0c351", + "2ca4e660b5894a33bbc2111d7012bc6c", + "c8f90fd79d364e21bc3017d0eff147be", + "14fe9959002547ccb6d6dc439bb1b0d5", + "214144a6dc96408f8de5f817a1d7c4c5", + "06a572dfc5a44318a10e3ed1fc86dc5f", + "cc31fc4c631a4addbadec04b9f275564", + "29e3f13ebaeb4463acfdbe88e2044fd5", + "d22bcf60b34e4039b7a57a32d4521314", + "2e06be3369c747c9b652f2064720d945", + "5db2873a01764de1a8388ba95a688507", + "73fc171976bb4172816086ccd413ccbf", + "259926f1183b47ea810af0b39eb3c0b0", + "be394d3f655f4afc9670420dc3ad695e", + "205574ad304c4dfb9163151fb6b11971", + "431a0a55915041e3b7e8e1d6ddb5b0f9", + "a7544d0091c2487cb2e1617f2dce6e17", + "0ec5e93fe8b74caf9975bd4b629e04f7", + "0f237effd68d4402bc97237252c74872", + "077656de56734e95836a070e6f8135ab", + "812c399da6f44ff6a0469365b8057667", + "a31cd9f91cc549698497d610b469755e", + "c6dcfc9acc3b47259138ba75924ed86c", + "73a44d4d4dfd4673ba938909d72c5ab7", + "f167a1484a9e4337a4f2e1ae37099427", + "7f96706665db45e7a825030aa1558132", + "4515cefb1ba944ff9f67ffc5e9ba24da", + "12938f9e121f4fa6a3d644f3e2dc83fd", + "cae40331499c4e3dbc204b5856c0075c", + "fc4ef200709e45518c18e6a9197454c8", + "9e8507bb52b2453a8be9ddf9e952666a", + "d40034fc7ecf4f74a52d4b343cfdeade", + "c69833f4fee242a4bd1e8cee18e1c500", + "4f616a05acd2402f959ec2140128436a", + "cfd11af5fa1741429f00a8f4376fae6c", + "6f6b966160304b60966b22890d49849f", + "3a33ac92e53442c4bc3231c4a1ef8bd1", + "c32072f5b2614dbeafef209a8b80c37c", + "b05e0c7ab44c4f92be56a5b43020a3b4", + "ada53c0a69744ba3b756bcfa9013182e", + "379d2b9735ee4037bf4cd2fa51107cf5", + "55bf05fe136e467486850c7e5666108a", + "47e9c07d2fa14f328a066321214eea32", + "d5980ee0a164475491ca0fb3b4135879", + "789654be95a64d538bf093e12a3396e3", + "f4376eb640364bd1a9c87503397ffe7b", + "0368d8e264ec4160a16347eb23f52c00", + "124f6f7c465b4c8f8d97c9793582260d", + "836b0b77e7e94d279ddba1454d849f79", + "a8021f268a674844bce70f69f65636a8", + "3b5bf05d173b406a9ddae5c6e9d796bf", + "5bdad48dd3a940bfb28f9308cccab2a0", + "9adf2bd0312a42709b463b11955f75c8", + "ecebd566dd104385b54cb2f5a69aab8d", + "6d6d820d484148e48c6bc7c5c4706ee1", + "f93eaede47e3496e946dea6f341ca32f", + "8a6575b1e1cf479a8cfcd4d2983e6b8c", + "af99ebb6888c47ad81a2748f18db3443", + "3845a5b45d224ffa983305a934a4feca", + "08b753931e34460bbae5eb2665d53c55", + "a26bd2d3ca8248979b1ca1f7dd122c28", + "5077f5edf4614d3e929cef71ae9c02fa", + "d11861fe0b2148018425633222c032d0", + "82275da2c9f74c3fb11e399d1e4a54c1", + "239ac3442445416c97ed35116979b426", + "b2cc304245ef432183381a1f897b89ae", + "61f73af7a82a4da39a7b1757c3afe12b", + "662f49fab8aa42aca062a897cf6b5172", + "d29a10705dcb483da8c46df3184e3635", + "e89471060522464a92468b335f30b46a", + "21466c61ceb84710ad04ccf3b7d28bb2", + "9a5c833d058b4125948fa54bbd83c37b", + "1e14b01239674cc2b04142f04f47e8ec", + "fe6d24caaa014429aee824b7c015eac7", + "a646576d79394732beca85e0307736d0", + "33a1c766e47c47d99b7bf75c565d7829", + "15814b02a7c5499997e0833409c187b8", + "80e1a23ad659402ebf265761fea8fa61", + "f7253b36e48947d0ac8f5cee58a3c67d", + "74a269ee9c314275945d03427095baff", + "026dc97c246d4da39c10c726daa5067e", + "9189b0d6114d4b7da5a3ce5e72f5911a", + "8c8473918c4f411cb55b5b11b5c3ee50", + "f5eaaf1baa8f4cfcacf97cb82d14bf62", + "c896e16465b04134ab19e7661d34d6a9", + "1bdcfcfc9a5844c3b292a18c7e2aa912", + "ae3694f8cc06473baae154b1a0e77d2b", + "be409adfc7724ca4be47f16d84156987", + "6985ff9269804c3a90079d1a17cc917d", + "33d9ee60a3c94d1f8f50d5eb135e4105", + "f902c0ba3fd149aeb563c20ce4b2949f", + "3e5f962cb74845dd8019b9c12463562d", + "ef9b861baa164402bcf616b7c82400f2", + "92b6f66ace5f4d538e4322ac5e6bb7fa", + "674790611d654155ab242a3fd2671798", + "053594f2d1c34e5c9d475e6bb94e73e2", + "b83ec1839e014ef1a00fd643de4451c0", + "68df26a77d714c75a46302da698da68d", + "faaac30f7ea14e709499548205b65751", + "9a54382b56fe42bb96e409ca1ecd8119", + "bca3a15389ab483285aef6a04d197bc3", + "0d23f17e5b464b228395a95df246495d", + "1ff45995d820482daa8a71c46ac96957", + "ea22213964f4415aa909108f119b9d52", + "eb84f28749c445d790fbdfa0247674c4" + ] + }, + "id": "iyXwiMB98bva", + "outputId": "9607f7d7-959d-433f-e3bd-547b98a4a90d" + }, + "execution_count": 12, + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "/tmp/ipython-input-1074719180.py:6: TqdmDeprecationWarning: This function will be removed in tqdm==5.0.0\n", + "Please use `tqdm.notebook.tqdm` instead of `tqdm.tqdm_notebook`\n", + " with tqdm_notebook(total=len(dataloader), desc=f\"Train {epoch+1}\") as pbar:\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Train 1: 0%| | 0/64 [00:00" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArMAAAKnCAYAAACVoMWWAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAZH5JREFUeJzt3Xd8lfXd//H3yToJZBGyQyDsvQWFCDgCCAhSW1dp0Vutty1a0dpa3Na7Rq16t2qL1hul/hSxDsDKEpSEIUMZypI9QjYje+dcvz9CDkSSQxKSXGe8no/HeTzINc75nMOV8Oabz/X9WgzDMAQAAAC4IC+zCwAAAACaizALAAAAl0WYBQAAgMsizAIAAMBlEWYBAADgsgizAAAAcFmEWQAAALgswiwAAABclo/ZBbQ1m82mjIwMBQUFyWKxmF0OAAAAfsQwDBUWFio2NlZeXo7HXj0uzGZkZCg+Pt7sMgAAAHARaWlp6tSpk8NjPC7MBgUFSar5cIKDg02uBgAAAD9WUFCg+Ph4e25zxOPCbG1rQXBwMGEWAADAiTWmJZQbwAAAAOCyCLMAAABwWYRZAAAAuCyP65kFAABtwzAMVVVVqbq62uxS4IR8fX3l7e19yc9DmAUAAC2uoqJCmZmZKikpMbsUOCmLxaJOnTopMDDwkp6HMAsAAFqUzWbTkSNH5O3trdjYWPn5+bFQEeowDEO5ubk6ceKEevbseUkjtIRZAADQoioqKmSz2RQfH6927dqZXQ6cVEREhI4eParKyspLCrPcAAYAAFrFxZYhhWdrqdF6rjIAAAC4LFPD7Ny5czVo0CD7alyjRo3S8uXLGzz+rbfe0pgxY9ShQwd16NBBSUlJ2rJlSxtWDAAA4F6OHj0qi8WiHTt2mF1Ks5gaZjt16qTnn39eW7du1bfffqtrrrlGN9xwg3bv3l3v8SkpKbrtttu0Zs0abdy4UfHx8ZowYYLS09PbuHIAAODONm7cKG9vb02ZMsXsUnARpobZqVOnavLkyerZs6d69eqlP//5zwoMDNSmTZvqPf7999/Xb37zGw0ZMkR9+vTR//3f/8lms+nLL79s48oBAIA7mzdvnu6//36tXbtWGRkZrfpatfPxonmcpme2urpaCxcuVHFxsUaNGtWoc0pKSlRZWamwsLBWrg4AAHiKoqIiffjhh/r1r3+tKVOmaP78+fZ9P//5z3XLLbfUOb6yslLh4eF69913JdVMTZacnKyuXbsqICBAgwcP1scff2w/PiUlRRaLRcuXL9fw4cNltVq1fv16HTp0SDfccIOioqIUGBioESNGaPXq1XVeKzMzU1OmTFFAQIC6du2qBQsWKCEhQX/961/tx+Tl5enuu+9WRESEgoODdc011+i7775r0meQmpqqkSNHymq1KiYmRn/84x/rBO6PP/5YAwcOVEBAgDp27KikpCQVFxfb39/IkSPVvn17hYaGKjExUceOHWvS6zeF6VNz7dy5U6NGjVJZWZkCAwO1aNEi9evXr1HnPvLII4qNjVVSUlKDx5SXl6u8vNz+dUFBwSXXDAAAmsYwDJVWmrMSWICvd5PunP/3v/+tPn36qHfv3vrFL36h2bNna86cObJYLJoxY4ZuuukmFRUV2Sf7X7lypUpKSvSTn/xEkpScnKz33ntPb7zxhnr27Km1a9fqF7/4hSIiIjRu3Dj76/zxj3/USy+9pG7duqlDhw5KS0vT5MmT9ec//1lWq1Xvvvuupk6dqn379qlz586SpJkzZ+rkyZNKSUmRr6+vHnroIeXk5NSp/6abblJAQICWL1+ukJAQvfnmm7r22mu1f//+Rg0Apqena/Lkybrjjjv07rvv6ocfftCvfvUr+fv76+mnn1ZmZqZuu+02vfjii/rJT36iwsJCrVu3zj7CPH36dP3qV7/SBx98oIqKCm3ZsqVV5xk2Pcz27t1bO3bsUH5+vj7++GPdfvvtSk1NvWigff7557Vw4UKlpKTI39+/weOSk5P1zDPPtHTZAACgCUorq9XvyZWmvPaeP01UO7/GR5558+bpF7/4hSTpuuuuU35+vlJTU3XVVVdp4sSJat++vRYtWqRf/vKXkqQFCxZo2rRpCgoKUnl5uZ577jmtXr3a/pvmbt26af369XrzzTfrhNk//elPGj9+vP3rsLAwDR482P71s88+q0WLFumzzz7Tfffdpx9++EGrV6/WN998o8suu0yS9H//93/q2bOn/Zz169dry5YtysnJkdVqlSS99NJLWrx4sT7++GPdc889F33///jHPxQfH6/XX39dFotFffr0UUZGhh555BE9+eSTyszMVFVVlW688UZ16dJFkjRw4EBJ0unTp5Wfn6/rr79e3bt3lyT17du30Z99c5jeZuDn56cePXpo+PDhSk5O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R4wNGzYYSUlJRnh4uJGTk2MYBtfS+aqrq43OnTsbjzzyyAX7PPVaKiwsNLZv325s377dkGS88sorxvbt2+134D///PNGaGiosWTJEuP77783brjhBqNr165GaWmp/TmuueYa47XXXrN/fbGfb67K0WdVUVFhTJs2zejUqZOxY8eOOj+zysvL7c/x48/qYt+/rsjR51RYWGg8/PDDxsaNG40jR44Yq1evNoYNG2b07NnTKCsrsz+HJ1xTF/veMwzDyM/PN9q1a2fMnTu33ufwhOuptRBmW8hrr71mdO7c2fDz8zNGjhxpbNq0yb5v3Lhxxu23317n+H//+99Gr169DD8/P6N///7G0qVL27jitiWp3sc777xjP+bHn9Ps2bPtn2lUVJQxefJkY9u2bW1ffBu65ZZbjJiYGMPPz8+Ii4szbrnlFuPgwYP2/VxL56xcudKQZOzbt++CfZ56La1Zs6be77Paz8JmsxlPPPGEERUVZVitVuPaa6+94PPr0qWL8dRTT9XZ5ujnm6ty9FkdOXKkwZ9Za9assT/Hjz+ri33/uiJHn1NJSYkxYcIEIyIiwvD19TW6dOli/OpXv7oglHrCNXWx7z3DMIw333zTCAgIMPLy8up9Dk+4nlqLxTAMo1WHfgEAAIBWQs8sAAAAXBZhFgAAAC6LMAsAAACXRZgFAACAyyLMAgAAwGURZgEAAOCyCLMAAABwWYRZAPBQKSkpslgsysvLM7sUAGg2wiwAAABcFmEWAAAALoswCwAmsdlsSk5OVteuXRUQEKDBgwfr448/lnSuBWDp0qUaNGiQ/P39dcUVV2jXrl11nuOTTz5R//79ZbValZCQoJdffrnO/vLycj3yyCOKj4+X1WpVjx49NG/evDrHbN26VZdddpnatWun0aNHa9++fa37xgGgBRFmAcAkycnJevfdd/XGG29o9+7devDBB/WLX/xCqamp9mN+//vf6+WXX9Y333yjiIgITZ06VZWVlZJqQujNN9+sW2+9VTt37tTTTz+tJ554QvPnz7efP3PmTH3wwQd69dVXtXfvXr355psKDAysU8djjz2ml19+Wd9++618fHx05513tsn7B4CWYDEMwzC7CADwNOXl5QoLC9Pq1as1atQo+/a7775bJSUluueee3T11Vdr4cKFuuWWWyRJp0+fVqdOnTR//nzdfPPNmjFjhnJzc/XFF1/Yz//DH/6gpUuXavfu3dq/f7969+6tVatWKSkp6YIaUlJSdPXVV2v16tW69tprJUnLli3TlClTVFpaKn9//1b+FADg0jEyCwAmOHjwoEpKSjR+/HgFBgbaH++++64OHTpkP+78oBsWFqbevXtr7969kqS9e/cqMTGxzvMmJibqwIEDqq6u1o4dO+Tt7a1x48Y5rGXQoEH2P8fExEiScnJyLvk9AkBb8DG7AADwREVFRZKkpUuXKi4urs4+q9VaJ9A2V0BAQKOO8/X1tf/ZYrFIqunnBQBXwMgsAJigX79+slqtOn78uHr06FHnER8fbz9u06ZN9j+fOXNG+/fvV9++fSVJffv21YYNG+o874YNG9SrVy95e3tr4MCBstlsdXpwAcDdMDILACYICgrSww8/rAcffFA2m01XXnml8vPztWHDBgUHB6tLly6SpD/96U/q2LGjoqKi9Nhjjyk8PFzTp0+XJP3ud7/TiBEj9Oyzz+qWW27Rxo0b9frrr+sf//iHJCkhIUG333677rzzTr366qsaPHiwjh07ppycHN18881mvXUAaFGEWQAwybPPPquIiAglJyfr8OHDCg0N1bBhw/Too4/af83//PPP64EHHtCBAwc0ZMgQ/ec//5Gfn58kadiwYfr3v/+tJ598Us8++6xiYmL0pz/9SXfccYf9NebOnatHH31Uv/nNb3Tq1Cl17txZjz76qBlvFwBaBbMZAIATqp1p4MyZMwoNDTW7HABwWvTMAgAAwGURZgEAAOCyaDMAAACAy2JkFgAAAC6LMAsAAACXRZgFAACAyyLMAgAAwGURZgEAAOCyCLMAAABwWYRZAAAAuCzCLAAAAFwWYRYAAAAu6/8D7CMntWMKMxoAAAAASUVORK5CYII=\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Load Best Model + Greedy Decode + Sample Predictions\n", + "trained_model = Transformer(\n", + " n_enc_vocab = n_enc_vocab,\n", + " n_dec_vocab = n_dec_vocab,\n", + " n_layers = n_layers,\n", + " pf_dim = pf_dim,\n", + " hid_dim = hid_dim,\n", + " n_heads = n_heads,\n", + " pe_source = 512,\n", + " pe_target = 512,\n", + " dropout = dropout\n", + ").to(device)\n", + "\n", + "trained_model.load_state_dict(torch.load('./checkpoints/transformermodel.pt'))\n", + "trained_model.eval()\n", + "\n", + "def evaluate(text):\n", + " text_ids = SRC_tokenizer.texts_to_sequences([text])\n", + " text_ids = pad_sequences(text_ids, maxlen=ENCODER_LEN, padding='post', truncating='post')\n", + "\n", + " sos_id = TRG_tokenizer.word_index['']\n", + " eos_id = TRG_tokenizer.word_index['']\n", + "\n", + " decoder_input = [sos_id]\n", + " input_tensor = torch.tensor(text_ids).to(device)\n", + " output_tensor = torch.tensor([decoder_input]).to(device)\n", + "\n", + " for i in range(DECODER_LEN):\n", + " with torch.no_grad():\n", + " predictions = trained_model(input_tensor, output_tensor)\n", + " predictions = predictions[:, -1:, :]\n", + "\n", + " predicted_id = torch.argmax(predictions[:,:,3:], axis=-1) + 3\n", + "\n", + " if int(predicted_id.item()) == eos_id:\n", + " break\n", + " output_tensor = torch.cat((output_tensor, predicted_id), -1)\n", + " return output_tensor\n", + "\n", + "def predict(text):\n", + " prediction = evaluate(text)\n", + " out_list = prediction.tolist()\n", + " out_list[0].pop(0) # drop \n", + " output_indexes = out_list[0]\n", + " predicted_sentence = TRG_tokenizer.sequences_to_texts([output_indexes])\n", + " return predicted_sentence\n", + "\n", + "for idx in (11, 21, 31, 41, 51):\n", + " print(\"Input :\", raw_src[idx])\n", + " print(\"Prediction :\", predict(raw_src[idx]))\n", + " print(\"Ground Truth :\", raw_trg[idx], \"\\n\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "3b-Y2ICx5B3C", + "outputId": "5e10bc8d-38fa-423c-c0e2-57a30a147bf1" + }, + "execution_count": 13, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Input : he said to her under his breath , i love you .\n", + "Prediction : ['je pense qu il est tom']\n", + "Ground Truth : il lui a dit a voix basse je t aime . \n", + "\n", + "Input : we were wakened by the whistle of the steam locomotive at dawn .\n", + "Prediction : ['nous avons avons avons avons de la maison de la maison']\n", + "Ground Truth : nous avons ete reveilles a l aube par le sifflement d un train . \n", + "\n", + "Input : first of all , let me say how glad i am to be here .\n", + "Prediction : ['je pense que je veux que je veux que je veux faire']\n", + "Ground Truth : tout d abord laissez moi vous dire combien je suis heureux d etre ici . \n", + "\n", + "Input : this is a sentence that has the syllable count of a haiku .\n", + "Prediction : ['c est une bonne est une bonne est une bonne est que c est un homme']\n", + "Ground Truth : on trouve en la phrase qui suit autant de syllabes qu en a un haiku . \n", + "\n", + "Input : i think we are the only people on this island .\n", + "Prediction : ['je pense que je suis que je suis que je suis la maison']\n", + "Ground Truth : je pense que nous sommes les seules personnes sur cette ile . \n", + "\n" + ] + } + ] + } + ] +} \ No newline at end of file