lordsquirrel commited on
Commit
0d5acf9
1 Parent(s): 3dd302d

Initial release

Browse files
Files changed (9) hide show
  1. .gitignore +2 -1
  2. README.md +4 -4
  3. albani.jpg +0 -0
  4. albani2.jpg +0 -0
  5. carlsberg.jpg +0 -0
  6. demo.py +30 -0
  7. heineken.jpg +0 -0
  8. model-test.ipynb +65 -273
  9. requirements.txt +2 -0
.gitignore CHANGED
@@ -1 +1,2 @@
1
- data/
 
 
1
+ data/
2
+ flagged/
README.md CHANGED
@@ -1,11 +1,11 @@
1
  ---
2
- title: Resnet18 Albani Classifier
3
- emoji: 🐨
4
  colorFrom: red
5
- colorTo: red
6
  sdk: gradio
7
  sdk_version: 3.16.2
8
- app_file: app.py
9
  pinned: false
10
  license: apache-2.0
11
  ---
 
1
  ---
2
+ title: Resnet18 Albani or not Classifier
3
+ emoji: 🍻
4
  colorFrom: red
5
+ colorTo: green
6
  sdk: gradio
7
  sdk_version: 3.16.2
8
+ app_file: demo.py
9
  pinned: false
10
  license: apache-2.0
11
  ---
albani.jpg ADDED
albani2.jpg ADDED
carlsberg.jpg ADDED
demo.py ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # AUTOGENERATED! DO NOT EDIT! File to edit: model-test.ipynb.
2
+
3
+ # %% auto 0
4
+ __all__ = ['plt', 'learn', 'categories', 'image', 'label', 'examples', 'iface', 'is_albani', 'classify_image']
5
+
6
+ # %% model-test.ipynb 2
7
+ from fastai.vision.all import *
8
+ import pathlib
9
+ import gradio as gr
10
+ plt = platform.system()
11
+ if plt == 'Linux': pathlib.WindowsPath = pathlib.PosixPath
12
+
13
+ def is_albani(path):
14
+ return parent_label(path) == "albani"
15
+
16
+ # %% model-test.ipynb 7
17
+ learn = load_learner(Path('./resnet18-albani.pkl'))
18
+ categories = ('Dårlig Øl', 'God Øl')
19
+
20
+ def classify_image(img):
21
+ pred,idx,probs = learn.predict(img)
22
+ return dict(zip(categories, map(float, probs)))
23
+
24
+ image = gr.inputs.Image(shape=(192, 192))
25
+ label = gr.outputs.Label()
26
+ examples = ['albani.jpg', 'albani2.jpg', 'heineken.jpg', 'carlsberg.jpg']
27
+
28
+ iface = gr.Interface(fn=classify_image, inputs=image, outputs=label, examples=examples)
29
+ iface.launch(inline=False)
30
+
heineken.jpg ADDED
model-test.ipynb CHANGED
@@ -6,12 +6,20 @@
6
  "metadata": {},
7
  "outputs": [],
8
  "source": [
9
- "#|default_exp app.py"
 
 
 
 
 
 
 
 
10
  ]
11
  },
12
  {
13
  "cell_type": "code",
14
- "execution_count": 2,
15
  "metadata": {},
16
  "outputs": [],
17
  "source": [
@@ -26,23 +34,19 @@
26
  " return parent_label(path) == \"albani\""
27
  ]
28
  },
 
 
 
 
 
 
 
 
29
  {
30
  "cell_type": "code",
31
- "execution_count": 6,
32
  "metadata": {},
33
- "outputs": [
34
- {
35
- "data": {
36
- "image/png": "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",
37
- "text/plain": [
38
- "PILImage mode=RGB size=108x192"
39
- ]
40
- },
41
- "execution_count": 6,
42
- "metadata": {},
43
- "output_type": "execute_result"
44
- }
45
- ],
46
  "source": [
47
  "albani = PILImage.create('albani2.jpg')\n",
48
  "\n",
@@ -52,87 +56,33 @@
52
  },
53
  {
54
  "cell_type": "code",
55
- "execution_count": 7,
56
  "metadata": {},
57
- "outputs": [
58
- {
59
- "data": {
60
- "text/html": [
61
- "\n",
62
- "<style>\n",
63
- " /* Turns off some styling */\n",
64
- " progress {\n",
65
- " /* gets rid of default border in Firefox and Opera. */\n",
66
- " border: none;\n",
67
- " /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
68
- " background-size: auto;\n",
69
- " }\n",
70
- " progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
71
- " background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
72
- " }\n",
73
- " .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
74
- " background: #F44336;\n",
75
- " }\n",
76
- "</style>\n"
77
- ],
78
- "text/plain": [
79
- "<IPython.core.display.HTML object>"
80
- ]
81
- },
82
- "metadata": {},
83
- "output_type": "display_data"
84
- },
85
- {
86
- "data": {
87
- "text/html": [],
88
- "text/plain": [
89
- "<IPython.core.display.HTML object>"
90
- ]
91
- },
92
- "metadata": {},
93
- "output_type": "display_data"
94
- },
95
- {
96
- "data": {
97
- "text/plain": [
98
- "('True', TensorBase(1), TensorBase([0.0285, 0.9715]))"
99
- ]
100
- },
101
- "execution_count": 7,
102
- "metadata": {},
103
- "output_type": "execute_result"
104
- }
105
- ],
106
  "source": [
107
  "learn = load_learner(Path('./resnet18-albani.pkl'))\n",
108
  "\n",
109
  "learn.predict(albani)"
110
  ]
111
  },
 
 
 
 
 
 
 
 
112
  {
113
  "cell_type": "code",
114
- "execution_count": 8,
115
  "metadata": {},
116
  "outputs": [
117
- {
118
- "name": "stderr",
119
- "output_type": "stream",
120
- "text": [
121
- "/home/lord/mambaforge/envs/fastai/lib/python3.10/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",
122
- " warnings.warn(\n",
123
- "/home/lord/mambaforge/envs/fastai/lib/python3.10/site-packages/gradio/deprecation.py:40: UserWarning: `optional` parameter is deprecated, and it has no effect\n",
124
- " warnings.warn(value)\n",
125
- "/home/lord/mambaforge/envs/fastai/lib/python3.10/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",
126
- " warnings.warn(\n",
127
- "/home/lord/mambaforge/envs/fastai/lib/python3.10/site-packages/gradio/deprecation.py:40: UserWarning: The 'type' parameter has been deprecated. Use the Number component instead.\n",
128
- " warnings.warn(value)\n"
129
- ]
130
- },
131
  {
132
  "name": "stdout",
133
  "output_type": "stream",
134
  "text": [
135
- "Running on local URL: http://127.0.0.1:7860\n",
136
  "\n",
137
  "To create a public link, set `share=True` in `launch()`.\n"
138
  ]
@@ -141,201 +91,23 @@
141
  "data": {
142
  "text/plain": []
143
  },
144
- "execution_count": 8,
145
  "metadata": {},
146
  "output_type": "execute_result"
147
  },
148
  {
149
- "data": {
150
- "text/html": [
151
- "\n",
152
- "<style>\n",
153
- " /* Turns off some styling */\n",
154
- " progress {\n",
155
- " /* gets rid of default border in Firefox and Opera. */\n",
156
- " border: none;\n",
157
- " /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
158
- " background-size: auto;\n",
159
- " }\n",
160
- " progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
161
- " background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
162
- " }\n",
163
- " .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
164
- " background: #F44336;\n",
165
- " }\n",
166
- "</style>\n"
167
- ],
168
- "text/plain": [
169
- "<IPython.core.display.HTML object>"
170
- ]
171
- },
172
- "metadata": {},
173
- "output_type": "display_data"
174
- },
175
- {
176
- "data": {
177
- "text/html": [],
178
- "text/plain": [
179
- "<IPython.core.display.HTML object>"
180
- ]
181
- },
182
- "metadata": {},
183
- "output_type": "display_data"
184
- },
185
- {
186
- "data": {
187
- "text/html": [
188
- "\n",
189
- "<style>\n",
190
- " /* Turns off some styling */\n",
191
- " progress {\n",
192
- " /* gets rid of default border in Firefox and Opera. */\n",
193
- " border: none;\n",
194
- " /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
195
- " background-size: auto;\n",
196
- " }\n",
197
- " progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
198
- " background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
199
- " }\n",
200
- " .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
201
- " background: #F44336;\n",
202
- " }\n",
203
- "</style>\n"
204
- ],
205
- "text/plain": [
206
- "<IPython.core.display.HTML object>"
207
- ]
208
- },
209
- "metadata": {},
210
- "output_type": "display_data"
211
- },
212
- {
213
- "data": {
214
- "text/html": [],
215
- "text/plain": [
216
- "<IPython.core.display.HTML object>"
217
- ]
218
- },
219
- "metadata": {},
220
- "output_type": "display_data"
221
- },
222
- {
223
- "data": {
224
- "text/html": [
225
- "\n",
226
- "<style>\n",
227
- " /* Turns off some styling */\n",
228
- " progress {\n",
229
- " /* gets rid of default border in Firefox and Opera. */\n",
230
- " border: none;\n",
231
- " /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
232
- " background-size: auto;\n",
233
- " }\n",
234
- " progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
235
- " background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
236
- " }\n",
237
- " .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
238
- " background: #F44336;\n",
239
- " }\n",
240
- "</style>\n"
241
- ],
242
- "text/plain": [
243
- "<IPython.core.display.HTML object>"
244
- ]
245
- },
246
- "metadata": {},
247
- "output_type": "display_data"
248
- },
249
- {
250
- "data": {
251
- "text/html": [],
252
- "text/plain": [
253
- "<IPython.core.display.HTML object>"
254
- ]
255
- },
256
- "metadata": {},
257
- "output_type": "display_data"
258
- },
259
- {
260
- "data": {
261
- "text/html": [
262
- "\n",
263
- "<style>\n",
264
- " /* Turns off some styling */\n",
265
- " progress {\n",
266
- " /* gets rid of default border in Firefox and Opera. */\n",
267
- " border: none;\n",
268
- " /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
269
- " background-size: auto;\n",
270
- " }\n",
271
- " progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
272
- " background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
273
- " }\n",
274
- " .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
275
- " background: #F44336;\n",
276
- " }\n",
277
- "</style>\n"
278
- ],
279
- "text/plain": [
280
- "<IPython.core.display.HTML object>"
281
- ]
282
- },
283
- "metadata": {},
284
- "output_type": "display_data"
285
- },
286
- {
287
- "data": {
288
- "text/html": [],
289
- "text/plain": [
290
- "<IPython.core.display.HTML object>"
291
- ]
292
- },
293
- "metadata": {},
294
- "output_type": "display_data"
295
- },
296
- {
297
- "data": {
298
- "text/html": [
299
- "\n",
300
- "<style>\n",
301
- " /* Turns off some styling */\n",
302
- " progress {\n",
303
- " /* gets rid of default border in Firefox and Opera. */\n",
304
- " border: none;\n",
305
- " /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
306
- " background-size: auto;\n",
307
- " }\n",
308
- " progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
309
- " background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
310
- " }\n",
311
- " .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
312
- " background: #F44336;\n",
313
- " }\n",
314
- "</style>\n"
315
- ],
316
- "text/plain": [
317
- "<IPython.core.display.HTML object>"
318
- ]
319
- },
320
- "metadata": {},
321
- "output_type": "display_data"
322
- },
323
- {
324
- "data": {
325
- "text/html": [],
326
- "text/plain": [
327
- "<IPython.core.display.HTML object>"
328
- ]
329
- },
330
- "metadata": {},
331
- "output_type": "display_data"
332
  }
333
  ],
334
  "source": [
335
  "#|export\n",
336
  "\n",
337
  "learn = load_learner(Path('./resnet18-albani.pkl'))\n",
338
- "categories = ('Dårlig Øl', 'Albani')\n",
339
  "\n",
340
  "def classify_image(img):\n",
341
  " pred,idx,probs = learn.predict(img)\n",
@@ -343,19 +115,39 @@
343
  "\n",
344
  "image = gr.inputs.Image(shape=(192, 192))\n",
345
  "label = gr.outputs.Label()\n",
346
- "examples = ['albani1.jpg', 'albani2.jpg', 'albani3.jpg']\n",
347
  "\n",
348
  "iface = gr.Interface(fn=classify_image, inputs=image, outputs=label, examples=examples)\n",
349
- "iface.launch(inline=False)\n",
350
- " "
 
 
 
 
 
 
 
351
  ]
352
  },
353
  {
354
  "cell_type": "code",
355
- "execution_count": null,
356
  "metadata": {},
357
- "outputs": [],
358
- "source": []
 
 
 
 
 
 
 
 
 
 
 
 
 
359
  }
360
  ],
361
  "metadata": {
 
6
  "metadata": {},
7
  "outputs": [],
8
  "source": [
9
+ "#|default_exp demo"
10
+ ]
11
+ },
12
+ {
13
+ "attachments": {},
14
+ "cell_type": "markdown",
15
+ "metadata": {},
16
+ "source": [
17
+ "Basic setup, once again..."
18
  ]
19
  },
20
  {
21
  "cell_type": "code",
22
+ "execution_count": 23,
23
  "metadata": {},
24
  "outputs": [],
25
  "source": [
 
34
  " return parent_label(path) == \"albani\""
35
  ]
36
  },
37
+ {
38
+ "attachments": {},
39
+ "cell_type": "markdown",
40
+ "metadata": {},
41
+ "source": [
42
+ "Test with own images"
43
+ ]
44
+ },
45
  {
46
  "cell_type": "code",
47
+ "execution_count": null,
48
  "metadata": {},
49
+ "outputs": [],
 
 
 
 
 
 
 
 
 
 
 
 
50
  "source": [
51
  "albani = PILImage.create('albani2.jpg')\n",
52
  "\n",
 
56
  },
57
  {
58
  "cell_type": "code",
59
+ "execution_count": null,
60
  "metadata": {},
61
+ "outputs": [],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
62
  "source": [
63
  "learn = load_learner(Path('./resnet18-albani.pkl'))\n",
64
  "\n",
65
  "learn.predict(albani)"
66
  ]
67
  },
68
+ {
69
+ "attachments": {},
70
+ "cell_type": "markdown",
71
+ "metadata": {},
72
+ "source": [
73
+ "Gradio demo"
74
+ ]
75
+ },
76
  {
77
  "cell_type": "code",
78
+ "execution_count": 26,
79
  "metadata": {},
80
  "outputs": [
 
 
 
 
 
 
 
 
 
 
 
 
 
 
81
  {
82
  "name": "stdout",
83
  "output_type": "stream",
84
  "text": [
85
+ "Running on local URL: http://127.0.0.1:7862\n",
86
  "\n",
87
  "To create a public link, set `share=True` in `launch()`.\n"
88
  ]
 
91
  "data": {
92
  "text/plain": []
93
  },
94
+ "execution_count": 26,
95
  "metadata": {},
96
  "output_type": "execute_result"
97
  },
98
  {
99
+ "name": "stdout",
100
+ "output_type": "stream",
101
+ "text": [
102
+ " \r"
103
+ ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
104
  }
105
  ],
106
  "source": [
107
  "#|export\n",
108
  "\n",
109
  "learn = load_learner(Path('./resnet18-albani.pkl'))\n",
110
+ "categories = ('Dårlig Øl', 'God Øl')\n",
111
  "\n",
112
  "def classify_image(img):\n",
113
  " pred,idx,probs = learn.predict(img)\n",
 
115
  "\n",
116
  "image = gr.inputs.Image(shape=(192, 192))\n",
117
  "label = gr.outputs.Label()\n",
118
+ "examples = ['albani.jpg', 'albani2.jpg', 'heineken.jpg', 'carlsberg.jpg']\n",
119
  "\n",
120
  "iface = gr.Interface(fn=classify_image, inputs=image, outputs=label, examples=examples)\n",
121
+ "iface.launch(inline=False)\n"
122
+ ]
123
+ },
124
+ {
125
+ "attachments": {},
126
+ "cell_type": "markdown",
127
+ "metadata": {},
128
+ "source": [
129
+ "Build for huggingface"
130
  ]
131
  },
132
  {
133
  "cell_type": "code",
134
+ "execution_count": 27,
135
  "metadata": {},
136
+ "outputs": [
137
+ {
138
+ "name": "stdout",
139
+ "output_type": "stream",
140
+ "text": [
141
+ "INFO: Successfully saved requirements file in ./requirements.txt\n"
142
+ ]
143
+ }
144
+ ],
145
+ "source": [
146
+ "from nbdev.export import nb_export\n",
147
+ "\n",
148
+ "nb_export('model-test.ipynb', '.')\n",
149
+ "! pipreqs . --force\n"
150
+ ]
151
  }
152
  ],
153
  "metadata": {
requirements.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ fastai==2.7.10
2
+ gradio==3.16.2