{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "28c84277-73ae-45ee-b0cb-7518ea2a588b", "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "plt.style.use('dark_background')" ] }, { "cell_type": "code", "execution_count": 2, "id": "311970df-d109-452d-a843-c31048daf6e3", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/camaro/anaconda3/envs/gradio/lib/python3.8/site-packages/torch/_tensor.py:1051: UserWarning: torch.solve is deprecated in favor of torch.linalg.solveand will be removed in a future PyTorch release.\n", "torch.linalg.solve has its arguments reversed and does not return the LU factorization.\n", "To get the LU factorization see torch.lu, which can be used with torch.lu_solve or torch.lu_unpack.\n", "X = torch.solve(B, A).solution\n", "should be replaced with\n", "X = torch.linalg.solve(A, B) (Triggered internally at ../aten/src/ATen/native/BatchLinearAlgebra.cpp:766.)\n", " ret = func(*args, **kwargs)\n" ] } ], "source": [ "from fastai.vision.all import *\n", "path = untar_data(URLs.PETS)\n", "dls = ImageDataLoaders.from_name_re(path, get_image_files(path/'images'), pat='(.+)_\\d+.jpg', item_tfms=Resize(460), batch_tfms=aug_transforms(size=224, min_scale=0.75), bs=128)\n", "learn = cnn_learner(dls, models.resnet50, metrics=accuracy, cbs=[SaveModelCallback(), ShowGraphCallback()], opt_func=ranger)" ] }, { "cell_type": "code", "execution_count": 3, "id": "7b2f24f5-01ad-4985-9c94-2f77ddada959", "metadata": {}, "outputs": [ { "data": { "text/html": [], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "learn.freeze()\n", "lrs = learn.lr_find(end_lr=1e-1,suggest_funcs=(minimum, steep, valley, slide))" ] }, { "cell_type": "code", "execution_count": 4, "id": "02467fc3-7b1c-4566-a111-255c863c4b56", "metadata": {}, "outputs": [ { "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracytime
01.8579700.2878250.90189400:27
10.8256200.2091050.92963500:27
20.4793950.2026900.93031100:27
30.3301740.1937200.93572400:27
40.2369310.1791990.94452000:27
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 0 with valid_loss value: 0.28782516717910767.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 1 with valid_loss value: 0.20910464227199554.\n", "Better model found at epoch 2 with valid_loss value: 0.20268966257572174.\n", "Better model found at epoch 3 with valid_loss value: 0.19371958076953888.\n", "Better model found at epoch 4 with valid_loss value: 0.17919906973838806.\n" ] } ], "source": [ "learn.fit_flat_cos(5, lrs.slide)" ] }, { "cell_type": "code", "execution_count": 5, "id": "dbc34e30-6177-47ef-ba61-f27df79f67fa", "metadata": {}, "outputs": [ { "data": { "text/html": [], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "learn.unfreeze()\n", "lrs = learn.lr_find(end_lr=1e-1,suggest_funcs=(minimum, steep, valley, slide))" ] }, { "cell_type": "code", "execution_count": 6, "id": "c24ede3d-da06-40bf-875e-f305dc1052a9", "metadata": {}, "outputs": [ { "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracytime
00.1673300.1787930.94113700:29
10.1724210.1792970.94249000:29
20.1719470.1809340.94316600:30
30.1783770.1779240.94181300:30
40.1772070.1804800.94046000:30
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 0 with valid_loss value: 0.17879317700862885.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 3 with valid_loss value: 0.17792417109012604.\n" ] } ], "source": [ "learn.fit_flat_cos(5, 1e-7)" ] }, { "cell_type": "code", "execution_count": null, "id": "d51810d6-b7ce-4a81-be20-696762d86228", "metadata": {}, "outputs": [], "source": [ "# learn.fine_tune(50)\n", "learn.path = Path('.')\n", "learn.export()" ] }, { "cell_type": "code", "execution_count": null, "id": "ef4ffc95-6051-4354-af16-25477b279657", "metadata": {}, "outputs": [], "source": [ "from fastai.vision.all import *\n", "learn = load_learner('export.pkl')" ] }, { "cell_type": "code", "execution_count": null, "id": "49289d4b-7e8c-4264-bb03-8a0d851caf1c", "metadata": {}, "outputs": [], "source": [ "labels = learn.dls.vocab\n", "def predict(img):\n", " img = PILImage.create(img)\n", " pred,pred_idx,probs = learn.predict(img)\n", " return {labels[i]: float(probs[i]) for i in range(len(labels))}" ] }, { "cell_type": "code", "execution_count": null, "id": "a6b53fe8-ded5-4048-afd7-e488dc884aec", "metadata": {}, "outputs": [], "source": [ "import os\n", "for root, dirs, files in os.walk(r'sample_images/'):\n", " for filename in files:\n", " print(filename)" ] }, { "cell_type": "code", "execution_count": null, "id": "62fe5dc0-5fd1-4cc7-af8d-a325e3915173", "metadata": {}, "outputs": [], "source": [ "import gradio as gr\n", "\n", "title = \"Pet Breed Classifier\"\n", "description = \"A pet breed classifier trained on the Oxford Pets dataset\"\n", "interpretation='default'\n", "# examples = ['siamese.jpg', 'kitten.jpg']\n", "examples = [\"sample_images/\"+file for file in files] \n", "article=\"

Blog post

\"\n", "enable_queue=True\n", "\n", "gr.Interface(fn=predict,inputs=gr.inputs.Image(shape=(512, 512)),outputs=gr.outputs.Label(num_top_classes=3),title=title,description=description,article=article,examples=examples,interpretation=interpretation,enable_queue=enable_queue).launch(share=True)\n" ] }, { "cell_type": "code", "execution_count": null, "id": "65162304-6635-4cfb-95e1-cf12ceba09f4", "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.8.12" } }, "nbformat": 4, "nbformat_minor": 5 }