From 7ea9fe040f3a52b51d224cef847241ca70fb32cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicholas=20Kr=C3=A4mer?= Date: Wed, 4 Oct 2023 08:42:37 +0200 Subject: [PATCH] Taylor series benchmark: Fitzhugh-Nagumo (#656) * Normalised the colors * Added a benchmark for fitzhugn-nagumo * Mention benchmark creation in hte dev docs * Mention new benchmark in makefile * Rerun benchmark * FHN benchmark config * FHN results improved --- .gitignore | 1 + .../taylor_fitzhughnagumo/plot.ipynb | 2682 +++++++++++++++++ docs/benchmarks/taylor_fitzhughnagumo/plot.md | 93 + .../taylor_fitzhughnagumo/results.npy | Bin 0 -> 3399 bytes .../run_taylor_fitzhughnagumo.py | 175 ++ docs/dev_docs/creating_example_notebook.md | 16 +- makefile | 11 +- mkdocs.yml | 12 +- 8 files changed, 2982 insertions(+), 8 deletions(-) create mode 100644 docs/benchmarks/taylor_fitzhughnagumo/plot.ipynb create mode 100644 docs/benchmarks/taylor_fitzhughnagumo/plot.md create mode 100644 docs/benchmarks/taylor_fitzhughnagumo/results.npy create mode 100644 docs/benchmarks/taylor_fitzhughnagumo/run_taylor_fitzhughnagumo.py diff --git a/.gitignore b/.gitignore index 22a01899..3709cd4f 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ docs/benchmarks/pleiades/*.npy docs/benchmarks/vanderpol/*.npy docs/benchmarks/lotkavolterra/*.npy docs/benchmarks/taylor_pleiades/*.npy +docs/benchmarks/taylor_fitzhughnagumo/*.npy # IDE stuff .idea/ diff --git a/docs/benchmarks/taylor_fitzhughnagumo/plot.ipynb b/docs/benchmarks/taylor_fitzhughnagumo/plot.ipynb new file mode 100644 index 00000000..aeadf8a8 --- /dev/null +++ b/docs/benchmarks/taylor_fitzhughnagumo/plot.ipynb @@ -0,0 +1,2682 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "2f928018", + "metadata": {}, + "source": [ + "# Taylor-series: FitzHugh-Nagumo\n", + "\n", + "The FHN problem is a common non-stiff differential equation." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "daa53abe", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"Benchmark all Taylor-series estimators on the Fitzhugh-Nagumo 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": {}, + "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 \"doubling\" in label.lower():\n", + " return {\"color\": \"C2\", \"linestyle\": \"dotted\"}\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", + " work_min, work_max = (wp[\"work_min\"], wp[\"work_max\"])\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": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n", + "I0000 00:00:1696354979.541122 406195 tfrt_cpu_pjrt_client.cc:349] TfrtCpuClient created.\n" + ] + }, + { + "data": { + "image/png": "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H3zwQT7++OPDHg/A9ddfD8Q6zB2Y7VRaWspvf/vbVu0z0eq7+t15550NAko1NTXccMMNmKbJtddeG59m6PF4mDVrFrquc+ONNxIKheKvWbVqFfPnz2/yOLfffjuyLHPFFVfEp0EeqLa2lmeeeabB/gRBODp9sSlCTcgkxSMzupeNObffyrjjxjDn9lvj21zYcwrPTrqFa/tPP8ie2m7YsGGETZNVhUUt2j429T32OkEQBEE4XKII+TGsvGofVUYVXjydPZQuLaRKSJJJ76Qojlb+i6lRg3ixkJvRnXItyKisAcheH1LdU00l8SXM43wuCbtVIqqZ2CxHxtSfHr368693V/KfFx7j3BefwClDistFWSCIKklcc/31PHLDDUdU8AliUxdefPFFTjzxRJ599lmWLVvG8OHD2blzJ59//jkWi4Wnn346Ps3rcPTq1Yu8vDx2796NJEkNgkw/rgP14wLkALfeeiuXXnopF154IY8++ih5eXmsX7+eTZs2cfPNN/Pggw8e9pguuugi3njjDV599VUGDhzItGnTsFgsfPTRR/Ts2ZNx48bFu9B1lvPPP59rrrmGJ598ksGDBzN16lRcLhdLliyhpKSEcePGcffddzd4zZ/+9CeWLl3K//73P3r16sWkSZOoqKjgo48+4tprr+XRRx9tdJwJEybw6KOPcsMNN3DiiScyePBg+vbti9VqZfv27axbt45IJMK5557b5HRFQTjaLV68OJ4h2FSG6NHCMEwWrYtlP50y3IFFkcjPz2fpksbZke3V9e5AVquVq6+7nofffp1/HoVT3wVBEISupd0yoCorK9m1axc7d+5s8o/Q+dJkB2la62oLHStCqoRVgRx7DQ7L4WURhQ2NYKSW3KhJL9wMzR1M757DGNt3PIrPHw8+tTdZkshNsRxR0/Aglgl13c1/4N0vt3PfU29x1d1PcOfj/2X77t3cedddR1zwqd6QIUNYvXo155xzDrW1tSxYsIDvvvuOs88+m88//5wLLrig1fuuDzodWP+pXn3QyePxNKr/BHDJJZfw7rvvMm7cONatW8d7771HTk4OH330EWeddVarx/TSSy/xl7/8hdzcXN5//32WLVvGxRdfzEcffYTd3jUyMJ944gleeOEFRowYwdKlS3n77bfJNP1ddQAAbZ9JREFUyMjg3nvv5aOPPmrUxS8lJYXPP/+c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7Mhvv/3G559/zsKFC/n2229p165dnnOee+45/vOf/2A0GunUqRNBQUF89913rFmzhsaNGzuNed++fXTt2pVjx44RGxtLjx49uHLlCqmpqdxzzz2MHz+ep59+2qXHf/nyZdauXUvNmjWJjo52esywYcOYO3cuvr6+dO/eHYPBwMyZM1m/fn2BQ9ZmzZpFcnIyVquVNm3aEBMTw/bt25k/fz5r164lJSWlxHocXbhwgZYtW5KdnU3Hjh1JS0tjzZo1JCUlcejQoRIZYnrx4kVatWpFeno67dq149y5c/z000888MAD2Gw2HnzwwTzHf/DBBzz++OPodDrat29P5cqV2bRpE7fffjv33HNPgfepUaMGMTExbNmyhaysLHx9pbeucC7brFj1c27v8B5NvQst0Np2b8e6eC5YrWhVq6PvfGdphSmEEEKUS+W3O4G4aUadAYP664O72QrpZg0fo42awTlU8S+4+GRTCs1mo21ITWo27YQuOKSUohaeFhmkd6y8VJBsWw7ZthzHcRnZirAgRbYthxyrJc+xWZZssizZ2JTNMeeTl5cXXl5e+Pn54R8R7PgAoGkafhHB+Pn5OY6pUq0q6dmZZFvzFquuWnPIsmRjvWbSdIvNSpYlm2xrTkk0RZEkJiZy8OBBfv75Z7755hvGjRvHL7/8wqeffsrly5d5/PHH8xw/cuRI4K9C07UOHDhASkoK9erVo02bNje898iRIzl06BBDhgxh//79zJ07l1WrVpGSkoKvry/PPPMMO3fuzHfesWPH2L9/P3v37mXZsmXMmzePjz76yKXH+80339C6dWvH/VJTU3nllVfIzMxkwIABzJ8/n927d7Ns2TKWLFlCamoqXl5evP/++6Snpzuuk5WVxbBhw8jKymLixIls376dOXPmsGPHDt59913S09MZMmQIV6/+NZw4NTWVcePGERQUxKZNm1ixYgXz5s3j4MGD1KxZkyVL8vdSsFqt9OvXj2PHjjFu3DgOHjzIokWLWLVqFbt27SIuLo7nnnuO//3vfy49/g0bNmC1WmnRooXT/V9++SVz586lWrVq/PLLL3zzzTcsWLCAffv2kZ2dTWpqar5zjh075ig4Ll68mHXr1jFnzhz27NnD4MGD+eOPP7jvvvtcis8VS5YsoU6dOhw8eJAvv/yS77//ng0bNuDv78/rr7/O9u3bb/oeixcv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", + "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(\"FitzHugh-Nagumo 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_fitzhughnagumo/plot.md b/docs/benchmarks/taylor_fitzhughnagumo/plot.md new file mode 100644 index 00000000..1b1158b8 --- /dev/null +++ b/docs/benchmarks/taylor_fitzhughnagumo/plot.md @@ -0,0 +1,93 @@ +--- +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: FitzHugh-Nagumo + +The FHN problem is a common non-stiff differential equation. + +```python +"""Benchmark all Taylor-series estimators on the Fitzhugh-Nagumo 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 "doubling" in label.lower(): + return {"color": "C2", "linestyle": "dotted"} + 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"] + work_min, work_max = (wp["work_min"], wp["work_max"]) + 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("FitzHugh-Nagumo 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_fitzhughnagumo/results.npy b/docs/benchmarks/taylor_fitzhughnagumo/results.npy new file mode 100644 index 0000000000000000000000000000000000000000..d7b9d08f85b859f8188368f70ec50f7882e87843 GIT binary patch literal 3399 zcmbuBeOy#k8prR5=7@-Z_(rLtt1={_n=fIphiOG@1rcwu3xy8D%)kYKnP<2ovT_Yu z3CGN|tVN_kY<)p&)1_S$Yf;EFUPKf@S`*9+19=fld~MIml`fzD^!&l^a}MV-&-a|? zd4Bi27Z$NJJW9o_;nsPZ%&A73_X`^DjAh=w8t*uZO|%(O^cI`ROqPQUNvUSMo+=ou zW<1yW_-Z80lMUxgCu52|*_!TWwAjpk$@U~M!CJgpbQH!6QD=dt!06)qVKku|!^7CebOA7K zARQ;d_*ln69gfd+)zu-Qjod}5wY!?AmLz;fH9Dt-YVT{;sJiUw7oO88budWy?SDO4O(-0ady$EDm3I~RPmVOHORSfWq8<*D%6^Ie{qKK z0)km0%$DHy3Wn!+nDZ+`azYBsRWQsW4D)4%=P3ip(d^e*uGB^KGzVp4S*|wKUuHR3 z$#S)SD9e@Fo#kq-qaA_22n!^5LBa4M4*?1W!&>-*f&meRK$$_;&+u7BFO7BN?ORl@ zK4SCfF+bD!$>U6K4Y^C_Roj_f+xHN`OCtPHf`tl(ARZRc{-C)qT9T~^NoELEa4aSq zFUuT%k~uOP=hf^9#8=`{5PXzq%b>yaSohn9Pq~5B^UQ-!R6343;T6(rD|m>& zy(av&%l=HdjF<))PE5GLvJR2;DOrcgN-C2K(oUqpzMAd1mS@G36h*LaAw(?)Kjp{s2PM3-`y{7zIIv3`!0&4!~DxH_b zvqFlV{}Y{0b?%_*65d5sbY(?Q;L3{NgTgy>-A{cFL97Ty2~3Z%%@{k5hj>BR@B-mW zkogiR-yA%KPivr!-fd~3jlBK-6-3rYZD~b8cy#6egyQf>ymOtdmtJb8`{otjqDC;| zST~)wIC|**t9x$K{l!6dsX>&6K0vTqgd_=)DLhyNr59KU9>{n$isxQg>-qHE zN@Qzk+|ub&jpA>%trHt7(cVjy6EwLEC}Wq`x^Yd{(QJ?OX)!t2Gw%0{FPVE5E!bXW zZ(rYxJ{{TMQ#QR0O?va?&l8_HkIo19+6DUs&w28F@FI~p_Ykzjtxy&YV&M}+FT*0!N|6w!DPVWMi-GG@ayW`Y1=z7kIcB-2; zcT(-k?xyO0sfX(SdRc21e0dkaIuSA?kQ8|9d3aq=I!GqL+aTk;(T|rC!HOpQAp6-R z0xO=9NLD;;9?qnrxq{GpG;Hh7_o-goIE1cyUgfB6xTB())#F4pX5mn($NbfS@HY`Q zN|2?%dy|K3L1`?T2%ba6+x!@>Cm_54|4dG9-dhb=D;_#Ie#BbX6IFN{>#FBRzC?`W zjjiQ}hhaUG5PaA}$7N3B4qh9t<8()6666jvpIzhxdE^B6f$|}_U>ynI ze~^`@ZZtC=>v&e4n^2L#_`EDKx26)OI z67~~0>_2GO&W?_bi;Ehl2h_}Nq8?EH?iH#nX)WyWaOVd^_IZ8F9uW(?+o*?BqfP{S zMc607enr>=JQNP_ii0FK}*>s7qzw___qlEk)T8o_9zd> z2K06*342@)`$d1)K^3g0J5)@quiU1&(^WF-IC-Lv&c}7LSAizt0iE}`ae?rq2>+F! zOcC}34<`roY&i*AA&31+4(s-HPtD#Ioyk@d{=ImuY*$}d@aFgMc6Yud^4aID@oWYIczoQ#V7x&*NAXd Vf?7E&`KX`cq0VkMh;TmE@Bg6sJH!A0 literal 0 HcmV?d00001 diff --git a/docs/benchmarks/taylor_fitzhughnagumo/run_taylor_fitzhughnagumo.py b/docs/benchmarks/taylor_fitzhughnagumo/run_taylor_fitzhughnagumo.py new file mode 100644 index 00000000..16ae345a --- /dev/null +++ b/docs/benchmarks/taylor_fitzhughnagumo/run_taylor_fitzhughnagumo.py @@ -0,0 +1,175 @@ +"""Benchmark the initialisation methods on the FitzHugh-Nagumo problem. + +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,) = _fitzhugh_nagumo() + + @functools.partial(jax.jit, static_argnames=["num"]) + def estimate(num): + tcoeffs = autodiff.taylor_mode(vf_auto, (u0,), num=num) + return jax.block_until_ready(tcoeffs) + + return estimate + + +def taylor_mode_doubling() -> Callable: + """Taylor-mode estimation.""" + vf_auto, (u0,) = _fitzhugh_nagumo() + + @functools.partial(jax.jit, static_argnames=["num"]) + def estimate(num): + tcoeffs = autodiff.taylor_mode_doubling(vf_auto, (u0,), num=num) + return jax.block_until_ready(tcoeffs) + + return estimate + + +def forward_mode() -> Callable: + """Forward-mode estimation.""" + vf_auto, (u0,) = _fitzhugh_nagumo() + + @functools.partial(jax.jit, static_argnames=["num"]) + def estimate(num): + tcoeffs = autodiff.forward_mode(vf_auto, (u0,), num=num) + return jax.block_until_ready(tcoeffs) + + return estimate + + +def _fitzhugh_nagumo(): + u0 = jnp.asarray([-1.0, 1.0]) + + @jax.jit + def vf_probdiffeq(u, a=0.2, b=0.2, c=3.0): + """FitzHugh--Nagumo model.""" + du1 = c * (u[0] - u[0] ** 3 / 3 + u[1]) + du2 = -(1.0 / c) * (u[0] - a - b * u[1]) + return jnp.asarray([du1, du2]) + + return vf_probdiffeq, (u0,) + + +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 = [] + work_min = [] + work_median = [] + work_max = [] + 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)) + work_min.append(min(time_execute)) + work_median.append(statistics.median(time_execute)) + work_max.append(max(time_execute)) + arg += 1 + print("num =", arg, "| elapsed =", elapsed, "| max_time =", max_time) + return { + "work_median": jnp.asarray(work_median), + "work_mean": jnp.asarray(work_mean), + "work_std": jnp.asarray(work_std), + "work_min": jnp.asarray(work_min), + "work_max": jnp.asarray(work_max), + "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(), + r"Taylor-mode (doubling)": taylor_mode_doubling(), + } + + # 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/dev_docs/creating_example_notebook.md b/docs/dev_docs/creating_example_notebook.md index 0f37de45..88bad422 100644 --- a/docs/dev_docs/creating_example_notebook.md +++ b/docs/dev_docs/creating_example_notebook.md @@ -1,6 +1,10 @@ # Creating an example notebook -To create a new example notebook or benchmark and include it in the documentation, follow the steps: + +## Tutorial + + +To create a new example notebook and include it in the documentation, follow the steps: 1. Create a jupyter notebook, preferably in `docs/examples_*/` and fill it with content. In case you are wondering which subfolder is most appropriate: @@ -11,3 +15,13 @@ To create a new example notebook or benchmark and include it in the documentatio 3. Include the notebook into the docs by mentioning it in the `nav` section of `mkdocs.yml` 4. Update the makefile to enjoy formatting and linting 5. Enjoy. + + +## Benchmark + +1. Create a new folder in the `docs/benchmarks/` directory +2. Create the benchmark script. Usually, the execution is in a python script and the plotting in a jupyter notebook. +3. Link the (plotting-)notebook to a markdown file (for better version control). +4. Include the (plotting-)notebook into the docs via `mkdocs.yml`. Mention the markdown and python script in the same folder under `mkdocs.yml -> exclude` +5. Mention the new benchmark in the makefile (`clean`, `format`, `run-benchmarks`, `dry-run-benchmarks`). A dry-run is for checking that the code functions properly. The benchmark run itself should not take less than a minute, otherwise the whole benchmark suite grows out of hand. +6. Mention the juypter caches and potential data-storage in the `.gitignore` diff --git a/makefile b/makefile index da64ea07..1f289964 100644 --- a/makefile +++ b/makefile @@ -11,6 +11,7 @@ format: jupytext --quiet --sync docs/benchmarks/vanderpol/*.ipynb jupytext --quiet --sync docs/benchmarks/lotkavolterra/*.ipynb jupytext --quiet --sync docs/benchmarks/taylor_pleiades/*.ipynb + jupytext --quiet --sync docs/benchmarks/taylor_fitzhughnagumo/*.ipynb lint: pre-commit run --all-files @@ -32,6 +33,9 @@ example: jupytext --quiet --sync docs/examples_parameter_estimation/* run-benchmarks: + time python docs/benchmarks/taylor_fitzhughnagumo/run_taylor_fitzhughnagumo.py --max_time 20 --repeats 15 --save + jupytext --quiet --sync docs/benchmarks/taylor_fitzhughnagumo/*.ipynb + jupytext --quiet --execute docs/benchmarks/taylor_fitzhughnagumo/*.ipynb 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 @@ -49,9 +53,9 @@ run-benchmarks: jupytext --quiet --execute docs/benchmarks/hires/*.ipynb dry-run-benchmarks: + time python docs/benchmarks/taylor_fitzhughnagumo/run_taylor_fitzhughnagumo.py --max_time 0.5 --repeats 2 --no-save 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/taylor_fitzhughnagumo/run_taylor_fitzhughnagumo.py --max_time 0.5 --repeats 2 --no-save 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 @@ -74,7 +78,8 @@ clean: 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 + rm -rf docs/benchmarks/taylor_fitzhughnagumo/__pycache__ + rm -rf docs/benchmarks/taylor_fitzhughnagumo/.ipynb_checkpoints doc: mkdocs build diff --git a/mkdocs.yml b/mkdocs.yml index 72d8d77b..0ddd16f9 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -12,15 +12,19 @@ theme: - search.highlight palette: # Palette toggle for light mode - - scheme: probdiffeq-light + - scheme: default + primary: white + accent: amber toggle: - icon: material/brightness-7 + icon: material/eye name: Switch to dark mode # Palette toggle for dark mode - - scheme: probdiffeq-dark + - scheme: slate + primary: black + accent: amber toggle: - icon: material/brightness-4 + icon: material/eye-outline name: Switch to light mode icon: repo: fontawesome/brands/github