iamalos commited on
Commit
403c7fa
1 Parent(s): ec37610
.ipynb_checkpoints/app-checkpoint.ipynb ADDED
@@ -0,0 +1,284 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "f17e0fe8-effd-4bcc-aecc-7090c6e436cc",
6
+ "metadata": {},
7
+ "source": [
8
+ "# Dogs vs Cats"
9
+ ]
10
+ },
11
+ {
12
+ "cell_type": "code",
13
+ "execution_count": 3,
14
+ "id": "7ef638f5-55e9-437a-b08d-976846dadfcd",
15
+ "metadata": {},
16
+ "outputs": [],
17
+ "source": [
18
+ "#| app\n",
19
+ "from fastai.vision.all import *\n",
20
+ "import gradio as gr\n",
21
+ "\n",
22
+ "def is_cat(x): return x[0].isupper()"
23
+ ]
24
+ },
25
+ {
26
+ "cell_type": "code",
27
+ "execution_count": 4,
28
+ "id": "395b69c5-6ebc-4062-94e4-344a9c2bc775",
29
+ "metadata": {},
30
+ "outputs": [
31
+ {
32
+ "data": {
33
+ "image/png": "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\n",
34
+ "text/plain": [
35
+ "PILImage mode=RGB size=192x108"
36
+ ]
37
+ },
38
+ "execution_count": 4,
39
+ "metadata": {},
40
+ "output_type": "execute_result"
41
+ }
42
+ ],
43
+ "source": [
44
+ "im = PILImage.create('dog.jpeg')\n",
45
+ "im.thumbnail((192,192))\n",
46
+ "im"
47
+ ]
48
+ },
49
+ {
50
+ "cell_type": "code",
51
+ "execution_count": 5,
52
+ "id": "17e70a2c-7c57-4aea-96d3-1aa1201275fb",
53
+ "metadata": {},
54
+ "outputs": [],
55
+ "source": [
56
+ "#| export\n",
57
+ "learn = load_learner('cats.pkl')"
58
+ ]
59
+ },
60
+ {
61
+ "cell_type": "code",
62
+ "execution_count": 6,
63
+ "id": "3d3d90aa-84ed-49d8-b78a-e2b9b2c9552e",
64
+ "metadata": {},
65
+ "outputs": [
66
+ {
67
+ "data": {
68
+ "text/html": [
69
+ "\n",
70
+ "<style>\n",
71
+ " /* Turns off some styling */\n",
72
+ " progress {\n",
73
+ " /* gets rid of default border in Firefox and Opera. */\n",
74
+ " border: none;\n",
75
+ " /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
76
+ " background-size: auto;\n",
77
+ " }\n",
78
+ " progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
79
+ " background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
80
+ " }\n",
81
+ " .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
82
+ " background: #F44336;\n",
83
+ " }\n",
84
+ "</style>\n"
85
+ ],
86
+ "text/plain": [
87
+ "<IPython.core.display.HTML object>"
88
+ ]
89
+ },
90
+ "metadata": {},
91
+ "output_type": "display_data"
92
+ },
93
+ {
94
+ "data": {
95
+ "text/html": [],
96
+ "text/plain": [
97
+ "<IPython.core.display.HTML object>"
98
+ ]
99
+ },
100
+ "metadata": {},
101
+ "output_type": "display_data"
102
+ },
103
+ {
104
+ "data": {
105
+ "text/plain": [
106
+ "('False', TensorBase(0), TensorBase([9.9999e-01, 1.0353e-05]))"
107
+ ]
108
+ },
109
+ "execution_count": 6,
110
+ "metadata": {},
111
+ "output_type": "execute_result"
112
+ }
113
+ ],
114
+ "source": [
115
+ "learn.predict(im)"
116
+ ]
117
+ },
118
+ {
119
+ "cell_type": "code",
120
+ "execution_count": 7,
121
+ "id": "ba51822e-c13f-4b45-877e-e59e326d6080",
122
+ "metadata": {},
123
+ "outputs": [],
124
+ "source": [
125
+ "#| export\n",
126
+ "categories = ('Dog', 'Cat')\n",
127
+ "\n",
128
+ "def classify_image(img):\n",
129
+ " pred, idx, probs = learn.predict(img)\n",
130
+ " return dict(zip(categories, map(float, probs)))"
131
+ ]
132
+ },
133
+ {
134
+ "cell_type": "code",
135
+ "execution_count": 8,
136
+ "id": "e45c4f30-fd5e-46c8-ae5c-33be029d562b",
137
+ "metadata": {},
138
+ "outputs": [
139
+ {
140
+ "data": {
141
+ "text/html": [
142
+ "\n",
143
+ "<style>\n",
144
+ " /* Turns off some styling */\n",
145
+ " progress {\n",
146
+ " /* gets rid of default border in Firefox and Opera. */\n",
147
+ " border: none;\n",
148
+ " /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
149
+ " background-size: auto;\n",
150
+ " }\n",
151
+ " progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
152
+ " background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
153
+ " }\n",
154
+ " .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
155
+ " background: #F44336;\n",
156
+ " }\n",
157
+ "</style>\n"
158
+ ],
159
+ "text/plain": [
160
+ "<IPython.core.display.HTML object>"
161
+ ]
162
+ },
163
+ "metadata": {},
164
+ "output_type": "display_data"
165
+ },
166
+ {
167
+ "data": {
168
+ "text/html": [],
169
+ "text/plain": [
170
+ "<IPython.core.display.HTML object>"
171
+ ]
172
+ },
173
+ "metadata": {},
174
+ "output_type": "display_data"
175
+ },
176
+ {
177
+ "data": {
178
+ "text/plain": [
179
+ "{'Dog': 0.9999896287918091, 'Cat': 1.035308014252223e-05}"
180
+ ]
181
+ },
182
+ "execution_count": 8,
183
+ "metadata": {},
184
+ "output_type": "execute_result"
185
+ }
186
+ ],
187
+ "source": [
188
+ "classify_image(im)"
189
+ ]
190
+ },
191
+ {
192
+ "cell_type": "code",
193
+ "execution_count": 9,
194
+ "id": "848681ac-40d6-4a14-a641-e57b70a1aaf0",
195
+ "metadata": {},
196
+ "outputs": [],
197
+ "source": [
198
+ "from gradio.components import Image, Label"
199
+ ]
200
+ },
201
+ {
202
+ "cell_type": "code",
203
+ "execution_count": 30,
204
+ "id": "f02693a4-de2a-4c3f-9332-a8db8160bf4a",
205
+ "metadata": {},
206
+ "outputs": [],
207
+ "source": [
208
+ "#| export\n",
209
+ "\n",
210
+ "image = Image(shape=(192,192))\n",
211
+ "label = Label()\n",
212
+ "examples = ['dog.jpeg', 'cat.jpeg', 'lemon.jpg']\n",
213
+ "intf = gr.Interface(fn=classify_image, inputs=image, outputs=label, examples=examples)\n",
214
+ "intf.launch(inline=True, share=True)"
215
+ ]
216
+ },
217
+ {
218
+ "cell_type": "markdown",
219
+ "id": "41a3e81d-efe3-45a7-a406-11f478dae075",
220
+ "metadata": {},
221
+ "source": [
222
+ "# Export"
223
+ ]
224
+ },
225
+ {
226
+ "cell_type": "code",
227
+ "execution_count": 14,
228
+ "id": "e401d87c-105a-4666-93c6-8ee02f6a7b5b",
229
+ "metadata": {},
230
+ "outputs": [
231
+ {
232
+ "name": "stdout",
233
+ "output_type": "stream",
234
+ "text": [
235
+ "Successful!\n"
236
+ ]
237
+ },
238
+ {
239
+ "name": "stderr",
240
+ "output_type": "stream",
241
+ "text": [
242
+ "/root/.local/lib/python3.9/site-packages/nbdev/export.py:54: UserWarning: Notebook 'app.ipynb' uses `#|export` without `#|default_exp` cell.\n",
243
+ "Note nbdev2 no longer supports nbdev1 syntax. Run `nbdev_migrate` to upgrade.\n",
244
+ "See https://nbdev.fast.ai/getting_started.html for more information.\n",
245
+ " warn(f\"Notebook '{nbname}' uses `#|export` without `#|default_exp` cell.\\n\"\n"
246
+ ]
247
+ }
248
+ ],
249
+ "source": [
250
+ "nbdev.export.nb_export('app.ipynb', 'app')\n",
251
+ "print('Successful!')"
252
+ ]
253
+ },
254
+ {
255
+ "cell_type": "code",
256
+ "execution_count": null,
257
+ "id": "b47ca9b4-a3af-45b1-bcc4-27eae7b2f6d8",
258
+ "metadata": {},
259
+ "outputs": [],
260
+ "source": []
261
+ }
262
+ ],
263
+ "metadata": {
264
+ "kernelspec": {
265
+ "display_name": "Python 3 (ipykernel)",
266
+ "language": "python",
267
+ "name": "python3"
268
+ },
269
+ "language_info": {
270
+ "codemirror_mode": {
271
+ "name": "ipython",
272
+ "version": 3
273
+ },
274
+ "file_extension": ".py",
275
+ "mimetype": "text/x-python",
276
+ "name": "python",
277
+ "nbconvert_exporter": "python",
278
+ "pygments_lexer": "ipython3",
279
+ "version": "3.9.13"
280
+ }
281
+ },
282
+ "nbformat": 4,
283
+ "nbformat_minor": 5
284
+ }
.ipynb_checkpoints/app-checkpoint.py ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # AUTOGENERATED! DO NOT EDIT! File to edit: app.ipynb.
2
+
3
+ # %% auto 0
4
+ __all__ = ['learn', 'categories', 'image', 'label', 'examples', 'intf', 'classify_image']
5
+
6
+ # %% app.ipynb 3
7
+ learn = load_learner('cats.pkl')
8
+
9
+ # %% app.ipynb 5
10
+ categories = ('Dog', 'Cat')
11
+
12
+ def classify_image(img):
13
+ pred, idx, probs = learn.predict(img)
14
+ return dict(zip(categories, map(float, probs)))
15
+
16
+ # %% app.ipynb 8
17
+ image = Image(shape=(192,192))
18
+ label = Label()
19
+ examples = ['dog.jpeg', 'cat.jpeg', 'lemon.jpg']
20
+ intf = gr.Interface(fn=classify_image, inputs=image, outputs=label, examples=examples)
21
+ intf.launch(inline=True, share=True)
app.ipynb ADDED
@@ -0,0 +1,276 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "f17e0fe8-effd-4bcc-aecc-7090c6e436cc",
6
+ "metadata": {},
7
+ "source": [
8
+ "# Dogs vs Cats"
9
+ ]
10
+ },
11
+ {
12
+ "cell_type": "code",
13
+ "execution_count": 19,
14
+ "id": "7ef638f5-55e9-437a-b08d-976846dadfcd",
15
+ "metadata": {},
16
+ "outputs": [],
17
+ "source": [
18
+ "#| default_exp app\n",
19
+ "from fastai.vision.all import *\n",
20
+ "import gradio as gr\n",
21
+ "\n",
22
+ "def is_cat(x): return x[0].isupper()"
23
+ ]
24
+ },
25
+ {
26
+ "cell_type": "code",
27
+ "execution_count": 20,
28
+ "id": "395b69c5-6ebc-4062-94e4-344a9c2bc775",
29
+ "metadata": {},
30
+ "outputs": [
31
+ {
32
+ "data": {
33
+ "image/png": "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\n",
34
+ "text/plain": [
35
+ "PILImage mode=RGB size=192x108"
36
+ ]
37
+ },
38
+ "execution_count": 20,
39
+ "metadata": {},
40
+ "output_type": "execute_result"
41
+ }
42
+ ],
43
+ "source": [
44
+ "im = PILImage.create('dog.jpeg')\n",
45
+ "im.thumbnail((192,192))\n",
46
+ "im"
47
+ ]
48
+ },
49
+ {
50
+ "cell_type": "code",
51
+ "execution_count": 21,
52
+ "id": "17e70a2c-7c57-4aea-96d3-1aa1201275fb",
53
+ "metadata": {},
54
+ "outputs": [],
55
+ "source": [
56
+ "#| export\n",
57
+ "learn = load_learner('cats.pkl')"
58
+ ]
59
+ },
60
+ {
61
+ "cell_type": "code",
62
+ "execution_count": 22,
63
+ "id": "3d3d90aa-84ed-49d8-b78a-e2b9b2c9552e",
64
+ "metadata": {},
65
+ "outputs": [
66
+ {
67
+ "data": {
68
+ "text/html": [
69
+ "\n",
70
+ "<style>\n",
71
+ " /* Turns off some styling */\n",
72
+ " progress {\n",
73
+ " /* gets rid of default border in Firefox and Opera. */\n",
74
+ " border: none;\n",
75
+ " /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
76
+ " background-size: auto;\n",
77
+ " }\n",
78
+ " progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
79
+ " background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
80
+ " }\n",
81
+ " .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
82
+ " background: #F44336;\n",
83
+ " }\n",
84
+ "</style>\n"
85
+ ],
86
+ "text/plain": [
87
+ "<IPython.core.display.HTML object>"
88
+ ]
89
+ },
90
+ "metadata": {},
91
+ "output_type": "display_data"
92
+ },
93
+ {
94
+ "data": {
95
+ "text/html": [],
96
+ "text/plain": [
97
+ "<IPython.core.display.HTML object>"
98
+ ]
99
+ },
100
+ "metadata": {},
101
+ "output_type": "display_data"
102
+ },
103
+ {
104
+ "data": {
105
+ "text/plain": [
106
+ "('False', TensorBase(0), TensorBase([9.9999e-01, 1.0353e-05]))"
107
+ ]
108
+ },
109
+ "execution_count": 22,
110
+ "metadata": {},
111
+ "output_type": "execute_result"
112
+ }
113
+ ],
114
+ "source": [
115
+ "learn.predict(im)"
116
+ ]
117
+ },
118
+ {
119
+ "cell_type": "code",
120
+ "execution_count": 23,
121
+ "id": "ba51822e-c13f-4b45-877e-e59e326d6080",
122
+ "metadata": {},
123
+ "outputs": [],
124
+ "source": [
125
+ "#| export\n",
126
+ "categories = ('Dog', 'Cat')\n",
127
+ "\n",
128
+ "def classify_image(img):\n",
129
+ " pred, idx, probs = learn.predict(img)\n",
130
+ " return dict(zip(categories, map(float, probs)))"
131
+ ]
132
+ },
133
+ {
134
+ "cell_type": "code",
135
+ "execution_count": 24,
136
+ "id": "e45c4f30-fd5e-46c8-ae5c-33be029d562b",
137
+ "metadata": {},
138
+ "outputs": [
139
+ {
140
+ "data": {
141
+ "text/html": [
142
+ "\n",
143
+ "<style>\n",
144
+ " /* Turns off some styling */\n",
145
+ " progress {\n",
146
+ " /* gets rid of default border in Firefox and Opera. */\n",
147
+ " border: none;\n",
148
+ " /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
149
+ " background-size: auto;\n",
150
+ " }\n",
151
+ " progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
152
+ " background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
153
+ " }\n",
154
+ " .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
155
+ " background: #F44336;\n",
156
+ " }\n",
157
+ "</style>\n"
158
+ ],
159
+ "text/plain": [
160
+ "<IPython.core.display.HTML object>"
161
+ ]
162
+ },
163
+ "metadata": {},
164
+ "output_type": "display_data"
165
+ },
166
+ {
167
+ "data": {
168
+ "text/html": [],
169
+ "text/plain": [
170
+ "<IPython.core.display.HTML object>"
171
+ ]
172
+ },
173
+ "metadata": {},
174
+ "output_type": "display_data"
175
+ },
176
+ {
177
+ "data": {
178
+ "text/plain": [
179
+ "{'Dog': 0.9999896287918091, 'Cat': 1.035308014252223e-05}"
180
+ ]
181
+ },
182
+ "execution_count": 24,
183
+ "metadata": {},
184
+ "output_type": "execute_result"
185
+ }
186
+ ],
187
+ "source": [
188
+ "classify_image(im)"
189
+ ]
190
+ },
191
+ {
192
+ "cell_type": "code",
193
+ "execution_count": 9,
194
+ "id": "848681ac-40d6-4a14-a641-e57b70a1aaf0",
195
+ "metadata": {},
196
+ "outputs": [],
197
+ "source": [
198
+ "from gradio.components import Image, Label"
199
+ ]
200
+ },
201
+ {
202
+ "cell_type": "code",
203
+ "execution_count": 30,
204
+ "id": "f02693a4-de2a-4c3f-9332-a8db8160bf4a",
205
+ "metadata": {},
206
+ "outputs": [],
207
+ "source": [
208
+ "#| export\n",
209
+ "\n",
210
+ "image = Image(shape=(192,192))\n",
211
+ "label = Label()\n",
212
+ "examples = ['dog.jpeg', 'cat.jpeg', 'lemon.jpg']\n",
213
+ "intf = gr.Interface(fn=classify_image, inputs=image, outputs=label, examples=examples)\n",
214
+ "intf.launch(inline=True, share=True)"
215
+ ]
216
+ },
217
+ {
218
+ "cell_type": "markdown",
219
+ "id": "41a3e81d-efe3-45a7-a406-11f478dae075",
220
+ "metadata": {
221
+ "tags": []
222
+ },
223
+ "source": [
224
+ "# Export"
225
+ ]
226
+ },
227
+ {
228
+ "cell_type": "markdown",
229
+ "id": "5779d426-e679-4ef3-8ccc-16284bdd6b61",
230
+ "metadata": {},
231
+ "source": [
232
+ "Use nbdev to create a library"
233
+ ]
234
+ },
235
+ {
236
+ "cell_type": "code",
237
+ "execution_count": 30,
238
+ "id": "e401d87c-105a-4666-93c6-8ee02f6a7b5b",
239
+ "metadata": {},
240
+ "outputs": [
241
+ {
242
+ "name": "stdout",
243
+ "output_type": "stream",
244
+ "text": [
245
+ "Successful!\n"
246
+ ]
247
+ }
248
+ ],
249
+ "source": [
250
+ "nbdev.export.nb_export('app.ipynb', '.')\n",
251
+ "print('Successful!')"
252
+ ]
253
+ }
254
+ ],
255
+ "metadata": {
256
+ "kernelspec": {
257
+ "display_name": "Python 3 (ipykernel)",
258
+ "language": "python",
259
+ "name": "python3"
260
+ },
261
+ "language_info": {
262
+ "codemirror_mode": {
263
+ "name": "ipython",
264
+ "version": 3
265
+ },
266
+ "file_extension": ".py",
267
+ "mimetype": "text/x-python",
268
+ "name": "python",
269
+ "nbconvert_exporter": "python",
270
+ "pygments_lexer": "ipython3",
271
+ "version": "3.9.13"
272
+ }
273
+ },
274
+ "nbformat": 4,
275
+ "nbformat_minor": 5
276
+ }
app.py ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # AUTOGENERATED! DO NOT EDIT! File to edit: app.ipynb.
2
+
3
+ # %% auto 0
4
+ __all__ = ['learn', 'categories', 'image', 'label', 'examples', 'intf', 'classify_image']
5
+
6
+ # %% app.ipynb 3
7
+ learn = load_learner('cats.pkl')
8
+
9
+ # %% app.ipynb 5
10
+ categories = ('Dog', 'Cat')
11
+
12
+ def classify_image(img):
13
+ pred, idx, probs = learn.predict(img)
14
+ return dict(zip(categories, map(float, probs)))
15
+
16
+ # %% app.ipynb 8
17
+ image = Image(shape=(192,192))
18
+ label = Label()
19
+ examples = ['dog.jpeg', 'cat.jpeg', 'lemon.jpg']
20
+ intf = gr.Interface(fn=classify_image, inputs=image, outputs=label, examples=examples)
21
+ intf.launch(inline=True, share=True)
cat.jpeg ADDED

Git LFS Details

  • SHA256: 58c3898388df8a23e2c0916ac6b92077917a50e85fdf4fcd57a62f89062102dd
  • Pointer size: 132 Bytes
  • Size of remote file: 1.63 MB
cats.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:861ace52c839403bf769283eb496558c6ace59c0fe9783ac24e6a3054cb2575f
3
+ size 47065641
dog.jpeg ADDED
lemon.jpg ADDED