{ "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 numpy as np\n", "\n", "import estimagic as em" ] }, { "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.19792142e-07, -4.39584285e-07, -1.26862265e-07,\n", " -6.57024435e-09]),\n", " 'internal_derivative': array([ 1.49011612e-09, -4.38094169e-07, -8.77678453e-07, -2.52234414e-07,\n", " -1.16503726e-08]),\n", " 'timestamp': 6713.323679319,\n", " 'exceptions': None,\n", " 'valid': True,\n", " 'hash': None,\n", " 'value': 2.576801316760254e-13,\n", " 'step': 1,\n", " 'criterion_eval': 2.576801316760254e-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": "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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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FSDwsjAQQMC3wLXXXmsKibNnz7bSpUvntFu5cqXdcccdtmrVKt/XSvbEL774wm655RabMWOGlS9f3ooVK5bspWzfvn22bNkyO++886xEiRK2Zs0a27hxo1155ZVJXfP777+3PXv22JlnnplU+/+iUX4G3tx+WhfHHXecnXjiif/F0PhMBBBAIEeAwMtiQAAB3wIKvNu2bbMbb7zRHn300f8k8C5YsMDatWsXOlwr7BYtWnS/sT/99NP2119/Wa9evXyb6ERVnfVP4cKFA7U7FE7Oz8CbrN+h4EAfEEAgtQUIvKk9v4wOgXwVUOBt3LixKdhMmTLFzjnnHHf93BXe3bt325NPPmnvvfee/fnnn3buueda37597YwzzvDVn8WLF7v23377rR1zzDHWsGFDu/vuu+2jjz6ye++911VRixcvbn369HF/Fnvs3LnT+vfvb++++64VKVLErr/+eneeKsGqDOtr9tdee81Vh/UZ3paGmTNn2ogRI1xoPf74492WifXr11u/fv1M/SlVqpRdddVV1rt3bytZsqTNmTPHMjMzncczzzxjr776qr3++uv7bWmYOHGijRs3zv3stNNOs86dO1vt2rVdd2+77TbXn48//ti++eYb27t3r/Xs2dNuuOGGgxrl1Zd//vnHqlWrZi+++KJdfvnlOW3lcumll1q3bt3szTfftJEjR9pPP/1kxx57rN11113WsmVLd25s4FXV/IknnnDO3nHfffe5Cu0jjzxi+qzBgwfbtGnT7LfffrPTTz/deVx22WXOILdf7JaGeGtCa+SCCy6wUaNGuX82bdpkZcuWtUGDBuVsNZkwYYK99NJLtnnzZjc/GgNbJXz958RJCCBgZgRelgECCPgWUOB96KGH7JNPPnEhUKFXATF34FX1d8WKFfbcc8+54KIwNH36dJs7d64dccQRcT9P4VChUAFZoVBfk7dt29ZVdVu3bm3z58934Tev7RPa16s/Gzp0qP39998uICuodu/e3e331ZaMAQMGWKVKlaxQoUL77eG95557XDD1Krw6/8ILL7SuXbuaApvCowLjU0895QJxly5dXEDVnmIFc/3c28OrAK2Q+Pzzz7stEwrIDzzwgE2dOtXdADRo0MC2bNliY8aMccFRgU59Xrp0qetX7iNeX2RzyimnuHCuQ6HwiiuusLfeessOP/xw07wpjMpB86Kw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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.9.13" } }, "nbformat": 4, "nbformat_minor": 2 }