micky21 commited on
Commit
c615289
1 Parent(s): 0604869

Add App file

Browse files
Files changed (6) hide show
  1. app.ipynb +508 -0
  2. app.py +25 -4
  3. cat.jpeg +0 -0
  4. dog.jpeg +0 -0
  5. dunno.jpg +0 -0
  6. model.pkl +3 -0
app.ipynb ADDED
@@ -0,0 +1,508 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 1,
6
+ "id": "cc200a5d-cb9b-4a9d-b14d-fef3627bb390",
7
+ "metadata": {},
8
+ "outputs": [],
9
+ "source": [
10
+ "#|default_exp app"
11
+ ]
12
+ },
13
+ {
14
+ "cell_type": "code",
15
+ "execution_count": 11,
16
+ "id": "27206282-6350-4cc3-b518-c31bb95a4dc4",
17
+ "metadata": {},
18
+ "outputs": [],
19
+ "source": [
20
+ "#|export\n",
21
+ "from fastai.vision.all import *\n",
22
+ "import gradio as gr\n",
23
+ "\n",
24
+ "def is_cat(x): return x[0].isupper()"
25
+ ]
26
+ },
27
+ {
28
+ "cell_type": "code",
29
+ "execution_count": 10,
30
+ "id": "33a2c601-26a6-414c-a546-796dd8eed97f",
31
+ "metadata": {},
32
+ "outputs": [
33
+ {
34
+ "data": {
35
+ "image/jpeg": "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",
36
+ "image/png": "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",
37
+ "text/plain": [
38
+ "PILImage mode=RGB size=192x142"
39
+ ]
40
+ },
41
+ "execution_count": 10,
42
+ "metadata": {},
43
+ "output_type": "execute_result"
44
+ }
45
+ ],
46
+ "source": [
47
+ "im = PILImage.create(\"dog.jpeg\")\n",
48
+ "im.thumbnail((192,192))\n",
49
+ "im"
50
+ ]
51
+ },
52
+ {
53
+ "cell_type": "code",
54
+ "execution_count": 12,
55
+ "id": "ec3c53a5-68e7-42d5-b862-7f887e8d8c8d",
56
+ "metadata": {},
57
+ "outputs": [],
58
+ "source": [
59
+ "#|export\n",
60
+ "learn = load_learner(\"model.pkl\")"
61
+ ]
62
+ },
63
+ {
64
+ "cell_type": "code",
65
+ "execution_count": 13,
66
+ "id": "5c6c5b30-b495-4fc2-8e06-ddf0495e9888",
67
+ "metadata": {},
68
+ "outputs": [
69
+ {
70
+ "data": {
71
+ "text/html": [
72
+ "\n",
73
+ "<style>\n",
74
+ " /* Turns off some styling */\n",
75
+ " progress {\n",
76
+ " /* gets rid of default border in Firefox and Opera. */\n",
77
+ " border: none;\n",
78
+ " /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
79
+ " background-size: auto;\n",
80
+ " }\n",
81
+ " progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
82
+ " background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
83
+ " }\n",
84
+ " .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
85
+ " background: #F44336;\n",
86
+ " }\n",
87
+ "</style>\n"
88
+ ],
89
+ "text/plain": [
90
+ "<IPython.core.display.HTML object>"
91
+ ]
92
+ },
93
+ "metadata": {},
94
+ "output_type": "display_data"
95
+ },
96
+ {
97
+ "data": {
98
+ "text/html": [],
99
+ "text/plain": [
100
+ "<IPython.core.display.HTML object>"
101
+ ]
102
+ },
103
+ "metadata": {},
104
+ "output_type": "display_data"
105
+ },
106
+ {
107
+ "data": {
108
+ "text/plain": [
109
+ "('False', tensor(0), tensor([9.9998e-01, 1.6335e-05]))"
110
+ ]
111
+ },
112
+ "execution_count": 13,
113
+ "metadata": {},
114
+ "output_type": "execute_result"
115
+ }
116
+ ],
117
+ "source": [
118
+ "learn.predict(im)"
119
+ ]
120
+ },
121
+ {
122
+ "cell_type": "code",
123
+ "execution_count": 15,
124
+ "id": "9d2a0d3d-e751-4cd9-b014-0be84b8c9cae",
125
+ "metadata": {},
126
+ "outputs": [],
127
+ "source": [
128
+ "#|export\n",
129
+ "categories = (\"Dog\", \"Cat\")\n",
130
+ "\n",
131
+ "def classify_image(img):\n",
132
+ " pred, idx, probs = learn.predict(img)\n",
133
+ " return dict(zip(categories, map(float, probs)))"
134
+ ]
135
+ },
136
+ {
137
+ "cell_type": "code",
138
+ "execution_count": 16,
139
+ "id": "e9878253-602f-41ee-8cd0-c9a12364381a",
140
+ "metadata": {},
141
+ "outputs": [
142
+ {
143
+ "data": {
144
+ "text/html": [
145
+ "\n",
146
+ "<style>\n",
147
+ " /* Turns off some styling */\n",
148
+ " progress {\n",
149
+ " /* gets rid of default border in Firefox and Opera. */\n",
150
+ " border: none;\n",
151
+ " /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
152
+ " background-size: auto;\n",
153
+ " }\n",
154
+ " progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
155
+ " background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
156
+ " }\n",
157
+ " .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
158
+ " background: #F44336;\n",
159
+ " }\n",
160
+ "</style>\n"
161
+ ],
162
+ "text/plain": [
163
+ "<IPython.core.display.HTML object>"
164
+ ]
165
+ },
166
+ "metadata": {},
167
+ "output_type": "display_data"
168
+ },
169
+ {
170
+ "data": {
171
+ "text/html": [],
172
+ "text/plain": [
173
+ "<IPython.core.display.HTML object>"
174
+ ]
175
+ },
176
+ "metadata": {},
177
+ "output_type": "display_data"
178
+ },
179
+ {
180
+ "data": {
181
+ "text/plain": [
182
+ "{'Dog': 0.9999836683273315, 'Cat': 1.6334808606188744e-05}"
183
+ ]
184
+ },
185
+ "execution_count": 16,
186
+ "metadata": {},
187
+ "output_type": "execute_result"
188
+ }
189
+ ],
190
+ "source": [
191
+ "classify_image(im)"
192
+ ]
193
+ },
194
+ {
195
+ "cell_type": "code",
196
+ "execution_count": 21,
197
+ "id": "d8378b53-ebe1-43b8-8836-2e0f2c9990f8",
198
+ "metadata": {},
199
+ "outputs": [
200
+ {
201
+ "name": "stdout",
202
+ "output_type": "stream",
203
+ "text": [
204
+ "Running on local URL: http://127.0.0.1:7860\n",
205
+ "\n",
206
+ "To create a public link, set `share=True` in `launch()`.\n"
207
+ ]
208
+ },
209
+ {
210
+ "data": {
211
+ "text/plain": []
212
+ },
213
+ "execution_count": 21,
214
+ "metadata": {},
215
+ "output_type": "execute_result"
216
+ },
217
+ {
218
+ "data": {
219
+ "text/html": [
220
+ "\n",
221
+ "<style>\n",
222
+ " /* Turns off some styling */\n",
223
+ " progress {\n",
224
+ " /* gets rid of default border in Firefox and Opera. */\n",
225
+ " border: none;\n",
226
+ " /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
227
+ " background-size: auto;\n",
228
+ " }\n",
229
+ " progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
230
+ " background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
231
+ " }\n",
232
+ " .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
233
+ " background: #F44336;\n",
234
+ " }\n",
235
+ "</style>\n"
236
+ ],
237
+ "text/plain": [
238
+ "<IPython.core.display.HTML object>"
239
+ ]
240
+ },
241
+ "metadata": {},
242
+ "output_type": "display_data"
243
+ },
244
+ {
245
+ "data": {
246
+ "text/html": [],
247
+ "text/plain": [
248
+ "<IPython.core.display.HTML object>"
249
+ ]
250
+ },
251
+ "metadata": {},
252
+ "output_type": "display_data"
253
+ },
254
+ {
255
+ "data": {
256
+ "text/html": [
257
+ "\n",
258
+ "<style>\n",
259
+ " /* Turns off some styling */\n",
260
+ " progress {\n",
261
+ " /* gets rid of default border in Firefox and Opera. */\n",
262
+ " border: none;\n",
263
+ " /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
264
+ " background-size: auto;\n",
265
+ " }\n",
266
+ " progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
267
+ " background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
268
+ " }\n",
269
+ " .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
270
+ " background: #F44336;\n",
271
+ " }\n",
272
+ "</style>\n"
273
+ ],
274
+ "text/plain": [
275
+ "<IPython.core.display.HTML object>"
276
+ ]
277
+ },
278
+ "metadata": {},
279
+ "output_type": "display_data"
280
+ },
281
+ {
282
+ "data": {
283
+ "text/html": [],
284
+ "text/plain": [
285
+ "<IPython.core.display.HTML object>"
286
+ ]
287
+ },
288
+ "metadata": {},
289
+ "output_type": "display_data"
290
+ },
291
+ {
292
+ "data": {
293
+ "text/html": [
294
+ "\n",
295
+ "<style>\n",
296
+ " /* Turns off some styling */\n",
297
+ " progress {\n",
298
+ " /* gets rid of default border in Firefox and Opera. */\n",
299
+ " border: none;\n",
300
+ " /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
301
+ " background-size: auto;\n",
302
+ " }\n",
303
+ " progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
304
+ " background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
305
+ " }\n",
306
+ " .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
307
+ " background: #F44336;\n",
308
+ " }\n",
309
+ "</style>\n"
310
+ ],
311
+ "text/plain": [
312
+ "<IPython.core.display.HTML object>"
313
+ ]
314
+ },
315
+ "metadata": {},
316
+ "output_type": "display_data"
317
+ },
318
+ {
319
+ "data": {
320
+ "text/html": [],
321
+ "text/plain": [
322
+ "<IPython.core.display.HTML object>"
323
+ ]
324
+ },
325
+ "metadata": {},
326
+ "output_type": "display_data"
327
+ }
328
+ ],
329
+ "source": [
330
+ "#|export\n",
331
+ "image = gr.Image(width=\"192px\", height=\"192px\")\n",
332
+ "label = gr.Label()\n",
333
+ "examples = [\"dog.jpeg\", \"cat.jpeg\", \"dunno.jpg\"]\n",
334
+ "\n",
335
+ "intf = gr.Interface(fn=classify_image, inputs=image, outputs=label, examples=examples)\n",
336
+ "intf.launch(inline=False)"
337
+ ]
338
+ },
339
+ {
340
+ "cell_type": "code",
341
+ "execution_count": 25,
342
+ "id": "791539a3-9e93-4871-89c2-a49d4014aabb",
343
+ "metadata": {},
344
+ "outputs": [
345
+ {
346
+ "name": "stdout",
347
+ "output_type": "stream",
348
+ "text": [
349
+ "Defaulting to user installation because normal site-packages is not writeable\n",
350
+ "Requirement already satisfied: fastai in /home/micky/.local/lib/python3.10/site-packages (2.7.14)\n",
351
+ "Requirement already satisfied: nbdev in /home/micky/.local/lib/python3.10/site-packages (2.3.13)\n",
352
+ "Requirement already satisfied: packaging in /home/micky/.local/lib/python3.10/site-packages (from fastai) (23.2)\n",
353
+ "Requirement already satisfied: matplotlib in /home/micky/.local/lib/python3.10/site-packages (from fastai) (3.8.2)\n",
354
+ "Requirement already satisfied: fastprogress>=0.2.4 in /home/micky/.local/lib/python3.10/site-packages (from fastai) (1.0.3)\n",
355
+ "Requirement already satisfied: requests in /home/micky/.local/lib/python3.10/site-packages (from fastai) (2.31.0)\n",
356
+ "Requirement already satisfied: pillow>=9.0.0 in /home/micky/.local/lib/python3.10/site-packages (from fastai) (10.2.0)\n",
357
+ "Requirement already satisfied: pip in /usr/lib/python3/dist-packages (from fastai) (22.0.2)\n",
358
+ "Requirement already satisfied: torchvision>=0.11 in /home/micky/.local/lib/python3.10/site-packages (from fastai) (0.17.0)\n",
359
+ "Requirement already satisfied: pyyaml in /usr/lib/python3/dist-packages (from fastai) (5.4.1)\n",
360
+ "Requirement already satisfied: scipy in /home/micky/.local/lib/python3.10/site-packages (from fastai) (1.12.0)\n",
361
+ "Requirement already satisfied: fastcore<1.6,>=1.5.29 in /home/micky/.local/lib/python3.10/site-packages (from fastai) (1.5.29)\n",
362
+ "Requirement already satisfied: torch<2.3,>=1.10 in /home/micky/.local/lib/python3.10/site-packages (from fastai) (2.2.0)\n",
363
+ "Requirement already satisfied: spacy<4 in /home/micky/.local/lib/python3.10/site-packages (from fastai) (3.7.3)\n",
364
+ "Requirement already satisfied: fastdownload<2,>=0.0.5 in /home/micky/.local/lib/python3.10/site-packages (from fastai) (0.0.7)\n",
365
+ "Requirement already satisfied: pandas in /home/micky/.local/lib/python3.10/site-packages (from fastai) (2.2.0)\n",
366
+ "Requirement already satisfied: scikit-learn in /home/micky/.local/lib/python3.10/site-packages (from fastai) (1.4.0)\n",
367
+ "Requirement already satisfied: ghapi>=1.0.3 in /home/micky/.local/lib/python3.10/site-packages (from nbdev) (1.0.4)\n",
368
+ "Requirement already satisfied: astunparse in /home/micky/.local/lib/python3.10/site-packages (from nbdev) (1.6.3)\n",
369
+ "Requirement already satisfied: watchdog in /home/micky/.local/lib/python3.10/site-packages (from nbdev) (4.0.0)\n",
370
+ "Requirement already satisfied: ipywidgets<=8.0.4 in /home/micky/.local/lib/python3.10/site-packages (from nbdev) (8.0.4)\n",
371
+ "Requirement already satisfied: asttokens in /home/micky/.local/lib/python3.10/site-packages (from nbdev) (2.4.1)\n",
372
+ "Requirement already satisfied: execnb>=0.1.4 in /home/micky/.local/lib/python3.10/site-packages (from nbdev) (0.1.5)\n",
373
+ "Requirement already satisfied: ipython in /home/micky/.local/lib/python3.10/site-packages (from execnb>=0.1.4->nbdev) (8.21.0)\n",
374
+ "Requirement already satisfied: widgetsnbextension~=4.0 in /home/micky/.local/lib/python3.10/site-packages (from ipywidgets<=8.0.4->nbdev) (4.0.10)\n",
375
+ "Requirement already satisfied: jupyterlab-widgets~=3.0 in /home/micky/.local/lib/python3.10/site-packages (from ipywidgets<=8.0.4->nbdev) (3.0.10)\n",
376
+ "Requirement already satisfied: traitlets>=4.3.1 in /home/micky/.local/lib/python3.10/site-packages (from ipywidgets<=8.0.4->nbdev) (5.14.1)\n",
377
+ "Requirement already satisfied: ipykernel>=4.5.1 in /home/micky/.local/lib/python3.10/site-packages (from ipywidgets<=8.0.4->nbdev) (6.29.2)\n",
378
+ "Requirement already satisfied: srsly<3.0.0,>=2.4.3 in /home/micky/.local/lib/python3.10/site-packages (from spacy<4->fastai) (2.4.8)\n",
379
+ "Requirement already satisfied: spacy-legacy<3.1.0,>=3.0.11 in /home/micky/.local/lib/python3.10/site-packages (from spacy<4->fastai) (3.0.12)\n",
380
+ "Requirement already satisfied: tqdm<5.0.0,>=4.38.0 in /home/micky/.local/lib/python3.10/site-packages (from spacy<4->fastai) (4.66.1)\n",
381
+ "Requirement already satisfied: numpy>=1.19.0 in /home/micky/.local/lib/python3.10/site-packages (from spacy<4->fastai) (1.26.4)\n",
382
+ "Requirement already satisfied: thinc<8.3.0,>=8.2.2 in /home/micky/.local/lib/python3.10/site-packages (from spacy<4->fastai) (8.2.3)\n",
383
+ "Requirement already satisfied: murmurhash<1.1.0,>=0.28.0 in /home/micky/.local/lib/python3.10/site-packages (from spacy<4->fastai) (1.0.10)\n",
384
+ "Requirement already satisfied: pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4 in /home/micky/.local/lib/python3.10/site-packages (from spacy<4->fastai) (2.6.1)\n",
385
+ "Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from spacy<4->fastai) (59.6.0)\n",
386
+ "Requirement already satisfied: typer<0.10.0,>=0.3.0 in /home/micky/.local/lib/python3.10/site-packages (from spacy<4->fastai) (0.9.0)\n",
387
+ "Requirement already satisfied: cymem<2.1.0,>=2.0.2 in /home/micky/.local/lib/python3.10/site-packages (from spacy<4->fastai) (2.0.8)\n",
388
+ "Requirement already satisfied: smart-open<7.0.0,>=5.2.1 in /home/micky/.local/lib/python3.10/site-packages (from spacy<4->fastai) (6.4.0)\n",
389
+ "Requirement already satisfied: langcodes<4.0.0,>=3.2.0 in /home/micky/.local/lib/python3.10/site-packages (from spacy<4->fastai) (3.3.0)\n",
390
+ "Requirement already satisfied: jinja2 in /home/micky/.local/lib/python3.10/site-packages (from spacy<4->fastai) (3.1.3)\n",
391
+ "Requirement already satisfied: catalogue<2.1.0,>=2.0.6 in /home/micky/.local/lib/python3.10/site-packages (from spacy<4->fastai) (2.0.10)\n",
392
+ "Requirement already satisfied: preshed<3.1.0,>=3.0.2 in /home/micky/.local/lib/python3.10/site-packages (from spacy<4->fastai) (3.0.9)\n",
393
+ "Requirement already satisfied: spacy-loggers<2.0.0,>=1.0.0 in /home/micky/.local/lib/python3.10/site-packages (from spacy<4->fastai) (1.0.5)\n",
394
+ "Requirement already satisfied: wasabi<1.2.0,>=0.9.1 in /home/micky/.local/lib/python3.10/site-packages (from spacy<4->fastai) (1.1.2)\n",
395
+ "Requirement already satisfied: weasel<0.4.0,>=0.1.0 in /home/micky/.local/lib/python3.10/site-packages (from spacy<4->fastai) (0.3.4)\n",
396
+ "Requirement already satisfied: urllib3<3,>=1.21.1 in /home/micky/.local/lib/python3.10/site-packages (from requests->fastai) (2.2.0)\n",
397
+ "Requirement already satisfied: charset-normalizer<4,>=2 in /home/micky/.local/lib/python3.10/site-packages (from requests->fastai) (3.3.2)\n",
398
+ "Requirement already satisfied: certifi>=2017.4.17 in /home/micky/.local/lib/python3.10/site-packages (from requests->fastai) (2024.2.2)\n",
399
+ "Requirement already satisfied: idna<4,>=2.5 in /home/micky/.local/lib/python3.10/site-packages (from requests->fastai) (3.6)\n",
400
+ "Requirement already satisfied: nvidia-nccl-cu12==2.19.3 in /home/micky/.local/lib/python3.10/site-packages (from torch<2.3,>=1.10->fastai) (2.19.3)\n",
401
+ "Requirement already satisfied: nvidia-curand-cu12==10.3.2.106 in /home/micky/.local/lib/python3.10/site-packages (from torch<2.3,>=1.10->fastai) (10.3.2.106)\n",
402
+ "Requirement already satisfied: nvidia-cuda-cupti-cu12==12.1.105 in /home/micky/.local/lib/python3.10/site-packages (from torch<2.3,>=1.10->fastai) (12.1.105)\n",
403
+ "Requirement already satisfied: networkx in /home/micky/.local/lib/python3.10/site-packages (from torch<2.3,>=1.10->fastai) (3.2.1)\n",
404
+ "Requirement already satisfied: sympy in /home/micky/.local/lib/python3.10/site-packages (from torch<2.3,>=1.10->fastai) (1.12)\n",
405
+ "Requirement already satisfied: typing-extensions>=4.8.0 in /home/micky/.local/lib/python3.10/site-packages (from torch<2.3,>=1.10->fastai) (4.9.0)\n",
406
+ "Requirement already satisfied: nvidia-cufft-cu12==11.0.2.54 in /home/micky/.local/lib/python3.10/site-packages (from torch<2.3,>=1.10->fastai) (11.0.2.54)\n",
407
+ "Requirement already satisfied: triton==2.2.0 in /home/micky/.local/lib/python3.10/site-packages (from torch<2.3,>=1.10->fastai) (2.2.0)\n",
408
+ "Requirement already satisfied: fsspec in /home/micky/.local/lib/python3.10/site-packages (from torch<2.3,>=1.10->fastai) (2024.2.0)\n",
409
+ "Requirement already satisfied: nvidia-cublas-cu12==12.1.3.1 in /home/micky/.local/lib/python3.10/site-packages (from torch<2.3,>=1.10->fastai) (12.1.3.1)\n",
410
+ "Requirement already satisfied: nvidia-cuda-runtime-cu12==12.1.105 in /home/micky/.local/lib/python3.10/site-packages (from torch<2.3,>=1.10->fastai) (12.1.105)\n",
411
+ "Requirement already satisfied: nvidia-cusolver-cu12==11.4.5.107 in /home/micky/.local/lib/python3.10/site-packages (from torch<2.3,>=1.10->fastai) (11.4.5.107)\n",
412
+ "Requirement already satisfied: nvidia-cudnn-cu12==8.9.2.26 in /home/micky/.local/lib/python3.10/site-packages (from torch<2.3,>=1.10->fastai) (8.9.2.26)\n",
413
+ "Requirement already satisfied: nvidia-nvtx-cu12==12.1.105 in /home/micky/.local/lib/python3.10/site-packages (from torch<2.3,>=1.10->fastai) (12.1.105)\n",
414
+ "Requirement already satisfied: nvidia-cusparse-cu12==12.1.0.106 in /home/micky/.local/lib/python3.10/site-packages (from torch<2.3,>=1.10->fastai) (12.1.0.106)\n",
415
+ "Requirement already satisfied: filelock in /home/micky/.local/lib/python3.10/site-packages (from torch<2.3,>=1.10->fastai) (3.13.1)\n",
416
+ "Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.1.105 in /home/micky/.local/lib/python3.10/site-packages (from torch<2.3,>=1.10->fastai) (12.1.105)\n",
417
+ "Requirement already satisfied: nvidia-nvjitlink-cu12 in /home/micky/.local/lib/python3.10/site-packages (from nvidia-cusolver-cu12==11.4.5.107->torch<2.3,>=1.10->fastai) (12.3.101)\n",
418
+ "Requirement already satisfied: six>=1.12.0 in /usr/lib/python3/dist-packages (from asttokens->nbdev) (1.16.0)\n",
419
+ "Requirement already satisfied: wheel<1.0,>=0.23.0 in /usr/lib/python3/dist-packages (from astunparse->nbdev) (0.37.1)\n",
420
+ "Requirement already satisfied: fonttools>=4.22.0 in /home/micky/.local/lib/python3.10/site-packages (from matplotlib->fastai) (4.48.1)\n",
421
+ "Requirement already satisfied: contourpy>=1.0.1 in /home/micky/.local/lib/python3.10/site-packages (from matplotlib->fastai) (1.2.0)\n",
422
+ "Requirement already satisfied: kiwisolver>=1.3.1 in /home/micky/.local/lib/python3.10/site-packages (from matplotlib->fastai) (1.4.5)\n",
423
+ "Requirement already satisfied: pyparsing>=2.3.1 in /usr/lib/python3/dist-packages (from matplotlib->fastai) (2.4.7)\n",
424
+ "Requirement already satisfied: python-dateutil>=2.7 in /home/micky/.local/lib/python3.10/site-packages (from matplotlib->fastai) (2.8.2)\n",
425
+ "Requirement already satisfied: cycler>=0.10 in /home/micky/.local/lib/python3.10/site-packages (from matplotlib->fastai) (0.12.1)\n",
426
+ "Requirement already satisfied: pytz>=2020.1 in /home/micky/.local/lib/python3.10/site-packages (from pandas->fastai) (2024.1)\n",
427
+ "Requirement already satisfied: tzdata>=2022.7 in /home/micky/.local/lib/python3.10/site-packages (from pandas->fastai) (2023.4)\n",
428
+ "Requirement already satisfied: joblib>=1.2.0 in /home/micky/.local/lib/python3.10/site-packages (from scikit-learn->fastai) (1.3.2)\n",
429
+ "Requirement already satisfied: threadpoolctl>=2.0.0 in /home/micky/.local/lib/python3.10/site-packages (from scikit-learn->fastai) (3.2.0)\n",
430
+ "Requirement already satisfied: psutil in /home/micky/.local/lib/python3.10/site-packages (from ipykernel>=4.5.1->ipywidgets<=8.0.4->nbdev) (5.9.8)\n",
431
+ "Requirement already satisfied: matplotlib-inline>=0.1 in /home/micky/.local/lib/python3.10/site-packages (from ipykernel>=4.5.1->ipywidgets<=8.0.4->nbdev) (0.1.6)\n",
432
+ "Requirement already satisfied: nest-asyncio in /home/micky/.local/lib/python3.10/site-packages (from ipykernel>=4.5.1->ipywidgets<=8.0.4->nbdev) (1.6.0)\n",
433
+ "Requirement already satisfied: tornado>=6.1 in /home/micky/.local/lib/python3.10/site-packages (from ipykernel>=4.5.1->ipywidgets<=8.0.4->nbdev) (6.4)\n",
434
+ "Requirement already satisfied: pyzmq>=24 in /home/micky/.local/lib/python3.10/site-packages (from ipykernel>=4.5.1->ipywidgets<=8.0.4->nbdev) (25.1.2)\n",
435
+ "Requirement already satisfied: jupyter-client>=6.1.12 in /home/micky/.local/lib/python3.10/site-packages (from ipykernel>=4.5.1->ipywidgets<=8.0.4->nbdev) (8.6.0)\n",
436
+ "Requirement already satisfied: jupyter-core!=5.0.*,>=4.12 in /home/micky/.local/lib/python3.10/site-packages (from ipykernel>=4.5.1->ipywidgets<=8.0.4->nbdev) (5.7.1)\n",
437
+ "Requirement already satisfied: comm>=0.1.1 in /home/micky/.local/lib/python3.10/site-packages (from ipykernel>=4.5.1->ipywidgets<=8.0.4->nbdev) (0.2.1)\n",
438
+ "Requirement already satisfied: debugpy>=1.6.5 in /home/micky/.local/lib/python3.10/site-packages (from ipykernel>=4.5.1->ipywidgets<=8.0.4->nbdev) (1.8.1)\n",
439
+ "Requirement already satisfied: stack-data in /home/micky/.local/lib/python3.10/site-packages (from ipython->execnb>=0.1.4->nbdev) (0.6.3)\n",
440
+ "Requirement already satisfied: jedi>=0.16 in /home/micky/.local/lib/python3.10/site-packages (from ipython->execnb>=0.1.4->nbdev) (0.19.1)\n",
441
+ "Requirement already satisfied: pexpect>4.3 in /home/micky/.local/lib/python3.10/site-packages (from ipython->execnb>=0.1.4->nbdev) (4.9.0)\n",
442
+ "Requirement already satisfied: prompt-toolkit<3.1.0,>=3.0.41 in /home/micky/.local/lib/python3.10/site-packages (from ipython->execnb>=0.1.4->nbdev) (3.0.43)\n",
443
+ "Requirement already satisfied: exceptiongroup in /home/micky/.local/lib/python3.10/site-packages (from ipython->execnb>=0.1.4->nbdev) (1.2.0)\n",
444
+ "Requirement already satisfied: decorator in /home/micky/.local/lib/python3.10/site-packages (from ipython->execnb>=0.1.4->nbdev) (5.1.1)\n",
445
+ "Requirement already satisfied: pygments>=2.4.0 in /home/micky/.local/lib/python3.10/site-packages (from ipython->execnb>=0.1.4->nbdev) (2.17.2)\n",
446
+ "Requirement already satisfied: annotated-types>=0.4.0 in /home/micky/.local/lib/python3.10/site-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy<4->fastai) (0.6.0)\n",
447
+ "Requirement already satisfied: pydantic-core==2.16.2 in /home/micky/.local/lib/python3.10/site-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy<4->fastai) (2.16.2)\n",
448
+ "Requirement already satisfied: blis<0.8.0,>=0.7.8 in /home/micky/.local/lib/python3.10/site-packages (from thinc<8.3.0,>=8.2.2->spacy<4->fastai) (0.7.11)\n",
449
+ "Requirement already satisfied: confection<1.0.0,>=0.0.1 in /home/micky/.local/lib/python3.10/site-packages (from thinc<8.3.0,>=8.2.2->spacy<4->fastai) (0.1.4)\n",
450
+ "Requirement already satisfied: click<9.0.0,>=7.1.1 in /home/micky/.local/lib/python3.10/site-packages (from typer<0.10.0,>=0.3.0->spacy<4->fastai) (8.1.7)\n",
451
+ "Requirement already satisfied: cloudpathlib<0.17.0,>=0.7.0 in /home/micky/.local/lib/python3.10/site-packages (from weasel<0.4.0,>=0.1.0->spacy<4->fastai) (0.16.0)\n",
452
+ "Requirement already satisfied: MarkupSafe>=2.0 in /home/micky/.local/lib/python3.10/site-packages (from jinja2->spacy<4->fastai) (2.1.5)\n",
453
+ "Requirement already satisfied: mpmath>=0.19 in /home/micky/.local/lib/python3.10/site-packages (from sympy->torch<2.3,>=1.10->fastai) (1.3.0)\n",
454
+ "Requirement already satisfied: parso<0.9.0,>=0.8.3 in /home/micky/.local/lib/python3.10/site-packages (from jedi>=0.16->ipython->execnb>=0.1.4->nbdev) (0.8.3)\n",
455
+ "Requirement already satisfied: platformdirs>=2.5 in /home/micky/.local/lib/python3.10/site-packages (from jupyter-core!=5.0.*,>=4.12->ipykernel>=4.5.1->ipywidgets<=8.0.4->nbdev) (4.2.0)\n",
456
+ "Requirement already satisfied: ptyprocess>=0.5 in /home/micky/.local/lib/python3.10/site-packages (from pexpect>4.3->ipython->execnb>=0.1.4->nbdev) (0.7.0)\n",
457
+ "Requirement already satisfied: wcwidth in /home/micky/.local/lib/python3.10/site-packages (from prompt-toolkit<3.1.0,>=3.0.41->ipython->execnb>=0.1.4->nbdev) (0.2.13)\n",
458
+ "Requirement already satisfied: executing>=1.2.0 in /home/micky/.local/lib/python3.10/site-packages (from stack-data->ipython->execnb>=0.1.4->nbdev) (2.0.1)\n",
459
+ "Requirement already satisfied: pure-eval in /home/micky/.local/lib/python3.10/site-packages (from stack-data->ipython->execnb>=0.1.4->nbdev) (0.2.2)\n"
460
+ ]
461
+ }
462
+ ],
463
+ "source": [
464
+ "!pip install --upgrade fastai nbdev"
465
+ ]
466
+ },
467
+ {
468
+ "cell_type": "code",
469
+ "execution_count": 27,
470
+ "id": "e2e598ba-8eda-4a77-821e-6f9680ac68a3",
471
+ "metadata": {},
472
+ "outputs": [],
473
+ "source": [
474
+ "from nbdev.export import nb_export\n",
475
+ "nb_export('app.ipynb', '.')"
476
+ ]
477
+ },
478
+ {
479
+ "cell_type": "code",
480
+ "execution_count": null,
481
+ "id": "27ad1dbc-aa9b-4f88-9a05-b46bd96f14ff",
482
+ "metadata": {},
483
+ "outputs": [],
484
+ "source": []
485
+ }
486
+ ],
487
+ "metadata": {
488
+ "kernelspec": {
489
+ "display_name": "Python 3 (ipykernel)",
490
+ "language": "python",
491
+ "name": "python3"
492
+ },
493
+ "language_info": {
494
+ "codemirror_mode": {
495
+ "name": "ipython",
496
+ "version": 3
497
+ },
498
+ "file_extension": ".py",
499
+ "mimetype": "text/x-python",
500
+ "name": "python",
501
+ "nbconvert_exporter": "python",
502
+ "pygments_lexer": "ipython3",
503
+ "version": "3.10.12"
504
+ }
505
+ },
506
+ "nbformat": 4,
507
+ "nbformat_minor": 5
508
+ }
app.py CHANGED
@@ -1,7 +1,28 @@
 
 
 
 
 
 
 
1
  import gradio as gr
2
 
3
- def greet(name):
4
- return "Hello " + name + "!!"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
 
6
- iface = gr.Interface(fn=greet, inputs="text", outputs="text")
7
- iface.launch()
 
1
+ # AUTOGENERATED! DO NOT EDIT! File to edit: app.ipynb.
2
+
3
+ # %% auto 0
4
+ __all__ = ['learn', 'categories', 'image', 'label', 'examples', 'intf', 'is_cat', 'classify_image']
5
+
6
+ # %% app.ipynb 1
7
+ from fastai.vision.all import *
8
  import gradio as gr
9
 
10
+ def is_cat(x): return x[0].isupper()
11
+
12
+ # %% app.ipynb 3
13
+ learn = load_learner("model.pkl")
14
+
15
+ # %% app.ipynb 5
16
+ categories = ("Dog", "Cat")
17
+
18
+ def classify_image(img):
19
+ pred, idx, probs = learn.predict(img)
20
+ return dict(zip(categories, map(float, probs)))
21
+
22
+ # %% app.ipynb 7
23
+ image = gr.Image(width="192px", height="192px")
24
+ label = gr.Label()
25
+ examples = ["dog.jpeg", "cat.jpeg", "dunno.jpg"]
26
 
27
+ intf = gr.Interface(fn=classify_image, inputs=image, outputs=label, examples=examples)
28
+ intf.launch(inline=False)
cat.jpeg ADDED
dog.jpeg ADDED
dunno.jpg ADDED
model.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:88acb0caf2a8bc123c1ced936d3191d6cbd55ed6348f2797f62d7504afabb20b
3
+ size 47061419