diff --git a/.gitignore b/.gitignore index cd3afc80..22a01899 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ docs/benchmarks/hires/*.npy docs/benchmarks/pleiades/*.npy docs/benchmarks/vanderpol/*.npy docs/benchmarks/lotkavolterra/*.npy +docs/benchmarks/taylor_pleiades/*.npy # IDE stuff .idea/ diff --git a/docs/benchmarks/hires/plot.ipynb b/docs/benchmarks/hires/plot.ipynb index 5392cd47..867af186 100644 --- a/docs/benchmarks/hires/plot.ipynb +++ b/docs/benchmarks/hires/plot.ipynb @@ -5,7 +5,7 @@ "id": "2f928018", "metadata": {}, "source": [ - "# High Irradiance Response (HIRES)\n", + "# Hires\n", "\n", "The HIRES problem is a common stiff differential equation." ] diff --git a/docs/benchmarks/hires/plot.md b/docs/benchmarks/hires/plot.md index b4601962..475918c0 100644 --- a/docs/benchmarks/hires/plot.md +++ b/docs/benchmarks/hires/plot.md @@ -13,7 +13,7 @@ jupyter: name: python3 --- -# High Irradiance Response (HIRES) +# Hires The HIRES problem is a common stiff differential equation. diff --git a/docs/benchmarks/taylor_pleiades/plot.ipynb b/docs/benchmarks/taylor_pleiades/plot.ipynb new file mode 100644 index 00000000..26b90fc8 --- /dev/null +++ b/docs/benchmarks/taylor_pleiades/plot.ipynb @@ -0,0 +1,2700 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "2f928018", + "metadata": {}, + "source": [ + "# Taylor-series: Pleiades\n", + "\n", + "The Pleiades problem is a common non-stiff differential equation." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "daa53abe", + "metadata": { + "execution": { + "iopub.execute_input": "2023-10-03T13:09:38.241381Z", + "iopub.status.busy": "2023-10-03T13:09:38.241063Z", + "iopub.status.idle": "2023-10-03T13:09:38.951898Z", + "shell.execute_reply": "2023-10-03T13:09:38.951250Z" + } + }, + "outputs": [], + "source": [ + "\"\"\"Benchmark all Taylor-series estimators on the Pleiades problem.\"\"\"\n", + "\n", + "import jax.numpy as jnp\n", + "import matplotlib.pyplot as plt\n", + "from jax.config import config\n", + "\n", + "from probdiffeq.util.doc_util import notebook\n", + "\n", + "config.update(\"jax_platform_name\", \"cpu\")" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "6ae70671", + "metadata": { + "execution": { + "iopub.execute_input": "2023-10-03T13:09:38.954963Z", + "iopub.status.busy": "2023-10-03T13:09:38.954692Z", + "iopub.status.idle": "2023-10-03T13:09:38.960305Z", + "shell.execute_reply": "2023-10-03T13:09:38.959647Z" + } + }, + "outputs": [], + "source": [ + "def load_results():\n", + " \"\"\"Load the results from a file.\"\"\"\n", + " return jnp.load(\"./results.npy\", allow_pickle=True)[()]\n", + "\n", + "\n", + "def choose_style(label):\n", + " \"\"\"Choose a plotting style for a given algorithm.\"\"\"\n", + " if \"taylor\" in label.lower():\n", + " return {\"color\": \"C0\", \"linestyle\": \"solid\"}\n", + " if \"forward\" in label.lower():\n", + " return {\"color\": \"C1\", \"linestyle\": \"dashed\"}\n", + " msg = f\"Label {label} unknown.\"\n", + " raise ValueError(msg)\n", + "\n", + "\n", + "def plot_results(axis_compile, axis_perform, results):\n", + " \"\"\"Plot the results.\"\"\"\n", + " for label, wp in results.items():\n", + " style = choose_style(label)\n", + "\n", + " inputs = wp[\"arguments\"]\n", + " work_mean = wp[\"work_compile\"]\n", + " axis_compile.semilogy(inputs, work_mean, label=label, **style)\n", + "\n", + " work_mean, work_std = (wp[\"work_mean\"], wp[\"work_std\"])\n", + " range_lower, range_upper = work_mean - work_std, work_mean + work_std\n", + " axis_perform.semilogy(inputs, work_mean, label=label, **style)\n", + " axis_perform.fill_between(inputs, range_lower, range_upper, alpha=0.3, **style)\n", + "\n", + " return axis_compile, axis_perform" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "c6df444c-a339-40bd-ba62-6dda18b50ad6", + "metadata": { + "execution": { + "iopub.execute_input": "2023-10-03T13:09:38.963166Z", + "iopub.status.busy": "2023-10-03T13:09:38.962907Z", + "iopub.status.idle": "2023-10-03T13:09:40.045928Z", + "shell.execute_reply": "2023-10-03T13:09:40.045188Z" + } + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n", + "I0000 00:00:1696338579.002870 393629 tfrt_cpu_pjrt_client.cc:349] TfrtCpuClient created.\n" + ] + }, + { + "data": { + "image/png": "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icFgEACyadMmlSp8+Lm6ukpx0WDTpk0CQHx9feXYsWOW9p07d4qrq6sYjUZJT093QKVEJcPso23MPepg7tEG5h71Mfc4niIi4uhJL1LHrFmzMHr0aABAr169ULFiRZvbTZ8+HX5+fg6sjMxOnTqFmjVrIiQkBH/99Zfa5TiVhIQELFq0CEajEY8//jhycnKwc+dO5ObmYujQoZg3b57aJTqF1157zXJflgYNGiA0NBTnz5/Hrl27YDKZ8Nxzz+Gzzz5TucqHx/r1660eQb93716ICB577DFL27hx49ClSxfL30ePHo1Zs2bBw8MDHTp0wM2bN7Fp0yaICFJSUtCzZ09HvgSiYjH7aBtzj3qYe7SBucexmHs0QM3ZL3Ks8ePHW2bZi/tz8uRJtUt1WvwkUD0mk0nmzZsn4eHh4uHhIQaDQSIiIiQpKUnt0pzOqlWrpGPHjuLr6yvlypUTb29vadu2rSxdulTt0h46CxcuvOvvhIULF9rcz/yzYjQapVOnTrJjxw7HvwCiu2D20TbmHvUw92gHc4/jMPeojyugiIiIiIiIiIjIrngTciIiIiIiIiIisitOQBERERERERERkV1xAoqIiIiIiIiIiOyKE1BERERERERERGRXnIAiIiIiIiIiIiK74gQUERERERERERHZFSegiIiIiIiIiIjIrjgBRUREREREREREdsUJKCIiIiIiIiIisitOQBERERERERERkV1xAoqIiIiIiIiIiOyKE1BERERERERERGRXnIAiKiMURYGiKDAajbh69arNbaZMmQJFUfDee+85tLaS2LZtGxRFQUJCgtql2MXHH3+MBg0awNXVFYqioE2bNnfdxzym5j96vR5+fn5o1KgREhISsHLlSuTn59u/+Nu89957UBQFSUlJDj1vSSQlJWn2/U1ERKWLuUfbmHvsj7mHHkacgCIqY65du4YPP/xQ7TLoNqtWrcJLL72ECxcuoHv37oiPj0enTp1KvH98fDzi4+MRFxeHVq1aIT8/H19++SX69OmD+vXrY+/evXasXjsSEhKgKAq2bdumdilERKQRzD3aw9xTOph7yBmVU7sAIio5RVHg6uqKWbNm4eWXX4a3t7faJRGANWvWAABSUlIQHR19z/vb+tTt+PHjePvtt5GcnIy2bdtix44daNq06YMVWgIjR47EgAEDUKVKFbuf61716tUL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9NPSo0cPqV+/viiKIgCkTp06sm/fPpv779q1S/z8/ASABAUFSefOneWpp56S6OhoMRqNAkBWr15t2d48BvHx8UXWVNy4i4hs2bLFUjcA+fe//21zu8WLF1u2iYyMlLi4OAkNDRWdTicvv/yyzTr2798viqKIm5ub9OjRQ4YMGSJDhgyRS5cuiYjIwoULbb6/zY4fP25V28SJE4t8nWvWrBEPDw8BILVr15Zu3brJgAEDJDIyUgwGgwCQAwcOiIhIenq6ABC9Xi8tW7aUAQMGSGxsrAQFBQkACQ4OttRIRESlg7mHuedOzD3WmHuoLOIEFFEZUVwQExF59913iwxiIiJnz56VuLg48fb2Fnd3d2nevLmsWLGiyOBiryAWHx8v586dk0GDBom/v7+4urpKkyZNivzFLyJy9epVmTRpkoSFhYmnp6e4ublJcHCwxMTESGJioqSlpZW4tpI4ffq0DB06VIKCgkSv14ufn5/07NlT9uzZU+LXWxK3hwZz0PPx8ZGGDRtKfHy8rFq1SvLz84s9xoULF+T111+XBg0aiIeHh3h4eEhISIj06NFDkpKSJCMjw7JtaQSxgoICCQwMFADi4eFhdfw7rV+/Xlq2bCkVKlQQo9Eo7du3l23bthVbx5IlSyQsLEzc3d0t18V8Xe8WxEREIiIiLPsdP368yO1ERP766y954YUXpE6dOuLm5iYVKlSQunXryoABAyQ5OVlyc3NFRCQvL08SExMlNjZWQkJCxMPDQ4xGozRu3FgmTJggly9fLvY8RER075h7mHtsYe6xxtxDZY0iUkq34yciIiIiIiIiIrKB94AiIiIiIiIiIiK74gQUERERERERERHZFSegiIiIiIiIiIjIrjgBRUREREREREREdsUJKCIiIiIiIiIisitOQBERERERERERkV1xAoqIiIiIiIiIiOyKE1BERERERERERGRXnIAiIiIiIiIiIiK74gQUERERERERERHZFSegiIiIiIiIiIjIrjgBRUREREREREREdsUJKCIiIiIiIiIisitOQBERERERERERkV1xAoqIiIiIiIiIiOyKE1BERERERERERGRXnIAiIiIiIiIiIiK7+j/ZYA5rkniA9wAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.rcParams.update(notebook.plot_config())\n", + "\n", + "fig, (axis_perform, axis_compile) = plt.subplots(\n", + " ncols=2, dpi=150, figsize=(8, 3), sharex=True, tight_layout=True\n", + ")\n", + "fig.suptitle(\"Pleiades problem, Taylor-series estimation\")\n", + "\n", + "results = load_results()\n", + "axis_compile, axis_perform = plot_results(axis_compile, axis_perform, results)\n", + "\n", + "axis_compile.set_title(\"Compile time\")\n", + "axis_perform.set_title(\"Evaluation time\")\n", + "axis_perform.legend()\n", + "axis_compile.set_xlabel(\"Number of Derivatives\")\n", + "axis_perform.set_xlabel(\"Number of Derivatives\")\n", + "axis_perform.set_ylabel(\"Wall time (sec)\")\n", + "axis_perform.grid()\n", + "axis_compile.grid()\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cf9985f0-d430-4aac-a87d-d8ec416dd373", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "jupytext": { + "formats": "ipynb,md" + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": { + "01edf28a305647e1abac0daa0d86917e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "0224dad4b8e2403eae64b77ab43af9f6": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "02ab7327103e45ee89ebe63b83b6acde": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "052ff0eba06c4cfd8cc0950f516014b6": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "09c22e85a4164f1983951fa4b0665c7c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_b17ff3121c4043978a5241ac4af6225d", + "IPY_MODEL_aa4b641d29be43a9b9e67aaa4e3532f9", + "IPY_MODEL_541ea1c32be84cc79aa5fce9e1200fc9" + ], + "layout": "IPY_MODEL_1b4128f9ee5446f2ae9a99b91f67a1f7", + "tabbable": null, + "tooltip": null + } + }, + "0a708555da66431dbb28e2965d15b451": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0e9b326d9375473993fe06c2fb55f0be": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_113dbce341684f76b7b37753d20ae074", + "IPY_MODEL_6954e4dd45a94759959fc19130bb292d", + "IPY_MODEL_1998e838d47c4b0486f26e1a49faf04a" + ], + "layout": "IPY_MODEL_7a18f6b03fe143c68d03acfa1ecad1cf", + "tabbable": null, + "tooltip": null + } + }, + "0ee328f18573476eab1e54746f0e4a65": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0f689f16690a4bb79e5cc550b2995b2c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "113dbce341684f76b7b37753d20ae074": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_c2a8fb7743894c60afbe069338e6de8a", + "placeholder": "​", + "style": "IPY_MODEL_9694522e3fdd419cae9657e92d8fd679", + "tabbable": null, + "tooltip": null, + "value": "100%" + } + }, + "163492d4b65046feb4116e64589f57d0": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_02ab7327103e45ee89ebe63b83b6acde", + "placeholder": "​", + "style": "IPY_MODEL_0f689f16690a4bb79e5cc550b2995b2c", + "tabbable": null, + "tooltip": null, + "value": " 6/6 [00:31<00:00, 6.76s/it]" + } + }, + "1998e838d47c4b0486f26e1a49faf04a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_57461079cc0b43d88876764b03514741", + "placeholder": "​", + "style": "IPY_MODEL_939b8d7a41d54bb1a37b7fcd2cf43345", + "tabbable": null, + "tooltip": null, + "value": " 8/8 [00:07<00:00, 1.16s/it]" + } + }, + "1a9dbe44d66f4fbca64ed9348050c4cf": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_d960326bfbfa43c2b14aa615ca7d9136", + "placeholder": "​", + "style": "IPY_MODEL_e286e3dd86cb486781ff226531a21e11", + "tabbable": null, + "tooltip": null, + "value": "100%" + } + }, + "1b4128f9ee5446f2ae9a99b91f67a1f7": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": "hidden", + "width": null + } + }, + "1d4ae8ba88c1454fbd8bb39d04ed35c9": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "1f50af1fda6041d58c117eb88daaf410": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_b2aab319971b4190b1460d4e55d169fd", + "placeholder": "​", + "style": "IPY_MODEL_01edf28a305647e1abac0daa0d86917e", + "tabbable": null, + "tooltip": null, + "value": " 88%" + } + }, + "20bbbb71b6844461a4af117a9cea521a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "ProgressView", + "bar_style": "", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_31979f326a41459788ab3575dbd7d3ce", + "max": 8, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_587f45bd853b4e38859fff3beb6175ca", + "tabbable": null, + "tooltip": null, + "value": 8 + } + }, + "227bc9eb52c14302adc39999482cd34f": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "23513113e8104c7ab2f99dd87ae35546": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "2a907cda2a0148fb91f241386da1e072": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_7c1a237cb6ec4f94b7491e327c9b59c3", + "IPY_MODEL_20bbbb71b6844461a4af117a9cea521a", + "IPY_MODEL_3656357ec4d34542b49b6969f6886cf8" + ], + "layout": "IPY_MODEL_cc394afa6bb34c3c9dc3f9a6b0fb9cdb", + "tabbable": null, + "tooltip": null + } + }, + "2b22df0497804f96bfa18e6fae430ab8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "ProgressView", + "bar_style": "", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_b748ac0e51774f718e7c41391da24650", + "max": 8, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_23513113e8104c7ab2f99dd87ae35546", + "tabbable": null, + "tooltip": null, + "value": 8 + } + }, + "31979f326a41459788ab3575dbd7d3ce": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "3246fc9547c6442d8d0d33295f5eb27f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "3656357ec4d34542b49b6969f6886cf8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_227bc9eb52c14302adc39999482cd34f", + "placeholder": "​", + "style": "IPY_MODEL_052ff0eba06c4cfd8cc0950f516014b6", + "tabbable": null, + "tooltip": null, + "value": " 8/8 [00:09<00:00, 2.00s/it]" + } + }, + "3890cb26675a409caa160db3771ebc05": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "4cf9b18f63474c05b9d1c8c98ea6fc20": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "4e125334bcbe4ae69d814ad55a3dc747": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_72c0f3e83cea4d76b3afb18f8e1f58da", + "placeholder": "​", + "style": "IPY_MODEL_86a4e1aa6aea4c35b87eeccec52b0abd", + "tabbable": null, + "tooltip": null, + "value": "100%" + } + }, + "4ff94d708d544902a1aba02fb2f6773d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "51df004bfdd14b57ae96746cb6ab8254": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": "hidden", + "width": null + } + }, + "53969f7098c54d1399207e19d581ba05": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "541ea1c32be84cc79aa5fce9e1200fc9": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_62d0b5495d0e4bdeba6f0d3207d4cd7b", + "placeholder": "​", + "style": "IPY_MODEL_ba546ab7c012420a8793b12df59d25f6", + "tabbable": null, + "tooltip": null, + "value": " 1/8 [00:01<00:12, 1.84s/it]" + } + }, + "57461079cc0b43d88876764b03514741": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "587f45bd853b4e38859fff3beb6175ca": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "590b8e6c2cc7411d9231a9f2156f2253": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "ProgressView", + "bar_style": "", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_668e0eb81f8046688c9c50c4934a53c4", + "max": 8, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_593e0d4587b44b5fb114590e7c674c68", + "tabbable": null, + "tooltip": null, + "value": 8 + } + }, + "593e0d4587b44b5fb114590e7c674c68": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "5e9bdc1b2a794b4e954eabef26b8a350": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "62d0b5495d0e4bdeba6f0d3207d4cd7b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "668e0eb81f8046688c9c50c4934a53c4": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "685e485632a646ae82a1ed81524fca5c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_eb22b17619334ad09ffdf81d22fdb085", + "max": 6, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_b9a27f4d0b5c4c01aa58ec811a80594c", + "tabbable": null, + "tooltip": null, + "value": 6 + } + }, + "6954e4dd45a94759959fc19130bb292d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "ProgressView", + "bar_style": "", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_850b7dba9a0d4054bbee9d46956e69e6", + "max": 8, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_ceb4bee383b74f04a128ced27c2ca474", + "tabbable": null, + "tooltip": null, + "value": 8 + } + }, + "6ff1a40cf59847c1ba1f7f4004774a79": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_abb0e23613714f88849113a2641294dc", + "placeholder": "​", + "style": "IPY_MODEL_70199e9a56aa498cbc500ad8e2eb0546", + "tabbable": null, + "tooltip": null, + "value": " 8/8 [00:02<00:00, 2.61it/s]" + } + }, + "70199e9a56aa498cbc500ad8e2eb0546": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "72c0f3e83cea4d76b3afb18f8e1f58da": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "73feb0f26bf14649b0244845908ab6f1": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "78d3083050824bd48aa4824368db5378": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_5e9bdc1b2a794b4e954eabef26b8a350", + "placeholder": "​", + "style": "IPY_MODEL_7b8974d0fb1c490d983d1d44aeb8762d", + "tabbable": null, + "tooltip": null, + "value": " 8/8 [00:08<00:00, 1.36it/s]" + } + }, + "7a18f6b03fe143c68d03acfa1ecad1cf": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": "hidden", + "width": null + } + }, + "7b8974d0fb1c490d983d1d44aeb8762d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "7c1a237cb6ec4f94b7491e327c9b59c3": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_0a708555da66431dbb28e2965d15b451", + "placeholder": "​", + "style": "IPY_MODEL_3890cb26675a409caa160db3771ebc05", + "tabbable": null, + "tooltip": null, + "value": "100%" + } + }, + "850b7dba9a0d4054bbee9d46956e69e6": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "86a4e1aa6aea4c35b87eeccec52b0abd": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "8a6f951e48b546569020d87cb52790f5": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_4e125334bcbe4ae69d814ad55a3dc747", + "IPY_MODEL_2b22df0497804f96bfa18e6fae430ab8", + "IPY_MODEL_78d3083050824bd48aa4824368db5378" + ], + "layout": "IPY_MODEL_51df004bfdd14b57ae96746cb6ab8254", + "tabbable": null, + "tooltip": null + } + }, + "939b8d7a41d54bb1a37b7fcd2cf43345": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "95649df1f5f24939946eec764e713d93": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_a245a4e51eb348b293513b2fcc6ef8f8", + "IPY_MODEL_d5ffb759d6184a3c812a370adc44811b", + "IPY_MODEL_6ff1a40cf59847c1ba1f7f4004774a79" + ], + "layout": "IPY_MODEL_bae4f7fcce5747c296715ad2f28ead91", + "tabbable": null, + "tooltip": null + } + }, + "9694522e3fdd419cae9657e92d8fd679": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "97288b27b77242a4a4ce3f78531c09a2": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": "hidden", + "width": null + } + }, + "a245a4e51eb348b293513b2fcc6ef8f8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_f19c950b4c66484d8c2b1141cacc903d", + "placeholder": "​", + "style": "IPY_MODEL_f8eb3f691e50410892d21add9a5df163", + "tabbable": null, + "tooltip": null, + "value": "100%" + } + }, + "a573c04fd9ce478db93a90ac17533349": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "aa4b641d29be43a9b9e67aaa4e3532f9": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "ProgressView", + "bar_style": "", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_a573c04fd9ce478db93a90ac17533349", + "max": 8, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_0224dad4b8e2403eae64b77ab43af9f6", + "tabbable": null, + "tooltip": null, + "value": 8 + } + }, + "abb0e23613714f88849113a2641294dc": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "b17ff3121c4043978a5241ac4af6225d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_4cf9b18f63474c05b9d1c8c98ea6fc20", + "placeholder": "​", + "style": "IPY_MODEL_4ff94d708d544902a1aba02fb2f6773d", + "tabbable": null, + "tooltip": null, + "value": " 12%" + } + }, + "b2aab319971b4190b1460d4e55d169fd": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "b748ac0e51774f718e7c41391da24650": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "b9a27f4d0b5c4c01aa58ec811a80594c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "ba546ab7c012420a8793b12df59d25f6": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "bae4f7fcce5747c296715ad2f28ead91": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": "hidden", + "width": null + } + }, + "bf5f31ae2e7d47a99f8328c095621ad3": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_0ee328f18573476eab1e54746f0e4a65", + "placeholder": "​", + "style": "IPY_MODEL_3246fc9547c6442d8d0d33295f5eb27f", + "tabbable": null, + "tooltip": null, + "value": " 7/8 [00:01<00:00, 6.64it/s]" + } + }, + "c2a8fb7743894c60afbe069338e6de8a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "cc394afa6bb34c3c9dc3f9a6b0fb9cdb": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": "hidden", + "width": null + } + }, + "ceb4bee383b74f04a128ced27c2ca474": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "d5ffb759d6184a3c812a370adc44811b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "ProgressView", + "bar_style": "", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_73feb0f26bf14649b0244845908ab6f1", + "max": 8, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_53969f7098c54d1399207e19d581ba05", + "tabbable": null, + "tooltip": null, + "value": 8 + } + }, + "d960326bfbfa43c2b14aa615ca7d9136": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "e286e3dd86cb486781ff226531a21e11": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "eb22b17619334ad09ffdf81d22fdb085": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f19c950b4c66484d8c2b1141cacc903d": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": 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, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f6d8ff52fb224a4cb371d9073f383d4a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_1a9dbe44d66f4fbca64ed9348050c4cf", + "IPY_MODEL_685e485632a646ae82a1ed81524fca5c", + "IPY_MODEL_163492d4b65046feb4116e64589f57d0" + ], + "layout": "IPY_MODEL_1d4ae8ba88c1454fbd8bb39d04ed35c9", + "tabbable": null, + "tooltip": null + } + }, + "f7030797a89f428d8e1b0874c2f61f2e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_1f50af1fda6041d58c117eb88daaf410", + "IPY_MODEL_590b8e6c2cc7411d9231a9f2156f2253", + "IPY_MODEL_bf5f31ae2e7d47a99f8328c095621ad3" + ], + "layout": "IPY_MODEL_97288b27b77242a4a4ce3f78531c09a2", + "tabbable": null, + "tooltip": null + } + }, + "f8eb3f691e50410892d21add9a5df163": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + } + }, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/benchmarks/taylor_pleiades/plot.md b/docs/benchmarks/taylor_pleiades/plot.md new file mode 100644 index 00000000..1002d318 --- /dev/null +++ b/docs/benchmarks/taylor_pleiades/plot.md @@ -0,0 +1,90 @@ +--- +jupyter: + jupytext: + formats: ipynb,md + text_representation: + extension: .md + format_name: markdown + format_version: '1.3' + jupytext_version: 1.15.0 + kernelspec: + display_name: Python 3 (ipykernel) + language: python + name: python3 +--- + +# Taylor-series: Pleiades + +The Pleiades problem is a common non-stiff differential equation. + +```python +"""Benchmark all Taylor-series estimators on the Pleiades problem.""" + +import jax.numpy as jnp +import matplotlib.pyplot as plt +from jax.config import config + +from probdiffeq.util.doc_util import notebook + +config.update("jax_platform_name", "cpu") +``` + +```python +def load_results(): + """Load the results from a file.""" + return jnp.load("./results.npy", allow_pickle=True)[()] + + +def choose_style(label): + """Choose a plotting style for a given algorithm.""" + if "taylor" in label.lower(): + return {"color": "C0", "linestyle": "solid"} + if "forward" in label.lower(): + return {"color": "C1", "linestyle": "dashed"} + msg = f"Label {label} unknown." + raise ValueError(msg) + + +def plot_results(axis_compile, axis_perform, results): + """Plot the results.""" + for label, wp in results.items(): + style = choose_style(label) + + inputs = wp["arguments"] + work_mean = wp["work_compile"] + axis_compile.semilogy(inputs, work_mean, label=label, **style) + + work_mean, work_std = (wp["work_mean"], wp["work_std"]) + range_lower, range_upper = work_mean - work_std, work_mean + work_std + axis_perform.semilogy(inputs, work_mean, label=label, **style) + axis_perform.fill_between(inputs, range_lower, range_upper, alpha=0.3, **style) + + return axis_compile, axis_perform +``` + +```python +plt.rcParams.update(notebook.plot_config()) + +fig, (axis_perform, axis_compile) = plt.subplots( + ncols=2, dpi=150, figsize=(8, 3), sharex=True, tight_layout=True +) +fig.suptitle("Pleiades problem, Taylor-series estimation") + +results = load_results() +axis_compile, axis_perform = plot_results(axis_compile, axis_perform, results) + +axis_compile.set_title("Compile time") +axis_perform.set_title("Evaluation time") +axis_perform.legend() +axis_compile.set_xlabel("Number of Derivatives") +axis_perform.set_xlabel("Number of Derivatives") +axis_perform.set_ylabel("Wall time (sec)") +axis_perform.grid() +axis_compile.grid() + +plt.show() +``` + +```python + +``` diff --git a/docs/benchmarks/taylor_pleiades/results.npy b/docs/benchmarks/taylor_pleiades/results.npy new file mode 100644 index 00000000..060376c5 Binary files /dev/null and b/docs/benchmarks/taylor_pleiades/results.npy differ diff --git a/docs/benchmarks/taylor_pleiades/run_taylor_pleiades.py b/docs/benchmarks/taylor_pleiades/run_taylor_pleiades.py new file mode 100644 index 00000000..5c74755e --- /dev/null +++ b/docs/benchmarks/taylor_pleiades/run_taylor_pleiades.py @@ -0,0 +1,172 @@ +"""Benchmark the initialisation methods on Pleiades. + +See makefile for instructions. +""" +import argparse +import functools +import os +import statistics +import time +import timeit +from typing import Callable + +import jax +import jax.numpy as jnp +from jax import config + +from probdiffeq.impl import impl +from probdiffeq.solvers.taylor import autodiff +from probdiffeq.util.doc_util import info + + +def set_jax_config() -> None: + """Set JAX and other external libraries up.""" + # x64 precision + config.update("jax_enable_x64", True) + + # CPU + config.update("jax_platform_name", "cpu") + + +def set_probdiffeq_config() -> None: + """Set probdiffeq up.""" + impl.select("isotropic", ode_shape=(14,)) + + +def print_library_info() -> None: + """Print the environment info for this benchmark.""" + info.print_info() + print("\n------------------------------------------\n") + + +def parse_arguments() -> argparse.Namespace: + """Parse the arguments from the command line.""" + parser = argparse.ArgumentParser() + parser.add_argument("--max_time", type=float) + parser.add_argument("--repeats", type=int, default=3) + parser.add_argument("--save", action=argparse.BooleanOptionalAction) + return parser.parse_args() + + +def timeit_fun_from_args(arguments: argparse.Namespace, /) -> Callable: + """Construct a timeit-function from the command-line arguments.""" + + def timer(fun, /): + return list(timeit.repeat(fun, number=1, repeat=arguments.repeats)) + + return timer + + +def taylor_mode() -> Callable: + """Taylor-mode estimation.""" + vf_auto, (u0, du0) = _pleiades() + + @functools.partial(jax.jit, static_argnames=["num"]) + def estimate(num): + tcoeffs = autodiff.taylor_mode(vf_auto, (u0, du0), num=num) + return jax.block_until_ready(tcoeffs) + + return estimate + + +def forward_mode() -> Callable: + """Forward-mode estimation.""" + vf_auto, (u0, du0) = _pleiades() + + @functools.partial(jax.jit, static_argnames=["num"]) + def estimate(num): + tcoeffs = autodiff.forward_mode(vf_auto, (u0, du0), num=num) + return jax.block_until_ready(tcoeffs) + + return estimate + + +def _pleiades(): + # fmt: off + u0 = jnp.asarray( + [ + 3.0, 3.0, -1.0, -3.00, 2.0, -2.00, 2.0, + 3.0, -3.0, 2.0, 0.00, 0.0, -4.00, 4.0, + ] + ) + du0 = jnp.asarray( + [ + 0.0, 0.0, 0.0, 0.00, 0.0, 1.75, -1.5, + 0.0, 0.0, 0.0, -1.25, 1.0, 0.00, 0.0, + ] + ) + # fmt: on + t0 = 0.0 + + @jax.jit + def vf_probdiffeq(u, du, *, t=t0): # noqa: ARG001 + """Pleiades problem.""" + x = u[0:7] # x + y = u[7:14] # y + xi, xj = x[:, None], x[None, :] + yi, yj = y[:, None], y[None, :] + rij = ((xi - xj) ** 2 + (yi - yj) ** 2) ** (3 / 2) + mj = jnp.arange(1, 8)[None, :] + ddx = jnp.sum(jnp.nan_to_num(mj * (xj - xi) / rij), axis=1) + ddy = jnp.sum(jnp.nan_to_num(mj * (yj - yi) / rij), axis=1) + return jnp.concatenate((ddx, ddy)) + + return vf_probdiffeq, (u0, du0) + + +def adaptive_benchmark(fun, *, timeit_fun: Callable, max_time) -> dict: + """Benchmark a function iteratively until a max-time threshold is exceeded.""" + work_compile = [] + work_mean = [] + work_std = [] + arguments = [] + + t0 = time.perf_counter() + arg = 1 + while (elapsed := time.perf_counter() - t0) < max_time: + print("num =", arg, "| elapsed =", elapsed, "| max_time =", max_time) + t0 = time.perf_counter() + _ = fun(arg) + t1 = time.perf_counter() + time_compile = t1 - t0 + + time_execute = timeit_fun(lambda: fun(arg)) # noqa: B023 + + arguments.append(arg + 1) # plus one, because second-order problem + work_compile.append(time_compile) + work_mean.append(statistics.mean(time_execute)) + work_std.append(statistics.stdev(time_execute)) + arg += 1 + return { + "work_mean": jnp.asarray(work_mean), + "work_std": jnp.asarray(work_std), + "work_compile": jnp.asarray(work_compile), + "arguments": jnp.asarray(arguments), + } + + +if __name__ == "__main__": + set_jax_config() + algorithms = { + r"Forward-mode": forward_mode(), + r"Taylor-mode": taylor_mode(), + } + + # Compute a reference solution + args = parse_arguments() + timeit_fun = timeit_fun_from_args(args) + + # Compute all work-precision diagrams + results = {} + for label, algo in algorithms.items(): + print("\n") + print(label) + results[label] = adaptive_benchmark( + algo, timeit_fun=timeit_fun, max_time=args.max_time + ) + # Save results + if args.save: + jnp.save(os.path.dirname(__file__) + "/results.npy", results) + print("\nSaving successful.\n") + else: + print("\nSkipped saving.\n") diff --git a/docs/benchmarks/vanderpol/plot.ipynb b/docs/benchmarks/vanderpol/plot.ipynb index f03588ac..ef75c26d 100644 --- a/docs/benchmarks/vanderpol/plot.ipynb +++ b/docs/benchmarks/vanderpol/plot.ipynb @@ -5,7 +5,7 @@ "id": "2f928018", "metadata": {}, "source": [ - "# Van der Pol\n", + "# Stiff Van-der-Pol\n", "\n", "The van der Pol problem is a common stiff differential equation." ] diff --git a/docs/benchmarks/vanderpol/plot.md b/docs/benchmarks/vanderpol/plot.md index 44811a91..9c615bac 100644 --- a/docs/benchmarks/vanderpol/plot.md +++ b/docs/benchmarks/vanderpol/plot.md @@ -13,7 +13,7 @@ jupyter: name: python3 --- -# Van der Pol +# Stiff Van-der-Pol The van der Pol problem is a common stiff differential equation. diff --git a/makefile b/makefile index 8ea19e61..da64ea07 100644 --- a/makefile +++ b/makefile @@ -10,6 +10,7 @@ format: jupytext --quiet --sync docs/benchmarks/pleiades/*.ipynb jupytext --quiet --sync docs/benchmarks/vanderpol/*.ipynb jupytext --quiet --sync docs/benchmarks/lotkavolterra/*.ipynb + jupytext --quiet --sync docs/benchmarks/taylor_pleiades/*.ipynb lint: pre-commit run --all-files @@ -31,6 +32,9 @@ example: jupytext --quiet --sync docs/examples_parameter_estimation/* run-benchmarks: + time python docs/benchmarks/taylor_pleiades/run_taylor_pleiades.py --max_time 15 --repeats 5 --save + jupytext --quiet --sync docs/benchmarks/taylor_pleiades/*.ipynb + jupytext --quiet --execute docs/benchmarks/taylor_pleiades/*.ipynb time python docs/benchmarks/lotkavolterra/run_lotkavolterra.py --start 3 --stop 12 --repeats 20 --save jupytext --quiet --sync docs/benchmarks/lotkavolterra/*.ipynb jupytext --quiet --execute docs/benchmarks/lotkavolterra/*.ipynb @@ -45,6 +49,9 @@ run-benchmarks: jupytext --quiet --execute docs/benchmarks/hires/*.ipynb dry-run-benchmarks: + time python docs/benchmarks/taylor_pleiades/run_taylor_pleiades.py --max_time 0.5 --repeats 2 --no-save + jupytext --quiet --sync docs/benchmarks/taylor_pleiades/*.ipynb + jupytext --quiet --execute docs/benchmarks/taylor_pleiades/*.ipynb time python docs/benchmarks/lotkavolterra/run_lotkavolterra.py --start 3 --stop 5 --repeats 2 --no-save time python docs/benchmarks/vanderpol/run_vanderpol.py --start 1 --stop 3 --repeats 2 --no-save time python docs/benchmarks/pleiades/run_pleiades.py --start 3 --stop 5 --repeats 2 --no-save @@ -57,14 +64,16 @@ clean: rm -rf *.egg-info rm -rf dist site build rm -rf *.ipynb_checkpoints - rm -rf docs/examples_benchmarks/benchmarks/lotka_volterra/__pycache__ - rm -rf docs/examples_benchmarks/benchmarks/lotka_volterra/.ipynb_checkpoints - rm -rf docs/examples_benchmarks/benchmarks/pleiades/__pycache__ - rm -rf docs/examples_benchmarks/benchmarks/pleiades/.ipynb_checkpoints - rm -rf docs/examples_benchmarks/benchmarks/stiff_van_der_pol/__pycache__ - rm -rf docs/examples_benchmarks/benchmarks/stiff_van_der_pol/.ipynb_checkpoints rm -rf docs/benchmarks/hires/__pycache__ rm -rf docs/benchmarks/hires/.ipynb_checkpoints + rm -rf docs/benchmarks/pleiades/__pycache__ + rm -rf docs/benchmarks/pleiades/.ipynb_checkpoints + rm -rf docs/benchmarks/lotkavolterra/__pycache__ + rm -rf docs/benchmarks/lotkavolterra/.ipynb_checkpoints + rm -rf docs/benchmarks/vanderpol/__pycache__ + rm -rf docs/benchmarks/vanderpol/.ipynb_checkpoints + rm -rf docs/benchmarks/taylor_pleiades/__pycache__ + rm -rf docs/benchmarks/taylor_pleiades/.ipynb_checkpoints rm docs/benchmarks/hires/*.npy doc: diff --git a/mkdocs.yml b/mkdocs.yml index 1d9a637b..72d8d77b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -93,6 +93,9 @@ plugins: - benchmarks/lotkavolterra/*.md - benchmarks/lotkavolterra/*.py - benchmarks/lotkavolterra/.ipynb_checkpoints/* + - benchmarks/taylor_pleiades/*.md + - benchmarks/taylor_pleiades/*.py + - benchmarks/taylor_pleiades/.ipynb_checkpoints/* - mkdocs-jupyter extra: social: @@ -120,7 +123,7 @@ nav: - API DOCUMENTATION: - ivpsolve: api_docs/ivpsolve.md - adaptive: api_docs/adaptive.md - - api_docs/controls.md + - controls: api_docs/controls.md - timestep: api_docs/timestep.md - impl: api_docs/impl.md - solvers: @@ -147,8 +150,9 @@ nav: - dev_docs/public_api.md - dev_docs/creating_example_notebook.md - dev_docs/continuous_integration.md - - Benchmarks: - - Lotka-Volterra: benchmarks/lotkavolterra/plot.ipynb - - Van-der-Pol: benchmarks/vanderpol/plot.ipynb - - Pleiades: benchmarks/pleiades/plot.ipynb - - Hires: benchmarks/hires/plot.ipynb + - BENCHMARKS: + - benchmarks/lotkavolterra/plot.ipynb + - benchmarks/vanderpol/plot.ipynb + - benchmarks/pleiades/plot.ipynb + - benchmarks/hires/plot.ipynb + - benchmarks/taylor_pleiades/plot.ipynb