Spaces:
Build error
Build error
deploy
Browse files- .vscode/settings.json +3 -0
- angry.jpg +0 -0
- app.ipynb +443 -0
- app.py +15 -4
- happy.jpg +0 -0
- model.pkl +3 -0
- sad.jpg +0 -0
- test.ipynb +208 -0
.vscode/settings.json
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"python.analysis.typeCheckingMode": "off"
|
3 |
+
}
|
angry.jpg
ADDED
![]() |
app.ipynb
ADDED
@@ -0,0 +1,443 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"cells": [
|
3 |
+
{
|
4 |
+
"cell_type": "code",
|
5 |
+
"execution_count": 1,
|
6 |
+
"metadata": {},
|
7 |
+
"outputs": [],
|
8 |
+
"source": [
|
9 |
+
"#| export\n",
|
10 |
+
"from fastai.vision.all import *\n",
|
11 |
+
"import gradio as gr"
|
12 |
+
]
|
13 |
+
},
|
14 |
+
{
|
15 |
+
"cell_type": "code",
|
16 |
+
"execution_count": 2,
|
17 |
+
"metadata": {},
|
18 |
+
"outputs": [
|
19 |
+
{
|
20 |
+
"data": {
|
21 |
+
"image/png": "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",
|
22 |
+
"text/plain": [
|
23 |
+
"PILImage mode=RGB size=48x48"
|
24 |
+
]
|
25 |
+
},
|
26 |
+
"execution_count": 2,
|
27 |
+
"metadata": {},
|
28 |
+
"output_type": "execute_result"
|
29 |
+
}
|
30 |
+
],
|
31 |
+
"source": [
|
32 |
+
"im = PILImage.create('happy.jpg')\n",
|
33 |
+
"im.thumbnail((48,48))\n",
|
34 |
+
"im"
|
35 |
+
]
|
36 |
+
},
|
37 |
+
{
|
38 |
+
"cell_type": "code",
|
39 |
+
"execution_count": 4,
|
40 |
+
"metadata": {},
|
41 |
+
"outputs": [],
|
42 |
+
"source": [
|
43 |
+
"#| export\n",
|
44 |
+
"import pathlib\n",
|
45 |
+
"\n",
|
46 |
+
"temp = pathlib.PosixPath\n",
|
47 |
+
"pathlib.PosixPath = pathlib.WindowsPath\n",
|
48 |
+
"learn = load_learner('F:\\\\huggintest\\\\test\\\\model.pkl')\n"
|
49 |
+
]
|
50 |
+
},
|
51 |
+
{
|
52 |
+
"cell_type": "code",
|
53 |
+
"execution_count": 5,
|
54 |
+
"metadata": {},
|
55 |
+
"outputs": [
|
56 |
+
{
|
57 |
+
"data": {
|
58 |
+
"text/html": [
|
59 |
+
"\n",
|
60 |
+
"<style>\n",
|
61 |
+
" /* Turns off some styling */\n",
|
62 |
+
" progress {\n",
|
63 |
+
" /* gets rid of default border in Firefox and Opera. */\n",
|
64 |
+
" border: none;\n",
|
65 |
+
" /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
|
66 |
+
" background-size: auto;\n",
|
67 |
+
" }\n",
|
68 |
+
" progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
|
69 |
+
" background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
|
70 |
+
" }\n",
|
71 |
+
" .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
|
72 |
+
" background: #F44336;\n",
|
73 |
+
" }\n",
|
74 |
+
"</style>\n"
|
75 |
+
],
|
76 |
+
"text/plain": [
|
77 |
+
"<IPython.core.display.HTML object>"
|
78 |
+
]
|
79 |
+
},
|
80 |
+
"metadata": {},
|
81 |
+
"output_type": "display_data"
|
82 |
+
},
|
83 |
+
{
|
84 |
+
"data": {
|
85 |
+
"text/html": [],
|
86 |
+
"text/plain": [
|
87 |
+
"<IPython.core.display.HTML object>"
|
88 |
+
]
|
89 |
+
},
|
90 |
+
"metadata": {},
|
91 |
+
"output_type": "display_data"
|
92 |
+
},
|
93 |
+
{
|
94 |
+
"data": {
|
95 |
+
"text/plain": [
|
96 |
+
"('happy',\n",
|
97 |
+
" TensorBase(3),\n",
|
98 |
+
" TensorBase([2.9893e-06, 5.7779e-08, 3.6714e-05, 9.9846e-01, 1.4104e-03,\n",
|
99 |
+
" 6.6388e-06, 8.1894e-05]))"
|
100 |
+
]
|
101 |
+
},
|
102 |
+
"execution_count": 5,
|
103 |
+
"metadata": {},
|
104 |
+
"output_type": "execute_result"
|
105 |
+
}
|
106 |
+
],
|
107 |
+
"source": [
|
108 |
+
"learn.predict(im)"
|
109 |
+
]
|
110 |
+
},
|
111 |
+
{
|
112 |
+
"cell_type": "code",
|
113 |
+
"execution_count": 6,
|
114 |
+
"metadata": {},
|
115 |
+
"outputs": [],
|
116 |
+
"source": [
|
117 |
+
"#| export\n",
|
118 |
+
"Categories = ('angry', 'disgust', 'fear', 'happy', 'neutral', 'sad', 'surprise')\n",
|
119 |
+
"\n",
|
120 |
+
"def classify_image(im):\n",
|
121 |
+
" pred, ind, prob = learn.predict(im)\n",
|
122 |
+
" return dict(zip(Categories , map(float,prob)))"
|
123 |
+
]
|
124 |
+
},
|
125 |
+
{
|
126 |
+
"cell_type": "code",
|
127 |
+
"execution_count": 7,
|
128 |
+
"metadata": {},
|
129 |
+
"outputs": [
|
130 |
+
{
|
131 |
+
"data": {
|
132 |
+
"text/html": [
|
133 |
+
"\n",
|
134 |
+
"<style>\n",
|
135 |
+
" /* Turns off some styling */\n",
|
136 |
+
" progress {\n",
|
137 |
+
" /* gets rid of default border in Firefox and Opera. */\n",
|
138 |
+
" border: none;\n",
|
139 |
+
" /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
|
140 |
+
" background-size: auto;\n",
|
141 |
+
" }\n",
|
142 |
+
" progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
|
143 |
+
" background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
|
144 |
+
" }\n",
|
145 |
+
" .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
|
146 |
+
" background: #F44336;\n",
|
147 |
+
" }\n",
|
148 |
+
"</style>\n"
|
149 |
+
],
|
150 |
+
"text/plain": [
|
151 |
+
"<IPython.core.display.HTML object>"
|
152 |
+
]
|
153 |
+
},
|
154 |
+
"metadata": {},
|
155 |
+
"output_type": "display_data"
|
156 |
+
},
|
157 |
+
{
|
158 |
+
"data": {
|
159 |
+
"text/html": [],
|
160 |
+
"text/plain": [
|
161 |
+
"<IPython.core.display.HTML object>"
|
162 |
+
]
|
163 |
+
},
|
164 |
+
"metadata": {},
|
165 |
+
"output_type": "display_data"
|
166 |
+
},
|
167 |
+
{
|
168 |
+
"data": {
|
169 |
+
"text/plain": [
|
170 |
+
"{'angry': 2.989317636092892e-06,\n",
|
171 |
+
" 'disgust': 5.77794665446163e-08,\n",
|
172 |
+
" 'fear': 3.6713783629238605e-05,\n",
|
173 |
+
" 'happy': 0.9984612464904785,\n",
|
174 |
+
" 'neutral': 0.0014104010770097375,\n",
|
175 |
+
" 'sad': 6.638830200245138e-06,\n",
|
176 |
+
" 'surprise': 8.18939515738748e-05}"
|
177 |
+
]
|
178 |
+
},
|
179 |
+
"execution_count": 7,
|
180 |
+
"metadata": {},
|
181 |
+
"output_type": "execute_result"
|
182 |
+
}
|
183 |
+
],
|
184 |
+
"source": [
|
185 |
+
"classify_image(im)"
|
186 |
+
]
|
187 |
+
},
|
188 |
+
{
|
189 |
+
"cell_type": "code",
|
190 |
+
"execution_count": 10,
|
191 |
+
"metadata": {},
|
192 |
+
"outputs": [
|
193 |
+
{
|
194 |
+
"name": "stderr",
|
195 |
+
"output_type": "stream",
|
196 |
+
"text": [
|
197 |
+
"c:\\Users\\khale\\anaconda3\\envs\\fastai\\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",
|
198 |
+
" warnings.warn(\n",
|
199 |
+
"c:\\Users\\khale\\anaconda3\\envs\\fastai\\lib\\site-packages\\gradio\\deprecation.py:40: UserWarning: `optional` parameter is deprecated, and it has no effect\n",
|
200 |
+
" warnings.warn(value)\n",
|
201 |
+
"c:\\Users\\khale\\anaconda3\\envs\\fastai\\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",
|
202 |
+
" warnings.warn(\n",
|
203 |
+
"c:\\Users\\khale\\anaconda3\\envs\\fastai\\lib\\site-packages\\gradio\\deprecation.py:40: UserWarning: The 'type' parameter has been deprecated. Use the Number component instead.\n",
|
204 |
+
" warnings.warn(value)\n"
|
205 |
+
]
|
206 |
+
},
|
207 |
+
{
|
208 |
+
"name": "stdout",
|
209 |
+
"output_type": "stream",
|
210 |
+
"text": [
|
211 |
+
"Running on local URL: http://127.0.0.1:7860\n",
|
212 |
+
"\n",
|
213 |
+
"To create a public link, set `share=True` in `launch()`.\n"
|
214 |
+
]
|
215 |
+
},
|
216 |
+
{
|
217 |
+
"data": {
|
218 |
+
"text/plain": []
|
219 |
+
},
|
220 |
+
"execution_count": 10,
|
221 |
+
"metadata": {},
|
222 |
+
"output_type": "execute_result"
|
223 |
+
},
|
224 |
+
{
|
225 |
+
"data": {
|
226 |
+
"text/html": [
|
227 |
+
"\n",
|
228 |
+
"<style>\n",
|
229 |
+
" /* Turns off some styling */\n",
|
230 |
+
" progress {\n",
|
231 |
+
" /* gets rid of default border in Firefox and Opera. */\n",
|
232 |
+
" border: none;\n",
|
233 |
+
" /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
|
234 |
+
" background-size: auto;\n",
|
235 |
+
" }\n",
|
236 |
+
" progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
|
237 |
+
" background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
|
238 |
+
" }\n",
|
239 |
+
" .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
|
240 |
+
" background: #F44336;\n",
|
241 |
+
" }\n",
|
242 |
+
"</style>\n"
|
243 |
+
],
|
244 |
+
"text/plain": [
|
245 |
+
"<IPython.core.display.HTML object>"
|
246 |
+
]
|
247 |
+
},
|
248 |
+
"metadata": {},
|
249 |
+
"output_type": "display_data"
|
250 |
+
},
|
251 |
+
{
|
252 |
+
"data": {
|
253 |
+
"text/html": [],
|
254 |
+
"text/plain": [
|
255 |
+
"<IPython.core.display.HTML object>"
|
256 |
+
]
|
257 |
+
},
|
258 |
+
"metadata": {},
|
259 |
+
"output_type": "display_data"
|
260 |
+
},
|
261 |
+
{
|
262 |
+
"data": {
|
263 |
+
"text/html": [
|
264 |
+
"\n",
|
265 |
+
"<style>\n",
|
266 |
+
" /* Turns off some styling */\n",
|
267 |
+
" progress {\n",
|
268 |
+
" /* gets rid of default border in Firefox and Opera. */\n",
|
269 |
+
" border: none;\n",
|
270 |
+
" /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
|
271 |
+
" background-size: auto;\n",
|
272 |
+
" }\n",
|
273 |
+
" progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
|
274 |
+
" background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
|
275 |
+
" }\n",
|
276 |
+
" .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
|
277 |
+
" background: #F44336;\n",
|
278 |
+
" }\n",
|
279 |
+
"</style>\n"
|
280 |
+
],
|
281 |
+
"text/plain": [
|
282 |
+
"<IPython.core.display.HTML object>"
|
283 |
+
]
|
284 |
+
},
|
285 |
+
"metadata": {},
|
286 |
+
"output_type": "display_data"
|
287 |
+
},
|
288 |
+
{
|
289 |
+
"data": {
|
290 |
+
"text/html": [],
|
291 |
+
"text/plain": [
|
292 |
+
"<IPython.core.display.HTML object>"
|
293 |
+
]
|
294 |
+
},
|
295 |
+
"metadata": {},
|
296 |
+
"output_type": "display_data"
|
297 |
+
},
|
298 |
+
{
|
299 |
+
"name": "stderr",
|
300 |
+
"output_type": "stream",
|
301 |
+
"text": [
|
302 |
+
"Traceback (most recent call last):\n",
|
303 |
+
" File \"c:\\Users\\khale\\anaconda3\\envs\\fastai\\lib\\site-packages\\gradio\\routes.py\", line 292, in run_predict\n",
|
304 |
+
" output = await app.blocks.process_api(\n",
|
305 |
+
" File \"c:\\Users\\khale\\anaconda3\\envs\\fastai\\lib\\site-packages\\gradio\\blocks.py\", line 1007, in process_api\n",
|
306 |
+
" result = await self.call_function(fn_index, inputs, iterator, request)\n",
|
307 |
+
" File \"c:\\Users\\khale\\anaconda3\\envs\\fastai\\lib\\site-packages\\gradio\\blocks.py\", line 848, in call_function\n",
|
308 |
+
" prediction = await anyio.to_thread.run_sync(\n",
|
309 |
+
" File \"c:\\Users\\khale\\anaconda3\\envs\\fastai\\lib\\site-packages\\anyio\\to_thread.py\", line 28, in run_sync\n",
|
310 |
+
" return await get_asynclib().run_sync_in_worker_thread(func, *args, cancellable=cancellable,\n",
|
311 |
+
" File \"c:\\Users\\khale\\anaconda3\\envs\\fastai\\lib\\site-packages\\anyio\\_backends\\_asyncio.py\", line 818, in run_sync_in_worker_thread\n",
|
312 |
+
" return await future\n",
|
313 |
+
" File \"c:\\Users\\khale\\anaconda3\\envs\\fastai\\lib\\site-packages\\anyio\\_backends\\_asyncio.py\", line 754, in run\n",
|
314 |
+
" result = context.run(func, *args)\n",
|
315 |
+
" File \"C:\\Users\\khale\\AppData\\Local\\Temp\\ipykernel_14068\\120040373.py\", line 5, in classify_image\n",
|
316 |
+
" pred, ind, prob = learn.predict(im)\n",
|
317 |
+
" File \"c:\\Users\\khale\\anaconda3\\envs\\fastai\\lib\\site-packages\\fastai\\learner.py\", line 312, in predict\n",
|
318 |
+
" dl = self.dls.test_dl([item], rm_type_tfms=rm_type_tfms, num_workers=0)\n",
|
319 |
+
" File \"c:\\Users\\khale\\anaconda3\\envs\\fastai\\lib\\site-packages\\fastai\\data\\core.py\", line 532, in test_dl\n",
|
320 |
+
" test_ds = test_set(self.valid_ds, test_items, rm_tfms=rm_type_tfms, with_labels=with_labels\n",
|
321 |
+
" File \"c:\\Users\\khale\\anaconda3\\envs\\fastai\\lib\\site-packages\\fastai\\data\\core.py\", line 511, in test_set\n",
|
322 |
+
" if rm_tfms is None: rm_tfms = [tl.infer_idx(get_first(test_items)) for tl in test_tls]\n",
|
323 |
+
" File \"c:\\Users\\khale\\anaconda3\\envs\\fastai\\lib\\site-packages\\fastai\\data\\core.py\", line 511, in <listcomp>\n",
|
324 |
+
" if rm_tfms is None: rm_tfms = [tl.infer_idx(get_first(test_items)) for tl in test_tls]\n",
|
325 |
+
" File \"c:\\Users\\khale\\anaconda3\\envs\\fastai\\lib\\site-packages\\fastai\\data\\core.py\", line 405, in infer_idx\n",
|
326 |
+
" assert idx < len(self.types), f\"Expected an input of type in \\n{pretty_types}\\n but got {type(x)}\"\n",
|
327 |
+
"AssertionError: Expected an input of type in \n",
|
328 |
+
" - <class 'pathlib.WindowsPath'>\n",
|
329 |
+
" - <class 'pathlib.Path'>\n",
|
330 |
+
" - <class 'str'>\n",
|
331 |
+
" - <class 'torch.Tensor'>\n",
|
332 |
+
" - <class 'numpy.ndarray'>\n",
|
333 |
+
" - <class 'bytes'>\n",
|
334 |
+
" - <class 'fastai.vision.core.PILImage'>\n",
|
335 |
+
" but got <class 'NoneType'>\n"
|
336 |
+
]
|
337 |
+
},
|
338 |
+
{
|
339 |
+
"data": {
|
340 |
+
"text/html": [
|
341 |
+
"\n",
|
342 |
+
"<style>\n",
|
343 |
+
" /* Turns off some styling */\n",
|
344 |
+
" progress {\n",
|
345 |
+
" /* gets rid of default border in Firefox and Opera. */\n",
|
346 |
+
" border: none;\n",
|
347 |
+
" /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
|
348 |
+
" background-size: auto;\n",
|
349 |
+
" }\n",
|
350 |
+
" progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
|
351 |
+
" background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
|
352 |
+
" }\n",
|
353 |
+
" .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
|
354 |
+
" background: #F44336;\n",
|
355 |
+
" }\n",
|
356 |
+
"</style>\n"
|
357 |
+
],
|
358 |
+
"text/plain": [
|
359 |
+
"<IPython.core.display.HTML object>"
|
360 |
+
]
|
361 |
+
},
|
362 |
+
"metadata": {},
|
363 |
+
"output_type": "display_data"
|
364 |
+
},
|
365 |
+
{
|
366 |
+
"data": {
|
367 |
+
"text/html": [],
|
368 |
+
"text/plain": [
|
369 |
+
"<IPython.core.display.HTML object>"
|
370 |
+
]
|
371 |
+
},
|
372 |
+
"metadata": {},
|
373 |
+
"output_type": "display_data"
|
374 |
+
}
|
375 |
+
],
|
376 |
+
"source": [
|
377 |
+
"#| export\n",
|
378 |
+
"input = gr.inputs.Image(shape=(48,48))\n",
|
379 |
+
"label = gr.outputs.Label()\n",
|
380 |
+
"\n",
|
381 |
+
"inf = gr.Interface(fn=classify_image, inputs=input, outputs=label)\n",
|
382 |
+
"inf.launch(inline=False)"
|
383 |
+
]
|
384 |
+
},
|
385 |
+
{
|
386 |
+
"cell_type": "code",
|
387 |
+
"execution_count": 18,
|
388 |
+
"metadata": {},
|
389 |
+
"outputs": [
|
390 |
+
{
|
391 |
+
"ename": "ImportError",
|
392 |
+
"evalue": "cannot import name 'nootbook2script' from 'nbdev.export' (c:\\Users\\khale\\anaconda3\\envs\\fastai\\lib\\site-packages\\nbdev\\export.py)",
|
393 |
+
"output_type": "error",
|
394 |
+
"traceback": [
|
395 |
+
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
|
396 |
+
"\u001b[1;31mImportError\u001b[0m Traceback (most recent call last)",
|
397 |
+
"\u001b[1;32m~\\AppData\\Local\\Temp\\ipykernel_14068\\2772352922.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[0mnbdev\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexport\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mnootbook2script\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
|
398 |
+
"\u001b[1;31mImportError\u001b[0m: cannot import name 'nootbook2script' from 'nbdev.export' (c:\\Users\\khale\\anaconda3\\envs\\fastai\\lib\\site-packages\\nbdev\\export.py)"
|
399 |
+
]
|
400 |
+
}
|
401 |
+
],
|
402 |
+
"source": [
|
403 |
+
"from nbdev.export import nootbook2script"
|
404 |
+
]
|
405 |
+
},
|
406 |
+
{
|
407 |
+
"cell_type": "code",
|
408 |
+
"execution_count": null,
|
409 |
+
"metadata": {},
|
410 |
+
"outputs": [],
|
411 |
+
"source": [
|
412 |
+
"nootbook2script('')"
|
413 |
+
]
|
414 |
+
}
|
415 |
+
],
|
416 |
+
"metadata": {
|
417 |
+
"kernelspec": {
|
418 |
+
"display_name": "Python 3.9.15 ('fastai')",
|
419 |
+
"language": "python",
|
420 |
+
"name": "python3"
|
421 |
+
},
|
422 |
+
"language_info": {
|
423 |
+
"codemirror_mode": {
|
424 |
+
"name": "ipython",
|
425 |
+
"version": 3
|
426 |
+
},
|
427 |
+
"file_extension": ".py",
|
428 |
+
"mimetype": "text/x-python",
|
429 |
+
"name": "python",
|
430 |
+
"nbconvert_exporter": "python",
|
431 |
+
"pygments_lexer": "ipython3",
|
432 |
+
"version": "3.9.15"
|
433 |
+
},
|
434 |
+
"orig_nbformat": 4,
|
435 |
+
"vscode": {
|
436 |
+
"interpreter": {
|
437 |
+
"hash": "30a59fff96242406e34259903f48d4d3b8156a3ebd46a0fcd69369c9785f2644"
|
438 |
+
}
|
439 |
+
}
|
440 |
+
},
|
441 |
+
"nbformat": 4,
|
442 |
+
"nbformat_minor": 2
|
443 |
+
}
|
app.py
CHANGED
@@ -1,7 +1,18 @@
|
|
|
|
1 |
import gradio as gr
|
2 |
|
3 |
-
|
4 |
-
return "Hello " + name + "!!"
|
5 |
|
6 |
-
|
7 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from fastai.vision.all import *
|
2 |
import gradio as gr
|
3 |
|
4 |
+
learn = load_learner('F:\\huggintest\\test\\model.pkl')
|
|
|
5 |
|
6 |
+
|
7 |
+
Categories = ('angry', 'disgust', 'fear', 'happy', 'neutral', 'sad', 'surprise')
|
8 |
+
|
9 |
+
def classify_image(im):
|
10 |
+
pred, ind, prob = learn.predict(im)
|
11 |
+
return dict(zip(Categories , map(float,prob)))
|
12 |
+
|
13 |
+
|
14 |
+
input = gr.inputs.Image(shape=(48,48))
|
15 |
+
label = gr.outputs.Label()
|
16 |
+
|
17 |
+
inf = gr.Interface(fn=classify_image, inputs=input, outputs=label)
|
18 |
+
inf.launch(inline=False)
|
happy.jpg
ADDED
![]() |
model.pkl
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:60306c482f920e657d3986f3cd13f776d6cd5b7ecabcd39589f928322eeca7fe
|
3 |
+
size 47678497
|
sad.jpg
ADDED
![]() |
test.ipynb
ADDED
@@ -0,0 +1,208 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"cells": [
|
3 |
+
{
|
4 |
+
"cell_type": "code",
|
5 |
+
"execution_count": 4,
|
6 |
+
"metadata": {},
|
7 |
+
"outputs": [],
|
8 |
+
"source": [
|
9 |
+
"from fastai.vision.all import *"
|
10 |
+
]
|
11 |
+
},
|
12 |
+
{
|
13 |
+
"cell_type": "code",
|
14 |
+
"execution_count": 5,
|
15 |
+
"metadata": {},
|
16 |
+
"outputs": [],
|
17 |
+
"source": [
|
18 |
+
"path = 'F:/emotion_recognetion/archive'\n",
|
19 |
+
"\n",
|
20 |
+
"dls = ImageDataLoaders.from_folder(path, valid='test',item_tfms=RandomResizedCrop(48, min_scale=0.75))"
|
21 |
+
]
|
22 |
+
},
|
23 |
+
{
|
24 |
+
"cell_type": "code",
|
25 |
+
"execution_count": 6,
|
26 |
+
"metadata": {},
|
27 |
+
"outputs": [
|
28 |
+
{
|
29 |
+
"data": {
|
30 |
+
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAswAAALdCAYAAAA4WzUkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAADPa0lEQVR4nOz9efRnZXXvie9SkYKaqHmuoihkCijaAgIqGMVoazBK7nWIRjFeUdpOsmKWwVy9TpiOxJvl7Y5Txyt0vMk1ybrpJMS0dyFLozetEZoIqAhhqHmeGRWo7++PLOpX53U2Zz+fjwVVX3y91uKPfT7nPOeZz8O33nvvKRMTExMhIiIiIiIpTzvcFRAREREROZLxwCwiIiIiMoAHZhERERGRATwwi4iIiIgM4IFZRERERGQAD8wiIiIiIgN4YBYRERERGcADs4iIiIjIAB6YRUREREQG8MD8M8SHP/zhmDJlyuGuhsik57G1tGPHjsNdFRE5RLiuZQgPzCIiIiIiA3hgFhEREREZwAPzEcT27dvjne98ZyxfvjyOPvromD9/fpx//vnxta99LSIirrvuunjNa14Ty5Yti6lTp8aJJ54Yl112WfrPR1/5ylfizDPPjKOPPjpWrVoVn/zkJ5/s5og85dm6dWu88Y1vjFmzZsXChQvj7W9/e+zdu/fA75/+9KfjxS9+cSxYsCCmTZsWZ5xxRlx11VXx8MMPd8q58MIL4/TTT49vfetb8YIXvCCOOeaYWLp0aXzwgx+MRx999MB9a9asiSlTpsRVV10VH//4x2PFihUxderUeP7znx/XX3/9gfu+9a1vxZQpU+K//tf/2qvzn/zJn8SUKVPihhtueAJ6RGTy47qWjGcc7grI/5+3vOUtcdNNN8XHP/7xOOmkk2LPnj1x0003xc6dOyMi4q677opzzz033vGOd8SsWbNizZo18Yd/+Ifxwhe+MG699dY46qijIiLi+uuvj9e85jVx7rnnxpe//OV49NFH46qrroqtW7cezuaJPOW45JJL4vWvf3382q/9Wtx6663x/ve/PyIivvjFL0bEv67ZN73pTbFq1ap45jOfGTfffHN8/OMfjx/96EcH7nmMLVu2xBve8Ia44oor4qMf/Wh85StfiSuvvDJ2794df/RHf9S594/+6I9i5cqV8alPfSr2798fV111Vbzyla+Mf/iHf4hzzz03XvSiF8Vzn/vc+PSnPx1vfOMbe8+eddZZcdZZZz2BPSMyeXFdS8qEHDFMnz594jd/8zeb7t2/f//Eww8/PLF27dqJiJj4m7/5mwO/nXPOORNLliyZePDBBw9c27dv38ScOXMmHHKRn54PfehDExExcdVVV3WuX3755RNTp06d2L9/f++ZRx99dOLhhx+e+JM/+ZOJpz/96RO7du068NsFF1zQW8cTExMT/+7f/buJpz3taRNr166dmJiYmLjnnnsmIuJx1/fLXvayA9euvvrqiYiY+Od//ucD17773e9ORMTE//V//V8/VftFnoq4rmUIJRlHEGeffXZcc801ceWVV8Z3vvOd3j/vbNu2Ld71rnfF8uXL4xnPeEYcddRRsXLlyoiIuO222yIi4v77748bbrghXve618XUqVMPPDtjxoz4xV/8xSevMSI/A1x88cUd+9nPfnY89NBDsW3btoiI+Od//ue4+OKLY+7cufH0pz89jjrqqPjVX/3VePTRR+OOO+7oPDtjxoxeeW9605ti//798c1vfrNz/fHW9ze/+c0D/9T7xje+MRYsWBCf/vSnD9z3f/wf/0fMnz8/Xv/61//0jRd5iuK6lgwPzEcQf/7nfx5vfetb4wtf+EKce+65MWfOnPjVX/3V2LJlS+zfvz9e/vKXx1/91V/F+973vrj++uvju9/9bnznO9+JiIgHH3wwIiJ2794d+/fvj0WLFvXKz66JyPjMnTu3Yx999NER8a/rcd26dfGiF70oNm7cGP/pP/2n+Na3vhU33HDDgQ/dY2v2MRYuXNgr/7E1+5gsi9d57Sc/+Uncd999B+py2WWXxZ/92Z/Fnj17Yvv27fEXf/EX8Y53vONAPUWkj+taMtQwH0HMmzcvPvWpT8WnPvWpWLduXfzt3/5tXHHFFbFt27a46qqr4uabb45rrrkm3vrWtx545s477+yUMXv27JgyZUps2bKlV352TUSeGP76r/867r///virv/qrA/8SFBHxve99L70/8zF4bM3yA/546/uZz3xmTJ8+/cC1d7/73fH7v//78cUvfjEeeuiheOSRR+Jd73rXOM0RkXBd/yzjX5iPUFasWBHvec974qKLLoqbbrrpQMIR/h/k5z//+Y49bdq0OPvss+Ov/uqv4qGHHjpw/d57741rr732ia+4iEREpGt2YmIi/viP/zi9/957742//du/7Vz7sz/7s3ja054WL37xizvXH299v+hFL4qnP/3pB64vXrw4/s2/+Tfxmc98Jj73uc/FL/7iL8aKFSt+6raJ/Kziuv7Zxb8wHyHs3bs3XvKSl8Sb3vSmOOWUU2LGjBlxww03xFe/+tV43eteF6ecckqsXr06rrjiipiYmIg5c+bEtddeG9ddd12vrI997GPxile8Ii666KJ473vfG48++mh84hOfiGnTpsWuXbsOQ+tEfva46KKL4pnPfGa88Y1vjPe9733x0EMPxWc/+9nYvXt3ev/cuXPj3e9+d6xbty5OOumk+Pu///v44z/+43j3u9/d+xg+/elPj4suuih+67d+K/bv3x+f+MQnYt++ffGRj3ykV+5v/MZvxDnnnBMREVdfffWhb6jIzxCu659dPDAfIUydOjXOOeec+NKXvhRr1qyJhx9+OFasWBG/8zu/E+973/viqKOOimuvvTZ+4zd+Iy677LJ4xjOeES972cvia1/7Wm/RXXTRRfHXf/3X8YEPfCBe//rXx6JFi+Lyyy+PBx98MF14InLoOeWUU+K//bf/Fh/4wAfida97XcydOzfe9KY3xW/91m/FK1/5yt79ixYtik9/+tPx27/923HrrbfGnDlz4nd/93fTNfue97wnHnroofj1X//12LZtW/zcz/1cfOUrX4nzzz+/d+/ZZ58dxx9/fBxzzDHx0pe+9Alpq8jPCq7rn12mTExMTBzuSoiI/Cxz4YUXxo4dO+L73//+4H1r1qyJVatWxR/8wR/Eb//2bzeVfcstt8RznvOc+PSnPx2XX375oaiuiDTgun5q4V+YRUSegtx1112xdu3a+N3f/d1YvHhxvO1tbzvcVRKRnxLX9eFDpz8RkacgH/vYx+Kiiy6K++67L/7yL/8yjj322MNdJRH5KXFdHz6UZIiIiIiIDOBfmEVEREREBvDALCIiIiIygAdmEREREZEBPDCLiIiIiAzQHFaOoUue+cxndgt6Rr8oXtu/f3/HfuSRRzp25n/Iex5LS/kY999/f8c+OK3k4733aU/r/n8CvUyPOeaYXhmPPvroYBmsJ/un5ZmHH364Y7PeGfv27Rssc9asWb1nmF67+n3lypW9ew7Oax8RsXHjxsF6zJ07tyyDY3nnnXd27H/5l3/plbF8+fKOfdRRRw3axx13XK+MpUuXdmzOMc6P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2rJlS8e+5ZZbemUwtio1zdwHGWM6IuLkk0/u2FznLVR92DK2LfcciVALunHjxo599913957hfHnJS17SsVesWNGxb7rppl4Z1I9WGt5MZ175lHCvyPZ0zuNqHLPvU+XbU8Vfz65VczD7Xlf+HRy3Fg1z5YOWjUvlN9ASU5rs2rWrY3OeLlmypPcM9/Uq1ve2bdt6Zaxdu7asW8bk3A1ERERERJ4kPDCLiIiIiAzggVlEREREZAAPzCIiIiIiAzQ7/dFBhALwzCmHQnOKs/lMFmx8VEfBTKxeidFbEoa0OBceTIvTXyX4zxwVMueEUamcHCtnh+yeygEiK6NqCxOGPP/5z+/ds3PnzsH3cL5kzql0huKcohPFSSed1Cvjl37pl3rXJgPVnGtJXFI5kdJxLKI/P7LENgeTOZ6OmjyoxYGxan+2rqv107KueW1UR5/sPXQCpENWVg8miWACDCYPyhwH77rrro79z//8zx2bTrVnn312r4wzzjijY4+TbGqcZ54qcBzpWJklgVq1alXHZhKoDRs2dOzMuaxag9xrW9ZT5TiYJabgM9zTWY9sb8jW2BDZN65KVNIScKBKTMJzU3YWq/bocc4V1frK5gfPQEyIR2c8Ov5H5MlMDobfkr179/buWb9+/WAZj4d/YRYRERERGcADs4iIiIjIAB6YRUREREQGmDLxRETdFxERERF5iuBfmEVEREREBvDALCIiIiIygAdmEREREZEBPDCLiIiIiAzggVlEREREZAAPzCIiIiIiA3hgFhEREREZwAOziIiIiMgAHphFRERERAbwwCwiIiIiMoAHZhERERGRATwwi4iIiIgM4IFZRERERGQAD8wiIiIiIgN4YBYRERERGcADs4iIiIjIAB6YRUREREQG8MAsIiIiIjKAB2YRERERkQE8MIuIiIiIDOCB+SnCpk2b4sMf/nB873vfe0LKv+aaa2LKlCmxZs2aJ6R8kacif/7nfx4/93M/F8ccc0xMmTLlCVufIvLU4sMf/nBMmTLlcFdDDsID81OETZs2xUc+8hE/yCJHCNu3b4+3vOUtsXr16vjqV78a3/72t+Okk0463NUSEZExeMbhroAcHh544IE49thjD3c1RJ6y3HHHHfHwww/Hm9/85rjggguetPc++uij8cgjj8TRRx/9pL1TROSpjn9hPsQ89s8oP/jBD+KNb3xjzJo1KxYuXBhvf/vbY+/evQfum5iYiM985jNx5plnxjHHHBOzZ8+OX/7lX4677767U97xxx8fb3vb23rvufDCC+PCCy+MiIhvfOMbcdZZZ0VExKWXXhpTpkyJKVOmxIc//OGIiHjb294W06dPj1tvvTVe/vKXx4wZM+KlL31pRERcd9118ZrXvCaWLVsWU6dOjRNPPDEuu+yy2LFjx6HvHJGfEd72trfFC1/4woiIeP3rXx9Tpkw5sF5vvPHGuPjii2POnDkxderUeO5znxt/8Rd/0Xl++/btcfnll8dpp50W06dPjwULFsTP//zPx7e+9a3OfWvWrIkpU6bEVVddFVdeeWWsWrUqjj766Pj617/+pLRT5GeV7du3xzvf+c5Yvnx5HH300TF//vw4//zz42tf+1pEjPZt/cpXvhJnnnlmHH300bFq1ar45Cc/+WQ3RxrwL8xPEJdcckm8/vWvj1/7tV+LW2+9Nd7//vdHRMQXv/jFiIi47LLL4pprrolf//Vfj0984hOxa9eu+OhHPxrnnXde3HzzzbFw4cLmdz3vec+Lq6++Oi699NL4wAc+EK961asiImLZsmUH7vnJT34SF198cVx22WVxxRVXxCOPPBIREXfddVece+658Y53vCNmzZoVa9asiT/8wz+MF77whXHrrbfGUUcddai6RORnhg9+8INx9tlnx//yv/wv8Xu/93vxkpe8JGbOnBlf//rX4xWveEWcc8458bnPfS5mzZoVX/7yl+P1r399PPDAAwf+53jXrl0REfGhD30oFi1aFPfdd1/83//3/x0XXnhhXH/99QcO34/xv//v/3ucdNJJ8clPfjJmzpwZz3rWs57kFov8bPGWt7wlbrrppvj4xz8eJ510UuzZsyduuumm2LlzZ0S0f1uvv/76eM1rXhPnnntufPnLX45HH300rrrqqti6devhbJ5kTMgh5UMf+tBERExcddVVneuXX375xNSpUyf2798/8e1vf3siIib+43/8j5171q9fP3HMMcdMvO997ztwbeXKlRNvfetbe++54IILJi644IID9g033DARERNXX3117963vvWtExEx8cUvfnGw7vv37594+OGHJ9auXTsRERN/8zd/c+C3q6++eiIiJu65557BMkTkX/n6178+ERETf/mXf3ng2imnnDLx3Oc+d+Lhhx/u3PvqV796YvHixROPPvpoWtYjjzwy8fDDD0+89KUvnXjta1974Po999wzERETq1evnvjJT37yxDRERHpMnz594jd/8zeb7h36tp5zzjkTS5YsmXjwwQcPXNu3b9/EnDlzJjyiHVkoyXiCuPjiizv2s5/97HjooYdi27Zt8Xd/93cxZcqUePOb3xyPPPLIgf8WLVoUz3nOc+Ib3/jGE1KnSy65pHdt27Zt8a53vSuWL18ez3jGM+Koo46KlStXRkTEbbfd9oTUQ+RnkTvvvDN+9KMfxa/8yq9ERHTW/v/8P//PsXnz5rj99tsP3P+5z30unve858XUqVMPrM3rr78+XZcXX3yx/xok8iRy9tlnxzXXXBNXXnllfOc734mHH36483vLt/X++++PG264IV73utfF1KlTDzw7Y8aM+MVf/MUnrzHShJKMJ4i5c+d27McccB588MHYunVrTExMPK7s4oQTTjjk9Tn22GNj5syZnWv79++Pl7/85bFp06b44Ac/GGeccUZMmzYt9u/fHy94wQviwQcfPOT1EPlZ5bF/Yv3t3/7t+O3f/u30nsf0jX/4h38Y733ve+Nd73pXfOxjH4t58+bF05/+9PjgBz+YHpgXL178xFVcRHr8+Z//eVx55ZXxhS98IT74wQ/G9OnT47WvfW1cddVVsWDBgqZv6+7du2P//v2xaNGiXvnZNTm8eGA+DMybNy+mTJkS3/rWt1JP9oOvTZ06NX784x/37tmxY0fMmzev+Z1ZPMfvf//7cfPNN8c111wTb33rWw9cv/POO5vLFZE2Hluv73//++N1r3tdes/JJ58cERH/5b/8l7jwwgvjs5/9bOf3e++9N33OeK0iTy7z5s2LT33qU/GpT30q1q1bF3/7t38bV1xxRWzbti2uuuqqpm/r7NmzY8qUKbFly5Ze+dk1Obx4YD4MvPrVr47f//3fj40bN8a//bf/dvDe448/Pm655ZbOtTvuuCNuv/32zoH54L9gt/LYR5aH9s9//vPNZYhIGyeffHI861nPiptvvjl+7/d+b/DeKVOm9NblLbfcEt/+9rdj+fLlT2Q1RWREVqxYEe95z3vi+uuvj3/8x39s/rZOmzYtzj777Pirv/qr+IM/+IMDsox77703rr322ien8tKMB+bDwPnnnx/vfOc749JLL40bb7wxXvziF8e0adNi8+bN8T/+x/+IM844I9797ndHxL964r75zW+Oyy+/PC655JJYu3ZtXHXVVTF//vxOmatXr45jjjkm/vRP/zROPfXUmD59eixZsiSWLFnyuPU45ZRTYvXq1XHFFVfExMREzJkzJ6699tq47rrrntD2i/ys8vnPfz5e+cpXxi/8wi/E2972tli6dGns2rUrbrvttrjpppviL//yLyPiX/+n+mMf+1h86EMfigsuuCBuv/32+OhHPxqrVq06EOFGRA4Pe/fujZe85CXxpje9KU455ZSYMWNG3HDDDfHVr341Xve61430bf3Yxz4Wr3jFK+Kiiy6K9773vfHoo4/GJz7xiZg2bdqBaDlyZKDT32Hi85//fPzRH/1RfPOb34w3vOEN8apXvSr+w3/4D3H//ffH2WeffeC+N73pTXHVVVfFf//v/z1e/epXx2c/+9n47Gc/28sYduyxx8YXv/jF2LlzZ7z85S+Ps846K/7P//P/HKzDUUcdFddee22cdNJJcdlll8Ub3/jG2LZt24E4kiJyaHnJS14S3/3ud+O4446L3/zN34yXvexl8e53vzu+9rWvxcte9rID9/37f//v473vfW/85//8n+NVr3pVfOELX4jPfe5zB2I7i8jhY+rUqXHOOefEl770pfiVX/mVeOUrXxlf+MIX4nd+53fij//4j0f6tl500UXx13/917Fv3754/etfH7/1W78Vl1xySbz97W8/DC2TIaZMTExMHO5KiIiIiIgcqfgXZhERERGRATwwi4iIiIgM4IFZRERERGQAD8wiIiIiIgN4YBYRERERGcADs4iIiIjIAB6YRUREREQGaM70d/PNN3dsZqDZt29f75lNmzZ17AceeKBjH5zaOeJfk2+Q733vex37xS9+8WCZd911V68MhppevHhxx160aFHHZjrLiIg9e/Z0bLb3oYceGrw/ImL79u0de8eOHR37vvvu6z1DHkud+Rg//vGPOzZTY/P3iIj777+/Y7Mt/P3hhx/ulfHMZz6zYz+WCvQx2B+8P3tm//79vXsOJstwxvbOnj27YzONcJY6fO/evR2bfcY+5zsiIqZPn96xv/KVr/TuORL52Mc+1rGPOuqoQTsi4ulPf/pgmU972tMG7Yj+WPIevjebG48++mjH5nyq7OzaM57xjEE7g23h3Of6yfpj1LpnZfC9nMfsr6yMqsx77723Y2/YsKH3zJo1azr2zp07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x5lnnnm4qyMihwDX9eTEA/MRzMMPPxxTpkyJZzzjpxumBx54II499tg47bTTDlHNRORI5LG1LiJPHVzXRwZKMn5Ktm/fHu985ztj+fLlcfTRR8f8+fPj/PPPj6997WsREXH88cfH2972tt5zlEd84xvfiClTpsSXvvSleO973xtLly6No48+Ou68884D/7xy3XXXxaWXXhpz5syJadOmxS/+4i/G3Xff3Sv39NNPj29+85tx3nnnxbHHHhtvf/vb03dGRHz2s5+N5zznOTF9+vSYMWNGnHLKKfG7v/u7nXu2bNkSl112WSxbtiye+cxnxqpVq+IjH/lIPPLIIz99B4pMAj784Q/HlClT4gc/+EG88Y1vjFmzZsXChQvj7W9/e+zdu/fAfRMTE/GZz3wmzjzzzDjmmGNi9uzZ8cu//Mu9ddqyL3zjG9+Is846KyIiLr300pgyZUpMmTIlPvzhD0dExNve9raYPn163HrrrfHyl788ZsyYES996UsjIuK6666L17zmNbFs2bKYOnVqnHjiiXHZZZfFjh07Dn3niExSXNcyCv6F+afkLW95S9x0003x8Y9/PE466aTYs2dP3HTTTbFz586xynv/+98f5557bnzuc5+Lpz3tabFgwYIDv/3ar/1aXHTRRfFnf/ZnsX79+vjABz4QF154Ydxyyy1x3HHHHbhv8+bN8eY3vzne9773xe/93u/F056W/3/Rl7/85bj88svjf/1f/9f45Cc/GU972tPizjvvjB/+8IcH7tmyZUucffbZ8bSnPS3+w3/4D7F69er49re/HVdeeWWsWbMmrr766rHaKTIZueSSS+L1r399/Nqv/Vrceuut8f73vz8iIr74xS9GRMRll10W11xzTfz6r/96fOITn4hdu3bFRz/60TjvvPPi5ptvjoULFza/63nPe15cffXVcemll8YHPvCBeNWrXhUREcuWLTtwz09+8pO4+OKL47LLLosrrrjiwP/E3nXXXXHuuefGO97xjpg1a1asWbMm/vAP/zBe+MIXxq233hpHHXXUoeoSkUmP61qamJCfiunTp0/85m/+5uP+vnLlyom3vvWtvesXXHDBxAUXXHDA/vrXvz4RERMvfvGLe/deffXVExEx8drXvrZz/R//8R8nImLiyiuv7JQbERPXX399+c73vOc9E8cdd9xA6yYmLrvssonp06dPrF27tnP9k5/85ERETPzgBz8YfF7kqcCHPvShiYiYuOqqqzrXL7/88ompU6dO7N+/f+Lb3/72RERM/Mf/+B8796xfv37imGOOmXjf+9534FrrvnDDDTdMRMTE1Vdf3bv3rW9960RETHzxi18crPv+/fsnHn744Ym1a9dORMTE3/zN3xz47bG95Z577hksQ+SpiOtaRkFJxk/J2WefHddcc01ceeWV8Z3vfCcefvjhn6q8Sy655HF/+5Vf+ZWOfd5558XKlSvj61//euf67Nmz4+d//ufLd5199tmxZ8+eeOMb3xh/8zd/k/6zzt/93d/FS17ykliyZEk88sgjB/575StfGRER//AP/9DSLJGnBBdffHHHfvaznx0PPfRQbNu2Lf7u7/4upkyZEm9+85s7a2XRokXxnOc8J77xjW88IXXK9oxt27bFu971rli+fHk84xnPiKOOOipWrlwZERG33XbbE1IPkcmK61paUJLxU/Lnf/7nceWVV8YXvvCF+OAHPxjTp0+P1772tXHVVVfFokWLRi5v8eLFj/tbVt6iRYt68o+hMg7mLW95SzzyyCPxx3/8x3HJJZfE/v3746yzzoorr7wyLrroooiI2Lp1a1x77bWP+089aqfkZ4m5c+d27KOPPjoiIh588MHYunVrTExMPO4/z55wwgmHvD7HHntszJw5s3Nt//798fKXvzw2bdoUH/zgB+OMM86IadOmxf79++MFL3hBPPjgg4e8HiKTGde1tOCB+adk3rx58alPfSo+9alPxbp16+Jv//Zv44orroht27bFV7/61Zg6dWr8+Mc/7j23Y8eOmDdvXu/6lClTHvddW7ZsSa+deOKJzWWQSy+9NC699NK4//7745vf/GZ86EMfile/+tVxxx13xMqVK2PevHnx7Gc/Oz7+8Y+nzy9ZsqT5XSJPZebNmxdTpkyJb33rWwc+uAdz8LVR94XHI1vr3//+9+Pmm2+Oa665Jt761rceuH7nnXc2lysi/4rrWh7DA/MhZMWKFfGe97wnrr/++vjHf/zHiPhXr9lbbrmlc98dd9wRt99++0gLKCLiT//0Tzv/TPP//r//b6xduzbe8Y53/NR1nzZtWrzyla+Mn/zkJ/FLv/RL8YMf/CBWrlwZr371q+Pv//7vY/Xq1TF79uyf+j0iT1Ve/epXx+///u/Hxo0b49/+2387eG/rvnDwX7paeexjy4/75z//+eYyRORfcV3LY3hg/inYu3dvvOQlL4k3velNccopp8SMGTPihhtuiK9+9avxute9LiL+Vfbw5je/OS6//PK45JJLYu3atXHVVVfF/PnzR37fjTfeGO94xzvi3/ybfxPr16+Pf//v/30sXbo0Lr/88rHq/+/+3b+LY445Js4///xYvHhxbNmyJf63/+1/i1mzZh0Ie/PRj340rrvuujjvvPPi13/91+Pkk0+Ohx56KNasWRN///d/H5/73Oc63r0iP6ucf/758c53vjMuvfTSuPHGG+PFL35xTJs2LTZv3hz/43/8jzjjjDPi3e9+d0S07wurV6+OY445Jv70T/80Tj311Jg+fXosWbJk8F92TjnllFi9enVcccUVMTExEXPmzIlrr702rrvuuie0/SJPRVzX8hgemH8Kpk6dGuecc0586UtfijVr1sTDDz8cK1asiN/5nd+J973vfRER8aY3vSk2bdoUn/vc5+Lqq6+O008/PT772c/GRz7ykZHf95//83+OL33pS/GGN7whfvzjH8dLXvKS+E//6T/FnDlzxqr/i170orjmmmviL/7iL2L37t0xb968eOELXxh/8id/cmCBL168OG688cb42Mc+Fn/wB38QGzZsiBkzZsSqVaviFa94hX91FjmIz3/+8/GCF7wgPv/5z8dnPvOZ2L9/fyxZsiTOP//8OPvssw/c17ovHHvssfHFL34xPvKRj8TLX/7yePjhh+NDH/rQgZitGUcddVRce+218Ru/8Rtx2WWXxTOe8Yx42cteFl/72tdixYoVT1TTRZ6yuK4lImLKxMTExOGuhAxzzTXXxKWXXho33HBDPP/5zz/c1RERERH5mcKwciIiIiIiA3hgFhEREREZQEmGiIiIiMgA/oVZRERERGQAD8wiIiIiIgN4YBYRERERGcADs4iIiIjIAM2JS17wghd0bPoKZr6D+/fvH7Sf9rTueX3q1Km9MpgGkjnWn/70p3fsZzyj36RnPvOZHfuoo44arEeWx53l8h62n2Vm1x599NHBMo455pheGTNmzOjY7J9jjz22Y7PtGWwb+zRLTnLCCSd0bAZOnzlz5mCZERE7d+7s2Js2berYf/Znf9ax16xZ0yuD7WcfcqxpZ3VjGY888signfEXf/EX5T1HAhxbzpds/lTriXa2rjnnuDaqd2TP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",
|
31 |
+
"text/plain": [
|
32 |
+
"<Figure size 900x900 with 9 Axes>"
|
33 |
+
]
|
34 |
+
},
|
35 |
+
"metadata": {},
|
36 |
+
"output_type": "display_data"
|
37 |
+
}
|
38 |
+
],
|
39 |
+
"source": [
|
40 |
+
"dls.show_batch()"
|
41 |
+
]
|
42 |
+
},
|
43 |
+
{
|
44 |
+
"cell_type": "code",
|
45 |
+
"execution_count": 7,
|
46 |
+
"metadata": {},
|
47 |
+
"outputs": [
|
48 |
+
{
|
49 |
+
"name": "stderr",
|
50 |
+
"output_type": "stream",
|
51 |
+
"text": [
|
52 |
+
"c:\\Users\\khale\\anaconda3\\envs\\fastai\\lib\\site-packages\\torchvision\\models\\_utils.py:208: UserWarning: The parameter 'pretrained' is deprecated since 0.13 and may be removed in the future, please use 'weights' instead.\n",
|
53 |
+
" warnings.warn(\n",
|
54 |
+
"c:\\Users\\khale\\anaconda3\\envs\\fastai\\lib\\site-packages\\torchvision\\models\\_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing `weights=ResNet18_Weights.IMAGENET1K_V1`. You can also use `weights=ResNet18_Weights.DEFAULT` to get the most up-to-date weights.\n",
|
55 |
+
" warnings.warn(msg)\n"
|
56 |
+
]
|
57 |
+
},
|
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 |
+
"<table border=\"1\" class=\"dataframe\">\n",
|
89 |
+
" <thead>\n",
|
90 |
+
" <tr style=\"text-align: left;\">\n",
|
91 |
+
" <th>epoch</th>\n",
|
92 |
+
" <th>train_loss</th>\n",
|
93 |
+
" <th>valid_loss</th>\n",
|
94 |
+
" <th>error_rate</th>\n",
|
95 |
+
" <th>time</th>\n",
|
96 |
+
" </tr>\n",
|
97 |
+
" </thead>\n",
|
98 |
+
" <tbody>\n",
|
99 |
+
" <tr>\n",
|
100 |
+
" <td>0</td>\n",
|
101 |
+
" <td>1.944133</td>\n",
|
102 |
+
" <td>1.726344</td>\n",
|
103 |
+
" <td>0.673586</td>\n",
|
104 |
+
" <td>08:50</td>\n",
|
105 |
+
" </tr>\n",
|
106 |
+
" </tbody>\n",
|
107 |
+
"</table>"
|
108 |
+
],
|
109 |
+
"text/plain": [
|
110 |
+
"<IPython.core.display.HTML object>"
|
111 |
+
]
|
112 |
+
},
|
113 |
+
"metadata": {},
|
114 |
+
"output_type": "display_data"
|
115 |
+
},
|
116 |
+
{
|
117 |
+
"data": {
|
118 |
+
"text/html": [
|
119 |
+
"\n",
|
120 |
+
"<style>\n",
|
121 |
+
" /* Turns off some styling */\n",
|
122 |
+
" progress {\n",
|
123 |
+
" /* gets rid of default border in Firefox and Opera. */\n",
|
124 |
+
" border: none;\n",
|
125 |
+
" /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
|
126 |
+
" background-size: auto;\n",
|
127 |
+
" }\n",
|
128 |
+
" progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
|
129 |
+
" background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
|
130 |
+
" }\n",
|
131 |
+
" .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
|
132 |
+
" background: #F44336;\n",
|
133 |
+
" }\n",
|
134 |
+
"</style>\n"
|
135 |
+
],
|
136 |
+
"text/plain": [
|
137 |
+
"<IPython.core.display.HTML object>"
|
138 |
+
]
|
139 |
+
},
|
140 |
+
"metadata": {},
|
141 |
+
"output_type": "display_data"
|
142 |
+
},
|
143 |
+
{
|
144 |
+
"data": {
|
145 |
+
"text/html": [
|
146 |
+
"<table border=\"1\" class=\"dataframe\">\n",
|
147 |
+
" <thead>\n",
|
148 |
+
" <tr style=\"text-align: left;\">\n",
|
149 |
+
" <th>epoch</th>\n",
|
150 |
+
" <th>train_loss</th>\n",
|
151 |
+
" <th>valid_loss</th>\n",
|
152 |
+
" <th>error_rate</th>\n",
|
153 |
+
" <th>time</th>\n",
|
154 |
+
" </tr>\n",
|
155 |
+
" </thead>\n",
|
156 |
+
" <tbody>\n",
|
157 |
+
" <tr>\n",
|
158 |
+
" <td>0</td>\n",
|
159 |
+
" <td>1.509312</td>\n",
|
160 |
+
" <td>1.375509</td>\n",
|
161 |
+
" <td>0.517414</td>\n",
|
162 |
+
" <td>01:09</td>\n",
|
163 |
+
" </tr>\n",
|
164 |
+
" </tbody>\n",
|
165 |
+
"</table>"
|
166 |
+
],
|
167 |
+
"text/plain": [
|
168 |
+
"<IPython.core.display.HTML object>"
|
169 |
+
]
|
170 |
+
},
|
171 |
+
"metadata": {},
|
172 |
+
"output_type": "display_data"
|
173 |
+
}
|
174 |
+
],
|
175 |
+
"source": [
|
176 |
+
"learn = vision_learner(dls, resnet18, metrics=error_rate)\n",
|
177 |
+
"learn.fine_tune(1)"
|
178 |
+
]
|
179 |
+
}
|
180 |
+
],
|
181 |
+
"metadata": {
|
182 |
+
"kernelspec": {
|
183 |
+
"display_name": "Python 3.9.15 ('fastai')",
|
184 |
+
"language": "python",
|
185 |
+
"name": "python3"
|
186 |
+
},
|
187 |
+
"language_info": {
|
188 |
+
"codemirror_mode": {
|
189 |
+
"name": "ipython",
|
190 |
+
"version": 3
|
191 |
+
},
|
192 |
+
"file_extension": ".py",
|
193 |
+
"mimetype": "text/x-python",
|
194 |
+
"name": "python",
|
195 |
+
"nbconvert_exporter": "python",
|
196 |
+
"pygments_lexer": "ipython3",
|
197 |
+
"version": "3.9.15"
|
198 |
+
},
|
199 |
+
"orig_nbformat": 4,
|
200 |
+
"vscode": {
|
201 |
+
"interpreter": {
|
202 |
+
"hash": "30a59fff96242406e34259903f48d4d3b8156a3ebd46a0fcd69369c9785f2644"
|
203 |
+
}
|
204 |
+
}
|
205 |
+
},
|
206 |
+
"nbformat": 4,
|
207 |
+
"nbformat_minor": 2
|
208 |
+
}
|