{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"#/default_exp app"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Collecting fastai\n",
" Using cached fastai-2.7.14-py3-none-any.whl.metadata (9.1 kB)\n",
"Requirement already satisfied: pip in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from fastai) (23.3.1)\n",
"Requirement already satisfied: packaging in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from fastai) (23.1)\n",
"Collecting fastdownload<2,>=0.0.5 (from fastai)\n",
" Using cached fastdownload-0.0.7-py3-none-any.whl.metadata (5.5 kB)\n",
"Collecting fastcore<1.6,>=1.5.29 (from fastai)\n",
" Using cached fastcore-1.5.29-py3-none-any.whl.metadata (3.5 kB)\n",
"Collecting torchvision>=0.11 (from fastai)\n",
" Downloading torchvision-0.17.1-cp312-cp312-macosx_11_0_arm64.whl.metadata (6.6 kB)\n",
"Collecting matplotlib (from fastai)\n",
" Downloading matplotlib-3.8.3-cp312-cp312-macosx_11_0_arm64.whl.metadata (5.8 kB)\n",
"Collecting pandas (from fastai)\n",
" Downloading pandas-2.2.1-cp312-cp312-macosx_11_0_arm64.whl.metadata (19 kB)\n",
"Requirement already satisfied: requests in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from fastai) (2.31.0)\n",
"Collecting pyyaml (from fastai)\n",
" Downloading PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl.metadata (2.1 kB)\n",
"Collecting fastprogress>=0.2.4 (from fastai)\n",
" Using cached fastprogress-1.0.3-py3-none-any.whl.metadata (5.6 kB)\n",
"Collecting pillow>=9.0.0 (from fastai)\n",
" Downloading pillow-10.2.0-cp312-cp312-macosx_11_0_arm64.whl.metadata (9.7 kB)\n",
"Collecting scikit-learn (from fastai)\n",
" Downloading scikit_learn-1.4.1.post1-cp312-cp312-macosx_12_0_arm64.whl.metadata (11 kB)\n",
"Collecting scipy (from fastai)\n",
" Downloading scipy-1.12.0-cp312-cp312-macosx_12_0_arm64.whl.metadata (217 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m217.9/217.9 kB\u001b[0m \u001b[31m8.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hCollecting spacy<4 (from fastai)\n",
" Downloading spacy-3.7.4-cp312-cp312-macosx_11_0_arm64.whl.metadata (27 kB)\n",
"Collecting torch<2.3,>=1.10 (from fastai)\n",
" Downloading torch-2.2.1-cp312-none-macosx_11_0_arm64.whl.metadata (25 kB)\n",
"Collecting spacy-legacy<3.1.0,>=3.0.11 (from spacy<4->fastai)\n",
" Downloading spacy_legacy-3.0.12-py2.py3-none-any.whl.metadata (2.8 kB)\n",
"Collecting spacy-loggers<2.0.0,>=1.0.0 (from spacy<4->fastai)\n",
" Downloading spacy_loggers-1.0.5-py3-none-any.whl.metadata (23 kB)\n",
"Collecting murmurhash<1.1.0,>=0.28.0 (from spacy<4->fastai)\n",
" Downloading murmurhash-1.0.10-cp312-cp312-macosx_11_0_arm64.whl.metadata (2.0 kB)\n",
"Collecting cymem<2.1.0,>=2.0.2 (from spacy<4->fastai)\n",
" Downloading cymem-2.0.8-cp312-cp312-macosx_11_0_arm64.whl.metadata (8.4 kB)\n",
"Collecting preshed<3.1.0,>=3.0.2 (from spacy<4->fastai)\n",
" Downloading preshed-3.0.9-cp312-cp312-macosx_11_0_arm64.whl.metadata (2.2 kB)\n",
"Collecting thinc<8.3.0,>=8.2.2 (from spacy<4->fastai)\n",
" Downloading thinc-8.2.3-cp312-cp312-macosx_11_0_arm64.whl.metadata (15 kB)\n",
"Collecting wasabi<1.2.0,>=0.9.1 (from spacy<4->fastai)\n",
" Downloading wasabi-1.1.2-py3-none-any.whl.metadata (28 kB)\n",
"Collecting srsly<3.0.0,>=2.4.3 (from spacy<4->fastai)\n",
" Downloading srsly-2.4.8-cp312-cp312-macosx_11_0_arm64.whl.metadata (20 kB)\n",
"Collecting catalogue<2.1.0,>=2.0.6 (from spacy<4->fastai)\n",
" Downloading catalogue-2.0.10-py3-none-any.whl.metadata (14 kB)\n",
"Collecting weasel<0.4.0,>=0.1.0 (from spacy<4->fastai)\n",
" Downloading weasel-0.3.4-py3-none-any.whl.metadata (4.7 kB)\n",
"Collecting typer<0.10.0,>=0.3.0 (from spacy<4->fastai)\n",
" Using cached typer-0.9.0-py3-none-any.whl.metadata (14 kB)\n",
"Collecting smart-open<7.0.0,>=5.2.1 (from spacy<4->fastai)\n",
" Downloading smart_open-6.4.0-py3-none-any.whl.metadata (21 kB)\n",
"Requirement already satisfied: tqdm<5.0.0,>=4.38.0 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from spacy<4->fastai) (4.65.0)\n",
"Collecting pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4 (from spacy<4->fastai)\n",
" Using cached pydantic-2.6.3-py3-none-any.whl.metadata (84 kB)\n",
"Collecting jinja2 (from spacy<4->fastai)\n",
" Downloading Jinja2-3.1.3-py3-none-any.whl.metadata (3.3 kB)\n",
"Requirement already satisfied: setuptools in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from spacy<4->fastai) (68.2.2)\n",
"Collecting langcodes<4.0.0,>=3.2.0 (from spacy<4->fastai)\n",
" Downloading langcodes-3.3.0-py3-none-any.whl.metadata (29 kB)\n",
"Collecting numpy>=1.19.0 (from spacy<4->fastai)\n",
" Downloading numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl.metadata (61 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m61.1/61.1 kB\u001b[0m \u001b[31m9.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hRequirement already satisfied: charset-normalizer<4,>=2 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from requests->fastai) (2.0.4)\n",
"Requirement already satisfied: idna<4,>=2.5 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from requests->fastai) (3.4)\n",
"Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from requests->fastai) (2.1.0)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from requests->fastai) (2024.2.2)\n",
"Collecting filelock (from torch<2.3,>=1.10->fastai)\n",
" Downloading filelock-3.13.1-py3-none-any.whl.metadata (2.8 kB)\n",
"Requirement already satisfied: typing-extensions>=4.8.0 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from torch<2.3,>=1.10->fastai) (4.10.0)\n",
"Collecting sympy (from torch<2.3,>=1.10->fastai)\n",
" Using cached sympy-1.12-py3-none-any.whl.metadata (12 kB)\n",
"Collecting networkx (from torch<2.3,>=1.10->fastai)\n",
" Using cached networkx-3.2.1-py3-none-any.whl.metadata (5.2 kB)\n",
"Collecting fsspec (from torch<2.3,>=1.10->fastai)\n",
" Using cached fsspec-2024.2.0-py3-none-any.whl.metadata (6.8 kB)\n",
"Collecting contourpy>=1.0.1 (from matplotlib->fastai)\n",
" Downloading contourpy-1.2.0-cp312-cp312-macosx_11_0_arm64.whl.metadata (5.8 kB)\n",
"Collecting cycler>=0.10 (from matplotlib->fastai)\n",
" Downloading cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB)\n",
"Collecting fonttools>=4.22.0 (from matplotlib->fastai)\n",
" Downloading fonttools-4.49.0-cp312-cp312-macosx_10_9_universal2.whl.metadata (159 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m159.1/159.1 kB\u001b[0m \u001b[31m20.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hCollecting kiwisolver>=1.3.1 (from matplotlib->fastai)\n",
" Downloading kiwisolver-1.4.5-cp312-cp312-macosx_11_0_arm64.whl.metadata (6.4 kB)\n",
"Collecting pyparsing>=2.3.1 (from matplotlib->fastai)\n",
" Downloading pyparsing-3.1.2-py3-none-any.whl.metadata (5.1 kB)\n",
"Requirement already satisfied: python-dateutil>=2.7 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from matplotlib->fastai) (2.9.0)\n",
"Collecting pytz>=2020.1 (from pandas->fastai)\n",
" Downloading pytz-2024.1-py2.py3-none-any.whl.metadata (22 kB)\n",
"Collecting tzdata>=2022.7 (from pandas->fastai)\n",
" Downloading tzdata-2024.1-py2.py3-none-any.whl.metadata (1.4 kB)\n",
"Collecting joblib>=1.2.0 (from scikit-learn->fastai)\n",
" Using cached joblib-1.3.2-py3-none-any.whl.metadata (5.4 kB)\n",
"Collecting threadpoolctl>=2.0.0 (from scikit-learn->fastai)\n",
" Using cached threadpoolctl-3.3.0-py3-none-any.whl.metadata (13 kB)\n",
"Collecting annotated-types>=0.4.0 (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy<4->fastai)\n",
" Using cached annotated_types-0.6.0-py3-none-any.whl.metadata (12 kB)\n",
"Collecting pydantic-core==2.16.3 (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy<4->fastai)\n",
" Downloading pydantic_core-2.16.3-cp312-cp312-macosx_11_0_arm64.whl.metadata (6.5 kB)\n",
"Requirement already satisfied: six>=1.5 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from python-dateutil>=2.7->matplotlib->fastai) (1.16.0)\n",
"Collecting blis<0.8.0,>=0.7.8 (from thinc<8.3.0,>=8.2.2->spacy<4->fastai)\n",
" Downloading blis-0.7.11-cp312-cp312-macosx_11_0_arm64.whl.metadata (7.4 kB)\n",
"Collecting confection<1.0.0,>=0.0.1 (from thinc<8.3.0,>=8.2.2->spacy<4->fastai)\n",
" Downloading confection-0.1.4-py3-none-any.whl.metadata (19 kB)\n",
"Collecting click<9.0.0,>=7.1.1 (from typer<0.10.0,>=0.3.0->spacy<4->fastai)\n",
" Downloading click-8.1.7-py3-none-any.whl.metadata (3.0 kB)\n",
"Collecting cloudpathlib<0.17.0,>=0.7.0 (from weasel<0.4.0,>=0.1.0->spacy<4->fastai)\n",
" Downloading cloudpathlib-0.16.0-py3-none-any.whl.metadata (14 kB)\n",
"Collecting MarkupSafe>=2.0 (from jinja2->spacy<4->fastai)\n",
" Downloading MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl.metadata (3.0 kB)\n",
"Collecting mpmath>=0.19 (from sympy->torch<2.3,>=1.10->fastai)\n",
" Using cached mpmath-1.3.0-py3-none-any.whl.metadata (8.6 kB)\n",
"Using cached fastai-2.7.14-py3-none-any.whl (232 kB)\n",
"Using cached fastcore-1.5.29-py3-none-any.whl (67 kB)\n",
"Using cached fastdownload-0.0.7-py3-none-any.whl (12 kB)\n",
"Using cached fastprogress-1.0.3-py3-none-any.whl (12 kB)\n",
"Downloading pillow-10.2.0-cp312-cp312-macosx_11_0_arm64.whl (3.3 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.3/3.3 MB\u001b[0m \u001b[31m49.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n",
"\u001b[?25hDownloading spacy-3.7.4-cp312-cp312-macosx_11_0_arm64.whl (6.1 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m6.1/6.1 MB\u001b[0m \u001b[31m30.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n",
"\u001b[?25hDownloading torch-2.2.1-cp312-none-macosx_11_0_arm64.whl (59.7 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m59.7/59.7 MB\u001b[0m \u001b[31m44.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n",
"\u001b[?25hDownloading torchvision-0.17.1-cp312-cp312-macosx_11_0_arm64.whl (1.6 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.6/1.6 MB\u001b[0m \u001b[31m45.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m\n",
"\u001b[?25hDownloading matplotlib-3.8.3-cp312-cp312-macosx_11_0_arm64.whl (7.5 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.5/7.5 MB\u001b[0m \u001b[31m48.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n",
"\u001b[?25hDownloading pandas-2.2.1-cp312-cp312-macosx_11_0_arm64.whl (11.3 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m11.3/11.3 MB\u001b[0m \u001b[31m46.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n",
"\u001b[?25hDownloading PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl (165 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m165.6/165.6 kB\u001b[0m \u001b[31m19.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hDownloading scikit_learn-1.4.1.post1-cp312-cp312-macosx_12_0_arm64.whl (10.5 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.5/10.5 MB\u001b[0m \u001b[31m38.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m \u001b[36m0:00:01\u001b[0m\n",
"\u001b[?25hDownloading scipy-1.12.0-cp312-cp312-macosx_12_0_arm64.whl (31.4 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m31.4/31.4 MB\u001b[0m \u001b[31m45.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n",
"\u001b[?25hDownloading catalogue-2.0.10-py3-none-any.whl (17 kB)\n",
"Downloading contourpy-1.2.0-cp312-cp312-macosx_11_0_arm64.whl (242 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m242.6/242.6 kB\u001b[0m \u001b[31m26.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hDownloading cycler-0.12.1-py3-none-any.whl (8.3 kB)\n",
"Downloading cymem-2.0.8-cp312-cp312-macosx_11_0_arm64.whl (41 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m41.4/41.4 kB\u001b[0m \u001b[31m5.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hDownloading fonttools-4.49.0-cp312-cp312-macosx_10_9_universal2.whl (2.8 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.8/2.8 MB\u001b[0m \u001b[31m46.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n",
"\u001b[?25hUsing cached joblib-1.3.2-py3-none-any.whl (302 kB)\n",
"Downloading kiwisolver-1.4.5-cp312-cp312-macosx_11_0_arm64.whl (64 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m65.0/65.0 kB\u001b[0m \u001b[31m10.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hDownloading langcodes-3.3.0-py3-none-any.whl (181 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m181.6/181.6 kB\u001b[0m \u001b[31m21.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hDownloading murmurhash-1.0.10-cp312-cp312-macosx_11_0_arm64.whl (26 kB)\n",
"Downloading numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl (13.7 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m13.7/13.7 MB\u001b[0m \u001b[31m51.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n",
"\u001b[?25hDownloading preshed-3.0.9-cp312-cp312-macosx_11_0_arm64.whl (128 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m128.6/128.6 kB\u001b[0m \u001b[31m17.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hUsing cached pydantic-2.6.3-py3-none-any.whl (395 kB)\n",
"Downloading pydantic_core-2.16.3-cp312-cp312-macosx_11_0_arm64.whl (1.7 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.7/1.7 MB\u001b[0m \u001b[31m51.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hDownloading pyparsing-3.1.2-py3-none-any.whl (103 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m103.2/103.2 kB\u001b[0m \u001b[31m12.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hDownloading pytz-2024.1-py2.py3-none-any.whl (505 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m505.5/505.5 kB\u001b[0m \u001b[31m39.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hDownloading smart_open-6.4.0-py3-none-any.whl (57 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m57.0/57.0 kB\u001b[0m \u001b[31m7.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hDownloading spacy_legacy-3.0.12-py2.py3-none-any.whl (29 kB)\n",
"Downloading spacy_loggers-1.0.5-py3-none-any.whl (22 kB)\n",
"Downloading srsly-2.4.8-cp312-cp312-macosx_11_0_arm64.whl (486 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m486.4/486.4 kB\u001b[0m \u001b[31m37.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hDownloading thinc-8.2.3-cp312-cp312-macosx_11_0_arm64.whl (760 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m760.5/760.5 kB\u001b[0m \u001b[31m43.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hUsing cached threadpoolctl-3.3.0-py3-none-any.whl (17 kB)\n",
"Using cached typer-0.9.0-py3-none-any.whl (45 kB)\n",
"Downloading tzdata-2024.1-py2.py3-none-any.whl (345 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m345.4/345.4 kB\u001b[0m \u001b[31m29.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hDownloading wasabi-1.1.2-py3-none-any.whl (27 kB)\n",
"Downloading weasel-0.3.4-py3-none-any.whl (50 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m50.1/50.1 kB\u001b[0m \u001b[31m5.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hDownloading filelock-3.13.1-py3-none-any.whl (11 kB)\n",
"Using cached fsspec-2024.2.0-py3-none-any.whl (170 kB)\n",
"Downloading Jinja2-3.1.3-py3-none-any.whl (133 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m133.2/133.2 kB\u001b[0m \u001b[31m15.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hUsing cached networkx-3.2.1-py3-none-any.whl (1.6 MB)\n",
"Using cached sympy-1.12-py3-none-any.whl (5.7 MB)\n",
"Using cached annotated_types-0.6.0-py3-none-any.whl (12 kB)\n",
"Downloading blis-0.7.11-cp312-cp312-macosx_11_0_arm64.whl (1.1 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.1/1.1 MB\u001b[0m \u001b[31m44.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hDownloading click-8.1.7-py3-none-any.whl (97 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m97.9/97.9 kB\u001b[0m \u001b[31m12.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hDownloading cloudpathlib-0.16.0-py3-none-any.whl (45 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m45.0/45.0 kB\u001b[0m \u001b[31m5.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hDownloading confection-0.1.4-py3-none-any.whl (35 kB)\n",
"Downloading MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl (18 kB)\n",
"Using cached mpmath-1.3.0-py3-none-any.whl (536 kB)\n",
"Installing collected packages: pytz, mpmath, cymem, wasabi, tzdata, threadpoolctl, sympy, spacy-loggers, spacy-legacy, smart-open, pyyaml, pyparsing, pydantic-core, pillow, numpy, networkx, murmurhash, MarkupSafe, langcodes, kiwisolver, joblib, fsspec, fonttools, filelock, fastprogress, fastcore, cycler, cloudpathlib, click, catalogue, annotated-types, typer, srsly, scipy, pydantic, preshed, pandas, jinja2, fastdownload, contourpy, blis, torch, scikit-learn, matplotlib, confection, weasel, torchvision, thinc, spacy, fastai\n",
"Successfully installed MarkupSafe-2.1.5 annotated-types-0.6.0 blis-0.7.11 catalogue-2.0.10 click-8.1.7 cloudpathlib-0.16.0 confection-0.1.4 contourpy-1.2.0 cycler-0.12.1 cymem-2.0.8 fastai-2.7.14 fastcore-1.5.29 fastdownload-0.0.7 fastprogress-1.0.3 filelock-3.13.1 fonttools-4.49.0 fsspec-2024.2.0 jinja2-3.1.3 joblib-1.3.2 kiwisolver-1.4.5 langcodes-3.3.0 matplotlib-3.8.3 mpmath-1.3.0 murmurhash-1.0.10 networkx-3.2.1 numpy-1.26.4 pandas-2.2.1 pillow-10.2.0 preshed-3.0.9 pydantic-2.6.3 pydantic-core-2.16.3 pyparsing-3.1.2 pytz-2024.1 pyyaml-6.0.1 scikit-learn-1.4.1.post1 scipy-1.12.0 smart-open-6.4.0 spacy-3.7.4 spacy-legacy-3.0.12 spacy-loggers-1.0.5 srsly-2.4.8 sympy-1.12 thinc-8.2.3 threadpoolctl-3.3.0 torch-2.2.1 torchvision-0.17.1 typer-0.9.0 tzdata-2024.1 wasabi-1.1.2 weasel-0.3.4\n",
"Note: you may need to restart the kernel to use updated packages.\n"
]
}
],
"source": [
"%pip install fastai"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Collecting gradio\n",
" Using cached gradio-4.20.1-py3-none-any.whl.metadata (15 kB)\n",
"Collecting aiofiles<24.0,>=22.0 (from gradio)\n",
" Using cached aiofiles-23.2.1-py3-none-any.whl.metadata (9.7 kB)\n",
"Collecting altair<6.0,>=4.2.0 (from gradio)\n",
" Downloading altair-5.2.0-py3-none-any.whl.metadata (8.7 kB)\n",
"Collecting fastapi (from gradio)\n",
" Using cached fastapi-0.110.0-py3-none-any.whl.metadata (25 kB)\n",
"Collecting ffmpy (from gradio)\n",
" Downloading ffmpy-0.3.2.tar.gz (5.5 kB)\n",
" Preparing metadata (setup.py) ... \u001b[?25ldone\n",
"\u001b[?25hCollecting gradio-client==0.11.0 (from gradio)\n",
" Using cached gradio_client-0.11.0-py3-none-any.whl.metadata (7.1 kB)\n",
"Collecting httpx>=0.24.1 (from gradio)\n",
" Downloading httpx-0.27.0-py3-none-any.whl.metadata (7.2 kB)\n",
"Collecting huggingface-hub>=0.19.3 (from gradio)\n",
" Downloading huggingface_hub-0.21.4-py3-none-any.whl.metadata (13 kB)\n",
"Collecting importlib-resources<7.0,>=1.3 (from gradio)\n",
" Using cached importlib_resources-6.1.3-py3-none-any.whl.metadata (3.9 kB)\n",
"Requirement already satisfied: jinja2<4.0 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from gradio) (3.1.3)\n",
"Requirement already satisfied: markupsafe~=2.0 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from gradio) (2.1.5)\n",
"Requirement already satisfied: matplotlib~=3.0 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from gradio) (3.8.3)\n",
"Requirement already satisfied: numpy~=1.0 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from gradio) (1.26.4)\n",
"Collecting orjson~=3.0 (from gradio)\n",
" Downloading orjson-3.9.15-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl.metadata (49 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m49.5/49.5 kB\u001b[0m \u001b[31m3.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hRequirement already satisfied: packaging in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from gradio) (23.1)\n",
"Requirement already satisfied: pandas<3.0,>=1.0 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from gradio) (2.2.1)\n",
"Requirement already satisfied: pillow<11.0,>=8.0 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from gradio) (10.2.0)\n",
"Requirement already satisfied: pydantic>=2.0 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from gradio) (2.6.3)\n",
"Collecting pydub (from gradio)\n",
" Using cached pydub-0.25.1-py2.py3-none-any.whl.metadata (1.4 kB)\n",
"Collecting python-multipart>=0.0.9 (from gradio)\n",
" Using cached python_multipart-0.0.9-py3-none-any.whl.metadata (2.5 kB)\n",
"Requirement already satisfied: pyyaml<7.0,>=5.0 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from gradio) (6.0.1)\n",
"Collecting ruff>=0.2.2 (from gradio)\n",
" Downloading ruff-0.3.1-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.metadata (23 kB)\n",
"Collecting semantic-version~=2.0 (from gradio)\n",
" Using cached semantic_version-2.10.0-py2.py3-none-any.whl.metadata (9.7 kB)\n",
"Collecting tomlkit==0.12.0 (from gradio)\n",
" Using cached tomlkit-0.12.0-py3-none-any.whl.metadata (2.7 kB)\n",
"Requirement already satisfied: typer<1.0,>=0.9 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from typer[all]<1.0,>=0.9->gradio) (0.9.0)\n",
"Requirement already satisfied: typing-extensions~=4.0 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from gradio) (4.10.0)\n",
"Collecting uvicorn>=0.14.0 (from gradio)\n",
" Using cached uvicorn-0.27.1-py3-none-any.whl.metadata (6.3 kB)\n",
"Requirement already satisfied: fsspec in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from gradio-client==0.11.0->gradio) (2024.2.0)\n",
"Collecting websockets<12.0,>=10.0 (from gradio-client==0.11.0->gradio)\n",
" Downloading websockets-11.0.3-py3-none-any.whl.metadata (6.6 kB)\n",
"Collecting jsonschema>=3.0 (from altair<6.0,>=4.2.0->gradio)\n",
" Using cached jsonschema-4.21.1-py3-none-any.whl.metadata (7.8 kB)\n",
"Collecting toolz (from altair<6.0,>=4.2.0->gradio)\n",
" Downloading toolz-0.12.1-py3-none-any.whl.metadata (5.1 kB)\n",
"Collecting anyio (from httpx>=0.24.1->gradio)\n",
" Downloading anyio-4.3.0-py3-none-any.whl.metadata (4.6 kB)\n",
"Requirement already satisfied: certifi in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from httpx>=0.24.1->gradio) (2024.2.2)\n",
"Collecting httpcore==1.* (from httpx>=0.24.1->gradio)\n",
" Downloading httpcore-1.0.4-py3-none-any.whl.metadata (20 kB)\n",
"Requirement already satisfied: idna in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from httpx>=0.24.1->gradio) (3.4)\n",
"Collecting sniffio (from httpx>=0.24.1->gradio)\n",
" Downloading sniffio-1.3.1-py3-none-any.whl.metadata (3.9 kB)\n",
"Collecting h11<0.15,>=0.13 (from httpcore==1.*->httpx>=0.24.1->gradio)\n",
" Downloading h11-0.14.0-py3-none-any.whl.metadata (8.2 kB)\n",
"Requirement already satisfied: filelock in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from huggingface-hub>=0.19.3->gradio) (3.13.1)\n",
"Requirement already satisfied: requests in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from huggingface-hub>=0.19.3->gradio) (2.31.0)\n",
"Requirement already satisfied: tqdm>=4.42.1 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from huggingface-hub>=0.19.3->gradio) (4.65.0)\n",
"Requirement already satisfied: contourpy>=1.0.1 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from matplotlib~=3.0->gradio) (1.2.0)\n",
"Requirement already satisfied: cycler>=0.10 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from matplotlib~=3.0->gradio) (0.12.1)\n",
"Requirement already satisfied: fonttools>=4.22.0 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from matplotlib~=3.0->gradio) (4.49.0)\n",
"Requirement already satisfied: kiwisolver>=1.3.1 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from matplotlib~=3.0->gradio) (1.4.5)\n",
"Requirement already satisfied: pyparsing>=2.3.1 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from matplotlib~=3.0->gradio) (3.1.2)\n",
"Requirement already satisfied: python-dateutil>=2.7 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from matplotlib~=3.0->gradio) (2.9.0)\n",
"Requirement already satisfied: pytz>=2020.1 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from pandas<3.0,>=1.0->gradio) (2024.1)\n",
"Requirement already satisfied: tzdata>=2022.7 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from pandas<3.0,>=1.0->gradio) (2024.1)\n",
"Requirement already satisfied: annotated-types>=0.4.0 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from pydantic>=2.0->gradio) (0.6.0)\n",
"Requirement already satisfied: pydantic-core==2.16.3 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from pydantic>=2.0->gradio) (2.16.3)\n",
"Requirement already satisfied: click<9.0.0,>=7.1.1 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from typer<1.0,>=0.9->typer[all]<1.0,>=0.9->gradio) (8.1.7)\n",
"Collecting colorama<0.5.0,>=0.4.3 (from typer[all]<1.0,>=0.9->gradio)\n",
" Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB)\n",
"Collecting shellingham<2.0.0,>=1.3.0 (from typer[all]<1.0,>=0.9->gradio)\n",
" Using cached shellingham-1.5.4-py2.py3-none-any.whl.metadata (3.5 kB)\n",
"Collecting rich<14.0.0,>=10.11.0 (from typer[all]<1.0,>=0.9->gradio)\n",
" Downloading rich-13.7.1-py3-none-any.whl.metadata (18 kB)\n",
"Collecting starlette<0.37.0,>=0.36.3 (from fastapi->gradio)\n",
" Using cached starlette-0.36.3-py3-none-any.whl.metadata (5.9 kB)\n",
"Collecting attrs>=22.2.0 (from jsonschema>=3.0->altair<6.0,>=4.2.0->gradio)\n",
" Downloading attrs-23.2.0-py3-none-any.whl.metadata (9.5 kB)\n",
"Collecting jsonschema-specifications>=2023.03.6 (from jsonschema>=3.0->altair<6.0,>=4.2.0->gradio)\n",
" Using cached jsonschema_specifications-2023.12.1-py3-none-any.whl.metadata (3.0 kB)\n",
"Collecting referencing>=0.28.4 (from jsonschema>=3.0->altair<6.0,>=4.2.0->gradio)\n",
" Using cached referencing-0.33.0-py3-none-any.whl.metadata (2.7 kB)\n",
"Collecting rpds-py>=0.7.1 (from jsonschema>=3.0->altair<6.0,>=4.2.0->gradio)\n",
" Downloading rpds_py-0.18.0-cp312-cp312-macosx_11_0_arm64.whl.metadata (4.1 kB)\n",
"Requirement already satisfied: six>=1.5 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from python-dateutil>=2.7->matplotlib~=3.0->gradio) (1.16.0)\n",
"Collecting markdown-it-py>=2.2.0 (from rich<14.0.0,>=10.11.0->typer[all]<1.0,>=0.9->gradio)\n",
" Downloading markdown_it_py-3.0.0-py3-none-any.whl.metadata (6.9 kB)\n",
"Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from rich<14.0.0,>=10.11.0->typer[all]<1.0,>=0.9->gradio) (2.17.2)\n",
"Requirement already satisfied: charset-normalizer<4,>=2 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from requests->huggingface-hub>=0.19.3->gradio) (2.0.4)\n",
"Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/imsang-yeob/miniconda3/lib/python3.12/site-packages (from requests->huggingface-hub>=0.19.3->gradio) (2.1.0)\n",
"Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich<14.0.0,>=10.11.0->typer[all]<1.0,>=0.9->gradio)\n",
" Downloading mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB)\n",
"Using cached gradio-4.20.1-py3-none-any.whl (17.0 MB)\n",
"Using cached gradio_client-0.11.0-py3-none-any.whl (308 kB)\n",
"Using cached tomlkit-0.12.0-py3-none-any.whl (37 kB)\n",
"Using cached aiofiles-23.2.1-py3-none-any.whl (15 kB)\n",
"Downloading altair-5.2.0-py3-none-any.whl (996 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m996.9/996.9 kB\u001b[0m \u001b[31m19.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n",
"\u001b[?25hDownloading httpx-0.27.0-py3-none-any.whl (75 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m75.6/75.6 kB\u001b[0m \u001b[31m10.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hDownloading httpcore-1.0.4-py3-none-any.whl (77 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m77.8/77.8 kB\u001b[0m \u001b[31m12.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hDownloading huggingface_hub-0.21.4-py3-none-any.whl (346 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m346.4/346.4 kB\u001b[0m \u001b[31m35.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hUsing cached importlib_resources-6.1.3-py3-none-any.whl (34 kB)\n",
"Downloading orjson-3.9.15-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl (248 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m248.7/248.7 kB\u001b[0m \u001b[31m29.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hUsing cached python_multipart-0.0.9-py3-none-any.whl (22 kB)\n",
"Downloading ruff-0.3.1-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (15.0 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m15.0/15.0 MB\u001b[0m \u001b[31m59.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n",
"\u001b[?25hUsing cached semantic_version-2.10.0-py2.py3-none-any.whl (15 kB)\n",
"Using cached uvicorn-0.27.1-py3-none-any.whl (60 kB)\n",
"Using cached fastapi-0.110.0-py3-none-any.whl (92 kB)\n",
"Using cached pydub-0.25.1-py2.py3-none-any.whl (32 kB)\n",
"Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)\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.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hUsing cached jsonschema-4.21.1-py3-none-any.whl (85 kB)\n",
"Downloading rich-13.7.1-py3-none-any.whl (240 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m240.7/240.7 kB\u001b[0m \u001b[31m27.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hUsing cached shellingham-1.5.4-py2.py3-none-any.whl (9.8 kB)\n",
"Using cached starlette-0.36.3-py3-none-any.whl (71 kB)\n",
"Downloading anyio-4.3.0-py3-none-any.whl (85 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m85.6/85.6 kB\u001b[0m \u001b[31m12.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hDownloading sniffio-1.3.1-py3-none-any.whl (10 kB)\n",
"Downloading websockets-11.0.3-py3-none-any.whl (118 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m118.1/118.1 kB\u001b[0m \u001b[31m16.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hDownloading toolz-0.12.1-py3-none-any.whl (56 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m56.1/56.1 kB\u001b[0m \u001b[31m8.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hDownloading attrs-23.2.0-py3-none-any.whl (60 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m60.8/60.8 kB\u001b[0m \u001b[31m8.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hUsing cached jsonschema_specifications-2023.12.1-py3-none-any.whl (18 kB)\n",
"Downloading markdown_it_py-3.0.0-py3-none-any.whl (87 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m87.5/87.5 kB\u001b[0m \u001b[31m11.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hUsing cached referencing-0.33.0-py3-none-any.whl (26 kB)\n",
"Downloading rpds_py-0.18.0-cp312-cp312-macosx_11_0_arm64.whl (332 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m333.0/333.0 kB\u001b[0m \u001b[31m30.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hDownloading mdurl-0.1.2-py3-none-any.whl (10.0 kB)\n",
"Building wheels for collected packages: ffmpy\n",
" Building wheel for ffmpy (setup.py) ... \u001b[?25ldone\n",
"\u001b[?25h Created wheel for ffmpy: filename=ffmpy-0.3.2-py3-none-any.whl size=5582 sha256=5c146c9c69eb874a76e5909ea1ba171f0cf812337568dd87e2b1d19b6b6fb117\n",
" Stored in directory: /Users/imsang-yeob/Library/Caches/pip/wheels/8a/63/a8/fad16a1c5c990569a478f40782ce543788ddac224288008635\n",
"Successfully built ffmpy\n",
"Installing collected packages: pydub, ffmpy, websockets, toolz, tomlkit, sniffio, shellingham, semantic-version, ruff, rpds-py, python-multipart, orjson, mdurl, importlib-resources, h11, colorama, attrs, aiofiles, uvicorn, referencing, markdown-it-py, huggingface-hub, httpcore, anyio, starlette, rich, jsonschema-specifications, httpx, jsonschema, gradio-client, fastapi, altair, gradio\n",
"Successfully installed aiofiles-23.2.1 altair-5.2.0 anyio-4.3.0 attrs-23.2.0 colorama-0.4.6 fastapi-0.110.0 ffmpy-0.3.2 gradio-4.20.1 gradio-client-0.11.0 h11-0.14.0 httpcore-1.0.4 httpx-0.27.0 huggingface-hub-0.21.4 importlib-resources-6.1.3 jsonschema-4.21.1 jsonschema-specifications-2023.12.1 markdown-it-py-3.0.0 mdurl-0.1.2 orjson-3.9.15 pydub-0.25.1 python-multipart-0.0.9 referencing-0.33.0 rich-13.7.1 rpds-py-0.18.0 ruff-0.3.1 semantic-version-2.10.0 shellingham-1.5.4 sniffio-1.3.1 starlette-0.36.3 tomlkit-0.12.0 toolz-0.12.1 uvicorn-0.27.1 websockets-11.0.3\n",
"Note: you may need to restart the kernel to use updated packages.\n"
]
}
],
"source": [
"%pip install gradio"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"#/export\n",
"from fastai.vision.all import *\n",
"import gradio as gr\n",
"from fastbook import *\n",
"def is_cat(x): return x[0].isupper()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"urls = search_images_ddg('dog photos', max_images=1)\n",
"dest = Path('dog.jpg')\n",
"if not dest.exists(): download_url(urls[0], dest, show_progress=False)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/jpeg": "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",
"image/png": "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",
"text/plain": [
"PILImage mode=RGB size=192x128"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"im = PILImage.create('dog.jpg')\n",
"im.thumbnail((192,192))\n",
"im"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"#/export\n",
"learn = load_learner('model.pkl')"
]
},
{
"cell_type": "code",
"execution_count": 5,
"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([1.0000e+00, 5.9419e-08]))"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"learn.predict(im)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"#/export\n",
"categories = ('Dog','Cat')\n",
"\n",
"def classify_image(img):\n",
" pred,idx,prob = learn.predict(img)\n",
" return dict(zip(categories,map(float,prob)))"
]
},
{
"cell_type": "code",
"execution_count": 7,
"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': 1.0, 'Cat': 5.941916825236149e-08}"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"classify_image(im)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Running on local URL: http://127.0.0.1:7860\n",
"\n",
"To create a public link, set `share=True` in `launch()`.\n"
]
},
{
"data": {
"text/plain": []
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Traceback (most recent call last):\n",
" File \"/Users/imsang-yeob/miniconda3/lib/python3.12/site-packages/gradio/queueing.py\", line 501, in call_prediction\n",
" output = await route_utils.call_process_api(\n",
" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
" File \"/Users/imsang-yeob/miniconda3/lib/python3.12/site-packages/gradio/route_utils.py\", line 252, in call_process_api\n",
" output = await app.get_blocks().process_api(\n",
" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
" File \"/Users/imsang-yeob/miniconda3/lib/python3.12/site-packages/gradio/blocks.py\", line 1664, in process_api\n",
" result = await self.call_function(\n",
" ^^^^^^^^^^^^^^^^^^^^^^^^^\n",
" File \"/Users/imsang-yeob/miniconda3/lib/python3.12/site-packages/gradio/blocks.py\", line 1205, in call_function\n",
" prediction = await anyio.to_thread.run_sync(\n",
" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
" File \"/Users/imsang-yeob/miniconda3/lib/python3.12/site-packages/anyio/to_thread.py\", line 56, in run_sync\n",
" return await get_async_backend().run_sync_in_worker_thread(\n",
" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
" File \"/Users/imsang-yeob/miniconda3/lib/python3.12/site-packages/anyio/_backends/_asyncio.py\", line 2144, in run_sync_in_worker_thread\n",
" return await future\n",
" ^^^^^^^^^^^^\n",
" File \"/Users/imsang-yeob/miniconda3/lib/python3.12/site-packages/anyio/_backends/_asyncio.py\", line 851, in run\n",
" result = context.run(func, *args)\n",
" ^^^^^^^^^^^^^^^^^^^^^^^^\n",
" File \"/Users/imsang-yeob/miniconda3/lib/python3.12/site-packages/gradio/utils.py\", line 690, in wrapper\n",
" response = f(*args, **kwargs)\n",
" ^^^^^^^^^^^^^^^^^^\n",
" File \"/var/folders/9d/8jyn_9md5xs0dcw7638m62g40000gn/T/ipykernel_70967/3391707847.py\", line 5, in classify_image\n",
" pred,idx,prob = learn.predict(img)\n",
" ^^^^^\n",
"NameError: name 'learn' is not defined\n",
"Traceback (most recent call last):\n",
" File \"/Users/imsang-yeob/miniconda3/lib/python3.12/site-packages/gradio/queueing.py\", line 501, in call_prediction\n",
" output = await route_utils.call_process_api(\n",
" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
" File \"/Users/imsang-yeob/miniconda3/lib/python3.12/site-packages/gradio/route_utils.py\", line 252, in call_process_api\n",
" output = await app.get_blocks().process_api(\n",
" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
" File \"/Users/imsang-yeob/miniconda3/lib/python3.12/site-packages/gradio/blocks.py\", line 1664, in process_api\n",
" result = await self.call_function(\n",
" ^^^^^^^^^^^^^^^^^^^^^^^^^\n",
" File \"/Users/imsang-yeob/miniconda3/lib/python3.12/site-packages/gradio/blocks.py\", line 1205, in call_function\n",
" prediction = await anyio.to_thread.run_sync(\n",
" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
" File \"/Users/imsang-yeob/miniconda3/lib/python3.12/site-packages/anyio/to_thread.py\", line 56, in run_sync\n",
" return await get_async_backend().run_sync_in_worker_thread(\n",
" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
" File \"/Users/imsang-yeob/miniconda3/lib/python3.12/site-packages/anyio/_backends/_asyncio.py\", line 2144, in run_sync_in_worker_thread\n",
" return await future\n",
" ^^^^^^^^^^^^\n",
" File \"/Users/imsang-yeob/miniconda3/lib/python3.12/site-packages/anyio/_backends/_asyncio.py\", line 851, in run\n",
" result = context.run(func, *args)\n",
" ^^^^^^^^^^^^^^^^^^^^^^^^\n",
" File \"/Users/imsang-yeob/miniconda3/lib/python3.12/site-packages/gradio/utils.py\", line 690, in wrapper\n",
" response = f(*args, **kwargs)\n",
" ^^^^^^^^^^^^^^^^^^\n",
" File \"/var/folders/9d/8jyn_9md5xs0dcw7638m62g40000gn/T/ipykernel_70967/3391707847.py\", line 5, in classify_image\n",
" pred,idx,prob = learn.predict(img)\n",
" ^^^^^\n",
"NameError: name 'learn' is not defined\n"
]
}
],
"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(inline=False)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"m = learn.model"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"import nbdev\n",
"nbdev.export.nb_export('app.ipynb', './')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "base",
"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.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}