Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save jeanpat/5ba746d6cffb9abeb7ac451ee3ff8797 to your computer and use it in GitHub Desktop.
Save jeanpat/5ba746d6cffb9abeb7ac451ee3ff8797 to your computer and use it in GitHub Desktop.
SmallSample_125_displayCOCO_Train-Predict_with_lightning-flash.ipynb
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/jeanpat/5ba746d6cffb9abeb7ac451ee3ff8797/smallsample_125_displaycoco_train-predict_with_lightning-flash.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "raw",
"metadata": {
"id": "0aDR_z6fgaMS"
},
"source": [
"# Check and display a dataset of overlapping pairs of chromosomes in COCO-format:\n",
"\n",
"The dataset was prepared from DAPI conterstained human chromosomes from human lymphocytes labelled with Cy3-PNA telomeric probes. DAPI and CY3 images were combined in a single chanel grayscaled image.\n",
"Pairs of single chromosomes where chosen an systematically overlapped. A small subset of these overlapping chromosomes were segmented by hand aka annotated with and online tool, makesens.ai and saved in COCO format.\n",
"\n",
"The aim of this dataset is to check a protocol to load and train an instance segmentation algorithm possibly based on pytorch + flightning-flash\n",
"\n",
"This notebook is intended to run in google colab environnement using collaboratory."
]
},
{
"cell_type": "markdown",
"source": [
"# check modules before install"
],
"metadata": {
"id": "pmENCPwvMun3"
}
},
{
"cell_type": "code",
"source": [
"import torch\n",
"import fastai"
],
"metadata": {
"id": "m6UYQCCGMzsv"
},
"execution_count": 1,
"outputs": []
},
{
"cell_type": "code",
"source": [
"print(torch.__version__)\n",
"print(fastai.__version__)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "XJ9nKRe_M6ix",
"outputId": "598703cd-d52f-4fb3-aff6-89778897cac1"
},
"execution_count": 2,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"1.12.1+cu113\n",
"2.7.9\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"# install modules"
],
"metadata": {
"id": "vLjp5OQLJocw"
}
},
{
"cell_type": "markdown",
"source": [
"According to https://github.com/Lightning-AI/lightning-flash/issues/803"
],
"metadata": {
"id": "QNTJwBhpQLSC"
}
},
{
"cell_type": "code",
"source": [
"!pip uninstall -y torchtext fastai\n",
"!pip install lightning-flash[image] icevision"
],
"metadata": {
"id": "lPkrVecMQLnL",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"outputId": "8a71b808-e7b6-4e65-975c-38df05bbc2f4"
},
"execution_count": 3,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Found existing installation: torchtext 0.13.1\n",
"Uninstalling torchtext-0.13.1:\n",
" Successfully uninstalled torchtext-0.13.1\n",
"Found existing installation: fastai 2.7.9\n",
"Uninstalling fastai-2.7.9:\n",
" Successfully uninstalled fastai-2.7.9\n",
"Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
"Collecting lightning-flash[image]\n",
" Downloading lightning_flash-0.7.5-py3-none-any.whl (1.1 MB)\n",
"\u001b[K |████████████████████████████████| 1.1 MB 5.1 MB/s \n",
"\u001b[?25hCollecting icevision\n",
" Downloading icevision-0.12.0-py3-none-any.whl (262 kB)\n",
"\u001b[K |████████████████████████████████| 262 kB 60.4 MB/s \n",
"\u001b[?25hRequirement already satisfied: importlib-metadata>=1 in /usr/local/lib/python3.7/dist-packages (from icevision) (4.12.0)\n",
"Collecting yolov5-icevision>=6.0.0\n",
" Downloading yolov5_icevision-6.0.0-py3-none-any.whl (798 kB)\n",
"\u001b[K |████████████████████████████████| 798 kB 44.1 MB/s \n",
"\u001b[?25hCollecting fastcore<1.4,>=1.3.0\n",
" Downloading fastcore-1.3.29-py3-none-any.whl (55 kB)\n",
"\u001b[K |████████████████████████████████| 55 kB 4.1 MB/s \n",
"\u001b[?25hCollecting effdet<0.3,>=0.2.1\n",
" Downloading effdet-0.2.4-py3-none-any.whl (111 kB)\n",
"\u001b[K |████████████████████████████████| 111 kB 58.8 MB/s \n",
"\u001b[?25hCollecting torch<1.11,>=1.9.0\n",
" Downloading torch-1.10.2-cp37-cp37m-manylinux1_x86_64.whl (881.9 MB)\n",
"\u001b[K |██████████████████████████████▎ | 834.1 MB 1.1 MB/s eta 0:00:46tcmalloc: large alloc 1147494400 bytes == 0x3a746000 @ 0x7ffbe3140615 0x592b76 0x4df71e 0x59afff 0x515655 0x549576 0x593fce 0x548ae9 0x51566f 0x549576 0x593fce 0x548ae9 0x5127f1 0x598e3b 0x511f68 0x598e3b 0x511f68 0x598e3b 0x511f68 0x4bc98a 0x532e76 0x594b72 0x515600 0x549576 0x593fce 0x548ae9 0x5127f1 0x549576 0x593fce 0x5118f8 0x593dd7\n",
"\u001b[K |████████████████████████████████| 881.9 MB 1.8 kB/s \n",
"\u001b[?25hRequirement already satisfied: opencv-python<5,>=4.1.1 in /usr/local/lib/python3.7/dist-packages (from icevision) (4.6.0.66)\n",
"Collecting resnest<0.0.7,>=0.0.6b20201125\n",
" Downloading resnest-0.0.6b20220831-py3-none-any.whl (49 kB)\n",
"\u001b[K |████████████████████████████████| 49 kB 5.3 MB/s \n",
"\u001b[?25hCollecting torchvision<0.12,>=0.10.0\n",
" Downloading torchvision-0.11.3-cp37-cp37m-manylinux1_x86_64.whl (23.2 MB)\n",
"\u001b[K |████████████████████████████████| 23.2 MB 1.5 MB/s \n",
"\u001b[?25hRequirement already satisfied: ipykernel<6,>=4.10.1 in /usr/local/lib/python3.7/dist-packages (from icevision) (5.3.4)\n",
"Collecting loguru>=0.5.3\n",
" Downloading loguru-0.6.0-py3-none-any.whl (58 kB)\n",
"\u001b[K |████████████████████████████████| 58 kB 6.0 MB/s \n",
"\u001b[?25hCollecting sahi<1.0,>=0.8.19\n",
" Downloading sahi-0.10.4-py3-none-any.whl (96 kB)\n",
"\u001b[K |████████████████████████████████| 96 kB 6.2 MB/s \n",
"\u001b[?25hRequirement already satisfied: tqdm<5,>=4.49.0 in /usr/local/lib/python3.7/dist-packages (from icevision) (4.64.0)\n",
"Collecting albumentations<1.1,>=1.0.3\n",
" Downloading albumentations-1.0.3-py3-none-any.whl (98 kB)\n",
"\u001b[K |████████████████████████████████| 98 kB 8.6 MB/s \n",
"\u001b[?25hCollecting pillow<9,>8.0.0\n",
" Downloading Pillow-8.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB)\n",
"\u001b[K |████████████████████████████████| 3.1 MB 33.9 MB/s \n",
"\u001b[?25hCollecting dataclasses==0.6\n",
" Downloading dataclasses-0.6-py3-none-any.whl (14 kB)\n",
"Requirement already satisfied: opencv-python-headless>=4.1.1 in /usr/local/lib/python3.7/dist-packages (from albumentations<1.1,>=1.0.3->icevision) (4.6.0.66)\n",
"Requirement already satisfied: scikit-image>=0.16.1 in /usr/local/lib/python3.7/dist-packages (from albumentations<1.1,>=1.0.3->icevision) (0.18.3)\n",
"Requirement already satisfied: numpy>=1.11.1 in /usr/local/lib/python3.7/dist-packages (from albumentations<1.1,>=1.0.3->icevision) (1.21.6)\n",
"Requirement already satisfied: PyYAML in /usr/local/lib/python3.7/dist-packages (from albumentations<1.1,>=1.0.3->icevision) (6.0)\n",
"Requirement already satisfied: scipy in /usr/local/lib/python3.7/dist-packages (from albumentations<1.1,>=1.0.3->icevision) (1.7.3)\n",
"Collecting omegaconf>=2.0\n",
" Downloading omegaconf-2.2.3-py3-none-any.whl (79 kB)\n",
"\u001b[K |████████████████████████████████| 79 kB 7.9 MB/s \n",
"\u001b[?25hCollecting timm>=0.3.2\n",
" Downloading timm-0.6.7-py3-none-any.whl (509 kB)\n",
"\u001b[K |████████████████████████████████| 509 kB 61.6 MB/s \n",
"\u001b[?25hRequirement already satisfied: pycocotools>=2.0.2 in /usr/local/lib/python3.7/dist-packages (from effdet<0.3,>=0.2.1->icevision) (2.0.4)\n",
"Requirement already satisfied: packaging in /usr/local/lib/python3.7/dist-packages (from fastcore<1.4,>=1.3.0->icevision) (21.3)\n",
"Requirement already satisfied: pip in /usr/local/lib/python3.7/dist-packages (from fastcore<1.4,>=1.3.0->icevision) (21.1.3)\n",
"Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.7/dist-packages (from importlib-metadata>=1->icevision) (3.8.1)\n",
"Requirement already satisfied: typing-extensions>=3.6.4 in /usr/local/lib/python3.7/dist-packages (from importlib-metadata>=1->icevision) (4.1.1)\n",
"Requirement already satisfied: tornado>=4.2 in /usr/local/lib/python3.7/dist-packages (from ipykernel<6,>=4.10.1->icevision) (5.1.1)\n",
"Requirement already satisfied: jupyter-client in /usr/local/lib/python3.7/dist-packages (from ipykernel<6,>=4.10.1->icevision) (6.1.12)\n",
"Requirement already satisfied: traitlets>=4.1.0 in /usr/local/lib/python3.7/dist-packages (from ipykernel<6,>=4.10.1->icevision) (5.1.1)\n",
"Requirement already satisfied: ipython>=5.0.0 in /usr/local/lib/python3.7/dist-packages (from ipykernel<6,>=4.10.1->icevision) (7.9.0)\n",
"Requirement already satisfied: prompt-toolkit<2.1.0,>=2.0.0 in /usr/local/lib/python3.7/dist-packages (from ipython>=5.0.0->ipykernel<6,>=4.10.1->icevision) (2.0.10)\n",
"Requirement already satisfied: pexpect in /usr/local/lib/python3.7/dist-packages (from ipython>=5.0.0->ipykernel<6,>=4.10.1->icevision) (4.8.0)\n",
"Requirement already satisfied: backcall in /usr/local/lib/python3.7/dist-packages (from ipython>=5.0.0->ipykernel<6,>=4.10.1->icevision) (0.2.0)\n",
"Collecting jedi>=0.10\n",
" Downloading jedi-0.18.1-py2.py3-none-any.whl (1.6 MB)\n",
"\u001b[K |████████████████████████████████| 1.6 MB 75.1 MB/s \n",
"\u001b[?25hRequirement already satisfied: pickleshare in /usr/local/lib/python3.7/dist-packages (from ipython>=5.0.0->ipykernel<6,>=4.10.1->icevision) (0.7.5)\n",
"Requirement already satisfied: decorator in /usr/local/lib/python3.7/dist-packages (from ipython>=5.0.0->ipykernel<6,>=4.10.1->icevision) (4.4.2)\n",
"Requirement already satisfied: setuptools>=18.5 in /usr/local/lib/python3.7/dist-packages (from ipython>=5.0.0->ipykernel<6,>=4.10.1->icevision) (57.4.0)\n",
"Requirement already satisfied: pygments in /usr/local/lib/python3.7/dist-packages (from ipython>=5.0.0->ipykernel<6,>=4.10.1->icevision) (2.6.1)\n",
"Requirement already satisfied: parso<0.9.0,>=0.8.0 in /usr/local/lib/python3.7/dist-packages (from jedi>=0.10->ipython>=5.0.0->ipykernel<6,>=4.10.1->icevision) (0.8.3)\n",
"Collecting antlr4-python3-runtime==4.9.*\n",
" Downloading antlr4-python3-runtime-4.9.3.tar.gz (117 kB)\n",
"\u001b[K |████████████████████████████████| 117 kB 50.4 MB/s \n",
"\u001b[?25hRequirement already satisfied: wcwidth in /usr/local/lib/python3.7/dist-packages (from prompt-toolkit<2.1.0,>=2.0.0->ipython>=5.0.0->ipykernel<6,>=4.10.1->icevision) (0.2.5)\n",
"Requirement already satisfied: six>=1.9.0 in /usr/local/lib/python3.7/dist-packages (from prompt-toolkit<2.1.0,>=2.0.0->ipython>=5.0.0->ipykernel<6,>=4.10.1->icevision) (1.15.0)\n",
"Requirement already satisfied: matplotlib>=2.1.0 in /usr/local/lib/python3.7/dist-packages (from pycocotools>=2.0.2->effdet<0.3,>=0.2.1->icevision) (3.2.2)\n",
"Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=2.1.0->pycocotools>=2.0.2->effdet<0.3,>=0.2.1->icevision) (2.8.2)\n",
"Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=2.1.0->pycocotools>=2.0.2->effdet<0.3,>=0.2.1->icevision) (1.4.4)\n",
"Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=2.1.0->pycocotools>=2.0.2->effdet<0.3,>=0.2.1->icevision) (0.11.0)\n",
"Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=2.1.0->pycocotools>=2.0.2->effdet<0.3,>=0.2.1->icevision) (3.0.9)\n",
"Collecting fvcore\n",
" Downloading fvcore-0.1.5.post20220512.tar.gz (50 kB)\n",
"\u001b[K |████████████████████████████████| 50 kB 6.1 MB/s \n",
"\u001b[?25hRequirement already satisfied: requests in /usr/local/lib/python3.7/dist-packages (from resnest<0.0.7,>=0.0.6b20201125->icevision) (2.23.0)\n",
"Collecting iopath\n",
" Downloading iopath-0.1.10.tar.gz (42 kB)\n",
"\u001b[K |████████████████████████████████| 42 kB 1.0 MB/s \n",
"\u001b[?25hCollecting nose\n",
" Downloading nose-1.3.7-py3-none-any.whl (154 kB)\n",
"\u001b[K |████████████████████████████████| 154 kB 62.2 MB/s \n",
"\u001b[?25hRequirement already satisfied: shapely>=1.8.0 in /usr/local/lib/python3.7/dist-packages (from sahi<1.0,>=0.8.19->icevision) (1.8.4)\n",
"Collecting click==8.0.4\n",
" Downloading click-8.0.4-py3-none-any.whl (97 kB)\n",
"\u001b[K |████████████████████████████████| 97 kB 7.1 MB/s \n",
"\u001b[?25hCollecting pybboxes==0.1.4\n",
" Downloading pybboxes-0.1.4-py3-none-any.whl (23 kB)\n",
"Collecting fire\n",
" Downloading fire-0.4.0.tar.gz (87 kB)\n",
"\u001b[K |████████████████████████████████| 87 kB 7.1 MB/s \n",
"\u001b[?25hCollecting terminaltables\n",
" Downloading terminaltables-3.1.10-py2.py3-none-any.whl (15 kB)\n",
"Requirement already satisfied: PyWavelets>=1.1.1 in /usr/local/lib/python3.7/dist-packages (from scikit-image>=0.16.1->albumentations<1.1,>=1.0.3->icevision) (1.3.0)\n",
"Requirement already satisfied: networkx>=2.0 in /usr/local/lib/python3.7/dist-packages (from scikit-image>=0.16.1->albumentations<1.1,>=1.0.3->icevision) (2.6.3)\n",
"Requirement already satisfied: tifffile>=2019.7.26 in /usr/local/lib/python3.7/dist-packages (from scikit-image>=0.16.1->albumentations<1.1,>=1.0.3->icevision) (2021.11.2)\n",
"Requirement already satisfied: imageio>=2.3.0 in /usr/local/lib/python3.7/dist-packages (from scikit-image>=0.16.1->albumentations<1.1,>=1.0.3->icevision) (2.9.0)\n",
"Requirement already satisfied: Cython in /usr/local/lib/python3.7/dist-packages (from yolov5-icevision>=6.0.0->icevision) (0.29.32)\n",
"Requirement already satisfied: seaborn>=0.11.0 in /usr/local/lib/python3.7/dist-packages (from yolov5-icevision>=6.0.0->icevision) (0.11.2)\n",
"Requirement already satisfied: tensorboard>=2.2 in /usr/local/lib/python3.7/dist-packages (from yolov5-icevision>=6.0.0->icevision) (2.8.0)\n",
"Requirement already satisfied: pandas>=0.23 in /usr/local/lib/python3.7/dist-packages (from seaborn>=0.11.0->yolov5-icevision>=6.0.0->icevision) (1.3.5)\n",
"Requirement already satisfied: pytz>=2017.3 in /usr/local/lib/python3.7/dist-packages (from pandas>=0.23->seaborn>=0.11.0->yolov5-icevision>=6.0.0->icevision) (2022.2.1)\n",
"Requirement already satisfied: google-auth<3,>=1.6.3 in /usr/local/lib/python3.7/dist-packages (from tensorboard>=2.2->yolov5-icevision>=6.0.0->icevision) (1.35.0)\n",
"Requirement already satisfied: tensorboard-data-server<0.7.0,>=0.6.0 in /usr/local/lib/python3.7/dist-packages (from tensorboard>=2.2->yolov5-icevision>=6.0.0->icevision) (0.6.1)\n",
"Requirement already satisfied: grpcio>=1.24.3 in /usr/local/lib/python3.7/dist-packages (from tensorboard>=2.2->yolov5-icevision>=6.0.0->icevision) (1.47.0)\n",
"Requirement already satisfied: werkzeug>=0.11.15 in /usr/local/lib/python3.7/dist-packages (from tensorboard>=2.2->yolov5-icevision>=6.0.0->icevision) (1.0.1)\n",
"Requirement already satisfied: wheel>=0.26 in /usr/local/lib/python3.7/dist-packages (from tensorboard>=2.2->yolov5-icevision>=6.0.0->icevision) (0.37.1)\n",
"Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in /usr/local/lib/python3.7/dist-packages (from tensorboard>=2.2->yolov5-icevision>=6.0.0->icevision) (0.4.6)\n",
"Requirement already satisfied: protobuf>=3.6.0 in /usr/local/lib/python3.7/dist-packages (from tensorboard>=2.2->yolov5-icevision>=6.0.0->icevision) (3.17.3)\n",
"Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in /usr/local/lib/python3.7/dist-packages (from tensorboard>=2.2->yolov5-icevision>=6.0.0->icevision) (1.8.1)\n",
"Requirement already satisfied: markdown>=2.6.8 in /usr/local/lib/python3.7/dist-packages (from tensorboard>=2.2->yolov5-icevision>=6.0.0->icevision) (3.4.1)\n",
"Requirement already satisfied: absl-py>=0.4 in /usr/local/lib/python3.7/dist-packages (from tensorboard>=2.2->yolov5-icevision>=6.0.0->icevision) (1.2.0)\n",
"Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/local/lib/python3.7/dist-packages (from google-auth<3,>=1.6.3->tensorboard>=2.2->yolov5-icevision>=6.0.0->icevision) (0.2.8)\n",
"Requirement already satisfied: rsa<5,>=3.1.4 in /usr/local/lib/python3.7/dist-packages (from google-auth<3,>=1.6.3->tensorboard>=2.2->yolov5-icevision>=6.0.0->icevision) (4.9)\n",
"Requirement already satisfied: cachetools<5.0,>=2.0.0 in /usr/local/lib/python3.7/dist-packages (from google-auth<3,>=1.6.3->tensorboard>=2.2->yolov5-icevision>=6.0.0->icevision) (4.2.4)\n",
"Requirement already satisfied: requests-oauthlib>=0.7.0 in /usr/local/lib/python3.7/dist-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard>=2.2->yolov5-icevision>=6.0.0->icevision) (1.3.1)\n",
"Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in /usr/local/lib/python3.7/dist-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard>=2.2->yolov5-icevision>=6.0.0->icevision) (0.4.8)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests->resnest<0.0.7,>=0.0.6b20201125->icevision) (2022.6.15)\n",
"Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests->resnest<0.0.7,>=0.0.6b20201125->icevision) (2.10)\n",
"Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests->resnest<0.0.7,>=0.0.6b20201125->icevision) (1.24.3)\n",
"Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests->resnest<0.0.7,>=0.0.6b20201125->icevision) (3.0.4)\n",
"Requirement already satisfied: oauthlib>=3.0.0 in /usr/local/lib/python3.7/dist-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard>=2.2->yolov5-icevision>=6.0.0->icevision) (3.2.0)\n",
"Requirement already satisfied: termcolor in /usr/local/lib/python3.7/dist-packages (from fire->sahi<1.0,>=0.8.19->icevision) (1.1.0)\n",
"Collecting yacs>=0.1.6\n",
" Downloading yacs-0.1.8-py3-none-any.whl (14 kB)\n",
"Requirement already satisfied: tabulate in /usr/local/lib/python3.7/dist-packages (from fvcore->resnest<0.0.7,>=0.0.6b20201125->icevision) (0.8.10)\n",
"Collecting portalocker\n",
" Downloading portalocker-2.5.1-py2.py3-none-any.whl (15 kB)\n",
"Requirement already satisfied: pyzmq>=13 in /usr/local/lib/python3.7/dist-packages (from jupyter-client->ipykernel<6,>=4.10.1->icevision) (23.2.1)\n",
"Requirement already satisfied: jupyter-core>=4.6.0 in /usr/local/lib/python3.7/dist-packages (from jupyter-client->ipykernel<6,>=4.10.1->icevision) (4.11.1)\n",
"Collecting pyDeprecate\n",
" Downloading pyDeprecate-0.3.2-py3-none-any.whl (10 kB)\n",
"Collecting jsonargparse[signatures]>=3.17.0\n",
" Downloading jsonargparse-4.13.2-py3-none-any.whl (155 kB)\n",
"\u001b[K |████████████████████████████████| 155 kB 64.1 MB/s \n",
"\u001b[?25hCollecting torchmetrics!=0.5.1,>=0.5.0\n",
" Downloading torchmetrics-0.9.3-py3-none-any.whl (419 kB)\n",
"\u001b[K |████████████████████████████████| 419 kB 53.9 MB/s \n",
"\u001b[?25hCollecting pytorch-lightning>=1.3.6\n",
" Downloading pytorch_lightning-1.7.4-py3-none-any.whl (706 kB)\n",
"\u001b[K |████████████████████████████████| 706 kB 48.8 MB/s \n",
"\u001b[?25hCollecting kornia>=0.5.1\n",
" Downloading kornia-0.6.7-py2.py3-none-any.whl (565 kB)\n",
"\u001b[K |████████████████████████████████| 565 kB 49.7 MB/s \n",
"\u001b[?25hCollecting pystiche==1.*\n",
" Downloading pystiche-1.0.1-py3-none-any.whl (67 kB)\n",
"\u001b[K |████████████████████████████████| 67 kB 5.5 MB/s \n",
"\u001b[?25hCollecting lightning-bolts>=0.3.3\n",
" Downloading lightning_bolts-0.5.0-py3-none-any.whl (316 kB)\n",
"\u001b[K |████████████████████████████████| 316 kB 57.0 MB/s \n",
"\u001b[?25hCollecting segmentation-models-pytorch\n",
" Downloading segmentation_models_pytorch-0.3.0-py3-none-any.whl (97 kB)\n",
"\u001b[K |████████████████████████████████| 97 kB 7.3 MB/s \n",
"\u001b[?25hCollecting docstring-parser>=0.7.3\n",
" Downloading docstring_parser-0.14.1-py3-none-any.whl (33 kB)\n",
"Requirement already satisfied: fsspec[http]!=2021.06.0,>=2021.05.0 in /usr/local/lib/python3.7/dist-packages (from pytorch-lightning>=1.3.6->lightning-flash[image]) (2022.7.1)\n",
"Collecting tensorboard>=2.2\n",
" Downloading tensorboard-2.10.0-py3-none-any.whl (5.9 MB)\n",
"\u001b[K |████████████████████████████████| 5.9 MB 43.0 MB/s \n",
"\u001b[?25hRequirement already satisfied: aiohttp in /usr/local/lib/python3.7/dist-packages (from fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.3.6->lightning-flash[image]) (3.8.1)\n",
"Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.7/dist-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.3.6->lightning-flash[image]) (1.8.1)\n",
"Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.7/dist-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.3.6->lightning-flash[image]) (1.3.1)\n",
"Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.7/dist-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.3.6->lightning-flash[image]) (1.2.0)\n",
"Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /usr/local/lib/python3.7/dist-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.3.6->lightning-flash[image]) (4.0.2)\n",
"Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.7/dist-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.3.6->lightning-flash[image]) (22.1.0)\n",
"Requirement already satisfied: asynctest==0.13.0 in /usr/local/lib/python3.7/dist-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.3.6->lightning-flash[image]) (0.13.0)\n",
"Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.7/dist-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.3.6->lightning-flash[image]) (6.0.2)\n",
"Requirement already satisfied: charset-normalizer<3.0,>=2.0 in /usr/local/lib/python3.7/dist-packages (from aiohttp->fsspec[http]!=2021.06.0,>=2021.05.0->pytorch-lightning>=1.3.6->lightning-flash[image]) (2.1.1)\n",
"Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.7/dist-packages (from pexpect->ipython>=5.0.0->ipykernel<6,>=4.10.1->icevision) (0.7.0)\n",
"Collecting timm>=0.3.2\n",
" Downloading timm-0.4.12-py3-none-any.whl (376 kB)\n",
"\u001b[K |████████████████████████████████| 376 kB 56.1 MB/s \n",
"\u001b[?25hCollecting efficientnet-pytorch==0.7.1\n",
" Downloading efficientnet_pytorch-0.7.1.tar.gz (21 kB)\n",
"Collecting pretrainedmodels==0.7.4\n",
" Downloading pretrainedmodels-0.7.4.tar.gz (58 kB)\n",
"\u001b[K |████████████████████████████████| 58 kB 6.6 MB/s \n",
"\u001b[?25hCollecting munch\n",
" Downloading munch-2.5.0-py2.py3-none-any.whl (10 kB)\n",
"Building wheels for collected packages: antlr4-python3-runtime, fire, fvcore, iopath, efficientnet-pytorch, pretrainedmodels\n",
" Building wheel for antlr4-python3-runtime (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for antlr4-python3-runtime: filename=antlr4_python3_runtime-4.9.3-py3-none-any.whl size=144575 sha256=0f1e2a815014c5f67bbfb62f7417bc367b2e7b134455f6d48fea9d505e243b00\n",
" Stored in directory: /root/.cache/pip/wheels/8b/8d/53/2af8772d9aec614e3fc65e53d4a993ad73c61daa8bbd85a873\n",
" Building wheel for fire (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for fire: filename=fire-0.4.0-py2.py3-none-any.whl size=115942 sha256=69319cff24a0d8f341bc5fd122912f73c75d14f967927ea285afbcfe53ca2980\n",
" Stored in directory: /root/.cache/pip/wheels/8a/67/fb/2e8a12fa16661b9d5af1f654bd199366799740a85c64981226\n",
" Building wheel for fvcore (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for fvcore: filename=fvcore-0.1.5.post20220512-py3-none-any.whl size=61288 sha256=5b344ff2a295961bc94380c9267eb9fca068974eb65b2527a331490eb12ed012\n",
" Stored in directory: /root/.cache/pip/wheels/68/20/f9/a11a0dd63f4c13678b2a5ec488e48078756505c7777b75b29e\n",
" Building wheel for iopath (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for iopath: filename=iopath-0.1.10-py3-none-any.whl size=31549 sha256=054f2df00e191e320a6401c6d40b71415aa1b2188f040b200a2d4f7e57b5da12\n",
" Stored in directory: /root/.cache/pip/wheels/aa/cc/ed/ca4e88beef656b01c84b9185196513ef2faf74a5a379b043a7\n",
" Building wheel for efficientnet-pytorch (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for efficientnet-pytorch: filename=efficientnet_pytorch-0.7.1-py3-none-any.whl size=16446 sha256=c310dea54d1529a264a0b25442f0e5d49ab3376174c62f93f28c177be52e0cdd\n",
" Stored in directory: /root/.cache/pip/wheels/0e/cc/b2/49e74588263573ff778da58cc99b9c6349b496636a7e165be6\n",
" Building wheel for pretrainedmodels (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for pretrainedmodels: filename=pretrainedmodels-0.7.4-py3-none-any.whl size=60965 sha256=6d823df34922aeaea83bcea72bfb3bdc9a680a38284c9b5449325bae4cb74e27\n",
" Stored in directory: /root/.cache/pip/wheels/ed/27/e8/9543d42de2740d3544db96aefef63bda3f2c1761b3334f4873\n",
"Successfully built antlr4-python3-runtime fire fvcore iopath efficientnet-pytorch pretrainedmodels\n",
"Installing collected packages: torch, portalocker, pillow, yacs, torchvision, torchmetrics, tensorboard, pyDeprecate, munch, jsonargparse, jedi, iopath, docstring-parser, antlr4-python3-runtime, timm, terminaltables, pytorch-lightning, pybboxes, pretrainedmodels, omegaconf, nose, fvcore, fire, efficientnet-pytorch, click, yolov5-icevision, segmentation-models-pytorch, sahi, resnest, pystiche, loguru, lightning-flash, lightning-bolts, kornia, fastcore, effdet, dataclasses, albumentations, icevision\n",
" Attempting uninstall: torch\n",
" Found existing installation: torch 1.12.1+cu113\n",
" Uninstalling torch-1.12.1+cu113:\n",
" Successfully uninstalled torch-1.12.1+cu113\n",
" Attempting uninstall: pillow\n",
" Found existing installation: Pillow 7.1.2\n",
" Uninstalling Pillow-7.1.2:\n",
" Successfully uninstalled Pillow-7.1.2\n",
" Attempting uninstall: torchvision\n",
" Found existing installation: torchvision 0.13.1+cu113\n",
" Uninstalling torchvision-0.13.1+cu113:\n",
" Successfully uninstalled torchvision-0.13.1+cu113\n",
" Attempting uninstall: tensorboard\n",
" Found existing installation: tensorboard 2.8.0\n",
" Uninstalling tensorboard-2.8.0:\n",
" Successfully uninstalled tensorboard-2.8.0\n",
" Attempting uninstall: click\n",
" Found existing installation: click 7.1.2\n",
" Uninstalling click-7.1.2:\n",
" Successfully uninstalled click-7.1.2\n",
" Attempting uninstall: fastcore\n",
" Found existing installation: fastcore 1.5.22\n",
" Uninstalling fastcore-1.5.22:\n",
" Successfully uninstalled fastcore-1.5.22\n",
" Attempting uninstall: albumentations\n",
" Found existing installation: albumentations 1.2.1\n",
" Uninstalling albumentations-1.2.1:\n",
" Successfully uninstalled albumentations-1.2.1\n",
"\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n",
"torchaudio 0.12.1+cu113 requires torch==1.12.1, but you have torch 1.10.2 which is incompatible.\n",
"tensorflow 2.8.2+zzzcolab20220719082949 requires tensorboard<2.9,>=2.8, but you have tensorboard 2.10.0 which is incompatible.\n",
"flask 1.1.4 requires click<8.0,>=5.1, but you have click 8.0.4 which is incompatible.\u001b[0m\n",
"Successfully installed albumentations-1.0.3 antlr4-python3-runtime-4.9.3 click-8.0.4 dataclasses-0.6 docstring-parser-0.14.1 effdet-0.2.4 efficientnet-pytorch-0.7.1 fastcore-1.3.29 fire-0.4.0 fvcore-0.1.5.post20220512 icevision-0.12.0 iopath-0.1.10 jedi-0.18.1 jsonargparse-4.13.2 kornia-0.6.7 lightning-bolts-0.5.0 lightning-flash-0.7.5 loguru-0.6.0 munch-2.5.0 nose-1.3.7 omegaconf-2.2.3 pillow-8.4.0 portalocker-2.5.1 pretrainedmodels-0.7.4 pyDeprecate-0.3.2 pybboxes-0.1.4 pystiche-1.0.1 pytorch-lightning-1.7.4 resnest-0.0.6b20220831 sahi-0.10.4 segmentation-models-pytorch-0.3.0 tensorboard-2.10.0 terminaltables-3.1.10 timm-0.4.12 torch-1.10.2 torchmetrics-0.9.3 torchvision-0.11.3 yacs-0.1.8 yolov5-icevision-6.0.0\n"
]
},
{
"output_type": "display_data",
"data": {
"application/vnd.colab-display-data+json": {
"pip_warning": {
"packages": [
"PIL",
"dataclasses",
"pydevd_plugins",
"torch"
]
}
}
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"#import torchvision\n",
"torchvision.__version__"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 35
},
"id": "dm5vgzLMNaAF",
"outputId": "9fa11288-28ee-48a5-ed4b-13fbeb86e090"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"'0.11.3+cu102'"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "string"
}
},
"metadata": {},
"execution_count": 3
}
]
},
{
"cell_type": "code",
"source": [
"#!pip3 uninstall -y torch"
],
"metadata": {
"id": "CaXyGAEKVn0K"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"#!pip3 uninstall -y lightning-flash"
],
"metadata": {
"id": "iVfzMMZeXbv0"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"#!pip install -U torch torchvision"
],
"metadata": {
"id": "K5dz1toBXYO6"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"#!pip install 'git+https://github.com/PyTorchLightning/lightning-flash.git'\n",
"#!pip install 'git+https://github.com/PyTorchLightning/lightning-flash.git#egg=lightning-flash[image]'"
],
"metadata": {
"id": "4r7NbYuSX0VL"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"#! pip install --quiet \"torch>=1.8\" \"pytorch-lightning>=1.4\" \"ipython[notebook]\" #\"setuptools==59.5.0\" \"matplotlib\"\n",
"#! pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116"
],
"metadata": {
"id": "RN4jBIq0KsUV"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"#!pip install 'git+https://github.com/PyTorchLightning/lightning-flash.git#egg=lightning-flash[image]'\n",
"#!pip install 'icevision[all]'\n",
"#!pip install 'lightning-flash[image]'"
],
"metadata": {
"id": "Hf0hAZXp4ACW"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"#!pip install 'icevision' #'lightning-flash[image]'"
],
"metadata": {
"id": "d2oMedWgEs3i"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"the method above fails to install flash correctly"
],
"metadata": {
"id": "ItF-DLffMlsq"
}
},
{
"cell_type": "code",
"source": [
"#!pip install torch==1.8.1+cu102 -f https://download.pytorch.org/whl/torch_stable.html\n",
"#!pip install icevision #==0.9.0a1\n",
"#!pip install effdet \n",
"#!pip install lightning-flash[image]\n",
"#!pip install git+https://github.com/PyTorchLightning/lightning-flash.git\n",
"#!pip install torchtext==0.9.1\n",
"#!pip uninstall fastai -y\n",
"#There is a bug in the latest release of icevision. Manually apply the fix.\n",
"#!curl https://raw.githubusercontent.com/airctic/icevision/944b47c5694243ba3f3c8c11a6ef56f05fb111eb/icevision/core/record_components.py --output /usr/local/lib/python3.7/dist-packages/icevision/core/record_components.py\n",
"#Restart the kernel"
],
"metadata": {
"id": "rPCik7gQIqmu"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"## import modules\n",
"Don't forget to restart the runtime "
],
"metadata": {
"id": "0TaFXg61JwXc"
}
},
{
"cell_type": "code",
"source": [
"import flash"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "zhWL4Gq2NF4x",
"outputId": "f4a23806-3eab-429f-c937-6722d1cc274b"
},
"execution_count": 1,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"\u001b[1m\u001b[1mINFO \u001b[0m\u001b[1m\u001b[0m - \u001b[1mDownloading default `.ttf` font file - SpaceGrotesk-Medium.ttf from https://raw.githubusercontent.com/airctic/storage/master/SpaceGrotesk-Medium.ttf to /root/.icevision/fonts/SpaceGrotesk-Medium.ttf\u001b[0m | \u001b[36micevision.visualize.utils\u001b[0m:\u001b[36mget_default_font\u001b[0m:\u001b[36m70\u001b[0m\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Downloading https://ultralytics.com/assets/Arial.ttf to /root/.config/Ultralytics/Arial.ttf...\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"import icevision"
],
"metadata": {
"id": "LkxhaCVYNOyU"
},
"execution_count": 2,
"outputs": []
},
{
"cell_type": "code",
"source": [
"flash.__version__"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 35
},
"id": "-SSGUDKhMQS6",
"outputId": "f8c7467b-32ed-4607-deb3-b79aface5c1c"
},
"execution_count": 3,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"'0.7.5'"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "string"
}
},
"metadata": {},
"execution_count": 3
}
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"id": "WoU1cigtgaMV"
},
"outputs": [],
"source": [
"#from fastai.vision import *\n",
"import os, sys\n",
"import numpy as np\n",
"#from scipy import ndimage as nd\n",
"#from skimage import morphology as mo\n",
"#from scipy.ndimage import distance_transform_bf as distance\n",
"from matplotlib import pyplot as plt"
]
},
{
"cell_type": "code",
"source": [
"#!apt-get install python3-dev\n",
"#!pip install cython\n",
"#!pip install git+git://github.com/waspinator/coco.git@2.1.0"
],
"metadata": {
"id": "8zianJbJhLxZ"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"id": "Izs9flyGgaMZ"
},
"outputs": [],
"source": [
"import pycocotools\n",
"#import pycococreatortools\n",
"from pycocotools.coco import COCO\n",
"import skimage.io as io"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "HHBhQxzbgaMb",
"outputId": "be6ff84b-cf36-4313-8f89-b4ad7214959e"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"bin\t dev lib32 NGC-DL-CONTAINER-LICENSE\troot sys var\n",
"boot\t etc lib64 opt\t\t\trun tmp\n",
"content home media proc\t\t\tsbin tools\n",
"datalab lib mnt python-apt\t\tsrv usr\n"
]
}
],
"source": [
"!ls .."
]
},
{
"cell_type": "markdown",
"source": [
"# Possibly import the dataset available on github\n",
"https://github.com/jeanpat/DeepFISH/tree/master/dataset/SmallDataset/train\n",
"\n",
"save it somwhere on your google drive and adapt the path to the files (png images and segmentation in the json file)\n",
" "
],
"metadata": {
"id": "FxGlwjwLtPTc"
}
},
{
"cell_type": "code",
"source": [],
"metadata": {
"id": "JdDIaBO2tOGW"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"##google snippet:import data"
],
"metadata": {
"id": "4wXvT09HiQlk"
}
},
{
"cell_type": "code",
"source": [
"from google.colab import drive\n",
"drive.mount('/content/gdrive/', force_remount=True)"
],
"metadata": {
"id": "sJqYr-hohNAc",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "d58959aa-67bb-441a-8fe6-6940f451d541"
},
"execution_count": 7,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Mounted at /content/gdrive/\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"%ls gdrive/MyDrive/Data\\ Science/SmallCOCODataSet/UltraSmall-COCO-Dataset_125"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "IB61H0usl6sZ",
"outputId": "01a4069b-10e1-4a71-8fca-016edada24d8"
},
"execution_count": 8,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"grey0012100.png grey0075766.png\n",
"grey0013300.png grey0076001.png\n",
"grey0013500.png grey0077000.png\n",
"grey0020000.png grey0077100.png\n",
"grey0021500.png grey0077300.png\n",
"grey0026500.png grey0077400.png\n",
"grey0027200.png grey0077601.png\n",
"grey0028200.png grey0077701.png\n",
"grey0035223.png grey0077801.png\n",
"grey0059995.png grey0077901.png\n",
"grey0059998.png grey0077902.png\n",
"grey0060101.png grey0077905.png\n",
"grey0060107.png grey0078000.png\n",
"grey0060110.png grey0078300.png\n",
"grey0060112.png grey0078702.png\n",
"grey0060118.png grey0078852.png\n",
"grey0060119.png grey0078900.png\n",
"grey0060120.png grey0079001.png\n",
"grey0060126.png grey0079101.png\n",
"grey0060129.png grey0079652.png\n",
"grey0060130.png grey0079952.png\n",
"grey0060223.png grey0080000.png\n",
"grey0060232.png grey0080105.png\n",
"grey0060250.png grey0080106.png\n",
"grey0060260.png grey0080107.png\n",
"grey0060263.png grey0080650.png\n",
"grey0060268.png grey0080651.png\n",
"grey0060365.png grey0080652.png\n",
"grey0060566.png grey0081663.png\n",
"grey0060666.png grey0081668.png\n",
"grey0060700.png grey0081770.png\n",
"grey0060730.png grey0081970.png\n",
"grey0060740.png grey0081980.png\n",
"grey0060772.png grey0082250.png\n",
"grey0061587.png grey0082350.png\n",
"grey0065587.png grey0082400.png\n",
"grey0070586.png grey0083400.png\n",
"grey0070886.png grey0083500.png\n",
"grey0070902.png grey0083550.png\n",
"grey0070955.png grey0083600.png\n",
"grey0070958.png grey0083651.png\n",
"grey0070966.png grey0083755.png\n",
"grey0071100.png grey0083855.png\n",
"grey0071362.png grey0083856.png\n",
"grey0071600.png grey0083900.png\n",
"grey0071700.png grey0096560.png\n",
"grey0071800.png grey0096760.png\n",
"grey0071852.png grey0096800.png\n",
"grey0071952.png grey0096812.png\n",
"grey0072100.png grey0096902.png\n",
"grey0072150.png grey0096906.png\n",
"grey0072251.png grey0097001.png\n",
"grey0073251.png grey0097006.png\n",
"grey0073355.png grey0097101.png\n",
"grey0073655.png grey0097201.png\n",
"grey0073658.png grey0097352.png\n",
"grey0073700.png grey0097452.png\n",
"grey0075000.png grey0097630.png\n",
"grey0075101.png grey0097750.png\n",
"grey0075201.png grey0097801.png\n",
"grey0075302.png grey0097918.png\n",
"grey0075502.png instance_segmentation_model_10epoch.pt\n",
"grey0075602.png labels_overlappchromosomes_2021-07-05-09-18-52.json\n",
"grey0075756.png \u001b[0m\u001b[01;34mTest\u001b[0m/\n"
]
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "5Ou_ZlQ5gaMc"
},
"source": [
"# Acces to small dataset images and annotations with pycocotools\n",
"**Google colab version**\n",
" * Annotation files was generated with online annotator tool [https://www.makesense.ai/](https://www.makesense.ai/)\n"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "U1XgyTuZgaMe",
"outputId": "daaba984-13f5-4347-89aa-89c9217e7bf4"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"loading annotations into memory...\n",
"Done (t=0.20s)\n",
"creating index...\n",
"index created!\n"
]
}
],
"source": [
"#IMAGE_DIR = './UltraSmall-COCO-Dataset_125'\n",
"IMAGE_DIR = 'gdrive/MyDrive/Data Science/SmallCOCODataSet/UltraSmall-COCO-Dataset_125'\n",
"#print(path.ls()) # prints subdirectories\n",
"os.listdir(IMAGE_DIR)\n",
"image_directory = IMAGE_DIR\n",
"annotation_file = IMAGE_DIR + '/labels_overlappchromosomes_2021-07-05-09-18-52.json'\n",
"example_coco = COCO(annotation_file)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"id": "uR1lasdQgaMh",
"outputId": "7d930859-6e07-4aa1-8c0b-399eb79baa60",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"description: overlappchromosomes\n",
"None\n",
"Custom COCO categories: \n",
"chromosome\n",
"\n",
"[1]\n",
"125\n",
"{'id': 38, 'width': 211, 'height': 210, 'file_name': 'grey0070886.png'}\n",
"[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125]\n"
]
}
],
"source": [
"print(example_coco.info())\n",
"categories = example_coco.loadCats(example_coco.getCatIds())\n",
"category_names = [category['name'] for category in categories]\n",
"print('Custom COCO categories: \\n{}\\n'.format(' '.join(category_names)))\n",
"\n",
"category_ids = example_coco.getCatIds(catNms=['chromosome'])\n",
"image_ids = example_coco.getImgIds(catIds=category_ids)\n",
"image_data = example_coco.loadImgs(image_ids[np.random.randint(0, len(image_ids))])[0]\n",
"\n",
"print(category_ids)\n",
"print(len(image_ids))\n",
"print(image_data)\n",
"print(image_ids)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"id": "Mqei1u6pgaMn",
"outputId": "3163be75-b397-4fc2-d690-3a1bfbe8c3f9",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 423
}
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"[74, 75]\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "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\n"
},
"metadata": {}
}
],
"source": [
"# load and display instance annotations\n",
"image = io.imread(image_directory + '/'+ image_data['file_name'])\n",
"plt.Figure(figsize=(30.0,30.0))\n",
"plt.imshow(image, cmap=plt.cm.gray ); plt.axis('off')\n",
"#pylab.rcParams['figure.figsize'] = (8.0, 10.0)\n",
"annotation_ids = example_coco.getAnnIds(imgIds=image_data['id'], catIds=category_ids, iscrowd=None)\n",
"annotations = example_coco.loadAnns(annotation_ids)\n",
"\n",
"print(annotation_ids)\n",
"\n",
"example_coco.showAnns(annotations)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "VtIqTcAogaMo"
},
"source": [
"# Load the data images+annotation file with PyTorch-lightning\n",
" * there's 125 images\n",
" * an annotation files following the COCO format\n",
" \n",
"Some internet ressource about dataset and dataloader with FiftyOne:\n",
"\n",
" * https://towardsdatascience.com/stop-wasting-time-with-pytorch-datasets-17cac2c22fa8"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "e1pTnQm7gaMp"
},
"source": [
"## Can we use lightning-flash to load the dataset?"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"id": "WU1TdJ0qgaMs"
},
"outputs": [],
"source": [
"from functools import partial\n",
"\n",
"import flash\n",
"from flash.core.utilities.imports import example_requires\n",
"from flash.image import InstanceSegmentation, InstanceSegmentationData\n",
"example_requires(\"image\")\n",
"#import icedata # noqa: E402"
]
},
{
"cell_type": "markdown",
"source": [
"## Load the dataset with lightning-flash:\n",
"https://lightning-flash.readthedocs.io/en/latest/api/generated/flash.image.instance_segmentation.data.InstanceSegmentationData.html#flash.image.instance_segmentation.data.InstanceSegmentationData"
],
"metadata": {
"id": "gRqjGjjOckLs"
}
},
{
"cell_type": "code",
"source": [
"IMAGE_DIR = 'gdrive/MyDrive/Data Science/SmallCOCODataSet/UltraSmall-COCO-Dataset_125'\n",
"#print(path.ls()) # prints subdirectories\n",
"os.listdir(IMAGE_DIR)\n",
"image_directory = IMAGE_DIR\n",
"annotation_file = IMAGE_DIR + '/labels_overlappchromosomes_2021-07-05-09-18-52.json'\n",
"datamodule = InstanceSegmentationData.from_coco(train_folder= IMAGE_DIR, train_ann_file = annotation_file,\n",
" transform_kwargs=dict(image_size=(174, 175)), batch_size=2)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 98,
"referenced_widgets": [
"c5d3017471794f51a538788f287d8217",
"56c90ef56ab745ef90c38aa08863adbc",
"8de4742bbb61493b9bfed382966e7fe0",
"a1c32a45aefe43b5a54d8a1b855d4494",
"1a9fba6b694a4c1d8ea178d5deed435a",
"b3a506996ebe4206b65ad861e466b37d",
"e8caef591a12464aa595e0863baacf36",
"2f83334883404be5bbf3f6705ff16d15",
"c68c0d89566441af902a7b9aa61e8d4e",
"6626240594bc40eea207141553d8ca2b",
"2f81029afd2b447489c0b5bc34676fa9",
"68bb713547d74dbe8014064ec6d4e874",
"13ab54621cb14a4ea6b06470bb0288fd",
"b34e7aa79a174ab98ea60c8f1be7b573",
"4cc04c9b2e2648019a6f247c7dd7a642",
"97882367afb34ebcb07a7102233f362a",
"6e3faeb86f9b4040ac743a9cab422e9d",
"c5dc31bd40834955927856a8ad8466c1",
"1d59a68ec271406eacedb960e1b9fea8",
"0e382aa72c874901ad591c646615800f",
"daa0efcdfc80492e942cf984cd9107a9",
"b8f9dacf65004039ba4bac674400d38d"
]
},
"id": "Hlzzby71I8hm",
"outputId": "e963ee78-212e-4acd-9846-84ba4ff516cb"
},
"execution_count": 13,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
" 0%| | 0/250 [00:00<?, ?it/s]"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "c5d3017471794f51a538788f287d8217"
}
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stderr",
"text": [
"\u001b[1m\u001b[1mINFO \u001b[0m\u001b[1m\u001b[0m - \u001b[1m\u001b[34m\u001b[1mAutofixing records\u001b[0m\u001b[1m\u001b[34m\u001b[0m\u001b[1m\u001b[0m | \u001b[36micevision.parsers.parser\u001b[0m:\u001b[36mparse\u001b[0m:\u001b[36m122\u001b[0m\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
" 0%| | 0/125 [00:00<?, ?it/s]"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "68bb713547d74dbe8014064ec6d4e874"
}
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"print(datamodule.labels)\n",
"print(datamodule.num_classes)\n",
"#help(datamodule.viz)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "Wx41kYUgauWS",
"outputId": "e07ab133-466c-4052-e860-da5e2a4e56b9"
},
"execution_count": 16,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"['background', 'chromosome']\n",
"2\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"# 2. Build the task"
],
"metadata": {
"id": "KN5hzW9oTeMC"
}
},
{
"cell_type": "code",
"source": [
"model = InstanceSegmentation(\n",
" head=\"mask_rcnn\",\n",
" backbone=\"resnet18_fpn\",\n",
" num_classes=datamodule.num_classes,pretrained = False,\n",
")"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 84,
"referenced_widgets": [
"8ffa517695ee4c2291278680fdfe2c22",
"44d9552bab8341f7b4573f16756906bf",
"084b896ee93843a0b8d51e193df4f369",
"008bb67478544c2d87b8661ae4335a01",
"793260012fe543ef9962b6b4f1e686e1",
"918829a1444a495db0f5f1eb558ff04c",
"3308c7abbe15472a847a6e0a661c8ae2",
"3d52ea47d59644668fa29a8312956692",
"4e1b5db9ffa547e886649324e3dd14e1",
"38c0024befbb448ea8df9f2b7694b65c",
"1c2373f9be544fc89cb3aca3ffe43197"
]
},
"id": "0ECDoaOGTec7",
"outputId": "a948b1ee-a043-464c-dce7-b1bedfc63c93"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"Downloading: \"https://download.pytorch.org/models/resnet18-f37072fd.pth\" to /root/.cache/torch/hub/checkpoints/resnet18-f37072fd.pth\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
" 0%| | 0.00/44.7M [00:00<?, ?B/s]"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "8ffa517695ee4c2291278680fdfe2c22"
}
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stderr",
"text": [
"INFO:pytorch_lightning.utilities.rank_zero:Using 'mask_rcnn' provided by airctic/IceVision (https://github.com/airctic/icevision) and PyTorch/torchvision (https://github.com/pytorch/vision).\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"# 3. Create the trainer and finetune the model"
],
"metadata": {
"id": "G-y2T7nkTKPq"
}
},
{
"cell_type": "code",
"source": [
"trainer = flash.Trainer(max_epochs=10)\n",
"trainer.finetune(model, datamodule=datamodule, strategy=\"freeze\")"
],
"metadata": {
"id": "h3QEbRWxb4zY",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 344,
"referenced_widgets": [
"a48cd9ada3324e5c9135692dcff6fd1b",
"fca572fa85fb46b886fb606550258d97",
"e81dbc20c2744c1f92b604308198e13c",
"17557db3e6eb461f98e0a2732cb10688",
"ffc0c6340d0b402eabcc5e4e62463404",
"82018723c49f45c98db20e33f964e8e8",
"df4f1ed412b34b6391199a38252d5659",
"a3bdac34b17143b8bce7f87a88cef7b2",
"0ee51eab404f4ed28ce3ce757358f1c4",
"08bbcb36515e4892a942752c19d3af6f",
"c79c6ee1aeb443e6aa5266630fc54fb4"
]
},
"outputId": "72f511dd-4e33-49d4-dda6-c322e833ba51"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"INFO:pytorch_lightning.utilities.rank_zero:GPU available: False, used: False\n",
"INFO:pytorch_lightning.utilities.rank_zero:TPU available: False, using: 0 TPU cores\n",
"INFO:pytorch_lightning.utilities.rank_zero:IPU available: False, using: 0 IPUs\n",
"INFO:pytorch_lightning.utilities.rank_zero:HPU available: False, using: 0 HPUs\n",
"INFO:pytorch_lightning.callbacks.model_summary:\n",
" | Name | Type | Params\n",
"-----------------------------------------------------------------------\n",
"0 | train_metrics | ModuleDict | 0 \n",
"1 | val_metrics | ModuleDict | 0 \n",
"2 | test_metrics | ModuleDict | 0 \n",
"3 | adapter | IceVisionInstanceSegmentationAdapter | 30.9 M\n",
"-----------------------------------------------------------------------\n",
"16.5 M Trainable params\n",
"14.4 M Non-trainable params\n",
"30.9 M Total params\n",
"123.588 Total estimated model params size (MB)\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"Training: 0it [00:00, ?it/s]"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "a48cd9ada3324e5c9135692dcff6fd1b"
}
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stderr",
"text": [
"INFO:pytorch_lightning.utilities.rank_zero:`Trainer.fit` stopped: `max_epochs=10` reached.\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"%ls gdrive/MyDrive/Data\\ Science/SmallCOCODataSet/UltraSmall-COCO-Dataset_125/Test/"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "ye7YYpcLmpeP",
"outputId": "476564fd-19f8-41c5-d46e-959d333a0930"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"grey0000001.png grey0084860.png grey0090400.png grey0094960.png\n",
"grey0017010.png grey0087002.png grey0090800.png\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"overlap1 = image_directory + '/Test/grey0000001.png'\n",
"overlap2 = image_directory + '/Test/grey0084860.png'\n",
"overlap3 = image_directory + '/Test/grey0090400.png'\n",
"overlap4 = image_directory + '/Test/grey0094960.png'\n",
"overlap5 = image_directory + '/Test/grey0017010.png'\n",
"overlap6 = image_directory + '/Test/grey0087002.png'\n",
"overlap7 = image_directory + '/Test/grey0090800.png'"
],
"metadata": {
"id": "G0ErPxA9my-e"
},
"execution_count": 19,
"outputs": []
},
{
"cell_type": "code",
"source": [
"\n",
"# 4. Detect objects in a few images!\n",
"datamodule = InstanceSegmentationData.from_files(\n",
" predict_files=[overlap1,overlap2,overlap3,overlap4,overlap5,overlap6,overlap7],\n",
" batch_size=7,\n",
")\n",
"predictions = trainer.predict(model, datamodule=datamodule)\n",
"print(predictions)\n",
"SinglePredict = \n",
"\n"
],
"metadata": {
"id": "Hqe4qIC-TTk7"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"# 5. Save the model!"
],
"metadata": {
"id": "Pb1muYrhcUvn"
}
},
{
"cell_type": "code",
"source": [
"trainer.save_checkpoint(\"gdrive/MyDrive/Data Science/SmallCOCODataSet/UltraSmall-COCO-Dataset_125/instance_segmentation_model_10epoch.pt\")"
],
"metadata": {
"id": "P1wpnLc-cT9B"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"#Load trained model"
],
"metadata": {
"id": "x_uIO4KLvXPi"
}
},
{
"cell_type": "code",
"source": [
"from flash import Trainer\n",
"\n",
"datamodule_2 = InstanceSegmentationData.from_files(\n",
" predict_files=[overlap2],\n",
" batch_size=1,\n",
")\n",
"\n",
"model = InstanceSegmentation.load_from_checkpoint(\"gdrive/MyDrive/Data Science/SmallCOCODataSet/UltraSmall-COCO-Dataset_125/instance_segmentation_model_10epoch.pt\")\n",
"\n",
"\n",
"trainer = Trainer()\n",
"single_prediction = trainer.predict(model, datamodule=datamodule_2)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 208,
"referenced_widgets": [
"6f5c12becf144a6aa5bf848d8441b2fb",
"d6d2f3bfb44a439597599580ba2518d3",
"8a7e5b1787ee49128633395c0148bfb6",
"5e696aca659e4d259d764c0395a68d70",
"a529782447f74aedae7b861cdb1b9b9b",
"5b144b3dab2d453d9ca0f8790c39b050",
"ce7401f5b76248359e62cd1d7caee923",
"e8cdfa1fb877448d806f5ba15d25b659",
"a3d16fbe697142869df3697a3e8fa257",
"e2245e36b47a416381d35f6efb0cefb5",
"b93c9c358c34474683f5dbbaa2fb11fd"
]
},
"id": "g1TF-W6jvdfX",
"outputId": "9e362f9d-2c62-4ad9-8451-e74e505c9306"
},
"execution_count": 23,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"INFO:pytorch_lightning.utilities.rank_zero:Using 'mask_rcnn' provided by airctic/IceVision (https://github.com/airctic/icevision) and PyTorch/torchvision (https://github.com/pytorch/vision).\n",
"INFO:pytorch_lightning.utilities.rank_zero:GPU available: False, used: False\n",
"INFO:pytorch_lightning.utilities.rank_zero:TPU available: False, using: 0 TPU cores\n",
"INFO:pytorch_lightning.utilities.rank_zero:IPU available: False, using: 0 IPUs\n",
"INFO:pytorch_lightning.utilities.rank_zero:HPU available: False, using: 0 HPUs\n",
"WARNING:pytorch_lightning.loggers.tensorboard:Missing logger folder: /content/lightning_logs\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"Predicting: 0it [00:00, ?it/s]"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "6f5c12becf144a6aa5bf848d8441b2fb"
}
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stderr",
"text": [
"/usr/local/lib/python3.7/dist-packages/torch/functional.py:445: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at ../aten/src/ATen/native/TensorShape.cpp:2157.)\n",
" return _VF.meshgrid(tensors, **kwargs) # type: ignore[attr-defined]\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"# See inside prediction"
],
"metadata": {
"id": "c-NmRDpooJcs"
}
},
{
"cell_type": "code",
"source": [
"# 4. Detect objects in a few images!\n",
"#datamodule_2 = InstanceSegmentationData.from_files(predict_files=[overlap2], batch_size=1,)\n",
"#single_prediction = trainer.predict(model, datamodule=datamodule_2)\n",
"print(single_prediction)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "omrkjY_rrxNl",
"outputId": "83a71c84-e817-4878-ab63-83408c69cdb5"
},
"execution_count": 24,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"[[{'bboxes': [{'xmin': 42.61557, 'ymin': 24.91679, 'width': 50.055023, 'height': 76.79202}], 'masks': [array([[0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" ...,\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0]], dtype=uint8)], 'labels': [1], 'scores': [0.5334059]}]]\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"len(single_prediction),type(single_prediction[0]), len(single_prediction[0])"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "i-UgbyXpk1Fu",
"outputId": "5183290b-4722-409c-b60d-7688b111b005"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(1, list, 1)"
]
},
"metadata": {},
"execution_count": 60
}
]
},
{
"cell_type": "code",
"source": [
"P0 = single_prediction[0]\n",
"print(P0[0])#, P0[1]\n",
"P0[0]['masks']\n",
"seg0 = P0[0]\n",
"seg0.keys(), seg0.values(), seg0['bboxes']\n",
"seg0['masks']"
],
"metadata": {
"id": "KKNtDLOHoVsc",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "2d50a488-3f43-4665-f7e5-f6f0b3356aec"
},
"execution_count": 30,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"{'bboxes': [{'xmin': 42.61557, 'ymin': 24.91679, 'width': 50.055023, 'height': 76.79202}], 'masks': [array([[0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" ...,\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0]], dtype=uint8)], 'labels': [1], 'scores': [0.5334059]}\n"
]
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[array([[0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" ...,\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0]], dtype=uint8)]"
]
},
"metadata": {},
"execution_count": 30
}
]
},
{
"cell_type": "code",
"source": [
"mask01 = seg0['masks'][0]\n",
"overlap2\n",
"image = io.imread(overlap2)\n",
"plt.Figure(figsize=(30.0,30.0))\n",
"plt.subplot(121)\n",
"plt.imshow(mask01, cmap=plt.cm.gray ); plt.axis('off')\n",
"plt.subplot(122)\n",
"plt.imshow(image, cmap=plt.cm.gray ); plt.axis('off')"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 279
},
"id": "E00eprjlpZPX",
"outputId": "348a941b-7b0b-4262-b885-b27ba351fe08"
},
"execution_count": 31,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(-0.5, 210.5, 209.5, -0.5)"
]
},
"metadata": {},
"execution_count": 31
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
],
"image/png": "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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [],
"metadata": {
"id": "lS6aZmoJqO2X"
},
"execution_count": null,
"outputs": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.7.11"
},
"colab": {
"provenance": [],
"collapsed_sections": [
"vLjp5OQLJocw"
],
"include_colab_link": true
},
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"8ffa517695ee4c2291278680fdfe2c22": {
"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_44d9552bab8341f7b4573f16756906bf",
"IPY_MODEL_084b896ee93843a0b8d51e193df4f369",
"IPY_MODEL_008bb67478544c2d87b8661ae4335a01"
],
"layout": "IPY_MODEL_793260012fe543ef9962b6b4f1e686e1"
}
},
"44d9552bab8341f7b4573f16756906bf": {
"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_918829a1444a495db0f5f1eb558ff04c",
"placeholder": "​",
"style": "IPY_MODEL_3308c7abbe15472a847a6e0a661c8ae2",
"value": "100%"
}
},
"084b896ee93843a0b8d51e193df4f369": {
"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_3d52ea47d59644668fa29a8312956692",
"max": 46830571,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_4e1b5db9ffa547e886649324e3dd14e1",
"value": 46830571
}
},
"008bb67478544c2d87b8661ae4335a01": {
"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_38c0024befbb448ea8df9f2b7694b65c",
"placeholder": "​",
"style": "IPY_MODEL_1c2373f9be544fc89cb3aca3ffe43197",
"value": " 44.7M/44.7M [00:00&lt;00:00, 115MB/s]"
}
},
"793260012fe543ef9962b6b4f1e686e1": {
"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
}
},
"918829a1444a495db0f5f1eb558ff04c": {
"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
}
},
"3308c7abbe15472a847a6e0a661c8ae2": {
"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": ""
}
},
"3d52ea47d59644668fa29a8312956692": {
"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
}
},
"4e1b5db9ffa547e886649324e3dd14e1": {
"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": ""
}
},
"38c0024befbb448ea8df9f2b7694b65c": {
"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
}
},
"1c2373f9be544fc89cb3aca3ffe43197": {
"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": ""
}
},
"a48cd9ada3324e5c9135692dcff6fd1b": {
"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_fca572fa85fb46b886fb606550258d97",
"IPY_MODEL_e81dbc20c2744c1f92b604308198e13c",
"IPY_MODEL_17557db3e6eb461f98e0a2732cb10688"
],
"layout": "IPY_MODEL_ffc0c6340d0b402eabcc5e4e62463404"
}
},
"fca572fa85fb46b886fb606550258d97": {
"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_82018723c49f45c98db20e33f964e8e8",
"placeholder": "​",
"style": "IPY_MODEL_df4f1ed412b34b6391199a38252d5659",
"value": "Epoch 9: 100%"
}
},
"e81dbc20c2744c1f92b604308198e13c": {
"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_a3bdac34b17143b8bce7f87a88cef7b2",
"max": 62,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_0ee51eab404f4ed28ce3ce757358f1c4",
"value": 62
}
},
"17557db3e6eb461f98e0a2732cb10688": {
"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_08bbcb36515e4892a942752c19d3af6f",
"placeholder": "​",
"style": "IPY_MODEL_c79c6ee1aeb443e6aa5266630fc54fb4",
"value": " 62/62 [03:50&lt;00:00, 3.72s/it, loss=1.15, v_num=1, train_train_loss=1.290]"
}
},
"ffc0c6340d0b402eabcc5e4e62463404": {
"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": "inline-flex",
"flex": null,
"flex_flow": "row wrap",
"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": "100%"
}
},
"82018723c49f45c98db20e33f964e8e8": {
"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
}
},
"df4f1ed412b34b6391199a38252d5659": {
"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": ""
}
},
"a3bdac34b17143b8bce7f87a88cef7b2": {
"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": "2",
"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
}
},
"0ee51eab404f4ed28ce3ce757358f1c4": {
"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": ""
}
},
"08bbcb36515e4892a942752c19d3af6f": {
"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
}
},
"c79c6ee1aeb443e6aa5266630fc54fb4": {
"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": ""
}
},
"c5d3017471794f51a538788f287d8217": {
"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_56c90ef56ab745ef90c38aa08863adbc",
"IPY_MODEL_8de4742bbb61493b9bfed382966e7fe0",
"IPY_MODEL_a1c32a45aefe43b5a54d8a1b855d4494"
],
"layout": "IPY_MODEL_1a9fba6b694a4c1d8ea178d5deed435a"
}
},
"56c90ef56ab745ef90c38aa08863adbc": {
"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_b3a506996ebe4206b65ad861e466b37d",
"placeholder": "​",
"style": "IPY_MODEL_e8caef591a12464aa595e0863baacf36",
"value": "100%"
}
},
"8de4742bbb61493b9bfed382966e7fe0": {
"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_2f83334883404be5bbf3f6705ff16d15",
"max": 250,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_c68c0d89566441af902a7b9aa61e8d4e",
"value": 250
}
},
"a1c32a45aefe43b5a54d8a1b855d4494": {
"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_6626240594bc40eea207141553d8ca2b",
"placeholder": "​",
"style": "IPY_MODEL_2f81029afd2b447489c0b5bc34676fa9",
"value": " 250/250 [00:00&lt;00:00, 514.82it/s]"
}
},
"1a9fba6b694a4c1d8ea178d5deed435a": {
"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
}
},
"b3a506996ebe4206b65ad861e466b37d": {
"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
}
},
"e8caef591a12464aa595e0863baacf36": {
"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": ""
}
},
"2f83334883404be5bbf3f6705ff16d15": {
"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
}
},
"c68c0d89566441af902a7b9aa61e8d4e": {
"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": ""
}
},
"6626240594bc40eea207141553d8ca2b": {
"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
}
},
"2f81029afd2b447489c0b5bc34676fa9": {
"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": ""
}
},
"68bb713547d74dbe8014064ec6d4e874": {
"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_13ab54621cb14a4ea6b06470bb0288fd",
"IPY_MODEL_b34e7aa79a174ab98ea60c8f1be7b573",
"IPY_MODEL_4cc04c9b2e2648019a6f247c7dd7a642"
],
"layout": "IPY_MODEL_97882367afb34ebcb07a7102233f362a"
}
},
"13ab54621cb14a4ea6b06470bb0288fd": {
"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_6e3faeb86f9b4040ac743a9cab422e9d",
"placeholder": "​",
"style": "IPY_MODEL_c5dc31bd40834955927856a8ad8466c1",
"value": "100%"
}
},
"b34e7aa79a174ab98ea60c8f1be7b573": {
"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_1d59a68ec271406eacedb960e1b9fea8",
"max": 125,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_0e382aa72c874901ad591c646615800f",
"value": 125
}
},
"4cc04c9b2e2648019a6f247c7dd7a642": {
"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_daa0efcdfc80492e942cf984cd9107a9",
"placeholder": "​",
"style": "IPY_MODEL_b8f9dacf65004039ba4bac674400d38d",
"value": " 125/125 [00:00&lt;00:00, 976.83it/s]"
}
},
"97882367afb34ebcb07a7102233f362a": {
"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
}
},
"6e3faeb86f9b4040ac743a9cab422e9d": {
"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
}
},
"c5dc31bd40834955927856a8ad8466c1": {
"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": ""
}
},
"1d59a68ec271406eacedb960e1b9fea8": {
"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
}
},
"0e382aa72c874901ad591c646615800f": {
"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": ""
}
},
"daa0efcdfc80492e942cf984cd9107a9": {
"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
}
},
"b8f9dacf65004039ba4bac674400d38d": {
"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": ""
}
},
"6f5c12becf144a6aa5bf848d8441b2fb": {
"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_d6d2f3bfb44a439597599580ba2518d3",
"IPY_MODEL_8a7e5b1787ee49128633395c0148bfb6",
"IPY_MODEL_5e696aca659e4d259d764c0395a68d70"
],
"layout": "IPY_MODEL_a529782447f74aedae7b861cdb1b9b9b"
}
},
"d6d2f3bfb44a439597599580ba2518d3": {
"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_5b144b3dab2d453d9ca0f8790c39b050",
"placeholder": "​",
"style": "IPY_MODEL_ce7401f5b76248359e62cd1d7caee923",
"value": "Predicting DataLoader 0: 100%"
}
},
"8a7e5b1787ee49128633395c0148bfb6": {
"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_e8cdfa1fb877448d806f5ba15d25b659",
"max": 1,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_a3d16fbe697142869df3697a3e8fa257",
"value": 1
}
},
"5e696aca659e4d259d764c0395a68d70": {
"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_e2245e36b47a416381d35f6efb0cefb5",
"placeholder": "​",
"style": "IPY_MODEL_b93c9c358c34474683f5dbbaa2fb11fd",
"value": " 1/1 [00:00&lt;00:00, 1.38it/s]"
}
},
"a529782447f74aedae7b861cdb1b9b9b": {
"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": "inline-flex",
"flex": null,
"flex_flow": "row wrap",
"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": "100%"
}
},
"5b144b3dab2d453d9ca0f8790c39b050": {
"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
}
},
"ce7401f5b76248359e62cd1d7caee923": {
"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": ""
}
},
"e8cdfa1fb877448d806f5ba15d25b659": {
"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": "2",
"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
}
},
"a3d16fbe697142869df3697a3e8fa257": {
"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": ""
}
},
"e2245e36b47a416381d35f6efb0cefb5": {
"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
}
},
"b93c9c358c34474683f5dbbaa2fb11fd": {
"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": ""
}
}
}
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment