{ "cells": [ { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "#|default_exp app" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Collecting fastai\n", " Downloading fastai-2.7.10-py3-none-any.whl (240 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m240.9/240.9 kB\u001b[0m \u001b[31m3.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m[31m3.3 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25hCollecting matplotlib\n", " Using cached matplotlib-3.6.3-cp310-cp310-macosx_10_12_x86_64.whl (7.3 MB)\n", "Collecting scipy\n", " Downloading scipy-1.10.0-cp310-cp310-macosx_10_15_x86_64.whl (35.1 MB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m35.1/35.1 MB\u001b[0m \u001b[31m41.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0mm eta \u001b[36m0:00:01\u001b[0m[36m0:00:01\u001b[0m\n", "\u001b[?25hCollecting spacy<4\n", " Downloading spacy-3.5.0-cp310-cp310-macosx_10_9_x86_64.whl (6.8 MB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m6.8/6.8 MB\u001b[0m \u001b[31m55.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0mm eta \u001b[36m0:00:01\u001b[0m[36m0:00:01\u001b[0m\n", "\u001b[?25hCollecting fastcore<1.6,>=1.4.5\n", " Downloading fastcore-1.5.27-py3-none-any.whl (67 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m67.1/67.1 kB\u001b[0m \u001b[31m2.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting pillow>6.0.0\n", " Using cached Pillow-9.4.0-2-cp310-cp310-macosx_10_10_x86_64.whl (3.3 MB)\n", "Requirement already satisfied: pip in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from fastai) (22.3.1)\n", "Collecting requests\n", " Using cached requests-2.28.2-py3-none-any.whl (62 kB)\n", "Collecting pyyaml\n", " Using cached PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl (197 kB)\n", "Collecting fastdownload<2,>=0.0.5\n", " Downloading fastdownload-0.0.7-py3-none-any.whl (12 kB)\n", "Requirement already satisfied: packaging in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from fastai) (23.0)\n", "Collecting scikit-learn\n", " Downloading scikit_learn-1.2.1-cp310-cp310-macosx_10_9_x86_64.whl (9.1 MB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m9.1/9.1 MB\u001b[0m \u001b[31m59.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0mm eta \u001b[36m0:00:01\u001b[0m[36m0:00:01\u001b[0m\n", "\u001b[?25hCollecting fastprogress>=0.2.4\n", " Downloading fastprogress-1.0.3-py3-none-any.whl (12 kB)\n", "Collecting torch<1.14,>=1.7\n", " Using cached torch-1.13.1-cp310-none-macosx_10_9_x86_64.whl (135.3 MB)\n", "Collecting torchvision>=0.8.2\n", " Downloading torchvision-0.14.1-cp310-cp310-macosx_10_9_x86_64.whl (1.4 MB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.4/1.4 MB\u001b[0m \u001b[31m29.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m0m eta \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25hCollecting pandas\n", " Downloading pandas-1.5.3-cp310-cp310-macosx_10_9_x86_64.whl (12.0 MB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m12.0/12.0 MB\u001b[0m \u001b[31m53.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0mm eta \u001b[36m0:00:01\u001b[0m[36m0:00:01\u001b[0m\n", "\u001b[?25hCollecting wasabi<1.2.0,>=0.9.1\n", " Downloading wasabi-1.1.1-py3-none-any.whl (27 kB)\n", "Collecting spacy-legacy<3.1.0,>=3.0.11\n", " Downloading spacy_legacy-3.0.12-py2.py3-none-any.whl (29 kB)\n", "Collecting numpy>=1.15.0\n", " Using cached numpy-1.24.1-cp310-cp310-macosx_10_9_x86_64.whl (19.8 MB)\n", "Collecting langcodes<4.0.0,>=3.2.0\n", " Downloading langcodes-3.3.0-py3-none-any.whl (181 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m181.6/181.6 kB\u001b[0m \u001b[31m6.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting murmurhash<1.1.0,>=0.28.0\n", " Downloading murmurhash-1.0.9-cp310-cp310-macosx_10_9_x86_64.whl (18 kB)\n", "Collecting thinc<8.2.0,>=8.1.0\n", " Downloading thinc-8.1.7-cp310-cp310-macosx_10_9_x86_64.whl (770 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m770.9/770.9 kB\u001b[0m \u001b[31m25.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting pydantic!=1.8,!=1.8.1,<1.11.0,>=1.7.4\n", " Downloading pydantic-1.10.4-cp310-cp310-macosx_10_9_x86_64.whl (2.8 MB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.8/2.8 MB\u001b[0m \u001b[31m48.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m0m eta \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25hCollecting pathy>=0.10.0\n", " Downloading pathy-0.10.1-py3-none-any.whl (48 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m48.9/48.9 kB\u001b[0m \u001b[31m1.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting tqdm<5.0.0,>=4.38.0\n", " Using cached tqdm-4.64.1-py2.py3-none-any.whl (78 kB)\n", "Collecting cymem<2.1.0,>=2.0.2\n", " Downloading cymem-2.0.7-cp310-cp310-macosx_10_9_x86_64.whl (32 kB)\n", "Collecting jinja2\n", " Using cached Jinja2-3.1.2-py3-none-any.whl (133 kB)\n", "Collecting typer<0.8.0,>=0.3.0\n", " Downloading typer-0.7.0-py3-none-any.whl (38 kB)\n", "Collecting spacy-loggers<2.0.0,>=1.0.0\n", " Downloading spacy_loggers-1.0.4-py3-none-any.whl (11 kB)\n", "Collecting srsly<3.0.0,>=2.4.3\n", " Downloading srsly-2.4.5-cp310-cp310-macosx_10_9_x86_64.whl (491 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m491.1/491.1 kB\u001b[0m \u001b[31m15.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting catalogue<2.1.0,>=2.0.6\n", " Downloading catalogue-2.0.8-py3-none-any.whl (17 kB)\n", "Collecting preshed<3.1.0,>=3.0.2\n", " Downloading preshed-3.0.8-cp310-cp310-macosx_10_9_x86_64.whl (106 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m107.0/107.0 kB\u001b[0m \u001b[31m3.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: setuptools in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from spacy<4->fastai) (65.5.0)\n", "Collecting smart-open<7.0.0,>=5.2.1\n", " Downloading smart_open-6.3.0-py3-none-any.whl (56 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m56.8/56.8 kB\u001b[0m \u001b[31m1.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting certifi>=2017.4.17\n", " Using cached certifi-2022.12.7-py3-none-any.whl (155 kB)\n", "Collecting urllib3<1.27,>=1.21.1\n", " Using cached urllib3-1.26.14-py2.py3-none-any.whl (140 kB)\n", "Collecting idna<4,>=2.5\n", " Using cached idna-3.4-py3-none-any.whl (61 kB)\n", "Collecting charset-normalizer<4,>=2\n", " Using cached charset_normalizer-3.0.1-cp310-cp310-macosx_10_9_x86_64.whl (124 kB)\n", "Collecting typing-extensions\n", " Using cached typing_extensions-4.4.0-py3-none-any.whl (26 kB)\n", "Collecting fonttools>=4.22.0\n", " Using cached fonttools-4.38.0-py3-none-any.whl (965 kB)\n", "Collecting kiwisolver>=1.0.1\n", " Using cached kiwisolver-1.4.4-cp310-cp310-macosx_10_9_x86_64.whl (65 kB)\n", "Collecting cycler>=0.10\n", " Using cached cycler-0.11.0-py3-none-any.whl (6.4 kB)\n", "Requirement already satisfied: python-dateutil>=2.7 in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from matplotlib->fastai) (2.8.2)\n", "Collecting contourpy>=1.0.1\n", " Using cached contourpy-1.0.7-cp310-cp310-macosx_10_9_x86_64.whl (244 kB)\n", "Collecting pyparsing>=2.2.1\n", " Using cached pyparsing-3.0.9-py3-none-any.whl (98 kB)\n", "Collecting pytz>=2020.1\n", " Using cached pytz-2022.7.1-py2.py3-none-any.whl (499 kB)\n", "Collecting threadpoolctl>=2.0.0\n", " Downloading threadpoolctl-3.1.0-py3-none-any.whl (14 kB)\n", "Collecting joblib>=1.1.1\n", " Downloading joblib-1.2.0-py3-none-any.whl (297 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m298.0/298.0 kB\u001b[0m \u001b[31m10.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: six>=1.5 in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from python-dateutil>=2.7->matplotlib->fastai) (1.16.0)\n", "Collecting confection<1.0.0,>=0.0.1\n", " Downloading confection-0.0.4-py3-none-any.whl (32 kB)\n", "Collecting blis<0.8.0,>=0.7.8\n", " Downloading blis-0.7.9-cp310-cp310-macosx_10_9_x86_64.whl (6.1 MB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m6.1/6.1 MB\u001b[0m \u001b[31m60.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0mm eta \u001b[36m0:00:01\u001b[0m00:01\u001b[0m\n", "\u001b[?25hCollecting click<9.0.0,>=7.1.1\n", " Using cached click-8.1.3-py3-none-any.whl (96 kB)\n", "Collecting MarkupSafe>=2.0\n", " Using cached MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl (13 kB)\n", "Installing collected packages: pytz, cymem, charset-normalizer, wasabi, urllib3, typing-extensions, tqdm, threadpoolctl, spacy-loggers, spacy-legacy, smart-open, pyyaml, pyparsing, pillow, numpy, murmurhash, MarkupSafe, langcodes, kiwisolver, joblib, idna, fonttools, fastprogress, fastcore, cycler, click, certifi, catalogue, typer, torch, srsly, scipy, requests, pydantic, preshed, pandas, jinja2, fastdownload, contourpy, blis, torchvision, scikit-learn, pathy, matplotlib, confection, thinc, spacy, fastai\n", "Successfully installed MarkupSafe-2.1.2 blis-0.7.9 catalogue-2.0.8 certifi-2022.12.7 charset-normalizer-3.0.1 click-8.1.3 confection-0.0.4 contourpy-1.0.7 cycler-0.11.0 cymem-2.0.7 fastai-2.7.10 fastcore-1.5.27 fastdownload-0.0.7 fastprogress-1.0.3 fonttools-4.38.0 idna-3.4 jinja2-3.1.2 joblib-1.2.0 kiwisolver-1.4.4 langcodes-3.3.0 matplotlib-3.6.3 murmurhash-1.0.9 numpy-1.24.1 pandas-1.5.3 pathy-0.10.1 pillow-9.4.0 preshed-3.0.8 pydantic-1.10.4 pyparsing-3.0.9 pytz-2022.7.1 pyyaml-6.0 requests-2.28.2 scikit-learn-1.2.1 scipy-1.10.0 smart-open-6.3.0 spacy-3.5.0 spacy-legacy-3.0.12 spacy-loggers-1.0.4 srsly-2.4.5 thinc-8.1.7 threadpoolctl-3.1.0 torch-1.13.1 torchvision-0.14.1 tqdm-4.64.1 typer-0.7.0 typing-extensions-4.4.0 urllib3-1.26.14 wasabi-1.1.1\n", "Note: you may need to restart the kernel to use updated packages.\n" ] } ], "source": [ "pip install fastai" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Collecting gradio\n", " Downloading gradio-3.17.0-py3-none-any.whl (14.2 MB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m14.2/14.2 MB\u001b[0m \u001b[31m55.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0mm eta \u001b[36m0:00:01\u001b[0m[36m0:00:01\u001b[0m\n", "\u001b[?25hCollecting aiofiles\n", " Downloading aiofiles-22.1.0-py3-none-any.whl (14 kB)\n", "Requirement already satisfied: requests in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from gradio) (2.28.2)\n", "Collecting fastapi\n", " Downloading fastapi-0.89.1-py3-none-any.whl (55 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m55.8/55.8 kB\u001b[0m \u001b[31m1.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: jinja2 in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from gradio) (3.1.2)\n", "Collecting websockets>=10.0\n", " Downloading websockets-10.4-cp310-cp310-macosx_10_9_x86_64.whl (97 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m97.9/97.9 kB\u001b[0m \u001b[31m3.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: pydantic in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from gradio) (1.10.4)\n", "Requirement already satisfied: pandas in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from gradio) (1.5.3)\n", "Collecting python-multipart\n", " Downloading python-multipart-0.0.5.tar.gz (32 kB)\n", " Preparing metadata (setup.py) ... \u001b[?25ldone\n", "\u001b[?25hRequirement already satisfied: matplotlib in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from gradio) (3.6.3)\n", "Collecting aiohttp\n", " Downloading aiohttp-3.8.3-cp310-cp310-macosx_10_9_x86_64.whl (358 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m358.3/358.3 kB\u001b[0m \u001b[31m12.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: pyyaml in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from gradio) (6.0)\n", "Collecting ffmpy\n", " Downloading ffmpy-0.3.0.tar.gz (4.8 kB)\n", " Preparing metadata (setup.py) ... \u001b[?25ldone\n", "\u001b[?25hRequirement already satisfied: typing-extensions in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from gradio) (4.4.0)\n", "Collecting fsspec\n", " Downloading fsspec-2023.1.0-py3-none-any.whl (143 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m143.0/143.0 kB\u001b[0m \u001b[31m4.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting uvicorn\n", " Downloading uvicorn-0.20.0-py3-none-any.whl (56 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m56.9/56.9 kB\u001b[0m \u001b[31m1.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting altair>=4.2.0\n", " Using cached altair-4.2.2-py3-none-any.whl (813 kB)\n", "Requirement already satisfied: markupsafe in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from gradio) (2.1.2)\n", "Collecting pycryptodome\n", " Downloading pycryptodome-3.17-cp35-abi3-macosx_10_9_x86_64.whl (1.6 MB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.6/1.6 MB\u001b[0m \u001b[31m32.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m0m eta \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25hCollecting orjson\n", " Downloading orjson-3.8.5-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (489 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m489.2/489.2 kB\u001b[0m \u001b[31m16.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting markdown-it-py[linkify,plugins]\n", " Using cached markdown_it_py-2.1.0-py3-none-any.whl (84 kB)\n", "Collecting pydub\n", " Downloading pydub-0.25.1-py2.py3-none-any.whl (32 kB)\n", "Requirement already satisfied: pillow in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from gradio) (9.4.0)\n", "Requirement already satisfied: numpy in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from gradio) (1.24.1)\n", "Collecting httpx\n", " Downloading httpx-0.23.3-py3-none-any.whl (71 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m71.5/71.5 kB\u001b[0m \u001b[31m2.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting entrypoints\n", " Using cached entrypoints-0.4-py3-none-any.whl (5.3 kB)\n", "Collecting jsonschema>=3.0\n", " Using cached jsonschema-4.17.3-py3-none-any.whl (90 kB)\n", "Collecting toolz\n", " Using cached toolz-0.12.0-py3-none-any.whl (55 kB)\n", "Requirement already satisfied: pytz>=2020.1 in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from pandas->gradio) (2022.7.1)\n", "Requirement already satisfied: python-dateutil>=2.8.1 in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from pandas->gradio) (2.8.2)\n", "Collecting multidict<7.0,>=4.5\n", " Downloading multidict-6.0.4-cp310-cp310-macosx_10_9_x86_64.whl (29 kB)\n", "Collecting charset-normalizer<3.0,>=2.0\n", " Downloading charset_normalizer-2.1.1-py3-none-any.whl (39 kB)\n", "Collecting yarl<2.0,>=1.0\n", " Downloading yarl-1.8.2-cp310-cp310-macosx_10_9_x86_64.whl (61 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m61.0/61.0 kB\u001b[0m \u001b[31m1.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting async-timeout<5.0,>=4.0.0a3\n", " Using cached async_timeout-4.0.2-py3-none-any.whl (5.8 kB)\n", "Collecting frozenlist>=1.1.1\n", " Downloading frozenlist-1.3.3-cp310-cp310-macosx_10_9_x86_64.whl (35 kB)\n", "Collecting aiosignal>=1.1.2\n", " Using cached aiosignal-1.3.1-py3-none-any.whl (7.6 kB)\n", "Collecting attrs>=17.3.0\n", " Using cached attrs-22.2.0-py3-none-any.whl (60 kB)\n", "Collecting starlette==0.22.0\n", " Downloading starlette-0.22.0-py3-none-any.whl (64 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m64.3/64.3 kB\u001b[0m \u001b[31m2.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting anyio<5,>=3.4.0\n", " Using cached anyio-3.6.2-py3-none-any.whl (80 kB)\n", "Requirement already satisfied: certifi in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from httpx->gradio) (2022.12.7)\n", "Collecting httpcore<0.17.0,>=0.15.0\n", " Downloading httpcore-0.16.3-py3-none-any.whl (69 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m69.6/69.6 kB\u001b[0m \u001b[31m2.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting rfc3986[idna2008]<2,>=1.3\n", " Downloading rfc3986-1.5.0-py2.py3-none-any.whl (31 kB)\n", "Collecting sniffio\n", " Using cached sniffio-1.3.0-py3-none-any.whl (10 kB)\n", "Collecting mdurl~=0.1\n", " Using cached mdurl-0.1.2-py3-none-any.whl (10.0 kB)\n", "Collecting mdit-py-plugins\n", " Downloading mdit_py_plugins-0.3.3-py3-none-any.whl (50 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m50.5/50.5 kB\u001b[0m \u001b[31m1.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting linkify-it-py~=1.0\n", " Downloading linkify_it_py-1.0.3-py3-none-any.whl (19 kB)\n", "Requirement already satisfied: fonttools>=4.22.0 in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from matplotlib->gradio) (4.38.0)\n", "Requirement already satisfied: pyparsing>=2.2.1 in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from matplotlib->gradio) (3.0.9)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from matplotlib->gradio) (1.4.4)\n", "Requirement already satisfied: packaging>=20.0 in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from matplotlib->gradio) (23.0)\n", "Requirement already satisfied: cycler>=0.10 in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from matplotlib->gradio) (0.11.0)\n", "Requirement already satisfied: contourpy>=1.0.1 in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from matplotlib->gradio) (1.0.7)\n", "Requirement already satisfied: six>=1.4.0 in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from python-multipart->gradio) (1.16.0)\n", "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from requests->gradio) (1.26.14)\n", "Requirement already satisfied: idna<4,>=2.5 in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from requests->gradio) (3.4)\n", "Requirement already satisfied: click>=7.0 in /Users/sirialay/.pyenv/versions/3.10.9/lib/python3.10/site-packages (from uvicorn->gradio) (8.1.3)\n", "Collecting h11>=0.8\n", " Downloading h11-0.14.0-py3-none-any.whl (58 kB)\n", "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m58.3/58.3 kB\u001b[0m \u001b[31m1.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0\n", " Using cached pyrsistent-0.19.3-cp310-cp310-macosx_10_9_universal2.whl (82 kB)\n", "Collecting uc-micro-py\n", " Downloading uc_micro_py-1.0.1-py3-none-any.whl (6.2 kB)\n", "Installing collected packages: rfc3986, pydub, ffmpy, websockets, uc-micro-py, toolz, sniffio, python-multipart, pyrsistent, pycryptodome, orjson, multidict, mdurl, h11, fsspec, frozenlist, entrypoints, charset-normalizer, attrs, async-timeout, aiofiles, yarl, uvicorn, markdown-it-py, linkify-it-py, jsonschema, anyio, aiosignal, starlette, mdit-py-plugins, httpcore, altair, aiohttp, httpx, fastapi, gradio\n", "\u001b[33m DEPRECATION: ffmpy is being installed using the legacy 'setup.py install' method, because it does not have a 'pyproject.toml' and the 'wheel' package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at https://github.com/pypa/pip/issues/8559\u001b[0m\u001b[33m\n", "\u001b[0m Running setup.py install for ffmpy ... \u001b[?25ldone\n", "\u001b[?25h\u001b[33m DEPRECATION: python-multipart is being installed using the legacy 'setup.py install' method, because it does not have a 'pyproject.toml' and the 'wheel' package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at https://github.com/pypa/pip/issues/8559\u001b[0m\u001b[33m\n", "\u001b[0m Running setup.py install for python-multipart ... \u001b[?25ldone\n", "\u001b[?25h Attempting uninstall: charset-normalizer\n", " Found existing installation: charset-normalizer 3.0.1\n", " Uninstalling charset-normalizer-3.0.1:\n", " Successfully uninstalled charset-normalizer-3.0.1\n", "Successfully installed aiofiles-22.1.0 aiohttp-3.8.3 aiosignal-1.3.1 altair-4.2.2 anyio-3.6.2 async-timeout-4.0.2 attrs-22.2.0 charset-normalizer-2.1.1 entrypoints-0.4 fastapi-0.89.1 ffmpy-0.3.0 frozenlist-1.3.3 fsspec-2023.1.0 gradio-3.17.0 h11-0.14.0 httpcore-0.16.3 httpx-0.23.3 jsonschema-4.17.3 linkify-it-py-1.0.3 markdown-it-py-2.1.0 mdit-py-plugins-0.3.3 mdurl-0.1.2 multidict-6.0.4 orjson-3.8.5 pycryptodome-3.17 pydub-0.25.1 pyrsistent-0.19.3 python-multipart-0.0.5 rfc3986-1.5.0 sniffio-1.3.0 starlette-0.22.0 toolz-0.12.0 uc-micro-py-1.0.1 uvicorn-0.20.0 websockets-10.4 yarl-1.8.2\n", "Note: you may need to restart the kernel to use updated packages.\n" ] } ], "source": [ "pip install gradio" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "pip install nbdev" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "#|export\n", "from fastai.vision.all import *\n", "import gradio as gr\n", "def is_cal(x): return x[0].isupper()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "PILImage mode=RGB size=192x128" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "im = PILImage.create('dog.jpg')\n", "im.thumbnail((192,192))\n", "im" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[31mERROR: Could not find a version that satisfies the requirement pickle (from versions: none)\u001b[0m\u001b[31m\n", "\u001b[0m\u001b[31mERROR: No matching distribution found for pickle\u001b[0m\u001b[31m\n", "\u001b[0mNote: you may need to restart the kernel to use updated packages.\n" ] } ], "source": [ "pip install pickle" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "#|export\n", "\n", "def is_cat(x): return x[0].isupper() \n", "learn = load_learner('firstModel.pkl')" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 326 ms, sys: 43 ms, total: 369 ms\n", "Wall time: 88.8 ms\n" ] }, { "data": { "text/plain": [ "('False', TensorBase(0), TensorBase([9.9999e-01, 9.4750e-06]))" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%time learn.predict(im)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "#|export\n", "categories = ('Dog', 'Cat')\n", "\n", "def classify_image(img):\n", " pred, idx, probs = learn.predict(img)\n", " return dict(zip(categories, map(float,probs)))" ] }, { "cell_type": "code", "execution_count": 24, "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.9999905824661255, 'Cat': 9.47504031501012e-06}" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "classify_image(im)" ] }, { "cell_type": "code", "execution_count": 29, "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": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#|export\n", "image = gr.components.Image(shape=(192,192))\n", "label = gr.components.Label()\n", "examples = ['dog.jpg', 'cat.jpg', 'dunno.jpg']\n", "intf = gr.Interface(fn=classify_image, inputs=image, outputs=label, examples=examples)\n", "intf.launch(inline=False)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [], "source": [ "m = learn.model" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "ps = list(m.parameters())" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Parameter containing:\n", "tensor([ 2.3503e-01, 2.6700e-01, -5.1096e-08, 5.1818e-01, 3.4404e-09,\n", " 2.2208e-01, 4.2211e-01, 1.3153e-07, 2.5169e-01, 1.5152e-06,\n", " 3.1713e-01, 2.4995e-01, 3.7831e-01, 1.0862e-05, 2.7618e-01,\n", " 2.3612e-01, 2.4140e-01, 3.9409e-01, 4.7045e-01, 2.9121e-01,\n", " 2.7205e-01, 2.7832e-01, 2.8961e-01, 2.0650e-01, 2.6022e-01,\n", " 2.7930e-01, 2.9164e-01, 3.1705e-01, 3.8948e-01, 3.0270e-01,\n", " 2.6767e-01, 2.1190e-01, 2.8821e-01, 3.3211e-01, 4.2868e-01,\n", " 3.7370e-01, 7.4804e-08, 1.8990e-01, 1.4740e-08, 2.2459e-01,\n", " 1.7950e-01, 2.4909e-01, 2.7276e-01, 2.5831e-01, 2.9357e-01,\n", " 2.9820e-01, 2.2402e-01, 2.6439e-01, 2.2001e-08, 2.6465e-01,\n", " 2.2030e-01, 2.8264e-01, 3.3099e-01, 2.2715e-01, 3.6636e-01,\n", " 2.1304e-01, 2.3877e-01, 2.4993e-01, 5.2532e-01, 2.4745e-01,\n", " 2.9553e-01, 2.5887e-01, 4.8428e-01, 2.6620e-01],\n", " requires_grad=True)" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ps[1]" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "torch.Size([64, 3, 7, 7])" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ps[0].shape" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Parameter containing:\n", "tensor([[[[-1.0330e-02, -6.0512e-03, -1.7388e-03, ..., 5.6707e-02,\n", " 1.7213e-02, -1.2563e-02],\n", " [ 1.1125e-02, 9.5912e-03, -1.0985e-01, ..., -2.7113e-01,\n", " -1.2895e-01, 3.8773e-03],\n", " [-6.9224e-03, 5.9125e-02, 2.9552e-01, ..., 5.1979e-01,\n", " 2.5642e-01, 6.3673e-02],\n", " ...,\n", " [-2.7530e-02, 1.6068e-02, 7.2584e-02, ..., -3.3283e-01,\n", " -4.2053e-01, -2.5776e-01],\n", " [ 3.0588e-02, 4.0949e-02, 6.2819e-02, ..., 4.1381e-01,\n", " 3.9358e-01, 1.6608e-01],\n", " [-1.3788e-02, -3.7108e-03, -2.4117e-02, ..., -1.5074e-01,\n", " -8.2264e-02, -5.7989e-03]],\n", "\n", " [[-1.1364e-02, -2.6598e-02, -3.4625e-02, ..., 3.2565e-02,\n", " 7.5217e-04, -2.5623e-02],\n", " [ 4.5671e-02, 3.3606e-02, -1.0451e-01, ..., -3.1248e-01,\n", " -1.6043e-01, -1.1654e-03],\n", " [-8.6513e-04, 9.8401e-02, 4.0207e-01, ..., 7.0789e-01,\n", " 3.6891e-01, 1.2463e-01],\n", " ...,\n", " [-5.5963e-02, -5.2493e-03, 2.7013e-02, ..., -4.6182e-01,\n", " -5.7081e-01, -3.6550e-01],\n", " [ 3.2795e-02, 5.5510e-02, 9.9582e-02, ..., 5.4626e-01,\n", " 4.8270e-01, 1.9865e-01],\n", " [ 5.2154e-03, 6.6074e-03, -1.7337e-02, ..., -1.4833e-01,\n", " -7.7330e-02, 6.6890e-04]],\n", "\n", " [[-2.0391e-03, -9.1873e-03, 2.1179e-02, ..., 8.9199e-02,\n", " 3.3731e-02, -2.0009e-02],\n", " [ 1.5349e-02, -1.8689e-02, -1.2593e-01, ..., -2.5340e-01,\n", " -1.2975e-01, -2.7890e-02],\n", " [ 9.7859e-03, 4.8982e-02, 2.1693e-01, ..., 3.4870e-01,\n", " 1.0435e-01, 1.8461e-02],\n", " ...,\n", " [-2.8425e-02, 1.8334e-02, 9.8547e-02, ..., -1.1746e-01,\n", " -2.5764e-01, -1.5451e-01],\n", " [ 2.0683e-02, -2.7144e-03, -3.7926e-02, ..., 2.4131e-01,\n", " 2.4337e-01, 1.1792e-01],\n", " [ 6.5445e-04, 6.8065e-04, -1.0149e-02, ..., -1.4876e-01,\n", " -1.1763e-01, -3.8397e-02]]],\n", "\n", "\n", " [[[-4.4737e-03, -4.0995e-03, 3.1442e-03, ..., -3.7061e-02,\n", " -2.5241e-02, -4.8030e-02],\n", " [ 5.1237e-02, 5.3365e-02, 8.0421e-02, ..., 1.4476e-01,\n", " 1.4278e-01, 1.2303e-01],\n", " [-7.3838e-03, 2.1343e-03, 3.7544e-02, ..., 6.1471e-02,\n", " 8.0234e-02, 1.1705e-01],\n", " ...,\n", " [-2.6789e-02, -1.2299e-01, -1.3656e-01, ..., -1.4077e-01,\n", " -1.1169e-01, -4.9670e-02],\n", " [ 2.3476e-02, -1.7332e-02, -1.1161e-02, ..., -1.8899e-02,\n", " -2.3454e-02, -2.9573e-02],\n", " [ 2.8620e-02, 2.1609e-02, 4.7828e-02, ..., 2.5414e-02,\n", " 3.5206e-02, 1.1147e-02]],\n", "\n", " [[ 4.0117e-04, 1.2110e-02, 4.2009e-02, ..., 4.6368e-02,\n", " 4.0351e-02, -1.4504e-02],\n", " [ 4.3396e-02, 6.8747e-02, 1.3265e-01, ..., 2.8604e-01,\n", " 2.6898e-01, 2.0927e-01],\n", " [-5.7671e-02, -2.2673e-02, 3.0509e-02, ..., 1.3760e-01,\n", " 1.6529e-01, 1.7938e-01],\n", " ...,\n", " [-1.0818e-01, -2.5227e-01, -2.9744e-01, ..., -2.8510e-01,\n", " -2.1507e-01, -1.0331e-01],\n", " [ 4.0676e-02, -3.2794e-02, -6.3477e-02, ..., -9.2429e-02,\n", " -7.0017e-02, -4.9957e-02],\n", " [ 8.2873e-02, 8.7529e-02, 1.0105e-01, ..., 5.2629e-02,\n", " 6.0819e-02, 4.1046e-02]],\n", "\n", " [[-1.6472e-02, -1.3919e-02, 5.2483e-03, ..., 4.3668e-02,\n", " 2.2649e-02, -4.6039e-02],\n", " [ 3.3127e-02, 4.1980e-02, 9.3475e-02, ..., 2.6159e-01,\n", " 2.2963e-01, 1.6687e-01],\n", " [-4.6046e-02, -1.6399e-02, 2.6773e-02, ..., 1.4949e-01,\n", " 1.3209e-01, 1.3571e-01],\n", " ...,\n", " [-7.2168e-02, -1.8903e-01, -2.3391e-01, ..., -1.9044e-01,\n", " -1.5621e-01, -7.6083e-02],\n", " [ 5.1114e-02, -2.5852e-02, -6.9388e-02, ..., -5.9061e-02,\n", " -6.1681e-02, -4.4669e-02],\n", " [ 1.1166e-01, 7.8921e-02, 6.5787e-02, ..., 3.1548e-02,\n", " 2.5094e-02, 7.2867e-03]]],\n", "\n", "\n", " [[[-7.0824e-08, -6.4305e-08, -7.3805e-08, ..., -9.7998e-08,\n", " -1.0904e-07, -8.3420e-08],\n", " [-6.1124e-09, 2.0612e-09, -8.0921e-09, ..., -4.9840e-08,\n", " -4.3835e-08, -3.0537e-09],\n", " [ 7.1952e-08, 7.5615e-08, 5.9281e-08, ..., -9.7507e-09,\n", " -1.0951e-09, 4.2442e-08],\n", " ...,\n", " [ 9.5887e-08, 1.0039e-07, 7.9816e-08, ..., -1.7490e-08,\n", " -4.7665e-08, -1.3265e-08],\n", " [ 1.2904e-07, 1.4761e-07, 1.7476e-07, ..., 1.3232e-07,\n", " 1.0628e-07, 9.3314e-08],\n", " [ 1.2558e-07, 1.3644e-07, 1.8431e-07, ..., 2.1398e-07,\n", " 1.7709e-07, 1.7166e-07]],\n", "\n", " [[-1.2690e-07, -9.6137e-08, -1.0372e-07, ..., -1.1808e-07,\n", " -1.3309e-07, -1.0819e-07],\n", " [-5.7412e-08, -2.5054e-08, -3.0114e-08, ..., -7.2921e-08,\n", " -6.7021e-08, -2.2574e-08],\n", " [ 2.1813e-08, 4.8608e-08, 3.1221e-08, ..., -1.8694e-08,\n", " -7.9589e-09, 3.9749e-08],\n", " ...,\n", " [ 5.6012e-08, 7.5524e-08, 4.4495e-08, ..., -4.4127e-08,\n", " -5.9929e-08, -1.8247e-08],\n", " [ 7.7612e-08, 9.8346e-08, 1.0455e-07, ..., 6.3270e-08,\n", " 4.1780e-08, 4.5900e-08],\n", " [ 5.9832e-08, 7.1005e-08, 9.0435e-08, ..., 1.1654e-07,\n", " 8.7549e-08, 9.8835e-08]],\n", "\n", " [[-4.3809e-08, 1.3270e-08, 7.8274e-09, ..., -5.8803e-09,\n", " -2.6217e-08, -1.5649e-08],\n", " [ 4.1699e-08, 1.0777e-07, 1.0946e-07, ..., 7.6402e-08,\n", " 7.1449e-08, 9.7613e-08],\n", " [ 1.0436e-07, 1.6585e-07, 1.5933e-07, ..., 1.3517e-07,\n", " 1.3487e-07, 1.6448e-07],\n", " ...,\n", " [ 9.8762e-08, 1.5072e-07, 1.2546e-07, ..., 6.8314e-08,\n", " 6.8381e-08, 1.1367e-07],\n", " [ 9.1433e-08, 1.3576e-07, 1.3793e-07, ..., 1.1678e-07,\n", " 1.1723e-07, 1.4394e-07],\n", " [ 6.2181e-08, 8.8183e-08, 1.0456e-07, ..., 1.3941e-07,\n", " 1.3332e-07, 1.5844e-07]]],\n", "\n", "\n", " ...,\n", "\n", "\n", " [[[-6.1870e-02, -3.0230e-02, 1.9143e-02, ..., 4.3491e-02,\n", " -2.2309e-02, -4.2370e-02],\n", " [-3.8035e-02, 6.0470e-03, 4.5741e-02, ..., 9.5880e-02,\n", " 5.9049e-02, 2.9803e-02],\n", " [-2.9600e-02, 2.8136e-03, 2.0485e-02, ..., 5.9744e-02,\n", " 4.1292e-02, 2.3049e-02],\n", " ...,\n", " [ 1.2093e-02, 4.5899e-02, 4.5078e-02, ..., 4.7460e-02,\n", " 2.2400e-02, -5.4104e-03],\n", " [-3.2266e-02, -1.2011e-02, 2.2198e-02, ..., 5.8104e-02,\n", " -7.4091e-03, -5.9640e-02],\n", " [-4.3089e-02, -2.7978e-02, -5.7784e-03, ..., 8.8513e-02,\n", " 8.5076e-03, -4.9877e-02]],\n", "\n", " [[-6.1257e-02, -1.4018e-02, 1.7157e-02, ..., 1.8110e-02,\n", " -3.2972e-02, -4.1302e-02],\n", " [-3.1430e-02, 2.4489e-02, 4.5513e-02, ..., 6.6575e-02,\n", " 4.6387e-02, 3.3001e-02],\n", " [-3.2088e-02, 2.0809e-02, 2.3437e-02, ..., 3.5129e-02,\n", " 3.6257e-02, 3.1139e-02],\n", " ...,\n", " [ 1.8012e-02, 6.1314e-02, 4.8516e-02, ..., 3.7853e-02,\n", " 2.9021e-02, 1.4035e-02],\n", " [-1.0594e-02, 2.2352e-02, 4.2983e-02, ..., 6.0328e-02,\n", " 1.6286e-02, -1.2426e-02],\n", " [-2.1968e-02, 1.3486e-02, 3.1116e-02, ..., 1.0412e-01,\n", " 4.0185e-02, -5.2075e-03]],\n", "\n", " [[-8.5289e-02, -4.2618e-02, 6.7669e-03, ..., 3.0576e-02,\n", " -3.5024e-02, -5.0131e-02],\n", " [-2.9130e-02, 1.8210e-02, 5.1110e-02, ..., 9.0088e-02,\n", " 5.3242e-02, 4.0007e-02],\n", " [-3.9788e-02, -9.9562e-04, 9.7133e-03, ..., 2.4037e-02,\n", " 2.6156e-02, 2.5393e-02],\n", " ...,\n", " [-2.9039e-03, 3.0702e-02, 1.6525e-02, ..., 5.5685e-03,\n", " -6.1271e-03, -8.3687e-03],\n", " [-2.2664e-02, -2.5280e-03, 2.3431e-02, ..., 3.5978e-02,\n", " -1.4181e-02, -3.2330e-02],\n", " [-9.5313e-03, 7.3606e-03, 1.0907e-02, ..., 7.0602e-02,\n", " 1.3093e-02, -8.2049e-03]]],\n", "\n", "\n", " [[[-7.9144e-03, 1.9891e-02, 3.4180e-02, ..., 2.8678e-02,\n", " 1.2793e-02, 1.8125e-02],\n", " [ 8.6972e-03, -3.2965e-02, -3.5795e-02, ..., 7.2456e-02,\n", " 4.5816e-02, 5.2291e-02],\n", " [-3.6273e-02, -1.1897e-01, -1.3783e-01, ..., 3.3718e-02,\n", " 3.7721e-02, 2.6849e-02],\n", " ...,\n", " [ 1.7099e-02, 3.7578e-03, -8.3895e-03, ..., 2.6565e-03,\n", " 1.8196e-02, 1.5932e-02],\n", " [-1.1555e-03, 1.6227e-02, 1.6975e-02, ..., 3.2469e-03,\n", " 2.2711e-02, 4.9892e-04],\n", " [ 5.9337e-03, 2.6903e-02, 1.4140e-02, ..., 7.4187e-03,\n", " 1.8586e-02, 1.5436e-02]],\n", "\n", " [[-1.3340e-02, -3.6273e-04, 8.2080e-03, ..., -5.9956e-03,\n", " 9.3086e-03, 1.5834e-02],\n", " [-1.8346e-02, -6.7890e-02, -7.0612e-02, ..., 2.9835e-02,\n", " 2.6233e-02, 2.3733e-02],\n", " [-5.4442e-02, -1.4673e-01, -1.6220e-01, ..., 1.1755e-02,\n", " 3.2442e-02, 1.1935e-02],\n", " ...,\n", " [ 6.6826e-04, -1.7707e-02, -1.9623e-02, ..., -4.1708e-03,\n", " 2.4596e-02, 1.2796e-02],\n", " [-7.8226e-04, 1.1663e-02, 2.4705e-02, ..., 6.0505e-03,\n", " 3.9111e-02, 9.5353e-03],\n", " [-7.4060e-03, 6.4880e-03, 5.1153e-03, ..., -7.7370e-03,\n", " 2.7098e-02, 1.7558e-02]],\n", "\n", " [[-6.7910e-05, -4.7104e-03, 2.4969e-03, ..., -4.7755e-02,\n", " -2.5994e-02, -2.3386e-02],\n", " [-2.1530e-04, -5.1260e-02, -5.9783e-02, ..., -1.7295e-02,\n", " -2.3304e-02, -3.7301e-02],\n", " [-2.2642e-02, -9.9346e-02, -1.1169e-01, ..., -1.1656e-02,\n", " -8.3511e-03, -4.0614e-02],\n", " ...,\n", " [ 1.1351e-02, -8.0518e-03, -1.4704e-03, ..., -3.4123e-02,\n", " -8.7647e-03, -2.3593e-02],\n", " [ 2.8765e-03, 6.0014e-04, 1.9871e-02, ..., -2.2040e-02,\n", " 1.4731e-02, -1.4601e-02],\n", " [-1.9292e-02, -2.9624e-02, -2.3424e-02, ..., -4.8709e-02,\n", " -1.3207e-02, -2.4535e-02]]],\n", "\n", "\n", " [[[-3.6316e-02, 7.1413e-03, 1.9021e-02, ..., 1.9496e-02,\n", " 1.4783e-02, -1.7412e-02],\n", " [-1.1108e-02, 8.5584e-02, 1.2657e-01, ..., 1.3627e-02,\n", " -1.6935e-04, -3.0296e-02],\n", " [ 1.1316e-01, 1.8626e-01, 5.0551e-02, ..., -1.7344e-01,\n", " -7.2151e-02, -6.2597e-02],\n", " ...,\n", " [-5.3171e-02, -2.5793e-01, -2.6762e-01, ..., 2.6762e-01,\n", " 1.4328e-01, 5.4966e-02],\n", " [-2.1139e-02, -3.0105e-02, 1.0230e-01, ..., 2.0825e-01,\n", " -4.2950e-03, -3.8264e-02],\n", " [-2.2297e-02, 1.2237e-02, 8.4144e-02, ..., -4.5165e-02,\n", " -1.4702e-01, -9.1023e-02]],\n", "\n", " [[-5.3755e-03, 3.2787e-02, 1.5456e-02, ..., -7.7974e-03,\n", " 2.9922e-03, 1.0702e-03],\n", " [ 6.1726e-02, 1.4897e-01, 1.4641e-01, ..., -2.8946e-02,\n", " -2.0271e-02, -9.2452e-03],\n", " [ 1.6146e-01, 2.0885e-01, -2.5630e-02, ..., -2.7282e-01,\n", " -1.0739e-01, -6.3016e-02],\n", " ...,\n", " [-1.3724e-01, -4.0866e-01, -3.8555e-01, ..., 4.0837e-01,\n", " 2.6196e-01, 1.3483e-01],\n", " [-5.9424e-02, -6.1237e-02, 1.4191e-01, ..., 3.5771e-01,\n", " 9.0836e-02, -1.8015e-03],\n", " [ 7.8026e-03, 5.8342e-02, 1.5332e-01, ..., 4.6963e-02,\n", " -1.0101e-01, -9.7971e-02]],\n", "\n", " [[-5.6288e-03, 1.3456e-02, -2.6459e-02, ..., 4.4641e-03,\n", " 2.0773e-03, 1.3910e-02],\n", " [ 6.6507e-03, 4.5226e-02, 6.0264e-02, ..., 1.4352e-02,\n", " -5.0630e-03, 4.0693e-03],\n", " [ 5.5311e-02, 1.2402e-01, 4.3194e-02, ..., -1.4485e-01,\n", " -7.4469e-02, -5.7501e-02],\n", " ...,\n", " [-3.1471e-02, -1.6331e-01, -1.5793e-01, ..., 2.2904e-01,\n", " 1.2019e-01, 7.1989e-02],\n", " [-1.0454e-02, -1.1219e-03, 8.4585e-02, ..., 1.5747e-01,\n", " 2.2152e-02, -1.0080e-02],\n", " [-4.8868e-03, -5.0162e-03, 3.6333e-02, ..., -2.4377e-02,\n", " -7.1194e-02, -6.6785e-02]]]], requires_grad=True)" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ps[0]" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "import nbdev\n", "nbdev.export.nb_export('app.ipynb', 'app')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#notebook2script('app.ipynb')" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.10.9" }, "orig_nbformat": 4, "vscode": { "interpreter": { "hash": "d342da369c35bab742f626f11a9c6dfee32a10dfa19d1903136a4fcacb90f8fb" } } }, "nbformat": 4, "nbformat_minor": 2 }