{
  "cells": [
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Rr9G1g8ntQl7",
        "outputId": "dc436a1f-c296-46a7-e85e-cb8dd5e0055c"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Requirement already satisfied: roboflow in /usr/local/lib/python3.10/dist-packages (1.1.33)\n",
            "Requirement already satisfied: certifi in /usr/local/lib/python3.10/dist-packages (from roboflow) (2024.6.2)\n",
            "Requirement already satisfied: chardet==4.0.0 in /usr/local/lib/python3.10/dist-packages (from roboflow) (4.0.0)\n",
            "Requirement already satisfied: idna==3.7 in /usr/local/lib/python3.10/dist-packages (from roboflow) (3.7)\n",
            "Requirement already satisfied: cycler in /usr/local/lib/python3.10/dist-packages (from roboflow) (0.12.1)\n",
            "Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.10/dist-packages (from roboflow) (1.4.5)\n",
            "Requirement already satisfied: matplotlib in /usr/local/lib/python3.10/dist-packages (from roboflow) (3.7.1)\n",
            "Requirement already satisfied: numpy>=1.18.5 in /usr/local/lib/python3.10/dist-packages (from roboflow) (1.25.2)\n",
            "Requirement already satisfied: opencv-python-headless==4.10.0.84 in /usr/local/lib/python3.10/dist-packages (from roboflow) (4.10.0.84)\n",
            "Requirement already satisfied: Pillow>=7.1.2 in /usr/local/lib/python3.10/dist-packages (from roboflow) (9.4.0)\n",
            "Requirement already satisfied: python-dateutil in /usr/local/lib/python3.10/dist-packages (from roboflow) (2.8.2)\n",
            "Requirement already satisfied: python-dotenv in /usr/local/lib/python3.10/dist-packages (from roboflow) (1.0.1)\n",
            "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from roboflow) (2.31.0)\n",
            "Requirement already satisfied: six in /usr/local/lib/python3.10/dist-packages (from roboflow) (1.16.0)\n",
            "Requirement already satisfied: urllib3>=1.26.6 in /usr/local/lib/python3.10/dist-packages (from roboflow) (2.0.7)\n",
            "Requirement already satisfied: tqdm>=4.41.0 in /usr/local/lib/python3.10/dist-packages (from roboflow) (4.66.4)\n",
            "Requirement already satisfied: PyYAML>=5.3.1 in /usr/local/lib/python3.10/dist-packages (from roboflow) (6.0.1)\n",
            "Requirement already satisfied: requests-toolbelt in /usr/local/lib/python3.10/dist-packages (from roboflow) (1.0.0)\n",
            "Requirement already satisfied: python-magic in /usr/local/lib/python3.10/dist-packages (from roboflow) (0.4.27)\n",
            "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->roboflow) (1.2.1)\n",
            "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->roboflow) (4.53.0)\n",
            "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->roboflow) (24.1)\n",
            "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->roboflow) (3.1.2)\n",
            "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->roboflow) (3.3.2)\n",
            "loading Roboflow workspace...\n",
            "loading Roboflow project...\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "Downloading Dataset Version Zip in BreCa_v5-1 to voc:: 100%|██████████| 28679/28679 [00:02<00:00, 9817.02it/s] "
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "\n",
            "Extracting Dataset Version Zip to BreCa_v5-1 in voc:: 100%|██████████| 327/327 [00:00<00:00, 2904.77it/s]\n"
          ]
        }
      ],
      "source": [
        "!pip install roboflow\n",
        "\n",
        "from roboflow import Roboflow\n",
        "rf = Roboflow(api_key=\"lTd15pWlIvnSHmyBgnED\")\n",
        "project = rf.workspace(\"khon-kaen-university-ai-inspiration-tanatorn-boontem\").project(\"test_model_for_medical_education\")\n",
        "dataset = project.version(2).download(\"voc\")\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "id": "GXbkCrmty8YN",
        "outputId": "50148e8e-a29d-4eac-efe3-b93153ea35e5"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Collecting roboflow\n",
            "  Downloading roboflow-1.1.26-py3-none-any.whl (71 kB)\n",
            "\u001b[?25l     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/72.0 kB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m72.0/72.0 kB\u001b[0m \u001b[31m2.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting certifi==2023.7.22 (from roboflow)\n",
            "  Downloading certifi-2023.7.22-py3-none-any.whl (158 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m158.3/158.3 kB\u001b[0m \u001b[31m11.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting chardet==4.0.0 (from roboflow)\n",
            "  Downloading chardet-4.0.0-py2.py3-none-any.whl (178 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m178.7/178.7 kB\u001b[0m \u001b[31m21.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting cycler==0.10.0 (from roboflow)\n",
            "  Downloading cycler-0.10.0-py2.py3-none-any.whl (6.5 kB)\n",
            "Collecting idna==2.10 (from roboflow)\n",
            "  Downloading idna-2.10-py2.py3-none-any.whl (58 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m58.8/58.8 kB\u001b[0m \u001b[31m7.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.10/dist-packages (from roboflow) (1.4.5)\n",
            "Requirement already satisfied: matplotlib in /usr/local/lib/python3.10/dist-packages (from roboflow) (3.7.1)\n",
            "Requirement already satisfied: numpy>=1.18.5 in /usr/local/lib/python3.10/dist-packages (from roboflow) (1.25.2)\n",
            "Collecting opencv-python-headless==4.8.0.74 (from roboflow)\n",
            "  Downloading opencv_python_headless-4.8.0.74-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (49.1 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m49.1/49.1 MB\u001b[0m \u001b[31m14.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: Pillow>=7.1.2 in /usr/local/lib/python3.10/dist-packages (from roboflow) (9.4.0)\n",
            "Requirement already satisfied: python-dateutil in /usr/local/lib/python3.10/dist-packages (from roboflow) (2.8.2)\n",
            "Collecting python-dotenv (from roboflow)\n",
            "  Downloading python_dotenv-1.0.1-py3-none-any.whl (19 kB)\n",
            "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from roboflow) (2.31.0)\n",
            "Requirement already satisfied: six in /usr/local/lib/python3.10/dist-packages (from roboflow) (1.16.0)\n",
            "Requirement already satisfied: urllib3>=1.26.6 in /usr/local/lib/python3.10/dist-packages (from roboflow) (2.0.7)\n",
            "Requirement already satisfied: tqdm>=4.41.0 in /usr/local/lib/python3.10/dist-packages (from roboflow) (4.66.2)\n",
            "Requirement already satisfied: PyYAML>=5.3.1 in /usr/local/lib/python3.10/dist-packages (from roboflow) (6.0.1)\n",
            "Collecting requests-toolbelt (from roboflow)\n",
            "  Downloading requests_toolbelt-1.0.0-py2.py3-none-any.whl (54 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m54.5/54.5 kB\u001b[0m \u001b[31m6.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting python-magic (from roboflow)\n",
            "  Downloading python_magic-0.4.27-py2.py3-none-any.whl (13 kB)\n",
            "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->roboflow) (1.2.0)\n",
            "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->roboflow) (4.50.0)\n",
            "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->roboflow) (24.0)\n",
            "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->roboflow) (3.1.2)\n",
            "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->roboflow) (3.3.2)\n",
            "Installing collected packages: python-magic, python-dotenv, opencv-python-headless, idna, cycler, chardet, certifi, requests-toolbelt, roboflow\n",
            "  Attempting uninstall: opencv-python-headless\n",
            "    Found existing installation: opencv-python-headless 4.9.0.80\n",
            "    Uninstalling opencv-python-headless-4.9.0.80:\n",
            "      Successfully uninstalled opencv-python-headless-4.9.0.80\n",
            "  Attempting uninstall: idna\n",
            "    Found existing installation: idna 3.6\n",
            "    Uninstalling idna-3.6:\n",
            "      Successfully uninstalled idna-3.6\n",
            "  Attempting uninstall: cycler\n",
            "    Found existing installation: cycler 0.12.1\n",
            "    Uninstalling cycler-0.12.1:\n",
            "      Successfully uninstalled cycler-0.12.1\n",
            "  Attempting uninstall: chardet\n",
            "    Found existing installation: chardet 5.2.0\n",
            "    Uninstalling chardet-5.2.0:\n",
            "      Successfully uninstalled chardet-5.2.0\n",
            "  Attempting uninstall: certifi\n",
            "    Found existing installation: certifi 2024.2.2\n",
            "    Uninstalling certifi-2024.2.2:\n",
            "      Successfully uninstalled certifi-2024.2.2\n",
            "Successfully installed certifi-2023.7.22 chardet-4.0.0 cycler-0.10.0 idna-2.10 opencv-python-headless-4.8.0.74 python-dotenv-1.0.1 python-magic-0.4.27 requests-toolbelt-1.0.0 roboflow-1.1.26\n"
          ]
        },
        {
          "data": {
            "application/vnd.colab-display-data+json": {
              "id": "b52d86188a55425eaac36bb5233d5518",
              "pip_warning": {
                "packages": [
                  "certifi",
                  "cycler"
                ]
              }
            }
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "loading Roboflow workspace...\n",
            "loading Roboflow project...\n"
          ]
        },
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Downloading Dataset Version Zip in gastric-cancer-detection-1 to voc:: 100%|██████████| 9767/9767 [00:01<00:00, 7775.49it/s]"
          ]
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n"
          ]
        },
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "\n",
            "Extracting Dataset Version Zip to gastric-cancer-detection-1 in voc::  33%|███▎      | 400/1223 [00:03<00:07, 110.40it/s]\n"
          ]
        },
        {
          "ename": "KeyboardInterrupt",
          "evalue": "",
          "output_type": "error",
          "traceback": [
            "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
            "\u001b[0;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)",
            "\u001b[0;32m<ipython-input-3-153fdec794b8>\u001b[0m in \u001b[0;36m<cell line: 7>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      5\u001b[0m \u001b[0mproject\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mrf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mworkspace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"colonoscopy-f8ocd\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mproject\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"gastric-cancer-detection\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      6\u001b[0m \u001b[0mversion\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mproject\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mversion\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0mdataset\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mversion\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdownload\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"voc\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
            "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/roboflow/core/version.py\u001b[0m in \u001b[0;36mdownload\u001b[0;34m(self, model_format, location, overwrite)\u001b[0m\n\u001b[1;32m    221\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    222\u001b[0m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__download_zip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlink\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlocation\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmodel_format\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 223\u001b[0;31m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__extract_zip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlocation\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmodel_format\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    224\u001b[0m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__reformat_yaml\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlocation\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmodel_format\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    225\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/roboflow/core/version.py\u001b[0m in \u001b[0;36m__extract_zip\u001b[0;34m(self, location, format)\u001b[0m\n\u001b[1;32m    714\u001b[0m             ):\n\u001b[1;32m    715\u001b[0m                 \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 716\u001b[0;31m                     \u001b[0mzip_ref\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mextract\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmember\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlocation\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    717\u001b[0m                 \u001b[0;32mexcept\u001b[0m \u001b[0mzipfile\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0merror\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    718\u001b[0m                     \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Error unzipping download\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;32m/usr/lib/python3.10/zipfile.py\u001b[0m in \u001b[0;36mextract\u001b[0;34m(self, member, path, pwd)\u001b[0m\n\u001b[1;32m   1628\u001b[0m             \u001b[0mpath\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfspath\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1629\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1630\u001b[0;31m         \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_extract_member\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmember\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpath\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpwd\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1631\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1632\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mextractall\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpath\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmembers\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpwd\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;32m/usr/lib/python3.10/zipfile.py\u001b[0m in \u001b[0;36m_extract_member\u001b[0;34m(self, member, targetpath, pwd)\u001b[0m\n\u001b[1;32m   1700\u001b[0m         \u001b[0;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmember\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpwd\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mpwd\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0msource\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1701\u001b[0m              \u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtargetpath\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"wb\"\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mtarget\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1702\u001b[0;31m             \u001b[0mshutil\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcopyfileobj\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msource\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtarget\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1703\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1704\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0mtargetpath\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;32m/usr/lib/python3.10/shutil.py\u001b[0m in \u001b[0;36mcopyfileobj\u001b[0;34m(fsrc, fdst, length)\u001b[0m\n\u001b[1;32m    185\u001b[0m                 \u001b[0mfdst_write\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmv\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    186\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 187\u001b[0;31m \u001b[0;32mdef\u001b[0m \u001b[0mcopyfileobj\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfsrc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfdst\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlength\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    188\u001b[0m     \u001b[0;34m\"\"\"copy data from file-like object fsrc to file-like object fdst\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    189\u001b[0m     \u001b[0;31m# Localize variable access to minimize overhead.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;31mKeyboardInterrupt\u001b[0m: "
          ]
        }
      ],
      "source": [
        "!pip install roboflow\n",
        "\n",
        "from roboflow import Roboflow\n",
        "rf = Roboflow(api_key=\"s42NhYIlVWqhYZbpvFWv\")\n",
        "project = rf.workspace(\"colonoscopy-f8ocd\").project(\"gastric-cancer-detection\")\n",
        "version = project.version(1)\n",
        "dataset = version.download(\"voc\")\n"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "!pip install roboflow\n",
        "\n",
        "from roboflow import Roboflow\n",
        "rf = Roboflow(api_key=\"s42NhYIlVWqhYZbpvFWv\")\n",
        "project = rf.workspace(\"paper-cukdc\").project(\"brats-gajdy\")\n",
        "version = project.version(2)\n",
        "dataset = version.download(\"voc\")\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "id": "8AOw4fA8YQup",
        "outputId": "50dcb172-69e6-4150-f574-3eac656adf9f"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Collecting roboflow\n",
            "  Downloading roboflow-1.1.28-py3-none-any.whl (74 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m74.6/74.6 kB\u001b[0m \u001b[31m1.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting certifi==2023.7.22 (from roboflow)\n",
            "  Downloading certifi-2023.7.22-py3-none-any.whl (158 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m158.3/158.3 kB\u001b[0m \u001b[31m6.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting chardet==4.0.0 (from roboflow)\n",
            "  Downloading chardet-4.0.0-py2.py3-none-any.whl (178 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m178.7/178.7 kB\u001b[0m \u001b[31m8.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting cycler==0.10.0 (from roboflow)\n",
            "  Downloading cycler-0.10.0-py2.py3-none-any.whl (6.5 kB)\n",
            "Collecting idna==2.10 (from roboflow)\n",
            "  Downloading idna-2.10-py2.py3-none-any.whl (58 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m58.8/58.8 kB\u001b[0m \u001b[31m5.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.10/dist-packages (from roboflow) (1.4.5)\n",
            "Requirement already satisfied: matplotlib in /usr/local/lib/python3.10/dist-packages (from roboflow) (3.7.1)\n",
            "Requirement already satisfied: numpy>=1.18.5 in /usr/local/lib/python3.10/dist-packages (from roboflow) (1.25.2)\n",
            "Collecting opencv-python-headless==4.8.0.74 (from roboflow)\n",
            "  Downloading opencv_python_headless-4.8.0.74-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (49.1 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m49.1/49.1 MB\u001b[0m \u001b[31m16.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: Pillow>=7.1.2 in /usr/local/lib/python3.10/dist-packages (from roboflow) (9.4.0)\n",
            "Requirement already satisfied: python-dateutil in /usr/local/lib/python3.10/dist-packages (from roboflow) (2.8.2)\n",
            "Collecting python-dotenv (from roboflow)\n",
            "  Downloading python_dotenv-1.0.1-py3-none-any.whl (19 kB)\n",
            "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from roboflow) (2.31.0)\n",
            "Requirement already satisfied: six in /usr/local/lib/python3.10/dist-packages (from roboflow) (1.16.0)\n",
            "Requirement already satisfied: urllib3>=1.26.6 in /usr/local/lib/python3.10/dist-packages (from roboflow) (2.0.7)\n",
            "Requirement already satisfied: tqdm>=4.41.0 in /usr/local/lib/python3.10/dist-packages (from roboflow) (4.66.2)\n",
            "Requirement already satisfied: PyYAML>=5.3.1 in /usr/local/lib/python3.10/dist-packages (from roboflow) (6.0.1)\n",
            "Collecting requests-toolbelt (from roboflow)\n",
            "  Downloading requests_toolbelt-1.0.0-py2.py3-none-any.whl (54 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m54.5/54.5 kB\u001b[0m \u001b[31m5.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting python-magic (from roboflow)\n",
            "  Downloading python_magic-0.4.27-py2.py3-none-any.whl (13 kB)\n",
            "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->roboflow) (1.2.1)\n",
            "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->roboflow) (4.51.0)\n",
            "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->roboflow) (24.0)\n",
            "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->roboflow) (3.1.2)\n",
            "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->roboflow) (3.3.2)\n",
            "Installing collected packages: python-magic, python-dotenv, opencv-python-headless, idna, cycler, chardet, certifi, requests-toolbelt, roboflow\n",
            "  Attempting uninstall: opencv-python-headless\n",
            "    Found existing installation: opencv-python-headless 4.9.0.80\n",
            "    Uninstalling opencv-python-headless-4.9.0.80:\n",
            "      Successfully uninstalled opencv-python-headless-4.9.0.80\n",
            "  Attempting uninstall: idna\n",
            "    Found existing installation: idna 3.7\n",
            "    Uninstalling idna-3.7:\n",
            "      Successfully uninstalled idna-3.7\n",
            "  Attempting uninstall: cycler\n",
            "    Found existing installation: cycler 0.12.1\n",
            "    Uninstalling cycler-0.12.1:\n",
            "      Successfully uninstalled cycler-0.12.1\n",
            "  Attempting uninstall: chardet\n",
            "    Found existing installation: chardet 5.2.0\n",
            "    Uninstalling chardet-5.2.0:\n",
            "      Successfully uninstalled chardet-5.2.0\n",
            "  Attempting uninstall: certifi\n",
            "    Found existing installation: certifi 2024.2.2\n",
            "    Uninstalling certifi-2024.2.2:\n",
            "      Successfully uninstalled certifi-2024.2.2\n",
            "Successfully installed certifi-2023.7.22 chardet-4.0.0 cycler-0.10.0 idna-2.10 opencv-python-headless-4.8.0.74 python-dotenv-1.0.1 python-magic-0.4.27 requests-toolbelt-1.0.0 roboflow-1.1.28\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "application/vnd.colab-display-data+json": {
              "pip_warning": {
                "packages": [
                  "certifi",
                  "cycler"
                ]
              },
              "id": "c51192d766174a288a6fc21160500835"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "loading Roboflow workspace...\n",
            "loading Roboflow project...\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "Downloading Dataset Version Zip in BraTs-2 to voc:: 100%|██████████| 102646/102646 [00:05<00:00, 19811.98it/s]"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "\n",
            "Extracting Dataset Version Zip to BraTs-2 in voc:: 100%|██████████| 9869/9869 [00:04<00:00, 2267.89it/s]\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "HV0U5zzTaem0",
        "outputId": "d8032fd8-47ca-4a3f-aecf-5a129fc18968"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Mounted at /content/drive\n"
          ]
        }
      ],
      "source": [
        "from google.colab import drive\n",
        "drive.mount('/content/drive')"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 187
        },
        "id": "qexUmWDyOE7n",
        "outputId": "a6966feb-b8d9-4089-baf0-7864cbf2c768"
      },
      "outputs": [
        {
          "data": {
            "text/html": [
              "<div style=\"max-width:800px; border: 1px solid var(--colab-border-color);\"><style>\n",
              "      pre.function-repr-contents {\n",
              "        overflow-x: auto;\n",
              "        padding: 8px 12px;\n",
              "        max-height: 500px;\n",
              "      }\n",
              "\n",
              "      pre.function-repr-contents.function-repr-contents-collapsed {\n",
              "        cursor: pointer;\n",
              "        max-height: 100px;\n",
              "      }\n",
              "    </style>\n",
              "    <pre style=\"white-space: initial; background:\n",
              "         var(--colab-secondary-surface-color); padding: 8px 12px;\n",
              "         border-bottom: 1px solid var(--colab-border-color);\"><b>torch.nn.parallel.data_parallel.DataParallel</b><br/>def _wrapped_call_impl(*args, **kwargs)</pre><pre class=\"function-repr-contents function-repr-contents-collapsed\" style=\"\"><a class=\"filepath\" style=\"display:none\" href=\"#\">/usr/local/lib/python3.10/dist-packages/torch/nn/parallel/data_parallel.py</a>Implements data parallelism at the module level.\n",
              "\n",
              "This container parallelizes the application of the given :attr:`module` by\n",
              "splitting the input across the specified devices by chunking in the batch\n",
              "dimension (other objects will be copied once per device). In the forward\n",
              "pass, the module is replicated on each device, and each replica handles a\n",
              "portion of the input. During the backwards pass, gradients from each replica\n",
              "are summed into the original module.\n",
              "\n",
              "The batch size should be larger than the number of GPUs used.\n",
              "\n",
              ".. warning::\n",
              "    It is recommended to use :class:`~torch.nn.parallel.DistributedDataParallel`,\n",
              "    instead of this class, to do multi-GPU training, even if there is only a single\n",
              "    node. See: :ref:`cuda-nn-ddp-instead` and :ref:`ddp`.\n",
              "\n",
              "Arbitrary positional and keyword inputs are allowed to be passed into\n",
              "DataParallel but some types are specially handled. tensors will be\n",
              "**scattered** on dim specified (default 0). tuple, list and dict types will\n",
              "be shallow copied. The other types will be shared among different threads\n",
              "and can be corrupted if written to in the model&#x27;s forward pass.\n",
              "\n",
              "The parallelized :attr:`module` must have its parameters and buffers on\n",
              "``device_ids[0]`` before running this :class:`~torch.nn.DataParallel`\n",
              "module.\n",
              "\n",
              ".. warning::\n",
              "    In each forward, :attr:`module` is **replicated** on each device, so any\n",
              "    updates to the running module in ``forward`` will be lost. For example,\n",
              "    if :attr:`module` has a counter attribute that is incremented in each\n",
              "    ``forward``, it will always stay at the initial value because the update\n",
              "    is done on the replicas which are destroyed after ``forward``. However,\n",
              "    :class:`~torch.nn.DataParallel` guarantees that the replica on\n",
              "    ``device[0]`` will have its parameters and buffers sharing storage with\n",
              "    the base parallelized :attr:`module`. So **in-place** updates to the\n",
              "    parameters or buffers on ``device[0]`` will be recorded. E.g.,\n",
              "    :class:`~torch.nn.BatchNorm2d` and :func:`~torch.nn.utils.spectral_norm`\n",
              "    rely on this behavior to update the buffers.\n",
              "\n",
              ".. warning::\n",
              "    Forward and backward hooks defined on :attr:`module` and its submodules\n",
              "    will be invoked ``len(device_ids)`` times, each with inputs located on\n",
              "    a particular device. Particularly, the hooks are only guaranteed to be\n",
              "    executed in correct order with respect to operations on corresponding\n",
              "    devices. For example, it is not guaranteed that hooks set via\n",
              "    :meth:`~torch.nn.Module.register_forward_pre_hook` be executed before\n",
              "    `all` ``len(device_ids)`` :meth:`~torch.nn.Module.forward` calls, but\n",
              "    that each such hook be executed before the corresponding\n",
              "    :meth:`~torch.nn.Module.forward` call of that device.\n",
              "\n",
              ".. warning::\n",
              "    When :attr:`module` returns a scalar (i.e., 0-dimensional tensor) in\n",
              "    :func:`forward`, this wrapper will return a vector of length equal to\n",
              "    number of devices used in data parallelism, containing the result from\n",
              "    each device.\n",
              "\n",
              ".. note::\n",
              "    There is a subtlety in using the\n",
              "    ``pack sequence -&gt; recurrent network -&gt; unpack sequence`` pattern in a\n",
              "    :class:`~torch.nn.Module` wrapped in :class:`~torch.nn.DataParallel`.\n",
              "    See :ref:`pack-rnn-unpack-with-data-parallelism` section in FAQ for\n",
              "    details.\n",
              "\n",
              "\n",
              "Args:\n",
              "    module (Module): module to be parallelized\n",
              "    device_ids (list of int or torch.device): CUDA devices (default: all devices)\n",
              "    output_device (int or torch.device): device location of output (default: device_ids[0])\n",
              "\n",
              "Attributes:\n",
              "    module (Module): the module to be parallelized\n",
              "\n",
              "Example::\n",
              "\n",
              "    &gt;&gt;&gt; # xdoctest: +SKIP\n",
              "    &gt;&gt;&gt; net = torch.nn.DataParallel(model, device_ids=[0, 1, 2])\n",
              "    &gt;&gt;&gt; output = net(input_var)  # input_var can be on any device, including CPU</pre>\n",
              "      <script>\n",
              "      if (google.colab.kernel.accessAllowed && google.colab.files && google.colab.files.view) {\n",
              "        for (const element of document.querySelectorAll('.filepath')) {\n",
              "          element.style.display = 'block'\n",
              "          element.onclick = (event) => {\n",
              "            event.preventDefault();\n",
              "            event.stopPropagation();\n",
              "            google.colab.files.view(element.textContent, 46);\n",
              "          };\n",
              "        }\n",
              "      }\n",
              "      for (const element of document.querySelectorAll('.function-repr-contents')) {\n",
              "        element.onclick = (event) => {\n",
              "          event.preventDefault();\n",
              "          event.stopPropagation();\n",
              "          element.classList.toggle('function-repr-contents-collapsed');\n",
              "        };\n",
              "      }\n",
              "      </script>\n",
              "      </div>"
            ],
            "text/plain": [
              "torch.nn.parallel.data_parallel.DataParallel"
            ]
          },
          "execution_count": 2,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "import torch\n",
        "\n",
        "torch.nn.DataParallel"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "X39bQ7YaqMIi",
        "outputId": "2aa0562c-564b-426d-f762-63ab7033783f"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Reading package lists... Done\n",
            "Building dependency tree... Done\n",
            "Reading state information... Done\n",
            "The following additional packages will be installed:\n",
            "  libpython3.7-minimal libpython3.7-stdlib mailcap mime-support\n",
            "  python3.7-minimal\n",
            "Suggested packages:\n",
            "  python3.7-venv binfmt-support\n",
            "The following NEW packages will be installed:\n",
            "  libpython3.7-minimal libpython3.7-stdlib mailcap mime-support python3.7\n",
            "  python3.7-minimal\n",
            "0 upgraded, 6 newly installed, 0 to remove and 38 not upgraded.\n",
            "Need to get 4,698 kB of archives.\n",
            "After this operation, 17.8 MB of additional disk space will be used.\n",
            "Get:1 http://archive.ubuntu.com/ubuntu jammy/main amd64 mailcap all 3.70+nmu1ubuntu1 [23.8 kB]\n",
            "Get:2 http://archive.ubuntu.com/ubuntu jammy/main amd64 mime-support all 3.66 [3,696 B]\n",
            "Ign:3 https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy/main amd64 libpython3.7-minimal amd64 3.7.17-1+jammy1\n",
            "Ign:4 https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy/main amd64 python3.7-minimal amd64 3.7.17-1+jammy1\n",
            "Ign:5 https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy/main amd64 libpython3.7-stdlib amd64 3.7.17-1+jammy1\n",
            "Ign:6 https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy/main amd64 python3.7 amd64 3.7.17-1+jammy1\n",
            "Ign:3 https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy/main amd64 libpython3.7-minimal amd64 3.7.17-1+jammy1\n",
            "Ign:4 https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy/main amd64 python3.7-minimal amd64 3.7.17-1+jammy1\n",
            "Ign:5 https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy/main amd64 libpython3.7-stdlib amd64 3.7.17-1+jammy1\n",
            "Ign:6 https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy/main amd64 python3.7 amd64 3.7.17-1+jammy1\n",
            "Ign:3 https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy/main amd64 libpython3.7-minimal amd64 3.7.17-1+jammy1\n",
            "Ign:4 https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy/main amd64 python3.7-minimal amd64 3.7.17-1+jammy1\n",
            "Ign:5 https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy/main amd64 libpython3.7-stdlib amd64 3.7.17-1+jammy1\n",
            "Ign:6 https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy/main amd64 python3.7 amd64 3.7.17-1+jammy1\n",
            "Err:3 https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy/main amd64 libpython3.7-minimal amd64 3.7.17-1+jammy1\n",
            "  503  Service Unavailable [IP: 185.125.190.80 443]\n",
            "Err:4 https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy/main amd64 python3.7-minimal amd64 3.7.17-1+jammy1\n",
            "  503  Service Unavailable [IP: 185.125.190.80 443]\n",
            "Err:5 https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy/main amd64 libpython3.7-stdlib amd64 3.7.17-1+jammy1\n",
            "  503  Service Unavailable [IP: 185.125.190.80 443]\n",
            "Err:6 https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy/main amd64 python3.7 amd64 3.7.17-1+jammy1\n",
            "  503  Service Unavailable [IP: 185.125.190.80 443]\n",
            "Fetched 27.5 kB in 52s (528 B/s)\n",
            "E: Failed to fetch https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu/pool/main/p/python3.7/libpython3.7-minimal_3.7.17-1%2bjammy1_amd64.deb  503  Service Unavailable [IP: 185.125.190.80 443]\n",
            "E: Failed to fetch https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu/pool/main/p/python3.7/python3.7-minimal_3.7.17-1%2bjammy1_amd64.deb  503  Service Unavailable [IP: 185.125.190.80 443]\n",
            "E: Failed to fetch https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu/pool/main/p/python3.7/libpython3.7-stdlib_3.7.17-1%2bjammy1_amd64.deb  503  Service Unavailable [IP: 185.125.190.80 443]\n",
            "E: Failed to fetch https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu/pool/main/p/python3.7/python3.7_3.7.17-1%2bjammy1_amd64.deb  503  Service Unavailable [IP: 185.125.190.80 443]\n",
            "E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?\n"
          ]
        }
      ],
      "source": [
        "!sudo apt-get install python3.7\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "gBZRrIxMVwaJ",
        "outputId": "cdd248c0-0773-43a3-c897-1a20e2734d4d"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Collecting torch==1.12.1\n",
            "  Downloading torch-1.12.1-cp310-cp310-manylinux1_x86_64.whl (776.3 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m776.3/776.3 MB\u001b[0m \u001b[31m1.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting torchaudio==0.12.1\n",
            "  Downloading torchaudio-0.12.1-cp310-cp310-manylinux1_x86_64.whl (3.7 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.7/3.7 MB\u001b[0m \u001b[31m29.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting torchmetrics==0.10.0\n",
            "  Downloading torchmetrics-0.10.0-py3-none-any.whl (529 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m529.2/529.2 kB\u001b[0m \u001b[31m52.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting torchvision==0.13.1\n",
            "  Downloading torchvision-0.13.1-cp310-cp310-manylinux1_x86_64.whl (19.1 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m19.1/19.1 MB\u001b[0m \u001b[31m76.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: typing-extensions in /usr/local/lib/python3.10/dist-packages (from torch==1.12.1) (4.11.0)\n",
            "Requirement already satisfied: numpy>=1.17.2 in /usr/local/lib/python3.10/dist-packages (from torchmetrics==0.10.0) (1.25.2)\n",
            "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from torchmetrics==0.10.0) (24.0)\n",
            "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from torchvision==0.13.1) (2.31.0)\n",
            "Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in /usr/local/lib/python3.10/dist-packages (from torchvision==0.13.1) (9.4.0)\n",
            "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->torchvision==0.13.1) (3.3.2)\n",
            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->torchvision==0.13.1) (3.7)\n",
            "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->torchvision==0.13.1) (2.0.7)\n",
            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->torchvision==0.13.1) (2024.2.2)\n",
            "Installing collected packages: torch, torchvision, torchmetrics, torchaudio\n",
            "  Attempting uninstall: torch\n",
            "    Found existing installation: torch 2.2.1+cu121\n",
            "    Uninstalling torch-2.2.1+cu121:\n",
            "      Successfully uninstalled torch-2.2.1+cu121\n",
            "  Attempting uninstall: torchvision\n",
            "    Found existing installation: torchvision 0.17.1+cu121\n",
            "    Uninstalling torchvision-0.17.1+cu121:\n",
            "      Successfully uninstalled torchvision-0.17.1+cu121\n",
            "  Attempting uninstall: torchaudio\n",
            "    Found existing installation: torchaudio 2.2.1+cu121\n",
            "    Uninstalling torchaudio-2.2.1+cu121:\n",
            "      Successfully uninstalled torchaudio-2.2.1+cu121\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",
            "torchdata 0.7.1 requires torch>=2, but you have torch 1.12.1 which is incompatible.\n",
            "torchtext 0.17.1 requires torch==2.2.1, but you have torch 1.12.1 which is incompatible.\u001b[0m\u001b[31m\n",
            "\u001b[0mSuccessfully installed torch-1.12.1 torchaudio-0.12.1 torchmetrics-0.10.0 torchvision-0.13.1\n"
          ]
        }
      ],
      "source": [
        "!pip install torch==1.12.1 torchaudio==0.12.1 torchmetrics==0.10.0 torchvision==0.13.1"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "onstl5SFfpvC",
        "outputId": "f14ad778-9fa6-4d45-961f-f6b67e1f9a5d"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Cloning into 'nanodet'...\n",
            "remote: Enumerating objects: 2722, done.\u001b[K\n",
            "remote: Counting objects: 100% (112/112), done.\u001b[K\n",
            "remote: Compressing objects: 100% (75/75), done.\u001b[K\n",
            "remote: Total 2722 (delta 52), reused 66 (delta 29), pack-reused 2610\u001b[K\n",
            "Receiving objects: 100% (2722/2722), 5.31 MiB | 25.79 MiB/s, done.\n",
            "Resolving deltas: 100% (1582/1582), done.\n"
          ]
        }
      ],
      "source": [
        "!git clone https://github.com/RangiLyu/nanodet.git\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "6NlBlQk1mYw1",
        "outputId": "69a92232-dce0-418e-d6c4-b8cc0418a04e"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "running develop\n",
            "/usr/local/lib/python3.10/dist-packages/setuptools/command/develop.py:40: EasyInstallDeprecationWarning: easy_install command is deprecated.\n",
            "!!\n",
            "\n",
            "        ********************************************************************************\n",
            "        Please avoid running ``setup.py`` and ``easy_install``.\n",
            "        Instead, use pypa/build, pypa/installer, pypa/build or\n",
            "        other standards-based tools.\n",
            "\n",
            "        See https://github.com/pypa/setuptools/issues/917 for details.\n",
            "        ********************************************************************************\n",
            "\n",
            "!!\n",
            "  easy_install.initialize_options(self)\n",
            "/usr/local/lib/python3.10/dist-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated.\n",
            "!!\n",
            "\n",
            "        ********************************************************************************\n",
            "        Please avoid running ``setup.py`` directly.\n",
            "        Instead, use pypa/build, pypa/installer, pypa/build or\n",
            "        other standards-based tools.\n",
            "\n",
            "        See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.\n",
            "        ********************************************************************************\n",
            "\n",
            "!!\n",
            "  self.initialize_options()\n",
            "running egg_info\n",
            "creating nanodet.egg-info\n",
            "writing nanodet.egg-info/PKG-INFO\n",
            "writing dependency_links to nanodet.egg-info/dependency_links.txt\n",
            "writing top-level names to nanodet.egg-info/top_level.txt\n",
            "writing manifest file 'nanodet.egg-info/SOURCES.txt'\n",
            "reading manifest file 'nanodet.egg-info/SOURCES.txt'\n",
            "writing manifest file 'nanodet.egg-info/SOURCES.txt'\n",
            "running build_ext\n",
            "Creating /usr/local/lib/python3.10/dist-packages/nanodet.egg-link (link to .)\n",
            "Adding nanodet 0.4.0 to easy-install.pth file\n",
            "\n",
            "Installed /content\n",
            "Processing dependencies for nanodet==0.4.0\n",
            "Finished processing dependencies for nanodet==0.4.0\n"
          ]
        }
      ],
      "source": [
        "!python /content/drive/MyDrive/nanodet-main/setup.py develop"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "ZZPlEvHH4KUE",
        "outputId": "0d5b6007-d6ea-4936-cd43-fd9ddac25ea3"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Requirement already satisfied: Cython in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 1)) (3.0.9)\n",
            "Requirement already satisfied: imagesize in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 2)) (1.4.1)\n",
            "Requirement already satisfied: matplotlib in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 3)) (3.7.1)\n",
            "Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 4)) (1.25.2)\n",
            "Requirement already satisfied: omegaconf>=2.0.1 in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 5)) (2.3.0)\n",
            "Requirement already satisfied: onnx in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 6)) (1.15.0)\n",
            "Requirement already satisfied: onnx-simplifier in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 7)) (0.4.36)\n",
            "Requirement already satisfied: opencv-python in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 8)) (4.8.0.76)\n",
            "Requirement already satisfied: pyaml in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 9)) (23.12.0)\n",
            "Requirement already satisfied: pycocotools in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 10)) (2.0.7)\n",
            "Collecting pytorch-lightning<2.0.0,>=1.9.0 (from -r requirements.txt (line 11))\n",
            "  Using cached pytorch_lightning-1.9.5-py3-none-any.whl (829 kB)\n",
            "Requirement already satisfied: tabulate in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 12)) (0.9.0)\n",
            "Requirement already satisfied: tensorboard in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 13)) (2.15.2)\n",
            "Requirement already satisfied: termcolor in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 14)) (2.4.0)\n",
            "Collecting torch<2.0,>=1.10 (from -r requirements.txt (line 15))\n",
            "  Downloading torch-1.13.1-cp310-cp310-manylinux1_x86_64.whl (887.5 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m887.5/887.5 MB\u001b[0m \u001b[31m1.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: torchmetrics in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 16)) (0.10.0)\n",
            "Requirement already satisfied: torchvision in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 17)) (0.13.1)\n",
            "Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 18)) (4.66.2)\n",
            "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->-r requirements.txt (line 3)) (1.2.0)\n",
            "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib->-r requirements.txt (line 3)) (0.12.1)\n",
            "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->-r requirements.txt (line 3)) (4.50.0)\n",
            "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->-r requirements.txt (line 3)) (1.4.5)\n",
            "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->-r requirements.txt (line 3)) (24.0)\n",
            "Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->-r requirements.txt (line 3)) (9.4.0)\n",
            "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->-r requirements.txt (line 3)) (3.1.2)\n",
            "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib->-r requirements.txt (line 3)) (2.8.2)\n",
            "Requirement already satisfied: antlr4-python3-runtime==4.9.* in /usr/local/lib/python3.10/dist-packages (from omegaconf>=2.0.1->-r requirements.txt (line 5)) (4.9.3)\n",
            "Requirement already satisfied: PyYAML>=5.1.0 in /usr/local/lib/python3.10/dist-packages (from omegaconf>=2.0.1->-r requirements.txt (line 5)) (6.0.1)\n",
            "Requirement already satisfied: protobuf>=3.20.2 in /usr/local/lib/python3.10/dist-packages (from onnx->-r requirements.txt (line 6)) (3.20.3)\n",
            "Requirement already satisfied: rich in /usr/local/lib/python3.10/dist-packages (from onnx-simplifier->-r requirements.txt (line 7)) (13.7.1)\n",
            "Requirement already satisfied: fsspec[http]>2021.06.0 in /usr/local/lib/python3.10/dist-packages (from pytorch-lightning<2.0.0,>=1.9.0->-r requirements.txt (line 11)) (2023.6.0)\n",
            "Requirement already satisfied: typing-extensions>=4.0.0 in /usr/local/lib/python3.10/dist-packages (from pytorch-lightning<2.0.0,>=1.9.0->-r requirements.txt (line 11)) (4.10.0)\n",
            "Requirement already satisfied: lightning-utilities>=0.6.0.post0 in /usr/local/lib/python3.10/dist-packages (from pytorch-lightning<2.0.0,>=1.9.0->-r requirements.txt (line 11)) (0.11.0)\n",
            "Requirement already satisfied: absl-py>=0.4 in /usr/local/lib/python3.10/dist-packages (from tensorboard->-r requirements.txt (line 13)) (1.4.0)\n",
            "Requirement already satisfied: grpcio>=1.48.2 in /usr/local/lib/python3.10/dist-packages (from tensorboard->-r requirements.txt (line 13)) (1.62.1)\n",
            "Requirement already satisfied: google-auth<3,>=1.6.3 in /usr/local/lib/python3.10/dist-packages (from tensorboard->-r requirements.txt (line 13)) (2.27.0)\n",
            "Requirement already satisfied: google-auth-oauthlib<2,>=0.5 in /usr/local/lib/python3.10/dist-packages (from tensorboard->-r requirements.txt (line 13)) (1.2.0)\n",
            "Requirement already satisfied: markdown>=2.6.8 in /usr/local/lib/python3.10/dist-packages (from tensorboard->-r requirements.txt (line 13)) (3.6)\n",
            "Requirement already satisfied: requests<3,>=2.21.0 in /usr/local/lib/python3.10/dist-packages (from tensorboard->-r requirements.txt (line 13)) (2.31.0)\n",
            "Requirement already satisfied: setuptools>=41.0.0 in /usr/local/lib/python3.10/dist-packages (from tensorboard->-r requirements.txt (line 13)) (67.7.2)\n",
            "Requirement already satisfied: six>1.9 in /usr/local/lib/python3.10/dist-packages (from tensorboard->-r requirements.txt (line 13)) (1.16.0)\n",
            "Requirement already satisfied: tensorboard-data-server<0.8.0,>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from tensorboard->-r requirements.txt (line 13)) (0.7.2)\n",
            "Requirement already satisfied: werkzeug>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from tensorboard->-r requirements.txt (line 13)) (3.0.1)\n",
            "Collecting nvidia-cuda-runtime-cu11==11.7.99 (from torch<2.0,>=1.10->-r requirements.txt (line 15))\n",
            "  Downloading nvidia_cuda_runtime_cu11-11.7.99-py3-none-manylinux1_x86_64.whl (849 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m849.3/849.3 kB\u001b[0m \u001b[31m56.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting nvidia-cudnn-cu11==8.5.0.96 (from torch<2.0,>=1.10->-r requirements.txt (line 15))\n",
            "  Downloading nvidia_cudnn_cu11-8.5.0.96-2-py3-none-manylinux1_x86_64.whl (557.1 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m557.1/557.1 MB\u001b[0m \u001b[31m2.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting nvidia-cublas-cu11==11.10.3.66 (from torch<2.0,>=1.10->-r requirements.txt (line 15))\n",
            "  Downloading nvidia_cublas_cu11-11.10.3.66-py3-none-manylinux1_x86_64.whl (317.1 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m317.1/317.1 MB\u001b[0m \u001b[31m1.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting nvidia-cuda-nvrtc-cu11==11.7.99 (from torch<2.0,>=1.10->-r requirements.txt (line 15))\n",
            "  Downloading nvidia_cuda_nvrtc_cu11-11.7.99-2-py3-none-manylinux1_x86_64.whl (21.0 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m21.0/21.0 MB\u001b[0m \u001b[31m70.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: wheel in /usr/local/lib/python3.10/dist-packages (from nvidia-cublas-cu11==11.10.3.66->torch<2.0,>=1.10->-r requirements.txt (line 15)) (0.43.0)\n",
            "Collecting torch<2.0,>=1.10 (from -r requirements.txt (line 15))\n",
            "  Using cached torch-1.12.1-cp310-cp310-manylinux1_x86_64.whl (776.3 MB)\n",
            "Requirement already satisfied: aiohttp!=4.0.0a0,!=4.0.0a1 in /usr/local/lib/python3.10/dist-packages (from fsspec[http]>2021.06.0->pytorch-lightning<2.0.0,>=1.9.0->-r requirements.txt (line 11)) (3.9.3)\n",
            "Requirement already satisfied: cachetools<6.0,>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard->-r requirements.txt (line 13)) (5.3.3)\n",
            "Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard->-r requirements.txt (line 13)) (0.3.0)\n",
            "Requirement already satisfied: rsa<5,>=3.1.4 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard->-r requirements.txt (line 13)) (4.9)\n",
            "Requirement already satisfied: requests-oauthlib>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from google-auth-oauthlib<2,>=0.5->tensorboard->-r requirements.txt (line 13)) (1.4.0)\n",
            "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorboard->-r requirements.txt (line 13)) (3.3.2)\n",
            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorboard->-r requirements.txt (line 13)) (3.6)\n",
            "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorboard->-r requirements.txt (line 13)) (2.0.7)\n",
            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorboard->-r requirements.txt (line 13)) (2024.2.2)\n",
            "Requirement already satisfied: MarkupSafe>=2.1.1 in /usr/local/lib/python3.10/dist-packages (from werkzeug>=1.0.1->tensorboard->-r requirements.txt (line 13)) (2.1.5)\n",
            "Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich->onnx-simplifier->-r requirements.txt (line 7)) (3.0.0)\n",
            "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich->onnx-simplifier->-r requirements.txt (line 7)) (2.16.1)\n",
            "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]>2021.06.0->pytorch-lightning<2.0.0,>=1.9.0->-r requirements.txt (line 11)) (1.3.1)\n",
            "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]>2021.06.0->pytorch-lightning<2.0.0,>=1.9.0->-r requirements.txt (line 11)) (23.2.0)\n",
            "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]>2021.06.0->pytorch-lightning<2.0.0,>=1.9.0->-r requirements.txt (line 11)) (1.4.1)\n",
            "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]>2021.06.0->pytorch-lightning<2.0.0,>=1.9.0->-r requirements.txt (line 11)) (6.0.5)\n",
            "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]>2021.06.0->pytorch-lightning<2.0.0,>=1.9.0->-r requirements.txt (line 11)) (1.9.4)\n",
            "Requirement already satisfied: async-timeout<5.0,>=4.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]>2021.06.0->pytorch-lightning<2.0.0,>=1.9.0->-r requirements.txt (line 11)) (4.0.3)\n",
            "Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich->onnx-simplifier->-r requirements.txt (line 7)) (0.1.2)\n",
            "Requirement already satisfied: pyasn1<0.6.0,>=0.4.6 in /usr/local/lib/python3.10/dist-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard->-r requirements.txt (line 13)) (0.5.1)\n",
            "Requirement already satisfied: oauthlib>=3.0.0 in /usr/local/lib/python3.10/dist-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<2,>=0.5->tensorboard->-r requirements.txt (line 13)) (3.2.2)\n",
            "Installing collected packages: torch, pytorch-lightning\n",
            "  Attempting uninstall: torch\n",
            "    Found existing installation: torch 2.2.1\n",
            "    Uninstalling torch-2.2.1:\n",
            "      Successfully uninstalled torch-2.2.1\n",
            "  Attempting uninstall: pytorch-lightning\n",
            "    Found existing installation: pytorch-lightning 1.5.5\n",
            "    Uninstalling pytorch-lightning-1.5.5:\n",
            "      Successfully uninstalled pytorch-lightning-1.5.5\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",
            "torchdata 0.7.1 requires torch>=2, but you have torch 1.12.1 which is incompatible.\n",
            "torchtext 0.17.1 requires torch==2.2.1, but you have torch 1.12.1 which is incompatible.\u001b[0m\u001b[31m\n",
            "\u001b[0mSuccessfully installed pytorch-lightning-1.9.5 torch-1.12.1\n"
          ]
        }
      ],
      "source": [
        "!pip install -r requirements.txt"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "eOMgEz-88IEQ",
        "outputId": "9b764357-83e6-4718-d464-9602eba345f4"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "/content/drive/MyDrive/nanodet-main\n"
          ]
        }
      ],
      "source": [
        "#!git clone https://github.com/RangiLyu/nanodet.git\n",
        "%cd /content/drive/MyDrive/nanodet-main\n"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "!pip install roboflow\n",
        "\n",
        "from roboflow import Roboflow\n",
        "rf = Roboflow(api_key=\"s42NhYIlVWqhYZbpvFWv\")\n",
        "project = rf.workspace(\"maria-mari\").project(\"asmatalaa\")\n",
        "version = project.version(2)\n",
        "dataset = version.download(\"voc\")\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "9jS5drBMYJCZ",
        "outputId": "d88e3674-cdfd-48ba-c5a4-14af4d47d24f"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Requirement already satisfied: roboflow in /usr/local/lib/python3.10/dist-packages (1.1.28)\n",
            "Requirement already satisfied: certifi==2023.7.22 in /usr/local/lib/python3.10/dist-packages (from roboflow) (2023.7.22)\n",
            "Requirement already satisfied: chardet==4.0.0 in /usr/local/lib/python3.10/dist-packages (from roboflow) (4.0.0)\n",
            "Requirement already satisfied: cycler==0.10.0 in /usr/local/lib/python3.10/dist-packages (from roboflow) (0.10.0)\n",
            "Requirement already satisfied: idna==2.10 in /usr/local/lib/python3.10/dist-packages (from roboflow) (2.10)\n",
            "Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.10/dist-packages (from roboflow) (1.4.5)\n",
            "Requirement already satisfied: matplotlib in /usr/local/lib/python3.10/dist-packages (from roboflow) (3.7.1)\n",
            "Requirement already satisfied: numpy>=1.18.5 in /usr/local/lib/python3.10/dist-packages (from roboflow) (1.25.2)\n",
            "Requirement already satisfied: opencv-python-headless==4.8.0.74 in /usr/local/lib/python3.10/dist-packages (from roboflow) (4.8.0.74)\n",
            "Requirement already satisfied: Pillow>=7.1.2 in /usr/local/lib/python3.10/dist-packages (from roboflow) (9.4.0)\n",
            "Requirement already satisfied: python-dateutil in /usr/local/lib/python3.10/dist-packages (from roboflow) (2.8.2)\n",
            "Requirement already satisfied: python-dotenv in /usr/local/lib/python3.10/dist-packages (from roboflow) (1.0.1)\n",
            "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from roboflow) (2.31.0)\n",
            "Requirement already satisfied: six in /usr/local/lib/python3.10/dist-packages (from roboflow) (1.16.0)\n",
            "Requirement already satisfied: urllib3>=1.26.6 in /usr/local/lib/python3.10/dist-packages (from roboflow) (2.0.7)\n",
            "Requirement already satisfied: tqdm>=4.41.0 in /usr/local/lib/python3.10/dist-packages (from roboflow) (4.66.2)\n",
            "Requirement already satisfied: PyYAML>=5.3.1 in /usr/local/lib/python3.10/dist-packages (from roboflow) (6.0.1)\n",
            "Requirement already satisfied: requests-toolbelt in /usr/local/lib/python3.10/dist-packages (from roboflow) (1.0.0)\n",
            "Requirement already satisfied: python-magic in /usr/local/lib/python3.10/dist-packages (from roboflow) (0.4.27)\n",
            "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->roboflow) (1.2.1)\n",
            "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->roboflow) (4.51.0)\n",
            "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->roboflow) (24.0)\n",
            "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->roboflow) (3.1.2)\n",
            "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->roboflow) (3.3.2)\n",
            "loading Roboflow workspace...\n",
            "loading Roboflow project...\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "Downloading Dataset Version Zip in xiuaohuadao-2 to voc:: 100%|██████████| 171083/171083 [00:15<00:00, 10763.33it/s]"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "\n",
            "Extracting Dataset Version Zip to xiuaohuadao-2 in voc:: 100%|██████████| 7180/7180 [00:56<00:00, 126.15it/s]\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "b4JSqXJnYqWC",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "d815606c-f0b7-4c8b-e608-0c2e5a18c56a"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Requirement already satisfied: roboflow in /usr/local/lib/python3.10/dist-packages (1.1.28)\n",
            "Requirement already satisfied: certifi==2023.7.22 in /usr/local/lib/python3.10/dist-packages (from roboflow) (2023.7.22)\n",
            "Requirement already satisfied: chardet==4.0.0 in /usr/local/lib/python3.10/dist-packages (from roboflow) (4.0.0)\n",
            "Requirement already satisfied: cycler==0.10.0 in /usr/local/lib/python3.10/dist-packages (from roboflow) (0.10.0)\n",
            "Requirement already satisfied: idna==2.10 in /usr/local/lib/python3.10/dist-packages (from roboflow) (2.10)\n",
            "Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.10/dist-packages (from roboflow) (1.4.5)\n",
            "Requirement already satisfied: matplotlib in /usr/local/lib/python3.10/dist-packages (from roboflow) (3.7.1)\n",
            "Requirement already satisfied: numpy>=1.18.5 in /usr/local/lib/python3.10/dist-packages (from roboflow) (1.25.2)\n",
            "Requirement already satisfied: opencv-python-headless==4.8.0.74 in /usr/local/lib/python3.10/dist-packages (from roboflow) (4.8.0.74)\n",
            "Requirement already satisfied: Pillow>=7.1.2 in /usr/local/lib/python3.10/dist-packages (from roboflow) (9.4.0)\n",
            "Requirement already satisfied: python-dateutil in /usr/local/lib/python3.10/dist-packages (from roboflow) (2.8.2)\n",
            "Requirement already satisfied: python-dotenv in /usr/local/lib/python3.10/dist-packages (from roboflow) (1.0.1)\n",
            "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from roboflow) (2.31.0)\n",
            "Requirement already satisfied: six in /usr/local/lib/python3.10/dist-packages (from roboflow) (1.16.0)\n",
            "Requirement already satisfied: urllib3>=1.26.6 in /usr/local/lib/python3.10/dist-packages (from roboflow) (2.0.7)\n",
            "Requirement already satisfied: tqdm>=4.41.0 in /usr/local/lib/python3.10/dist-packages (from roboflow) (4.66.2)\n",
            "Requirement already satisfied: PyYAML>=5.3.1 in /usr/local/lib/python3.10/dist-packages (from roboflow) (6.0.1)\n",
            "Requirement already satisfied: requests-toolbelt in /usr/local/lib/python3.10/dist-packages (from roboflow) (1.0.0)\n",
            "Requirement already satisfied: python-magic in /usr/local/lib/python3.10/dist-packages (from roboflow) (0.4.27)\n",
            "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->roboflow) (1.2.1)\n",
            "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->roboflow) (4.51.0)\n",
            "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->roboflow) (24.0)\n",
            "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->roboflow) (3.1.2)\n",
            "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->roboflow) (3.3.2)\n",
            "loading Roboflow workspace...\n",
            "loading Roboflow project...\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "Downloading Dataset Version Zip in asmatalaa-2 to voc:: 100%|██████████| 321618/321618 [00:33<00:00, 9721.35it/s] "
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "\n",
            "Extracting Dataset Version Zip to asmatalaa-2 in voc:: 100%|██████████| 15981/15981 [02:27<00:00, 108.21it/s]\n"
          ]
        }
      ],
      "source": [
        "!pip install roboflow\n",
        "\n",
        "from roboflow import Roboflow\n",
        "rf = Roboflow(api_key=\"QiU4dNoSFJMfPXp5Exbh\")\n",
        "project = rf.workspace(\"khon-kaen-university-ai-inspiration-tanatorn-boontem\").project(\"medical_education\")\n",
        "version = project.version(1)\n",
        "dataset = version.download(\"voc\")\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "mt_Z-Jp9Abw2"
      },
      "outputs": [],
      "source": [
        "!cp tools/train.py ./"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "7uKSKHLHHy0F",
        "outputId": "9cd5235f-b99a-4ba1-855e-f3dcca0609fa"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Collecting pytorch-lightning==1.9.5\n",
            "  Downloading pytorch_lightning-1.9.5-py3-none-any.whl (829 kB)\n",
            "\u001b[?25l     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/829.5 kB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K     \u001b[91m━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m368.6/829.5 kB\u001b[0m \u001b[31m10.9 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m829.5/829.5 kB\u001b[0m \u001b[31m12.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: numpy>=1.17.2 in /usr/local/lib/python3.10/dist-packages (from pytorch-lightning==1.9.5) (1.25.2)\n",
            "Requirement already satisfied: torch>=1.10.0 in /usr/local/lib/python3.10/dist-packages (from pytorch-lightning==1.9.5) (1.12.1)\n",
            "Requirement already satisfied: tqdm>=4.57.0 in /usr/local/lib/python3.10/dist-packages (from pytorch-lightning==1.9.5) (4.66.2)\n",
            "Requirement already satisfied: PyYAML>=5.4 in /usr/local/lib/python3.10/dist-packages (from pytorch-lightning==1.9.5) (6.0.1)\n",
            "Requirement already satisfied: fsspec[http]>2021.06.0 in /usr/local/lib/python3.10/dist-packages (from pytorch-lightning==1.9.5) (2023.6.0)\n",
            "Requirement already satisfied: torchmetrics>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from pytorch-lightning==1.9.5) (0.10.0)\n",
            "Requirement already satisfied: packaging>=17.1 in /usr/local/lib/python3.10/dist-packages (from pytorch-lightning==1.9.5) (24.0)\n",
            "Requirement already satisfied: typing-extensions>=4.0.0 in /usr/local/lib/python3.10/dist-packages (from pytorch-lightning==1.9.5) (4.11.0)\n",
            "Collecting lightning-utilities>=0.6.0.post0 (from pytorch-lightning==1.9.5)\n",
            "  Downloading lightning_utilities-0.11.2-py3-none-any.whl (26 kB)\n",
            "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from fsspec[http]>2021.06.0->pytorch-lightning==1.9.5) (2.31.0)\n",
            "Requirement already satisfied: aiohttp!=4.0.0a0,!=4.0.0a1 in /usr/local/lib/python3.10/dist-packages (from fsspec[http]>2021.06.0->pytorch-lightning==1.9.5) (3.9.5)\n",
            "Requirement already satisfied: setuptools in /usr/local/lib/python3.10/dist-packages (from lightning-utilities>=0.6.0.post0->pytorch-lightning==1.9.5) (67.7.2)\n",
            "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]>2021.06.0->pytorch-lightning==1.9.5) (1.3.1)\n",
            "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]>2021.06.0->pytorch-lightning==1.9.5) (23.2.0)\n",
            "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]>2021.06.0->pytorch-lightning==1.9.5) (1.4.1)\n",
            "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]>2021.06.0->pytorch-lightning==1.9.5) (6.0.5)\n",
            "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]>2021.06.0->pytorch-lightning==1.9.5) (1.9.4)\n",
            "Requirement already satisfied: async-timeout<5.0,>=4.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]>2021.06.0->pytorch-lightning==1.9.5) (4.0.3)\n",
            "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->fsspec[http]>2021.06.0->pytorch-lightning==1.9.5) (3.3.2)\n",
            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->fsspec[http]>2021.06.0->pytorch-lightning==1.9.5) (3.7)\n",
            "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->fsspec[http]>2021.06.0->pytorch-lightning==1.9.5) (2.0.7)\n",
            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->fsspec[http]>2021.06.0->pytorch-lightning==1.9.5) (2024.2.2)\n",
            "Installing collected packages: lightning-utilities, pytorch-lightning\n",
            "Successfully installed lightning-utilities-0.11.2 pytorch-lightning-1.9.5\n"
          ]
        }
      ],
      "source": [
        "!pip install pytorch-lightning==1.9.5"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "0tmd3_438QLT",
        "outputId": "2b664918-71c3-4308-b61a-ced864683937"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:53:45]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mUsing Tensorboard, logs will be saved in workspace/nanodet_m/logs\u001b[0m\n",
            "2024-05-07 15:53:46.681941: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:9261] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
            "2024-05-07 15:53:46.681989: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:607] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
            "2024-05-07 15:53:46.683395: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1515] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
            "2024-05-07 15:53:47.751919: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n",
            "\u001b[1m\u001b[35m[numexpr.utils]\u001b[0m\u001b[34m[05-07 15:53:48]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mNumExpr defaulting to 2 threads.\u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:53:48]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mSetting up data...\u001b[0m\n",
            "/content/drive/MyDrive/nanodet-main/nanodet/data/dataset/__init__.py:33: UserWarning: Dataset name xml_dataset has been deprecated. Please use XMLDataset instead.\n",
            "  warnings.warn(\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:53:49]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mloading annotations into memory...\u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:53:49]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mFound 1152 annotation files.\u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:54:42]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mLoad 1152 xml files and 1152 boxes\u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:54:42]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mDone (t=53.21s)\u001b[0m\n",
            "creating index...\n",
            "index created!\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:54:42]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mloading annotations into memory...\u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:54:42]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mFound 487 annotation files.\u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:55:10]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mLoad 487 xml files and 487 boxes\u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:55:10]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mDone (t=28.49s)\u001b[0m\n",
            "creating index...\n",
            "index created!\n",
            "/usr/local/lib/python3.10/dist-packages/torch/utils/data/dataloader.py:563: UserWarning: This DataLoader will create 4 worker processes in total. Our suggested max number of worker in current system is 2, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.\n",
            "  warnings.warn(_create_warning_msg(\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:55:10]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mCreating model...\u001b[0m\n",
            "model size is  1.0x\n",
            "init weights...\n",
            "=> loading pretrained model https://download.pytorch.org/models/shufflenetv2_x1-5666bf0f80.pth\n",
            "Finish initialize Lite GFL Head.\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:55:15]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mLoaded model weight from /content/drive/MyDrive/nanodet-main/workspace/nanodet_m/model_last.ckpt\u001b[0m\n",
            "/usr/local/lib/python3.10/dist-packages/pytorch_lightning/trainer/connectors/accelerator_connector.py:478: LightningDeprecationWarning: Setting `Trainer(gpus=[0])` is deprecated in v1.7 and will be removed in v2.0. Please use `Trainer(accelerator='gpu', devices=[0])` instead.\n",
            "  rank_zero_deprecation(\n",
            "/usr/local/lib/python3.10/dist-packages/pytorch_lightning/trainer/connectors/checkpoint_connector.py:55: LightningDeprecationWarning: Setting `Trainer(resume_from_checkpoint=)` is deprecated in v1.5 and will be removed in v2.0. Please pass `Trainer.fit(ckpt_path=)` directly instead.\n",
            "  rank_zero_deprecation(\n",
            "GPU available: True (cuda), used: True\n",
            "TPU available: False, using: 0 TPU cores\n",
            "IPU available: False, using: 0 IPUs\n",
            "HPU available: False, using: 0 HPUs\n",
            "/usr/local/lib/python3.10/dist-packages/pytorch_lightning/trainer/trainer.py:1906: LightningDeprecationWarning: `trainer.resume_from_checkpoint` is deprecated in v1.5 and will be removed in v2.0. Specify the fit checkpoint path with `trainer.fit(ckpt_path=)` instead.\n",
            "  rank_zero_deprecation(\n",
            "Initializing distributed: GLOBAL_RANK: 0, MEMBER: 1/1\n",
            "\u001b[1m\u001b[35m[torch.distributed.distributed_c10d]\u001b[0m\u001b[34m[05-07 15:55:15]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mAdded key: store_based_barrier_key:1 to store for rank: 0\u001b[0m\n",
            "\u001b[1m\u001b[35m[torch.distributed.distributed_c10d]\u001b[0m\u001b[34m[05-07 15:55:15]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mRank 0: Completed store-based barrier for key:store_based_barrier_key:1 with 1 nodes.\u001b[0m\n",
            "----------------------------------------------------------------------------------------------------\n",
            "distributed_backend=nccl\n",
            "All distributed processes registered. Starting with 1 processes\n",
            "----------------------------------------------------------------------------------------------------\n",
            "\n",
            "Restoring states from the checkpoint path at workspace/nanodet_m/model_last.ckpt\n",
            "/usr/local/lib/python3.10/dist-packages/pytorch_lightning/callbacks/model_checkpoint.py:338: UserWarning: The dirpath has changed from 'workspace/nanodet_m/lightning_logs/version_69/checkpoints' to 'workspace/nanodet_m/lightning_logs/version_70/checkpoints', therefore `best_model_score`, `kth_best_model_path`, `kth_value`, `last_model_path` and `best_k_models` won't be reloaded. Only `best_model_path` will be reloaded.\n",
            "  warnings.warn(\n",
            "LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]\n",
            "\n",
            "  | Name  | Type             | Params\n",
            "-------------------------------------------\n",
            "0 | model | OneStageDetector | 938 K \n",
            "-------------------------------------------\n",
            "938 K     Trainable params\n",
            "0         Non-trainable params\n",
            "938 K     Total params\n",
            "3.754     Total estimated model params size (MB)\n",
            "Restored all states from the checkpoint file at workspace/nanodet_m/model_last.ckpt\n",
            "Epoch 124:   0% 0/36 [00:00<?, ?it/s]             /usr/lib/python3.10/multiprocessing/popen_fork.py:66: RuntimeWarning: os.fork() was called. os.fork() is incompatible with multithreaded code, and JAX is multithreaded, so this will likely lead to a deadlock.\n",
            "  self.pid = os.fork()\n",
            "Epoch 125:   0% 0/36 [00:00<?, ?it/s, loss=nan, v_num=70]/usr/local/lib/python3.10/dist-packages/pytorch_lightning/loops/optimization/optimizer_loop.py:362: LightningDeprecationWarning: The NVIDIA/apex AMP implementation has been deprecated upstream. Consequently, its integration inside PyTorch Lightning has been deprecated in v1.9.0 and will be removed in v2.0.0. The `TrainingTask.optimizer_step()` hook is overridden, including the `using_native_amp` argument. Removing this argument will avoid this message, you can expect it to return True.\n",
            "  rank_zero_deprecation(\n",
            "/usr/local/lib/python3.10/dist-packages/torch/functional.py:478: 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:2895.)\n",
            "  return _VF.meshgrid(tensors, **kwargs)  # type: ignore[attr-defined]\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:55:21]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch126/150|Iter4500(0)| lr:5.00e-03| loss_qfl:0.0795| loss_bbox:0.0798| loss_dfl:0.1815| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:55:28]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch126/150|Iter4510(10)| lr:5.00e-03| loss_qfl:0.0829| loss_bbox:0.0718| loss_dfl:0.1674| \u001b[0m\n",
            "Epoch 125:  56% 20/36 [00:18<00:14,  1.10it/s, loss=0.351, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:55:34]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch126/150|Iter4520(20)| lr:5.00e-03| loss_qfl:0.0842| loss_bbox:0.0672| loss_dfl:0.1770| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:55:39]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch126/150|Iter4530(30)| lr:5.00e-03| loss_qfl:0.1093| loss_bbox:0.0666| loss_dfl:0.1771| \u001b[0m\n",
            "Epoch 126:   0% 0/36 [00:00<?, ?it/s, loss=0.349, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:55:47]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch127/150|Iter4540(4)| lr:5.00e-03| loss_qfl:0.0784| loss_bbox:0.0689| loss_dfl:0.1779| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:55:53]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch127/150|Iter4550(14)| lr:5.00e-03| loss_qfl:0.0706| loss_bbox:0.0649| loss_dfl:0.1759| \u001b[0m\n",
            "Epoch 126:  56% 20/36 [00:15<00:12,  1.30it/s, loss=0.337, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:55:58]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch127/150|Iter4560(24)| lr:5.00e-03| loss_qfl:0.0867| loss_bbox:0.0765| loss_dfl:0.1801| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:56:03]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch127/150|Iter4570(34)| lr:5.00e-03| loss_qfl:0.0701| loss_bbox:0.0812| loss_dfl:0.1821| \u001b[0m\n",
            "Epoch 127:   0% 0/36 [00:00<?, ?it/s, loss=0.349, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:56:10]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch128/150|Iter4580(8)| lr:5.00e-03| loss_qfl:0.0699| loss_bbox:0.0696| loss_dfl:0.1804| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:56:16]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch128/150|Iter4590(18)| lr:5.00e-03| loss_qfl:0.0970| loss_bbox:0.0627| loss_dfl:0.1717| \u001b[0m\n",
            "Epoch 127:  56% 20/36 [00:14<00:11,  1.38it/s, loss=0.34, v_num=70] \u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:56:23]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch128/150|Iter4600(28)| lr:5.00e-03| loss_qfl:0.1037| loss_bbox:0.0756| loss_dfl:0.1749| \u001b[0m\n",
            "Epoch 128:   0% 0/36 [00:00<?, ?it/s, loss=0.349, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:56:29]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch129/150|Iter4610(2)| lr:5.00e-03| loss_qfl:0.1360| loss_bbox:0.0698| loss_dfl:0.1766| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:56:36]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch129/150|Iter4620(12)| lr:5.00e-03| loss_qfl:0.0883| loss_bbox:0.0718| loss_dfl:0.1777| \u001b[0m\n",
            "Epoch 128:  56% 20/36 [00:14<00:11,  1.36it/s, loss=0.367, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:56:41]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch129/150|Iter4630(22)| lr:5.00e-03| loss_qfl:0.0977| loss_bbox:0.0771| loss_dfl:0.1748| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:56:45]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch129/150|Iter4640(32)| lr:5.00e-03| loss_qfl:0.0748| loss_bbox:0.0646| loss_dfl:0.1772| \u001b[0m\n",
            "Epoch 129:   0% 0/36 [00:00<?, ?it/s, loss=0.358, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:56:53]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch130/150|Iter4650(6)| lr:5.00e-03| loss_qfl:0.0785| loss_bbox:0.0783| loss_dfl:0.1781| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:56:58]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch130/150|Iter4660(16)| lr:5.00e-03| loss_qfl:0.0758| loss_bbox:0.0582| loss_dfl:0.1706| \u001b[0m\n",
            "Epoch 129:  56% 20/36 [00:13<00:10,  1.46it/s, loss=0.342, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:57:05]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch130/150|Iter4670(26)| lr:5.00e-03| loss_qfl:0.1090| loss_bbox:0.0727| loss_dfl:0.1795| \u001b[0m\n",
            "Epoch 129: 100% 36/36 [00:21<00:00,  1.64it/s, loss=0.34, v_num=70] \n",
            "Validation: 0it [00:00, ?it/s]\u001b[A\n",
            "Validation:   0% 0/15 [00:00<?, ?it/s]\u001b[A\n",
            "Validation DataLoader 0:   0% 0/15 [00:00<?, ?it/s]\u001b[A\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:57:11]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mVal|Epoch130/150|Iter4680(0)| lr:5.00e-03| loss_qfl:0.3150| loss_bbox:0.0326| loss_dfl:0.1812| \u001b[0m\n",
            "Epoch 129: : 40it [00:26,  1.48it/s, loss=0.34, v_num=70]          \u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:57:18]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mVal|Epoch130/150|Iter4680(10)| lr:5.00e-03| loss_qfl:0.3115| loss_bbox:0.0384| loss_dfl:0.1826| \u001b[0m\n",
            "\n",
            "Validation DataLoader 0: 100% 15/15 [00:08<00:00,  1.68it/s]\u001b[ALoading and preparing results...\n",
            "DONE (t=0.01s)\n",
            "creating index...\n",
            "index created!\n",
            "Running per image evaluation...\n",
            "Evaluate annotation type *bbox*\n",
            "DONE (t=0.40s).\n",
            "Accumulating evaluation results...\n",
            "DONE (t=0.13s).\n",
            "\u001b[1m\u001b[35m[NanoDet]\u001b[0m\u001b[34m[05-07 15:57:20]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97m\n",
            " Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.891\n",
            " Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 0.895\n",
            " Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = 0.895\n",
            " Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = -1.000\n",
            " Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = -1.000\n",
            " Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.891\n",
            " Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 0.982\n",
            " Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 0.982\n",
            " Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.982\n",
            " Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = -1.000\n",
            " Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = -1.000\n",
            " Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.982\n",
            "\u001b[0m\n",
            "\u001b[1m\u001b[35m[NanoDet]\u001b[0m\u001b[34m[05-07 15:57:20]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97m\n",
            "| class                  | AP50   | mAP   | class              | AP50   | mAP   |\n",
            "|:-----------------------|:-------|:------|:-------------------|:-------|:------|\n",
            "| normal-pylorus         | 97.9   | 97.9  | polyps             | 92.8   | 92.2  |\n",
            "| ulcerative-colitis     | 93.3   | 93.3  | esophagitis        | 75.4   | 74.8  |\n",
            "| dyed-resection-margins | 93.4   | 93.2  | dyed-lifted-polyps | 90.4   | 89.2  |\n",
            "| normal-cecum           | 95.4   | 95.4  | normal-z-line      | 77.2   | 76.5  |\u001b[0m\n",
            "Epoch 129: : 40it [00:36,  1.11it/s, loss=0.34, v_num=70]\n",
            "Epoch 130:   0% 0/36 [00:00<?, ?it/s, loss=0.34, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:57:25]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch131/150|Iter4680(0)| lr:5.00e-03| loss_qfl:0.1104| loss_bbox:0.0870| loss_dfl:0.1766| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:57:33]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch131/150|Iter4690(10)| lr:5.00e-03| loss_qfl:0.1172| loss_bbox:0.0787| loss_dfl:0.1737| \u001b[0m\n",
            "Epoch 130:  56% 20/36 [00:14<00:11,  1.33it/s, loss=0.338, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:57:38]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch131/150|Iter4700(20)| lr:5.00e-03| loss_qfl:0.1087| loss_bbox:0.0641| loss_dfl:0.1759| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:57:43]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch131/150|Iter4710(30)| lr:5.00e-03| loss_qfl:0.0904| loss_bbox:0.0730| loss_dfl:0.1722| \u001b[0m\n",
            "Epoch 131:   0% 0/36 [00:00<?, ?it/s, loss=0.346, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:57:50]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch132/150|Iter4720(4)| lr:5.00e-03| loss_qfl:0.0635| loss_bbox:0.0660| loss_dfl:0.1785| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:57:56]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch132/150|Iter4730(14)| lr:5.00e-03| loss_qfl:0.0726| loss_bbox:0.0806| loss_dfl:0.1779| \u001b[0m\n",
            "Epoch 131:  56% 20/36 [00:15<00:12,  1.28it/s, loss=0.334, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:58:03]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch132/150|Iter4740(24)| lr:5.00e-03| loss_qfl:0.0826| loss_bbox:0.0649| loss_dfl:0.1783| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:58:06]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch132/150|Iter4750(34)| lr:5.00e-03| loss_qfl:0.0835| loss_bbox:0.0613| loss_dfl:0.1764| \u001b[0m\n",
            "Epoch 132:   0% 0/36 [00:00<?, ?it/s, loss=0.336, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:58:15]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch133/150|Iter4760(8)| lr:5.00e-03| loss_qfl:0.0895| loss_bbox:0.0792| loss_dfl:0.1771| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:58:21]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch133/150|Iter4770(18)| lr:5.00e-03| loss_qfl:0.0869| loss_bbox:0.0642| loss_dfl:0.1772| \u001b[0m\n",
            "Epoch 132:  56% 20/36 [00:14<00:11,  1.35it/s, loss=0.339, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:58:26]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch133/150|Iter4780(28)| lr:5.00e-03| loss_qfl:0.1007| loss_bbox:0.0745| loss_dfl:0.1762| \u001b[0m\n",
            "Epoch 133:   0% 0/36 [00:00<?, ?it/s, loss=0.323, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:58:32]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch134/150|Iter4790(2)| lr:5.00e-03| loss_qfl:0.0674| loss_bbox:0.0605| loss_dfl:0.1726| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:58:38]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch134/150|Iter4800(12)| lr:5.00e-03| loss_qfl:0.1069| loss_bbox:0.0603| loss_dfl:0.1723| \u001b[0m\n",
            "Epoch 133:  56% 20/36 [00:16<00:13,  1.19it/s, loss=0.326, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:58:46]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch134/150|Iter4810(22)| lr:5.00e-03| loss_qfl:0.0814| loss_bbox:0.0752| loss_dfl:0.1752| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:58:51]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch134/150|Iter4820(32)| lr:5.00e-03| loss_qfl:0.0760| loss_bbox:0.0613| loss_dfl:0.1748| \u001b[0m\n",
            "Epoch 134:   0% 0/36 [00:00<?, ?it/s, loss=0.331, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:58:59]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch135/150|Iter4830(6)| lr:5.00e-03| loss_qfl:0.0868| loss_bbox:0.0638| loss_dfl:0.1757| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:59:04]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch135/150|Iter4840(16)| lr:5.00e-03| loss_qfl:0.0882| loss_bbox:0.0667| loss_dfl:0.1708| \u001b[0m\n",
            "Epoch 134:  56% 20/36 [00:14<00:11,  1.36it/s, loss=0.324, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:59:10]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch135/150|Iter4850(26)| lr:5.00e-03| loss_qfl:0.0710| loss_bbox:0.0662| loss_dfl:0.1747| \u001b[0m\n",
            "Epoch 135:   0% 0/36 [00:00<?, ?it/s, loss=0.324, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:59:17]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch136/150|Iter4860(0)| lr:5.00e-03| loss_qfl:0.0991| loss_bbox:0.0694| loss_dfl:0.1765| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:59:22]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch136/150|Iter4870(10)| lr:5.00e-03| loss_qfl:0.0765| loss_bbox:0.0592| loss_dfl:0.1744| \u001b[0m\n",
            "Epoch 135:  56% 20/36 [00:14<00:11,  1.39it/s, loss=0.328, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:59:29]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch136/150|Iter4880(20)| lr:5.00e-03| loss_qfl:0.0730| loss_bbox:0.0659| loss_dfl:0.1762| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:59:34]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch136/150|Iter4890(30)| lr:5.00e-03| loss_qfl:0.0756| loss_bbox:0.0776| loss_dfl:0.1689| \u001b[0m\n",
            "Epoch 136:   0% 0/36 [00:00<?, ?it/s, loss=0.336, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:59:41]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch137/150|Iter4900(4)| lr:5.00e-03| loss_qfl:0.0580| loss_bbox:0.0672| loss_dfl:0.1796| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:59:47]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch137/150|Iter4910(14)| lr:5.00e-03| loss_qfl:0.0707| loss_bbox:0.0569| loss_dfl:0.1704| \u001b[0m\n",
            "Epoch 136:  56% 20/36 [00:14<00:11,  1.37it/s, loss=0.329, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:59:52]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch137/150|Iter4920(24)| lr:5.00e-03| loss_qfl:0.0689| loss_bbox:0.0689| loss_dfl:0.1767| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:59:57]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch137/150|Iter4930(34)| lr:5.00e-03| loss_qfl:0.0569| loss_bbox:0.0688| loss_dfl:0.1792| \u001b[0m\n",
            "Epoch 137:   0% 0/36 [00:00<?, ?it/s, loss=0.323, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:00:04]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch138/150|Iter4940(8)| lr:5.00e-03| loss_qfl:0.0769| loss_bbox:0.0575| loss_dfl:0.1771| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:00:11]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch138/150|Iter4950(18)| lr:5.00e-03| loss_qfl:0.0566| loss_bbox:0.0593| loss_dfl:0.1776| \u001b[0m\n",
            "Epoch 137:  56% 20/36 [00:14<00:11,  1.34it/s, loss=0.323, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:00:17]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch138/150|Iter4960(28)| lr:5.00e-03| loss_qfl:0.0879| loss_bbox:0.0660| loss_dfl:0.1706| \u001b[0m\n",
            "Epoch 138:   0% 0/36 [00:00<?, ?it/s, loss=0.331, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:00:22]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch139/150|Iter4970(2)| lr:5.00e-03| loss_qfl:0.0738| loss_bbox:0.0885| loss_dfl:0.1760| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:00:29]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch139/150|Iter4980(12)| lr:5.00e-03| loss_qfl:0.0681| loss_bbox:0.0708| loss_dfl:0.1726| \u001b[0m\n",
            "Epoch 138:  56% 20/36 [00:13<00:11,  1.45it/s, loss=0.331, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:00:34]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch139/150|Iter4990(22)| lr:5.00e-03| loss_qfl:0.0611| loss_bbox:0.0718| loss_dfl:0.1742| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:00:40]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch139/150|Iter5000(32)| lr:5.00e-03| loss_qfl:0.0638| loss_bbox:0.0735| loss_dfl:0.1774| \u001b[0m\n",
            "Epoch 139:   0% 0/51 [00:00<?, ?it/s, loss=0.323, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:00:46]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch140/150|Iter5010(6)| lr:5.00e-03| loss_qfl:0.0572| loss_bbox:0.0622| loss_dfl:0.1731| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:00:53]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch140/150|Iter5020(16)| lr:5.00e-03| loss_qfl:0.0926| loss_bbox:0.0654| loss_dfl:0.1717| \u001b[0m\n",
            "Epoch 139:  39% 20/51 [00:14<00:22,  1.36it/s, loss=0.325, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:01:00]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch140/150|Iter5030(26)| lr:5.00e-03| loss_qfl:0.0891| loss_bbox:0.0639| loss_dfl:0.1752| \u001b[0m\n",
            "\n",
            "Validation: 0it [00:00, ?it/s]\u001b[A\n",
            "Validation:   0% 0/15 [00:00<?, ?it/s]\u001b[A\n",
            "Validation DataLoader 0:   0% 0/15 [00:00<?, ?it/s]\u001b[A\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:01:05]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mVal|Epoch140/150|Iter5040(0)| lr:5.00e-03| loss_qfl:0.2995| loss_bbox:0.0282| loss_dfl:0.1805| \u001b[0m\n",
            "Epoch 139:  78% 40/51 [00:27<00:07,  1.44it/s, loss=0.325, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:01:13]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mVal|Epoch140/150|Iter5040(10)| lr:5.00e-03| loss_qfl:0.3140| loss_bbox:0.0353| loss_dfl:0.1821| \u001b[0m\n",
            "\n",
            "Epoch 139: 100% 51/51 [00:32<00:00,  1.57it/s, loss=0.325, v_num=70]Loading and preparing results...\n",
            "DONE (t=0.02s)\n",
            "creating index...\n",
            "index created!\n",
            "Running per image evaluation...\n",
            "Evaluate annotation type *bbox*\n",
            "DONE (t=0.39s).\n",
            "Accumulating evaluation results...\n",
            "DONE (t=0.14s).\n",
            "\u001b[1m\u001b[35m[NanoDet]\u001b[0m\u001b[34m[05-07 16:01:15]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97m\n",
            " Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.892\n",
            " Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 0.896\n",
            " Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = 0.896\n",
            " Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = -1.000\n",
            " Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = -1.000\n",
            " Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.892\n",
            " Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 0.982\n",
            " Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 0.982\n",
            " Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.982\n",
            " Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = -1.000\n",
            " Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = -1.000\n",
            " Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.982\n",
            "\u001b[0m\n",
            "\u001b[1m\u001b[35m[NanoDet]\u001b[0m\u001b[34m[05-07 16:01:15]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97m\n",
            "| class                  | AP50   | mAP   | class              | AP50   | mAP   |\n",
            "|:-----------------------|:-------|:------|:-------------------|:-------|:------|\n",
            "| normal-pylorus         | 97.9   | 97.9  | polyps             | 93.2   | 92.6  |\n",
            "| ulcerative-colitis     | 93.8   | 93.8  | esophagitis        | 73.7   | 73.6  |\n",
            "| dyed-resection-margins | 93.3   | 93.2  | dyed-lifted-polyps | 91.2   | 90.1  |\n",
            "| normal-cecum           | 95.9   | 95.9  | normal-z-line      | 77.7   | 76.8  |\u001b[0m\n",
            "Epoch 139: 100% 51/51 [00:33<00:00,  1.52it/s, loss=0.327, v_num=70]\n",
            "Epoch 140:   0% 0/36 [00:00<?, ?it/s, loss=0.327, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:01:17]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch141/150|Iter5040(0)| lr:5.00e-03| loss_qfl:0.0681| loss_bbox:0.0581| loss_dfl:0.1781| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:01:25]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch141/150|Iter5050(10)| lr:5.00e-03| loss_qfl:0.0812| loss_bbox:0.0716| loss_dfl:0.1770| \u001b[0m\n",
            "Epoch 140:  56% 20/36 [00:15<00:12,  1.32it/s, loss=0.324, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:01:31]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch141/150|Iter5060(20)| lr:5.00e-03| loss_qfl:0.1946| loss_bbox:0.0651| loss_dfl:0.1758| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:01:35]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch141/150|Iter5070(30)| lr:5.00e-03| loss_qfl:0.0650| loss_bbox:0.0624| loss_dfl:0.1723| \u001b[0m\n",
            "Epoch 141:   0% 0/36 [00:00<?, ?it/s, loss=0.329, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:01:43]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch142/150|Iter5080(4)| lr:5.00e-03| loss_qfl:0.0763| loss_bbox:0.0670| loss_dfl:0.1772| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:01:48]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch142/150|Iter5090(14)| lr:5.00e-03| loss_qfl:0.0705| loss_bbox:0.0629| loss_dfl:0.1775| \u001b[0m\n",
            "Epoch 141:  56% 20/36 [00:15<00:12,  1.29it/s, loss=0.319, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:01:56]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch142/150|Iter5100(24)| lr:5.00e-03| loss_qfl:0.0803| loss_bbox:0.0790| loss_dfl:0.1724| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:01:59]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch142/150|Iter5110(34)| lr:5.00e-03| loss_qfl:0.0806| loss_bbox:0.0634| loss_dfl:0.1718| \u001b[0m\n",
            "Epoch 142:   0% 0/36 [00:00<?, ?it/s, loss=0.318, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:02:08]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch143/150|Iter5120(8)| lr:5.00e-03| loss_qfl:0.0754| loss_bbox:0.0615| loss_dfl:0.1736| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:02:14]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch143/150|Iter5130(18)| lr:5.00e-03| loss_qfl:0.1257| loss_bbox:0.0667| loss_dfl:0.1761| \u001b[0m\n",
            "Epoch 142:  56% 20/36 [00:14<00:11,  1.34it/s, loss=0.326, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:02:19]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch143/150|Iter5140(28)| lr:5.00e-03| loss_qfl:0.0743| loss_bbox:0.0606| loss_dfl:0.1749| \u001b[0m\n",
            "Epoch 143:   0% 0/36 [00:00<?, ?it/s, loss=0.323, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:02:26]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch144/150|Iter5150(2)| lr:5.00e-03| loss_qfl:0.0775| loss_bbox:0.0772| loss_dfl:0.1799| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:02:31]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch144/150|Iter5160(12)| lr:5.00e-03| loss_qfl:0.0808| loss_bbox:0.0594| loss_dfl:0.1758| \u001b[0m\n",
            "Epoch 143:  56% 20/36 [00:14<00:11,  1.36it/s, loss=0.326, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:02:39]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch144/150|Iter5170(22)| lr:5.00e-03| loss_qfl:0.0697| loss_bbox:0.0619| loss_dfl:0.1772| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:02:43]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch144/150|Iter5180(32)| lr:5.00e-03| loss_qfl:0.0788| loss_bbox:0.0733| loss_dfl:0.1701| \u001b[0m\n",
            "Epoch 144:   0% 0/36 [00:00<?, ?it/s, loss=0.322, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:02:50]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch145/150|Iter5190(6)| lr:5.00e-03| loss_qfl:0.0634| loss_bbox:0.0603| loss_dfl:0.1753| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:02:57]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch145/150|Iter5200(16)| lr:5.00e-03| loss_qfl:0.0674| loss_bbox:0.0742| loss_dfl:0.1754| \u001b[0m\n",
            "Epoch 144:  56% 20/36 [00:15<00:12,  1.33it/s, loss=0.324, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:03:03]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch145/150|Iter5210(26)| lr:5.00e-03| loss_qfl:0.1813| loss_bbox:0.0633| loss_dfl:0.1762| \u001b[0m\n",
            "Epoch 145:   0% 0/36 [00:00<?, ?it/s, loss=0.338, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:03:09]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch146/150|Iter5220(0)| lr:5.00e-03| loss_qfl:0.1025| loss_bbox:0.0684| loss_dfl:0.1772| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:03:14]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch146/150|Iter5230(10)| lr:5.00e-03| loss_qfl:0.0592| loss_bbox:0.0732| loss_dfl:0.1829| \u001b[0m\n",
            "Epoch 145:  56% 20/36 [00:17<00:14,  1.14it/s, loss=0.331, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:03:24]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch146/150|Iter5240(20)| lr:5.00e-03| loss_qfl:0.0828| loss_bbox:0.0587| loss_dfl:0.1761| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:03:29]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch146/150|Iter5250(30)| lr:5.00e-03| loss_qfl:0.1242| loss_bbox:0.0777| loss_dfl:0.1771| \u001b[0m\n",
            "Epoch 146:   0% 0/36 [00:00<?, ?it/s, loss=0.333, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:03:35]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch147/150|Iter5260(4)| lr:5.00e-03| loss_qfl:0.0689| loss_bbox:0.0666| loss_dfl:0.1724| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:03:42]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch147/150|Iter5270(14)| lr:5.00e-03| loss_qfl:0.0693| loss_bbox:0.0621| loss_dfl:0.1787| \u001b[0m\n",
            "Epoch 146:  56% 20/36 [00:14<00:11,  1.34it/s, loss=0.324, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:03:48]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch147/150|Iter5280(24)| lr:5.00e-03| loss_qfl:0.0762| loss_bbox:0.0611| loss_dfl:0.1766| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:03:52]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch147/150|Iter5290(34)| lr:5.00e-03| loss_qfl:0.0912| loss_bbox:0.0634| loss_dfl:0.1763| \u001b[0m\n",
            "Epoch 147:   0% 0/36 [00:00<?, ?it/s, loss=0.32, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:04:00]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch148/150|Iter5300(8)| lr:5.00e-03| loss_qfl:0.0749| loss_bbox:0.0590| loss_dfl:0.1752| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:04:06]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch148/150|Iter5310(18)| lr:5.00e-03| loss_qfl:0.0810| loss_bbox:0.0647| loss_dfl:0.1796| \u001b[0m\n",
            "Epoch 147:  56% 20/36 [00:15<00:12,  1.32it/s, loss=0.322, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:04:12]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch148/150|Iter5320(28)| lr:5.00e-03| loss_qfl:0.0818| loss_bbox:0.0692| loss_dfl:0.1774| \u001b[0m\n",
            "Epoch 148:   0% 0/36 [00:00<?, ?it/s, loss=0.33, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:04:17]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch149/150|Iter5330(2)| lr:5.00e-03| loss_qfl:0.0646| loss_bbox:0.0533| loss_dfl:0.1751| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:04:25]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch149/150|Iter5340(12)| lr:5.00e-03| loss_qfl:0.0974| loss_bbox:0.0661| loss_dfl:0.1728| \u001b[0m\n",
            "Epoch 148:  56% 20/36 [00:14<00:11,  1.42it/s, loss=0.314, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:04:30]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch149/150|Iter5350(22)| lr:5.00e-03| loss_qfl:0.0763| loss_bbox:0.0685| loss_dfl:0.1781| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:04:36]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch149/150|Iter5360(32)| lr:5.00e-03| loss_qfl:0.0786| loss_bbox:0.0701| loss_dfl:0.1744| \u001b[0m\n",
            "Epoch 149:   0% 0/51 [00:00<?, ?it/s, loss=0.32, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:04:42]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch150/150|Iter5370(6)| lr:5.00e-03| loss_qfl:0.0715| loss_bbox:0.0527| loss_dfl:0.1688| \u001b[0m\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:04:49]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch150/150|Iter5380(16)| lr:5.00e-03| loss_qfl:0.0905| loss_bbox:0.0723| loss_dfl:0.1784| \u001b[0m\n",
            "Epoch 149:  39% 20/51 [00:14<00:23,  1.34it/s, loss=0.316, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:04:56]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mTrain|Epoch150/150|Iter5390(26)| lr:5.00e-03| loss_qfl:0.0580| loss_bbox:0.0650| loss_dfl:0.1785| \u001b[0m\n",
            "\n",
            "Validation: 0it [00:00, ?it/s]\u001b[A\n",
            "Validation:   0% 0/15 [00:00<?, ?it/s]\u001b[A\n",
            "Validation DataLoader 0:   0% 0/15 [00:00<?, ?it/s]\u001b[A\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:05:01]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mVal|Epoch150/150|Iter5400(0)| lr:5.00e-03| loss_qfl:0.2957| loss_bbox:0.0284| loss_dfl:0.1807| \u001b[0m\n",
            "Epoch 149:  78% 40/51 [00:27<00:07,  1.44it/s, loss=0.316, v_num=70]\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 16:05:08]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mVal|Epoch150/150|Iter5400(10)| lr:5.00e-03| loss_qfl:0.3115| loss_bbox:0.0360| loss_dfl:0.1824| \u001b[0m\n",
            "\n",
            "Epoch 149: 100% 51/51 [00:32<00:00,  1.57it/s, loss=0.316, v_num=70]Loading and preparing results...\n",
            "DONE (t=0.02s)\n",
            "creating index...\n",
            "index created!\n",
            "Running per image evaluation...\n",
            "Evaluate annotation type *bbox*\n",
            "DONE (t=0.73s).\n",
            "Accumulating evaluation results...\n",
            "DONE (t=0.15s).\n",
            "\u001b[1m\u001b[35m[NanoDet]\u001b[0m\u001b[34m[05-07 16:05:10]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97m\n",
            " Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.890\n",
            " Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 0.895\n",
            " Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = 0.895\n",
            " Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = -1.000\n",
            " Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = -1.000\n",
            " Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.890\n",
            " Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 0.981\n",
            " Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 0.981\n",
            " Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.981\n",
            " Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = -1.000\n",
            " Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = -1.000\n",
            " Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.981\n",
            "\u001b[0m\n",
            "\u001b[1m\u001b[35m[NanoDet]\u001b[0m\u001b[34m[05-07 16:05:10]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97m\n",
            "| class                  | AP50   | mAP   | class              | AP50   | mAP   |\n",
            "|:-----------------------|:-------|:------|:-------------------|:-------|:------|\n",
            "| normal-pylorus         | 97.9   | 97.9  | polyps             | 93.1   | 92.5  |\n",
            "| ulcerative-colitis     | 93.8   | 93.5  | esophagitis        | 73.9   | 73.6  |\n",
            "| dyed-resection-margins | 92.8   | 92.7  | dyed-lifted-polyps | 91.0   | 89.9  |\n",
            "| normal-cecum           | 95.9   | 95.9  | normal-z-line      | 77.4   | 76.3  |\u001b[0m\n",
            "/content/drive/MyDrive/nanodet-main/nanodet/trainer/task.py:130: UserWarning: Warning! Save_key is not in eval results! Only save model last!\n",
            "  warnings.warn('Warning! Save_key is not in eval results! Only save model last!')\n",
            "Epoch 149: 100% 51/51 [00:34<00:00,  1.49it/s, loss=0.319, v_num=70]\n",
            "Epoch 149: 100% 51/51 [00:34<00:00,  1.49it/s, loss=0.319, v_num=70]`Trainer.fit` stopped: `max_epochs=150` reached.\n",
            "Epoch 149: 100% 51/51 [00:34<00:00,  1.49it/s, loss=0.319, v_num=70]\n"
          ]
        }
      ],
      "source": [
        "# 訓練(Training)\n",
        "!python train.py /content/drive/MyDrive/nanodet-main/nanodet_custom_xml_dataset.yml"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "_HTSa_YUND8O",
        "outputId": "236836ba-9ad1-40ae-ff15-9288fa0dfaca"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "/root\n"
          ]
        }
      ],
      "source": [
        "%cd"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "y1AiaM1m8pGH"
      },
      "source": [
        "ONNX (Convert to ONNX)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "TZTx-MHI80D9",
        "outputId": "44f614d3-763e-4147-a47f-05c7c96124ac"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
            "Collecting onnxruntime\n",
            "  Downloading onnxruntime-1.14.1-cp39-cp39-manylinux_2_27_x86_64.whl (5.0 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m5.0/5.0 MB\u001b[0m \u001b[31m62.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: protobuf in /usr/local/lib/python3.9/dist-packages (from onnxruntime) (3.20.3)\n",
            "Requirement already satisfied: packaging in /usr/local/lib/python3.9/dist-packages (from onnxruntime) (23.0)\n",
            "Requirement already satisfied: sympy in /usr/local/lib/python3.9/dist-packages (from onnxruntime) (1.11.1)\n",
            "Requirement already satisfied: numpy>=1.21.6 in /usr/local/lib/python3.9/dist-packages (from onnxruntime) (1.22.4)\n",
            "Collecting coloredlogs\n",
            "  Downloading coloredlogs-15.0.1-py2.py3-none-any.whl (46 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m46.0/46.0 kB\u001b[0m \u001b[31m6.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: flatbuffers in /usr/local/lib/python3.9/dist-packages (from onnxruntime) (23.3.3)\n",
            "Collecting humanfriendly>=9.1\n",
            "  Downloading humanfriendly-10.0-py2.py3-none-any.whl (86 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m86.8/86.8 kB\u001b[0m \u001b[31m7.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: mpmath>=0.19 in /usr/local/lib/python3.9/dist-packages (from sympy->onnxruntime) (1.3.0)\n",
            "Installing collected packages: humanfriendly, coloredlogs, onnxruntime\n",
            "Successfully installed coloredlogs-15.0.1 humanfriendly-10.0 onnxruntime-1.14.1\n"
          ]
        }
      ],
      "source": [
        "!pip install onnxruntime"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "RsNKaUTW8Yh7"
      },
      "outputs": [],
      "source": [
        "!cp tools/export_onnx.py ./"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "MGcx8wGn8aaN",
        "outputId": "d6c830e9-e8c0-4df3-d529-4fd00ebed507"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
            "Collecting onnxsim==0.4.0\n",
            "  Downloading onnxsim-0.4.0.tar.gz (6.8 kB)\n",
            "  Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "Collecting onnxsim-no-ort==0.4.0\n",
            "  Downloading onnxsim_no_ort-0.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.0 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.0/2.0 MB\u001b[0m \u001b[31m5.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting onnx\n",
            "  Downloading onnx-1.13.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.5 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m13.5/13.5 MB\u001b[0m \u001b[31m63.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: rich in /usr/local/lib/python3.9/dist-packages (from onnxsim-no-ort==0.4.0->onnxsim==0.4.0) (13.3.3)\n",
            "Requirement already satisfied: numpy>=1.16.6 in /usr/local/lib/python3.9/dist-packages (from onnx->onnxsim-no-ort==0.4.0->onnxsim==0.4.0) (1.22.4)\n",
            "Requirement already satisfied: protobuf<4,>=3.20.2 in /usr/local/lib/python3.9/dist-packages (from onnx->onnxsim-no-ort==0.4.0->onnxsim==0.4.0) (3.20.3)\n",
            "Requirement already satisfied: typing-extensions>=3.6.2.1 in /usr/local/lib/python3.9/dist-packages (from onnx->onnxsim-no-ort==0.4.0->onnxsim==0.4.0) (4.5.0)\n",
            "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.9/dist-packages (from rich->onnxsim-no-ort==0.4.0->onnxsim==0.4.0) (2.14.0)\n",
            "Requirement already satisfied: markdown-it-py<3.0.0,>=2.2.0 in /usr/local/lib/python3.9/dist-packages (from rich->onnxsim-no-ort==0.4.0->onnxsim==0.4.0) (2.2.0)\n",
            "Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.9/dist-packages (from markdown-it-py<3.0.0,>=2.2.0->rich->onnxsim-no-ort==0.4.0->onnxsim==0.4.0) (0.1.2)\n",
            "Building wheels for collected packages: onnxsim\n",
            "  Building wheel for onnxsim (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "  Created wheel for onnxsim: filename=onnxsim-0.4.0-py3-none-any.whl size=5414 sha256=bb5bbba06a6ee52c164081037c8adfafc095d698c2e112785dec886335d7682e\n",
            "  Stored in directory: /root/.cache/pip/wheels/39/1e/3f/8a6e90f1c4c6188b7a6db4bd7333b50e87c99489fe1abec3d2\n",
            "Successfully built onnxsim\n",
            "Installing collected packages: onnx, onnxsim-no-ort, onnxsim\n",
            "Successfully installed onnx-1.13.1 onnxsim-0.4.0 onnxsim-no-ort-0.4.0\n"
          ]
        }
      ],
      "source": [
        "!pip install onnxsim==0.4.0"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Q1qbvuQ08cCf",
        "outputId": "a45c90f5-092e-463b-d8d5-6bc78d80f395"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "model size is  1.0x\n",
            "init weights...\n",
            "=> loading pretrained model https://download.pytorch.org/models/shufflenetv2_x1-5666bf0f80.pth\n",
            "Finish initialize Lite GFL Head.\n",
            "/content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:17: UserWarning: __floordiv__ is deprecated, and its behavior will change in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values. To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor').\n",
            "  channels_per_group = num_channels // groups\n",
            "graph(%input.1 : Float(1, 3, 320, 320, strides=[307200, 102400, 320, 1], requires_grad=0, device=cpu),\n",
            "      %fpn.lateral_convs.0.conv.weight : Float(96, 116, 1, 1, strides=[116, 1, 1, 1], requires_grad=1, device=cpu),\n",
            "      %fpn.lateral_convs.0.conv.bias : Float(96, strides=[1], requires_grad=1, device=cpu),\n",
            "      %fpn.lateral_convs.1.conv.weight : Float(96, 232, 1, 1, strides=[232, 1, 1, 1], requires_grad=1, device=cpu),\n",
            "      %fpn.lateral_convs.1.conv.bias : Float(96, strides=[1], requires_grad=1, device=cpu),\n",
            "      %fpn.lateral_convs.2.conv.weight : Float(96, 464, 1, 1, strides=[464, 1, 1, 1], requires_grad=1, device=cpu),\n",
            "      %fpn.lateral_convs.2.conv.bias : Float(96, strides=[1], requires_grad=1, device=cpu),\n",
            "      %head.gfl_cls.0.weight : Float(58, 96, 1, 1, strides=[96, 1, 1, 1], requires_grad=1, device=cpu),\n",
            "      %head.gfl_cls.0.bias : Float(58, strides=[1], requires_grad=1, device=cpu),\n",
            "      %head.gfl_cls.1.weight : Float(58, 96, 1, 1, strides=[96, 1, 1, 1], requires_grad=1, device=cpu),\n",
            "      %head.gfl_cls.1.bias : Float(58, strides=[1], requires_grad=1, device=cpu),\n",
            "      %head.gfl_cls.2.weight : Float(58, 96, 1, 1, strides=[96, 1, 1, 1], requires_grad=1, device=cpu),\n",
            "      %head.gfl_cls.2.bias : Float(58, strides=[1], requires_grad=1, device=cpu),\n",
            "      %941 : Float(24, 3, 3, 3, strides=[27, 9, 3, 1], requires_grad=0, device=cpu),\n",
            "      %942 : Float(24, strides=[1], requires_grad=0, device=cpu),\n",
            "      %944 : Float(24, 1, 3, 3, strides=[9, 9, 3, 1], requires_grad=0, device=cpu),\n",
            "      %945 : Float(24, strides=[1], requires_grad=0, device=cpu),\n",
            "      %947 : Float(58, 24, 1, 1, strides=[24, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %948 : Float(58, strides=[1], requires_grad=0, device=cpu),\n",
            "      %950 : Float(58, 24, 1, 1, strides=[24, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %951 : Float(58, strides=[1], requires_grad=0, device=cpu),\n",
            "      %953 : Float(58, 1, 3, 3, strides=[9, 9, 3, 1], requires_grad=0, device=cpu),\n",
            "      %954 : Float(58, strides=[1], requires_grad=0, device=cpu),\n",
            "      %956 : Float(58, 58, 1, 1, strides=[58, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %957 : Float(58, strides=[1], requires_grad=0, device=cpu),\n",
            "      %959 : Float(58, 58, 1, 1, strides=[58, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %960 : Float(58, strides=[1], requires_grad=0, device=cpu),\n",
            "      %962 : Float(58, 1, 3, 3, strides=[9, 9, 3, 1], requires_grad=0, device=cpu),\n",
            "      %963 : Float(58, strides=[1], requires_grad=0, device=cpu),\n",
            "      %965 : Float(58, 58, 1, 1, strides=[58, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %966 : Float(58, strides=[1], requires_grad=0, device=cpu),\n",
            "      %968 : Float(58, 58, 1, 1, strides=[58, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %969 : Float(58, strides=[1], requires_grad=0, device=cpu),\n",
            "      %971 : Float(58, 1, 3, 3, strides=[9, 9, 3, 1], requires_grad=0, device=cpu),\n",
            "      %972 : Float(58, strides=[1], requires_grad=0, device=cpu),\n",
            "      %974 : Float(58, 58, 1, 1, strides=[58, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %975 : Float(58, strides=[1], requires_grad=0, device=cpu),\n",
            "      %977 : Float(58, 58, 1, 1, strides=[58, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %978 : Float(58, strides=[1], requires_grad=0, device=cpu),\n",
            "      %980 : Float(58, 1, 3, 3, strides=[9, 9, 3, 1], requires_grad=0, device=cpu),\n",
            "      %981 : Float(58, strides=[1], requires_grad=0, device=cpu),\n",
            "      %983 : Float(58, 58, 1, 1, strides=[58, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %984 : Float(58, strides=[1], requires_grad=0, device=cpu),\n",
            "      %986 : Float(116, 1, 3, 3, strides=[9, 9, 3, 1], requires_grad=0, device=cpu),\n",
            "      %987 : Float(116, strides=[1], requires_grad=0, device=cpu),\n",
            "      %989 : Float(116, 116, 1, 1, strides=[116, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %990 : Float(116, strides=[1], requires_grad=0, device=cpu),\n",
            "      %992 : Float(116, 116, 1, 1, strides=[116, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %993 : Float(116, strides=[1], requires_grad=0, device=cpu),\n",
            "      %995 : Float(116, 1, 3, 3, strides=[9, 9, 3, 1], requires_grad=0, device=cpu),\n",
            "      %996 : Float(116, strides=[1], requires_grad=0, device=cpu),\n",
            "      %998 : Float(116, 116, 1, 1, strides=[116, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %999 : Float(116, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1001 : Float(116, 116, 1, 1, strides=[116, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1002 : Float(116, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1004 : Float(116, 1, 3, 3, strides=[9, 9, 3, 1], requires_grad=0, device=cpu),\n",
            "      %1005 : Float(116, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1007 : Float(116, 116, 1, 1, strides=[116, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1008 : Float(116, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1010 : Float(116, 116, 1, 1, strides=[116, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1011 : Float(116, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1013 : Float(116, 1, 3, 3, strides=[9, 9, 3, 1], requires_grad=0, device=cpu),\n",
            "      %1014 : Float(116, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1016 : Float(116, 116, 1, 1, strides=[116, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1017 : Float(116, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1019 : Float(116, 116, 1, 1, strides=[116, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1020 : Float(116, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1022 : Float(116, 1, 3, 3, strides=[9, 9, 3, 1], requires_grad=0, device=cpu),\n",
            "      %1023 : Float(116, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1025 : Float(116, 116, 1, 1, strides=[116, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1026 : Float(116, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1028 : Float(116, 116, 1, 1, strides=[116, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1029 : Float(116, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1031 : Float(116, 1, 3, 3, strides=[9, 9, 3, 1], requires_grad=0, device=cpu),\n",
            "      %1032 : Float(116, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1034 : Float(116, 116, 1, 1, strides=[116, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1035 : Float(116, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1037 : Float(116, 116, 1, 1, strides=[116, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1038 : Float(116, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1040 : Float(116, 1, 3, 3, strides=[9, 9, 3, 1], requires_grad=0, device=cpu),\n",
            "      %1041 : Float(116, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1043 : Float(116, 116, 1, 1, strides=[116, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1044 : Float(116, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1046 : Float(116, 116, 1, 1, strides=[116, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1047 : Float(116, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1049 : Float(116, 1, 3, 3, strides=[9, 9, 3, 1], requires_grad=0, device=cpu),\n",
            "      %1050 : Float(116, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1052 : Float(116, 116, 1, 1, strides=[116, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1053 : Float(116, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1055 : Float(116, 116, 1, 1, strides=[116, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1056 : Float(116, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1058 : Float(116, 1, 3, 3, strides=[9, 9, 3, 1], requires_grad=0, device=cpu),\n",
            "      %1059 : Float(116, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1061 : Float(116, 116, 1, 1, strides=[116, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1062 : Float(116, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1064 : Float(232, 1, 3, 3, strides=[9, 9, 3, 1], requires_grad=0, device=cpu),\n",
            "      %1065 : Float(232, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1067 : Float(232, 232, 1, 1, strides=[232, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1068 : Float(232, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1070 : Float(232, 232, 1, 1, strides=[232, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1071 : Float(232, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1073 : Float(232, 1, 3, 3, strides=[9, 9, 3, 1], requires_grad=0, device=cpu),\n",
            "      %1074 : Float(232, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1076 : Float(232, 232, 1, 1, strides=[232, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1077 : Float(232, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1079 : Float(232, 232, 1, 1, strides=[232, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1080 : Float(232, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1082 : Float(232, 1, 3, 3, strides=[9, 9, 3, 1], requires_grad=0, device=cpu),\n",
            "      %1083 : Float(232, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1085 : Float(232, 232, 1, 1, strides=[232, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1086 : Float(232, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1088 : Float(232, 232, 1, 1, strides=[232, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1089 : Float(232, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1091 : Float(232, 1, 3, 3, strides=[9, 9, 3, 1], requires_grad=0, device=cpu),\n",
            "      %1092 : Float(232, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1094 : Float(232, 232, 1, 1, strides=[232, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1095 : Float(232, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1097 : Float(232, 232, 1, 1, strides=[232, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1098 : Float(232, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1100 : Float(232, 1, 3, 3, strides=[9, 9, 3, 1], requires_grad=0, device=cpu),\n",
            "      %1101 : Float(232, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1103 : Float(232, 232, 1, 1, strides=[232, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1104 : Float(232, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1106 : Float(96, 1, 3, 3, strides=[9, 9, 3, 1], requires_grad=0, device=cpu),\n",
            "      %1107 : Float(96, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1109 : Float(96, 96, 1, 1, strides=[96, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1110 : Float(96, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1112 : Float(96, 1, 3, 3, strides=[9, 9, 3, 1], requires_grad=0, device=cpu),\n",
            "      %1113 : Float(96, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1115 : Float(96, 96, 1, 1, strides=[96, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1116 : Float(96, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1118 : Float(96, 1, 3, 3, strides=[9, 9, 3, 1], requires_grad=0, device=cpu),\n",
            "      %1119 : Float(96, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1121 : Float(96, 96, 1, 1, strides=[96, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1122 : Float(96, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1124 : Float(96, 1, 3, 3, strides=[9, 9, 3, 1], requires_grad=0, device=cpu),\n",
            "      %1125 : Float(96, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1127 : Float(96, 96, 1, 1, strides=[96, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1128 : Float(96, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1130 : Float(96, 1, 3, 3, strides=[9, 9, 3, 1], requires_grad=0, device=cpu),\n",
            "      %1131 : Float(96, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1133 : Float(96, 96, 1, 1, strides=[96, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1134 : Float(96, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1136 : Float(96, 1, 3, 3, strides=[9, 9, 3, 1], requires_grad=0, device=cpu),\n",
            "      %1137 : Float(96, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1139 : Float(96, 96, 1, 1, strides=[96, 1, 1, 1], requires_grad=0, device=cpu),\n",
            "      %1140 : Float(96, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1141 : Float(4, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1142 : Float(4, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1143 : Float(4, strides=[1], requires_grad=0, device=cpu),\n",
            "      %1144 : Float(4, strides=[1], requires_grad=0, device=cpu)):\n",
            "  %input.4 : Float(1, 24, 160, 160, strides=[614400, 25600, 160, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[2, 2]](%input.1, %941, %942) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %424 : Float(1, 24, 160, 160, strides=[614400, 25600, 160, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.4) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.8 : Float(1, 24, 80, 80, strides=[153600, 6400, 80, 1], requires_grad=1, device=cpu) = onnx::MaxPool[ceil_mode=0, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[2, 2]](%424) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:797:0\n",
            "  %input.16 : Float(1, 24, 40, 40, strides=[38400, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=24, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[2, 2]](%input.8, %944, %945) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %input.24 : Float(1, 58, 40, 40, strides=[92800, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%input.16, %947, %948) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %430 : Float(1, 58, 40, 40, strides=[92800, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.24) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.32 : Float(1, 58, 80, 80, strides=[371200, 6400, 80, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%input.8, %950, %951) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %433 : Float(1, 58, 80, 80, strides=[371200, 6400, 80, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.32) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.40 : Float(1, 58, 40, 40, strides=[92800, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=58, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[2, 2]](%433, %953, %954) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %input.48 : Float(1, 58, 40, 40, strides=[92800, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%input.40, %956, %957) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %438 : Float(1, 58, 40, 40, strides=[92800, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.48) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %out : Float(1, 116, 40, 40, strides=[185600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Concat[axis=1](%430, %438) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:74:0\n",
            "  %440 : Long(5, strides=[1], device=cpu) = onnx::Constant[value=  1   2  58  40  40 [ CPULongType{5} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %441 : Float(1, 2, 58, 40, 40, strides=[185600, 92800, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Reshape(%out, %440) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %442 : Float(1, 58, 2, 40, 40, strides=[185600, 3200, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Transpose[perm=[0, 2, 1, 3, 4]](%441) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:23:0\n",
            "  %443 : Long(4, strides=[1], device=cpu) = onnx::Constant[value=  1  -1  40  40 [ CPULongType{4} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %444 : Float(1, 116, 40, 40, strides=[185600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Reshape(%442, %443) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %445 : Long(4, strides=[1], device=cpu) = onnx::Shape(%444) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %446 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %447 : Long(1, strides=[1], device=cpu) = onnx::Gather[axis=0](%445, %446) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %448 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={0}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %449 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %450 : Long(1, strides=[1], device=cpu) = onnx::Add(%447, %449) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %451 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={2}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %452 : Long(1, strides=[1], device=cpu) = onnx::Div(%450, %451) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %453 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %454 : Long(1, strides=[1], device=cpu) = onnx::Mul(%452, %453) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %455 : Float(1, 58, 40, 40, strides=[185600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Slice(%444, %448, %454, %446) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %456 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={2}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %457 : Long(1, strides=[1], device=cpu) = onnx::Mul(%452, %456) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %458 : Float(1, 58, 40, 40, strides=[185600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Slice(%444, %454, %457, %446) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %input.56 : Float(1, 58, 40, 40, strides=[92800, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%458, %959, %960) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %461 : Float(1, 58, 40, 40, strides=[92800, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.56) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.64 : Float(1, 58, 40, 40, strides=[92800, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=58, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1]](%461, %962, %963) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %input.72 : Float(1, 58, 40, 40, strides=[92800, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%input.64, %965, %966) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %466 : Float(1, 58, 40, 40, strides=[92800, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.72) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %out.3 : Float(1, 116, 40, 40, strides=[185600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Concat[axis=1](%455, %466) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:72:0\n",
            "  %468 : Long(5, strides=[1], device=cpu) = onnx::Constant[value=  1   2  58  40  40 [ CPULongType{5} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %469 : Float(1, 2, 58, 40, 40, strides=[185600, 92800, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Reshape(%out.3, %468) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %470 : Float(1, 58, 2, 40, 40, strides=[185600, 3200, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Transpose[perm=[0, 2, 1, 3, 4]](%469) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:23:0\n",
            "  %471 : Long(4, strides=[1], device=cpu) = onnx::Constant[value=  1  -1  40  40 [ CPULongType{4} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %472 : Float(1, 116, 40, 40, strides=[185600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Reshape(%470, %471) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %473 : Long(4, strides=[1], device=cpu) = onnx::Shape(%472) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %474 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %475 : Long(1, strides=[1], device=cpu) = onnx::Gather[axis=0](%473, %474) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %476 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={0}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %477 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %478 : Long(1, strides=[1], device=cpu) = onnx::Add(%475, %477) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %479 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={2}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %480 : Long(1, strides=[1], device=cpu) = onnx::Div(%478, %479) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %481 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %482 : Long(1, strides=[1], device=cpu) = onnx::Mul(%480, %481) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %483 : Float(1, 58, 40, 40, strides=[185600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Slice(%472, %476, %482, %474) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %484 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={2}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %485 : Long(1, strides=[1], device=cpu) = onnx::Mul(%480, %484) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %486 : Float(1, 58, 40, 40, strides=[185600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Slice(%472, %482, %485, %474) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %input.80 : Float(1, 58, 40, 40, strides=[92800, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%486, %968, %969) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %489 : Float(1, 58, 40, 40, strides=[92800, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.80) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.88 : Float(1, 58, 40, 40, strides=[92800, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=58, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1]](%489, %971, %972) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %input.96 : Float(1, 58, 40, 40, strides=[92800, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%input.88, %974, %975) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %494 : Float(1, 58, 40, 40, strides=[92800, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.96) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %out.7 : Float(1, 116, 40, 40, strides=[185600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Concat[axis=1](%483, %494) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:72:0\n",
            "  %496 : Long(5, strides=[1], device=cpu) = onnx::Constant[value=  1   2  58  40  40 [ CPULongType{5} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %497 : Float(1, 2, 58, 40, 40, strides=[185600, 92800, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Reshape(%out.7, %496) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %498 : Float(1, 58, 2, 40, 40, strides=[185600, 3200, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Transpose[perm=[0, 2, 1, 3, 4]](%497) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:23:0\n",
            "  %499 : Long(4, strides=[1], device=cpu) = onnx::Constant[value=  1  -1  40  40 [ CPULongType{4} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %500 : Float(1, 116, 40, 40, strides=[185600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Reshape(%498, %499) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %501 : Long(4, strides=[1], device=cpu) = onnx::Shape(%500) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %502 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %503 : Long(1, strides=[1], device=cpu) = onnx::Gather[axis=0](%501, %502) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %504 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={0}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %505 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %506 : Long(1, strides=[1], device=cpu) = onnx::Add(%503, %505) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %507 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={2}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %508 : Long(1, strides=[1], device=cpu) = onnx::Div(%506, %507) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %509 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %510 : Long(1, strides=[1], device=cpu) = onnx::Mul(%508, %509) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %511 : Float(1, 58, 40, 40, strides=[185600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Slice(%500, %504, %510, %502) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %512 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={2}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %513 : Long(1, strides=[1], device=cpu) = onnx::Mul(%508, %512) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %514 : Float(1, 58, 40, 40, strides=[185600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Slice(%500, %510, %513, %502) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %input.104 : Float(1, 58, 40, 40, strides=[92800, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%514, %977, %978) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %517 : Float(1, 58, 40, 40, strides=[92800, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.104) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.112 : Float(1, 58, 40, 40, strides=[92800, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=58, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1]](%517, %980, %981) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %input.120 : Float(1, 58, 40, 40, strides=[92800, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%input.112, %983, %984) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %522 : Float(1, 58, 40, 40, strides=[92800, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.120) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %out.11 : Float(1, 116, 40, 40, strides=[185600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Concat[axis=1](%511, %522) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:72:0\n",
            "  %524 : Long(5, strides=[1], device=cpu) = onnx::Constant[value=  1   2  58  40  40 [ CPULongType{5} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %525 : Float(1, 2, 58, 40, 40, strides=[185600, 92800, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Reshape(%out.11, %524) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %526 : Float(1, 58, 2, 40, 40, strides=[185600, 3200, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Transpose[perm=[0, 2, 1, 3, 4]](%525) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:23:0\n",
            "  %527 : Long(4, strides=[1], device=cpu) = onnx::Constant[value=  1  -1  40  40 [ CPULongType{4} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %input.124 : Float(1, 116, 40, 40, strides=[185600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Reshape(%526, %527) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %input.132 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=116, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[2, 2]](%input.124, %986, %987) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %input.140 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%input.132, %989, %990) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %533 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.140) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.148 : Float(1, 116, 40, 40, strides=[185600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%input.124, %992, %993) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %536 : Float(1, 116, 40, 40, strides=[185600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.148) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.156 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=116, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[2, 2]](%536, %995, %996) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %input.164 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%input.156, %998, %999) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %541 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.164) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %out.15 : Float(1, 232, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Concat[axis=1](%533, %541) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:74:0\n",
            "  %543 : Long(5, strides=[1], device=cpu) = onnx::Constant[value=   1    2  116   20   20 [ CPULongType{5} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %544 : Float(1, 2, 116, 20, 20, strides=[92800, 46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Reshape(%out.15, %543) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %545 : Float(1, 116, 2, 20, 20, strides=[92800, 800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Transpose[perm=[0, 2, 1, 3, 4]](%544) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:23:0\n",
            "  %546 : Long(4, strides=[1], device=cpu) = onnx::Constant[value=  1  -1  20  20 [ CPULongType{4} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %547 : Float(1, 232, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Reshape(%545, %546) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %548 : Long(4, strides=[1], device=cpu) = onnx::Shape(%547) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %549 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %550 : Long(1, strides=[1], device=cpu) = onnx::Gather[axis=0](%548, %549) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %551 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={0}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %552 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %553 : Long(1, strides=[1], device=cpu) = onnx::Add(%550, %552) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %554 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={2}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %555 : Long(1, strides=[1], device=cpu) = onnx::Div(%553, %554) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %556 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %557 : Long(1, strides=[1], device=cpu) = onnx::Mul(%555, %556) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %558 : Float(1, 116, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Slice(%547, %551, %557, %549) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %559 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={2}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %560 : Long(1, strides=[1], device=cpu) = onnx::Mul(%555, %559) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %561 : Float(1, 116, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Slice(%547, %557, %560, %549) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %input.172 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%561, %1001, %1002) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %564 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.172) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.180 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=116, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1]](%564, %1004, %1005) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %input.188 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%input.180, %1007, %1008) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %569 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.188) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %out.19 : Float(1, 232, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Concat[axis=1](%558, %569) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:72:0\n",
            "  %571 : Long(5, strides=[1], device=cpu) = onnx::Constant[value=   1    2  116   20   20 [ CPULongType{5} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %572 : Float(1, 2, 116, 20, 20, strides=[92800, 46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Reshape(%out.19, %571) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %573 : Float(1, 116, 2, 20, 20, strides=[92800, 800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Transpose[perm=[0, 2, 1, 3, 4]](%572) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:23:0\n",
            "  %574 : Long(4, strides=[1], device=cpu) = onnx::Constant[value=  1  -1  20  20 [ CPULongType{4} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %575 : Float(1, 232, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Reshape(%573, %574) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %576 : Long(4, strides=[1], device=cpu) = onnx::Shape(%575) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %577 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %578 : Long(1, strides=[1], device=cpu) = onnx::Gather[axis=0](%576, %577) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %579 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={0}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %580 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %581 : Long(1, strides=[1], device=cpu) = onnx::Add(%578, %580) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %582 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={2}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %583 : Long(1, strides=[1], device=cpu) = onnx::Div(%581, %582) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %584 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %585 : Long(1, strides=[1], device=cpu) = onnx::Mul(%583, %584) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %586 : Float(1, 116, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Slice(%575, %579, %585, %577) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %587 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={2}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %588 : Long(1, strides=[1], device=cpu) = onnx::Mul(%583, %587) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %589 : Float(1, 116, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Slice(%575, %585, %588, %577) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %input.196 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%589, %1010, %1011) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %592 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.196) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.204 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=116, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1]](%592, %1013, %1014) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %input.212 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%input.204, %1016, %1017) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %597 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.212) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %out.23 : Float(1, 232, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Concat[axis=1](%586, %597) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:72:0\n",
            "  %599 : Long(5, strides=[1], device=cpu) = onnx::Constant[value=   1    2  116   20   20 [ CPULongType{5} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %600 : Float(1, 2, 116, 20, 20, strides=[92800, 46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Reshape(%out.23, %599) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %601 : Float(1, 116, 2, 20, 20, strides=[92800, 800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Transpose[perm=[0, 2, 1, 3, 4]](%600) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:23:0\n",
            "  %602 : Long(4, strides=[1], device=cpu) = onnx::Constant[value=  1  -1  20  20 [ CPULongType{4} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %603 : Float(1, 232, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Reshape(%601, %602) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %604 : Long(4, strides=[1], device=cpu) = onnx::Shape(%603) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %605 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %606 : Long(1, strides=[1], device=cpu) = onnx::Gather[axis=0](%604, %605) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %607 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={0}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %608 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %609 : Long(1, strides=[1], device=cpu) = onnx::Add(%606, %608) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %610 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={2}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %611 : Long(1, strides=[1], device=cpu) = onnx::Div(%609, %610) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %612 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %613 : Long(1, strides=[1], device=cpu) = onnx::Mul(%611, %612) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %614 : Float(1, 116, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Slice(%603, %607, %613, %605) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %615 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={2}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %616 : Long(1, strides=[1], device=cpu) = onnx::Mul(%611, %615) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %617 : Float(1, 116, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Slice(%603, %613, %616, %605) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %input.220 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%617, %1019, %1020) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %620 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.220) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.228 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=116, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1]](%620, %1022, %1023) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %input.236 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%input.228, %1025, %1026) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %625 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.236) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %out.27 : Float(1, 232, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Concat[axis=1](%614, %625) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:72:0\n",
            "  %627 : Long(5, strides=[1], device=cpu) = onnx::Constant[value=   1    2  116   20   20 [ CPULongType{5} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %628 : Float(1, 2, 116, 20, 20, strides=[92800, 46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Reshape(%out.27, %627) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %629 : Float(1, 116, 2, 20, 20, strides=[92800, 800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Transpose[perm=[0, 2, 1, 3, 4]](%628) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:23:0\n",
            "  %630 : Long(4, strides=[1], device=cpu) = onnx::Constant[value=  1  -1  20  20 [ CPULongType{4} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %631 : Float(1, 232, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Reshape(%629, %630) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %632 : Long(4, strides=[1], device=cpu) = onnx::Shape(%631) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %633 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %634 : Long(1, strides=[1], device=cpu) = onnx::Gather[axis=0](%632, %633) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %635 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={0}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %636 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %637 : Long(1, strides=[1], device=cpu) = onnx::Add(%634, %636) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %638 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={2}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %639 : Long(1, strides=[1], device=cpu) = onnx::Div(%637, %638) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %640 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %641 : Long(1, strides=[1], device=cpu) = onnx::Mul(%639, %640) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %642 : Float(1, 116, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Slice(%631, %635, %641, %633) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %643 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={2}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %644 : Long(1, strides=[1], device=cpu) = onnx::Mul(%639, %643) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %645 : Float(1, 116, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Slice(%631, %641, %644, %633) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %input.244 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%645, %1028, %1029) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %648 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.244) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.252 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=116, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1]](%648, %1031, %1032) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %input.260 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%input.252, %1034, %1035) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %653 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.260) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %out.31 : Float(1, 232, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Concat[axis=1](%642, %653) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:72:0\n",
            "  %655 : Long(5, strides=[1], device=cpu) = onnx::Constant[value=   1    2  116   20   20 [ CPULongType{5} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %656 : Float(1, 2, 116, 20, 20, strides=[92800, 46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Reshape(%out.31, %655) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %657 : Float(1, 116, 2, 20, 20, strides=[92800, 800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Transpose[perm=[0, 2, 1, 3, 4]](%656) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:23:0\n",
            "  %658 : Long(4, strides=[1], device=cpu) = onnx::Constant[value=  1  -1  20  20 [ CPULongType{4} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %659 : Float(1, 232, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Reshape(%657, %658) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %660 : Long(4, strides=[1], device=cpu) = onnx::Shape(%659) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %661 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %662 : Long(1, strides=[1], device=cpu) = onnx::Gather[axis=0](%660, %661) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %663 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={0}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %664 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %665 : Long(1, strides=[1], device=cpu) = onnx::Add(%662, %664) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %666 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={2}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %667 : Long(1, strides=[1], device=cpu) = onnx::Div(%665, %666) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %668 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %669 : Long(1, strides=[1], device=cpu) = onnx::Mul(%667, %668) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %670 : Float(1, 116, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Slice(%659, %663, %669, %661) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %671 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={2}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %672 : Long(1, strides=[1], device=cpu) = onnx::Mul(%667, %671) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %673 : Float(1, 116, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Slice(%659, %669, %672, %661) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %input.268 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%673, %1037, %1038) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %676 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.268) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.276 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=116, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1]](%676, %1040, %1041) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %input.284 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%input.276, %1043, %1044) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %681 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.284) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %out.35 : Float(1, 232, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Concat[axis=1](%670, %681) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:72:0\n",
            "  %683 : Long(5, strides=[1], device=cpu) = onnx::Constant[value=   1    2  116   20   20 [ CPULongType{5} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %684 : Float(1, 2, 116, 20, 20, strides=[92800, 46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Reshape(%out.35, %683) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %685 : Float(1, 116, 2, 20, 20, strides=[92800, 800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Transpose[perm=[0, 2, 1, 3, 4]](%684) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:23:0\n",
            "  %686 : Long(4, strides=[1], device=cpu) = onnx::Constant[value=  1  -1  20  20 [ CPULongType{4} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %687 : Float(1, 232, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Reshape(%685, %686) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %688 : Long(4, strides=[1], device=cpu) = onnx::Shape(%687) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %689 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %690 : Long(1, strides=[1], device=cpu) = onnx::Gather[axis=0](%688, %689) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %691 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={0}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %692 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %693 : Long(1, strides=[1], device=cpu) = onnx::Add(%690, %692) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %694 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={2}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %695 : Long(1, strides=[1], device=cpu) = onnx::Div(%693, %694) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %696 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %697 : Long(1, strides=[1], device=cpu) = onnx::Mul(%695, %696) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %698 : Float(1, 116, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Slice(%687, %691, %697, %689) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %699 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={2}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %700 : Long(1, strides=[1], device=cpu) = onnx::Mul(%695, %699) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %701 : Float(1, 116, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Slice(%687, %697, %700, %689) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %input.292 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%701, %1046, %1047) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %704 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.292) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.300 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=116, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1]](%704, %1049, %1050) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %input.308 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%input.300, %1052, %1053) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %709 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.308) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %out.39 : Float(1, 232, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Concat[axis=1](%698, %709) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:72:0\n",
            "  %711 : Long(5, strides=[1], device=cpu) = onnx::Constant[value=   1    2  116   20   20 [ CPULongType{5} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %712 : Float(1, 2, 116, 20, 20, strides=[92800, 46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Reshape(%out.39, %711) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %713 : Float(1, 116, 2, 20, 20, strides=[92800, 800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Transpose[perm=[0, 2, 1, 3, 4]](%712) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:23:0\n",
            "  %714 : Long(4, strides=[1], device=cpu) = onnx::Constant[value=  1  -1  20  20 [ CPULongType{4} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %715 : Float(1, 232, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Reshape(%713, %714) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %716 : Long(4, strides=[1], device=cpu) = onnx::Shape(%715) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %717 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %718 : Long(1, strides=[1], device=cpu) = onnx::Gather[axis=0](%716, %717) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %719 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={0}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %720 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %721 : Long(1, strides=[1], device=cpu) = onnx::Add(%718, %720) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %722 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={2}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %723 : Long(1, strides=[1], device=cpu) = onnx::Div(%721, %722) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %724 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %725 : Long(1, strides=[1], device=cpu) = onnx::Mul(%723, %724) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %726 : Float(1, 116, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Slice(%715, %719, %725, %717) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %727 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={2}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %728 : Long(1, strides=[1], device=cpu) = onnx::Mul(%723, %727) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %729 : Float(1, 116, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Slice(%715, %725, %728, %717) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %input.316 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%729, %1055, %1056) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %732 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.316) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.324 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=116, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1]](%732, %1058, %1059) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %input.332 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%input.324, %1061, %1062) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %737 : Float(1, 116, 20, 20, strides=[46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.332) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %out.43 : Float(1, 232, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Concat[axis=1](%726, %737) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:72:0\n",
            "  %739 : Long(5, strides=[1], device=cpu) = onnx::Constant[value=   1    2  116   20   20 [ CPULongType{5} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %740 : Float(1, 2, 116, 20, 20, strides=[92800, 46400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Reshape(%out.43, %739) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %741 : Float(1, 116, 2, 20, 20, strides=[92800, 800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Transpose[perm=[0, 2, 1, 3, 4]](%740) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:23:0\n",
            "  %742 : Long(4, strides=[1], device=cpu) = onnx::Constant[value=  1  -1  20  20 [ CPULongType{4} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %input.336 : Float(1, 232, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Reshape(%741, %742) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %input.344 : Float(1, 232, 10, 10, strides=[23200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=232, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[2, 2]](%input.336, %1064, %1065) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %input.352 : Float(1, 232, 10, 10, strides=[23200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%input.344, %1067, %1068) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %748 : Float(1, 232, 10, 10, strides=[23200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.352) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.360 : Float(1, 232, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%input.336, %1070, %1071) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %751 : Float(1, 232, 20, 20, strides=[92800, 400, 20, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.360) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.368 : Float(1, 232, 10, 10, strides=[23200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=232, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[2, 2]](%751, %1073, %1074) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %input.376 : Float(1, 232, 10, 10, strides=[23200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%input.368, %1076, %1077) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %756 : Float(1, 232, 10, 10, strides=[23200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.376) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %out.47 : Float(1, 464, 10, 10, strides=[46400, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Concat[axis=1](%748, %756) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:74:0\n",
            "  %758 : Long(5, strides=[1], device=cpu) = onnx::Constant[value=   1    2  232   10   10 [ CPULongType{5} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %759 : Float(1, 2, 232, 10, 10, strides=[46400, 23200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Reshape(%out.47, %758) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %760 : Float(1, 232, 2, 10, 10, strides=[46400, 200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Transpose[perm=[0, 2, 1, 3, 4]](%759) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:23:0\n",
            "  %761 : Long(4, strides=[1], device=cpu) = onnx::Constant[value=  1  -1  10  10 [ CPULongType{4} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %762 : Float(1, 464, 10, 10, strides=[46400, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Reshape(%760, %761) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %763 : Long(4, strides=[1], device=cpu) = onnx::Shape(%762) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %764 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %765 : Long(1, strides=[1], device=cpu) = onnx::Gather[axis=0](%763, %764) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %766 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={0}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %767 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %768 : Long(1, strides=[1], device=cpu) = onnx::Add(%765, %767) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %769 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={2}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %770 : Long(1, strides=[1], device=cpu) = onnx::Div(%768, %769) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %771 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %772 : Long(1, strides=[1], device=cpu) = onnx::Mul(%770, %771) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %773 : Float(1, 232, 10, 10, strides=[46400, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Slice(%762, %766, %772, %764) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %774 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={2}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %775 : Long(1, strides=[1], device=cpu) = onnx::Mul(%770, %774) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %776 : Float(1, 232, 10, 10, strides=[46400, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Slice(%762, %772, %775, %764) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %input.384 : Float(1, 232, 10, 10, strides=[23200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%776, %1079, %1080) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %779 : Float(1, 232, 10, 10, strides=[23200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.384) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.392 : Float(1, 232, 10, 10, strides=[23200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=232, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1]](%779, %1082, %1083) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %input.400 : Float(1, 232, 10, 10, strides=[23200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%input.392, %1085, %1086) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %784 : Float(1, 232, 10, 10, strides=[23200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.400) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %out.51 : Float(1, 464, 10, 10, strides=[46400, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Concat[axis=1](%773, %784) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:72:0\n",
            "  %786 : Long(5, strides=[1], device=cpu) = onnx::Constant[value=   1    2  232   10   10 [ CPULongType{5} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %787 : Float(1, 2, 232, 10, 10, strides=[46400, 23200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Reshape(%out.51, %786) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %788 : Float(1, 232, 2, 10, 10, strides=[46400, 200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Transpose[perm=[0, 2, 1, 3, 4]](%787) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:23:0\n",
            "  %789 : Long(4, strides=[1], device=cpu) = onnx::Constant[value=  1  -1  10  10 [ CPULongType{4} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %790 : Float(1, 464, 10, 10, strides=[46400, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Reshape(%788, %789) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %791 : Long(4, strides=[1], device=cpu) = onnx::Shape(%790) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %792 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %793 : Long(1, strides=[1], device=cpu) = onnx::Gather[axis=0](%791, %792) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %794 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={0}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %795 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %796 : Long(1, strides=[1], device=cpu) = onnx::Add(%793, %795) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %797 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={2}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %798 : Long(1, strides=[1], device=cpu) = onnx::Div(%796, %797) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %799 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %800 : Long(1, strides=[1], device=cpu) = onnx::Mul(%798, %799) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %801 : Float(1, 232, 10, 10, strides=[46400, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Slice(%790, %794, %800, %792) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %802 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={2}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %803 : Long(1, strides=[1], device=cpu) = onnx::Mul(%798, %802) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %804 : Float(1, 232, 10, 10, strides=[46400, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Slice(%790, %800, %803, %792) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %input.408 : Float(1, 232, 10, 10, strides=[23200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%804, %1088, %1089) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %807 : Float(1, 232, 10, 10, strides=[23200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.408) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.416 : Float(1, 232, 10, 10, strides=[23200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=232, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1]](%807, %1091, %1092) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %input.424 : Float(1, 232, 10, 10, strides=[23200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%input.416, %1094, %1095) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %812 : Float(1, 232, 10, 10, strides=[23200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.424) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %out.55 : Float(1, 464, 10, 10, strides=[46400, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Concat[axis=1](%801, %812) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:72:0\n",
            "  %814 : Long(5, strides=[1], device=cpu) = onnx::Constant[value=   1    2  232   10   10 [ CPULongType{5} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %815 : Float(1, 2, 232, 10, 10, strides=[46400, 23200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Reshape(%out.55, %814) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %816 : Float(1, 232, 2, 10, 10, strides=[46400, 200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Transpose[perm=[0, 2, 1, 3, 4]](%815) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:23:0\n",
            "  %817 : Long(4, strides=[1], device=cpu) = onnx::Constant[value=  1  -1  10  10 [ CPULongType{4} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %818 : Float(1, 464, 10, 10, strides=[46400, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Reshape(%816, %817) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %819 : Long(4, strides=[1], device=cpu) = onnx::Shape(%818) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %820 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %821 : Long(1, strides=[1], device=cpu) = onnx::Gather[axis=0](%819, %820) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %822 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={0}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %823 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %824 : Long(1, strides=[1], device=cpu) = onnx::Add(%821, %823) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %825 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={2}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %826 : Long(1, strides=[1], device=cpu) = onnx::Div(%824, %825) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %827 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={1}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %828 : Long(1, strides=[1], device=cpu) = onnx::Mul(%826, %827) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %829 : Float(1, 232, 10, 10, strides=[46400, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Slice(%818, %822, %828, %820) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %830 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={2}]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %831 : Long(1, strides=[1], device=cpu) = onnx::Mul(%826, %830) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %832 : Float(1, 232, 10, 10, strides=[46400, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Slice(%818, %828, %831, %820) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:71:0\n",
            "  %input.432 : Float(1, 232, 10, 10, strides=[23200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%832, %1097, %1098) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %835 : Float(1, 232, 10, 10, strides=[23200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.432) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.440 : Float(1, 232, 10, 10, strides=[23200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=232, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1]](%835, %1100, %1101) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %input.448 : Float(1, 232, 10, 10, strides=[23200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%input.440, %1103, %1104) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %840 : Float(1, 232, 10, 10, strides=[23200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.448) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %out.59 : Float(1, 464, 10, 10, strides=[46400, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Concat[axis=1](%829, %840) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:72:0\n",
            "  %842 : Long(5, strides=[1], device=cpu) = onnx::Constant[value=   1    2  232   10   10 [ CPULongType{5} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %843 : Float(1, 2, 232, 10, 10, strides=[46400, 23200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Reshape(%out.59, %842) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:20:0\n",
            "  %844 : Float(1, 232, 2, 10, 10, strides=[46400, 200, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Transpose[perm=[0, 2, 1, 3, 4]](%843) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:23:0\n",
            "  %845 : Long(4, strides=[1], device=cpu) = onnx::Constant[value=  1  -1  10  10 [ CPULongType{4} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %input.452 : Float(1, 464, 10, 10, strides=[46400, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Reshape(%844, %845) # /content/drive/MyDrive/nanodet-main/nanodet/model/backbone/shufflenetv2.py:26:0\n",
            "  %847 : Float(1, 96, 40, 40, strides=[153600, 1600, 40, 1], requires_grad=0, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%input.124, %fpn.lateral_convs.0.conv.weight, %fpn.lateral_convs.0.conv.bias) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %848 : Float(1, 96, 20, 20, strides=[38400, 400, 20, 1], requires_grad=0, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%input.336, %fpn.lateral_convs.1.conv.weight, %fpn.lateral_convs.1.conv.bias) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %849 : Float(1, 96, 10, 10, strides=[9600, 100, 10, 1], requires_grad=0, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%input.452, %fpn.lateral_convs.2.conv.weight, %fpn.lateral_convs.2.conv.bias) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %853 : Float(0, strides=[1], device=cpu) = onnx::Constant[value=[ CPUFloatType{0} ]]() # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:3919:0\n",
            "  %854 : Float(1, 96, 20, 20, strides=[38400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Resize[coordinate_transformation_mode=\"pytorch_half_pixel\", cubic_coeff_a=-0.75, mode=\"linear\", nearest_mode=\"floor\"](%849, %853, %1141) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:3919:0\n",
            "  %855 : Float(1, 96, 20, 20, strides=[38400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Add(%848, %854) # /content/drive/MyDrive/nanodet-main/nanodet/model/fpn/pan.py:62:0\n",
            "  %859 : Float(0, strides=[1], device=cpu) = onnx::Constant[value=[ CPUFloatType{0} ]]() # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:3919:0\n",
            "  %860 : Float(1, 96, 40, 40, strides=[153600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Resize[coordinate_transformation_mode=\"pytorch_half_pixel\", cubic_coeff_a=-0.75, mode=\"linear\", nearest_mode=\"floor\"](%855, %859, %1142) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:3919:0\n",
            "  %861 : Float(1, 96, 40, 40, strides=[153600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Add(%847, %860) # /content/drive/MyDrive/nanodet-main/nanodet/model/fpn/pan.py:62:0\n",
            "  %865 : Float(0, strides=[1], device=cpu) = onnx::Constant[value=[ CPUFloatType{0} ]]() # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:3919:0\n",
            "  %866 : Float(1, 96, 20, 20, strides=[38400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Resize[coordinate_transformation_mode=\"pytorch_half_pixel\", cubic_coeff_a=-0.75, mode=\"linear\", nearest_mode=\"floor\"](%861, %865, %1143) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:3919:0\n",
            "  %input.456 : Float(1, 96, 20, 20, strides=[38400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Add(%855, %866) # /content/drive/MyDrive/nanodet-main/nanodet/model/fpn/pan.py:73:0\n",
            "  %871 : Float(0, strides=[1], device=cpu) = onnx::Constant[value=[ CPUFloatType{0} ]]() # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:3919:0\n",
            "  %872 : Float(1, 96, 10, 10, strides=[9600, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Resize[coordinate_transformation_mode=\"pytorch_half_pixel\", cubic_coeff_a=-0.75, mode=\"linear\", nearest_mode=\"floor\"](%input.456, %871, %1144) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:3919:0\n",
            "  %873 : Float(1, 96, 10, 10, strides=[9600, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Add(%849, %872) # /content/drive/MyDrive/nanodet-main/nanodet/model/fpn/pan.py:73:0\n",
            "  %input.464 : Float(1, 96, 40, 40, strides=[153600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=96, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1]](%861, %1106, %1107) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %876 : Float(1, 96, 40, 40, strides=[153600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.464) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.472 : Float(1, 96, 40, 40, strides=[153600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%876, %1109, %1110) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %879 : Float(1, 96, 40, 40, strides=[153600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.472) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.480 : Float(1, 96, 40, 40, strides=[153600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=96, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1]](%879, %1112, %1113) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %882 : Float(1, 96, 40, 40, strides=[153600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.480) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.488 : Float(1, 96, 40, 40, strides=[153600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%882, %1115, %1116) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %885 : Float(1, 96, 40, 40, strides=[153600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.488) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %tensor : Float(1, 58, 40, 40, strides=[92800, 1600, 40, 1], requires_grad=0, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%885, %head.gfl_cls.0.weight, %head.gfl_cls.0.bias) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %887 : Float(1, 26, 40, 40, strides=[92800, 1600, 40, 1], requires_grad=1, device=cpu), %888 : Float(1, 32, 40, 40, strides=[92800, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Split[axis=1, split=[26, 32]](%tensor) # /usr/local/lib/python3.9/dist-packages/torch/_tensor.py:574:0\n",
            "  %889 : Float(1, 26, 40, 40, strides=[41600, 1600, 40, 1], requires_grad=1, device=cpu) = onnx::Sigmoid(%887) # /content/drive/MyDrive/nanodet-main/nanodet/model/head/nanodet_head.py:127:0\n",
            "  %890 : Long(3, strides=[1], device=cpu) = onnx::Constant[value=  1  26  -1 [ CPULongType{3} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/head/nanodet_head.py:127:0\n",
            "  %891 : Float(1, 26, 1600, strides=[41600, 1600, 1], requires_grad=1, device=cpu) = onnx::Reshape(%889, %890) # /content/drive/MyDrive/nanodet-main/nanodet/model/head/nanodet_head.py:127:0\n",
            "  %cls_pred_stride_8 : Float(1, 1600, 26, strides=[41600, 1, 1600], requires_grad=1, device=cpu) = onnx::Transpose[perm=[0, 2, 1]](%891) # /content/drive/MyDrive/nanodet-main/nanodet/model/head/nanodet_head.py:127:0\n",
            "  %893 : Long(3, strides=[1], device=cpu) = onnx::Constant[value=  1  32  -1 [ CPULongType{3} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/head/nanodet_head.py:128:0\n",
            "  %894 : Float(1, 32, 1600, strides=[51200, 1600, 1], requires_grad=1, device=cpu) = onnx::Reshape(%888, %893) # /content/drive/MyDrive/nanodet-main/nanodet/model/head/nanodet_head.py:128:0\n",
            "  %dis_pred_stride_8 : Float(1, 1600, 32, strides=[51200, 1, 1600], requires_grad=1, device=cpu) = onnx::Transpose[perm=[0, 2, 1]](%894) # /content/drive/MyDrive/nanodet-main/nanodet/model/head/nanodet_head.py:128:0\n",
            "  %input.496 : Float(1, 96, 20, 20, strides=[38400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=96, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1]](%input.456, %1118, %1119) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %898 : Float(1, 96, 20, 20, strides=[38400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.496) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.504 : Float(1, 96, 20, 20, strides=[38400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%898, %1121, %1122) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %901 : Float(1, 96, 20, 20, strides=[38400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.504) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.512 : Float(1, 96, 20, 20, strides=[38400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=96, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1]](%901, %1124, %1125) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %904 : Float(1, 96, 20, 20, strides=[38400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.512) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.520 : Float(1, 96, 20, 20, strides=[38400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%904, %1127, %1128) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %907 : Float(1, 96, 20, 20, strides=[38400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.520) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %tensor.3 : Float(1, 58, 20, 20, strides=[23200, 400, 20, 1], requires_grad=0, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%907, %head.gfl_cls.1.weight, %head.gfl_cls.1.bias) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %909 : Float(1, 26, 20, 20, strides=[23200, 400, 20, 1], requires_grad=1, device=cpu), %910 : Float(1, 32, 20, 20, strides=[23200, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Split[axis=1, split=[26, 32]](%tensor.3) # /usr/local/lib/python3.9/dist-packages/torch/_tensor.py:574:0\n",
            "  %911 : Float(1, 26, 20, 20, strides=[10400, 400, 20, 1], requires_grad=1, device=cpu) = onnx::Sigmoid(%909) # /content/drive/MyDrive/nanodet-main/nanodet/model/head/nanodet_head.py:127:0\n",
            "  %912 : Long(3, strides=[1], device=cpu) = onnx::Constant[value=  1  26  -1 [ CPULongType{3} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/head/nanodet_head.py:127:0\n",
            "  %913 : Float(1, 26, 400, strides=[10400, 400, 1], requires_grad=1, device=cpu) = onnx::Reshape(%911, %912) # /content/drive/MyDrive/nanodet-main/nanodet/model/head/nanodet_head.py:127:0\n",
            "  %cls_pred_stride_16 : Float(1, 400, 26, strides=[10400, 1, 400], requires_grad=1, device=cpu) = onnx::Transpose[perm=[0, 2, 1]](%913) # /content/drive/MyDrive/nanodet-main/nanodet/model/head/nanodet_head.py:127:0\n",
            "  %915 : Long(3, strides=[1], device=cpu) = onnx::Constant[value=  1  32  -1 [ CPULongType{3} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/head/nanodet_head.py:128:0\n",
            "  %916 : Float(1, 32, 400, strides=[12800, 400, 1], requires_grad=1, device=cpu) = onnx::Reshape(%910, %915) # /content/drive/MyDrive/nanodet-main/nanodet/model/head/nanodet_head.py:128:0\n",
            "  %dis_pred_stride_16 : Float(1, 400, 32, strides=[12800, 1, 400], requires_grad=1, device=cpu) = onnx::Transpose[perm=[0, 2, 1]](%916) # /content/drive/MyDrive/nanodet-main/nanodet/model/head/nanodet_head.py:128:0\n",
            "  %input.528 : Float(1, 96, 10, 10, strides=[9600, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=96, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1]](%873, %1130, %1131) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %920 : Float(1, 96, 10, 10, strides=[9600, 100, 10, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.528) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.536 : Float(1, 96, 10, 10, strides=[9600, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%920, %1133, %1134) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %923 : Float(1, 96, 10, 10, strides=[9600, 100, 10, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.536) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.544 : Float(1, 96, 10, 10, strides=[9600, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=96, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1]](%923, %1136, %1137) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %926 : Float(1, 96, 10, 10, strides=[9600, 100, 10, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.544) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %input.552 : Float(1, 96, 10, 10, strides=[9600, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%926, %1139, %1140) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %929 : Float(1, 96, 10, 10, strides=[9600, 100, 10, 1], requires_grad=1, device=cpu) = onnx::LeakyRelu[alpha=0.10000000000000001](%input.552) # /usr/local/lib/python3.9/dist-packages/torch/nn/functional.py:1616:0\n",
            "  %tensor.7 : Float(1, 58, 10, 10, strides=[5800, 100, 10, 1], requires_grad=0, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[1, 1]](%929, %head.gfl_cls.2.weight, %head.gfl_cls.2.bias) # /usr/local/lib/python3.9/dist-packages/torch/nn/modules/conv.py:443:0\n",
            "  %931 : Float(1, 26, 10, 10, strides=[5800, 100, 10, 1], requires_grad=1, device=cpu), %932 : Float(1, 32, 10, 10, strides=[5800, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Split[axis=1, split=[26, 32]](%tensor.7) # /usr/local/lib/python3.9/dist-packages/torch/_tensor.py:574:0\n",
            "  %933 : Float(1, 26, 10, 10, strides=[2600, 100, 10, 1], requires_grad=1, device=cpu) = onnx::Sigmoid(%931) # /content/drive/MyDrive/nanodet-main/nanodet/model/head/nanodet_head.py:127:0\n",
            "  %934 : Long(3, strides=[1], device=cpu) = onnx::Constant[value=  1  26  -1 [ CPULongType{3} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/head/nanodet_head.py:127:0\n",
            "  %935 : Float(1, 26, 100, strides=[2600, 100, 1], requires_grad=1, device=cpu) = onnx::Reshape(%933, %934) # /content/drive/MyDrive/nanodet-main/nanodet/model/head/nanodet_head.py:127:0\n",
            "  %cls_pred_stride_32 : Float(1, 100, 26, strides=[2600, 1, 100], requires_grad=1, device=cpu) = onnx::Transpose[perm=[0, 2, 1]](%935) # /content/drive/MyDrive/nanodet-main/nanodet/model/head/nanodet_head.py:127:0\n",
            "  %937 : Long(3, strides=[1], device=cpu) = onnx::Constant[value=  1  32  -1 [ CPULongType{3} ]]() # /content/drive/MyDrive/nanodet-main/nanodet/model/head/nanodet_head.py:128:0\n",
            "  %938 : Float(1, 32, 100, strides=[3200, 100, 1], requires_grad=1, device=cpu) = onnx::Reshape(%932, %937) # /content/drive/MyDrive/nanodet-main/nanodet/model/head/nanodet_head.py:128:0\n",
            "  %dis_pred_stride_32 : Float(1, 100, 32, strides=[3200, 1, 100], requires_grad=1, device=cpu) = onnx::Transpose[perm=[0, 2, 1]](%938) # /content/drive/MyDrive/nanodet-main/nanodet/model/head/nanodet_head.py:128:0\n",
            "  return (%cls_pred_stride_8, %cls_pred_stride_16, %cls_pred_stride_32, %dis_pred_stride_8, %dis_pred_stride_16, %dis_pred_stride_32)\n",
            "\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[04-15 10:02:59]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mfinished exporting onnx \u001b[0m\n",
            "Model saved to: nanodet.onnx\n"
          ]
        }
      ],
      "source": [
        "!python export_onnx.py \\\n",
        "    --cfg_path=/content/drive/MyDrive/nanodet-main/config/nanodet_custom_xml_dataset.yml \\\n",
        "    --model_path=/content/drive/MyDrive/nanodet-main/workspace/nanodet_m/model_last.ckpt"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "PWq_2zcO8fHy",
        "outputId": "e09b0496-63b0-47f6-ad55-662084b47a32"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
            "Requirement already satisfied: onnx-simplifier in /usr/local/lib/python3.9/dist-packages (0.4.19)\n",
            "Requirement already satisfied: rich in /usr/local/lib/python3.9/dist-packages (from onnx-simplifier) (13.3.3)\n",
            "Requirement already satisfied: onnx in /usr/local/lib/python3.9/dist-packages (from onnx-simplifier) (1.13.1)\n",
            "Requirement already satisfied: numpy>=1.16.6 in /usr/local/lib/python3.9/dist-packages (from onnx->onnx-simplifier) (1.22.4)\n",
            "Requirement already satisfied: protobuf<4,>=3.20.2 in /usr/local/lib/python3.9/dist-packages (from onnx->onnx-simplifier) (3.20.3)\n",
            "Requirement already satisfied: typing-extensions>=3.6.2.1 in /usr/local/lib/python3.9/dist-packages (from onnx->onnx-simplifier) (4.5.0)\n",
            "Requirement already satisfied: markdown-it-py<3.0.0,>=2.2.0 in /usr/local/lib/python3.9/dist-packages (from rich->onnx-simplifier) (2.2.0)\n",
            "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.9/dist-packages (from rich->onnx-simplifier) (2.14.0)\n",
            "Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.9/dist-packages (from markdown-it-py<3.0.0,>=2.2.0->rich->onnx-simplifier) (0.1.2)\n"
          ]
        }
      ],
      "source": [
        "!pip install onnx-simplifier"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "cyLPAMkE8i8U",
        "outputId": "b1117f53-cacc-4c39-de9b-4da6c18dfc09"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "usage: __main__.py\n",
            "       [-h]\n",
            "       [--enable-fuse-bn]\n",
            "       [--skip-fuse-bn]\n",
            "       [--skip-optimization [SKIP_OPTIMIZATION ...]]\n",
            "       [--skip-constant-folding]\n",
            "       [--input-shape INPUT_SHAPE [INPUT_SHAPE ...]]\n",
            "       [--overwrite-input-shape OVERWRITE_INPUT_SHAPE [OVERWRITE_INPUT_SHAPE ...]]\n",
            "       [--test-input-shape TEST_INPUT_SHAPE [TEST_INPUT_SHAPE ...]]\n",
            "       [--skip-optimizer SKIP_OPTIMIZER [SKIP_OPTIMIZER ...]]\n",
            "       [--skip-shape-inference]\n",
            "       [--dynamic-input-shape]\n",
            "       [--input-data-path INPUT_DATA_PATH [INPUT_DATA_PATH ...]]\n",
            "       [--custom-lib CUSTOM_LIB]\n",
            "       [--include-subgraph]\n",
            "       [--unused-output UNUSED_OUTPUT [UNUSED_OUTPUT ...]]\n",
            "       [--no-large-tensor [TENSOR_SIZE_THRESHOLD]]\n",
            "       input_model\n",
            "       output_model\n",
            "       [check_n]\n",
            "__main__.py: error: the following arguments are required: output_model\n"
          ]
        }
      ],
      "source": [
        "!python -m onnxsim nanodet1.onnx"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "nV5FbC81brq_",
        "outputId": "5fb0c006-3413-4ff9-9bc2-79377df72d6d"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Collecting PyQt5==5.15.2\n",
            "  Downloading PyQt5-5.15.2-5.15.2-cp35.cp36.cp37.cp38.cp39-abi3-manylinux2014_x86_64.whl (68.3 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m68.3/68.3 MB\u001b[0m \u001b[31m10.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting PyQt5-sip==12.8.1\n",
            "  Downloading PyQt5_sip-12.8.1.tar.gz (102 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m102.3/102.3 kB\u001b[0m \u001b[31m14.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25h  Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n",
            "  Getting requirements to build wheel ... \u001b[?25l\u001b[?25hdone\n",
            "  Preparing metadata (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n",
            "Building wheels for collected packages: PyQt5-sip\n",
            "  Building wheel for PyQt5-sip (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n",
            "  Created wheel for PyQt5-sip: filename=PyQt5_sip-12.8.1-cp310-cp310-linux_x86_64.whl size=288709 sha256=45ada05a3ab4543bc3425db34937a885eda5811a5abf3010def73fbcf8097762\n",
            "  Stored in directory: /root/.cache/pip/wheels/5f/6a/39/a960a393c61043ae909358e193ea2053e78f6824b95e4444f7\n",
            "Successfully built PyQt5-sip\n",
            "Installing collected packages: PyQt5-sip, PyQt5\n",
            "Successfully installed PyQt5-5.15.2 PyQt5-sip-12.8.1\n"
          ]
        }
      ],
      "source": [
        "!pip install PyQt5==5.15.2 PyQt5-sip==12.8.1"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "PcB92rD288Vy"
      },
      "source": [
        "Convert to MNN"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "QtcDE-6c8-MF"
      },
      "outputs": [],
      "source": [
        "!cp demo/demo.py ./"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "olOOW4ch8_-l",
        "outputId": "d3f8feb9-a330-432f-f05f-43bf3fee7011"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "model size is  1.0x\n",
            "init weights...\n",
            "=> loading pretrained model https://download.pytorch.org/models/shufflenetv2_x1-5666bf0f80.pth\n",
            "Finish initialize Lite GFL Head.\n",
            "\u001b[1m\u001b[35m[root]\u001b[0m\u001b[34m[05-07 15:49:19]\u001b[0m\u001b[32mINFO:\u001b[0m\u001b[97mPress \"Esc\", \"q\" or \"Q\" to exit.\u001b[0m\n",
            "/usr/local/lib/python3.10/dist-packages/torch/functional.py:478: 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:2895.)\n",
            "  return _VF.meshgrid(tensors, **kwargs)  # type: ignore[attr-defined]\n",
            "forward time: 0.449s | decode time: 0.012s | <PIL.Image.Image image mode=RGB size=700x700 at 0x7CFE84DF7FA0>\n",
            "viz time: 0.006s\n"
          ]
        }
      ],
      "source": [
        " !python demo.py  --config /content/drive/MyDrive/nanodet-main/nanodet_custom_xml_dataset.yml --model /content/drive/MyDrive/nanodet-main/workspace/nanodet_m/model_last.ckpt --path /content/drive/MyDrive/nanodet-main/asmatalaa-2/test/48a95760-d98a-4dd6-bf5d-32b94c01187e_jpg.rf.aca881772494b4aa9921d6db6605ba84.jpg --save_result image"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "GkyayCZ5CkR2",
        "outputId": "8954eb7b-1e10-4576-f3a2-a8cdbf454ffe"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Requirement already satisfied: opencv-python in /usr/local/lib/python3.10/dist-packages (4.8.0.76)\n",
            "Requirement already satisfied: numpy>=1.21.2 in /usr/local/lib/python3.10/dist-packages (from opencv-python) (1.25.2)\n",
            "Requirement already satisfied: opencv-contrib-python in /usr/local/lib/python3.10/dist-packages (4.8.0.76)\n",
            "Requirement already satisfied: numpy>=1.21.2 in /usr/local/lib/python3.10/dist-packages (from opencv-contrib-python) (1.25.2)\n"
          ]
        }
      ],
      "source": [
        "!pip install opencv-python\n",
        "!pip install opencv-contrib-python"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "TioxsTxq8uhl",
        "outputId": "2a98badb-e101-4620-87cb-b7c9683d2ac0"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
            "Collecting MNN\n",
            "  Downloading MNN-2.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (15.2 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m15.2/15.2 MB\u001b[0m \u001b[31m47.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: flatbuffers in /usr/local/lib/python3.9/dist-packages (from MNN) (23.3.3)\n",
            "Requirement already satisfied: numpy in /usr/local/lib/python3.9/dist-packages (from MNN) (1.22.4)\n",
            "Collecting aliyun-log-python-sdk\n",
            "  Downloading aliyun-log-python-sdk-0.8.6.tar.gz (125 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m125.7/125.7 kB\u001b[0m \u001b[31m16.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25h  Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "Requirement already satisfied: six in /usr/local/lib/python3.9/dist-packages (from aliyun-log-python-sdk->MNN) (1.16.0)\n",
            "Requirement already satisfied: requests in /usr/local/lib/python3.9/dist-packages (from aliyun-log-python-sdk->MNN) (2.27.1)\n",
            "Requirement already satisfied: python-dateutil in /usr/local/lib/python3.9/dist-packages (from aliyun-log-python-sdk->MNN) (2.8.2)\n",
            "Collecting elasticsearch\n",
            "  Downloading elasticsearch-8.7.0-py3-none-any.whl (387 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m387.9/387.9 kB\u001b[0m \u001b[31m38.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting jmespath\n",
            "  Downloading jmespath-1.0.1-py3-none-any.whl (20 kB)\n",
            "Collecting dateparser\n",
            "  Downloading dateparser-1.1.8-py2.py3-none-any.whl (293 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m293.8/293.8 kB\u001b[0m \u001b[31m33.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: protobuf<4.0.0,>=3.4.0 in /usr/local/lib/python3.9/dist-packages (from aliyun-log-python-sdk->MNN) (3.20.3)\n",
            "Requirement already satisfied: tzlocal in /usr/local/lib/python3.9/dist-packages (from dateparser->aliyun-log-python-sdk->MNN) (4.3)\n",
            "Requirement already satisfied: regex!=2019.02.19,!=2021.8.27 in /usr/local/lib/python3.9/dist-packages (from dateparser->aliyun-log-python-sdk->MNN) (2022.10.31)\n",
            "Requirement already satisfied: pytz in /usr/local/lib/python3.9/dist-packages (from dateparser->aliyun-log-python-sdk->MNN) (2022.7.1)\n",
            "Collecting elastic-transport<9,>=8\n",
            "  Downloading elastic_transport-8.4.0-py3-none-any.whl (59 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m59.5/59.5 kB\u001b[0m \u001b[31m8.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.9/dist-packages (from requests->aliyun-log-python-sdk->MNN) (2.0.12)\n",
            "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.9/dist-packages (from requests->aliyun-log-python-sdk->MNN) (1.26.15)\n",
            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.9/dist-packages (from requests->aliyun-log-python-sdk->MNN) (2022.12.7)\n",
            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.9/dist-packages (from requests->aliyun-log-python-sdk->MNN) (3.4)\n",
            "Requirement already satisfied: pytz-deprecation-shim in /usr/local/lib/python3.9/dist-packages (from tzlocal->dateparser->aliyun-log-python-sdk->MNN) (0.1.0.post0)\n",
            "Requirement already satisfied: tzdata in /usr/local/lib/python3.9/dist-packages (from pytz-deprecation-shim->tzlocal->dateparser->aliyun-log-python-sdk->MNN) (2023.3)\n",
            "Building wheels for collected packages: aliyun-log-python-sdk\n",
            "  Building wheel for aliyun-log-python-sdk (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "  Created wheel for aliyun-log-python-sdk: filename=aliyun_log_python_sdk-0.8.6-py3-none-any.whl size=164303 sha256=02c8b7e0be92545a7b6f1852e24fc565e564aa11d96e2871c90b0ecfa2854f87\n",
            "  Stored in directory: /root/.cache/pip/wheels/fc/47/c0/580ac288bda794e9a8ef2597ee1a11ed04f252a8d65003cd9b\n",
            "Successfully built aliyun-log-python-sdk\n",
            "Installing collected packages: jmespath, elastic-transport, elasticsearch, dateparser, aliyun-log-python-sdk, MNN\n",
            "Successfully installed MNN-2.4.2 aliyun-log-python-sdk-0.8.6 dateparser-1.1.8 elastic-transport-8.4.0 elasticsearch-8.7.0 jmespath-1.0.1\n"
          ]
        }
      ],
      "source": [
        "!pip install MNN"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "HY-hbsOAKwNr",
        "outputId": "5db044a7-499c-4c00-aae6-e134acfbff21"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "/usr/bin/python3: Error while finding module specification for 'MNN.tools.mnnconvert' (ModuleNotFoundError: No module named 'MNN')\n"
          ]
        }
      ],
      "source": [
        "!python -m MNN.tools.mnnconvert -f ONNX --modelFile /content/drive/MyDrive/nanodet-main/nanodet1.onnx --MNNModel /content/drive/MyDrive/Head70.mnn"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "cSflIjrDuIkq",
        "outputId": "b33cb83c-6f1a-4968-b395-666d24e7f705"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
            "Requirement already satisfied: opencv-python in /usr/local/lib/python3.9/dist-packages (4.7.0.72)\n",
            "Requirement already satisfied: numpy>=1.17.3 in /usr/local/lib/python3.9/dist-packages (from opencv-python) (1.22.4)\n"
          ]
        }
      ],
      "source": [
        "\n",
        "!pip install opencv-python"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "35QXUklmE8jw",
        "outputId": "ee624a13-0e2e-4845-e327-64c330d3570a"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "model size is  1.0x\n",
            "init weights...\n",
            "=> loading pretrained model https://download.pytorch.org/models/shufflenetv2_x1-5666bf0f80.pth\n",
            "Finish initialize Lite GFL Head.\n",
            "Accuracy: 0.54\n",
            "Precision: 0.5494505494505495\n",
            "Recall: 0.9090909090909091\n",
            "F1 Score: 0.6849315068493151\n"
          ]
        }
      ],
      "source": [
        "import torch\n",
        "import numpy as np\n",
        "from nanodet.model.arch import build_model\n",
        "from nanodet.util import cfg\n",
        "from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score\n",
        "\n",
        "# Define device\n",
        "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
        "\n",
        "# Load model configuration\n",
        "cfg.merge_from_file(\"/content/drive/MyDrive/nanodet-main/nanodet_custom_xml_dataset.yml\")\n",
        "\n",
        "# Initialize model\n",
        "model = build_model(cfg.model)\n",
        "\n",
        "# Load model weights from .ckpt file\n",
        "checkpoint = torch.load(\"/content/drive/MyDrive/nanodet-main/workspace/nanodet_m/model_lastData).ckpt\", map_location=device)\n",
        "state_dict = checkpoint['state_dict']\n",
        "\n",
        "# Remove the prefix \"model.\" from the keys in the state dictionary\n",
        "state_dict = {k.replace('model.', ''): v for k, v in state_dict.items()}\n",
        "\n",
        "# Load modified state dictionary into the model\n",
        "model.load_state_dict(state_dict)\n",
        "\n",
        "# Set model to evaluation mode\n",
        "model.eval()\n",
        "\n",
        "# Continue with the rest of the evaluation code as before\n",
        "# Load your dataset and perform inference to get predictions and ground truths\n",
        "# For demonstration, let's assume pred_scores and gt_labels are your predictions and ground truths, respectively\n",
        "# pred_scores should be a list or array of confidence scores for each prediction\n",
        "# gt_labels should be a list or array of ground truth labels (0 or 1 for binary classification)\n",
        "# Make sure to format your data accordingly\n",
        "\n",
        "# Example data (replace this with your actual data)\n",
        "pred_scores = np.random.rand(100)  # Random confidence scores for 100 predictions\n",
        "gt_labels = np.random.randint(2, size=100)  # Random ground truth labels (0 or 1) for 100 samples\n",
        "\n",
        "# Convert numpy arrays to tensors\n",
        "pred_scores_tensor = torch.tensor(pred_scores).to(device)\n",
        "gt_labels_tensor = torch.tensor(gt_labels).to(device)\n",
        "\n",
        "# Threshold the prediction scores to obtain binary predictions\n",
        "threshold = 0.1  # Adjust this threshold as needed\n",
        "binary_predictions = (pred_scores_tensor > threshold).long()\n",
        "\n",
        "# Compute evaluation metrics\n",
        "accuracy = accuracy_score(gt_labels, binary_predictions.cpu().numpy())\n",
        "precision = precision_score(gt_labels, binary_predictions.cpu().numpy())\n",
        "recall = recall_score(gt_labels, binary_predictions.cpu().numpy())\n",
        "f1 = f1_score(gt_labels, binary_predictions.cpu().numpy())\n",
        "\n",
        "# Print the evaluation metrics\n",
        "print(\"Accuracy:\", accuracy)\n",
        "print(\"Precision:\", precision)\n",
        "print(\"Recall:\", recall)\n",
        "print(\"F1 Score:\", f1)\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 211
        },
        "id": "_gEOFr4QqqLW",
        "outputId": "8e8e6402-77a0-4e82-f4ca-64dac38643a4"
      },
      "outputs": [
        {
          "ename": "AttributeError",
          "evalue": "'numpy.ndarray' object has no attribute 'cpu'",
          "output_type": "error",
          "traceback": [
            "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
            "\u001b[0;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
            "\u001b[0;32m<ipython-input-50-c104a21242b3>\u001b[0m in \u001b[0;36m<cell line: 9>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      7\u001b[0m \u001b[0;31m# Assuming gt_labels and binary_predictions are already defined\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      8\u001b[0m \u001b[0;31m# Convert tensors to numpy arrays\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 9\u001b[0;31m \u001b[0mgt_labels_np\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgt_labels\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcpu\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnumpy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     10\u001b[0m \u001b[0mbinary_predictions_np\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mbinary_predictions\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcpu\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnumpy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     11\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;31mAttributeError\u001b[0m: 'numpy.ndarray' object has no attribute 'cpu'"
          ]
        }
      ],
      "source": [
        "import numpy as np\n",
        "import matplotlib.pyplot as plt\n",
        "from sklearn.metrics import confusion_matrix\n",
        "import seaborn as sns\n",
        "\n",
        "# Define the ground truth and predicted labels\n",
        "# Assuming gt_labels and binary_predictions are already defined\n",
        "# Convert tensors to numpy arrays\n",
        "gt_labels_np = gt_labels.cpu().numpy()\n",
        "binary_predictions_np = binary_predictions.cpu().numpy()\n",
        "\n",
        "# Compute the confusion matrix\n",
        "cm = confusion_matrix(gt_labels_np, binary_predictions_np)\n",
        "\n",
        "# Define class names (if binary, you may have just \"Class 0\" and \"Class 1\")\n",
        "class_names = [\"Class 0\", \"Class 1\"]\n",
        "\n",
        "# Plot confusion matrix\n",
        "plt.figure(figsize=(8, 6))\n",
        "sns.set(font_scale=1.2)\n",
        "sns.heatmap(cm, annot=True, fmt='d', cmap=\"Blues\", xticklabels=class_names, yticklabels=class_names)\n",
        "plt.xlabel('Predicted Labels')\n",
        "plt.ylabel('True Labels')\n",
        "plt.title('Confusion Matrix')\n",
        "plt.show()\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "8Ks83wrSEz1F"
      },
      "outputs": [],
      "source": []
    }
  ],
  "metadata": {
    "accelerator": "GPU",
    "colab": {
      "gpuType": "T4",
      "provenance": []
    },
    "kernelspec": {
      "display_name": "Python 3",
      "name": "python3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}