diff --git a/README.md b/README.md index da61dba..e5667be 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,7 @@ Look at notebook files with full working [examples](https://github.com/stared/li - [keras.ipynb](https://github.com/stared/livelossplot/blob/master/examples/keras.ipynb) - a Keras callback - [minimal.ipynb](https://github.com/stared/livelossplot/blob/master/examples/minimal.ipynb) - a bare API, to use anywhere +- [script.py](https://github.com/stared/livelossplot/blob/master/examples/script.py) - to be run as a script, `python script.py` - [bokeh.ipynb](https://github.com/stared/livelossplot/blob/master/examples/bokeh.ipynb) - a bare API, plots with Bokeh ([open it in Colab to see the plots](https://colab.research.google.com/github/stared/livelossplot/blob/master/examples/bokeh.ipynb)) - [pytorch.ipynb](https://github.com/stared/livelossplot/blob/master/examples/pytorch.ipynb) - a bare API, as applied to PyTorch - [2d_prediction_maps.ipynb](https://github.com/stared/livelossplot/blob/master/examples/2d_prediction_maps.ipynb) - example of custom plots - 2d prediction maps (0.4.1+) diff --git a/examples/minimal.ipynb b/examples/minimal.ipynb index 658ce44..0c90b4e 100644 --- a/examples/minimal.ipynb +++ b/examples/minimal.ipynb @@ -1,5 +1,12 @@ { "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", "metadata": {}, @@ -56,25 +63,16 @@ }, "outputs": [ { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAMWCAYAAAAgRDUeAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA4oRJREFUeJzs3Xd4FOXax/HvpvcNkAqE3jsiIKgICiIoCqigohTbOSoeFTkqr71yjsfuQTkWBBW7gCiIIgoqoHSll9AhCTWdtN15/5hkQ6QFyO5kd3+f69prJrOzM/cEhSd37ud+bIZhGIiIiIiIiIiIiHhQgNUBiIiIiIiIiIiI/1FSSkREREREREREPE5JKRERERERERER8TglpURERERERERExOOUlBIREREREREREY9TUkpERERERERERDxOSSkREREREREREfE4JaVERERERERERMTjlJQSERERERERERGPU1JKREREREREREQ8TkkpEbHEG2+8gc1mo2vXrlaHIiIiIuIXJk+ejM1mY9myZVaHIiICKCklIhaZOnUqDRo0YMmSJWzZssXqcERERERERMTDlJQSEY/btm0bixYt4qWXXiI+Pp6pU6daHdJx5eXlWR2CiIiIiIiIz1JSSkQ8burUqdSoUYPLL7+ca6655rhJqczMTO677z4aNGhAaGgodevWZfjw4Rw4cMB1TkFBAU888QTNmjUjLCyM5ORkBg8eTGpqKgDz58/HZrMxf/78Ctfevn07NpuNyZMnu46NHDmSqKgoUlNT6d+/P9HR0QwbNgyAX375hWuvvZZ69eoRGhpKSkoK9913H0eOHDkm7g0bNjBkyBDi4+MJDw+nefPmPPzwwwD89NNP2Gw2pk+ffsznPvroI2w2G4sXLz7t76eIiIhIVVm5ciX9+vUjJiaGqKgoLrnkEn777bcK5xQXF/Pkk0/StGlTwsLCqFWrFhdccAFz5851nZOens6oUaOoW7cuoaGhJCcnc9VVV7F9+3YPP5GIVGdBVgcgIv5n6tSpDB48mJCQEK6//nrefPNNli5dSufOnQHIzc3lwgsvZP369dx8882cc845HDhwgJkzZ7J7927i4uJwOBxcccUVzJs3j+uuu4577rmHnJwc5s6dy5o1a2jcuPFpx1VSUkLfvn254IILeOGFF4iIiADg888/Jz8/nzvuuINatWqxZMkS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8eLFFkUkIiIiIiIiIiLu4NZKqdOVnp5OYmJihWOJiYlkZ2dz5MgRwsPDj/lMYWEhhYWFrq+zs7PdHqeIiIiIiIiIiJydalUpdSbGjx+P3W53vVJSUqwOSURERERERERETqFaJaWSkpLIyMiocCwjI4OYmJjjVkkBjBs3jqysLNdr165dnghVRERERERERETOQrWavtetWzdmz55d4djcuXPp1q3bCT8TGhpKaGiou0MTEREREREREZEq5NZKqdzcXFatWsWqVasA2LZtG6tWrWLnzp2AWeU0fPhw1/l///vf2bp1Kw888AAbNmzgjTfe4LPPPuO+++5zZ5giIiIiIiIiIuJhbk1KLVu2jI4dO9KxY0cAxowZQ8eOHXnssccASEtLcyWoABo2bMisWbOYO3cu7du358UXX+Sdd96hb9++7gxTREREREREREQ8zK1JqZ49e2IYxjGvyZMnAzB58mTmz59/zGdWrlxJYWEhqampjBw50p0hioiIiHjE+PHj6dy5M9HR0SQkJDBw4EA2btx4ys99/vnntGjRgrCwMNq2bXtMqwPDMHjsscdITk4mPDyc3r17s3nzZnc9hoiIiEiVqVaNzkVERER81YIFC7jrrrv47bffmDt3LsXFxVx66aXk5eWd8DOLFi3i+uuv55ZbbmHlypUMHDiQgQMHsmbNGtc5zz//PK+99hoTJ07k999/JzIykr59+1JQUOCJxxIRERE5YzbDMAyrg6hK2dnZ2O12srKyiImJsTocERER8QHuGF/s37+fhIQEFixYQI8ePY57ztChQ8nLy+Obb75xHTvvvPPo0KEDEydOxDAMateuzf3338/YsWMByMrKIjExkcmTJ3PddddZ8mwiIiLi3yo7vqhWq++JiG9zOA2yjxRzOL+Iw/nFZOYXkZlvfp2ZX0zmEXPbMjmG23s0IjhQxZwi4ruysrIAqFmz5gnPWbx4MWPGjKlwrG/fvsyYMQMwF5FJT0+nd+/ervftdjtdu3Zl8eLFx01KFRYWUlhY6Po6Ozv7bB7j1LYugCVvQUIruPhh995LREREvIqSUiJy2gzDIK/IweG8o5JKR8wk0+G88uRSWfIpq3SbXVBMZWozv/kzjcWpB5lwwznYI4Ld/0AiIh7mdDq59957Of/882nTps0Jz0tPTycxMbHCscTERNLT013vlx070Tl/NX78eJ58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EhERqXaUlPJFWaqUEhEREalAK/CJiIhUO0pK+SJXpZSSUiIiIiKAKqVERESqISWlfE1JEeTuM/ftmr4nIiIiAqhSSkREpBpSUsrX5OwFDAgMhYhaVkcjIiIiUj3YVSklIiJS3Sgp5WvK+knF1DZXmhERERGR8ul72XvBUWJtLCIiIgIoKeV7sveaW03dExERESkXlQQBwWA4SivLRURExGpKSvma7N3mVk3ORURERMoFBJSvTKy+UiIiItWCklK+pmz6nl1JKREREZEK1FdKRESkWlFSytdkl/WUUlJKREREpILYeuZWlVIiIiLVgpJSviardPqeekqJiIiIVOSqlNppbRwiIiICKCnle7KPWn1PRERERMqVrcCnSikREZFqQUkpX1J8BPIPmvuaviciIiJSkXpKiYiIVCtKSvmS7NLljYMjILyGtbGIiIiIVDdllVJZu8EwrI1FRERElJTyKUc3ObfZrI1FREREpLqJqQvYoKQA8vZbHY2IiIjfU1LKl2SVJqXsmronIiIicoygEIhOMvfVV0pERMRySkr5kuzSlfditPKeiIiIyHFpBT4REZFqQ0kpX5KllfdERERETkor8ImIiFQbQVYHIFUoW9P3REQ8yeFwUFxcbHUYUgWCg4MJDAy0OgzxBK3AJyJiGY2dfEdVjZ2UlPIlZavvafqeiIhbGYZBeno6mZmZVociVSg2NpakpCRsWizEt6lSSkTE4zR28k1VMXZSUsqXZJX2lFKllIiIW5UNqhISEoiIiFASw8sZhkF+fj779u0DIDk52eKIxK3s9cytKqVERDxGYyffUpVjJyWlfEVRHhRkmvsxSkqJiLiLw+FwDapq1apldThSRcLDwwHYt28fCQkJmsrny1QpJSLiURo7+aaqGjup0bmvKGtyHhoDYTHWxiIi4sPK+iBERERYHIlUtbI/U/W68HFlPaUKs6Agy9pYRET8gMZOvqsqxk5KSvmK7NKpe1p5T0TEI1R27nv0Z+onQqMgvIa5r2opERGP0b+zvqcq/kyVlPIVZZVSmronIiIicnJagU9ERKRaUFLKV5StvKcm5yIi4gENGjTglVdeqfT58+fPx2azadUdqR5iy5qd77Y2DhER8RsaOx2fGp37Ctf0vbrWxiEiItVWz5496dChw2kNiE5k6dKlREZGVvr87t27k5aWht1uP+t7i5y1skqpzJ3WxiEiItWaxk7up6SUryibvqdKKREROUOGYeBwOAgKOvXwID4+/rSuHRISQlJS0pmGJlK1YjV9T0REzp7GTmdP0/d8RbZ6SomIyImNHDmSBQsW8Oqrr2Kz2bDZbEyePBmbzca3335Lp06dCA0N5ddffyU1NZWrrrqKxMREoqKi6Ny5Mz/88EOF6/21BN1ms/HOO+8waNAgIiIiaNq0KTNnznS9/9cS9MmTJxMbG8t3331Hy5YtiYqK4rLLLiMtLc31mZKSEv7xj38QGxtLrVq1ePDBBxkxYgQDBw5057dK/IGrUkpJKREROT6NnTxDSSlfoUbnIiKWMQyD/KISS16GYVQqxldffZVu3bpx2223kZaWRlpaGikp5g/mDz30EP/6179Yv3497dq1Izc3l/79+zNv3jxWrlzJZZddxoABA9i58+RTnZ588kmGDBnCn3/+Sf/+/Rk2bBiHDh064fn5+fm88MILfPDBB/z888/s3LmTsWPHut7/97//zdSpU3nvvfdYuHAh2dnZzJgxo1LPK3JSqpQSEbGUxk4mjZ00fc83FGRBUY65r+l7IiIed6TYQavHvrPk3uue6ktEyKn/Obfb7YSEhBAREeEqBd+wYQMATz31FH369HGdW7NmTdq3b+/6+umnn2b69OnMnDmT0aNHn/AeI0eO5Prrrwfgueee47XXXmPJkiVcdtllxz2/uLiYiRMn0rhxYwBGjx7NU0895Xr/9ddfZ9y4cQwaNAiA//73v8yePfuUzypySvbSRue5GVBcAMFh1sYjIuJnNHYyaeykSinfULbyXlgshFS+cZqIiAjAueeeW+Hr3Nxcxo4dS8uWLYmNjSUqKor169ef8rd97dq1c+1HRkYSExPDvn37Tnh+RESEa1AFkJyc7Do/KyuLjIwMunTp4no/MDCQTp06ndaziRxXRE0IjjD3y1ogiIiIVJLGTlVHlVK+wNXkXCvviYhYITw4kHVP9bXs3mfrryvBjB07lrlz5/LCCy/QpEkTwsPDueaaaygqKjrpdYKDgyt8bbPZcDqdp3V+ZUvqRc6KzWb2lTqw0VyBr1bjU39GRESqjMZOJo2dlJTyDdm7za36SYmIWMJms1WqDNxqISEhOByOU563cOFCRo4c6Sr9zs3NZfv27W6OriK73U5iYiJLly6lR48eADgcDlasWEGHDh08Gov4qNjSpJT6SomIeJzGTlXPW8dO1f+/Ajk1V6WUklIiInJiDRo04Pfff2f79u1ERUWd8DdxTZs2Zdq0aQwYMACbzcajjz560t/aucvdd9/N+PHjadKkCS1atOD111/n8OHD2Gw2j8ciPkgr8ImIyClo7OR+6inlC7K18p6IiJza2LFjCQwMpFWrVsTHx5+wz8FLL71EjRo16N69OwMGDKBv376cc845Ho4WHnzwQa6//nqGDx9Ot27diIqKom/fvoSFqSm1VAGtwCciIqegsZP72Qxvn4D4F9nZ2djtdrKysoiJibE6HM+YciVsWwADJ0KH662ORkTEpxUUFLBt2zYaNmxYrf+B90VOp5OWLVsyZMgQnn766Sq//sn+bH15fOHLz3ZSf34O026F+hfAqFlWRyMi4rM0drKON4ydNH3PF2Rr+p6IiPieHTt28P3333PRRRdRWFjIf//7X7Zt28YNN9xgdWjiC1yVUidfGUlERMRbeOPYSdP3vJ1hQPZec1/T90RExIcEBAQwefJkOnfuzPnnn8/q1av54YcfaNmypdWhiS8oW7U4ey84T93EVkREpLrzxrGT25NSEyZMoEGDBoSFhdG1a1eWLFlSqc998skn2Gw2Bg4c6N4Avd2Rw1Ccb+4rKSUiIj4kJSWFhQsXkpWVRXZ2NosWLXKtJiNy1qKTISAInCWQk2Z1NCIiImfNG8dObk1Kffrpp4wZM4bHH3+cFStW0L59e/r27cu+fftO+rnt27czduxYLrzwQneG5xvKpu5FxEGw5ueKiIiIVEpAIMTUNve1Ap+IiIgl3JqUeumll7jtttsYNWoUrVq1YuLEiURERDBp0qQTfsbhcDBs2DCefPJJGjVq5M7wfEOW+kmJiIiInBF7PXOrFfhEREQs4bakVFFREcuXL6d3797lNwsIoHfv3ixevPiEn3vqqadISEjglltucVdoviV7t7nV1D0RERGR01PW7DxTzc5FRESs4LbV9w4cOIDD4SAxMbHC8cTERDZs2HDcz/z666+8++67rFq1qtL3KSwspLCw0PV1dnb2GcXrtcoqpZSUEhERETk99rIV+FQpJSIiYoVqs/peTk4ON910E2+//TZxcXGV/tz48eOx2+2uV0pKihujrIbKVt7T9D0RERGR0+OqlFJSSkRExApuq5SKi4sjMDCQjIyMCsczMjJISko65vzU1FS2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mamPPvpI559/vtnl4CgqKyt11lln6c9//rP+8Ic/aOjQoXryySfNLgutuPfee/XZZ5/pk08+MbsUtMF3vvMdZWVlad68eYFjV111leLj4/W3v/3NxMoQ7bh3imzcP4U/7p0iB/dOkYV7p9BhpFQb1dfXa8WKFSooKAgcs1qtKigo0JIlS0ysDG3hcrkkSenp6SZXgmO57bbbdMUVV7T4vzOEp3feeUfDhw/XD3/4Q2VmZurMM8/U3LlzzS4LR3HOOeeosLBQmzZtkiStXr1an376qS677DKTK0M0494p8nH/FP64d4oc3DtFFu6dQifG7AIiRWlpqTwej7Kyslocz8rK0oYNG0yqCm3h9Xp1xx136Nxzz9XAgQPNLgdH8eqrr2rlypVavny52aWgDbZu3apnnnlGU6dO1X333afly5frF7/4heLi4nT99debXR4Oc++998rtduuMM86QzWaTx+PRQw89pGuvvdbs0hDFuHeKbNw/hT/unSIL906RhXun0CGUQtS77bbbtHbtWn366adml4Kj2LVrl375y19q0aJFcjgcZpeDNvB6vRo+fLj++Mc/SpLOPPNMrV27VnPmzOHGKgy9/vrreuWVVzR//nwNGDBAq1at0h133KGcnBy+LwCt4v4pvHHvFHm4d4os3DuFDqFUG2VkZMhms6m4uLjF8eLiYmVnZ5tUFY5nypQpevfdd/Xxxx+rR48eZpeDo1ixYoVKSkp01llnBY55PB59/PHHmj17turq6mSz2UysEIfr1q2b+vfv3+JYv3799M9//tOkinAsd999t+69915NnDhRkjRo0CDt2LFDM2fO5MYKQcO9U+Ti/in8ce8Uebh3iizcO4UOPaXaKC4uTsOGDVNhYWHgmNfrVWFhoUaNGmViZWiNz+fTlClT9NZbb+l///ufevfubXZJOIZLLrlEa9as0apVqwLb8OHDde2112rVqlXcVIWhc88994hlwjdt2qRevXqZVBGOpbq6WlZry//Jt9ls8nq9JlWEzoB7p8jD/VPk4N4p8nDvFFm4dwodRkqdgKlTp+r666/X8OHDNXLkSD355JOqqqrS5MmTzS4Nh7nttts0f/58/etf/1JycrKKiookSU6nU/Hx8SZXh8MlJycf0a8iMTFRXbp0oY9FmPrVr36lc845R3/84x919dVXa9myZXruuef03HPPmV0aWvHd735XDz30kHr27KkBAwboq6++0hNPPKGf/OQnZpeGKMe9U2Th/ilycO8Uebh3iizcO4WOxefz+cwuIpLMnj1bjz32mIqKijR06FA99dRTys/PN7ssHMZisbR6/C9/+YtuuOGG0BaDdrnwwgtZ1jjMvfvuu5o2bZo2b96s3r17a+rUqbr55pvNLgutqKio0P3336+33npLJSUlysnJ0TXXXKPp06crLi7O7PIQ5bh3ihzcP0U27p3CH/dOkYN7p9AhlAIAAAAAAEDI0VMKAAAAAAAAIUcoBQAAAAAAgJAjlAIAAAAAAEDIEUoBAAAAAAAg5AilAAAAAAAAEHKEUgAAAAAAAAg5QikAAAAAAACEHKEUAAAAAAAAQo5QCgBO0OLFi2WxWFReXm52KQAAAGGPeycAR0MoBQAAAAAAgJAjlAIAAAAAAEDIEUoBiDher1czZ85U7969FR8fryFDhugf//iHpObh4e+9954GDx4sh8Ohs88+W2vXrm3xHv/85z81YMAA2e125eXladasWS2er6ur069//Wvl5ubKbrerT58+mjdvXotzVqxYoeHDhyshIUHnnHOONm7cGNwLBwAAaAfunQCEK0IpABFn5syZevnllzVnzhytW7dOv/rVr3Tdddfpo48+Cpxz9913a9asWVq+fLm6du2q7373u2poaJBk3BBdffXVmjhxotasWaMHHnhA999/v1588cXA6ydNmqS///3veuqpp7R+/Xo9++yzSkpKalHHb37zG82aNUtffvmlYmJi9JOf/CQk1w8AAHAiuHcCEK4sPp/PZ3YRANBWdXV1Sk9P1wcffKBRo0YFjt90002qrq7WLbfcoosuukivvvqqJkyYIEk6cOCAevTooRdffFFXX321rr32Wu3fv18LFy4MvP6ee+7Re++9p3Xr1mnTpk3q27evFi1apIKCgiNqWLx4sS666CJ98MEHuuSSSyRJ77//vq644grV1NTI4XAE+V8BAACgbbh3AhDOGCkFIKJs2bJF1dXVuvTSS5WUlBTYXn75ZX377beB8w696UpPT1ffvn21fv16SdL69et17rnntnjfc889V5s3b5bH49GqVatks9l0wQUXHLOWwYMHB/a7desmSSopKTnpawQAAOgo3DsBCGcxZhcAACeisrJSkvTee++pe/fuLZ6z2+0tbq7aKz4+vk3nxcbGBvYtFosko2cDAABAuODeCUA4Y6QUgIjSv39/2e127dy5U3369Gmx5ebmBs774osvAvsHDx7Upk2b1K9fP0lSv3799Nlnn7V4388++0ynn366bDabBg0aJK/X26LPAgAAQCTi3glAOGOkFICIkpycrLvuuku/+tWv5PV6dd5558nlcumzzz5TSkqKevXqJUn6/e9/ry5duigrK0u/+c1vlJGRofHjx0uS7rzzTo0YMUIPPvigJkyYoCVLlmj27Nn685//LEnKy8vT9ddfr5/85Cd66qmnNGTIEO3YsUMlJSW6+uqrzbp0AACAE8a9E4BwRigFIOI8+OCD6tq1q2bOnKmtW7cqNTVVZ511lu67777AEPCHH35Yv/zlL7V582YNHTpU//73vxUXFydJOuuss/T6669r+vTpevDBB9WtWzf9/ve/1w033BD4jGeeeUb33Xeffv7zn6usrEw9e/bUfffdZ8blAgAAnBTunQCEK1bfAxBV/Ku7HDx4UKmpqWaXAwAAENa4dwJgJnpKAQAAAAAAIOQIpQAAAAAAABByTN8DAAAAAABAyDFSCgAAAAAAACFHKAUAAAAAAICQI5QCAAAAAABAyBFKAQAAAAAAIOQIpQAAAAAAABByhFIAAAAAAAAIOUIpAAAAAAAAhByhFAAAAAAAAEKOUAoAAAAAAAAh9/8DfXiEmgzG+1AAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Accuracy\n", - "\ttraining \t (min: 0.710, max: 0.983, cur: 0.956)\n", - "\tvalidation \t (min: -0.177, max: 0.969, cur: 0.921)\n", - "Loss\n", - "\ttraining \t (min: 0.091, max: 0.500, cur: 0.091)\n", - "\tvalidation \t (min: 0.105, max: 2.000, cur: 0.105)\n" + "ename": "AssertionError", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[2], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m plotlosses \u001b[38;5;241m=\u001b[39m \u001b[43mPlotLosses\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;241m10\u001b[39m):\n\u001b[1;32m 4\u001b[0m plotlosses\u001b[38;5;241m.\u001b[39mupdate({\n\u001b[1;32m 5\u001b[0m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124macc\u001b[39m\u001b[38;5;124m'\u001b[39m: \u001b[38;5;241m1\u001b[39m \u001b[38;5;241m-\u001b[39m np\u001b[38;5;241m.\u001b[39mrandom\u001b[38;5;241m.\u001b[39mrand() \u001b[38;5;241m/\u001b[39m (i \u001b[38;5;241m+\u001b[39m \u001b[38;5;241m2.\u001b[39m),\n\u001b[1;32m 6\u001b[0m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mval_acc\u001b[39m\u001b[38;5;124m'\u001b[39m: \u001b[38;5;241m1\u001b[39m \u001b[38;5;241m-\u001b[39m np\u001b[38;5;241m.\u001b[39mrandom\u001b[38;5;241m.\u001b[39mrand() \u001b[38;5;241m/\u001b[39m (i \u001b[38;5;241m+\u001b[39m \u001b[38;5;241m0.5\u001b[39m),\n\u001b[1;32m 7\u001b[0m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mloss\u001b[39m\u001b[38;5;124m'\u001b[39m: \u001b[38;5;241m1.\u001b[39m \u001b[38;5;241m/\u001b[39m (i \u001b[38;5;241m+\u001b[39m \u001b[38;5;241m2.\u001b[39m),\n\u001b[1;32m 8\u001b[0m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mval_loss\u001b[39m\u001b[38;5;124m'\u001b[39m: \u001b[38;5;241m1.\u001b[39m \u001b[38;5;241m/\u001b[39m (i \u001b[38;5;241m+\u001b[39m \u001b[38;5;241m0.5\u001b[39m)\n\u001b[1;32m 9\u001b[0m })\n", + "File \u001b[0;32m~/my_repos/livelossplot/livelossplot/plot_losses.py:55\u001b[0m, in \u001b[0;36mPlotLosses.__init__\u001b[0;34m(self, outputs, mode, figsize, **kwargs)\u001b[0m\n\u001b[1;32m 53\u001b[0m mode \u001b[38;5;241m=\u001b[39m get_mode()\n\u001b[1;32m 54\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m out \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moutputs:\n\u001b[0;32m---> 55\u001b[0m \u001b[43mout\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mset_output_mode\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmode\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 56\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m figsize \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(out, MatplotlibPlot):\n\u001b[1;32m 57\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mSetting figsize to \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mfigsize\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n", + "File \u001b[0;32m~/my_repos/livelossplot/livelossplot/outputs/base_output.py:18\u001b[0m, in \u001b[0;36mBaseOutput.set_output_mode\u001b[0;34m(self, mode)\u001b[0m\n\u001b[1;32m 16\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mset_output_mode\u001b[39m(\u001b[38;5;28mself\u001b[39m, mode: \u001b[38;5;28mstr\u001b[39m):\n\u001b[1;32m 17\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Some of output plugins needs to know target format\"\"\"\u001b[39;00m\n\u001b[0;32m---> 18\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m mode \u001b[38;5;129;01min\u001b[39;00m (\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mnotebook\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mscript\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 19\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_set_output_mode(mode)\n", + "\u001b[0;31mAssertionError\u001b[0m: " ] } ], @@ -149,7 +147,9 @@ "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" }, { diff --git a/examples/script.py b/examples/script.py new file mode 100644 index 0000000..31758e9 --- /dev/null +++ b/examples/script.py @@ -0,0 +1,19 @@ +# from livelossplot 0.5.6 + +from time import sleep +import numpy as np +from livelossplot import PlotLosses + +plotlosses = PlotLosses(mode="script") + +for i in range(10): + plotlosses.update( + { + "acc": 1 - np.random.rand() / (i + 2.0), + "val_acc": 1 - np.random.rand() / (i + 0.5), + "loss": 1.0 / (i + 2.0), + "val_loss": 1.0 / (i + 0.5), + } + ) + plotlosses.send() + sleep(0.5) diff --git a/livelossplot/outputs/matplotlib_plot.py b/livelossplot/outputs/matplotlib_plot.py index 8fc0867..0197acf 100644 --- a/livelossplot/outputs/matplotlib_plot.py +++ b/livelossplot/outputs/matplotlib_plot.py @@ -1,5 +1,5 @@ import math -from typing import Tuple, List, Dict, Optional, Callable +from typing import Tuple, List, Dict, Optional, Callable, Literal import warnings @@ -50,6 +50,7 @@ def __init__( self._before_plots = before_plots if before_plots else self._default_before_plots self._after_plots = after_plots if after_plots else self._default_after_plots self.figsize = figsize + self.output_mode: Literal['notebook', 'script'] = "notebook" def send(self, logger: MainLogger): """Draw figures with metrics and show""" @@ -110,7 +111,11 @@ def _default_after_plots(self, fig: plt.Figure): if self.figpath is not None: fig.savefig(self.figpath.format(i=self.file_idx)) self.file_idx += 1 - plt.show() + if self.output_mode == "script": + plt.draw() + plt.pause(0.1) + else: + plt.show() def _draw_metric_subplot(self, ax: plt.Axes, group_logs: Dict[str, List[LogItem]], group_name: str, x_label: str): """ @@ -139,3 +144,6 @@ def _not_inline_warning(self): "livelossplot requires inline plots.\nYour current backend is: {}" "\nRun in a Jupyter environment and execute '%matplotlib inline'.".format(backend) ) + + def _set_output_mode(self, mode: Literal['notebook', 'script']): + self.output_mode = mode diff --git a/livelossplot/plot_losses.py b/livelossplot/plot_losses.py index b87d48e..438a4e5 100644 --- a/livelossplot/plot_losses.py +++ b/livelossplot/plot_losses.py @@ -1,5 +1,5 @@ import warnings -from typing import Type, TypeVar, List, Union, Optional, Tuple +from typing import Type, TypeVar, List, Union, Optional, Tuple, Literal import livelossplot from livelossplot.main_logger import MainLogger @@ -9,6 +9,24 @@ BO = TypeVar('BO', bound=outputs.BaseOutput) +def get_mode() -> Literal['notebook', 'script']: + try: + from IPython import get_ipython + ipython = get_ipython() + if ipython is None: + return 'script' + name = ipython.__class__.__name__ + if name == "ZMQInteractiveShell" or name == "Shell": + # Shell is in Colab + return "notebook" + elif name == "TerminalInteractiveShell": + return "script" + print(f"Unknown IPython mode: {name}. Assuming notebook mode.") + return "notebook" + except ImportError: + return "script" + + class PlotLosses: """ Class collect metrics from the training engine and send it to plugins, when send is called @@ -16,7 +34,7 @@ class PlotLosses: def __init__( self, outputs: List[Union[Type[BO], str]] = ['MatplotlibPlot', 'ExtremaPrinter'], - mode: str = 'notebook', + mode: Optional[Literal['notebook', 'script']] = None, figsize: Optional[Tuple[int, int]] = None, **kwargs ): @@ -31,6 +49,8 @@ def __init__( """ self.logger = MainLogger(**kwargs) self.outputs = [getattr(livelossplot.outputs, out)() if isinstance(out, str) else out for out in outputs] + if mode is None: + mode = get_mode() for out in self.outputs: out.set_output_mode(mode) if figsize is not None and isinstance(out, MatplotlibPlot):