diff --git a/notebooks/02-transformers.ipynb b/notebooks/02-transformers.ipynb index 1cfa1bdece..9d4275d56b 100644 --- a/notebooks/02-transformers.ipynb +++ b/notebooks/02-transformers.ipynb @@ -3,6 +3,7 @@ { "cell_type": "markdown", "metadata": { + "id": "YKdSeUmVSXah", "pycharm": { "is_executing": false, "name": "#%% md\n" @@ -59,6 +60,7 @@ { "cell_type": "markdown", "metadata": { + "id": "TFHTP6CFSXai", "pycharm": { "name": "#%% md\n" } @@ -78,6 +80,7 @@ "cell_type": "code", "execution_count": null, "metadata": { + "id": "KnT3Jn6fSXai", "pycharm": { "is_executing": false, "name": "#%% code\n" @@ -92,8 +95,13 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "UIQGDTIDSXai", + "outputId": "9851454a-c898-4fba-a389-9b16462a27c1", "pycharm": { "is_executing": false, "name": "#%% code\n" @@ -103,11 +111,13 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 2, - "metadata": {}, + "metadata": { + "tags": [] + }, "output_type": "execute_result" } ], @@ -120,8 +130,9 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { + "id": "1xMDTHQXSXai", "pycharm": { "is_executing": false, "name": "#%% code\n" @@ -140,6 +151,7 @@ { "cell_type": "markdown", "metadata": { + "id": "l6EcynhYSXai", "pycharm": { "name": "#%% md\n" } @@ -152,8 +164,13 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "XgkFg52fSXai", + "outputId": "94b569d4-5415-4327-f39e-c9541b0a53e0", "pycharm": { "is_executing": false, "name": "#%% code\n" @@ -189,13 +206,17 @@ "print(\"Tokens PyTorch: {}\".format(tokens_pt))\n", "\n", "# Now we're ready to go through BERT with out input\n", - "outputs, pooled = model(tokens_pt)\n", - "print(\"Token wise output: {}, Pooled output: {}\".format(outputs.shape, pooled.shape))" + "outputs = model(tokens_pt)\n", + "last_hidden_state = outputs.last_hidden_state\n", + "pooler_output = outputs.pooler_output\n", + "\n", + "print(\"Token wise output: {}, Pooled output: {}\".format(last_hidden_state.shape, pooler_output.shape))" ] }, { "cell_type": "markdown", "metadata": { + "id": "lBbvwNKXSXaj", "pycharm": { "name": "#%% md\n" } @@ -215,6 +236,7 @@ { "cell_type": "markdown", "metadata": { + "id": "DCxuDWH2SXaj", "pycharm": { "name": "#%% md\n" } @@ -227,8 +249,13 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "sgcNCdXUSXaj", + "outputId": "af2fb928-7c17-475b-cf81-89cfc4b1d9e5", "pycharm": { "is_executing": false, "name": "#%% code\n" @@ -260,13 +287,18 @@ "for key, value in tokens_pt2.items():\n", " print(\"{}:\\n\\t{}\".format(key, value))\n", "\n", - "outputs2, pooled2 = model(**tokens_pt2)\n", - "print(\"Difference with previous code: ({}, {})\".format((outputs2 - outputs).sum(), (pooled2 - pooled).sum()))" + "outputs2 = model(**tokens_pt2)\n", + "last_hidden_state2 = outputs2.last_hidden_state\n", + "pooler_output2 = outputs2.pooler_output\n", + "\n", + "print(\"Difference with previous code: ({}, {})\".format((last_hidden_state2 - last_hidden_state).sum(), (pooler_output2 - pooler_output).sum()))" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "id": "gC-7xGYPSXal" + }, "source": [ "As you can see above, calling the tokenizer provides a convenient way to generate all the required parameters\n", "that will go through the model. \n", @@ -279,8 +311,13 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Pl2HIcwDSXal", + "outputId": "22e5d010-47a9-4a12-a67d-208e5016157e", "pycharm": { "is_executing": false } @@ -320,8 +357,13 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "1NtvWOgzSXam", + "outputId": "e66c47d0-e106-408d-d01c-9ac194ca3ec6", "pycharm": { "is_executing": false } @@ -358,7 +400,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "id": "vkRYm2HESXan" + }, "source": [ "## Frameworks interoperability\n", "\n", @@ -370,8 +414,9 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": { + "id": "Kubwm-wJSXan", "pycharm": { "is_executing": false } @@ -387,8 +432,13 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 12, "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "lJ13tlzOSXan", + "outputId": "1e4ac151-a8fc-4b34-946a-da0bc44ed0e6", "pycharm": { "is_executing": false } @@ -398,8 +448,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "output differences: 1.6236e-05\n", - "pooled differences: -1.3039e-08\n" + "last_hidden_state differences: 1.0094e-05\n", + "pooler_output differences: 7.2969e-07\n" ] } ], @@ -413,13 +463,14 @@ "\n", "# Models outputs 2 values (The value for each tokens, the pooled representation of the input sentence)\n", "# Here we compare the output differences between PyTorch and TensorFlow.\n", - "for name, o_tf, o_pt in zip([\"output\", \"pooled\"], output_tf, output_pt):\n", - " print(\"{} differences: {:.5}\".format(name, (o_tf.numpy() - o_pt.numpy()).sum()))" + "for name in [\"last_hidden_state\", \"pooler_output\"]:\n", + " print(\"{} differences: {:.5}\".format(name, (output_tf[name].numpy() - output_pt[name].numpy()).sum()))" ] }, { "cell_type": "markdown", "metadata": { + "id": "CQf_fpApSXao", "pycharm": { "name": "#%% md\n" } @@ -442,21 +493,85 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 13, "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 185, + "referenced_widgets": [ + "fcffccb427714665bec7d621d00d4ce3", + "7aa02ef05fe64489ad6c969dd92d1b07", + "817f53e3fa5c43e29ad1b4410c3df7db", + "50a441d7a43c4a809a09505b36e83375", + "497ba6a585a147459f1346c0661d5c94", + "a18c5319739141af9a255bccf25f6884", + "cf319210c8134cdba487525c49e4813b", + "f1f0272d9bea4e9fad3be8646b45d629", + "530b39d56f6b4e0caae3317855c4bcf4", + "c5e735694f2c4813a1d6f0d867119f67", + "8d53b8dc213f405d8187f3c1f005826d", + "d492afe626804d95a5cfac0550913190", + "a657a312068b43529afed2050bce572f", + "fe230ff13a82400f97cf6f292e8851ba", + "be97cf2269d748f3b1a916b5376f7736", + "74bd90a09da74db5bcbbe86f044bd664" + ] + }, + "id": "wfxMOXb-SXao", + "outputId": "fa667556-fbf2-4c86-fc7e-9e3d3ec9da88", "pycharm": { "is_executing": false } }, "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "fcffccb427714665bec7d621d00d4ce3", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, description='Downloading', max=411.0, style=ProgressStyle(description_…" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, { "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 232 ms, sys: 0 ns, total: 232 ms\n", - "Wall time: 21.1 ms\n", - "CPU times: user 511 ms, sys: 0 ns, total: 511 ms\n", - "Wall time: 43.9 ms\n" + "\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "530b39d56f6b4e0caae3317855c4bcf4", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, description='Downloading', max=263273408.0, style=ProgressStyle(descri…" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "CPU times: user 64.4 ms, sys: 0 ns, total: 64.4 ms\n", + "Wall time: 72.9 ms\n", + "CPU times: user 130 ms, sys: 124 µs, total: 130 ms\n", + "Wall time: 131 ms\n" ] } ], @@ -476,7 +591,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "id": "7lSIc7FbSXao" + }, "source": [ "## Community provided models\n", "\n", @@ -490,8 +607,13 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 16, "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "cxLYnadGSXao", + "outputId": "70ab584a-e795-490a-8c6a-06e034b3df3d", "pycharm": { "is_executing": false } @@ -505,7 +627,7 @@ "Tokens (str) : ['[CLS]', 'Hug', '##ging', 'Fac', '##e', 'ist', 'eine', 'französische', 'Firma', 'mit', 'Sitz', 'in', 'New', '-', 'York', '.', '[SEP]']\n", "Tokens (attn_mask): [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]\n", "\n", - "Token wise output: torch.Size([1, 7, 768]), Pooled output: torch.Size([1, 768])\n" + "Token wise output: torch.Size([1, 17, 768]), Pooled output: torch.Size([1, 768])\n" ] } ], @@ -523,13 +645,19 @@ "print(\"Tokens (attn_mask): {}\".format(de_input['attention_mask'].tolist()[0]))\n", "print()\n", "\n", - "output_de, pooled_de = de_bert(**de_input)\n", + "outputs_de = de_bert(**de_input)\n", + "last_hidden_state_de = outputs_de.last_hidden_state\n", + "pooler_output_de = outputs_de.pooler_output\n", "\n", - "print(\"Token wise output: {}, Pooled output: {}\".format(outputs.shape, pooled.shape))" + "print(\"Token wise output: {}, Pooled output: {}\".format(last_hidden_state_de.shape, pooler_output_de.shape))" ] } ], "metadata": { + "colab": { + "name": "02-transformers.ipynb", + "provenance": [] + }, "kernelspec": { "display_name": "Python 3", "language": "python", @@ -545,7 +673,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.4" + "version": "3.7.3" }, "pycharm": { "stem_cell": { @@ -555,8 +683,502 @@ }, "source": [] } + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "497ba6a585a147459f1346c0661d5c94": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "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": "initial" + } + }, + "50a441d7a43c4a809a09505b36e83375": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "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_f1f0272d9bea4e9fad3be8646b45d629", + "placeholder": "​", + "style": "IPY_MODEL_cf319210c8134cdba487525c49e4813b", + "value": " 411/411 [00:19<00:00, 21.5B/s]" + } + }, + "530b39d56f6b4e0caae3317855c4bcf4": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "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_8d53b8dc213f405d8187f3c1f005826d", + "IPY_MODEL_d492afe626804d95a5cfac0550913190" + ], + "layout": "IPY_MODEL_c5e735694f2c4813a1d6f0d867119f67" + } + }, + "74bd90a09da74db5bcbbe86f044bd664": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "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 + } + }, + "7aa02ef05fe64489ad6c969dd92d1b07": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "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 + } + }, + "817f53e3fa5c43e29ad1b4410c3df7db": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "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": "Downloading: 100%", + "description_tooltip": null, + "layout": "IPY_MODEL_a18c5319739141af9a255bccf25f6884", + "max": 411, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_497ba6a585a147459f1346c0661d5c94", + "value": 411 + } + }, + "8d53b8dc213f405d8187f3c1f005826d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "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": "Downloading: 100%", + "description_tooltip": null, + "layout": "IPY_MODEL_fe230ff13a82400f97cf6f292e8851ba", + "max": 263273408, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_a657a312068b43529afed2050bce572f", + "value": 263273408 + } + }, + "a18c5319739141af9a255bccf25f6884": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "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 + } + }, + "a657a312068b43529afed2050bce572f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "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": "initial" + } + }, + "be97cf2269d748f3b1a916b5376f7736": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "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": "" + } + }, + "c5e735694f2c4813a1d6f0d867119f67": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "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 + } + }, + "cf319210c8134cdba487525c49e4813b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "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": "" + } + }, + "d492afe626804d95a5cfac0550913190": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "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_74bd90a09da74db5bcbbe86f044bd664", + "placeholder": "​", + "style": "IPY_MODEL_be97cf2269d748f3b1a916b5376f7736", + "value": " 263M/263M [00:06<00:00, 43.5MB/s]" + } + }, + "f1f0272d9bea4e9fad3be8646b45d629": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "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 + } + }, + "fcffccb427714665bec7d621d00d4ce3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "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_817f53e3fa5c43e29ad1b4410c3df7db", + "IPY_MODEL_50a441d7a43c4a809a09505b36e83375" + ], + "layout": "IPY_MODEL_7aa02ef05fe64489ad6c969dd92d1b07" + } + }, + "fe230ff13a82400f97cf6f292e8851ba": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "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 + } + } + } } }, "nbformat": 4, - "nbformat_minor": 4 + "nbformat_minor": 1 }