{ "cells": [ { "cell_type": "code", "source": [ "!pip install gradio" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "62gFhOy8DX8b", "outputId": "f9179d96-5804-4fac-e7cf-46e6e4345e87" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Collecting gradio\n", " Downloading gradio-3.47.1-py3-none-any.whl (20.3 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m20.3/20.3 MB\u001b[0m \u001b[31m78.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting aiofiles<24.0,>=22.0 (from gradio)\n", " Downloading aiofiles-23.2.1-py3-none-any.whl (15 kB)\n", "Requirement already satisfied: altair<6.0,>=4.2.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (4.2.2)\n", "Collecting fastapi (from gradio)\n", " Downloading fastapi-0.103.2-py3-none-any.whl (66 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m66.3/66.3 kB\u001b[0m \u001b[31m9.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting ffmpy (from gradio)\n", " Downloading ffmpy-0.3.1.tar.gz (5.5 kB)\n", " Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", "Collecting gradio-client==0.6.0 (from gradio)\n", " Downloading gradio_client-0.6.0-py3-none-any.whl (298 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m298.8/298.8 kB\u001b[0m \u001b[31m39.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting httpx (from gradio)\n", " Downloading httpx-0.25.0-py3-none-any.whl (75 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m75.7/75.7 kB\u001b[0m \u001b[31m12.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting huggingface-hub>=0.14.0 (from gradio)\n", " Downloading huggingface_hub-0.17.3-py3-none-any.whl (295 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m295.0/295.0 kB\u001b[0m \u001b[31m33.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: importlib-resources<7.0,>=1.3 in /usr/local/lib/python3.10/dist-packages (from gradio) (6.1.0)\n", "Requirement already satisfied: jinja2<4.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (3.1.2)\n", "Requirement already satisfied: markupsafe~=2.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (2.1.3)\n", "Requirement already satisfied: matplotlib~=3.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (3.7.1)\n", "Requirement already satisfied: numpy~=1.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (1.23.5)\n", "Collecting orjson~=3.0 (from gradio)\n", " Downloading orjson-3.9.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (138 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m138.7/138.7 kB\u001b[0m \u001b[31m21.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from gradio) (23.2)\n", "Requirement already satisfied: pandas<3.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (1.5.3)\n", "Requirement already satisfied: pillow<11.0,>=8.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (9.4.0)\n", "Requirement already satisfied: pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,<3.0.0,>=1.7.4 in /usr/local/lib/python3.10/dist-packages (from gradio) (1.10.13)\n", "Collecting pydub (from gradio)\n", " Downloading pydub-0.25.1-py2.py3-none-any.whl (32 kB)\n", "Collecting python-multipart (from gradio)\n", " Downloading python_multipart-0.0.6-py3-none-any.whl (45 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m45.7/45.7 kB\u001b[0m \u001b[31m6.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: pyyaml<7.0,>=5.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (6.0.1)\n", "Requirement already satisfied: requests~=2.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (2.31.0)\n", "Collecting semantic-version~=2.0 (from gradio)\n", " Downloading semantic_version-2.10.0-py2.py3-none-any.whl (15 kB)\n", "Requirement already satisfied: typing-extensions~=4.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (4.5.0)\n", "Collecting uvicorn>=0.14.0 (from gradio)\n", " Downloading uvicorn-0.23.2-py3-none-any.whl (59 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m59.5/59.5 kB\u001b[0m \u001b[31m9.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting websockets<12.0,>=10.0 (from gradio)\n", " Downloading websockets-11.0.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (129 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m129.9/129.9 kB\u001b[0m \u001b[31m18.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from gradio-client==0.6.0->gradio) (2023.6.0)\n", "Requirement already satisfied: entrypoints in /usr/local/lib/python3.10/dist-packages (from altair<6.0,>=4.2.0->gradio) (0.4)\n", "Requirement already satisfied: jsonschema>=3.0 in /usr/local/lib/python3.10/dist-packages (from altair<6.0,>=4.2.0->gradio) (4.19.1)\n", "Requirement already satisfied: toolz in /usr/local/lib/python3.10/dist-packages (from altair<6.0,>=4.2.0->gradio) (0.12.0)\n", "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.14.0->gradio) (3.12.4)\n", "Requirement already satisfied: tqdm>=4.42.1 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.14.0->gradio) (4.66.1)\n", "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib~=3.0->gradio) (1.1.1)\n", "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib~=3.0->gradio) (0.12.0)\n", "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib~=3.0->gradio) (4.43.0)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib~=3.0->gradio) (1.4.5)\n", "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib~=3.0->gradio) (3.1.1)\n", "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib~=3.0->gradio) (2.8.2)\n", "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas<3.0,>=1.0->gradio) (2023.3.post1)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests~=2.0->gradio) (3.3.0)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests~=2.0->gradio) (3.4)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests~=2.0->gradio) (2.0.6)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests~=2.0->gradio) (2023.7.22)\n", "Requirement already satisfied: click>=7.0 in /usr/local/lib/python3.10/dist-packages (from uvicorn>=0.14.0->gradio) (8.1.7)\n", "Collecting h11>=0.8 (from uvicorn>=0.14.0->gradio)\n", " Downloading h11-0.14.0-py3-none-any.whl (58 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m58.3/58.3 kB\u001b[0m \u001b[31m8.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: anyio<4.0.0,>=3.7.1 in /usr/local/lib/python3.10/dist-packages (from fastapi->gradio) (3.7.1)\n", "Collecting starlette<0.28.0,>=0.27.0 (from fastapi->gradio)\n", " Downloading starlette-0.27.0-py3-none-any.whl (66 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m67.0/67.0 kB\u001b[0m \u001b[31m9.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting httpcore<0.19.0,>=0.18.0 (from httpx->gradio)\n", " Downloading httpcore-0.18.0-py3-none-any.whl (76 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m76.0/76.0 kB\u001b[0m \u001b[31m11.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: sniffio in /usr/local/lib/python3.10/dist-packages (from httpx->gradio) (1.3.0)\n", "Requirement already satisfied: exceptiongroup in /usr/local/lib/python3.10/dist-packages (from anyio<4.0.0,>=3.7.1->fastapi->gradio) (1.1.3)\n", "Requirement already satisfied: attrs>=22.2.0 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=3.0->altair<6.0,>=4.2.0->gradio) (23.1.0)\n", "Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=3.0->altair<6.0,>=4.2.0->gradio) (2023.7.1)\n", "Requirement already satisfied: referencing>=0.28.4 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=3.0->altair<6.0,>=4.2.0->gradio) (0.30.2)\n", "Requirement already satisfied: rpds-py>=0.7.1 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=3.0->altair<6.0,>=4.2.0->gradio) (0.10.3)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7->matplotlib~=3.0->gradio) (1.16.0)\n", "Building wheels for collected packages: ffmpy\n", " Building wheel for ffmpy (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for ffmpy: filename=ffmpy-0.3.1-py3-none-any.whl size=5579 sha256=fb50854cceec6b4260a316ccf65a2c44462b8050c4486f0f6ecbdba7d171a066\n", " Stored in directory: /root/.cache/pip/wheels/01/a6/d1/1c0828c304a4283b2c1639a09ad86f83d7c487ef34c6b4a1bf\n", "Successfully built ffmpy\n", "Installing collected packages: pydub, ffmpy, websockets, semantic-version, python-multipart, orjson, h11, aiofiles, uvicorn, starlette, huggingface-hub, httpcore, httpx, fastapi, gradio-client, gradio\n", "Successfully installed aiofiles-23.2.1 fastapi-0.103.2 ffmpy-0.3.1 gradio-3.47.1 gradio-client-0.6.0 h11-0.14.0 httpcore-0.18.0 httpx-0.25.0 huggingface-hub-0.17.3 orjson-3.9.7 pydub-0.25.1 python-multipart-0.0.6 semantic-version-2.10.0 starlette-0.27.0 uvicorn-0.23.2 websockets-11.0.3\n" ] } ] }, { "cell_type": "code", "source": [ "#|default_exp app" ], "metadata": { "id": "wxb53tDuC8ln" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Hx6J9q6rI39b" }, "outputs": [], "source": [ "#|export\n", "from fastai.vision.all import*\n", "import gradio as gr\n" ] }, { "cell_type": "code", "source": [ "#hide\n", "! [ -e /content ] && pip install -Uqq fastbook\n", "import gradio as gr\n", "import fastbook\n", "fastbook.setup_book()\n", "\n" ], "metadata": { "id": "hMILOEeYgDr1" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "#export\n", "from fastbook import *\n", "from fastai.vision.widgets import *\n", "from fastai.vision.all import*" ], "metadata": { "id": "3QbNJ2dEMBU-" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "ixVR6tQvbeln", "outputId": "74679393-4857-4a43-d19a-51a5d408144d" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "200" ] }, "metadata": {}, "execution_count": 8 } ], "source": [ "#|hide\n", "ims = search_images_ddg('malignant melanoma')\n", "len(ims)" ] }, { "cell_type": "code", "source": [ "i2= ims[0]\n", "i2" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 53 }, "id": "_28w6_LzwvAl", "outputId": "4b51554d-4a9a-4a92-eacd-c53c1b2d391d" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "'https://image.slidesharecdn.com/malignantmelanoma-170408152908/95/malignant-melanoma-11-1024.jpg?cb=1491665504'" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" } }, "metadata": {}, "execution_count": 9 } ] }, { "cell_type": "code", "source": [ "!pip install fastai\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "oembHw521KQS", "outputId": "cf5263b8-9aad-424d-8d59-1f401410c10e" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: fastai in /usr/local/lib/python3.10/dist-packages (2.7.12)\n", "Requirement already satisfied: pip in /usr/local/lib/python3.10/dist-packages (from fastai) (23.1.2)\n", "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from fastai) (23.2)\n", "Requirement already satisfied: fastdownload<2,>=0.0.5 in /usr/local/lib/python3.10/dist-packages (from fastai) (0.0.7)\n", "Requirement already satisfied: fastcore<1.6,>=1.5.29 in /usr/local/lib/python3.10/dist-packages (from fastai) (1.5.29)\n", "Requirement already satisfied: torchvision>=0.8.2 in /usr/local/lib/python3.10/dist-packages (from fastai) (0.15.2+cu118)\n", "Requirement already satisfied: matplotlib in /usr/local/lib/python3.10/dist-packages (from fastai) (3.7.1)\n", "Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from fastai) (1.5.3)\n", "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from fastai) (2.31.0)\n", "Requirement already satisfied: pyyaml in /usr/local/lib/python3.10/dist-packages (from fastai) (6.0.1)\n", "Requirement already satisfied: fastprogress>=0.2.4 in /usr/local/lib/python3.10/dist-packages (from fastai) (1.0.3)\n", "Requirement already satisfied: pillow>6.0.0 in /usr/local/lib/python3.10/dist-packages (from fastai) (9.4.0)\n", "Requirement already satisfied: scikit-learn in /usr/local/lib/python3.10/dist-packages (from fastai) (1.2.2)\n", "Requirement already satisfied: scipy in /usr/local/lib/python3.10/dist-packages (from fastai) (1.11.3)\n", "Requirement already satisfied: spacy<4 in /usr/local/lib/python3.10/dist-packages (from fastai) (3.6.1)\n", "Requirement already satisfied: torch<2.1,>=1.7 in /usr/local/lib/python3.10/dist-packages (from fastai) (2.0.1+cu118)\n", "Requirement already satisfied: spacy-legacy<3.1.0,>=3.0.11 in /usr/local/lib/python3.10/dist-packages (from spacy<4->fastai) (3.0.12)\n", "Requirement already satisfied: spacy-loggers<2.0.0,>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4->fastai) (1.0.5)\n", "Requirement already satisfied: murmurhash<1.1.0,>=0.28.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4->fastai) (1.0.10)\n", "Requirement already satisfied: cymem<2.1.0,>=2.0.2 in /usr/local/lib/python3.10/dist-packages (from spacy<4->fastai) (2.0.8)\n", "Requirement already satisfied: preshed<3.1.0,>=3.0.2 in /usr/local/lib/python3.10/dist-packages (from spacy<4->fastai) (3.0.9)\n", "Requirement already satisfied: thinc<8.2.0,>=8.1.8 in /usr/local/lib/python3.10/dist-packages (from spacy<4->fastai) (8.1.12)\n", "Requirement already satisfied: wasabi<1.2.0,>=0.9.1 in /usr/local/lib/python3.10/dist-packages (from spacy<4->fastai) (1.1.2)\n", "Requirement already satisfied: srsly<3.0.0,>=2.4.3 in /usr/local/lib/python3.10/dist-packages (from spacy<4->fastai) (2.4.8)\n", "Requirement already satisfied: catalogue<2.1.0,>=2.0.6 in /usr/local/lib/python3.10/dist-packages (from spacy<4->fastai) (2.0.10)\n", "Requirement already satisfied: typer<0.10.0,>=0.3.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4->fastai) (0.9.0)\n", "Requirement already satisfied: pathy>=0.10.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4->fastai) (0.10.2)\n", "Requirement already satisfied: smart-open<7.0.0,>=5.2.1 in /usr/local/lib/python3.10/dist-packages (from spacy<4->fastai) (6.4.0)\n", "Requirement already satisfied: tqdm<5.0.0,>=4.38.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4->fastai) (4.66.1)\n", "Requirement already satisfied: numpy>=1.15.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4->fastai) (1.23.5)\n", "Requirement already satisfied: pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4 in /usr/local/lib/python3.10/dist-packages (from spacy<4->fastai) (1.10.13)\n", "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from spacy<4->fastai) (3.1.2)\n", "Requirement already satisfied: setuptools in /usr/local/lib/python3.10/dist-packages (from spacy<4->fastai) (67.7.2)\n", "Requirement already satisfied: langcodes<4.0.0,>=3.2.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4->fastai) (3.3.0)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->fastai) (3.3.0)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->fastai) (3.4)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->fastai) (2.0.6)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->fastai) (2023.7.22)\n", "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from torch<2.1,>=1.7->fastai) (3.12.4)\n", "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.10/dist-packages (from torch<2.1,>=1.7->fastai) (4.5.0)\n", "Requirement already satisfied: sympy in /usr/local/lib/python3.10/dist-packages (from torch<2.1,>=1.7->fastai) (1.12)\n", "Requirement already satisfied: networkx in /usr/local/lib/python3.10/dist-packages (from torch<2.1,>=1.7->fastai) (3.1)\n", "Requirement already satisfied: triton==2.0.0 in /usr/local/lib/python3.10/dist-packages (from torch<2.1,>=1.7->fastai) (2.0.0)\n", "Requirement already satisfied: cmake in /usr/local/lib/python3.10/dist-packages (from triton==2.0.0->torch<2.1,>=1.7->fastai) (3.27.6)\n", "Requirement already satisfied: lit in /usr/local/lib/python3.10/dist-packages (from triton==2.0.0->torch<2.1,>=1.7->fastai) (17.0.2)\n", "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->fastai) (1.1.1)\n", "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib->fastai) (0.12.0)\n", "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->fastai) (4.43.0)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->fastai) (1.4.5)\n", "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->fastai) (3.1.1)\n", "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib->fastai) (2.8.2)\n", "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->fastai) (2023.3.post1)\n", "Requirement already satisfied: joblib>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from scikit-learn->fastai) (1.3.2)\n", "Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn->fastai) (3.2.0)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7->matplotlib->fastai) (1.16.0)\n", "Requirement already satisfied: blis<0.8.0,>=0.7.8 in /usr/local/lib/python3.10/dist-packages (from thinc<8.2.0,>=8.1.8->spacy<4->fastai) (0.7.11)\n", "Requirement already satisfied: confection<1.0.0,>=0.0.1 in /usr/local/lib/python3.10/dist-packages (from thinc<8.2.0,>=8.1.8->spacy<4->fastai) (0.1.3)\n", "Requirement already satisfied: click<9.0.0,>=7.1.1 in /usr/local/lib/python3.10/dist-packages (from typer<0.10.0,>=0.3.0->spacy<4->fastai) (8.1.7)\n", "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->spacy<4->fastai) (2.1.3)\n", "Requirement already satisfied: mpmath>=0.19 in /usr/local/lib/python3.10/dist-packages (from sympy->torch<2.1,>=1.7->fastai) (1.3.0)\n" ] } ] }, { "cell_type": "code", "source": [ "from fastai.vision.all import *" ], "metadata": { "id": "h4n7m2Zs0K97" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ " print(fastai.__version__)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 176 }, "id": "37OKzxK9zzK2", "outputId": "b4ac876c-0696-4606-8571-63286d76123d" }, "execution_count": null, "outputs": [ { "output_type": "error", "ename": "NameError", "evalue": "ignored", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfastai\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__version__\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mNameError\u001b[0m: name 'fastai' is not defined" ] } ] }, { "cell_type": "code", "source": [ "im = PILImage.create('melanoma.jpeg')\n", "im.thumbnail((192,192))\n", "im" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 151 }, "id": "jTH0UP7aEZEs", "outputId": "b27bf142-1ca1-4d96-b0c6-00caef8a7ee9" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "PILImage mode=RGB size=192x134" ], "image/png": "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\n" }, "metadata": {}, "execution_count": 27 } ] }, { "cell_type": "code", "source": [ "!pip install fastai --upgrade -q\n", "from fastai.vision.widgets import *" ], "metadata": { "id": "aRl09XAqLktu" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "#|export\n", "learn = load_learned('model.pkl')" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 194 }, "id": "5kFKGaoGFHIz", "outputId": "f23c6887-585e-40a1-c2c0-63ee359e2656" }, "execution_count": null, "outputs": [ { "output_type": "error", "ename": "NameError", "evalue": "ignored", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m#|export\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mlearn\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mload_learned\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'model.pkl'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mNameError\u001b[0m: name 'load_learned' is not defined" ] } ] }, { "cell_type": "code", "source": [ "%time learn.predict(im)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 159 }, "id": "PftUxCZlFbPj", "outputId": "cde0a61f-1948-4434-f215-b937ac9512ab" }, "execution_count": null, "outputs": [ { "output_type": "error", "ename": "NameError", "evalue": "ignored", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n", "\u001b[0;31mNameError\u001b[0m: name 'learn' is not defined" ] } ] }, { "cell_type": "code", "source": [ "categories = ('Superficial spreading melanoma','Nodular melanoma','Lentigo maligna melanoma', 'Acral lentiginous melanoma','Desmoplastic melanoma')\n", "\n", "def classify_image(img):\n", " pred,idx,probs = learn.predict(img)\n", " return dict(zip(categories, map(float,probs)))" ], "metadata": { "id": "tg4b2gu_Fl_x" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "classify_image(im)" ], "metadata": { "id": "pkm8KKjtGmeM", "colab": { "base_uri": "https://localhost:8080/", "height": 280 }, "outputId": "4d71c942-e4f5-4318-dd08-29c1a7a0d143" }, "execution_count": null, "outputs": [ { "output_type": "error", "ename": "NameError", "evalue": "ignored", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mclassify_image\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mim\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\u001b[0m in \u001b[0;36mclassify_image\u001b[0;34m(img)\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mclassify_image\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mimg\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----> 4\u001b[0;31m \u001b[0mpred\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0midx\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mprobs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlearn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mimg\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 5\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mdict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mzip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcategories\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfloat\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mprobs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mNameError\u001b[0m: name 'learn' is not defined" ] } ] }, { "cell_type": "code", "source": [ "#|export\n", "image = gr.inputs.Image(shape=(192,192))\n", "label = gr.outputs.Label()\n", "examples= ['Superficial spreading melanoma','Nodular melanoma','Lentigo maligna melanoma', 'Acral lentiginous melanoma','Desmoplastic melanoma']\n", "\n", "intf = gr.Interface(fn=classify_image, inputs= image, outputs= label, examples= examples)\n", "intf.launch(inline= False)" ], "metadata": { "id": "d0caujzrG5Hr", "colab": { "base_uri": "https://localhost:8080/", "height": 550 }, "outputId": "90c7e62a-9107-46e9-9109-fbd594ff1139" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ ":2: GradioDeprecationWarning: Usage of gradio.inputs is deprecated, and will not be supported in the future, please import your component from gradio.components\n", " image = gr.inputs.Image(shape=(192,192))\n", ":2: GradioDeprecationWarning: `optional` parameter is deprecated, and it has no effect\n", " image = gr.inputs.Image(shape=(192,192))\n", ":3: GradioDeprecationWarning: Usage of gradio.outputs is deprecated, and will not be supported in the future, please import your components from gradio.components\n", " label = gr.outputs.Label()\n", ":3: GradioUnusedKwargWarning: You have unused kwarg parameters in Label, please remove them: {'type': 'auto'}\n", " label = gr.outputs.Label()\n" ] }, { "output_type": "error", "ename": "FileNotFoundError", "evalue": "ignored", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mexamples\u001b[0m\u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m'Superficial spreading melanoma'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'Nodular melanoma'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'Lentigo maligna melanoma'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'Acral lentiginous melanoma'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'Desmoplastic melanoma'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0mintf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mInterface\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfn\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mclassify_image\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minputs\u001b[0m\u001b[0;34m=\u001b[0m \u001b[0mimage\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moutputs\u001b[0m\u001b[0;34m=\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mexamples\u001b[0m\u001b[0;34m=\u001b[0m \u001b[0mexamples\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 7\u001b[0m \u001b[0mintf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlaunch\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minline\u001b[0m\u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/gradio/interface.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, fn, inputs, outputs, examples, cache_examples, examples_per_page, live, interpretation, num_shap, title, description, article, thumbnail, theme, css, allow_flagging, flagging_options, flagging_dir, flagging_callback, analytics_enabled, batch, max_batch_size, api_name, _api_mode, allow_duplication, **kwargs)\u001b[0m\n\u001b[1;32m 466\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 467\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mattach_flagging_events\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mflag_btns\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mclear_btn\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 468\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrender_examples\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 469\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrender_article\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 470\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/gradio/interface.py\u001b[0m in \u001b[0;36mrender_examples\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 816\u001b[0m \u001b[0mc\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mc\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moutput_components\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mState\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 817\u001b[0m ]\n\u001b[0;32m--> 818\u001b[0;31m self.examples_handler = Examples(\n\u001b[0m\u001b[1;32m 819\u001b[0m \u001b[0mexamples\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexamples\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 820\u001b[0m \u001b[0minputs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnon_state_inputs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;31m# type: ignore\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/gradio/helpers.py\u001b[0m in \u001b[0;36mcreate_examples\u001b[0;34m(examples, inputs, outputs, fn, cache_examples, examples_per_page, _api_mode, label, elem_id, run_on_click, preprocess, postprocess, api_name, batch)\u001b[0m\n\u001b[1;32m 56\u001b[0m ):\n\u001b[1;32m 57\u001b[0m \u001b[0;34m\"\"\"Top-level synchronous function that creates Examples. Provided for backwards compatibility, i.e. so that gr.Examples(...) can be used to create the Examples component.\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 58\u001b[0;31m examples_obj = Examples(\n\u001b[0m\u001b[1;32m 59\u001b[0m \u001b[0mexamples\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mexamples\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 60\u001b[0m \u001b[0minputs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0minputs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/gradio/helpers.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, examples, inputs, outputs, fn, cache_examples, examples_per_page, _api_mode, label, elem_id, run_on_click, preprocess, postprocess, api_name, batch, _initiated_directly)\u001b[0m\n\u001b[1;32m 207\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 208\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mutils\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_directory\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mworking_directory\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--> 209\u001b[0;31m self.processed_examples = [\n\u001b[0m\u001b[1;32m 210\u001b[0m [\n\u001b[1;32m 211\u001b[0m \u001b[0mcomponent\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpostprocess\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msample\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/gradio/helpers.py\u001b[0m in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 208\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mutils\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_directory\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mworking_directory\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 209\u001b[0m self.processed_examples = [\n\u001b[0;32m--> 210\u001b[0;31m [\n\u001b[0m\u001b[1;32m 211\u001b[0m \u001b[0mcomponent\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpostprocess\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msample\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 212\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mcomponent\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msample\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mzip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minputs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mexample\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/gradio/helpers.py\u001b[0m in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 209\u001b[0m self.processed_examples = [\n\u001b[1;32m 210\u001b[0m [\n\u001b[0;32m--> 211\u001b[0;31m \u001b[0mcomponent\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpostprocess\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msample\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 212\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mcomponent\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msample\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mzip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minputs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mexample\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 213\u001b[0m ]\n", "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/gradio/components/image.py\u001b[0m in \u001b[0;36mpostprocess\u001b[0;34m(self, y)\u001b[0m\n\u001b[1;32m 299\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mprocessing_utils\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mencode_pil_to_base64\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 300\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mstr\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[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 301\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mclient_utils\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mencode_url_or_file_to_base64\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my\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 302\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 303\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Cannot process this value as an Image\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/gradio_client/utils.py\u001b[0m in \u001b[0;36mencode_url_or_file_to_base64\u001b[0;34m(path)\u001b[0m\n\u001b[1;32m 398\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mis_http_url_like\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[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 399\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mencode_url_to_base64\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[0;32m--> 400\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mencode_file_to_base64\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[0m\u001b[1;32m 401\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 402\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/gradio_client/utils.py\u001b[0m in \u001b[0;36mencode_file_to_base64\u001b[0;34m(f)\u001b[0m\n\u001b[1;32m 371\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 372\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mencode_file_to_base64\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mstr\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[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 373\u001b[0;31m \u001b[0;32mwith\u001b[0m \u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"rb\"\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mfile\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 374\u001b[0m \u001b[0mencoded_string\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mbase64\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mb64encode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfile\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 375\u001b[0m \u001b[0mbase64_str\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mencoded_string\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"utf-8\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'Superficial spreading melanoma'" ] } ] }, { "cell_type": "code", "source": [ "m = learn.model" ], "metadata": { "id": "PudncHIYHluI", "colab": { "base_uri": "https://localhost:8080/", "height": 176 }, "outputId": "3cfa520f-ac1a-4f54-ed10-d990b31589bb" }, "execution_count": null, "outputs": [ { "output_type": "error", "ename": "NameError", "evalue": "ignored", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlearn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mNameError\u001b[0m: name 'learn' is not defined" ] } ] }, { "cell_type": "code", "source": [ "!pip install nbdev" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "skyhZI_qJGdM", "outputId": "d25bdb80-df6d-4810-f38a-17d2969f8dbc" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: nbdev in /usr/local/lib/python3.10/dist-packages (2.3.12)\n", "Requirement already satisfied: fastcore>=1.5.27 in /usr/local/lib/python3.10/dist-packages (from nbdev) (1.5.29)\n", "Requirement already satisfied: execnb>=0.1.4 in /usr/local/lib/python3.10/dist-packages (from nbdev) (0.1.5)\n", "Requirement already satisfied: astunparse in /usr/local/lib/python3.10/dist-packages (from nbdev) (1.6.3)\n", "Requirement already satisfied: ghapi>=1.0.3 in /usr/local/lib/python3.10/dist-packages (from nbdev) (1.0.4)\n", "Requirement already satisfied: watchdog in /usr/local/lib/python3.10/dist-packages (from nbdev) (3.0.0)\n", "Requirement already satisfied: asttokens in /usr/local/lib/python3.10/dist-packages (from nbdev) (2.4.0)\n", "Requirement already satisfied: PyYAML in /usr/local/lib/python3.10/dist-packages (from nbdev) (6.0.1)\n", "Requirement already satisfied: ipython in /usr/local/lib/python3.10/dist-packages (from execnb>=0.1.4->nbdev) (7.34.0)\n", "Requirement already satisfied: pip in /usr/local/lib/python3.10/dist-packages (from fastcore>=1.5.27->nbdev) (23.1.2)\n", "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from fastcore>=1.5.27->nbdev) (23.2)\n", "Requirement already satisfied: six>=1.12.0 in /usr/local/lib/python3.10/dist-packages (from asttokens->nbdev) (1.16.0)\n", "Requirement already satisfied: wheel<1.0,>=0.23.0 in /usr/local/lib/python3.10/dist-packages (from astunparse->nbdev) (0.41.2)\n", "Requirement already satisfied: setuptools>=18.5 in /usr/local/lib/python3.10/dist-packages (from ipython->execnb>=0.1.4->nbdev) (67.7.2)\n", "Requirement already satisfied: jedi>=0.16 in /usr/local/lib/python3.10/dist-packages (from ipython->execnb>=0.1.4->nbdev) (0.19.1)\n", "Requirement already satisfied: decorator in /usr/local/lib/python3.10/dist-packages (from ipython->execnb>=0.1.4->nbdev) (4.4.2)\n", "Requirement already satisfied: pickleshare in /usr/local/lib/python3.10/dist-packages (from ipython->execnb>=0.1.4->nbdev) (0.7.5)\n", "Requirement already satisfied: traitlets>=4.2 in /usr/local/lib/python3.10/dist-packages (from ipython->execnb>=0.1.4->nbdev) (5.7.1)\n", "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from ipython->execnb>=0.1.4->nbdev) (3.0.39)\n", "Requirement already satisfied: pygments in /usr/local/lib/python3.10/dist-packages (from ipython->execnb>=0.1.4->nbdev) (2.16.1)\n", "Requirement already satisfied: backcall in /usr/local/lib/python3.10/dist-packages (from ipython->execnb>=0.1.4->nbdev) (0.2.0)\n", "Requirement already satisfied: matplotlib-inline in /usr/local/lib/python3.10/dist-packages (from ipython->execnb>=0.1.4->nbdev) (0.1.6)\n", "Requirement already satisfied: pexpect>4.3 in /usr/local/lib/python3.10/dist-packages (from ipython->execnb>=0.1.4->nbdev) (4.8.0)\n", "Requirement already satisfied: parso<0.9.0,>=0.8.3 in /usr/local/lib/python3.10/dist-packages (from jedi>=0.16->ipython->execnb>=0.1.4->nbdev) (0.8.3)\n", "Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.10/dist-packages (from pexpect>4.3->ipython->execnb>=0.1.4->nbdev) (0.7.0)\n", "Requirement already satisfied: wcwidth in /usr/local/lib/python3.10/dist-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython->execnb>=0.1.4->nbdev) (0.2.8)\n" ] } ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "h4UAbjAu4Yxi", "colab": { "base_uri": "https://localhost:8080/", "height": 356 }, "outputId": "29da35f4-a689-4f90-da10-32190d125f6e" }, "outputs": [ { "output_type": "error", "ename": "FileNotFoundError", "evalue": "ignored", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mnbdev\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mnbdev\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexport\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnb_export\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'app.ipynb'\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 3\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Export successful'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/nbdev/export.py\u001b[0m in \u001b[0;36mnb_export\u001b[0;34m(nbname, lib_path, procs, debug, mod_maker, name)\u001b[0m\n\u001b[1;32m 46\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlib_path\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mlib_path\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_config\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlib_path\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 47\u001b[0m \u001b[0mexp\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mExportModuleProc\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---> 48\u001b[0;31m \u001b[0mnb\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mNBProcessor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnbname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mexp\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0mL\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprocs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdebug\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdebug\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 49\u001b[0m \u001b[0mnb\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprocess\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 50\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mmod\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mcells\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mexp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmodules\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/nbdev/process.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, path, procs, nb, debug, rm_directives, process)\u001b[0m\n\u001b[1;32m 90\u001b[0m \u001b[0;34m\"Process cells and nbdev comments in a notebook\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 91\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__init__\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[0mprocs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnb\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdebug\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrm_directives\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mprocess\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\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---> 92\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnb\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mread_nb\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mnb\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0mnb\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 93\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlang\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnb_lang\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 94\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mcell\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnb\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcells\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mcell\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdirectives_\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mextract_directives\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcell\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mremove\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mrm_directives\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlang\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlang\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/execnb/nbio.py\u001b[0m in \u001b[0;36mread_nb\u001b[0;34m(path)\u001b[0m\n\u001b[1;32m 55\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mread_nb\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[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 56\u001b[0m \u001b[0;34m\"Return notebook at `path`\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 57\u001b[0;31m \u001b[0mres\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdict2nb\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_read_json\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mencoding\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'utf-8'\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 58\u001b[0m \u001b[0mres\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'path_'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstr\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 59\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mres\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/execnb/nbio.py\u001b[0m in \u001b[0;36m_read_json\u001b[0;34m(self, encoding, errors)\u001b[0m\n\u001b[1;32m 14\u001b[0m \u001b[0;31m# %% ../nbs/01_nbio.ipynb 6\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_read_json\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mencoding\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merrors\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---> 16\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mloads\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mPath\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_text\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mencoding\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mencoding\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0merrors\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 17\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 18\u001b[0m \u001b[0;31m# %% ../nbs/01_nbio.ipynb 13\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/lib/python3.10/pathlib.py\u001b[0m in \u001b[0;36mread_text\u001b[0;34m(self, encoding, errors)\u001b[0m\n\u001b[1;32m 1132\u001b[0m \"\"\"\n\u001b[1;32m 1133\u001b[0m \u001b[0mencoding\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mio\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtext_encoding\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mencoding\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1134\u001b[0;31m \u001b[0;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmode\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'r'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mencoding\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mencoding\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0merrors\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mf\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 1135\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\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 1136\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/lib/python3.10/pathlib.py\u001b[0m in \u001b[0;36mopen\u001b[0;34m(self, mode, buffering, encoding, errors, newline)\u001b[0m\n\u001b[1;32m 1117\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m\"b\"\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mmode\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1118\u001b[0m \u001b[0mencoding\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mio\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtext_encoding\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mencoding\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1119\u001b[0;31m return self._accessor.open(self, mode, buffering, encoding, errors,\n\u001b[0m\u001b[1;32m 1120\u001b[0m newline)\n\u001b[1;32m 1121\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'app.ipynb'" ] } ], "source": [ "import nbdev\n", "nbdev.export.nb_export('app.ipynb', './')\n", "print('Export successful')" ] }, { "cell_type": "code", "source": [ "notebook2script('app.ipynb')" ], "metadata": { "id": "cFb-BZmaIsth" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [], "metadata": { "id": "sJT8fCtVI2A_" }, "execution_count": null, "outputs": [] } ], "metadata": { "accelerator": "GPU", "colab": { "provenance": [] }, "gpuClass": "standard", "jupytext": { "split_at_heading": true }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 0 }