{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "<img width=\"800px\" src=\"../fidle/img/00-Fidle-header-01.svg\"></img>\n", "\n", "# <!-- TITLE --> [GTSRB7] - Batch reports\n", "<!-- DESC --> Episode 7 : Displaying our jobs report, and the winner is...\n", "<!-- AUTHOR : Jean-Luc Parouty (CNRS/SIMaP) -->\n", "\n", "## Objectives :\n", " - Compare the results of different dataset-model combinations\n", "\n", "Les rapports (format json) sont générés par les jobs \"Full convolution\" [GTS5][GTS6]\n", "\n", "\n", "## What we're going to do :\n", "\n", " - Read json files and display results\n", "\n", "## Step 1 - Import and init\n", "### 1.1 - Python stuffs" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import sys,os,glob,json\n", "from pathlib import Path\n", "from IPython.display import display, Markdown\n", "\n", "import fidle\n", "\n", "# Init Fidle environment\n", "run_id, run_dir, datasets_dir = fidle.init('GTSRB7')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.2 - Parameters\n", "Where to find the report" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "report_dir = './run/GTSRB5'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Override parameters (batch mode) - Just forget this cell" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "fidle.override('report_dir')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 2 - Few nice functions" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def highlight_max(s):\n", " is_max = (s == s.max())\n", " return ['background-color: yellow' if v else '' for v in is_max]\n", "\n", "def show_report(file):\n", " # ---- Read json file\n", " with open(file) as infile:\n", " dict_report = json.load( infile )\n", " output = dict_report['output']\n", " description = dict_report['description']\n", " # ---- about\n", " fidle.utils.subtitle(f'Report : {Path(file).stem}')\n", " print( \"Desc. : \",description,'\\n')\n", " # ---- Create a pandas\n", " report = pd.DataFrame (output)\n", " col_accuracy = [ c for c in output.keys() if c.endswith('Accuracy')]\n", " col_duration = [ c for c in output.keys() if c.endswith('Duration')]\n", " # ---- Build formats\n", " lambda_acc = lambda x : '{:.2f} %'.format(x) if (isinstance(x, float)) else '{:}'.format(x)\n", " lambda_dur = lambda x : '{:.1f} s'.format(x) if (isinstance(x, float)) else '{:}'.format(x)\n", " formats = {'Size':'{:.2f} Mo'}\n", " for c in col_accuracy: \n", " formats[c]=lambda_acc\n", " for c in col_duration:\n", " formats[c]=lambda_dur\n", " t=report.style.highlight_max(subset=col_accuracy).format(formats).hide_index()\n", " display(t)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 3 - Reports display" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "for file in glob.glob(f'{report_dir}/*.json'):\n", " show_report(file)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "fidle.end()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "<img width=\"80px\" src=\"../fidle/img/00-Fidle-logo-01.svg\"></img>" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3.9.2 ('fidle-env')", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.2" }, "vscode": { "interpreter": { "hash": "b3929042cc22c1274d74e3e946c52b845b57cb6d84f2d591ffe0519b38e4896d" } } }, "nbformat": 4, "nbformat_minor": 4 }