From 6756cb548a507bcc92fcae55efed63638831c59e Mon Sep 17 00:00:00 2001 From: Sabri Eyuboglu Date: Fri, 22 Jul 2022 22:02:25 +0000 Subject: [PATCH] Add colab --- examples/01_hapi_intro.ipynb | 1205 ++++++ examples/dev-2.ipynb | 7142 ---------------------------------- examples/dev.ipynb | 3047 --------------- 3 files changed, 1205 insertions(+), 10189 deletions(-) create mode 100644 examples/01_hapi_intro.ipynb delete mode 100644 examples/dev-2.ipynb delete mode 100644 examples/dev.ipynb diff --git a/examples/01_hapi_intro.ipynb b/examples/01_hapi_intro.ipynb new file mode 100644 index 0000000..d9225e8 --- /dev/null +++ b/examples/01_hapi_intro.ipynb @@ -0,0 +1,1205 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "try-HAPI.ipynb", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "40e82a15b15f4de5afdb78193332d6d6": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_a0963e575f104ad280db8f98704aaaa7", + "IPY_MODEL_9fa0f34d1a7c4f5e8a6f0e438b32bec0", + "IPY_MODEL_3b66832981354857925b58f87e509734" + ], + "layout": "IPY_MODEL_ff2536158a1048ecaba0a6a0d14ba47a" + } + }, + "a0963e575f104ad280db8f98704aaaa7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_e359003626b345068482112b93d09212", + "placeholder": "​", + "style": "IPY_MODEL_de72432d9c114c8d86e92eb3b771f305", + "value": "100%" + } + }, + "9fa0f34d1a7c4f5e8a6f0e438b32bec0": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_e0f153a65f6348bd846a9d27b1314db6", + "max": 4, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_9d402dca42ab4e138bd6354c687443f3", + "value": 4 + } + }, + "3b66832981354857925b58f87e509734": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_173824c85c264b90837f16ec27fa0889", + "placeholder": "​", + "style": "IPY_MODEL_8d25f5cb44a24c759ada87eb3f3ae1b8", + "value": " 4/4 [00:02<00:00, 1.52it/s]" + } + }, + "ff2536158a1048ecaba0a6a0d14ba47a": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "e359003626b345068482112b93d09212": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "de72432d9c114c8d86e92eb3b771f305": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "e0f153a65f6348bd846a9d27b1314db6": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "9d402dca42ab4e138bd6354c687443f3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "173824c85c264b90837f16ec27fa0889": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "8d25f5cb44a24c759ada87eb3f3ae1b8": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "e3bbee1863bc4f169e4c509d0c20eb56": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_1762b9b0efd84effb037585d65b56396", + "IPY_MODEL_9317f9d225324c41a069bedc3c19afd8", + "IPY_MODEL_758b16ef3e6a4963b278205ff7ad940a" + ], + "layout": "IPY_MODEL_afa7f4cb07534a389a9566954fd85b06" + } + }, + "1762b9b0efd84effb037585d65b56396": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_a797eb02975d46af85212bd56b869983", + "placeholder": "​", + "style": "IPY_MODEL_3900af1d46724aa48414c6989246a65f", + "value": "100%" + } + }, + "9317f9d225324c41a069bedc3c19afd8": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_4b3c658455a94bb0a713da5ee54eeb80", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_ebe6f3d7f6a34feb8b4763d5a36de8b2", + "value": 1 + } + }, + "758b16ef3e6a4963b278205ff7ad940a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_5259a4379a97456b8f26c15b6207fd79", + "placeholder": "​", + "style": "IPY_MODEL_98bd390eb7df48af9ce7b3b5818ac797", + "value": " 1/1 [00:00<00:00, 2.39it/s]" + } + }, + "afa7f4cb07534a389a9566954fd85b06": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a797eb02975d46af85212bd56b869983": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "3900af1d46724aa48414c6989246a65f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "4b3c658455a94bb0a713da5ee54eeb80": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "ebe6f3d7f6a34feb8b4763d5a36de8b2": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "5259a4379a97456b8f26c15b6207fd79": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "98bd390eb7df48af9ce7b3b5818ac797": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + } + } + } + }, + "cells": [ + { + "cell_type": "markdown", + "source": [ + "![banner.png](data:image/png;base64,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)\n", + "\n", + "History of APIs (HAPI) is a large-scale, longitudinal database of commercial ML API predictions. It contains 1.7 million predictions collected from 2020 to 2022 and spanning APIs from Amazon, Google, IBM, and Microsoft. The database include diverse machine learning tasks including image tagging, speech recognition and text mining.\n", + "\n", + "This notebook will demonstrate how to get started with the database. " + ], + "metadata": { + "id": "pafhshHp5Eoq" + } + }, + { + "cell_type": "markdown", + "source": [ + "We provide a lightweight Python package for getting started with HAPI. Let's install it with pip: " + ], + "metadata": { + "id": "2lCXGKl44rrH" + } + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "V_BsBipBb9lD" + }, + "outputs": [], + "source": [ + "!pip install \"hapi@git+https://github.com/lchen001/hapi@main\"" + ] + }, + { + "cell_type": "markdown", + "source": [ + "Import the library and download the data, optionally specifying the directory for the the download. \n", + "\n", + "If the directory is not specified, the data will be downloaded to `~/.hapi`.\n", + "\n", + "> You can permanently set the data directory by adding the variable `HAPI_DATA_DIR` to your environment. " + ], + "metadata": { + "id": "zSTSHm-C5ySy" + } + }, + { + "cell_type": "code", + "source": [ + "import hapi\n", + "hapi.config.data_dir = \".\" \n", + "hapi.download();" + ], + "metadata": { + "id": "TLepmJA3cFp_" + }, + "execution_count": 5, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "Once we've downloaded the database, we can list the available APIs, datasets, and tasks with `hapi.summary()`. This returns a [Pandas DataFrame](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html) with columns `task, dataset, api, date, path, cost_per_10k`. " + ], + "metadata": { + "id": "nVmIrTD-59hp" + } + }, + { + "cell_type": "code", + "source": [ + "hapi.summary()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 655 + }, + "id": "wW17vea2cs-F", + "outputId": "1fc99b1e-84b3-4f38-f140-a2820f0704dd" + }, + "execution_count": 6, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " task dataset api date \\\n", + "0 scr command google_scr 20-03-29 \n", + "1 scr command ibm_scr 20-03-29 \n", + "2 scr command deepspeech_lib_scr 20-03-29 \n", + "3 scr command microsoft_scr 20-03-29 \n", + "4 scr command ibm_scr 22-05-23 \n", + ".. ... ... ... ... \n", + "171 fer ferplus facepp_fer 22-05-23 \n", + "172 fer ferplus google_fer 22-05-23 \n", + "173 sa imdb baidu_sa 21-02-21 \n", + "174 sa imdb amazon_sa 21-02-21 \n", + "175 sa imdb google_sa 21-02-21 \n", + "\n", + " path cost_per_10k \n", + "0 scr/command/google_scr/20-03-29.json 60.00 \n", + "1 scr/command/ibm_scr/20-03-29.json 25.00 \n", + "2 scr/command/deepspeech_lib_scr/20-03-29.json 0.02 \n", + "3 scr/command/microsoft_scr/20-03-29.json 41.00 \n", + "4 scr/command/ibm_scr/22-05-23.json 25.00 \n", + ".. ... ... \n", + "171 fer/ferplus/facepp_fer/22-05-23.json 5.00 \n", + "172 fer/ferplus/google_fer/22-05-23.json 15.00 \n", + "173 sa/imdb/baidu_sa/21-02-21.json 3.50 \n", + "174 sa/imdb/amazon_sa/21-02-21.json 0.75 \n", + "175 sa/imdb/google_sa/21-02-21.json 2.50 \n", + "\n", + "[176 rows x 6 columns]" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
taskdatasetapidatepathcost_per_10k
0scrcommandgoogle_scr20-03-29scr/command/google_scr/20-03-29.json60.00
1scrcommandibm_scr20-03-29scr/command/ibm_scr/20-03-29.json25.00
2scrcommanddeepspeech_lib_scr20-03-29scr/command/deepspeech_lib_scr/20-03-29.json0.02
3scrcommandmicrosoft_scr20-03-29scr/command/microsoft_scr/20-03-29.json41.00
4scrcommandibm_scr22-05-23scr/command/ibm_scr/22-05-23.json25.00
.....................
171ferferplusfacepp_fer22-05-23fer/ferplus/facepp_fer/22-05-23.json5.00
172ferferplusgoogle_fer22-05-23fer/ferplus/google_fer/22-05-23.json15.00
173saimdbbaidu_sa21-02-21sa/imdb/baidu_sa/21-02-21.json3.50
174saimdbamazon_sa21-02-21sa/imdb/amazon_sa/21-02-21.json0.75
175saimdbgoogle_sa21-02-21sa/imdb/google_sa/21-02-21.json2.50
\n", + "

176 rows × 6 columns

\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ] + }, + "metadata": {}, + "execution_count": 6 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "To load the predictions into memory we use `hapi.get_predictions()`. The keyword arguments allow us to load predictions for a subset of tasks, datasets, apis and/or dates. \n", + "\n", + "The predictions are returned as a dictionary mapping from `\"{task}/{dataset}/{api}/{date}\"` to lists of dictionaries, each with keys `\"example_id\"`, `\"predicted_label\"`, and `\"confidence\"`." + ], + "metadata": { + "id": "OTsuXC5n6Tyf" + } + }, + { + "cell_type": "code", + "source": [ + "predictions = hapi.get_predictions(task=\"mic\", dataset=\"coco\", api=[\"google_mic\", \"microsoft_mic\"])\n", + "\n", + "predictions[\"mic/coco/microsoft_mic/20-11-20\"][:3]" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 210, + "referenced_widgets": [ + "40e82a15b15f4de5afdb78193332d6d6", + "a0963e575f104ad280db8f98704aaaa7", + "9fa0f34d1a7c4f5e8a6f0e438b32bec0", + "3b66832981354857925b58f87e509734", + "ff2536158a1048ecaba0a6a0d14ba47a", + "e359003626b345068482112b93d09212", + "de72432d9c114c8d86e92eb3b771f305", + "e0f153a65f6348bd846a9d27b1314db6", + "9d402dca42ab4e138bd6354c687443f3", + "173824c85c264b90837f16ec27fa0889", + "8d25f5cb44a24c759ada87eb3f3ae1b8" + ] + }, + "id": "Ip2kbMGucwkU", + "outputId": "4f0a8cf7-d605-4250-f56b-aaa106e2087e" + }, + "execution_count": 21, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + " 0%| | 0/4 [00:00\n", - " \n", - " \n", - " \n", - " image_name (PandasSeriesColumn)\n", - " face_id_in_image (PandasSeriesColumn)\n", - " face_box_top (PandasSeriesColumn)\n", - " face_box_left (PandasSeriesColumn)\n", - " face_box_right (PandasSeriesColumn)\n", - " face_box_bottom (PandasSeriesColumn)\n", - " face_box_cofidence (PandasSeriesColumn)\n", - " expression_label (PandasSeriesColumn)\n", - " example_id (PandasSeriesColumn)\n", - " image (ImageColumn)\n", - " face_image (LambdaColumn)\n", - " \n", - " \n", - " \n", - " \n", - " 0\n", - " angry_actor_104.jpg\n", - " 0\n", - " 28\n", - " 113\n", - " 226\n", - " 141\n", - " 22.93620\n", - " 0\n", - " angry_actor_104_0\n", - " \n", - " \n", - " \n", - " \n", - " 1\n", - " angry_actor_109.jpg\n", - " 0\n", - " 31\n", - " 157\n", - " 345\n", - " 219\n", - " 50.30560\n", - " 0\n", - " angry_actor_109_0\n", - " \n", - " \n", - " \n", - " \n", - " 2\n", - " angry_actor_120.jpg\n", - " 1\n", - " 53\n", - " 53\n", - " 372\n", - " 372\n", - " 13.94340\n", - " 2\n", - " angry_actor_120_1\n", - " \n", - " \n", - " \n", - " \n", - " 3\n", - " angry_actor_13.jpg\n", - " 0\n", - " 77\n", - " 51\n", - " 362\n", - " 388\n", - " 85.81040\n", - " 3\n", - " angry_actor_13_0\n", - " \n", - " \n", - " \n", - " \n", - " 4\n", - " angry_actor_132.jpg\n", - " 0\n", - " 95\n", - " 31\n", - " 412\n", - " 476\n", - " 82.39480\n", - " 0\n", - " angry_actor_132_0\n", - " \n", - " \n", - " \n", - " \n", - " 5\n", - " angry_actor_137.jpg\n", - " 0\n", - " 93\n", - " 468\n", - " 842\n", - " 467\n", - " 88.95190\n", - " 0\n", - " angry_actor_137_0\n", - " \n", - " \n", - " \n", - " \n", - " 6\n", - " angry_actor_139.jpg\n", - " 0\n", - " 0\n", - " 0\n", - " 1127\n", - " 1127\n", - " 33.52480\n", - " 0\n", - " angry_actor_139_0\n", - " \n", - " \n", - " \n", - " \n", - " 7\n", - " angry_actor_14.jpg\n", - " 0\n", - " 13\n", - " 120\n", - " 200\n", - " 93\n", - " 39.75540\n", - " 0\n", - " angry_actor_14_0\n", - " \n", - " \n", - " \n", - " \n", - " 8\n", - " angry_actor_147.jpg\n", - " 1\n", - " 119\n", - " 47\n", - " 142\n", - " 214\n", - " 8.79739\n", - " 6\n", - " angry_actor_147_1\n", - " \n", - " \n", - " \n", - " \n", - " 9\n", - " angry_actor_150.jpg\n", - " 0\n", - " 56\n", - " 263\n", - " 376\n", - " 169\n", - " 81.87920\n", - " 0\n", - " angry_actor_150_0\n", - " \n", - " \n", - " \n", - " \n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " \n", - " \n", - " 88590\n", - " afraid_woman_204.jpg\n", - " 0\n", - " 20\n", - " 13\n", - " 93\n", - " 100\n", - " 74.59500\n", - " 6\n", - " afraid_woman_204_0\n", - " \n", - " \n", - " \n", - " \n", - " 88591\n", - " afraid_girl_13.jpg\n", - " 0\n", - " 0\n", - " 210\n", - " 525\n", - " 315\n", - " 33.74280\n", - " 4\n", - " afraid_girl_13_0\n", - " \n", - " \n", - " \n", - " \n", - " 88592\n", - " surprised_expression_629.jpg\n", - " 0\n", - " 8\n", - " 89\n", - " 186\n", - " 105\n", - " 44.09140\n", - " 5\n", - " surprised_expression_629_0\n", - " \n", - " \n", - " \n", - " \n", - " 88593\n", - " surprised_expression_409.jpg\n", - " 0\n", - " 80\n", - " 46\n", - " 184\n", - " 218\n", - " 63.80690\n", - " 5\n", - " surprised_expression_409_0\n", - " \n", - " \n", - " \n", - " \n", - " 88594\n", - " expressionless_husband_673.jpg\n", - " 0\n", - " 48\n", - " 194\n", - " 388\n", - " 242\n", - " 82.29750\n", - " 4\n", - " expressionless_husband_673_0\n", - " \n", - " \n", - " \n", - " \n", - " 88595\n", - " surprised_expression_546.jpg\n", - " 0\n", - " 70\n", - " 70\n", - " 351\n", - " 351\n", - " 37.71170\n", - " 5\n", - " surprised_expression_546_0\n", - " \n", - " \n", - " \n", - " \n", - " 88596\n", - " surprised_expression_381.jpg\n", - " 0\n", - " 51\n", - " 61\n", - " 117\n", - " 107\n", - " 91.63070\n", - " 5\n", - " surprised_expression_381_0\n", - " \n", - " \n", - " \n", - " \n", - " 88597\n", - " surprised_expression_395.jpg\n", - " 0\n", - " 27\n", - " 95\n", - " 258\n", - " 190\n", - " 96.28610\n", - " 5\n", - " surprised_expression_395_0\n", - " \n", - " \n", - " \n", - " \n", - " 88598\n", - " ecstatic_asian_31.jpg\n", - " 0\n", - " 60\n", - " 136\n", - " 184\n", - " 108\n", - " 39.92230\n", - " 3\n", - " ecstatic_asian_31_0\n", - " \n", - " \n", - " \n", - " \n", - " 88599\n", - " surprised_expression_394.jpg\n", - " 0\n", - " 47\n", - " 38\n", - " 152\n", - " 161\n", - " 77.77580\n", - " 5\n", - " surprised_expression_394_0\n", - " \n", - " \n", - " \n", - " \n", - "" - ], - "text/plain": [ - "DataPanel(nrows: 88600, ncols: 11)" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import meerkat as mk\n", - "mk.get(\"expw\")" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "import hapi" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
taskdatasetapidatepathcost_per_10k
0scrcommandgoogle_scr20-03-29scr/command/google_scr/20-03-29.json60.00
1scrcommandibm_scr20-03-29scr/command/ibm_scr/20-03-29.json25.00
2scrcommanddeepspeech_lib_scr20-03-29scr/command/deepspeech_lib_scr/20-03-29.json0.02
3scrcommandmicrosoft_scr20-03-29scr/command/microsoft_scr/20-03-29.json41.00
4scrcommandibm_scr22-05-23scr/command/ibm_scr/22-05-23.json25.00
.....................
171ferferplusfacepp_fer22-05-23fer/ferplus/facepp_fer/22-05-23.json5.00
172ferferplusgoogle_fer22-05-23fer/ferplus/google_fer/22-05-23.json15.00
173saimdbbaidu_sa21-02-21sa/imdb/baidu_sa/21-02-21.json3.50
174saimdbamazon_sa21-02-21sa/imdb/amazon_sa/21-02-21.json0.75
175saimdbgoogle_sa21-02-21sa/imdb/google_sa/21-02-21.json2.50
\n", - "

176 rows × 6 columns

\n", - "
" - ], - "text/plain": [ - " task dataset api date \\\n", - "0 scr command google_scr 20-03-29 \n", - "1 scr command ibm_scr 20-03-29 \n", - "2 scr command deepspeech_lib_scr 20-03-29 \n", - "3 scr command microsoft_scr 20-03-29 \n", - "4 scr command ibm_scr 22-05-23 \n", - ".. ... ... ... ... \n", - "171 fer ferplus facepp_fer 22-05-23 \n", - "172 fer ferplus google_fer 22-05-23 \n", - "173 sa imdb baidu_sa 21-02-21 \n", - "174 sa imdb amazon_sa 21-02-21 \n", - "175 sa imdb google_sa 21-02-21 \n", - "\n", - " path cost_per_10k \n", - "0 scr/command/google_scr/20-03-29.json 60.00 \n", - "1 scr/command/ibm_scr/20-03-29.json 25.00 \n", - "2 scr/command/deepspeech_lib_scr/20-03-29.json 0.02 \n", - "3 scr/command/microsoft_scr/20-03-29.json 41.00 \n", - "4 scr/command/ibm_scr/22-05-23.json 25.00 \n", - ".. ... ... \n", - "171 fer/ferplus/facepp_fer/22-05-23.json 5.00 \n", - "172 fer/ferplus/google_fer/22-05-23.json 15.00 \n", - "173 sa/imdb/baidu_sa/21-02-21.json 3.50 \n", - "174 sa/imdb/amazon_sa/21-02-21.json 0.75 \n", - "175 sa/imdb/google_sa/21-02-21.json 2.50 \n", - "\n", - "[176 rows x 6 columns]" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "hapi.list()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
taskdatasetapidatepathcost_per_10k
0scrcommandgoogle_scr20-03-29scr/command/google_scr/20-03-29.json60.00
1scrcommandibm_scr20-03-29scr/command/ibm_scr/20-03-29.json25.00
2scrcommanddeepspeech_lib_scr20-03-29scr/command/deepspeech_lib_scr/20-03-29.json0.02
3scrcommandmicrosoft_scr20-03-29scr/command/microsoft_scr/20-03-29.json41.00
4scrcommandibm_scr22-05-23scr/command/ibm_scr/22-05-23.json25.00
.....................
171ferferplusfacepp_fer22-05-23fer/ferplus/facepp_fer/22-05-23.json5.00
172ferferplusgoogle_fer22-05-23fer/ferplus/google_fer/22-05-23.json15.00
173saimdbbaidu_sa21-02-21sa/imdb/baidu_sa/21-02-21.json3.50
174saimdbamazon_sa21-02-21sa/imdb/amazon_sa/21-02-21.json0.75
175saimdbgoogle_sa21-02-21sa/imdb/google_sa/21-02-21.json2.50
\n", - "

176 rows × 6 columns

\n", - "
" - ], - "text/plain": [ - " task dataset api date \\\n", - "0 scr command google_scr 20-03-29 \n", - "1 scr command ibm_scr 20-03-29 \n", - "2 scr command deepspeech_lib_scr 20-03-29 \n", - "3 scr command microsoft_scr 20-03-29 \n", - "4 scr command ibm_scr 22-05-23 \n", - ".. ... ... ... ... \n", - "171 fer ferplus facepp_fer 22-05-23 \n", - "172 fer ferplus google_fer 22-05-23 \n", - "173 sa imdb baidu_sa 21-02-21 \n", - "174 sa imdb amazon_sa 21-02-21 \n", - "175 sa imdb google_sa 21-02-21 \n", - "\n", - " path cost_per_10k \n", - "0 scr/command/google_scr/20-03-29.json 60.00 \n", - "1 scr/command/ibm_scr/20-03-29.json 25.00 \n", - "2 scr/command/deepspeech_lib_scr/20-03-29.json 0.02 \n", - "3 scr/command/microsoft_scr/20-03-29.json 41.00 \n", - "4 scr/command/ibm_scr/22-05-23.json 25.00 \n", - ".. ... ... \n", - "171 fer/ferplus/facepp_fer/22-05-23.json 5.00 \n", - "172 fer/ferplus/google_fer/22-05-23.json 15.00 \n", - "173 sa/imdb/baidu_sa/21-02-21.json 3.50 \n", - "174 sa/imdb/amazon_sa/21-02-21.json 0.75 \n", - "175 sa/imdb/google_sa/21-02-21.json 2.50 \n", - "\n", - "[176 rows x 6 columns]" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import hapi\n", - "hapi.summary()" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "1efdd161866a4cce9b1d47f7594cdbcd", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/21 [00:00\n", - " \n", - " \n", - " \n", - " example_id (PandasSeriesColumn)\n", - " confidence (NumpyArrayColumn)\n", - " predicted_label (NumpyArrayColumn)\n", - " image_name (PandasSeriesColumn)\n", - " face_id_in_image (PandasSeriesColumn)\n", - " face_box_top (PandasSeriesColumn)\n", - " face_box_left (PandasSeriesColumn)\n", - " face_box_right (PandasSeriesColumn)\n", - " face_box_bottom (PandasSeriesColumn)\n", - " face_box_cofidence (PandasSeriesColumn)\n", - " expression_label (PandasSeriesColumn)\n", - " image (ImageColumn)\n", - " face_image (LambdaColumn)\n", - " \n", - " \n", - " \n", - " \n", - " 0\n", - " amazed_expression_236_0\n", - " 0.508\n", - " 5\n", - " amazed_expression_236.jpg\n", - " 0\n", - " 14\n", - " 51\n", - " 107\n", - " 70\n", - " 86.3589\n", - " 5\n", - " \n", - " \n", - " \n", - " \n", - " 1\n", - " distressed_wife_565_1\n", - " 0.960\n", - " 6\n", - " distressed_wife_565.jpg\n", - " 1\n", - " 113\n", - " 319\n", - " 455\n", - " 249\n", - " 65.4556\n", - " 6\n", - " \n", - " \n", - " \n", - " \n", - " 2\n", - " heartbroken_woman_777_0\n", - " 0.998\n", - " 6\n", - " heartbroken_woman_777.jpg\n", - " 0\n", - " 124\n", - " 115\n", - " 230\n", - " 239\n", - " 71.4355\n", - " 6\n", - " \n", - " \n", - " \n", - " \n", - " 3\n", - " crying_worker_764_0\n", - " 0.730\n", - " 4\n", - " crying_worker_764.jpg\n", - " 0\n", - " 266\n", - " 912\n", - " 1368\n", - " 722\n", - " 63.1153\n", - " 4\n", - " \n", - " \n", - " \n", - " \n", - " 4\n", - " crying_woman_15_0\n", - " 1.000\n", - " 4\n", - " crying_woman_15.jpg\n", - " 0\n", - " 53\n", - " 187\n", - " 348\n", - " 214\n", - " 106.5000\n", - " 4\n", - " \n", - " \n", - " \n", - " \n", - " 5\n", - " astound_face_86_0\n", - " 1.000\n", - " 3\n", - " astound_face_86.jpg\n", - " 0\n", - " 120\n", - " 290\n", - " 386\n", - " 216\n", - " 102.9270\n", - " 3\n", - " \n", - " \n", - " \n", - " \n", - " 6\n", - " astound_president_656_5\n", - " 1.000\n", - " 3\n", - " astound_president_656.jpg\n", - " 5\n", - " 400\n", - " 1296\n", - " 1392\n", - " 496\n", - " 60.0189\n", - " 3\n", - " \n", - " \n", - " \n", - " \n", - " 7\n", - " angry_president_302_0\n", - " 0.919\n", - " 6\n", - " angry_president_302.jpg\n", - " 0\n", - " 39\n", - " 136\n", - " 370\n", - " 273\n", - " 65.9237\n", - " 6\n", - " \n", - " \n", - " \n", - " \n", - " 8\n", - " awe_wife_514_4\n", - " 1.000\n", - " 3\n", - " awe_wife_514.jpg\n", - " 4\n", - " 736\n", - " 504\n", - " 600\n", - " 832\n", - " 74.7429\n", - " 3\n", - " \n", - " \n", - " \n", - " \n", - " 9\n", - " angry_face_151_0\n", - " 0.716\n", - " 6\n", - " angry_face_151.jpg\n", - " 0\n", - " 53\n", - " 79\n", - " 238\n", - " 212\n", - " 93.4123\n", - " 0\n", - " \n", - " \n", - " \n", - " \n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " \n", - " \n", - " 31500\n", - " anxious_son_78_0\n", - " 0.997\n", - " 6\n", - " anxious_son_78.jpg\n", - " 0\n", - " 9\n", - " 4\n", - " 61\n", - " 66\n", - " 66.0885\n", - " 6\n", - " \n", - " \n", - " \n", - " \n", - " 31501\n", - " amazed_family_807_0\n", - " 1.000\n", - " 3\n", - " amazed_family_807.jpg\n", - " 0\n", - " 518\n", - " 942\n", - " 1022\n", - " 598\n", - " 65.3207\n", - " 3\n", - " \n", - " \n", - " \n", - " \n", - " 31502\n", - " crying_manager_6_0\n", - " 0.849\n", - " 4\n", - " crying_manager_6.jpg\n", - " 0\n", - " 26\n", - " 26\n", - " 185\n", - " 185\n", - " 62.5956\n", - " 4\n", - " \n", - " \n", - " \n", - " \n", - " 31503\n", - " astound_programmer_573_0\n", - " 1.000\n", - " 3\n", - " astound_programmer_573.jpg\n", - " 0\n", - " 64\n", - " 256\n", - " 640\n", - " 448\n", - " 60.7453\n", - " 3\n", - " \n", - " \n", - " \n", - " \n", - " 31504\n", - " astound_teacher_899_0\n", - " 0.605\n", - " 6\n", - " astound_teacher_899.jpg\n", - " 0\n", - " 34\n", - " 396\n", - " 464\n", - " 102\n", - " 62.0064\n", - " 1\n", - " \n", - " \n", - " \n", - " \n", - " 31505\n", - " awe_man_636_1\n", - " 0.987\n", - " 6\n", - " awe_man_636.jpg\n", - " 1\n", - " 28\n", - " 285\n", - " 342\n", - " 85\n", - " 68.1721\n", - " 6\n", - " \n", - " \n", - " \n", - " \n", - " 31506\n", - " amazed_family_472_6\n", - " 1.000\n", - " 3\n", - " amazed_family_472.jpg\n", - " 6\n", - " 1830\n", - " 327\n", - " 383\n", - " 1886\n", - " 87.3741\n", - " 3\n", - " \n", - " \n", - " \n", - " \n", - " 31507\n", - " hostile_wife_629_1\n", - " 0.991\n", - " 6\n", - " hostile_wife_629.jpg\n", - " 1\n", - " 227\n", - " 1305\n", - " 1418\n", - " 340\n", - " 62.1029\n", - " 6\n", - " \n", - " \n", - " \n", - " \n", - " 31508\n", - " astound_wife_132_1\n", - " 1.000\n", - " 3\n", - " astound_wife_132.jpg\n", - " 1\n", - " 96\n", - " 497\n", - " 593\n", - " 192\n", - " 89.1201\n", - " 3\n", - " \n", - " \n", - " \n", - " \n", - " 31509\n", - " mad_infant_314_0\n", - " 1.000\n", - " 4\n", - " mad_infant_314.jpg\n", - " 0\n", - " 52\n", - " 211\n", - " 528\n", - " 369\n", - " 72.0738\n", - " 4\n", - " \n", - " \n", - " \n", - " \n", - "" - ], - "text/plain": [ - "DataPanel(nrows: 31510, ncols: 13)" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "out[\"fer/expw/microsoft_fer/21-02-16\"]" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "ename": "AttributeError", - "evalue": "module 'meerkat' has no attribute 'datasets'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32mUntitled-2.ipynb Cell 7'\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0m mk\u001b[39m.\u001b[39;49mdatasets\u001b[39m.\u001b[39mget(\u001b[39m\"\u001b[39m\u001b[39mexpw\u001b[39m\u001b[39m\"\u001b[39m)\n", - "\u001b[0;31mAttributeError\u001b[0m: module 'meerkat' has no attribute 'datasets'" - ] - } - ], - "source": [ - "mk.datasets.get(\"expw\")" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array(['scr', 'fer', 'ner', 'str', 'sa', 'mic'], dtype=object)" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "hapi.summary()[\"task\"].unique()" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "342a0dab00aa4a859a7d12d66f31f62c", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/18 [00:00\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mnumpy\u001b[39;00m \u001b[39mas\u001b[39;00m \u001b[39mnp\u001b[39;00m\n\u001b[0;32m----> 2\u001b[0m dp \u001b[39m=\u001b[39m mk\u001b[39m.\u001b[39;49mget(\u001b[39m\"\u001b[39;49m\u001b[39mceleba\u001b[39;49m\u001b[39m\"\u001b[39;49m)\n", - "File \u001b[0;32m~/code/meerkat/meerkat/datasets/__init__.py:63\u001b[0m, in \u001b[0;36mget\u001b[0;34m(name, dataset_dir, version, download_mode, registry, **kwargs)\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[39mif\u001b[39;00m registry \u001b[39m==\u001b[39m \u001b[39m\"\u001b[39m\u001b[39mmeerkat\u001b[39m\u001b[39m\"\u001b[39m:\n\u001b[1;32m 62\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m---> 63\u001b[0m dataset \u001b[39m=\u001b[39m datasets\u001b[39m.\u001b[39;49mget(\n\u001b[1;32m 64\u001b[0m name\u001b[39m=\u001b[39;49mname,\n\u001b[1;32m 65\u001b[0m dataset_dir\u001b[39m=\u001b[39;49mdataset_dir,\n\u001b[1;32m 66\u001b[0m version\u001b[39m=\u001b[39;49mversion,\n\u001b[1;32m 67\u001b[0m download_mode\u001b[39m=\u001b[39;49mdownload_mode,\n\u001b[1;32m 68\u001b[0m \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs,\n\u001b[1;32m 69\u001b[0m )\n\u001b[1;32m 70\u001b[0m \u001b[39mreturn\u001b[39;00m dataset\n\u001b[1;32m 71\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mKeyError\u001b[39;00m \u001b[39mas\u001b[39;00m e:\n", - "File \u001b[0;32m~/code/meerkat/meerkat/datasets/registry.py:28\u001b[0m, in \u001b[0;36mRegistry.get\u001b[0;34m(self, name, **kwargs)\u001b[0m\n\u001b[1;32m 23\u001b[0m \u001b[39mif\u001b[39;00m ret \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m 24\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mKeyError\u001b[39;00m(\n\u001b[1;32m 25\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mNo object named \u001b[39m\u001b[39m'\u001b[39m\u001b[39m{}\u001b[39;00m\u001b[39m'\u001b[39m\u001b[39m found in \u001b[39m\u001b[39m'\u001b[39m\u001b[39m{}\u001b[39;00m\u001b[39m'\u001b[39m\u001b[39m registry!\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m.\u001b[39mformat(name, \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_name)\n\u001b[1;32m 26\u001b[0m )\n\u001b[0;32m---> 28\u001b[0m \u001b[39mreturn\u001b[39;00m ret(\u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)()\n", - "File \u001b[0;32m~/code/meerkat/meerkat/datasets/abstract.py:63\u001b[0m, in \u001b[0;36mDatasetBuilder.__call__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 58\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mis_downloaded():\n\u001b[1;32m 59\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mValueError\u001b[39;00m(\n\u001b[1;32m 60\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mDataset \u001b[39m\u001b[39m{\u001b[39;00m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mname\u001b[39m}\u001b[39;00m\u001b[39m is not downloaded to \u001b[39m\u001b[39m{\u001b[39;00m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mdataset_dir\u001b[39m}\u001b[39;00m\u001b[39m.\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m 61\u001b[0m )\n\u001b[0;32m---> 63\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mbuild()\n", - "File \u001b[0;32m~/code/meerkat/meerkat/datasets/celeba/__init__.py:32\u001b[0m, in \u001b[0;36mceleba.build\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 31\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mbuild\u001b[39m(\u001b[39mself\u001b[39m):\n\u001b[0;32m---> 32\u001b[0m df \u001b[39m=\u001b[39m build_celeba_df(dataset_dir\u001b[39m=\u001b[39;49m\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mdataset_dir)\n\u001b[1;32m 33\u001b[0m dp \u001b[39m=\u001b[39m mk\u001b[39m.\u001b[39mDataPanel\u001b[39m.\u001b[39mfrom_pandas(df)\n\u001b[1;32m 34\u001b[0m dp[\u001b[39m\"\u001b[39m\u001b[39mimage\u001b[39m\u001b[39m\"\u001b[39m] \u001b[39m=\u001b[39m mk\u001b[39m.\u001b[39mImageColumn\u001b[39m.\u001b[39mfrom_filepaths(\n\u001b[1;32m 35\u001b[0m filepaths\u001b[39m=\u001b[39mdp[\u001b[39m\"\u001b[39m\u001b[39mimg_path\u001b[39m\u001b[39m\"\u001b[39m], base_dir\u001b[39m=\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mdataset_dir\n\u001b[1;32m 36\u001b[0m )\n", - "File \u001b[0;32m~/code/meerkat/meerkat/datasets/celeba/__init__.py:126\u001b[0m, in \u001b[0;36mbuild_celeba_df\u001b[0;34m(dataset_dir)\u001b[0m\n\u001b[1;32m 118\u001b[0m \u001b[39m\"\"\"Build the dataframe by joining on the attribute, split and identity\u001b[39;00m\n\u001b[1;32m 119\u001b[0m \u001b[39mCelebA CSVs.\"\"\"\u001b[39;00m\n\u001b[1;32m 120\u001b[0m \u001b[39m# identity_df = pd.read_csv(\u001b[39;00m\n\u001b[1;32m 121\u001b[0m \u001b[39m# os.path.join(dataset_dir, \"identity_CelebA.txt\"),\u001b[39;00m\n\u001b[1;32m 122\u001b[0m \u001b[39m# delim_whitespace=True,\u001b[39;00m\n\u001b[1;32m 123\u001b[0m \u001b[39m# header=None,\u001b[39;00m\n\u001b[1;32m 124\u001b[0m \u001b[39m# names=[\"file\", \"identity\"],\u001b[39;00m\n\u001b[1;32m 125\u001b[0m \u001b[39m# )\u001b[39;00m\n\u001b[0;32m--> 126\u001b[0m attr_df \u001b[39m=\u001b[39m pd\u001b[39m.\u001b[39;49mread_csv(\n\u001b[1;32m 127\u001b[0m os\u001b[39m.\u001b[39;49mpath\u001b[39m.\u001b[39;49mjoin(dataset_dir, \u001b[39m\"\u001b[39;49m\u001b[39mlist_attr_celeba.csv\u001b[39;49m\u001b[39m\"\u001b[39;49m),\n\u001b[1;32m 128\u001b[0m index_col\u001b[39m=\u001b[39;49m\u001b[39m0\u001b[39;49m,\n\u001b[1;32m 129\u001b[0m )\n\u001b[1;32m 130\u001b[0m attr_df\u001b[39m.\u001b[39mcolumns \u001b[39m=\u001b[39m pd\u001b[39m.\u001b[39mSeries(attr_df\u001b[39m.\u001b[39mcolumns)\u001b[39m.\u001b[39mapply(\u001b[39mlambda\u001b[39;00m x: x\u001b[39m.\u001b[39mlower())\n\u001b[1;32m 131\u001b[0m attr_df \u001b[39m=\u001b[39m ((attr_df \u001b[39m+\u001b[39m \u001b[39m1\u001b[39m) \u001b[39m/\u001b[39m\u001b[39m/\u001b[39m \u001b[39m2\u001b[39m)\u001b[39m.\u001b[39mrename_axis(\u001b[39m\"\u001b[39m\u001b[39mfile\u001b[39m\u001b[39m\"\u001b[39m)\u001b[39m.\u001b[39mreset_index()\n", - "File \u001b[0;32m~/miniconda3/envs/meerkat/lib/python3.8/site-packages/pandas/util/_decorators.py:311\u001b[0m, in \u001b[0;36mdeprecate_nonkeyword_arguments..decorate..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 305\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mlen\u001b[39m(args) \u001b[39m>\u001b[39m num_allow_args:\n\u001b[1;32m 306\u001b[0m warnings\u001b[39m.\u001b[39mwarn(\n\u001b[1;32m 307\u001b[0m msg\u001b[39m.\u001b[39mformat(arguments\u001b[39m=\u001b[39marguments),\n\u001b[1;32m 308\u001b[0m \u001b[39mFutureWarning\u001b[39;00m,\n\u001b[1;32m 309\u001b[0m stacklevel\u001b[39m=\u001b[39mstacklevel,\n\u001b[1;32m 310\u001b[0m )\n\u001b[0;32m--> 311\u001b[0m \u001b[39mreturn\u001b[39;00m func(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n", - "File \u001b[0;32m~/miniconda3/envs/meerkat/lib/python3.8/site-packages/pandas/io/parsers/readers.py:680\u001b[0m, in \u001b[0;36mread_csv\u001b[0;34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, encoding_errors, dialect, error_bad_lines, warn_bad_lines, on_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options)\u001b[0m\n\u001b[1;32m 665\u001b[0m kwds_defaults \u001b[39m=\u001b[39m _refine_defaults_read(\n\u001b[1;32m 666\u001b[0m dialect,\n\u001b[1;32m 667\u001b[0m delimiter,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 676\u001b[0m defaults\u001b[39m=\u001b[39m{\u001b[39m\"\u001b[39m\u001b[39mdelimiter\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m\"\u001b[39m\u001b[39m,\u001b[39m\u001b[39m\"\u001b[39m},\n\u001b[1;32m 677\u001b[0m )\n\u001b[1;32m 678\u001b[0m kwds\u001b[39m.\u001b[39mupdate(kwds_defaults)\n\u001b[0;32m--> 680\u001b[0m \u001b[39mreturn\u001b[39;00m _read(filepath_or_buffer, kwds)\n", - "File \u001b[0;32m~/miniconda3/envs/meerkat/lib/python3.8/site-packages/pandas/io/parsers/readers.py:575\u001b[0m, in \u001b[0;36m_read\u001b[0;34m(filepath_or_buffer, kwds)\u001b[0m\n\u001b[1;32m 572\u001b[0m _validate_names(kwds\u001b[39m.\u001b[39mget(\u001b[39m\"\u001b[39m\u001b[39mnames\u001b[39m\u001b[39m\"\u001b[39m, \u001b[39mNone\u001b[39;00m))\n\u001b[1;32m 574\u001b[0m \u001b[39m# Create the parser.\u001b[39;00m\n\u001b[0;32m--> 575\u001b[0m parser \u001b[39m=\u001b[39m TextFileReader(filepath_or_buffer, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwds)\n\u001b[1;32m 577\u001b[0m \u001b[39mif\u001b[39;00m chunksize \u001b[39mor\u001b[39;00m iterator:\n\u001b[1;32m 578\u001b[0m \u001b[39mreturn\u001b[39;00m parser\n", - "File \u001b[0;32m~/miniconda3/envs/meerkat/lib/python3.8/site-packages/pandas/io/parsers/readers.py:933\u001b[0m, in \u001b[0;36mTextFileReader.__init__\u001b[0;34m(self, f, engine, **kwds)\u001b[0m\n\u001b[1;32m 930\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39moptions[\u001b[39m\"\u001b[39m\u001b[39mhas_index_names\u001b[39m\u001b[39m\"\u001b[39m] \u001b[39m=\u001b[39m kwds[\u001b[39m\"\u001b[39m\u001b[39mhas_index_names\u001b[39m\u001b[39m\"\u001b[39m]\n\u001b[1;32m 932\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mhandles: IOHandles \u001b[39m|\u001b[39m \u001b[39mNone\u001b[39;00m \u001b[39m=\u001b[39m \u001b[39mNone\u001b[39;00m\n\u001b[0;32m--> 933\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_engine \u001b[39m=\u001b[39m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_make_engine(f, \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mengine)\n", - "File \u001b[0;32m~/miniconda3/envs/meerkat/lib/python3.8/site-packages/pandas/io/parsers/readers.py:1217\u001b[0m, in \u001b[0;36mTextFileReader._make_engine\u001b[0;34m(self, f, engine)\u001b[0m\n\u001b[1;32m 1213\u001b[0m mode \u001b[39m=\u001b[39m \u001b[39m\"\u001b[39m\u001b[39mrb\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m 1214\u001b[0m \u001b[39m# error: No overload variant of \"get_handle\" matches argument types\u001b[39;00m\n\u001b[1;32m 1215\u001b[0m \u001b[39m# \"Union[str, PathLike[str], ReadCsvBuffer[bytes], ReadCsvBuffer[str]]\"\u001b[39;00m\n\u001b[1;32m 1216\u001b[0m \u001b[39m# , \"str\", \"bool\", \"Any\", \"Any\", \"Any\", \"Any\", \"Any\"\u001b[39;00m\n\u001b[0;32m-> 1217\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mhandles \u001b[39m=\u001b[39m get_handle( \u001b[39m# type: ignore[call-overload]\u001b[39;49;00m\n\u001b[1;32m 1218\u001b[0m f,\n\u001b[1;32m 1219\u001b[0m mode,\n\u001b[1;32m 1220\u001b[0m encoding\u001b[39m=\u001b[39;49m\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49moptions\u001b[39m.\u001b[39;49mget(\u001b[39m\"\u001b[39;49m\u001b[39mencoding\u001b[39;49m\u001b[39m\"\u001b[39;49m, \u001b[39mNone\u001b[39;49;00m),\n\u001b[1;32m 1221\u001b[0m compression\u001b[39m=\u001b[39;49m\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49moptions\u001b[39m.\u001b[39;49mget(\u001b[39m\"\u001b[39;49m\u001b[39mcompression\u001b[39;49m\u001b[39m\"\u001b[39;49m, \u001b[39mNone\u001b[39;49;00m),\n\u001b[1;32m 1222\u001b[0m memory_map\u001b[39m=\u001b[39;49m\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49moptions\u001b[39m.\u001b[39;49mget(\u001b[39m\"\u001b[39;49m\u001b[39mmemory_map\u001b[39;49m\u001b[39m\"\u001b[39;49m, \u001b[39mFalse\u001b[39;49;00m),\n\u001b[1;32m 1223\u001b[0m is_text\u001b[39m=\u001b[39;49mis_text,\n\u001b[1;32m 1224\u001b[0m errors\u001b[39m=\u001b[39;49m\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49moptions\u001b[39m.\u001b[39;49mget(\u001b[39m\"\u001b[39;49m\u001b[39mencoding_errors\u001b[39;49m\u001b[39m\"\u001b[39;49m, \u001b[39m\"\u001b[39;49m\u001b[39mstrict\u001b[39;49m\u001b[39m\"\u001b[39;49m),\n\u001b[1;32m 1225\u001b[0m storage_options\u001b[39m=\u001b[39;49m\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49moptions\u001b[39m.\u001b[39;49mget(\u001b[39m\"\u001b[39;49m\u001b[39mstorage_options\u001b[39;49m\u001b[39m\"\u001b[39;49m, \u001b[39mNone\u001b[39;49;00m),\n\u001b[1;32m 1226\u001b[0m )\n\u001b[1;32m 1227\u001b[0m \u001b[39massert\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mhandles \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m\n\u001b[1;32m 1228\u001b[0m f \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mhandles\u001b[39m.\u001b[39mhandle\n", - "File \u001b[0;32m~/miniconda3/envs/meerkat/lib/python3.8/site-packages/pandas/io/common.py:789\u001b[0m, in \u001b[0;36mget_handle\u001b[0;34m(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)\u001b[0m\n\u001b[1;32m 784\u001b[0m \u001b[39melif\u001b[39;00m \u001b[39misinstance\u001b[39m(handle, \u001b[39mstr\u001b[39m):\n\u001b[1;32m 785\u001b[0m \u001b[39m# Check whether the filename is to be opened in binary mode.\u001b[39;00m\n\u001b[1;32m 786\u001b[0m \u001b[39m# Binary mode does not support 'encoding' and 'newline'.\u001b[39;00m\n\u001b[1;32m 787\u001b[0m \u001b[39mif\u001b[39;00m ioargs\u001b[39m.\u001b[39mencoding \u001b[39mand\u001b[39;00m \u001b[39m\"\u001b[39m\u001b[39mb\u001b[39m\u001b[39m\"\u001b[39m \u001b[39mnot\u001b[39;00m \u001b[39min\u001b[39;00m ioargs\u001b[39m.\u001b[39mmode:\n\u001b[1;32m 788\u001b[0m \u001b[39m# Encoding\u001b[39;00m\n\u001b[0;32m--> 789\u001b[0m handle \u001b[39m=\u001b[39m \u001b[39mopen\u001b[39;49m(\n\u001b[1;32m 790\u001b[0m handle,\n\u001b[1;32m 791\u001b[0m ioargs\u001b[39m.\u001b[39;49mmode,\n\u001b[1;32m 792\u001b[0m encoding\u001b[39m=\u001b[39;49mioargs\u001b[39m.\u001b[39;49mencoding,\n\u001b[1;32m 793\u001b[0m errors\u001b[39m=\u001b[39;49merrors,\n\u001b[1;32m 794\u001b[0m newline\u001b[39m=\u001b[39;49m\u001b[39m\"\u001b[39;49m\u001b[39m\"\u001b[39;49m,\n\u001b[1;32m 795\u001b[0m )\n\u001b[1;32m 796\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m 797\u001b[0m \u001b[39m# Binary mode\u001b[39;00m\n\u001b[1;32m 798\u001b[0m handle \u001b[39m=\u001b[39m \u001b[39mopen\u001b[39m(handle, ioargs\u001b[39m.\u001b[39mmode)\n", - "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: '/Users/eyubogln/.meerkat/datasets/celeba/main/list_attr_celeba.csv'" - ] - } - ], - "source": [ - "import numpy as np\n", - "dp = mk.get(\"celeba\")\n" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "mk.config.display.max_image_height=300" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "0722040571db43818fd78732e16eefb9", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/1 [00:00\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0m dp \u001b[39m=\u001b[39m mk\u001b[39m.\u001b[39;49mget(\u001b[39m\"\u001b[39m\u001b[39mimagenette\u001b[39m\u001b[39m\"\u001b[39m)\n", - "\u001b[0;31mAttributeError\u001b[0m: module 'meerkat' has no attribute 'get'" - ] - } - ], - "source": [ - "mk" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
path (PandasSeriesColumn)noisy_labels_0 (PandasSeriesColumn)noisy_labels_1 (PandasSeriesColumn)noisy_labels_5 (PandasSeriesColumn)noisy_labels_25 (PandasSeriesColumn)noisy_labels_50 (PandasSeriesColumn)is_valid (PandasSeriesColumn)label_id (PandasSeriesColumn)label (PandasSeriesColumn)label_idx (PandasSeriesColumn)split (PandasSeriesColumn)img_path (PandasSeriesColumn)img (ImageColumn)
0train/n02979186/n02979186_9036.JPEGn02979186n02979186n02979186n02979186n02979186Falsen02979186cassette player482traintrain/n02979186/n02979186_9036.JPEG
1train/n02979186/n02979186_11957.JPEGn02979186n02979186n02979186n02979186n03000684Falsen02979186cassette player482traintrain/n02979186/n02979186_11957.JPEG
2train/n02979186/n02979186_9715.JPEGn02979186n02979186n02979186n03417042n03000684Falsen02979186cassette player482traintrain/n02979186/n02979186_9715.JPEG
3train/n02979186/n02979186_21736.JPEGn02979186n02979186n02979186n02979186n03417042Falsen02979186cassette player482traintrain/n02979186/n02979186_21736.JPEG
4train/n02979186/ILSVRC2012_val_00046953.JPEGn02979186n02979186n02979186n02979186n03394916Falsen02979186cassette player482traintrain/n02979186/ILSVRC2012_val_00046953.JPEG
5train/n02979186/n02979186_10568.JPEGn02979186n02979186n02979186n02979186n03000684Falsen02979186cassette player482traintrain/n02979186/n02979186_10568.JPEG
6train/n02979186/n02979186_2745.JPEGn02979186n02979186n02979186n03394916n02979186Falsen02979186cassette player482traintrain/n02979186/n02979186_2745.JPEG
7train/n02979186/n02979186_3529.JPEGn02979186n02979186n02979186n02979186n03417042Falsen02979186cassette player482traintrain/n02979186/n02979186_3529.JPEG
8train/n02979186/n02979186_10756.JPEGn02979186n02979186n02979186n02979186n03445777Falsen02979186cassette player482traintrain/n02979186/n02979186_10756.JPEG
9train/n02979186/n02979186_7058.JPEGn02979186n02979186n02979186n02979186n02979186Falsen02979186cassette player482traintrain/n02979186/n02979186_7058.JPEG
" - ], - "text/plain": [ - "DataPanel(nrows: 10, ncols: 13)" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dp" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import hapi\n", - "hapi.config.data_dir = \"/Users/eyubogln/code/hapi/data/tasks\"" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "1c9365e196fe48f3b435e9e72bf9c2fb", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "0it [00:00, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "preds = hapi.get_predictions(dataset=\"expw\", include_data=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "preds" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
example_id (PandasSeriesColumn)confidence (NumpyArrayColumn)predicted_label (NumpyArrayColumn)image_name (PandasSeriesColumn)face_id_in_image (PandasSeriesColumn)face_box_top (PandasSeriesColumn)face_box_left (PandasSeriesColumn)face_box_right (PandasSeriesColumn)face_box_bottom (PandasSeriesColumn)face_box_cofidence (PandasSeriesColumn)expression_label (PandasSeriesColumn)image (ImageColumn)
0amazed_expression_236_00.5085amazed_expression_236.jpg014511077086.35895
1distressed_wife_565_10.9606distressed_wife_565.jpg111331945524965.45566
2heartbroken_woman_777_00.9986heartbroken_woman_777.jpg012411523023971.43556
3crying_worker_764_00.7304crying_worker_764.jpg0266912136872263.11534
4crying_woman_15_01.0004crying_woman_15.jpg053187348214106.50004
5astound_face_86_01.0003astound_face_86.jpg0120290386216102.92703
6astound_president_656_51.0003astound_president_656.jpg54001296139249660.01893
7angry_president_302_00.9196angry_president_302.jpg03913637027365.92376
8awe_wife_514_41.0003awe_wife_514.jpg473650460083274.74293
9angry_face_151_00.7166angry_face_151.jpg0537923821293.41230
.......................................
31500anxious_son_78_00.9976anxious_son_78.jpg094616666.08856
31501amazed_family_807_01.0003amazed_family_807.jpg0518942102259865.32073
31502crying_manager_6_00.8494crying_manager_6.jpg0262618518562.59564
31503astound_programmer_573_01.0003astound_programmer_573.jpg06425664044860.74533
31504astound_teacher_899_00.6056astound_teacher_899.jpg03439646410262.00641
31505awe_man_636_10.9876awe_man_636.jpg1282853428568.17216
31506amazed_family_472_61.0003amazed_family_472.jpg61830327383188687.37413
31507hostile_wife_629_10.9916hostile_wife_629.jpg12271305141834062.10296
31508astound_wife_132_11.0003astound_wife_132.jpg19649759319289.12013
31509mad_infant_314_01.0004mad_infant_314.jpg05221152836972.07384
" - ], - "text/plain": [ - "DataPanel(nrows: 31510, ncols: 12)" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "preds[\"fer/expw/microsoft_fer/21-02-16\"]" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "pred_dp = mk.DataPanel(predictions[\"fer/expw/microsoft_fer/21-02-16\"])\n", - "dp = pred_dp.merge(dp, on=\"example_id\")" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "31510" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(dp)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.7278641701047287" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "(dp[\"predicted_label\"].to_pandas() == dp[\"expression_label\"]).mean()" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
confidence (NumpyArrayColumn)predicted_label (NumpyArrayColumn)suffix (PandasSeriesColumn)example_id (PandasSeriesColumn)
00.50850amazed_expression_236
10.96061distressed_wife_565
20.99860heartbroken_woman_777
30.73040crying_worker_764
41.00040crying_woman_15
51.00030astound_face_86
61.00035astound_president_656
70.91960angry_president_302
81.00034awe_wife_514
90.71660angry_face_151
...............
315000.99760anxious_son_78
315011.00030amazed_family_807
315020.84940crying_manager_6
315031.00030astound_programmer_573
315040.60560astound_teacher_899
315050.98761awe_man_636
315061.00036amazed_family_472
315070.99161hostile_wife_629
315081.00031astound_wife_132
315091.00040mad_infant_314
" - ], - "text/plain": [ - "DataPanel(nrows: 31510, ncols: 4)" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pred_dp" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
example_id (PandasSeriesColumn)confidence (NumpyArrayColumn)predicted_label (NumpyArrayColumn)suffix (PandasSeriesColumn)image_name (PandasSeriesColumn)face_id_in_image (PandasSeriesColumn)face_box_top (PandasSeriesColumn)face_box_left (PandasSeriesColumn)face_box_right (PandasSeriesColumn)face_box_bottom (PandasSeriesColumn)face_box_cofidence (PandasSeriesColumn)expression_label (PandasSeriesColumn)image (ImageColumn)
0amazed_expression_2360.50850amazed_expression_236.jpg014511077086.35895
1distressed_wife_5650.96061distressed_wife_565.jpg111331945524965.45566
2heartbroken_woman_7770.99860heartbroken_woman_777.jpg012411523023971.43556
3crying_worker_7640.73040crying_worker_764.jpg0266912136872263.11534
4crying_woman_151.00040crying_woman_15.jpg053187348214106.50004
5astound_face_861.00030astound_face_86.jpg0120290386216102.92703
6astound_president_6561.00035astound_president_656.jpg254016232470271.33333
7astound_president_6561.00035astound_president_656.jpg635278488044857.20313
8astound_president_6561.00035astound_president_656.jpg146458872359976.96983
9astound_president_6561.00035astound_president_656.jpg146458872359976.96983
..........................................
69627distressed_couple_1220.85460distressed_couple_122.jpg07232539213980.92773
69628heartbroken_student_8190.68350heartbroken_student_819.jpg0646444944975.87613
69629anxious_son_780.99760anxious_son_78.jpg094616666.08856
69630amazed_family_8071.00030amazed_family_807.jpg25981242130966538.92593
69631amazed_family_8071.00030amazed_family_807.jpg0518942102259865.32073
69632crying_manager_60.84940crying_manager_6.jpg0262618518562.59564
69633astound_programmer_5731.00030astound_programmer_573.jpg06425664044860.74533
69634astound_teacher_8990.60560astound_teacher_899.jpg03439646410262.00641
69635awe_man_6360.98761awe_man_636.jpg1282853428568.17216
69636mad_infant_3141.00040mad_infant_314.jpg05221152836972.07384
" - ], - "text/plain": [ - "DataPanel(nrows: 69637, ncols: 13)" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pred_dp.merge(dp, on=\"example_id\")" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
image_name (PandasSeriesColumn)face_id_in_image (PandasSeriesColumn)face_box_top (PandasSeriesColumn)face_box_left (PandasSeriesColumn)face_box_right (PandasSeriesColumn)face_box_bottom (PandasSeriesColumn)face_box_cofidence (PandasSeriesColumn)expression_label (PandasSeriesColumn)image (ImageColumn)
0angry_actor_104.jpg02811322614122.936200
1angry_actor_109.jpg03115734521950.305600
2angry_actor_120.jpg1535337237213.943402
3angry_actor_13.jpg0775136238885.810403
4angry_actor_132.jpg0953141247682.394800
5angry_actor_137.jpg09346884246788.951900
6angry_actor_139.jpg0001127112733.524800
7angry_actor_14.jpg0131202009339.755400
8angry_actor_147.jpg1119471422148.797396
9angry_actor_150.jpg05626337616981.879200
..............................
91783afraid_woman_204.jpg020139310074.595006
91784afraid_girl_13.jpg0021052531533.742804
91785surprised_expression_629.jpg088918610544.091405
91786surprised_expression_409.jpg0804618421863.806905
91787expressionless_husband_673.jpg04819438824282.297504
91788surprised_expression_546.jpg0707035135137.711705
91789surprised_expression_381.jpg0516111710791.630705
91790surprised_expression_395.jpg0279525819096.286105
91791ecstatic_asian_31.jpg06013618410839.922303
91792surprised_expression_394.jpg0473815216177.775805
" - ], - "text/plain": [ - "DataPanel(nrows: 91793, ncols: 9)" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dp" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "from tqdm.auto import tqdm\n", - "df = pd.read_csv(\n", - " \"/Users/eyubogln/.meerkat/datasets/expw/main/label/label.lst\",\n", - " delimiter=\" \",\n", - " names=[\"image_name\", \"face_id_in_image\", \"face_box_top\", \"face_box_left\", \"face_box_right\", \"face_box_bottom\", \"face_box_cofidence\", \"expression_label\"]\n", - ")\n", - "# for name in tqdm(df[\"image_name\"]):\n", - "# if not os.path.exists(\n", - "# os.path.join(\n", - "# \"/Users/eyubogln/.meerkat/datasets/expw/main/image/origin\",\n", - "# name\n", - "# )\n", - "# ):\n", - "# raise ValueError\n", - " " - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "assert df[\"image_name\"].apply(lambda name: os.path.exists(\n", - " os.path.join(\n", - " \"/Users/eyubogln/.meerkat/datasets/expw/main/image/origin\",\n", - " name\n", - " )\n", - " )\n", - ").all()\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0 angry_actor_104.jpg\n", - "1 angry_actor_109.jpg\n", - "2 angry_actor_120.jpg\n", - "3 angry_actor_13.jpg\n", - "4 angry_actor_132.jpg\n", - " ... \n", - "91788 surprised_expression_546.jpg\n", - "91789 surprised_expression_381.jpg\n", - "91790 surprised_expression_395.jpg\n", - "91791 ecstatic_asian_31.jpg\n", - "91792 surprised_expression_394.jpg\n", - "Name: image_name, Length: 91793, dtype: object" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 12%|█▏ | 131M/1.05G [1:06:03<7:44:32, 32.9kB/s]" - ] - } - ], - "source": [ - "df[\"image_name\"]" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
namedescriptioncitationhomepagelicensetags
0pascalNoneNoneNoneNoneNone
1imagenetteImagenette is a subset of 10 easily classified...Nonehttps://github.com/fastai/imagenetteNone[image_classification, computer_vision]
\n", - "
" - ], - "text/plain": [ - " name description citation \\\n", - "0 pascal None None \n", - "1 imagenette Imagenette is a subset of 10 easily classified... None \n", - "\n", - " homepage license \\\n", - "0 None None \n", - "1 https://github.com/fastai/imagenette None \n", - "\n", - " tags \n", - "0 None \n", - "1 [image_classification, computer_vision] " - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "rows = []\n", - "for name, builder in mk.datasets.datasets:\n", - " rows.append(\n", - " builder.info.__dict__\n", - " )\n", - "pd.DataFrame(rows)" - ] - }, - { - "cell_type": "code", - "execution_count": 43, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
 citationdescriptionhomepagelicensenametags
0NoneNoneNoneNonepascalNone
1NoneImagenette is a subset of 10 easily classified classes from Imagenet (tench, English springer, cassette player, chain saw, church, French horn, garbage truck, gas pump, golf ball, parachute).https://github.com/fastai/imagenetteNoneimagenette['image_classification', 'computer_vision']
\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 43, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from IPython.display import HTML\n", - "dp = mk.datasets.catalog\n", - "df = dp.to_pandas()\n", - "style = df.style.set_table_styles({\n", - " \"description\":[\n", - " {\n", - " \"selector\": '', \n", - " \"props\": \"max-width: 50%;\"\n", - " }\n", - " ]\n", - " }\n", - ")\n", - "HTML(style.to_html(index=))" - ] - }, - { - "cell_type": "code", - "execution_count": 45, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
citationdescriptionhomepagelicensetags
name
pascalNoneNoneNoneNoneNone
imagenetteNoneImagenette is a subset of 10 easily classified...https://github.com/fastai/imagenetteNone[image_classification, computer_vision]
\n", - "
" - ], - "text/plain": [ - " citation description \\\n", - "name \n", - "pascal None None \n", - "imagenette None Imagenette is a subset of 10 easily classified... \n", - "\n", - " homepage license \\\n", - "name \n", - "pascal None None \n", - "imagenette https://github.com/fastai/imagenette None \n", - "\n", - " tags \n", - "name \n", - "pascal None \n", - "imagenette [image_classification, computer_vision] " - ] - }, - "execution_count": 45, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.set_index(\"name\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
citationdescriptionhomepagelicensenametags
0NoneNoneNoneNonepascalNone
1NoneImagenette is a subset of 10 easily classified classes from Imagenet (tench, English springer, cassette player, chain saw, church, French horn, garbage truck, gas pump, golf ball, parachute).https://github.com/fastai/imagenetteNoneimagenette[image_classification, computer_vision]
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "HTML(df.to_html())" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
citation (ListColumn)description (ListColumn)homepage (ListColumn)license (ListColumn)name (PandasSeriesColumn)tags (ListColumn)
0NoneNoneNoneNonepascalNone
1None'Imagenette is a subset of 10 easily classified classes from Imagenet (tench, English springer, cassette player, chain saw, church, French horn, garbage truck, gas pump, golf ball, parachute).''https://github.com/fastai/imagenette'Noneimagenette['image_classification', 'computer_vision']
" - ], - "text/plain": [ - "DataPanel(nrows: 2, ncols: 6)" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "mk.datasets.datasets.catalog" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "from datasets import DownloadManager\n", - "manager = DownloadManager(\n", - " dataset_name=\"test\",\n", - " data_dir=\"/Users/eyubogln/.meerkat/datasets/test\",\n", - " base_path=\"/Users/eyubogln/.meerkat/datasets/test\",\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "from meerkat.datasets.utils import download_url\n", - "out = download_url(\n", - " \"https://storage.googleapis.com/hapi-data/hapi.tar.gz\", \n", - " \"/Users/eyubogln/.meerkat/datasets/test\"\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "from meerkat.datasets.utils import extract\n", - "data = extract(out, \"/Users/eyubogln/.meerkat/datasets/test/hapi\")" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "from datasets.utils.file_utils import get_from_cache" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "extract(\n", - " \n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "ename": "FileNotFoundError", - "evalue": "Couldn't find a dataset script at /Users/eyubogln/code/hapi/examples/sdfkjsdfh/sdfkjsdfh.py or any data file in the same directory. Couldn't find 'sdfkjsdfh' on the Hugging Face Hub either: FileNotFoundError: Couldn't find file at https://raw.githubusercontent.com/huggingface/datasets/master/datasets/sdfkjsdfh/sdfkjsdfh.py", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m/Users/eyubogln/code/hapi/examples/dev.ipynb Cell 4'\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mdatasets\u001b[39;00m\n\u001b[0;32m----> 2\u001b[0m ds \u001b[39m=\u001b[39m datasets\u001b[39m.\u001b[39;49mload_dataset(\n\u001b[1;32m 3\u001b[0m path\u001b[39m=\u001b[39;49m\u001b[39m\"\u001b[39;49m\u001b[39msdfkjsdfh\u001b[39;49m\u001b[39m\"\u001b[39;49m,\n\u001b[1;32m 4\u001b[0m )\n", - "File \u001b[0;32m~/miniconda3/envs/domino/lib/python3.8/site-packages/datasets/load.py:1664\u001b[0m, in \u001b[0;36mload_dataset\u001b[0;34m(path, name, data_dir, data_files, split, cache_dir, features, download_config, download_mode, ignore_verifications, keep_in_memory, save_infos, revision, use_auth_token, task, streaming, **config_kwargs)\u001b[0m\n\u001b[1;32m 1661\u001b[0m ignore_verifications \u001b[39m=\u001b[39m ignore_verifications \u001b[39mor\u001b[39;00m save_infos\n\u001b[1;32m 1663\u001b[0m \u001b[39m# Create a dataset builder\u001b[39;00m\n\u001b[0;32m-> 1664\u001b[0m builder_instance \u001b[39m=\u001b[39m load_dataset_builder(\n\u001b[1;32m 1665\u001b[0m path\u001b[39m=\u001b[39;49mpath,\n\u001b[1;32m 1666\u001b[0m name\u001b[39m=\u001b[39;49mname,\n\u001b[1;32m 1667\u001b[0m data_dir\u001b[39m=\u001b[39;49mdata_dir,\n\u001b[1;32m 1668\u001b[0m data_files\u001b[39m=\u001b[39;49mdata_files,\n\u001b[1;32m 1669\u001b[0m cache_dir\u001b[39m=\u001b[39;49mcache_dir,\n\u001b[1;32m 1670\u001b[0m features\u001b[39m=\u001b[39;49mfeatures,\n\u001b[1;32m 1671\u001b[0m download_config\u001b[39m=\u001b[39;49mdownload_config,\n\u001b[1;32m 1672\u001b[0m download_mode\u001b[39m=\u001b[39;49mdownload_mode,\n\u001b[1;32m 1673\u001b[0m revision\u001b[39m=\u001b[39;49mrevision,\n\u001b[1;32m 1674\u001b[0m use_auth_token\u001b[39m=\u001b[39;49muse_auth_token,\n\u001b[1;32m 1675\u001b[0m \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mconfig_kwargs,\n\u001b[1;32m 1676\u001b[0m )\n\u001b[1;32m 1678\u001b[0m \u001b[39m# Return iterable dataset in case of streaming\u001b[39;00m\n\u001b[1;32m 1679\u001b[0m \u001b[39mif\u001b[39;00m streaming:\n", - "File \u001b[0;32m~/miniconda3/envs/domino/lib/python3.8/site-packages/datasets/load.py:1490\u001b[0m, in \u001b[0;36mload_dataset_builder\u001b[0;34m(path, name, data_dir, data_files, cache_dir, features, download_config, download_mode, revision, use_auth_token, **config_kwargs)\u001b[0m\n\u001b[1;32m 1488\u001b[0m download_config \u001b[39m=\u001b[39m download_config\u001b[39m.\u001b[39mcopy() \u001b[39mif\u001b[39;00m download_config \u001b[39melse\u001b[39;00m DownloadConfig()\n\u001b[1;32m 1489\u001b[0m download_config\u001b[39m.\u001b[39muse_auth_token \u001b[39m=\u001b[39m use_auth_token\n\u001b[0;32m-> 1490\u001b[0m dataset_module \u001b[39m=\u001b[39m dataset_module_factory(\n\u001b[1;32m 1491\u001b[0m path,\n\u001b[1;32m 1492\u001b[0m revision\u001b[39m=\u001b[39;49mrevision,\n\u001b[1;32m 1493\u001b[0m download_config\u001b[39m=\u001b[39;49mdownload_config,\n\u001b[1;32m 1494\u001b[0m download_mode\u001b[39m=\u001b[39;49mdownload_mode,\n\u001b[1;32m 1495\u001b[0m data_dir\u001b[39m=\u001b[39;49mdata_dir,\n\u001b[1;32m 1496\u001b[0m data_files\u001b[39m=\u001b[39;49mdata_files,\n\u001b[1;32m 1497\u001b[0m )\n\u001b[1;32m 1499\u001b[0m \u001b[39m# Get dataset builder class from the processing script\u001b[39;00m\n\u001b[1;32m 1500\u001b[0m builder_cls \u001b[39m=\u001b[39m import_main_class(dataset_module\u001b[39m.\u001b[39mmodule_path)\n", - "File \u001b[0;32m~/miniconda3/envs/domino/lib/python3.8/site-packages/datasets/load.py:1238\u001b[0m, in \u001b[0;36mdataset_module_factory\u001b[0;34m(path, revision, download_config, download_mode, force_local_path, dynamic_modules_path, data_dir, data_files, **download_kwargs)\u001b[0m\n\u001b[1;32m 1236\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mConnectionError\u001b[39;00m(\u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mCouln\u001b[39m\u001b[39m'\u001b[39m\u001b[39mt reach the Hugging Face Hub for dataset \u001b[39m\u001b[39m'\u001b[39m\u001b[39m{\u001b[39;00mpath\u001b[39m}\u001b[39;00m\u001b[39m'\u001b[39m\u001b[39m: \u001b[39m\u001b[39m{\u001b[39;00me1\u001b[39m}\u001b[39;00m\u001b[39m\"\u001b[39m) \u001b[39mfrom\u001b[39;00m \u001b[39mNone\u001b[39m\n\u001b[1;32m 1237\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39misinstance\u001b[39m(e1, \u001b[39mFileNotFoundError\u001b[39;00m):\n\u001b[0;32m-> 1238\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mFileNotFoundError\u001b[39;00m(\n\u001b[1;32m 1239\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mCouldn\u001b[39m\u001b[39m'\u001b[39m\u001b[39mt find a dataset script at \u001b[39m\u001b[39m{\u001b[39;00mrelative_to_absolute_path(combined_path)\u001b[39m}\u001b[39;00m\u001b[39m or any data file in the same directory. \u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m 1240\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mCouldn\u001b[39m\u001b[39m'\u001b[39m\u001b[39mt find \u001b[39m\u001b[39m'\u001b[39m\u001b[39m{\u001b[39;00mpath\u001b[39m}\u001b[39;00m\u001b[39m'\u001b[39m\u001b[39m on the Hugging Face Hub either: \u001b[39m\u001b[39m{\u001b[39;00m\u001b[39mtype\u001b[39m(e1)\u001b[39m.\u001b[39m\u001b[39m__name__\u001b[39m\u001b[39m}\u001b[39;00m\u001b[39m: \u001b[39m\u001b[39m{\u001b[39;00me1\u001b[39m}\u001b[39;00m\u001b[39m\"\u001b[39m\n\u001b[1;32m 1241\u001b[0m ) \u001b[39mfrom\u001b[39;00m \u001b[39mNone\u001b[39m\n\u001b[1;32m 1242\u001b[0m \u001b[39mraise\u001b[39;00m e1 \u001b[39mfrom\u001b[39;00m \u001b[39mNone\u001b[39m\n\u001b[1;32m 1243\u001b[0m \u001b[39melse\u001b[39;00m:\n", - "\u001b[0;31mFileNotFoundError\u001b[0m: Couldn't find a dataset script at /Users/eyubogln/code/hapi/examples/sdfkjsdfh/sdfkjsdfh.py or any data file in the same directory. Couldn't find 'sdfkjsdfh' on the Hugging Face Hub either: FileNotFoundError: Couldn't find file at https://raw.githubusercontent.com/huggingface/datasets/master/datasets/sdfkjsdfh/sdfkjsdfh.py" - ] - } - ], - "source": [ - "import datasets\n", - "ds = datasets.load_dataset(\n", - " path=\"sdfkjsdfh\",\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Dataset({\n", - " features: ['img', 'label'],\n", - " num_rows: 50000\n", - "})" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ds[\"train\"]" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "from meerkat.contrib.pascal import build_pascal_2012_dp\n", - "dp = build_pascal_2012_dp(dataset_dir=\"/Users/eyubogln/data/pascal\", download=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
id (PandasSeriesColumn)split (PandasSeriesColumn)file_name (PandasSeriesColumn)image (ImageColumn)aeroplane (PandasSeriesColumn)bicycle (PandasSeriesColumn)bird (PandasSeriesColumn)boat (PandasSeriesColumn)bottle (PandasSeriesColumn)bus (PandasSeriesColumn)car (PandasSeriesColumn)cat (PandasSeriesColumn)chair (PandasSeriesColumn)cow (PandasSeriesColumn)diningtable (PandasSeriesColumn)dog (PandasSeriesColumn)horse (PandasSeriesColumn)motorbike (PandasSeriesColumn)person (PandasSeriesColumn)pottedplant (PandasSeriesColumn)sheep (PandasSeriesColumn)sofa (PandasSeriesColumn)train (PandasSeriesColumn)tvmonitor (PandasSeriesColumn)
02008_000008train2008_000008.jpg00000000000010100000
12008_000015train2008_000015.jpg00001000000000000000
22008_000019train2008_000019.jpg00000000000100000000
32008_000023train2008_000023.jpg00001000000000100001
42008_000028train2008_000028.jpg00000010000000000000
...........................................................................
115352011_003261val2011_003261.jpg01000000000000100000
115362011_003262val2011_003262.jpg00001000001000100000
115372011_003269val2011_003269.jpg00000010000000000000
115382011_003271val2011_003271.jpg00001000000000000000
115392011_003275val2011_003275.jpg10000000000000000000
" - ], - "text/plain": [ - "DataPanel(nrows: 11540, ncols: 24)" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dp" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "100%|██████████| 4/4 [00:00<00:00, 24.51it/s]\n" - ] - }, - { - "data": { - "text/plain": [ - "dict_keys(['mic/pascal/google_mic/20-10-28', 'mic/pascal/microsoft_mic/20-10-28', 'mic/pascal/google_mic/22-02-14_v080', 'mic/pascal/microsoft_mic/22-02-14_v080'])" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import hapi\n", - "hapi.config.data_dir = \"/Users/eyubogln/code/hapi/data/tasks\"\n", - "hapi.get_predictions(task=\"mic\", dataset=\"pascal\", api=[\"google_mic\", \"microsoft_mic\"]).keys()" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 0%| | 0/2 [00:00\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0m hapi\u001b[39m.\u001b[39;49mget_predictions(task\u001b[39m=\u001b[39;49m\u001b[39m\"\u001b[39;49m\u001b[39mmic\u001b[39;49m\u001b[39m\"\u001b[39;49m, dataset\u001b[39m=\u001b[39;49m\u001b[39m\"\u001b[39;49m\u001b[39mcoco\u001b[39;49m\u001b[39m\"\u001b[39;49m, api\u001b[39m=\u001b[39;49m\u001b[39m\"\u001b[39;49m\u001b[39mgoogle_mic\u001b[39;49m\u001b[39m\"\u001b[39;49m)\n", - "File \u001b[0;32m~/code/hapi/hapi/__init__.py:85\u001b[0m, in \u001b[0;36mget_predictions\u001b[0;34m(task, dataset, api, date)\u001b[0m\n\u001b[1;32m 83\u001b[0m preds \u001b[39m=\u001b[39m {}\n\u001b[1;32m 84\u001b[0m \u001b[39mfor\u001b[39;00m path \u001b[39min\u001b[39;00m tqdm(df[\u001b[39m\"\u001b[39m\u001b[39mpath\u001b[39m\u001b[39m\"\u001b[39m]):\n\u001b[0;32m---> 85\u001b[0m preds[os\u001b[39m.\u001b[39;49mpath\u001b[39m.\u001b[39;49msplittext(path)[\u001b[39m0\u001b[39m]] \u001b[39m=\u001b[39m json\u001b[39m.\u001b[39mload(\n\u001b[1;32m 86\u001b[0m \u001b[39mopen\u001b[39m(os\u001b[39m.\u001b[39mpath\u001b[39m.\u001b[39mjoin(config\u001b[39m.\u001b[39mdata_dir, path))\n\u001b[1;32m 87\u001b[0m )\n\u001b[1;32m 88\u001b[0m \u001b[39mreturn\u001b[39;00m preds\n", - "\u001b[0;31mAttributeError\u001b[0m: module 'posixpath' has no attribute 'splittext'" - ] - } - ], - "source": [ - "hapi.get_predictions(task=\"mic\", dataset=\"coco\", api=\"google_mic\")" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "dp = mk.DataPanel.read(\"/Users/eyubogln/code/hapi/data/tasks/str/lsvt/google_str/20-09-20.mk\")" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "data = dp.to_pandas().to_dict(orient=\"records\")" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
taskdatasetapidatepathcost_per_10k
0scrcommandibm_scr20-03-29scr/command/ibm_scr/20-03-29.json25.00
1scrcommanddeepspeech_lib_scr20-03-29scr/command/deepspeech_lib_scr/20-03-29.json0.02
2scrcommandgoogle_scr20-03-29scr/command/google_scr/20-03-29.json60.00
3scrcommandmicrosoft_scr20-03-29scr/command/microsoft_scr/20-03-29.json41.00
4scrcommandgoogle_scr22-05-23scr/command/google_scr/22-05-23.json60.00
.....................
171ferferplusfacepp_fer22-05-23fer/ferplus/facepp_fer/22-05-23.json5.00
172ferferplusmicrosoft_fer22-05-23fer/ferplus/microsoft_fer/22-05-23.json5.00
173saimdbbaidu_sa21-02-21sa/imdb/baidu_sa/21-02-21.json3.50
174saimdbgoogle_sa21-02-21sa/imdb/google_sa/21-02-21.json2.50
175saimdbamazon_sa21-02-21sa/imdb/amazon_sa/21-02-21.json0.75
\n", - "

176 rows × 6 columns

\n", - "
" - ], - "text/plain": [ - " task dataset api date \\\n", - "0 scr command ibm_scr 20-03-29 \n", - "1 scr command deepspeech_lib_scr 20-03-29 \n", - "2 scr command google_scr 20-03-29 \n", - "3 scr command microsoft_scr 20-03-29 \n", - "4 scr command google_scr 22-05-23 \n", - ".. ... ... ... ... \n", - "171 fer ferplus facepp_fer 22-05-23 \n", - "172 fer ferplus microsoft_fer 22-05-23 \n", - "173 sa imdb baidu_sa 21-02-21 \n", - "174 sa imdb google_sa 21-02-21 \n", - "175 sa imdb amazon_sa 21-02-21 \n", - "\n", - " path cost_per_10k \n", - "0 scr/command/ibm_scr/20-03-29.json 25.00 \n", - "1 scr/command/deepspeech_lib_scr/20-03-29.json 0.02 \n", - "2 scr/command/google_scr/20-03-29.json 60.00 \n", - "3 scr/command/microsoft_scr/20-03-29.json 41.00 \n", - "4 scr/command/google_scr/22-05-23.json 60.00 \n", - ".. ... ... \n", - "171 fer/ferplus/facepp_fer/22-05-23.json 5.00 \n", - "172 fer/ferplus/microsoft_fer/22-05-23.json 5.00 \n", - "173 sa/imdb/baidu_sa/21-02-21.json 3.50 \n", - "174 sa/imdb/google_sa/21-02-21.json 2.50 \n", - "175 sa/imdb/amazon_sa/21-02-21.json 0.75 \n", - "\n", - "[176 rows x 6 columns]" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "hapi.list()" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "import hub\n", - "\n", - "ds = hub.load(\"hub://activeloop/spoken_mnist\")" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Cloning into '/Users/eyubogln/data/fsdd'...\n" - ] - } - ], - "source": [ - "from meerkat.contrib.fsdd import _download\n", - "\n", - "_download(\"/Users/eyubogln/data/fsdd\")" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Dataset(path='hub://activeloop/spoken_mnist', read_only=True, tensors=['spectrograms', 'labels', 'audio', 'speakers'])" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ds" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
image_nameconfidenceoriginal_predicted_labelexample_id
0AudioMNIST_0_01_0.wav0.6917926AudioMNIST_0_01_0.wav
1AudioMNIST_0_01_1.wav0.7065176AudioMNIST_0_01_1.wav
2AudioMNIST_0_01_10.wav0.6303320AudioMNIST_0_01_10.wav
3AudioMNIST_0_01_11.wav0.6363990AudioMNIST_0_01_11.wav
4AudioMNIST_0_01_12.wav0.7984870AudioMNIST_0_01_12.wav
...............
29995AudioMNIST_9_60_5.wav0.6510349AudioMNIST_9_60_5.wav
29996AudioMNIST_9_60_6.wav0.8063979AudioMNIST_9_60_6.wav
29997AudioMNIST_9_60_7.wav0.7787519AudioMNIST_9_60_7.wav
29998AudioMNIST_9_60_8.wav0.6213009AudioMNIST_9_60_8.wav
29999AudioMNIST_9_60_9.wav0.8014049AudioMNIST_9_60_9.wav
\n", - "

30000 rows × 4 columns

\n", - "
" - ], - "text/plain": [ - " image_name confidence original_predicted_label \\\n", - "0 AudioMNIST_0_01_0.wav 0.691792 6 \n", - "1 AudioMNIST_0_01_1.wav 0.706517 6 \n", - "2 AudioMNIST_0_01_10.wav 0.630332 0 \n", - "3 AudioMNIST_0_01_11.wav 0.636399 0 \n", - "4 AudioMNIST_0_01_12.wav 0.798487 0 \n", - "... ... ... ... \n", - "29995 AudioMNIST_9_60_5.wav 0.651034 9 \n", - "29996 AudioMNIST_9_60_6.wav 0.806397 9 \n", - "29997 AudioMNIST_9_60_7.wav 0.778751 9 \n", - "29998 AudioMNIST_9_60_8.wav 0.621300 9 \n", - "29999 AudioMNIST_9_60_9.wav 0.801404 9 \n", - "\n", - " example_id \n", - "0 AudioMNIST_0_01_0.wav \n", - "1 AudioMNIST_0_01_1.wav \n", - "2 AudioMNIST_0_01_10.wav \n", - "3 AudioMNIST_0_01_11.wav \n", - "4 AudioMNIST_0_01_12.wav \n", - "... ... \n", - "29995 AudioMNIST_9_60_5.wav \n", - "29996 AudioMNIST_9_60_6.wav \n", - "29997 AudioMNIST_9_60_7.wav \n", - "29998 AudioMNIST_9_60_8.wav \n", - "29999 AudioMNIST_9_60_9.wav \n", - "\n", - "[30000 rows x 4 columns]" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import pandas as pd \n", - "df = pd.read_json(\n", - " \"/Users/eyubogln/code/hapi/data/tasks/scr/amnist/google_scr/20-03-29.json\"\n", - ")\n", - "df" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "interpreter": { - "hash": "96dff6f5004106d02e498591bec065b0f2cd6ad02b2a1a76f1b2f4046570fc42" - }, - "kernelspec": { - "display_name": "Python 3.8.11 ('meerkat')", - "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.8.11" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -}