{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "f44b5ee2-9468-4973-8fd9-a75d721ab57f", "metadata": {}, "outputs": [], "source": [ "#|default_exp app" ] }, { "cell_type": "code", "execution_count": 3, "id": "da1f66e0-90ef-4ae7-9d1b-f74cd1a77765", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "D:\\learning\\venv\\dog-cat-classifier\\lib\\site-packages\\tqdm\\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", " from .autonotebook import tqdm as notebook_tqdm\n" ] } ], "source": [ "#|export\n", "from fastai.vision.all import *\n", "import gradio as gr\n", "\n", "def is_cat(x): return x[:3] == 'cat'" ] }, { "cell_type": "code", "execution_count": 4, "id": "1788db07", "metadata": {}, "outputs": [ { "data": { "image/png": "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55z33huHCtVULyIxZ9WkqhXvcjeGWIqC1LasM0JGqtPRWWsMOmeAJBVlkClNJSfYAKh288VP/vAPHj/+8tXr629+C/rdaF1w1kohwtaQTENUtN66IccQQuJJRbwPs25pnPfNbL6Yv3lw2HaLNA5D3t6fz3aXZ59+9OF2c/OD732fclzfXP/d3/7no8ODw8ODvLuxXL548ul62z988xvjbpf6jQXZ3FzdO71njHv+6kylnJ1fnJ9f+RAOVqv1xctvPDgcb85fP3ussce37y+Wy7Rbf/iz//r06dPZbDabzbrZbLi53F2dH83b7eXZL3/54Td+7/vkvER4dP/++esXhDQMQ04TkgTvgnOCsut3IjKbdU3T1mERQjDGqpbCSfZSAkuV001Ye46IaIxt21YFUsy1bsoszrlhGET46Oj4L/7iz1+8ePHBz37++eNnBwfL1WqVYt61/Ww2m3fzNx+dOudK4ZijojDzer1W1cVi4b2vq+GdReStt94SFTufL+oGe5qmKvoU0aZpjo6O9nwEcoiUc3HOI8p2e01ER0fHITQpxVJ4mEYyaK1DxNr/ijFO02SMqbPU3h1GFOMNCIjqer313qeU45QQYUwlsQhrydlZd7haOeOES875waPTL19enZ1deO8AYLsbjo9O1tteEVWdMTbn4l0jqNaKtdaFgMbGmAlx0XUHq5XzzWaziWNM/e6XP//ZRx/8bNF1x//yj7989vjxZ5+ev3z+8ORQczSo3sBvPvrlzXb35ptvzUNzvJjtri7SzrfBG+viVJzDq6srAiWQcXs9BHv24vnpqjtcdq+encVpys58fnU57jZ5HGoEXNf464uzk8PVbn399LNPJ9Wnnz1++71vnF9enp4c/ePjT6WUR48ePXp4L6bJGuzmnYJ4H2KMzKIC3jXWioqmmK21h4cniBhTJMIQWlWpwi7mLCLeuxBaUPCuFWbrnLV2u92q4nw+F1Hm8s33vvWtd9599cWXH3300cf//GnXtd/73u/2w8gCVzfrd999dzGfewkCIszWekN0dHicUvK+OTw4YpbtdsMl1YBk2zTdbrstzF3XtW2joq6x3rlStn2/C6HpZm2c0jAOtQ/fNjPnHChO4zROo7AoaRpizVkKwTdNY61t29nx8XGMcRiG+XzunOv7HaFtmmaaJu+btm1zzjfX63EcBQGKAGBzsGya1iLl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", "text/plain": [ "PILImage mode=RGB size=192x128" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "im = PILImage.create('dog1.jpg')\n", "im.thumbnail((192,192))\n", "im" ] }, { "cell_type": "code", "execution_count": 5, "id": "b4174682", "metadata": {}, "outputs": [], "source": [ "import pathlib\n", "temp = pathlib.PosixPath\n", "pathlib.PosixPath = pathlib.WindowsPath" ] }, { "cell_type": "code", "execution_count": 6, "id": "56f2b40e", "metadata": {}, "outputs": [], "source": [ "#|export\n", "learn = load_learner('model.pkl')" ] }, { "cell_type": "code", "execution_count": 8, "id": "9fb0f946", "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": [ "('True', tensor(1), tensor([7.4301e-14, 1.0000e+00]))" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# learn.predict(im) # --> not working in new fastai version\n", "learn.predict('cat1.jpg')" ] }, { "cell_type": "code", "execution_count": 9, "id": "8747eae3", "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": 10, "id": "9289b5ba", "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': 1.5459818314411677e-08}" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# classify_image(im)\n", "classify_image('dog1.jpg')" ] }, { "cell_type": "code", "execution_count": 11, "id": "557068af", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "D:\\learning\\venv\\dog-cat-classifier\\lib\\site-packages\\gradio\\inputs.py:257: UserWarning: Usage of gradio.inputs is deprecated, and will not be supported in the future, please import your component from gradio.components\n", " warnings.warn(\n", "D:\\learning\\venv\\dog-cat-classifier\\lib\\site-packages\\gradio\\deprecation.py:40: UserWarning: `optional` parameter is deprecated, and it has no effect\n", " warnings.warn(value)\n", "D:\\learning\\venv\\dog-cat-classifier\\lib\\site-packages\\gradio\\outputs.py:197: UserWarning: Usage of gradio.outputs is deprecated, and will not be supported in the future, please import your components from gradio.components\n", " warnings.warn(\n", "D:\\learning\\venv\\dog-cat-classifier\\lib\\site-packages\\gradio\\deprecation.py:40: UserWarning: The 'type' parameter has been deprecated. Use the Number component instead.\n", " warnings.warn(value)\n" ] }, { "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": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#|export\n", "image = gr.inputs.Image(shape=(192,192))\n", "label = gr.outputs.Label()\n", "examples = ['dog1.jpg', 'cat1.jpg', 'dog2.jpg']\n", "\n", "intf = gr.Interface(\n", " fn=classify_image\n", " , inputs=image\n", " , outputs=label\n", " , examples=examples\n", ")\n", "intf.launch(inline=False)" ] }, { "cell_type": "markdown", "id": "6af2a7bb", "metadata": {}, "source": [ "# Export" ] }, { "cell_type": "code", "execution_count": 12, "id": "1b70f7a2", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Export successful\n" ] }, { "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": [ "import nbdev\n", "nbdev.export.nb_export('app.ipynb')\n", "print('Export successful')" ] }, { "cell_type": "code", "execution_count": null, "id": "4d101a63", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "dog-cat-classifier", "language": "python", "name": "dog-cat-classifier" }, "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.7" }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 5 }