Spaces:
Runtime error
Runtime error
File size: 5,860 Bytes
a9eafd0 6d41343 a9eafd0 6d41343 a9eafd0 6d41343 a9eafd0 6d41343 a9eafd0 6d41343 a9eafd0 6d41343 a9eafd0 6d41343 a9eafd0 6d41343 a9eafd0 6d41343 a9eafd0 6d41343 a9eafd0 6d41343 a9eafd0 6d41343 a9eafd0 6d41343 a9eafd0 6d41343 a9eafd0 6d41343 a9eafd0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 |
{
"cells": [
{
"cell_type": "markdown",
"id": "fb0b148e",
"metadata": {},
"source": [
"# This notebook is the .ipynb file for the model. \n",
"The code has been commmented in order to explain various parts, including the unused commented out parts."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "e39e2ed1",
"metadata": {},
"outputs": [],
"source": [
"#|default_exp app"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "d671a893",
"metadata": {},
"outputs": [],
"source": [
"# The various ~| comments are needed to turn this into a .py file\n",
"# The export comments specify to export said cell"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "435a6f23",
"metadata": {},
"outputs": [],
"source": [
"# On my computer, I use Anaconda, where these packages are already installed, so there is no need to install them on the notebook\n",
"# On HuggingFaceSpaces, these packages have been put into requirements.txt so that the website installs them\n",
"# Therefore there is no need to install them \n",
"\n",
"#%pip install -q gradio\n",
"#%pip install fastbook\n",
"#%pip install -Uqq fastai"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "a89a7628",
"metadata": {},
"outputs": [],
"source": [
"#|export\n",
"# Importing neccesary modules\n",
"import fastbook\n",
"fastbook.setup_book()\n",
"from fastbook import *\n",
"from fastai.vision.widgets import *\n",
"from fastai.vision.all import *\n",
"import gradio as gr"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "8c95d6bd",
"metadata": {},
"outputs": [],
"source": [
"# There was an error with the module Pillow, it was not updated and I attempted to update it within the notebook\n",
"# This was not neccesary as I updated Pillow on my anaconda app and it fixed it.\n",
"\n",
"#!pip uninstall Pillow\n",
"#!pip install Pillow"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "fe4889a5",
"metadata": {},
"outputs": [],
"source": [
"# There was an error the first time I ran this code on the notebook: \"NotImplementedError: cannot instantiate 'PosixPath' on your system\"\n",
"# this code fixed it, but as it is suited for windows,\n",
"# this causes an error on HuggingSpaceFaces, which likely uses linux. \n",
"# Strangely, simply commenting this code out does not cause the initial error on HuggingFaceSpaces and works for it\n",
"\n",
"import pathlib\n",
"temp = pathlib.PosixPath\n",
"pathlib.PosixPath = pathlib.WindowsPath"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d1d0d596",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\Adnan\\anaconda3\\lib\\site-packages\\gradio\\inputs.py:256: 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",
"C:\\Users\\Adnan\\anaconda3\\lib\\site-packages\\gradio\\deprecation.py:40: UserWarning: `optional` parameter is deprecated, and it has no effect\n",
" warnings.warn(value)\n",
"C:\\Users\\Adnan\\anaconda3\\lib\\site-packages\\gradio\\outputs.py:196: 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",
"C:\\Users\\Adnan\\anaconda3\\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"
]
}
],
"source": [
"#|export\n",
"learn_inf = load_learner('NovaOrToastModel.pkl') # Loading the model\n",
"learn_inf.dls.vocab # Returns a list of the categories\n",
"categories = learn_inf.dls.vocab\n",
"\n",
"# Gradio code:\n",
"\n",
"# Function for Gradio to use to classify images\n",
"def classify_image(img):\n",
" pred, idx, probs = learn_inf.predict(img)\n",
" return dict(zip(categories, map(float,probs)))\n",
"\n",
"image = gr.inputs.Image(shape=(192,192)) \n",
"label = gr.outputs.Label()\n",
"examples = [\"ToastTest.jpeg\"]\n",
"\n",
"intf = gr.Interface(fn=classify_image, inputs=image, outputs=label, examples=examples)\n",
"intf.launch(inline=False)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "300585db",
"metadata": {},
"outputs": [],
"source": [
"# Notebook2script simply turns the specified cells into a .py file for usage in HuggingFaceSpaces\n",
"from nbdev.export import notebook2script\n",
"\n",
"# There were many problems getting notebook2script to work\n",
"# The fix was to add a text document into the folder called 'settings.ini', for which I used the author's standard settings\n",
"# which works\n",
"\n",
"notebook2script('NovaOrToast.ipynb')"
]
}
],
"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.9.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
|