{ "cells": [ { "cell_type": "code", "execution_count": 26, "id": "ae753324-c23d-4011-869e-99ffc64bafd8", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Collecting git+https://github.com/huggingface/huggingface_hub (from -r requirements.txt (line 2))\n", " Cloning https://github.com/huggingface/huggingface_hub to /tmp/pip-req-build-68x_4ir0\n", " Running command git clone --filter=blob:none --quiet https://github.com/huggingface/huggingface_hub /tmp/pip-req-build-68x_4ir0\n", " Resolved https://github.com/huggingface/huggingface_hub to commit 2702ec2a2bd0124cc1fddfd72ccb1297b2478148\n", " Installing build dependencies ... \u001b[?2done\n", "\u001b[?25h Getting requirements to build wheel ... \u001b[?25ldone\n", "\u001b[?25h Preparing metadata (pyproject.toml) ... \u001b[?25ldone\n", "\u001b[?25hRequirement already satisfied: fastai in /home/mhnid/miniforge3/lib/python3.12/site-packages (from -r requirements.txt (line 1)) (2.7.18)\n", "Requirement already satisfied: gradio in /home/mhnid/miniforge3/lib/python3.12/site-packages (from -r requirements.txt (line 3)) (5.9.1)\n", "Requirement already satisfied: pip in /home/mhnid/miniforge3/lib/python3.12/site-packages (from fastai->-r requirements.txt (line 1)) (24.3.1)\n", "Requirement already satisfied: packaging in /home/mhnid/miniforge3/lib/python3.12/site-packages (from fastai->-r requirements.txt (line 1)) (24.2)\n", "Requirement already satisfied: fastdownload<2,>=0.0.5 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from fastai->-r requirements.txt (line 1)) (0.0.7)\n", "Requirement already satisfied: fastcore<1.8,>=1.5.29 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from fastai->-r requirements.txt (line 1)) (1.7.20)\n", "Requirement already satisfied: torchvision>=0.11 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from fastai->-r requirements.txt (line 1)) (0.20.1)\n", "Requirement already satisfied: matplotlib in /home/mhnid/miniforge3/lib/python3.12/site-packages (from fastai->-r requirements.txt (line 1)) (3.10.0)\n", "Requirement already satisfied: pandas in /home/mhnid/miniforge3/lib/python3.12/site-packages (from fastai->-r requirements.txt (line 1)) (2.2.3)\n", "Requirement already satisfied: requests in /home/mhnid/miniforge3/lib/python3.12/site-packages (from fastai->-r requirements.txt (line 1)) (2.32.3)\n", "Requirement already satisfied: pyyaml in /home/mhnid/miniforge3/lib/python3.12/site-packages (from fastai->-r requirements.txt (line 1)) (6.0.2)\n", "Requirement already satisfied: fastprogress>=0.2.4 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from fastai->-r requirements.txt (line 1)) (1.0.3)\n", "Requirement already satisfied: pillow>=9.0.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from fastai->-r requirements.txt (line 1)) (11.1.0)\n", "Requirement already satisfied: scikit-learn in /home/mhnid/miniforge3/lib/python3.12/site-packages (from fastai->-r requirements.txt (line 1)) (1.6.0)\n", "Requirement already satisfied: scipy in /home/mhnid/miniforge3/lib/python3.12/site-packages (from fastai->-r requirements.txt (line 1)) (1.15.0)\n", "Requirement already satisfied: spacy<4 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from fastai->-r requirements.txt (line 1)) (3.8.2)\n", "Requirement already satisfied: torch<2.6,>=1.10 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from fastai->-r requirements.txt (line 1)) (2.5.1.post207)\n", "Requirement already satisfied: filelock in /home/mhnid/miniforge3/lib/python3.12/site-packages (from huggingface_hub==0.27.0.dev0->-r requirements.txt (line 2)) (3.16.1)\n", "Requirement already satisfied: fsspec>=2023.5.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from huggingface_hub==0.27.0.dev0->-r requirements.txt (line 2)) (2024.12.0)\n", "Requirement already satisfied: tqdm>=4.42.1 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from huggingface_hub==0.27.0.dev0->-r requirements.txt (line 2)) (4.67.1)\n", "Requirement already satisfied: typing-extensions>=3.7.4.3 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from huggingface_hub==0.27.0.dev0->-r requirements.txt (line 2)) (4.12.2)\n", "Requirement already satisfied: aiofiles<24.0,>=22.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from gradio->-r requirements.txt (line 3)) (23.2.1)\n", "Requirement already satisfied: anyio<5.0,>=3.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from gradio->-r requirements.txt (line 3)) (4.8.0)\n", "Requirement already satisfied: fastapi<1.0,>=0.115.2 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from gradio->-r requirements.txt (line 3)) (0.115.6)\n", "Requirement already satisfied: ffmpy in /home/mhnid/miniforge3/lib/python3.12/site-packages (from gradio->-r requirements.txt (line 3)) (0.5.0)\n", "Requirement already satisfied: gradio-client==1.5.2 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from gradio->-r requirements.txt (line 3)) (1.5.2)\n", "Requirement already satisfied: httpx>=0.24.1 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from gradio->-r requirements.txt (line 3)) (0.28.1)\n", "Requirement already satisfied: jinja2<4.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from gradio->-r requirements.txt (line 3)) (3.1.5)\n", "Requirement already satisfied: markupsafe~=2.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from gradio->-r requirements.txt (line 3)) (2.1.5)\n", "Requirement already satisfied: numpy<3.0,>=1.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from gradio->-r requirements.txt (line 3)) (2.2.1)\n", "Requirement already satisfied: orjson~=3.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from gradio->-r requirements.txt (line 3)) (3.10.13)\n", "Requirement already satisfied: pydantic>=2.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from gradio->-r requirements.txt (line 3)) (2.10.4)\n", "Requirement already satisfied: pydub in /home/mhnid/miniforge3/lib/python3.12/site-packages (from gradio->-r requirements.txt (line 3)) (0.25.1)\n", "Requirement already satisfied: python-multipart>=0.0.18 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from gradio->-r requirements.txt (line 3)) (0.0.20)\n", "Requirement already satisfied: ruff>=0.2.2 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from gradio->-r requirements.txt (line 3)) (0.8.6)\n", "Requirement already satisfied: safehttpx<0.2.0,>=0.1.6 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from gradio->-r requirements.txt (line 3)) (0.1.6)\n", "Requirement already satisfied: semantic-version~=2.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from gradio->-r requirements.txt (line 3)) (2.10.0)\n", "Requirement already satisfied: starlette<1.0,>=0.40.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from gradio->-r requirements.txt (line 3)) (0.41.3)\n", "Requirement already satisfied: tomlkit<0.14.0,>=0.12.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from gradio->-r requirements.txt (line 3)) (0.13.2)\n", "Requirement already satisfied: typer<1.0,>=0.12 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from gradio->-r requirements.txt (line 3)) (0.15.1)\n", "Requirement already satisfied: uvicorn>=0.14.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from gradio->-r requirements.txt (line 3)) (0.34.0)\n", "Requirement already satisfied: websockets<15.0,>=10.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from gradio-client==1.5.2->gradio->-r requirements.txt (line 3)) (14.1)\n", "Requirement already satisfied: idna>=2.8 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from anyio<5.0,>=3.0->gradio->-r requirements.txt (line 3)) (3.10)\n", "Requirement already satisfied: sniffio>=1.1 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from anyio<5.0,>=3.0->gradio->-r requirements.txt (line 3)) (1.3.1)\n", "Requirement already satisfied: certifi in /home/mhnid/miniforge3/lib/python3.12/site-packages (from httpx>=0.24.1->gradio->-r requirements.txt (line 3)) (2024.12.14)\n", "Requirement already satisfied: httpcore==1.* in /home/mhnid/miniforge3/lib/python3.12/site-packages (from httpx>=0.24.1->gradio->-r requirements.txt (line 3)) (1.0.7)\n", "Requirement already satisfied: h11<0.15,>=0.13 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from httpcore==1.*->httpx>=0.24.1->gradio->-r requirements.txt (line 3)) (0.14.0)\n", "Requirement already satisfied: python-dateutil>=2.8.2 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from pandas->fastai->-r requirements.txt (line 1)) (2.9.0.post0)\n", "Requirement already satisfied: pytz>=2020.1 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from pandas->fastai->-r requirements.txt (line 1)) (2024.1)\n", "Requirement already satisfied: tzdata>=2022.7 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from pandas->fastai->-r requirements.txt (line 1)) (2024.2)\n", "Requirement already satisfied: annotated-types>=0.6.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from pydantic>=2.0->gradio->-r requirements.txt (line 3)) (0.7.0)\n", "Requirement already satisfied: pydantic-core==2.27.2 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from pydantic>=2.0->gradio->-r requirements.txt (line 3)) (2.27.2)\n", "Requirement already satisfied: spacy-legacy<3.1.0,>=3.0.11 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from spacy<4->fastai->-r requirements.txt (line 1)) (3.0.12)\n", "Requirement already satisfied: spacy-loggers<2.0.0,>=1.0.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from spacy<4->fastai->-r requirements.txt (line 1)) (1.0.5)\n", "Requirement already satisfied: murmurhash<1.1.0,>=0.28.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from spacy<4->fastai->-r requirements.txt (line 1)) (1.0.10)\n", "Requirement already satisfied: cymem<2.1.0,>=2.0.2 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from spacy<4->fastai->-r requirements.txt (line 1)) (2.0.10)\n", "Requirement already satisfied: preshed<3.1.0,>=3.0.2 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from spacy<4->fastai->-r requirements.txt (line 1)) (3.0.9)\n", "Requirement already satisfied: thinc<8.4.0,>=8.3.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from spacy<4->fastai->-r requirements.txt (line 1)) (8.3.2)\n", "Requirement already satisfied: wasabi<1.2.0,>=0.9.1 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from spacy<4->fastai->-r requirements.txt (line 1)) (1.1.2)\n", "Requirement already satisfied: srsly<3.0.0,>=2.4.3 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from spacy<4->fastai->-r requirements.txt (line 1)) (2.4.8)\n", "Requirement already satisfied: catalogue<2.1.0,>=2.0.6 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from spacy<4->fastai->-r requirements.txt (line 1)) (2.0.10)\n", "Requirement already satisfied: weasel<0.5.0,>=0.1.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from spacy<4->fastai->-r requirements.txt (line 1)) (0.4.1)\n", "Requirement already satisfied: setuptools in /home/mhnid/miniforge3/lib/python3.12/site-packages (from spacy<4->fastai->-r requirements.txt (line 1)) (75.7.0)\n", "Requirement already satisfied: langcodes<4.0.0,>=3.2.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from spacy<4->fastai->-r requirements.txt (line 1)) (3.4.1)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from requests->fastai->-r requirements.txt (line 1)) (3.4.1)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from requests->fastai->-r requirements.txt (line 1)) (2.3.0)\n", "Requirement already satisfied: sympy!=1.13.2,>=1.13.1 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from torch<2.6,>=1.10->fastai->-r requirements.txt (line 1)) (1.13.3)\n", "Requirement already satisfied: networkx in /home/mhnid/miniforge3/lib/python3.12/site-packages (from torch<2.6,>=1.10->fastai->-r requirements.txt (line 1)) (3.4.2)\n", "Requirement already satisfied: click>=8.0.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from typer<1.0,>=0.12->gradio->-r requirements.txt (line 3)) (8.1.8)\n", "Requirement already satisfied: shellingham>=1.3.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from typer<1.0,>=0.12->gradio->-r requirements.txt (line 3)) (1.5.4)\n", "Requirement already satisfied: rich>=10.11.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from typer<1.0,>=0.12->gradio->-r requirements.txt (line 3)) (13.9.4)\n", "Requirement already satisfied: contourpy>=1.0.1 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from matplotlib->fastai->-r requirements.txt (line 1)) (1.3.1)\n", "Requirement already satisfied: cycler>=0.10 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from matplotlib->fastai->-r requirements.txt (line 1)) (0.12.1)\n", "Requirement already satisfied: fonttools>=4.22.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from matplotlib->fastai->-r requirements.txt (line 1)) (4.55.3)\n", "Requirement already satisfied: kiwisolver>=1.3.1 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from matplotlib->fastai->-r requirements.txt (line 1)) (1.4.7)\n", "Requirement already satisfied: pyparsing>=2.3.1 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from matplotlib->fastai->-r requirements.txt (line 1)) (3.2.1)\n", "Requirement already satisfied: joblib>=1.2.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from scikit-learn->fastai->-r requirements.txt (line 1)) (1.4.2)\n", "Requirement already satisfied: threadpoolctl>=3.1.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from scikit-learn->fastai->-r requirements.txt (line 1)) (3.5.0)\n", "Requirement already satisfied: language-data>=1.2 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from langcodes<4.0.0,>=3.2.0->spacy<4->fastai->-r requirements.txt (line 1)) (1.3.0)\n", "Requirement already satisfied: six>=1.5 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from python-dateutil>=2.8.2->pandas->fastai->-r requirements.txt (line 1)) (1.17.0)\n", "Requirement already satisfied: markdown-it-py>=2.2.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from rich>=10.11.0->typer<1.0,>=0.12->gradio->-r requirements.txt (line 3)) (3.0.0)\n", "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from rich>=10.11.0->typer<1.0,>=0.12->gradio->-r requirements.txt (line 3)) (2.19.1)\n", "Requirement already satisfied: mpmath<1.4,>=1.1.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from sympy!=1.13.2,>=1.13.1->torch<2.6,>=1.10->fastai->-r requirements.txt (line 1)) (1.3.0)\n", "Requirement already satisfied: blis<1.1.0,>=1.0.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from thinc<8.4.0,>=8.3.0->spacy<4->fastai->-r requirements.txt (line 1)) (1.0.1)\n", "Requirement already satisfied: confection<1.0.0,>=0.0.1 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from thinc<8.4.0,>=8.3.0->spacy<4->fastai->-r requirements.txt (line 1)) (0.1.4)\n", "Requirement already satisfied: cloudpathlib<1.0.0,>=0.7.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from weasel<0.5.0,>=0.1.0->spacy<4->fastai->-r requirements.txt (line 1)) (0.20.0)\n", "Requirement already satisfied: smart-open<8.0.0,>=5.2.1 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from weasel<0.5.0,>=0.1.0->spacy<4->fastai->-r requirements.txt (line 1)) (7.1.0)\n", "Requirement already satisfied: marisa-trie>=1.1.0 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from language-data>=1.2->langcodes<4.0.0,>=3.2.0->spacy<4->fastai->-r requirements.txt (line 1)) (1.2.1)\n", "Requirement already satisfied: mdurl~=0.1 in /home/mhnid/miniforge3/lib/python3.12/site-packages (from markdown-it-py>=2.2.0->rich>=10.11.0->typer<1.0,>=0.12->gradio->-r requirements.txt (line 3)) (0.1.2)\n", "Requirement already satisfied: wrapt in /home/mhnid/miniforge3/lib/python3.12/site-packages (from smart-open<8.0.0,>=5.2.1->weasel<0.5.0,>=0.1.0->spacy<4->fastai->-r requirements.txt (line 1)) (1.17.0)\n" ] } ], "source": [ "# Install dependencies from requirements.txt\n", "!pip install -r requirements.txt" ] }, { "cell_type": "code", "execution_count": 27, "id": "44eb0ad3", "metadata": {}, "outputs": [], "source": [ "#export\n", "from fastai.vision.all import *\n", "from huggingface_hub import push_to_hub_fastai, from_pretrained_fastai\n", "import gradio as gr\n", "\n", "def is_cat(x): return x[0].isupper()" ] }, { "cell_type": "code", "execution_count": 28, "id": "d838c0b3", "metadata": {}, "outputs": [], "source": [ "path = untar_data(URLs.PETS)/'images'\n", "\n", "dls = ImageDataLoaders.from_name_func('.',\n", " get_image_files(path), valid_pct=0.2, seed=42,\n", " label_func=is_cat,\n", " item_tfms=Resize(192, method='squish'))" ] }, { "cell_type": "code", "execution_count": 29, "id": "c107f724", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_losserror_ratetime
00.2037320.1073360.03180000:04
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_losserror_ratetime
00.0675460.0752720.02232700:04
10.0404200.0425280.01217900:04
20.0152380.0413410.01353200:04
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "learn = vision_learner(dls, resnet18, metrics=error_rate)\n", "learn.fine_tune(3)" ] }, { "cell_type": "code", "execution_count": 30, "id": "5171c7fc", "metadata": {}, "outputs": [], "source": [ "#push_to_hub_fastai(learn, \"fastai/identify_dog_cat\", token=\"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\")\n", "#The token no longer exists for security sake\n", "learn.export('model.pkl')" ] }, { "cell_type": "code", "execution_count": 37, "id": "3295ef11", "metadata": {}, "outputs": [ { "data": { "image/jpeg": "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", "image/png": "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", "text/plain": [ "PILImage mode=RGB size=192x153" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "im = PILImage.create('dunno.jpg')\n", "im.thumbnail((192,192))\n", "im" ] }, { "cell_type": "code", "execution_count": 38, "id": "ae2bc6ac", "metadata": {}, "outputs": [], "source": [ "#export\n", "#learn = from_pretrained_fastai(\"fastai/cat_or_dog\")\n", "learn = load_learner('model.pkl')" ] }, { "cell_type": "code", "execution_count": 39, "id": "6e0bf9da", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "('False', tensor(0), tensor([9.9980e-01, 1.9651e-04]))" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "learn.predict(im)" ] }, { "cell_type": "code", "execution_count": 63, "id": "0419ed3a", "metadata": {}, "outputs": [], "source": [ "#export\n", "categories = ('Dog', 'Cat')\n", "\n", "from PIL import Image\n", "import numpy as np\n", "\n", "def classify_image(image):\n", " # Check if the input is a NumPy array (Gradio web interface)\n", " if isinstance(image, np.ndarray):\n", " # Convert NumPy array to a Pillow image\n", " img = Image.fromarray(image.astype('uint8'))\n", " else:\n", " # Otherwise, assume it's already a Pillow image\n", " img = image\n", " \n", " # Resize the image\n", " img = img.resize((192, 192))\n", " pred,idx,probs = learn.predict(img)\n", " return dict(zip(categories, map(float,probs)))" ] }, { "cell_type": "code", "execution_count": 64, "id": "762dec00", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "{'Dog': 0.9997860789299011, 'Cat': 0.00021398466196842492}" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "classify_image(im)" ] }, { "cell_type": "code", "execution_count": 65, "id": "0518a30a", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "* Running on local URL: http://127.0.0.1:7865\n", "\n", "To create a public link, set `share=True` in `launch()`.\n" ] }, { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#export\n", "image = gr.Image()\n", "label = gr.Label()\n", "examples = ['dog.jpg', 'cat.jpg', 'dunno.jpg']\n", "\n", "intf = gr.Interface(fn=classify_image, inputs=image, outputs=label, examples=examples)\n", "intf.launch()" ] }, { "cell_type": "code", "execution_count": 66, "id": "103be39f", "metadata": {}, "outputs": [], "source": [ "import requests,base64\n", "from PIL import Image\n", "from io import BytesIO" ] }, { "cell_type": "code", "execution_count": 67, "id": "fd962acc", "metadata": {}, "outputs": [], "source": [ "def data_url(filename, size=(192,192)):\n", " image = PILImage.create(filename)\n", " image.thumbnail(size)\n", " buff = BytesIO()\n", " image.save(buff, format=\"JPEG\")\n", " prefix = f'data:image/{Path(filename).suffix[1:]};base64,'\n", " return prefix + base64.b64encode(buff.getvalue()).decode('utf-8')" ] }, { "cell_type": "code", "execution_count": 68, "id": "a55f921b", "metadata": { "scrolled": true }, "outputs": [ { "ename": "JSONDecodeError", "evalue": "Expecting value: line 1 column 1 (char 0)", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mJSONDecodeError\u001b[0m Traceback (most recent call last)", "File \u001b[0;32m~/miniforge3/lib/python3.12/site-packages/requests/models.py:974\u001b[0m, in \u001b[0;36mResponse.json\u001b[0;34m(self, **kwargs)\u001b[0m\n\u001b[1;32m 973\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 974\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mcomplexjson\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mloads\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtext\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 975\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m JSONDecodeError \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 976\u001b[0m \u001b[38;5;66;03m# Catch JSON-related errors and raise as requests.JSONDecodeError\u001b[39;00m\n\u001b[1;32m 977\u001b[0m \u001b[38;5;66;03m# This aliases json.JSONDecodeError and simplejson.JSONDecodeError\u001b[39;00m\n", "File \u001b[0;32m~/miniforge3/lib/python3.12/json/__init__.py:346\u001b[0m, in \u001b[0;36mloads\u001b[0;34m(s, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)\u001b[0m\n\u001b[1;32m 343\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m (\u001b[38;5;28mcls\u001b[39m \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m object_hook \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m\n\u001b[1;32m 344\u001b[0m parse_int \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m parse_float \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m\n\u001b[1;32m 345\u001b[0m parse_constant \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m object_pairs_hook \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m kw):\n\u001b[0;32m--> 346\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_default_decoder\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdecode\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 347\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mcls\u001b[39m \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n", "File \u001b[0;32m~/miniforge3/lib/python3.12/json/decoder.py:338\u001b[0m, in \u001b[0;36mJSONDecoder.decode\u001b[0;34m(self, s, _w)\u001b[0m\n\u001b[1;32m 334\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Return the Python representation of ``s`` (a ``str`` instance\u001b[39;00m\n\u001b[1;32m 335\u001b[0m \u001b[38;5;124;03mcontaining a JSON document).\u001b[39;00m\n\u001b[1;32m 336\u001b[0m \n\u001b[1;32m 337\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m--> 338\u001b[0m obj, end \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mraw_decode\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43midx\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_w\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mend\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 339\u001b[0m end \u001b[38;5;241m=\u001b[39m _w(s, end)\u001b[38;5;241m.\u001b[39mend()\n", "File \u001b[0;32m~/miniforge3/lib/python3.12/json/decoder.py:356\u001b[0m, in \u001b[0;36mJSONDecoder.raw_decode\u001b[0;34m(self, s, idx)\u001b[0m\n\u001b[1;32m 355\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mStopIteration\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n\u001b[0;32m--> 356\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m JSONDecodeError(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mExpecting value\u001b[39m\u001b[38;5;124m\"\u001b[39m, s, err\u001b[38;5;241m.\u001b[39mvalue) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 357\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m obj, end\n", "\u001b[0;31mJSONDecodeError\u001b[0m: Expecting value: line 1 column 1 (char 0)", "\nDuring handling of the above exception, another exception occurred:\n", "\u001b[0;31mJSONDecodeError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[68], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m data \u001b[38;5;241m=\u001b[39m {\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdata\u001b[39m\u001b[38;5;124m\"\u001b[39m: [data_url(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mcat.jpg\u001b[39m\u001b[38;5;124m'\u001b[39m)]}\n\u001b[0;32m----> 2\u001b[0m res \u001b[38;5;241m=\u001b[39m \u001b[43mrequests\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpost\u001b[49m\u001b[43m(\u001b[49m\u001b[43murl\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mhttps://hf.space/embed/jph00/testing/+/api/predict/\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mjson\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdata\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mjson\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3\u001b[0m res\n", "File \u001b[0;32m~/miniforge3/lib/python3.12/site-packages/requests/models.py:978\u001b[0m, in \u001b[0;36mResponse.json\u001b[0;34m(self, **kwargs)\u001b[0m\n\u001b[1;32m 974\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m complexjson\u001b[38;5;241m.\u001b[39mloads(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtext, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[1;32m 975\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m JSONDecodeError \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 976\u001b[0m \u001b[38;5;66;03m# Catch JSON-related errors and raise as requests.JSONDecodeError\u001b[39;00m\n\u001b[1;32m 977\u001b[0m \u001b[38;5;66;03m# This aliases json.JSONDecodeError and simplejson.JSONDecodeError\u001b[39;00m\n\u001b[0;32m--> 978\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m RequestsJSONDecodeError(e\u001b[38;5;241m.\u001b[39mmsg, e\u001b[38;5;241m.\u001b[39mdoc, e\u001b[38;5;241m.\u001b[39mpos)\n", "\u001b[0;31mJSONDecodeError\u001b[0m: Expecting value: line 1 column 1 (char 0)" ] } ], "source": [ "data = {\"data\": [data_url('cat.jpg')]}\n", "res = requests.post(url='https://hf.space/embed/jph00/testing/+/api/predict/', json=data).json()\n", "res" ] }, { "cell_type": "code", "execution_count": null, "id": "82774c08", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "8c3fc18e-301c-467a-aef5-5095d1884209", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.8" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": false, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 5 }