Afonso B. Sousa commited on
Commit
76f6bf9
·
unverified ·
1 Parent(s): f044203

App v1 with LFS support.

Browse files
Files changed (6) hide show
  1. .gitignore +1 -0
  2. app.ipynb +347 -0
  3. app.py +24 -4
  4. lana.jpg +0 -0
  5. mallu.jpg +0 -0
  6. what.jpg +0 -0
.gitignore CHANGED
@@ -186,3 +186,4 @@ pyrightconfig.json
186
 
187
  # End of https://www.toptal.com/developers/gitignore/api/python,jupyternotebooks
188
 
 
 
186
 
187
  # End of https://www.toptal.com/developers/gitignore/api/python,jupyternotebooks
188
 
189
+ .gradio
app.ipynb ADDED
@@ -0,0 +1,347 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 11,
6
+ "id": "82baf493-aca3-40ae-8d2f-33adafecb6a9",
7
+ "metadata": {},
8
+ "outputs": [],
9
+ "source": [
10
+ "#|default_exp app"
11
+ ]
12
+ },
13
+ {
14
+ "cell_type": "markdown",
15
+ "id": "5fec5815-2555-4b0d-bd1c-a77a7fbdeda7",
16
+ "metadata": {},
17
+ "source": [
18
+ "# Dogs v Cats\n"
19
+ ]
20
+ },
21
+ {
22
+ "cell_type": "code",
23
+ "execution_count": 12,
24
+ "id": "2c3da714-bd9c-4b8f-ae28-980f8dea239c",
25
+ "metadata": {},
26
+ "outputs": [],
27
+ "source": [
28
+ "#|export\n",
29
+ "from fastai.vision.all import *\n",
30
+ "import gradio as gr\n",
31
+ "\n",
32
+ "def is_cat(x): return x[0].isupper()"
33
+ ]
34
+ },
35
+ {
36
+ "cell_type": "code",
37
+ "execution_count": 13,
38
+ "id": "b9baa234-7b9f-40cf-92f8-95757d7db012",
39
+ "metadata": {},
40
+ "outputs": [
41
+ {
42
+ "name": "stdout",
43
+ "output_type": "stream",
44
+ "text": [
45
+ "/home/afonso/git/private/fastai/huggingface-spaces/cats-v-dogs\n"
46
+ ]
47
+ },
48
+ {
49
+ "name": "stderr",
50
+ "output_type": "stream",
51
+ "text": [
52
+ "/home/afonso/git/private/fastai/.venv/lib/python3.11/site-packages/IPython/core/magics/osm.py:417: UserWarning: This is now an optional IPython functionality, setting dhist requires you to install the `pickleshare` library.\n",
53
+ " self.shell.db['dhist'] = compress_dhist(dhist)[-100:]\n"
54
+ ]
55
+ }
56
+ ],
57
+ "source": [
58
+ "%cd '/home/afonso/git/private/fastai/huggingface-spaces/cats-v-dogs/'"
59
+ ]
60
+ },
61
+ {
62
+ "cell_type": "code",
63
+ "execution_count": 14,
64
+ "id": "b7fb00b5-dbb2-4c96-b829-1ed108ba91a9",
65
+ "metadata": {},
66
+ "outputs": [
67
+ {
68
+ "data": {
69
+ "image/jpeg": "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",
70
+ "image/png": "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",
71
+ "text/plain": [
72
+ "PILImage mode=RGB size=108x192"
73
+ ]
74
+ },
75
+ "execution_count": 14,
76
+ "metadata": {},
77
+ "output_type": "execute_result"
78
+ }
79
+ ],
80
+ "source": [
81
+ "im = PILImage.create('lana.jpg')\n",
82
+ "im.thumbnail([192,192])\n",
83
+ "im"
84
+ ]
85
+ },
86
+ {
87
+ "cell_type": "code",
88
+ "execution_count": 15,
89
+ "id": "4760a4d5-5254-4c82-9114-8645fb5a8dc2",
90
+ "metadata": {},
91
+ "outputs": [],
92
+ "source": [
93
+ "#|export\n",
94
+ "learn = load_learner('model.pkl')"
95
+ ]
96
+ },
97
+ {
98
+ "cell_type": "code",
99
+ "execution_count": 16,
100
+ "id": "a104c842-b439-41a3-a2b1-96972ce03ccc",
101
+ "metadata": {},
102
+ "outputs": [
103
+ {
104
+ "data": {
105
+ "text/html": [
106
+ "\n",
107
+ "<style>\n",
108
+ " /* Turns off some styling */\n",
109
+ " progress {\n",
110
+ " /* gets rid of default border in Firefox and Opera. */\n",
111
+ " border: none;\n",
112
+ " /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
113
+ " background-size: auto;\n",
114
+ " }\n",
115
+ " progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
116
+ " background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
117
+ " }\n",
118
+ " .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
119
+ " background: #F44336;\n",
120
+ " }\n",
121
+ "</style>\n"
122
+ ],
123
+ "text/plain": [
124
+ "<IPython.core.display.HTML object>"
125
+ ]
126
+ },
127
+ "metadata": {},
128
+ "output_type": "display_data"
129
+ },
130
+ {
131
+ "data": {
132
+ "text/html": [],
133
+ "text/plain": [
134
+ "<IPython.core.display.HTML object>"
135
+ ]
136
+ },
137
+ "metadata": {},
138
+ "output_type": "display_data"
139
+ },
140
+ {
141
+ "data": {
142
+ "text/plain": [
143
+ "('False', tensor(0), tensor([1.0000e+00, 1.0309e-06]))"
144
+ ]
145
+ },
146
+ "execution_count": 16,
147
+ "metadata": {},
148
+ "output_type": "execute_result"
149
+ }
150
+ ],
151
+ "source": [
152
+ "learn.predict(im)"
153
+ ]
154
+ },
155
+ {
156
+ "cell_type": "code",
157
+ "execution_count": 17,
158
+ "id": "8f68c9c4-e6b7-4e7e-b194-fef56885e324",
159
+ "metadata": {},
160
+ "outputs": [],
161
+ "source": [
162
+ "#|export\n",
163
+ "categories = ('Dog', 'Cat')\n",
164
+ "\n",
165
+ "def classify_images(img):\n",
166
+ " pred,idx,probs = learn.predict(img)\n",
167
+ " return dict(zip(categories, map(float,probs)))"
168
+ ]
169
+ },
170
+ {
171
+ "cell_type": "code",
172
+ "execution_count": 18,
173
+ "id": "f8315816-69a7-47e0-aa92-1ed3d15c99cb",
174
+ "metadata": {},
175
+ "outputs": [
176
+ {
177
+ "data": {
178
+ "text/html": [
179
+ "\n",
180
+ "<style>\n",
181
+ " /* Turns off some styling */\n",
182
+ " progress {\n",
183
+ " /* gets rid of default border in Firefox and Opera. */\n",
184
+ " border: none;\n",
185
+ " /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
186
+ " background-size: auto;\n",
187
+ " }\n",
188
+ " progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
189
+ " background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
190
+ " }\n",
191
+ " .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
192
+ " background: #F44336;\n",
193
+ " }\n",
194
+ "</style>\n"
195
+ ],
196
+ "text/plain": [
197
+ "<IPython.core.display.HTML object>"
198
+ ]
199
+ },
200
+ "metadata": {},
201
+ "output_type": "display_data"
202
+ },
203
+ {
204
+ "data": {
205
+ "text/html": [],
206
+ "text/plain": [
207
+ "<IPython.core.display.HTML object>"
208
+ ]
209
+ },
210
+ "metadata": {},
211
+ "output_type": "display_data"
212
+ },
213
+ {
214
+ "data": {
215
+ "text/plain": [
216
+ "{'Dog': 0.999998927116394, 'Cat': 1.030909061228158e-06}"
217
+ ]
218
+ },
219
+ "execution_count": 18,
220
+ "metadata": {},
221
+ "output_type": "execute_result"
222
+ }
223
+ ],
224
+ "source": [
225
+ "classify_images(im)"
226
+ ]
227
+ },
228
+ {
229
+ "cell_type": "code",
230
+ "execution_count": 19,
231
+ "id": "45b944f1-0b68-4cb4-a2bc-2c36ebf71fa3",
232
+ "metadata": {},
233
+ "outputs": [
234
+ {
235
+ "name": "stdout",
236
+ "output_type": "stream",
237
+ "text": [
238
+ "* Running on local URL: http://127.0.0.1:7860\n",
239
+ "\n",
240
+ "To create a public link, set `share=True` in `launch()`.\n"
241
+ ]
242
+ },
243
+ {
244
+ "data": {
245
+ "text/plain": []
246
+ },
247
+ "execution_count": 19,
248
+ "metadata": {},
249
+ "output_type": "execute_result"
250
+ }
251
+ ],
252
+ "source": [
253
+ "#|export\n",
254
+ "image = gr.Image(width=192,height=192)\n",
255
+ "label = gr.Label()\n",
256
+ "examples = ['mallu.jpg', 'lana.jpg', 'what.jpg']\n",
257
+ "\n",
258
+ "intf = gr.Interface(fn=classify_images, inputs=image, outputs=label, examples=examples)\n",
259
+ "intf.launch(inline=False)"
260
+ ]
261
+ },
262
+ {
263
+ "cell_type": "markdown",
264
+ "id": "cf53a6ec-86bf-44cb-baaa-011f21f5869e",
265
+ "metadata": {},
266
+ "source": [
267
+ "## Export"
268
+ ]
269
+ },
270
+ {
271
+ "cell_type": "code",
272
+ "execution_count": 20,
273
+ "id": "c35ecd80-c0a1-421a-9dd2-04cca2d4c461",
274
+ "metadata": {},
275
+ "outputs": [
276
+ {
277
+ "name": "stdout",
278
+ "output_type": "stream",
279
+ "text": [
280
+ "\u001b[2mUsing Python 3.11.10 environment at /home/afonso/git/private/fastai/.venv\u001b[0m\n",
281
+ "\u001b[2mAudited \u001b[1m1 package\u001b[0m \u001b[2min 2ms\u001b[0m\u001b[0m\n"
282
+ ]
283
+ }
284
+ ],
285
+ "source": [
286
+ "!uv pip install nbdev\n",
287
+ "from nbdev.export import nb_export"
288
+ ]
289
+ },
290
+ {
291
+ "cell_type": "code",
292
+ "execution_count": 21,
293
+ "id": "de31d563-3696-45ba-9100-06c93072508c",
294
+ "metadata": {},
295
+ "outputs": [
296
+ {
297
+ "name": "stdout",
298
+ "output_type": "stream",
299
+ "text": [
300
+ "Exported\n"
301
+ ]
302
+ }
303
+ ],
304
+ "source": [
305
+ "nb_export('app.ipynb', './')\n",
306
+ "print(\"Exported\")"
307
+ ]
308
+ },
309
+ {
310
+ "cell_type": "code",
311
+ "execution_count": null,
312
+ "id": "1a443132-c4ec-4990-89c3-9a6320d14640",
313
+ "metadata": {},
314
+ "outputs": [],
315
+ "source": []
316
+ },
317
+ {
318
+ "cell_type": "code",
319
+ "execution_count": null,
320
+ "id": "3058daee-595f-4829-ae93-a38bebdc4030",
321
+ "metadata": {},
322
+ "outputs": [],
323
+ "source": []
324
+ }
325
+ ],
326
+ "metadata": {
327
+ "kernelspec": {
328
+ "display_name": "fastai",
329
+ "language": "python",
330
+ "name": "fastai"
331
+ },
332
+ "language_info": {
333
+ "codemirror_mode": {
334
+ "name": "ipython",
335
+ "version": 3
336
+ },
337
+ "file_extension": ".py",
338
+ "mimetype": "text/x-python",
339
+ "name": "python",
340
+ "nbconvert_exporter": "python",
341
+ "pygments_lexer": "ipython3",
342
+ "version": "3.11.10"
343
+ }
344
+ },
345
+ "nbformat": 4,
346
+ "nbformat_minor": 5
347
+ }
app.py CHANGED
@@ -1,8 +1,28 @@
 
1
 
 
 
 
 
 
2
  import gradio as gr
3
 
4
- def greet(name):
5
- return "Hello " + name + "!!"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
 
7
- demo = gr.Interface(fn=greet, inputs="text", outputs="text")
8
- demo.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_images']
5
+
6
+ # %% app.ipynb 2
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 5
13
+ learn = load_learner('model.pkl')
14
+
15
+ # %% app.ipynb 7
16
+ categories = ('Dog', 'Cat')
17
+
18
+ def classify_images(img):
19
+ pred,idx,probs = learn.predict(img)
20
+ return dict(zip(categories, map(float,probs)))
21
+
22
+ # %% app.ipynb 9
23
+ image = gr.Image(width=192,height=192)
24
+ label = gr.Label()
25
+ examples = ['mallu.jpg', 'lana.jpg', 'what.jpg']
26
 
27
+ intf = gr.Interface(fn=classify_images, inputs=image, outputs=label, examples=examples)
28
+ intf.launch(inline=False)
lana.jpg ADDED
mallu.jpg ADDED
what.jpg ADDED