{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# How to use logging\n", "\n", "\n", "Estimagic can keep a persistent log of the parameter and criterion values tried out by an optimizer in a sqlite database. \n", "\n", "The sqlite database is also used to exchange data between the optimization and the dashboard." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Turn logging on or off\n", "\n", "To enable logging, it suffices to provide a path to an sqlite database when calling ``maximize`` or ``minimize``. The database does not have to exist, estimagic will generate it for you. " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import estimagic as em\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def sphere(params):\n", " return params @ params" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "res = em.minimize(\n", " criterion=sphere,\n", " params=np.arange(5),\n", " algorithm=\"scipy_lbfgsb\",\n", " logging=\"my_log.db\",\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Make logging faster\n", "\n", "By default, we use a very safe mode of sqlite that makes it almost impossible to corrupt the database. Even if your computer is suddenly shut down or unplugged. \n", "\n", "However, this makes writing logs rather slow, which becomes notable when the criterion function is very fast. \n", "\n", "In that case, you can enable ``\"fast_logging\"``, which is still quite safe!" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "res = em.minimize(\n", " criterion=sphere,\n", " params=np.arange(5),\n", " algorithm=\"scipy_lbfgsb\",\n", " logging=\"my_log.db\",\n", " log_options={\"fast_logging\": True},\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Handling existing tables\n", "\n", "By default, we only append to databases and do not overwrite data in them. You have a few options to change this:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "res = em.minimize(\n", " criterion=sphere,\n", " params=np.arange(5),\n", " algorithm=\"scipy_lbfgsb\",\n", " logging=\"my_log.db\",\n", " log_options={\n", " \"if_database_exists\": \"replace\", # one of \"raise\", \"replace\", \"extend\",\n", " \"if_table_exists\": \"replace\", # one of \"raise\", \"replace\", \"extend\"\n", " },\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Reading the log" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "reader = em.OptimizeLogReader(\"my_log.db\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Read the start params" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0, 1, 2, 3, 4])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "reader.read_start_params()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Read a specific iteration (use -1 for the last)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'rowid': 3,\n", " 'params': array([ 0.00000000e+00, -2.19792136e-07, -4.01986529e-08, -1.26862247e-07,\n", " -2.06263028e-07]),\n", " 'internal_derivative': array([ 1.49011612e-09, -4.38094157e-07, -7.89071896e-08, -2.52234378e-07,\n", " -4.11035941e-07]),\n", " 'timestamp': 21972.838421234,\n", " 'exceptions': None,\n", " 'valid': True,\n", " 'hash': None,\n", " 'value': 1.08562981500731e-13,\n", " 'step': 1,\n", " 'criterion_eval': 1.08562981500731e-13}" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "reader.read_iteration(-1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Read the full history" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['params', 'criterion', 'runtime'])" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "reader.read_history().keys()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plot the history from a log" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAArwAAAH0CAYAAADfWf7fAAAgAElEQVR4XuzdCXhVxf3/8W8WQja2AGEJ+xpA2QRFJGIRWqVWcalWa7Higu3freJSdwSlP/topXZRqVIFF6yiKLi2qCwqChRkCUvAQCASEtYQsi//5zuQNAQIuZl7T+45932e5/dYzJlzZl4z8vswzJwJq6ioqBAuBBBAAAEEEEAAAQQ8KhBG4PVoz9IsBBBAAAEEEEAAASNA4GUgIIAAAggggAACCHhagMDr6e6lcQgggAACCCCAAAIEXsYAAggggAACCCCAgKcFCLye7l4ahwACCCCAAAIIIEDgZQwggAACCCCAAAIIeFqAwOvp7qVxCCCAAAIIIIAAAgRexgACCCCAAAIIIICApwUIvJ7uXhqHAAIIIIAAAgggQOBlDCCAAAIIIIAAAgh4WoDA6+nupXEIIIAAAggggAACBF7GAAIIIIAAAggggICnBQi8nu5eGocAAggggAACCCBA4GUMIIAAAggggAACCHhagMDr6e6lcQgggAACCCCAAAIEXsYAAggggAACCCCAgKcFCLye7l4ahwACCCCAAAIIIEDgZQwggAACCCCAAAIIeFqAwOvp7qVxCCCAAAIIIIAAAgRexgACCCCAAAIIIICApwUIvJ7uXhqHAAIIIIAAAgggQOBlDCCAAAIIIIAAAgh4WoDA6+nupXEIIIAAAggggAACBF7GAAIIIIAAAggggICnBQi8nu5eGocAAggggAACCCBA4GUMIIAAAggggAACCHhagMDr6e6lcQgggAACCCCAAAIEXsYAAggggAACCCCAgKcFCLye7l4ahwACCCCAAAIIIEDgZQwggAACCCCAAAIIeFqAwOvp7qVxCCCAAAIIIIAAAgRexgACCCCAAAIIIICApwUIvJ7uXhqHAAIIIIAAAgggQOBlDCCAAAIIIIAAAgh4WoDA6+nupXEIIIAAAggggAACBF7GAAIIIIAAAggggICnBQi8nu5eGocAAggggAACCCBA4GUMIIAAAggggAACCHhagMDr6e6lcQgggAACCCCAAAIEXsYAAggggAACCCCAgKcFCLye7l4ahwACCCCAAAIIIEDgZQwggAACCCCAAAIIeFqAwOvp7qVxCCCAAAIIIIAAAgRexgACCCCAAAIIIICApwUIvJ7uXhqHAAIIIIAAAgggQOBlDCCAAAIIIIAAAgh4WoDA6+nupXEIIIAAAggggAACBF7GAAIIIIAAAggggICnBQi8nu5eGocAAggggAACCCBA4GUMIIAAAggggAACCHhagMDr6e6lcQgggAACCCCAAAIEXsYAAggggAACCCCAgKcFCLye7l4ahwACCCCAAAIIIEDgZQwggAACCCCAAAIIeFqAwOvp7qVxCCCAAAIIIIAAAgRexgACCCCAAAIIIICApwUIvJ7uXhqHAAIIIIAAAgggQOBlDCCAAAIIIIAAAgh4WoDA6+nupXEIIIAAAggggAACBF7GAAIIIIAAAggggICnBQi8nu5eGocAAggggAACCCBA4GUMIIAAAggggAACCHhagMDr6e6lcQgggAACCCCAAAIEXsYAAggggAACCCCAgKcFCLye7l4ahwACCCCAAAIIIEDgZQwggAACCCCAAAIIeFqAwOvp7qVxCCCAAAIIIIAAAgRexgACCCCAAAIIIICApwUIvJ7uXhqHAAIIIIAAAgggQOBlDCCAAAIIIIAAAgh4WoDA6+nupXEIIIAAAggggAACBF7GAAIIIIAAAggggICnBQi8nu5eGocAAggggAACCCBA4GUMIIAAAggggAACCHhagMDr6e6lcQgggAACCCCAAAIEXsYAAggggAACCCCAgKcFCLye7l4ahwACCCCAAAIIIEDgZQwggAACCCCAAAIIeFqAwOvp7qVxCCCAAAIIIIAAAgRexgACCCCAAAIIIICApwUIvJ7uXhqHAAIIIIAAAgggQOBlDCCAAAIIIIAAAgh4WoDA6+nupXEIIIAAAggggAACBF7GAAIIIIAAAggggICnBQi8nu5eGocAAggggAACCCBA4GUMIIAAAggggAACCHhagMDr6e6lcQgggAACCCCAAAIEXsYAAggggAACCCCAgKcFCLye7l4ahwACCCCAAAIIIEDgZQwggAACCCCAAAIIeFqAwOvp7qVxCCCAAAIIIIAAAgRexgACCCCAAAIIIICApwUIvJ7uXhqHAAIIIIAAAgggQOBlDCCAAAIIIIAAAgh4WoDA6+nupXEIIIAAAggggAACBF7GAAIIIIAAAggggICnBQi8nu5eGocAAggggAACCCBA4GUMIIAAAggggAACCHhagMDr6e6lcQgggAACCCCAAAIEXosx0LNnT0lLS7N4AkURQAAB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fPiw/P73vzfP0X/qs3v16uXX51o9zOHC/g687777ruTl5cmvfvWrqpaMHz9errvuOjn//PMdbh2vQwCBUBcg8Ib6CKD9CJxEQAPvoUOH5OGHH5ZLL7206q6GCLwDBw6UN954Q/r06eOX/vr222+lqKhIUlJSpLi42ASwl156yTrwVn+uXyrq4EP8HXjvuOMOGTJkyDGB9+2335YzzzxTOnXq5GDLeBUCCCAgQuBlFCCAwAkFNPDefPPN8uyzz8onn3xSNat6osD71ltvyfPPPy+7du0ys8IadsaOHVsnWQ2cTz31lLz//vsmYPfv318eeeQRE27T0tLk/vvvl++++06aNGkiERER8u9///u4GV59xh//+EeZP3++mVXs3r27zJ49W1auXClz586Vn//85zJlyhQzq/vNN99IZbh79NFH5bLLLpMNGzZUPV+XS/z4xz+WrKws0Z9/+eWX0rJlS/nFL34ht9xyi4SFhclnn31W63MrlwXoM/R/L126VMLDw+W8884zz6ycodZ6REdHS2Zmpvz3v/+V0tJSGTZsmKmr/vsTXdom/fmWLVukc+fOMmnSJBPYP/74Y5k2bZosWrTI1LHy0nfed999cuGFF8qf/vQn+eijj0w/tW/f3vz7ytnW6oF3586d8qMf/ci4REZGVj2rZ8+e8p///Me8d9++feZ9y5Ytk9zcXOnbt6/5dbdu3eShhx4yPo0aNZLGjRsbY+3HcePGyY033igXXXSReaa2Wd+bmpoqzZo1kyuvvFJuv/12Y6WX3q+zwu+8845onbRdv/zlL80z9FKv//u//5MPPvjA1EGD9F133SVjxoyp09jjJgQQCB0BAm/o9DUtRcAnAQ28L774osyYMcOEHg0metUMvBqw7r33XnnmmWdkwIABsnz5chPCdMZUZ2ZPdWlQ1RCq/2zdurUJShqeFy5cKPHx8aZ4v379RP+K/GRLDjT0fPXVV/L444+bILd582YZPny4CaYaOFu1amXWALdp00batWtXFXgrg+mJnq8h+dxzz5Xrr79esrOz5Te/+Y353xp86/pcXYqhddYQVlZWZsLZwYMHZebMmaZdavrPf/5TnnvuORM8CwoKTMDTwKZ/2Kh5acjU4KrBUtungfH//b//J/oHDg2hZ511lnEfPHiwKbp69Wr59a9/bUKpBmj9g4v+QUINFixYYIKz9ldl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" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = em.criterion_plot(\"my_log.db\")\n", "fig.show(renderer=\"png\")" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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Sy+1KVOm2IUXXpiQ+Vq+fLllZmZajRo1bM+ePS6AjR49OnDgzdpvQgaaxE4SHXg7d+5sl19++QGB97XXXrMqVarYWWedlcQz460QQAABMwIvqwABBHIUUOC955577LnnnrN58+ZFdlVzCrzTp0+3YcOG2caNG92usMJOgwYNYpJV4Bw0aJDNnj3bBezy5cvbE0884cLtmjVrrFu3bvbFF19YsWLF7Oijj7Z33nnnoB1e9TFw4ECbM2eO21U899xzbeLEifbJJ5/YjBkz7Pbbb7fevXu7Xd2PPvrIvHD35JNPWqNGjezrr7+O9K9yiXr16tmmTZtMf7548WIrUaKENW3a1Dp06GD58uWz9957L9d+vbIA9aGff/jhh3bUUUfZ1Vdf7fr0dqg1jmOPPdY2bNhgn376qf3zzz9WtWpVN1b9fk6Hzkl//u2331qpUqWsa9euLrC//fbb1q9fP1u4cKEbo3foPR999FG77rrrbPDgwTZ37lw3TyVLlnS/7+22Zg2869evt2uuuca5HHPMMZG+ypQpY++++657323btrn3W7ZsmW3fvt0uuugi9+tzzjnHevTo4Xzy589vBQsWdMaax4YNG9rdd99tN9xwg+tT56z3/eqrr+y4446zxo0b2/333++sdOj12hV+/fXXTWPSebVo0cL1oUNezzzzjL355ptuDArSXbp0sbp168a09ngRAgjkHQECb96Za84UAV8CCryjRo2yESNGuNCjYKIje+BVwHrkkUdsyJAhVqFCBfv4449dCNOOqXZmox0Kqgqh+vGkk05yQUnhecGCBVa0aFHX/OKLLzZ9RX6okgOFniVLltjTTz/tgtzq1autWrVqLpgqcJ544omuBviUU06x0047LRJ4vWCaU/8KyVdddZXdddddtmXLFuvYsaP7uYJvrP2qFENjVgjbu3evC2d//PGHjRkzxp2XTMeOHWsvv/yyC55//fWXC3gKbLrYyH4oZCq4Kljq/BQY7733XtMFh0LoFVdc4dwrVarkmn7++efWunVrF0oVoHXhogsJGaSlpbngrPny5ter4Y0l8P7999/21ltvuV3ywoULO/vNmzfbyJEj3XurREShOWtJQ9bA++uvv7oyFa0d1WUr9Gvd6Oft27ePBN6tW7e6i5fSpUu70Ks/HzdunFtr2vVXGH7xxRfdWlFw1hqSBQcCCCCQVYDA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" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = em.params_plot(\"my_log.db\", selector=lambda x: x[1:3])\n", "fig.show(renderer=\"png\")" ] } ], "metadata": { "interpreter": { "hash": "5cdb9867252288f10687117449de6ad870b49795ca695c868016dc0022895cce" }, "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.8" } }, "nbformat": 4, "nbformat_minor": 2 }