Last active
April 14, 2021 05:50
-
-
Save ariG23498/dd5c0449166beac5e2bb68a11809d1a3 to your computer and use it in GitHub Desktop.
GH-2063
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"nbformat": 4, | |
"nbformat_minor": 0, | |
"metadata": { | |
"colab": { | |
"name": "scratchpad", | |
"provenance": [], | |
"include_colab_link": true | |
}, | |
"kernelspec": { | |
"display_name": "Python 3", | |
"name": "python3" | |
}, | |
"widgets": { | |
"application/vnd.jupyter.widget-state+json": { | |
"28b3127dec4a4ede9187c234e4b12f86": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "VBoxModel", | |
"state": { | |
"_view_name": "VBoxView", | |
"_dom_classes": [], | |
"_model_name": "VBoxModel", | |
"_view_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"_view_count": null, | |
"_view_module_version": "1.5.0", | |
"box_style": "", | |
"layout": "IPY_MODEL_c07ea3420fe94ed28a3464749f6b40fb", | |
"_model_module": "@jupyter-widgets/controls", | |
"children": [ | |
"IPY_MODEL_c61aacb43dbd4722b6681a1ef7674643", | |
"IPY_MODEL_4ce7ec97ac474692b8c0955827d3cc9d" | |
] | |
} | |
}, | |
"c07ea3420fe94ed28a3464749f6b40fb": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"state": { | |
"_view_name": "LayoutView", | |
"grid_template_rows": null, | |
"right": null, | |
"justify_content": null, | |
"_view_module": "@jupyter-widgets/base", | |
"overflow": null, | |
"_model_module_version": "1.2.0", | |
"_view_count": null, | |
"flex_flow": null, | |
"width": null, | |
"min_width": null, | |
"border": null, | |
"align_items": null, | |
"bottom": null, | |
"_model_module": "@jupyter-widgets/base", | |
"top": null, | |
"grid_column": null, | |
"overflow_y": null, | |
"overflow_x": null, | |
"grid_auto_flow": null, | |
"grid_area": null, | |
"grid_template_columns": null, | |
"flex": null, | |
"_model_name": "LayoutModel", | |
"justify_items": null, | |
"grid_row": null, | |
"max_height": null, | |
"align_content": null, | |
"visibility": null, | |
"align_self": null, | |
"height": null, | |
"min_height": null, | |
"padding": null, | |
"grid_auto_rows": null, | |
"grid_gap": null, | |
"max_width": null, | |
"order": null, | |
"_view_module_version": "1.2.0", | |
"grid_template_areas": null, | |
"object_position": null, | |
"object_fit": null, | |
"grid_auto_columns": null, | |
"margin": null, | |
"display": null, | |
"left": null | |
} | |
}, | |
"c61aacb43dbd4722b6681a1ef7674643": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "LabelModel", | |
"state": { | |
"_view_name": "LabelView", | |
"style": "IPY_MODEL_9f9dbd062e8646169dc24a88d0cbfdff", | |
"_dom_classes": [], | |
"description": "", | |
"_model_name": "LabelModel", | |
"placeholder": "", | |
"_view_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"value": " 0.02MB of 0.02MB uploaded (0.00MB deduped)\r", | |
"_view_count": null, | |
"_view_module_version": "1.5.0", | |
"description_tooltip": null, | |
"_model_module": "@jupyter-widgets/controls", | |
"layout": "IPY_MODEL_a07d3d6129ec4a36b1cb7925876a0a8a" | |
} | |
}, | |
"4ce7ec97ac474692b8c0955827d3cc9d": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "FloatProgressModel", | |
"state": { | |
"_view_name": "ProgressView", | |
"style": "IPY_MODEL_4e1f39bb0993435ba7eb15df243fb0ff", | |
"_dom_classes": [], | |
"description": "", | |
"_model_name": "FloatProgressModel", | |
"bar_style": "", | |
"max": 1, | |
"_view_module": "@jupyter-widgets/controls", | |
"_model_module_version": "1.5.0", | |
"value": 1, | |
"_view_count": null, | |
"_view_module_version": "1.5.0", | |
"orientation": "horizontal", | |
"min": 0, | |
"description_tooltip": null, | |
"_model_module": "@jupyter-widgets/controls", | |
"layout": "IPY_MODEL_763fc2e8a22c4088b4bd8e9a53f055f6" | |
} | |
}, | |
"9f9dbd062e8646169dc24a88d0cbfdff": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "DescriptionStyleModel", | |
"state": { | |
"_view_name": "StyleView", | |
"_model_name": "DescriptionStyleModel", | |
"description_width": "", | |
"_view_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.5.0", | |
"_view_count": null, | |
"_view_module_version": "1.2.0", | |
"_model_module": "@jupyter-widgets/controls" | |
} | |
}, | |
"a07d3d6129ec4a36b1cb7925876a0a8a": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"state": { | |
"_view_name": "LayoutView", | |
"grid_template_rows": null, | |
"right": null, | |
"justify_content": null, | |
"_view_module": "@jupyter-widgets/base", | |
"overflow": null, | |
"_model_module_version": "1.2.0", | |
"_view_count": null, | |
"flex_flow": null, | |
"width": null, | |
"min_width": null, | |
"border": null, | |
"align_items": null, | |
"bottom": null, | |
"_model_module": "@jupyter-widgets/base", | |
"top": null, | |
"grid_column": null, | |
"overflow_y": null, | |
"overflow_x": null, | |
"grid_auto_flow": null, | |
"grid_area": null, | |
"grid_template_columns": null, | |
"flex": null, | |
"_model_name": "LayoutModel", | |
"justify_items": null, | |
"grid_row": null, | |
"max_height": null, | |
"align_content": null, | |
"visibility": null, | |
"align_self": null, | |
"height": null, | |
"min_height": null, | |
"padding": null, | |
"grid_auto_rows": null, | |
"grid_gap": null, | |
"max_width": null, | |
"order": null, | |
"_view_module_version": "1.2.0", | |
"grid_template_areas": null, | |
"object_position": null, | |
"object_fit": null, | |
"grid_auto_columns": null, | |
"margin": null, | |
"display": null, | |
"left": null | |
} | |
}, | |
"4e1f39bb0993435ba7eb15df243fb0ff": { | |
"model_module": "@jupyter-widgets/controls", | |
"model_name": "ProgressStyleModel", | |
"state": { | |
"_view_name": "StyleView", | |
"_model_name": "ProgressStyleModel", | |
"description_width": "", | |
"_view_module": "@jupyter-widgets/base", | |
"_model_module_version": "1.5.0", | |
"_view_count": null, | |
"_view_module_version": "1.2.0", | |
"bar_color": null, | |
"_model_module": "@jupyter-widgets/controls" | |
} | |
}, | |
"763fc2e8a22c4088b4bd8e9a53f055f6": { | |
"model_module": "@jupyter-widgets/base", | |
"model_name": "LayoutModel", | |
"state": { | |
"_view_name": "LayoutView", | |
"grid_template_rows": null, | |
"right": null, | |
"justify_content": null, | |
"_view_module": "@jupyter-widgets/base", | |
"overflow": null, | |
"_model_module_version": "1.2.0", | |
"_view_count": null, | |
"flex_flow": null, | |
"width": null, | |
"min_width": null, | |
"border": null, | |
"align_items": null, | |
"bottom": null, | |
"_model_module": "@jupyter-widgets/base", | |
"top": null, | |
"grid_column": null, | |
"overflow_y": null, | |
"overflow_x": null, | |
"grid_auto_flow": null, | |
"grid_area": null, | |
"grid_template_columns": null, | |
"flex": null, | |
"_model_name": "LayoutModel", | |
"justify_items": null, | |
"grid_row": null, | |
"max_height": null, | |
"align_content": null, | |
"visibility": null, | |
"align_self": null, | |
"height": null, | |
"min_height": null, | |
"padding": null, | |
"grid_auto_rows": null, | |
"grid_gap": null, | |
"max_width": null, | |
"order": null, | |
"_view_module_version": "1.2.0", | |
"grid_template_areas": null, | |
"object_position": null, | |
"object_fit": null, | |
"grid_auto_columns": null, | |
"margin": null, | |
"display": null, | |
"left": null | |
} | |
} | |
} | |
} | |
}, | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "view-in-github", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"<a href=\"https://colab.research.google.com/gist/ariG23498/dd5c0449166beac5e2bb68a11809d1a3/scratchpad.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "lIYdn1woOS1n", | |
"outputId": "5ee0baaf-c73f-4db1-ec2d-036a8a6edede" | |
}, | |
"source": [ | |
"! pip install -qqq wandb\n", | |
"! pip install -qqq pytorch-lightning" | |
], | |
"execution_count": 1, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"\u001b[K |████████████████████████████████| 2.1MB 9.6MB/s \n", | |
"\u001b[K |████████████████████████████████| 163kB 33.9MB/s \n", | |
"\u001b[K |████████████████████████████████| 133kB 56.6MB/s \n", | |
"\u001b[K |████████████████████████████████| 102kB 7.0MB/s \n", | |
"\u001b[K |████████████████████████████████| 71kB 5.1MB/s \n", | |
"\u001b[?25h Building wheel for subprocess32 (setup.py) ... \u001b[?25l\u001b[?25hdone\n", | |
" Building wheel for pathtools (setup.py) ... \u001b[?25l\u001b[?25hdone\n", | |
"\u001b[K |████████████████████████████████| 839kB 13.1MB/s \n", | |
"\u001b[K |████████████████████████████████| 184kB 60.4MB/s \n", | |
"\u001b[K |████████████████████████████████| 829kB 56.5MB/s \n", | |
"\u001b[K |████████████████████████████████| 112kB 44.5MB/s \n", | |
"\u001b[K |████████████████████████████████| 276kB 27.8MB/s \n", | |
"\u001b[K |████████████████████████████████| 1.3MB 45.6MB/s \n", | |
"\u001b[K |████████████████████████████████| 143kB 51.1MB/s \n", | |
"\u001b[K |████████████████████████████████| 296kB 49.7MB/s \n", | |
"\u001b[?25h Building wheel for future (setup.py) ... \u001b[?25l\u001b[?25hdone\n", | |
" Building wheel for PyYAML (setup.py) ... \u001b[?25l\u001b[?25hdone\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "8qsTB5TYv6KO" | |
}, | |
"source": [ | |
"# Weights & Biases\n", | |
"import wandb\n", | |
"from pytorch_lightning.loggers import WandbLogger\n", | |
"import matplotlib.pyplot as plt\n", | |
"import numpy as np" | |
], | |
"execution_count": 2, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 517 | |
}, | |
"id": "JuMC1CbZ22uZ", | |
"outputId": "c870ef82-104f-419e-bb9a-2cb0adec19e4" | |
}, | |
"source": [ | |
"wandb_logger = WandbLogger(project='GH-2063',\n", | |
" entity=\"repro\",\n", | |
" name=\"baseline\",\n", | |
" notes=\"Do as done in the Github\")\n", | |
"\n", | |
"fig = plt.figure()\n", | |
"\n", | |
"wandb_logger.experiment.log({'examples': [fig]})" | |
], | |
"execution_count": 3, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" window._wandbApiKey = new Promise((resolve, reject) => {\n", | |
" function loadScript(url) {\n", | |
" return new Promise(function(resolve, reject) {\n", | |
" let newScript = document.createElement(\"script\");\n", | |
" newScript.onerror = reject;\n", | |
" newScript.onload = resolve;\n", | |
" document.body.appendChild(newScript);\n", | |
" newScript.src = url;\n", | |
" });\n", | |
" }\n", | |
" loadScript(\"https://cdn.jsdelivr.net/npm/postmate/build/postmate.min.js\").then(() => {\n", | |
" const iframe = document.createElement('iframe')\n", | |
" iframe.style.cssText = \"width:0;height:0;border:none\"\n", | |
" document.body.appendChild(iframe)\n", | |
" const handshake = new Postmate({\n", | |
" container: iframe,\n", | |
" url: 'https://wandb.ai/authorize'\n", | |
" });\n", | |
" const timeout = setTimeout(() => reject(\"Couldn't auto authenticate\"), 5000)\n", | |
" handshake.then(function(child) {\n", | |
" child.on('authorize', data => {\n", | |
" clearTimeout(timeout)\n", | |
" resolve(data)\n", | |
" });\n", | |
" });\n", | |
" })\n", | |
" });\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
}, | |
{ | |
"output_type": "stream", | |
"text": [ | |
"\u001b[34m\u001b[1mwandb\u001b[0m: Appending key for api.wandb.ai to your netrc file: /root/.netrc\n" | |
], | |
"name": "stderr" | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/html": [ | |
"\n", | |
" Tracking run with wandb version 0.10.26<br/>\n", | |
" Syncing run <strong style=\"color:#cdcd00\">baseline</strong> to <a href=\"https://wandb.ai\" target=\"_blank\">Weights & Biases</a> <a href=\"https://docs.wandb.com/integrations/jupyter.html\" target=\"_blank\">(Documentation)</a>.<br/>\n", | |
" Project page: <a href=\"https://wandb.ai/repro/GH-2063\" target=\"_blank\">https://wandb.ai/repro/GH-2063</a><br/>\n", | |
" Run page: <a href=\"https://wandb.ai/repro/GH-2063/runs/t3yt8qgy\" target=\"_blank\">https://wandb.ai/repro/GH-2063/runs/t3yt8qgy</a><br/>\n", | |
" Run data is saved locally in <code>/content/wandb/run-20210414_054253-t3yt8qgy</code><br/><br/>\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.HTML object>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
}, | |
{ | |
"output_type": "error", | |
"ename": "TypeError", | |
"evalue": "ignored", | |
"traceback": [ | |
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", | |
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", | |
"\u001b[0;32m<ipython-input-3-372e38f04015>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0mfig\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfigure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 8\u001b[0;31m \u001b[0mwandb_logger\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexperiment\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlog\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0;34m'examples'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 9\u001b[0m \u001b[0mwandb_logger\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexperiment\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfinish\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_run.py\u001b[0m in \u001b[0;36mlog\u001b[0;34m(self, data, step, commit, sync)\u001b[0m\n\u001b[1;32m 1053\u001b[0m \u001b[0mcommit\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1054\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcommit\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1055\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhistory\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_row_add\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1056\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1057\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhistory\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_row_update\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_history.py\u001b[0m in \u001b[0;36m_row_add\u001b[0;34m(self, row)\u001b[0m\n\u001b[1;32m 42\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_row_add\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrow\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 43\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrow\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 44\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_flush\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 45\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_step\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 46\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_history.py\u001b[0m in \u001b[0;36m_flush\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 57\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"_timestamp\"\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"_timestamp\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtime\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtime\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 58\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_callback\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 59\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_callback\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrow\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstep\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_step\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 60\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_run.py\u001b[0m in \u001b[0;36m_history_callback\u001b[0;34m(self, row, step)\u001b[0m\n\u001b[1;32m 804\u001b[0m \u001b[0mnot_using_tensorboard\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mwandb\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpatched\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"tensorboard\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 805\u001b[0m self._backend.interface.publish_history(\n\u001b[0;32m--> 806\u001b[0;31m \u001b[0mrow\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstep\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpublish_step\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnot_using_tensorboard\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 807\u001b[0m )\n\u001b[1;32m 808\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/wandb/sdk/interface/interface.py\u001b[0m in \u001b[0;36mpublish_history\u001b[0;34m(self, data, step, run, publish_step)\u001b[0m\n\u001b[1;32m 224\u001b[0m \u001b[0mitem\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mhistory\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitem\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 225\u001b[0m \u001b[0mitem\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkey\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mk\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 226\u001b[0;31m \u001b[0mitem\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalue_json\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mjson_dumps_safer_history\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# type: ignore\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 227\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_publish_history\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhistory\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 228\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/wandb/util.py\u001b[0m in \u001b[0;36mjson_dumps_safer_history\u001b[0;34m(obj, **kwargs)\u001b[0m\n\u001b[1;32m 653\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mjson_dumps_safer_history\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 654\u001b[0m \u001b[0;34m\"\"\"Convert obj to json, with some extra encodable types, including histograms\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 655\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mjson\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdumps\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mWandBHistoryJSONEncoder\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 656\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 657\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/lib/python3.7/json/__init__.py\u001b[0m in \u001b[0;36mdumps\u001b[0;34m(obj, skipkeys, ensure_ascii, check_circular, allow_nan, cls, indent, separators, default, sort_keys, **kw)\u001b[0m\n\u001b[1;32m 236\u001b[0m \u001b[0mcheck_circular\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcheck_circular\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mallow_nan\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mallow_nan\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindent\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mindent\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 237\u001b[0m \u001b[0mseparators\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mseparators\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdefault\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdefault\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msort_keys\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msort_keys\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 238\u001b[0;31m **kw).encode(obj)\n\u001b[0m\u001b[1;32m 239\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 240\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/lib/python3.7/json/encoder.py\u001b[0m in \u001b[0;36mencode\u001b[0;34m(self, o)\u001b[0m\n\u001b[1;32m 197\u001b[0m \u001b[0;31m# exceptions aren't as detailed. The list call should be roughly\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 198\u001b[0m \u001b[0;31m# equivalent to the PySequence_Fast that ''.join() would do.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 199\u001b[0;31m \u001b[0mchunks\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0miterencode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mo\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_one_shot\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 200\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mchunks\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mlist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtuple\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 201\u001b[0m \u001b[0mchunks\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mchunks\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/lib/python3.7/json/encoder.py\u001b[0m in \u001b[0;36miterencode\u001b[0;34m(self, o, _one_shot)\u001b[0m\n\u001b[1;32m 255\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkey_separator\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitem_separator\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msort_keys\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 256\u001b[0m self.skipkeys, _one_shot)\n\u001b[0;32m--> 257\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_iterencode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mo\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 258\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 259\u001b[0m def _make_iterencode(markers, _default, _encoder, _indent, _floatstr,\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/wandb/util.py\u001b[0m in \u001b[0;36mdefault\u001b[0;34m(self, obj)\u001b[0m\n\u001b[1;32m 620\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mconverted\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 621\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 622\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mjson\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mJSONEncoder\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdefault\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 623\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 624\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/lib/python3.7/json/encoder.py\u001b[0m in \u001b[0;36mdefault\u001b[0;34m(self, o)\u001b[0m\n\u001b[1;32m 177\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 178\u001b[0m \"\"\"\n\u001b[0;32m--> 179\u001b[0;31m raise TypeError(f'Object of type {o.__class__.__name__} '\n\u001b[0m\u001b[1;32m 180\u001b[0m f'is not JSON serializable')\n\u001b[1;32m 181\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;31mTypeError\u001b[0m: Object of type Figure is not JSON serializable" | |
] | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"<Figure size 432x288 with 0 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "6oEhPpXc56G_", | |
"outputId": "169b2609-d6c6-4156-e2fe-a18163cdb046" | |
}, | |
"source": [ | |
"wandb_logger.experiment.finish()" | |
], | |
"execution_count": 5, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"Problem finishing run\n", | |
"Traceback (most recent call last):\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_run.py\", line 1502, in _atexit_cleanup\n", | |
" self._on_finish()\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_run.py\", line 1638, in _on_finish\n", | |
" self.history._flush()\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_history.py\", line 59, in _flush\n", | |
" self._callback(row=self._data, step=self._step)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_run.py\", line 806, in _history_callback\n", | |
" row, step, publish_step=not_using_tensorboard\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/interface/interface.py\", line 217, in publish_history\n", | |
" data = data_types.history_dict_to_json(run, data, step=step)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/data_types.py\", line 2060, in history_dict_to_json\n", | |
" payload[key] = val_to_json(run, key, val, namespace=step)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/data_types.py\", line 2088, in val_to_json\n", | |
" val = Plotly.make_plot_media(val)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/data_types.py\", line 2010, in make_plot_media\n", | |
" val = util.matplotlib_to_plotly(val)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/util.py\", line 414, in matplotlib_to_plotly\n", | |
" return tools.mpl_to_plotly(obj)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/tools.py\", line 112, in mpl_to_plotly\n", | |
" matplotlylib.Exporter(renderer).run(fig)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mplexporter/exporter.py\", line 51, in run\n", | |
" self.crawl_fig(fig)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mplexporter/exporter.py\", line 116, in crawl_fig\n", | |
" props=utils.get_figure_properties(fig)):\n", | |
" File \"/usr/lib/python3.7/contextlib.py\", line 112, in __enter__\n", | |
" return next(self.gen)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mplexporter/renderers/base.py\", line 45, in draw_figure\n", | |
" self.open_figure(fig=fig, props=props)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/renderer.py\", line 90, in open_figure\n", | |
" self.mpl_x_bounds, self.mpl_y_bounds = mpltools.get_axes_bounds(fig)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mpltools.py\", line 265, in get_axes_bounds\n", | |
" x_min, y_min, x_max, y_max = min(x_min), min(y_min), max(x_max), max(y_max)\n", | |
"ValueError: min() arg is an empty sequence\n", | |
"\u001b[34m\u001b[1mwandb\u001b[0m: \u001b[32m\u001b[41mERROR\u001b[0m Problem finishing run\n", | |
"Traceback (most recent call last):\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_run.py\", line 1502, in _atexit_cleanup\n", | |
" self._on_finish()\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_run.py\", line 1638, in _on_finish\n", | |
" self.history._flush()\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_history.py\", line 59, in _flush\n", | |
" self._callback(row=self._data, step=self._step)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_run.py\", line 806, in _history_callback\n", | |
" row, step, publish_step=not_using_tensorboard\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/interface/interface.py\", line 217, in publish_history\n", | |
" data = data_types.history_dict_to_json(run, data, step=step)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/data_types.py\", line 2060, in history_dict_to_json\n", | |
" payload[key] = val_to_json(run, key, val, namespace=step)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/data_types.py\", line 2088, in val_to_json\n", | |
" val = Plotly.make_plot_media(val)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/data_types.py\", line 2010, in make_plot_media\n", | |
" val = util.matplotlib_to_plotly(val)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/util.py\", line 414, in matplotlib_to_plotly\n", | |
" return tools.mpl_to_plotly(obj)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/tools.py\", line 112, in mpl_to_plotly\n", | |
" matplotlylib.Exporter(renderer).run(fig)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mplexporter/exporter.py\", line 51, in run\n", | |
" self.crawl_fig(fig)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mplexporter/exporter.py\", line 116, in crawl_fig\n", | |
" props=utils.get_figure_properties(fig)):\n", | |
" File \"/usr/lib/python3.7/contextlib.py\", line 112, in __enter__\n", | |
" return next(self.gen)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mplexporter/renderers/base.py\", line 45, in draw_figure\n", | |
" self.open_figure(fig=fig, props=props)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/renderer.py\", line 90, in open_figure\n", | |
" self.mpl_x_bounds, self.mpl_y_bounds = mpltools.get_axes_bounds(fig)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mpltools.py\", line 265, in get_axes_bounds\n", | |
" x_min, y_min, x_max, y_max = min(x_min), min(y_min), max(x_max), max(y_max)\n", | |
"ValueError: min() arg is an empty sequence\n" | |
], | |
"name": "stderr" | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 483 | |
}, | |
"id": "-ZsnjxVs22jh", | |
"outputId": "7a661af4-75ec-4872-ef8a-84200b3eb392" | |
}, | |
"source": [ | |
"wandb_logger = WandbLogger(project='GH-2063',\n", | |
" entity=\"repro\",\n", | |
" name=\"no_list\",\n", | |
" notes=\"Remove the list and pass the figure\")\n", | |
"\n", | |
"fig = plt.figure()\n", | |
"\n", | |
"wandb_logger.experiment.log({'examples': fig})" | |
], | |
"execution_count": 6, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"\u001b[34m\u001b[1mwandb\u001b[0m: Currently logged in as: \u001b[33marig23498\u001b[0m (use `wandb login --relogin` to force relogin)\n" | |
], | |
"name": "stderr" | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/html": [ | |
"\n", | |
" Tracking run with wandb version 0.10.26<br/>\n", | |
" Syncing run <strong style=\"color:#cdcd00\">no_list</strong> to <a href=\"https://wandb.ai\" target=\"_blank\">Weights & Biases</a> <a href=\"https://docs.wandb.com/integrations/jupyter.html\" target=\"_blank\">(Documentation)</a>.<br/>\n", | |
" Project page: <a href=\"https://wandb.ai/repro/GH-2063\" target=\"_blank\">https://wandb.ai/repro/GH-2063</a><br/>\n", | |
" Run page: <a href=\"https://wandb.ai/repro/GH-2063/runs/2ticlzuk\" target=\"_blank\">https://wandb.ai/repro/GH-2063/runs/2ticlzuk</a><br/>\n", | |
" Run data is saved locally in <code>/content/wandb/run-20210414_054332-2ticlzuk</code><br/><br/>\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.HTML object>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
}, | |
{ | |
"output_type": "error", | |
"ename": "ValueError", | |
"evalue": "ignored", | |
"traceback": [ | |
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", | |
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", | |
"\u001b[0;32m<ipython-input-6-ec3607ce6b70>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0mfig\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfigure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 8\u001b[0;31m \u001b[0mwandb_logger\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexperiment\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlog\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0;34m'examples'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 9\u001b[0m \u001b[0mwandb_logger\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexperiment\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfinish\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_run.py\u001b[0m in \u001b[0;36mlog\u001b[0;34m(self, data, step, commit, sync)\u001b[0m\n\u001b[1;32m 1053\u001b[0m \u001b[0mcommit\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1054\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcommit\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1055\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhistory\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_row_add\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1056\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1057\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhistory\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_row_update\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_history.py\u001b[0m in \u001b[0;36m_row_add\u001b[0;34m(self, row)\u001b[0m\n\u001b[1;32m 42\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_row_add\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrow\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 43\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrow\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 44\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_flush\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 45\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_step\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 46\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_history.py\u001b[0m in \u001b[0;36m_flush\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 57\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"_timestamp\"\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"_timestamp\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtime\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtime\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 58\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_callback\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 59\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_callback\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrow\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstep\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_step\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 60\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_run.py\u001b[0m in \u001b[0;36m_history_callback\u001b[0;34m(self, row, step)\u001b[0m\n\u001b[1;32m 804\u001b[0m \u001b[0mnot_using_tensorboard\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mwandb\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpatched\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"tensorboard\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 805\u001b[0m self._backend.interface.publish_history(\n\u001b[0;32m--> 806\u001b[0;31m \u001b[0mrow\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstep\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpublish_step\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnot_using_tensorboard\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 807\u001b[0m )\n\u001b[1;32m 808\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/wandb/sdk/interface/interface.py\u001b[0m in \u001b[0;36mpublish_history\u001b[0;34m(self, data, step, run, publish_step)\u001b[0m\n\u001b[1;32m 215\u001b[0m ) -> None:\n\u001b[1;32m 216\u001b[0m \u001b[0mrun\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mrun\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_run\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 217\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata_types\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhistory_dict_to_json\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstep\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mstep\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 218\u001b[0m \u001b[0mhistory\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpb\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mHistoryRecord\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 219\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mpublish_step\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/wandb/sdk/data_types.py\u001b[0m in \u001b[0;36mhistory_dict_to_json\u001b[0;34m(run, payload, step)\u001b[0m\n\u001b[1;32m 2058\u001b[0m \u001b[0mpayload\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mhistory_dict_to_json\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mval\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstep\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mstep\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2059\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2060\u001b[0;31m \u001b[0mpayload\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mval_to_json\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mval\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnamespace\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mstep\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2061\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2062\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mpayload\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/wandb/sdk/data_types.py\u001b[0m in \u001b[0;36mval_to_json\u001b[0;34m(run, key, val, namespace)\u001b[0m\n\u001b[1;32m 2086\u001b[0m )\n\u001b[1;32m 2087\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mutil\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_matplotlib_typename\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtypename\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mutil\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_plotly_typename\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtypename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2088\u001b[0;31m \u001b[0mval\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mPlotly\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmake_plot_media\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mval\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2089\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mval\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSixSequence\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mall\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mWBValue\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mv\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mval\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2090\u001b[0m \u001b[0;32massert\u001b[0m \u001b[0mrun\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/wandb/sdk/data_types.py\u001b[0m in \u001b[0;36mmake_plot_media\u001b[0;34m(cls, val)\u001b[0m\n\u001b[1;32m 2008\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mutil\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmatplotlib_contains_images\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mval\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2009\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mImage\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mval\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2010\u001b[0;31m \u001b[0mval\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mutil\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmatplotlib_to_plotly\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mval\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2011\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mval\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2012\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/wandb/util.py\u001b[0m in \u001b[0;36mmatplotlib_to_plotly\u001b[0;34m(obj)\u001b[0m\n\u001b[1;32m 412\u001b[0m \u001b[0mrequired\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"plotly is required to log interactive plots, install with: pip install plotly or convert the plot to an image with `wandb.Image(plt)`\"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 413\u001b[0m )\n\u001b[0;32m--> 414\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mtools\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmpl_to_plotly\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 415\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 416\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/plotly/tools.py\u001b[0m in \u001b[0;36mmpl_to_plotly\u001b[0;34m(fig, resize, strip_style, verbose)\u001b[0m\n\u001b[1;32m 110\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mmatplotlylib\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 111\u001b[0m \u001b[0mrenderer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmatplotlylib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mPlotlyRenderer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 112\u001b[0;31m \u001b[0mmatplotlylib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mExporter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 113\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mresize\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 114\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mresize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mplexporter/exporter.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self, fig)\u001b[0m\n\u001b[1;32m 49\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mmatplotlib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpyplot\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 50\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 51\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcrawl_fig\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 52\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 53\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mstaticmethod\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mplexporter/exporter.py\u001b[0m in \u001b[0;36mcrawl_fig\u001b[0;34m(self, fig)\u001b[0m\n\u001b[1;32m 114\u001b[0m \u001b[0;34m\"\"\"Crawl the figure and process all axes\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 115\u001b[0m with self.renderer.draw_figure(fig=fig,\n\u001b[0;32m--> 116\u001b[0;31m props=utils.get_figure_properties(fig)):\n\u001b[0m\u001b[1;32m 117\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0max\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maxes\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 118\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcrawl_ax\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/lib/python3.7/contextlib.py\u001b[0m in \u001b[0;36m__enter__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 110\u001b[0m \u001b[0;32mdel\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 111\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 112\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mnext\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgen\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 113\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mStopIteration\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 114\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"generator didn't yield\"\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mplexporter/renderers/base.py\u001b[0m in \u001b[0;36mdraw_figure\u001b[0;34m(self, fig, props)\u001b[0m\n\u001b[1;32m 43\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_current_fig\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 44\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_fig_props\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprops\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 45\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen_figure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mprops\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mprops\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 46\u001b[0m \u001b[0;32myield\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 47\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclose_figure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/renderer.py\u001b[0m in \u001b[0;36mopen_figure\u001b[0;34m(self, fig, props)\u001b[0m\n\u001b[1;32m 88\u001b[0m \u001b[0mhovermode\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"closest\"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 89\u001b[0m )\n\u001b[0;32m---> 90\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmpl_x_bounds\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmpl_y_bounds\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmpltools\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_axes_bounds\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 91\u001b[0m margin = go.layout.Margin(\n\u001b[1;32m 92\u001b[0m \u001b[0ml\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmpl_x_bounds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplotly_fig\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"layout\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"width\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mpltools.py\u001b[0m in \u001b[0;36mget_axes_bounds\u001b[0;34m(fig)\u001b[0m\n\u001b[1;32m 263\u001b[0m \u001b[0my_min\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbounds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 264\u001b[0m \u001b[0my_max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbounds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mbounds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m3\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 265\u001b[0;31m \u001b[0mx_min\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_min\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx_max\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_max\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx_min\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my_min\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmax\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx_max\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmax\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my_max\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 266\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mx_min\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx_max\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0my_min\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_max\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 267\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;31mValueError\u001b[0m: min() arg is an empty sequence" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "l0FHz89u6Bpo", | |
"outputId": "b6e70fc9-1a28-4d1e-80a0-4f9014706727" | |
}, | |
"source": [ | |
"wandb_logger.experiment.finish()" | |
], | |
"execution_count": 7, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"Problem finishing run\n", | |
"Traceback (most recent call last):\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_run.py\", line 1502, in _atexit_cleanup\n", | |
" self._on_finish()\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_run.py\", line 1638, in _on_finish\n", | |
" self.history._flush()\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_history.py\", line 59, in _flush\n", | |
" self._callback(row=self._data, step=self._step)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_run.py\", line 806, in _history_callback\n", | |
" row, step, publish_step=not_using_tensorboard\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/interface/interface.py\", line 217, in publish_history\n", | |
" data = data_types.history_dict_to_json(run, data, step=step)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/data_types.py\", line 2060, in history_dict_to_json\n", | |
" payload[key] = val_to_json(run, key, val, namespace=step)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/data_types.py\", line 2088, in val_to_json\n", | |
" val = Plotly.make_plot_media(val)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/data_types.py\", line 2010, in make_plot_media\n", | |
" val = util.matplotlib_to_plotly(val)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/util.py\", line 414, in matplotlib_to_plotly\n", | |
" return tools.mpl_to_plotly(obj)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/tools.py\", line 112, in mpl_to_plotly\n", | |
" matplotlylib.Exporter(renderer).run(fig)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mplexporter/exporter.py\", line 51, in run\n", | |
" self.crawl_fig(fig)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mplexporter/exporter.py\", line 116, in crawl_fig\n", | |
" props=utils.get_figure_properties(fig)):\n", | |
" File \"/usr/lib/python3.7/contextlib.py\", line 112, in __enter__\n", | |
" return next(self.gen)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mplexporter/renderers/base.py\", line 45, in draw_figure\n", | |
" self.open_figure(fig=fig, props=props)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/renderer.py\", line 90, in open_figure\n", | |
" self.mpl_x_bounds, self.mpl_y_bounds = mpltools.get_axes_bounds(fig)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mpltools.py\", line 265, in get_axes_bounds\n", | |
" x_min, y_min, x_max, y_max = min(x_min), min(y_min), max(x_max), max(y_max)\n", | |
"ValueError: min() arg is an empty sequence\n", | |
"\u001b[34m\u001b[1mwandb\u001b[0m: \u001b[32m\u001b[41mERROR\u001b[0m Problem finishing run\n", | |
"Traceback (most recent call last):\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_run.py\", line 1502, in _atexit_cleanup\n", | |
" self._on_finish()\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_run.py\", line 1638, in _on_finish\n", | |
" self.history._flush()\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_history.py\", line 59, in _flush\n", | |
" self._callback(row=self._data, step=self._step)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_run.py\", line 806, in _history_callback\n", | |
" row, step, publish_step=not_using_tensorboard\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/interface/interface.py\", line 217, in publish_history\n", | |
" data = data_types.history_dict_to_json(run, data, step=step)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/data_types.py\", line 2060, in history_dict_to_json\n", | |
" payload[key] = val_to_json(run, key, val, namespace=step)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/data_types.py\", line 2088, in val_to_json\n", | |
" val = Plotly.make_plot_media(val)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/data_types.py\", line 2010, in make_plot_media\n", | |
" val = util.matplotlib_to_plotly(val)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/util.py\", line 414, in matplotlib_to_plotly\n", | |
" return tools.mpl_to_plotly(obj)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/tools.py\", line 112, in mpl_to_plotly\n", | |
" matplotlylib.Exporter(renderer).run(fig)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mplexporter/exporter.py\", line 51, in run\n", | |
" self.crawl_fig(fig)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mplexporter/exporter.py\", line 116, in crawl_fig\n", | |
" props=utils.get_figure_properties(fig)):\n", | |
" File \"/usr/lib/python3.7/contextlib.py\", line 112, in __enter__\n", | |
" return next(self.gen)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mplexporter/renderers/base.py\", line 45, in draw_figure\n", | |
" self.open_figure(fig=fig, props=props)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/renderer.py\", line 90, in open_figure\n", | |
" self.mpl_x_bounds, self.mpl_y_bounds = mpltools.get_axes_bounds(fig)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mpltools.py\", line 265, in get_axes_bounds\n", | |
" x_min, y_min, x_max, y_max = min(x_min), min(y_min), max(x_max), max(y_max)\n", | |
"ValueError: min() arg is an empty sequence\n" | |
], | |
"name": "stderr" | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 465 | |
}, | |
"id": "ghhtn6Tu3pWc", | |
"outputId": "25eeb416-ae6f-4c8f-fcc8-3441d99addb3" | |
}, | |
"source": [ | |
"wandb_logger = WandbLogger(project='GH-2063',\n", | |
" entity=\"repro\",\n", | |
" name=\"plt_obj\",\n", | |
" notes=\"Now send the plt object instead\")\n", | |
"\n", | |
"fig = plt.figure()\n", | |
"\n", | |
"wandb_logger.experiment.log({'examples': plt})" | |
], | |
"execution_count": 8, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/html": [ | |
"\n", | |
" Tracking run with wandb version 0.10.26<br/>\n", | |
" Syncing run <strong style=\"color:#cdcd00\">plt_obj</strong> to <a href=\"https://wandb.ai\" target=\"_blank\">Weights & Biases</a> <a href=\"https://docs.wandb.com/integrations/jupyter.html\" target=\"_blank\">(Documentation)</a>.<br/>\n", | |
" Project page: <a href=\"https://wandb.ai/repro/GH-2063\" target=\"_blank\">https://wandb.ai/repro/GH-2063</a><br/>\n", | |
" Run page: <a href=\"https://wandb.ai/repro/GH-2063/runs/1r8s9nrh\" target=\"_blank\">https://wandb.ai/repro/GH-2063/runs/1r8s9nrh</a><br/>\n", | |
" Run data is saved locally in <code>/content/wandb/run-20210414_054350-1r8s9nrh</code><br/><br/>\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.HTML object>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
}, | |
{ | |
"output_type": "error", | |
"ename": "ValueError", | |
"evalue": "ignored", | |
"traceback": [ | |
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", | |
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", | |
"\u001b[0;32m<ipython-input-8-2c27e295fafc>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0mfig\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfigure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 8\u001b[0;31m \u001b[0mwandb_logger\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexperiment\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlog\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0;34m'examples'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 9\u001b[0m \u001b[0mwandb_logger\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexperiment\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfinish\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_run.py\u001b[0m in \u001b[0;36mlog\u001b[0;34m(self, data, step, commit, sync)\u001b[0m\n\u001b[1;32m 1053\u001b[0m \u001b[0mcommit\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1054\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcommit\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1055\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhistory\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_row_add\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1056\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1057\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhistory\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_row_update\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_history.py\u001b[0m in \u001b[0;36m_row_add\u001b[0;34m(self, row)\u001b[0m\n\u001b[1;32m 42\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_row_add\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrow\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 43\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrow\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 44\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_flush\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 45\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_step\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 46\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_history.py\u001b[0m in \u001b[0;36m_flush\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 57\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"_timestamp\"\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"_timestamp\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtime\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtime\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 58\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_callback\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 59\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_callback\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrow\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstep\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_step\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 60\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_run.py\u001b[0m in \u001b[0;36m_history_callback\u001b[0;34m(self, row, step)\u001b[0m\n\u001b[1;32m 804\u001b[0m \u001b[0mnot_using_tensorboard\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mwandb\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpatched\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"tensorboard\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 805\u001b[0m self._backend.interface.publish_history(\n\u001b[0;32m--> 806\u001b[0;31m \u001b[0mrow\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstep\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpublish_step\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnot_using_tensorboard\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 807\u001b[0m )\n\u001b[1;32m 808\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/wandb/sdk/interface/interface.py\u001b[0m in \u001b[0;36mpublish_history\u001b[0;34m(self, data, step, run, publish_step)\u001b[0m\n\u001b[1;32m 215\u001b[0m ) -> None:\n\u001b[1;32m 216\u001b[0m \u001b[0mrun\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mrun\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_run\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 217\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata_types\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhistory_dict_to_json\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstep\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mstep\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 218\u001b[0m \u001b[0mhistory\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpb\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mHistoryRecord\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 219\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mpublish_step\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/wandb/sdk/data_types.py\u001b[0m in \u001b[0;36mhistory_dict_to_json\u001b[0;34m(run, payload, step)\u001b[0m\n\u001b[1;32m 2058\u001b[0m \u001b[0mpayload\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mhistory_dict_to_json\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mval\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstep\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mstep\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2059\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2060\u001b[0;31m \u001b[0mpayload\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mval_to_json\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mval\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnamespace\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mstep\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2061\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2062\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mpayload\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/wandb/sdk/data_types.py\u001b[0m in \u001b[0;36mval_to_json\u001b[0;34m(run, key, val, namespace)\u001b[0m\n\u001b[1;32m 2086\u001b[0m )\n\u001b[1;32m 2087\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mutil\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_matplotlib_typename\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtypename\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mutil\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_plotly_typename\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtypename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2088\u001b[0;31m \u001b[0mval\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mPlotly\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmake_plot_media\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mval\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2089\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mval\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSixSequence\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mall\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mWBValue\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mv\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mval\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2090\u001b[0m \u001b[0;32massert\u001b[0m \u001b[0mrun\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/wandb/sdk/data_types.py\u001b[0m in \u001b[0;36mmake_plot_media\u001b[0;34m(cls, val)\u001b[0m\n\u001b[1;32m 2008\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mutil\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmatplotlib_contains_images\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mval\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2009\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mImage\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mval\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2010\u001b[0;31m \u001b[0mval\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mutil\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmatplotlib_to_plotly\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mval\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2011\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mval\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2012\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/wandb/util.py\u001b[0m in \u001b[0;36mmatplotlib_to_plotly\u001b[0;34m(obj)\u001b[0m\n\u001b[1;32m 412\u001b[0m \u001b[0mrequired\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"plotly is required to log interactive plots, install with: pip install plotly or convert the plot to an image with `wandb.Image(plt)`\"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 413\u001b[0m )\n\u001b[0;32m--> 414\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mtools\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmpl_to_plotly\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 415\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 416\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/plotly/tools.py\u001b[0m in \u001b[0;36mmpl_to_plotly\u001b[0;34m(fig, resize, strip_style, verbose)\u001b[0m\n\u001b[1;32m 110\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mmatplotlylib\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 111\u001b[0m \u001b[0mrenderer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmatplotlylib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mPlotlyRenderer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 112\u001b[0;31m \u001b[0mmatplotlylib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mExporter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 113\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mresize\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 114\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mresize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mplexporter/exporter.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self, fig)\u001b[0m\n\u001b[1;32m 49\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mmatplotlib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpyplot\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 50\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 51\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcrawl_fig\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 52\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 53\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mstaticmethod\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mplexporter/exporter.py\u001b[0m in \u001b[0;36mcrawl_fig\u001b[0;34m(self, fig)\u001b[0m\n\u001b[1;32m 114\u001b[0m \u001b[0;34m\"\"\"Crawl the figure and process all axes\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 115\u001b[0m with self.renderer.draw_figure(fig=fig,\n\u001b[0;32m--> 116\u001b[0;31m props=utils.get_figure_properties(fig)):\n\u001b[0m\u001b[1;32m 117\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0max\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maxes\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 118\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcrawl_ax\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/lib/python3.7/contextlib.py\u001b[0m in \u001b[0;36m__enter__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 110\u001b[0m \u001b[0;32mdel\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 111\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 112\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mnext\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgen\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 113\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mStopIteration\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 114\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"generator didn't yield\"\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mplexporter/renderers/base.py\u001b[0m in \u001b[0;36mdraw_figure\u001b[0;34m(self, fig, props)\u001b[0m\n\u001b[1;32m 43\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_current_fig\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 44\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_fig_props\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprops\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 45\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen_figure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mprops\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mprops\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 46\u001b[0m \u001b[0;32myield\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 47\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclose_figure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/renderer.py\u001b[0m in \u001b[0;36mopen_figure\u001b[0;34m(self, fig, props)\u001b[0m\n\u001b[1;32m 88\u001b[0m \u001b[0mhovermode\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"closest\"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 89\u001b[0m )\n\u001b[0;32m---> 90\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmpl_x_bounds\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmpl_y_bounds\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmpltools\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_axes_bounds\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 91\u001b[0m margin = go.layout.Margin(\n\u001b[1;32m 92\u001b[0m \u001b[0ml\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmpl_x_bounds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplotly_fig\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"layout\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"width\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mpltools.py\u001b[0m in \u001b[0;36mget_axes_bounds\u001b[0;34m(fig)\u001b[0m\n\u001b[1;32m 263\u001b[0m \u001b[0my_min\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbounds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 264\u001b[0m \u001b[0my_max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbounds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mbounds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m3\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 265\u001b[0;31m \u001b[0mx_min\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_min\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx_max\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_max\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx_min\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my_min\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmax\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx_max\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmax\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my_max\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 266\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mx_min\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx_max\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0my_min\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_max\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 267\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;31mValueError\u001b[0m: min() arg is an empty sequence" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "huEdNFFi6FXw", | |
"outputId": "f38a71a4-1948-44a7-aa9e-f197c17758de" | |
}, | |
"source": [ | |
"wandb_logger.experiment.finish()" | |
], | |
"execution_count": 9, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"Problem finishing run\n", | |
"Traceback (most recent call last):\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_run.py\", line 1502, in _atexit_cleanup\n", | |
" self._on_finish()\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_run.py\", line 1638, in _on_finish\n", | |
" self.history._flush()\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_history.py\", line 59, in _flush\n", | |
" self._callback(row=self._data, step=self._step)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_run.py\", line 806, in _history_callback\n", | |
" row, step, publish_step=not_using_tensorboard\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/interface/interface.py\", line 217, in publish_history\n", | |
" data = data_types.history_dict_to_json(run, data, step=step)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/data_types.py\", line 2060, in history_dict_to_json\n", | |
" payload[key] = val_to_json(run, key, val, namespace=step)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/data_types.py\", line 2088, in val_to_json\n", | |
" val = Plotly.make_plot_media(val)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/data_types.py\", line 2010, in make_plot_media\n", | |
" val = util.matplotlib_to_plotly(val)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/util.py\", line 414, in matplotlib_to_plotly\n", | |
" return tools.mpl_to_plotly(obj)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/tools.py\", line 112, in mpl_to_plotly\n", | |
" matplotlylib.Exporter(renderer).run(fig)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mplexporter/exporter.py\", line 51, in run\n", | |
" self.crawl_fig(fig)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mplexporter/exporter.py\", line 116, in crawl_fig\n", | |
" props=utils.get_figure_properties(fig)):\n", | |
" File \"/usr/lib/python3.7/contextlib.py\", line 112, in __enter__\n", | |
" return next(self.gen)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mplexporter/renderers/base.py\", line 45, in draw_figure\n", | |
" self.open_figure(fig=fig, props=props)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/renderer.py\", line 90, in open_figure\n", | |
" self.mpl_x_bounds, self.mpl_y_bounds = mpltools.get_axes_bounds(fig)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mpltools.py\", line 265, in get_axes_bounds\n", | |
" x_min, y_min, x_max, y_max = min(x_min), min(y_min), max(x_max), max(y_max)\n", | |
"ValueError: min() arg is an empty sequence\n", | |
"\u001b[34m\u001b[1mwandb\u001b[0m: \u001b[32m\u001b[41mERROR\u001b[0m Problem finishing run\n", | |
"Traceback (most recent call last):\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_run.py\", line 1502, in _atexit_cleanup\n", | |
" self._on_finish()\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_run.py\", line 1638, in _on_finish\n", | |
" self.history._flush()\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_history.py\", line 59, in _flush\n", | |
" self._callback(row=self._data, step=self._step)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/wandb_run.py\", line 806, in _history_callback\n", | |
" row, step, publish_step=not_using_tensorboard\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/interface/interface.py\", line 217, in publish_history\n", | |
" data = data_types.history_dict_to_json(run, data, step=step)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/data_types.py\", line 2060, in history_dict_to_json\n", | |
" payload[key] = val_to_json(run, key, val, namespace=step)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/data_types.py\", line 2088, in val_to_json\n", | |
" val = Plotly.make_plot_media(val)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/sdk/data_types.py\", line 2010, in make_plot_media\n", | |
" val = util.matplotlib_to_plotly(val)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/wandb/util.py\", line 414, in matplotlib_to_plotly\n", | |
" return tools.mpl_to_plotly(obj)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/tools.py\", line 112, in mpl_to_plotly\n", | |
" matplotlylib.Exporter(renderer).run(fig)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mplexporter/exporter.py\", line 51, in run\n", | |
" self.crawl_fig(fig)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mplexporter/exporter.py\", line 116, in crawl_fig\n", | |
" props=utils.get_figure_properties(fig)):\n", | |
" File \"/usr/lib/python3.7/contextlib.py\", line 112, in __enter__\n", | |
" return next(self.gen)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mplexporter/renderers/base.py\", line 45, in draw_figure\n", | |
" self.open_figure(fig=fig, props=props)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/renderer.py\", line 90, in open_figure\n", | |
" self.mpl_x_bounds, self.mpl_y_bounds = mpltools.get_axes_bounds(fig)\n", | |
" File \"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/mpltools.py\", line 265, in get_axes_bounds\n", | |
" x_min, y_min, x_max, y_max = min(x_min), min(y_min), max(x_max), max(y_max)\n", | |
"ValueError: min() arg is an empty sequence\n" | |
], | |
"name": "stderr" | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 728, | |
"referenced_widgets": [ | |
"28b3127dec4a4ede9187c234e4b12f86", | |
"c07ea3420fe94ed28a3464749f6b40fb", | |
"c61aacb43dbd4722b6681a1ef7674643", | |
"4ce7ec97ac474692b8c0955827d3cc9d", | |
"9f9dbd062e8646169dc24a88d0cbfdff", | |
"a07d3d6129ec4a36b1cb7925876a0a8a", | |
"4e1f39bb0993435ba7eb15df243fb0ff", | |
"763fc2e8a22c4088b4bd8e9a53f055f6" | |
] | |
}, | |
"id": "hWVV4Wbm0kdd", | |
"outputId": "66ca9355-8287-4124-d536-7920ff47bdcf" | |
}, | |
"source": [ | |
"wandb_logger = WandbLogger(project='GH-2063',\n", | |
" entity=\"repro\",\n", | |
" name=\"plot\",\n", | |
" notes=\"Fill the plot and send the plt object\")\n", | |
"\n", | |
"fig = plt.figure()\n", | |
"x = np.arange(10)\n", | |
"y = 2.5 * np.sin(x / 20 * np.pi)\n", | |
"yerr = np.linspace(0.05, 0.2, 10)\n", | |
"\n", | |
"plt.errorbar(x, y + 3, yerr=yerr, label='both limits (default)')\n", | |
"\n", | |
"plt.errorbar(x, y + 2, yerr=yerr, uplims=True, label='uplims=True')\n", | |
"\n", | |
"plt.errorbar(x, y + 1, yerr=yerr, uplims=True, lolims=True,\n", | |
" label='uplims=True, lolims=True')\n", | |
"\n", | |
"upperlimits = [True, False] * 5\n", | |
"lowerlimits = [False, True] * 5\n", | |
"plt.errorbar(x, y, yerr=yerr, uplims=upperlimits, lolims=lowerlimits,\n", | |
" label='subsets of uplims and lolims')\n", | |
"\n", | |
"plt.legend(loc='lower right')\n", | |
"\n", | |
"wandb_logger.experiment.log({'examples': plt})\n", | |
"wandb_logger.experiment.finish()" | |
], | |
"execution_count": 10, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/html": [ | |
"\n", | |
" Tracking run with wandb version 0.10.26<br/>\n", | |
" Syncing run <strong style=\"color:#cdcd00\">plot</strong> to <a href=\"https://wandb.ai\" target=\"_blank\">Weights & Biases</a> <a href=\"https://docs.wandb.com/integrations/jupyter.html\" target=\"_blank\">(Documentation)</a>.<br/>\n", | |
" Project page: <a href=\"https://wandb.ai/repro/GH-2063\" target=\"_blank\">https://wandb.ai/repro/GH-2063</a><br/>\n", | |
" Run page: <a href=\"https://wandb.ai/repro/GH-2063/runs/z1khuzx0\" target=\"_blank\">https://wandb.ai/repro/GH-2063/runs/z1khuzx0</a><br/>\n", | |
" Run data is saved locally in <code>/content/wandb/run-20210414_054406-z1khuzx0</code><br/><br/>\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.HTML object>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
}, | |
{ | |
"output_type": "stream", | |
"text": [ | |
"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/renderer.py:474: UserWarning:\n", | |
"\n", | |
"Dang! That path collection is out of this world. I totally don't know what to do with it yet! Plotly can only import path collections linked to 'data' coordinates\n", | |
"\n", | |
"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", | |
"\n", | |
"Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", | |
"\n", | |
"/usr/local/lib/python3.7/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", | |
"\n", | |
"I found a path object that I don't think is part of a bar chart. Ignoring.\n", | |
"\n" | |
], | |
"name": "stderr" | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/html": [ | |
"<br/>Waiting for W&B process to finish, PID 258<br/>Program ended successfully." | |
], | |
"text/plain": [ | |
"<IPython.core.display.HTML object>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"application/vnd.jupyter.widget-view+json": { | |
"model_id": "28b3127dec4a4ede9187c234e4b12f86", | |
"version_minor": 0, | |
"version_major": 2 | |
}, | |
"text/plain": [ | |
"VBox(children=(Label(value=' 0.01MB of 0.01MB uploaded (0.00MB deduped)\\r'), FloatProgress(value=1.0, max=1.0)…" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/html": [ | |
"Find user logs for this run at: <code>/content/wandb/run-20210414_054406-z1khuzx0/logs/debug.log</code>" | |
], | |
"text/plain": [ | |
"<IPython.core.display.HTML object>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/html": [ | |
"Find internal logs for this run at: <code>/content/wandb/run-20210414_054406-z1khuzx0/logs/debug-internal.log</code>" | |
], | |
"text/plain": [ | |
"<IPython.core.display.HTML object>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/html": [ | |
"<h3>Run summary:</h3><br/><style>\n", | |
" table.wandb td:nth-child(1) { padding: 0 10px; text-align: right }\n", | |
" </style><table class=\"wandb\">\n", | |
"<tr><td>_runtime</td><td>4</td></tr><tr><td>_timestamp</td><td>1618379050</td></tr><tr><td>_step</td><td>0</td></tr></table>" | |
], | |
"text/plain": [ | |
"<IPython.core.display.HTML object>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/html": [ | |
"<h3>Run history:</h3><br/><style>\n", | |
" table.wandb td:nth-child(1) { padding: 0 10px; text-align: right }\n", | |
" </style><table class=\"wandb\">\n", | |
"<tr><td>_runtime</td><td>▁</td></tr><tr><td>_timestamp</td><td>▁</td></tr><tr><td>_step</td><td>▁</td></tr></table><br/>" | |
], | |
"text/plain": [ | |
"<IPython.core.display.HTML object>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/html": [ | |
"Synced 5 W&B file(s), 1 media file(s), 0 artifact file(s) and 0 other file(s)" | |
], | |
"text/plain": [ | |
"<IPython.core.display.HTML object>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/html": [ | |
"\n", | |
" <br/>Synced <strong style=\"color:#cdcd00\">plot</strong>: <a href=\"https://wandb.ai/repro/GH-2063/runs/z1khuzx0\" target=\"_blank\">https://wandb.ai/repro/GH-2063/runs/z1khuzx0</a><br/>\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.HTML object>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
} | |
] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment