From 912264bfa706a7d49e85840752457a26f8b9a4d4 Mon Sep 17 00:00:00 2001 From: allegroai <> Date: Fri, 23 Oct 2020 23:45:41 +0300 Subject: [PATCH] Update examples --- .../Allegro_Trains_keras_TB_example.ipynb | 24 +- .../Allegro_Trains_matplotlib_example.ipynb | 170 ++++++------- .../Allegro_Trains_logging_example.ipynb | 226 +++++++++--------- 3 files changed, 213 insertions(+), 207 deletions(-) diff --git a/examples/frameworks/keras/Allegro_Trains_keras_TB_example.ipynb b/examples/frameworks/keras/Allegro_Trains_keras_TB_example.ipynb index 46b74655..b31a218b 100644 --- a/examples/frameworks/keras/Allegro_Trains_keras_TB_example.ipynb +++ b/examples/frameworks/keras/Allegro_Trains_keras_TB_example.ipynb @@ -7,11 +7,13 @@ "id": "wFJPLbY7w7Vj" }, "source": [ - "# Allegro Trains Keras with Tensorboard example\n", + "# Allegro Trains Keras with TensorBoard example\n", "\n", "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/allegroai/trains/blob/master/examples/frameworks/keras/Allegro_Trains_keras_TB_example.ipynb)\n", "\n", - "This tutorial introduce Trains with Keras and Tensorboard functionality. automatic logging model and Tensorboard outputs. You can find more frameworks examples [here](https://github.com/allegroai/trains/tree/master/examples/frameworks).\n" + "This example introduces Trains with Keras and TensorBoard functionality, including automatic logging, models, and TensorBoard outputs. You can find more frameworks examples [here](https://github.com/allegroai/trains/tree/master/examples/frameworks).\n", + "\n", + "Note: This example is based on the Keras `mnist_mlp.py` example.\n" ] }, { @@ -36,9 +38,9 @@ }, "source": [ "### Create a new task.\n", - "Task object should be provided `project_name` (the project name for the experiment) and `task_name` (the name of the experiment). A link to the newly generated task will be printed and the task will be updated real time in the Trains demo server.\n", + "To create a new Task object, call the `Task.init` method providing it with `project_name` (the project name for the experiment) and `task_name` (the name of the experiment). When `Task.init` executes, a link to the Web UI Results page for the newly generated Task will be printed, and the Task will be updated in real time in the Trains demo server.\n", "\n", - "You can read about task in the docs [here](https://allegro.ai/docs/task.html)" + "You can read about the `Task` class in the docs [here](https://allegro.ai/docs/task.html)." ] }, { @@ -64,16 +66,6 @@ "task = Task.init(project_name=\"Colab notebooks\", task_name=\"Keras with TensorBoard example\")\n" ] }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "GPLPiHQ1ygTg" - }, - "source": [ - "*Based on https://github.com/keras-team/keras/blob/master/examples/mnist_mlp.py" - ] - }, { "cell_type": "code", "execution_count": null, @@ -231,9 +223,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.4" + "version": "3.6.5" } }, "nbformat": 4, "nbformat_minor": 1 -} \ No newline at end of file +} diff --git a/examples/frameworks/matplotlib/Allegro_Trains_matplotlib_example.ipynb b/examples/frameworks/matplotlib/Allegro_Trains_matplotlib_example.ipynb index 7d9cef36..2e0ad4fb 100644 --- a/examples/frameworks/matplotlib/Allegro_Trains_matplotlib_example.ipynb +++ b/examples/frameworks/matplotlib/Allegro_Trains_matplotlib_example.ipynb @@ -1,67 +1,59 @@ { - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "name": "Allegro Trains matplotlib example.ipynb", - "provenance": [], - "collapsed_sections": [] - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3" - } - }, "cells": [ { "cell_type": "markdown", "metadata": { - "id": "NKas2cYws8F6", - "colab_type": "text" + "colab_type": "text", + "id": "NKas2cYws8F6" }, "source": [ "# Allegro Trains matplotlib example\n", "\n", "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/allegroai/trains/blob/master/examples/frameworks/matplotlib/Allegro_Trains_matplotlib_example.ipynb)\n", "\n", - "This tutorial introduce Trains with matplotlib functionality. You can find more frameworks examples [here](https://github.com/allegroai/trains/tree/master/examples/frameworks)." + "This example introduces Trains with matplotlib functionality. It also shows seaborn functionality. You can find more frameworks examples [here](https://github.com/allegroai/trains/tree/master/examples/frameworks).\n", + "\n", + "Note: This example is based on the Trains [matplotlib_example.py](https://github.com/allegroai/trains/blob/master/examples/frameworks/matplotlib/matplotlib_example.py) example." ] }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "72lCj7MJmRkQ", + "colab": {}, "colab_type": "code", - "colab": {} + "id": "72lCj7MJmRkQ" }, + "outputs": [], "source": [ "!pip install trains\n", "!pip install numpy\n", "!pip install seaborn" - ], - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "markdown", "metadata": { - "id": "b8jtq0iSt3-U", - "colab_type": "text" + "colab_type": "text", + "id": "b8jtq0iSt3-U" }, "source": [ - "### Create a new task.\n", - "Task object should be provided `project_name` (the project name for the experiment) and `task_name` (the name of the experiment). A link to the newly generated task will be printed and the task will be updated real time in the Trains demo server.\n", + "## Create a new task.\n", "\n", - "You can read about task in the docs [here](https://allegro.ai/docs/task.html)" + "To create a new Task object, call the `Task.init` method providing it with `project_name` (the project name for the experiment) and `task_name` (the name of the experiment). When `Task.init` executes, a link to the Web UI Results page for the newly generated Task will be printed, and the Task will be updated in real time in the Trains demo server.\n", + "\n", + "You can read about the `Task` class in the docs [here](https://allegro.ai/docs/task.html)." ] }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "ses67ulJkGPq", + "colab": {}, "colab_type": "code", - "colab": {} + "id": "ses67ulJkGPq" }, + "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", @@ -71,39 +63,29 @@ "\n", "# Start a new task\n", "task = Task.init(project_name=\"Colab notebooks\", task_name=\"Matplotlib example\")\n" - ], - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "whxX3Xjmy1PI", - "colab_type": "text" - }, - "source": [ - "This example was generated based on [trains matplotlib example](https://github.com/allegroai/trains/blob/master/examples/frameworks/matplotlib/matplotlib_example.py)" ] }, { "cell_type": "markdown", "metadata": { - "id": "T2l-0WvJt_yo", - "colab_type": "text" + "colab_type": "text", + "id": "T2l-0WvJt_yo" }, "source": [ - "### Matplotlib support\n", + "## Matplotlib support\n", "\n", - "Matplotlib plots are automatically logged. Data available in the task 'Results' section\n" + "Trains automatically logs Matplotlib plots. They appear in the Web UI Results tab.\n" ] }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "a-nOyg9xlxiR", + "colab": {}, "colab_type": "code", - "colab": {} + "id": "a-nOyg9xlxiR" }, + "outputs": [], "source": [ "# create plot\n", "N = 50\n", @@ -113,77 +95,77 @@ "area = (30 * np.random.rand(N))**2 # 0 to 15 point radii\n", "plt.scatter(x, y, s=area, c=colors, alpha=0.5)\n", "plt.show()\n" - ], - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "iV4BtqRFmi0N", + "colab": {}, "colab_type": "code", - "colab": {} + "id": "iV4BtqRFmi0N" }, + "outputs": [], "source": [ "# create another plot - with a name\n", "x = np.linspace(0, 10, 30)\n", "y = np.sin(x)\n", "plt.plot(x, y, 'o', color='black')\n", "plt.show()" - ], - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "markdown", "metadata": { - "id": "yKT5UjDk6DGB", - "colab_type": "text" + "colab_type": "text", + "id": "yKT5UjDk6DGB" }, "source": [ - "Notice imshow will cause the plot images to apear as Images in the debug sample section" + "By calling the `imshow` method, Trains automatically reports plot images in Results tab." ] }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "IVzUScalmio-", + "colab": {}, "colab_type": "code", - "colab": {} + "id": "IVzUScalmio-" }, + "outputs": [], "source": [ "# create unitlted image plot\n", "m = np.eye(256, 256, dtype=np.uint8)\n", "plt.imshow(m)\n", "plt.show()" - ], - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "mioKlXpimib1", + "colab": {}, "colab_type": "code", - "colab": {} + "id": "mioKlXpimib1" }, + "outputs": [], "source": [ "# create image plot - with a name\n", "m = np.eye(256, 256, dtype=np.uint8)\n", "plt.imshow(m)\n", "plt.title('Image Title')\n", "plt.show()" - ], - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "AE7Gbm3GfvvK", + "colab": {}, "colab_type": "code", - "colab": {} + "id": "AE7Gbm3GfvvK" }, + "outputs": [], "source": [ "# create plot with savefig\n", "N = 10\n", @@ -194,27 +176,27 @@ "plt.title('savefig Image')\n", "plt.scatter(x, y, s=area, c=colors, alpha=0.5)\n", "plt.savefig(\"plot.png\")" - ], - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "markdown", "metadata": { - "id": "jcRWq9Xc56fX", - "colab_type": "text" + "colab_type": "text", + "id": "jcRWq9Xc56fX" }, "source": [ - "Seaborn example:" + "## Seaborn support" ] }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "j-usk2d_mqS4", + "colab": {}, "colab_type": "code", - "colab": {} + "id": "j-usk2d_mqS4" }, + "outputs": [], "source": [ "sns.set(style=\"darkgrid\")\n", "# Load an example dataset with long-form data\n", @@ -224,9 +206,33 @@ " hue=\"region\", style=\"event\",\n", " data=fmri)\n", "plt.show()" - ], - "execution_count": null, - "outputs": [] + ] } - ] -} \ No newline at end of file + ], + "metadata": { + "colab": { + "collapsed_sections": [], + "name": "Allegro Trains matplotlib example.ipynb", + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "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.6.5" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/examples/reporting/Allegro_Trains_logging_example.ipynb b/examples/reporting/Allegro_Trains_logging_example.ipynb index 2780581c..6b32eb0d 100644 --- a/examples/reporting/Allegro_Trains_logging_example.ipynb +++ b/examples/reporting/Allegro_Trains_logging_example.ipynb @@ -1,83 +1,61 @@ { - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "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.6.5" - }, - "colab": { - "name": "Allegro Trains logging example.ipynb", - "provenance": [], - "collapsed_sections": [] - } - }, "cells": [ { "cell_type": "markdown", "metadata": { - "id": "RZiRah3QiR_G", - "colab_type": "text" + "colab_type": "text", + "id": "RZiRah3QiR_G" }, "source": [ "# Allegro Trains logging example\n", "\n", "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/allegroai/trains/blob/master/examples/reporting/Allegro_Trains_logging_example.ipynb)\n", "\n", - "This tutorial introduce [Trains](https://github.com/allegroai/trains) logger functionality. You can find more reporting examples [here](https://github.com/allegroai/trains/tree/master/examples/reporting)." + "This example introduces Trains [Logger](https://allegro.ai/docs/logger.html) functionality. Logger is the Trains console log and metric interface.\n", + "\n", + "You can find more reporting examples [here](https://github.com/allegroai/trains/tree/master/examples/reporting)." ] }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "RbESVEV0jl3c", + "colab": {}, "colab_type": "code", - "colab": {} + "id": "RbESVEV0jl3c" }, + "outputs": [], "source": [ "!pip install trains\n", "!pip install numpy" - ], - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "markdown", "metadata": { - "id": "8p9tkR5wue2x", - "colab_type": "text" + "colab_type": "text", + "id": "8p9tkR5wue2x" }, "source": [ - "### Create a new task\n", - "Create a new task and get the logger object for this task.\n", + "### Create a new Task\n", + "Create a new Task and get a Logger object for the Task.\n", "\n", - "Task object should be provided `project_name` (the project name for the experiment) and `task_name` (the name of the experiment).\n", - "A link to the newly generated task will be printed and the task will be updated real time in the Trains demo server.\n", + "To create a new Task object, call the `Task.init` method providing it with `project_name` (the project name for the experiment) and `task_name` (the name of the experiment). When `Task.init` executes, a link to the Web UI Results page for the newly generated Task will be printed, and the Task will be updated in real time in the Trains demo server.\n", "\n", - "Logger is the Trains console log and metric interface.\n", - "You can read about the logger in the [docs](https://allegro.ai/docs/logger.html)\n" + "You can read about the `Task` class in the docs [here](https://allegro.ai/docs/task.html).\n", + "\n", + "After the Task is created, get a Logger for it." ] }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "885DHN5SjsHy", + "colab": {}, "colab_type": "code", - "colab": {} + "id": "885DHN5SjsHy" }, + "outputs": [], "source": [ "import numpy as np\n", "\n", @@ -89,29 +67,28 @@ "# Get the task logger,\n", "# You can also call Task.current_task().get_logger() from anywhere in your code.\n", "logger = task.get_logger()" - ], - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "markdown", "metadata": { - "id": "SADmtLH8uwhw", - "colab_type": "text" + "colab_type": "text", + "id": "SADmtLH8uwhw" }, "source": [ "### Explicit scalar logging\n", - "Explicit scalar logging. Data available in the task 'Results' section.\n", - "For more [usage examples](https://allegro.ai/docs/logger.html#trains.logger.Logger.report_scalar)" + "Use the [Logger.report_scalar](https://allegro.ai/docs/logger.html#trains.logger.Logger.report_scalar) method to explicitly log scalars. Scalar plots appear in the Web UI, Results > Scalars tab." ] }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "E6YH4lNLjLs8", + "colab": {}, "colab_type": "code", - "colab": {} + "id": "E6YH4lNLjLs8" }, + "outputs": [], "source": [ "# report two scalar series on the same graph\n", "for i in range(10):\n", @@ -122,30 +99,31 @@ "for i in range(10):\n", " logger.report_scalar(\"graph A\", \"series A\", iteration=i, value=1./(i+1))\n", " logger.report_scalar(\"graph B\", \"series B\", iteration=i, value=10./(i+1))" - ], - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "markdown", "metadata": { - "id": "8iqvizEzwRtk", - "colab_type": "text" + "colab_type": "text", + "id": "8iqvizEzwRtk" }, "source": [ - "### Explicit histogram logging\n", - "Explicit histogram logging. Data available in the task 'Results' section.\n", - "You can report histograms, matrix, 3D scatter diagrams and surface.\n", - "For more examples check [here](https://allegro.ai/docs/logger.html#trains.logger.Logger.report_histogram)\n" + "### Explicit logging of other data\n", + "\n", + "You can log other data and report the data in a variety of plot types, including histograms, confusion matrices, 2D and 3D scatter diagrams, and surface diagrams. They appear in the Results > Plots tab.\n", + "\n", + "For information about the methods to report each type of plot, see the [Logger](https://allegro.ai/docs/logger.html) module.\n" ] }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "_rWW7HTYjLtK", + "colab": {}, "colab_type": "code", - "colab": {} + "id": "_rWW7HTYjLtK" }, + "outputs": [], "source": [ "iteration = 100\n", "\n", @@ -228,34 +206,40 @@ " yaxis=\"title y\",\n", " zaxis=\"title z\",\n", ")" - ], - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "markdown", "metadata": { - "id": "OZqPEaFRwcVY", - "colab_type": "text" + "colab_type": "text", + "id": "OZqPEaFRwcVY" }, "source": [ "### Explicit debug samples reporting\n", - "Explicit debug samples reporting. Data available in the task 'Results' section\n", "\n", - "We are using StorageManager to download a local copy of the files. \n", - "You can use the StorageManager immediately, you only need to provide the url. \n", - "Cache is enabled by default for all downloaded remote urls/files.\n", + "Explicitly report debug samples, including images, audio, and video." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Downloading the files\n", "\n", - "For more information, you can read about the storage manager [here](https://allegro.ai/docs/storage.html#trains.storage.manager.StorageManager)\n" + "We use StorageManager to download a local copy of the files. You can use it immediately. Just provide the URL. Cache is enabled by default for all downloaded remote URLs/files.\n", + "\n", + "For more information, you can read about the storage manager [here](https://allegro.ai/docs/storage_manager_storagemanager.html)." ] }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "s4rf0ap0jLtb", + "colab": {}, "colab_type": "code", - "colab": {} + "id": "s4rf0ap0jLtb" }, + "outputs": [], "source": [ "from trains.storage import StorageManager\n", "image_local_copy = StorageManager.get_local_copy(\n", @@ -278,28 +262,29 @@ ")\n", "\n", "print(\"Audio location: {}\".format(audio_local_copy))\n" - ], - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "markdown", "metadata": { - "id": "vydmi7HWw0gS", - "colab_type": "text" + "colab_type": "text", + "id": "vydmi7HWw0gS" }, "source": [ - "### Report images and media\n", - "Reporting the downloaded samples. Data available in the task 'Results' section.\n" + "#### Report images and media\n", + "\n", + "Use [Logger.report_image](https://allegro.ai/docs/logger.html?highlight=report_image#trains.logger.Logger.report_image) and [Logger.report_media](https://allegro.ai/docs/logger.html?highlight=report_media#trains.logger.Logger.report_media) to report the downloaded samples. The debug samples appear in the Results > Debug Samples tab." ] }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "MtEhbE4S_P66", + "colab": {}, "colab_type": "code", - "colab": {} + "id": "MtEhbE4S_P66" }, + "outputs": [], "source": [ "logger.report_image(\"image\", \"image from url\", iteration=100, local_path=image_local_copy)\n", "\n", @@ -321,62 +306,85 @@ "\n", "# reporting html from url to debug samples section\n", "logger.report_media(\"html\", \"url_html\", iteration=1, url=\"https://allegro.ai/docs/index.html\")" - ], - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "markdown", "metadata": { - "id": "uDrcRCJxxCQP", - "colab_type": "text" + "colab_type": "text", + "id": "uDrcRCJxxCQP" }, "source": [ "### Explicit text logging\n", - "Explicit text logging. Data available in the task 'Results' section.\n", - "For more examples check [here](https://allegro.ai/docs/logger.html?highlight=report_text#trains.logger.Logger.report_text)\n" + "Use [Logger.report_text](https://allegro.ai/docs/logger.html?highlight=report_text#trains.logger.Logger.report_text) to log text message. They appear in Results > Log." ] }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "a2UlIETAjLtk", + "colab": {}, "colab_type": "code", - "colab": {} + "id": "a2UlIETAjLtk" }, + "outputs": [], "source": [ "# report text\n", "logger.report_text(\"hello, this is plain text\")\n" - ], - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "markdown", "metadata": { - "id": "aNFDbjZ7xNco", - "colab_type": "text" + "colab_type": "text", + "id": "aNFDbjZ7xNco" }, "source": [ "### Flushing the reports\n", - "If flush is not called, reports are flushed in the background every couple of seconds, \n", - "and at the end of the process execution.\n", "\n", - "More information can be found [here](https://allegro.ai/docs/logger.html?highlight=report_text#trains.logger.Logger.flush)\n" + "Reports are flushed in the background every couple of seconds, and at the end of the process execution.\n", + "\n", + "Or, flush the Logger by calling [Logger.flush](https://allegro.ai/docs/logger.html?highlight=report_text#trains.logger.Logger.flush)." ] }, { "cell_type": "code", + "execution_count": null, "metadata": { - "id": "SSyGUskJjLtr", + "colab": {}, "colab_type": "code", - "colab": {} + "id": "SSyGUskJjLtr" }, + "outputs": [], "source": [ "logger.flush()" - ], - "execution_count": null, - "outputs": [] + ] } - ] -} \ No newline at end of file + ], + "metadata": { + "colab": { + "collapsed_sections": [], + "name": "Allegro Trains logging example.ipynb", + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "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.6.5" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +}