Madhao commited on
Commit
c128594
1 Parent(s): 01fb32c

adding code for app

Browse files
Files changed (6) hide show
  1. .idea/workspace.xml +71 -0
  2. app.ipynb +292 -0
  3. cat.jpeg +0 -0
  4. dog.jpeg +0 -0
  5. dunno.jpeg +0 -0
  6. minima/app.py +28 -0
.idea/workspace.xml ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ChangeListManager">
4
+ <list default="true" id="0aa75955-895e-4348-b0b0-c11274571539" name="Changes" comment="">
5
+ <change afterPath="$PROJECT_DIR$/app.ipynb" afterDir="false" />
6
+ <change afterPath="$PROJECT_DIR$/minima/app.py" afterDir="false" />
7
+ </list>
8
+ <option name="SHOW_DIALOG" value="false" />
9
+ <option name="HIGHLIGHT_CONFLICTS" value="true" />
10
+ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
11
+ <option name="LAST_RESOLUTION" value="IGNORE" />
12
+ </component>
13
+ <component name="FileTemplateManagerImpl">
14
+ <option name="RECENT_TEMPLATES">
15
+ <list>
16
+ <option value="Jupyter Notebook" />
17
+ </list>
18
+ </option>
19
+ </component>
20
+ <component name="Git.Settings">
21
+ <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
22
+ </component>
23
+ <component name="MarkdownSettingsMigration">
24
+ <option name="stateVersion" value="1" />
25
+ </component>
26
+ <component name="ProjectId" id="2HbytKByzXOVLAGNDGuH8j8sMBQ" />
27
+ <component name="ProjectViewState">
28
+ <option name="hideEmptyMiddlePackages" value="true" />
29
+ <option name="showLibraryContents" value="true" />
30
+ </component>
31
+ <component name="PropertiesComponent"><![CDATA[{
32
+ "keyToString": {
33
+ "RunOnceActivity.OpenProjectViewOnStart": "true",
34
+ "RunOnceActivity.ShowReadmeOnStart": "true",
35
+ "WebServerToolWindowFactoryState": "false",
36
+ "last_opened_file_path": "/Users/madhao_wagh/Desktop/personal/code/minima",
37
+ "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable"
38
+ }
39
+ }]]></component>
40
+ <component name="RecentsManager">
41
+ <key name="MoveFile.RECENT_KEYS">
42
+ <recent name="$PROJECT_DIR$" />
43
+ </key>
44
+ </component>
45
+ <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
46
+ <component name="TaskManager">
47
+ <task active="true" id="Default" summary="Default task">
48
+ <changelist id="0aa75955-895e-4348-b0b0-c11274571539" name="Changes" comment="" />
49
+ <created>1668568291645</created>
50
+ <option name="number" value="Default" />
51
+ <option name="presentableId" value="Default" />
52
+ <updated>1668568291645</updated>
53
+ <workItem from="1668568294575" duration="5872000" />
54
+ </task>
55
+ <servers />
56
+ </component>
57
+ <component name="TypeScriptGeneratedFilesManager">
58
+ <option name="version" value="3" />
59
+ </component>
60
+ <component name="Vcs.Log.Tabs.Properties">
61
+ <option name="TAB_STATES">
62
+ <map>
63
+ <entry key="MAIN">
64
+ <value>
65
+ <State />
66
+ </value>
67
+ </entry>
68
+ </map>
69
+ </option>
70
+ </component>
71
+ </project>
app.ipynb ADDED
@@ -0,0 +1,292 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "outputs": [],
7
+ "source": [
8
+ "#| default_exp app"
9
+ ],
10
+ "metadata": {
11
+ "collapsed": false,
12
+ "pycharm": {
13
+ "name": "#%%\n",
14
+ "is_executing": true
15
+ }
16
+ }
17
+ },
18
+ {
19
+ "cell_type": "code",
20
+ "execution_count": 34,
21
+ "outputs": [],
22
+ "source": [
23
+ "#| export\n",
24
+ "from fastai.vision.all import *\n",
25
+ "import gradio as gr\n",
26
+ "\n",
27
+ "def is_cat(x): return x[0].isupper()"
28
+ ],
29
+ "metadata": {
30
+ "collapsed": false,
31
+ "pycharm": {
32
+ "name": "#%%\n"
33
+ }
34
+ }
35
+ },
36
+ {
37
+ "cell_type": "code",
38
+ "execution_count": 35,
39
+ "outputs": [
40
+ {
41
+ "data": {
42
+ "text/plain": "PILImage mode=RGB size=192x96",
43
+ "image/png": "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\n"
44
+ },
45
+ "execution_count": 35,
46
+ "metadata": {},
47
+ "output_type": "execute_result"
48
+ }
49
+ ],
50
+ "source": [
51
+ "im = PILImage.create('dog.jpeg')\n",
52
+ "im.thumbnail((192,192))\n",
53
+ "im"
54
+ ],
55
+ "metadata": {
56
+ "collapsed": false,
57
+ "pycharm": {
58
+ "name": "#%%\n"
59
+ }
60
+ }
61
+ },
62
+ {
63
+ "cell_type": "code",
64
+ "execution_count": 36,
65
+ "metadata": {
66
+ "collapsed": true,
67
+ "pycharm": {
68
+ "name": "#%%\n"
69
+ }
70
+ },
71
+ "outputs": [],
72
+ "source": [
73
+ "#| export\n",
74
+ "learn = load_learner('model.pkl')"
75
+ ]
76
+ },
77
+ {
78
+ "cell_type": "code",
79
+ "execution_count": 37,
80
+ "outputs": [
81
+ {
82
+ "data": {
83
+ "text/plain": "<IPython.core.display.HTML object>",
84
+ "text/html": "\n<style>\n /* Turns off some styling */\n progress {\n /* gets rid of default border in Firefox and Opera. */\n border: none;\n /* Needs to be in here for Safari polyfill so background images work as expected. */\n background-size: auto;\n }\n progress:not([value]), progress:not([value])::-webkit-progress-bar {\n background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n }\n .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n background: #F44336;\n }\n</style>\n"
85
+ },
86
+ "metadata": {},
87
+ "output_type": "display_data"
88
+ },
89
+ {
90
+ "data": {
91
+ "text/plain": "<IPython.core.display.HTML object>",
92
+ "text/html": "\n <div>\n <progress value='0' class='' max='1' style='width:300px; height:20px; vertical-align: middle;'></progress>\n \n </div>\n "
93
+ },
94
+ "metadata": {},
95
+ "output_type": "display_data"
96
+ },
97
+ {
98
+ "name": "stdout",
99
+ "output_type": "stream",
100
+ "text": [
101
+ "CPU times: user 31.2 ms, sys: 23.2 ms, total: 54.4 ms\n",
102
+ "Wall time: 28.7 ms\n"
103
+ ]
104
+ },
105
+ {
106
+ "data": {
107
+ "text/plain": "('False', TensorBase(0), TensorBase([9.9999e-01, 1.4309e-05]))"
108
+ },
109
+ "execution_count": 37,
110
+ "metadata": {},
111
+ "output_type": "execute_result"
112
+ }
113
+ ],
114
+ "source": [
115
+ "%time learn.predict(im)"
116
+ ],
117
+ "metadata": {
118
+ "collapsed": false,
119
+ "pycharm": {
120
+ "name": "#%%\n"
121
+ }
122
+ }
123
+ },
124
+ {
125
+ "cell_type": "code",
126
+ "execution_count": 38,
127
+ "outputs": [],
128
+ "source": [
129
+ "#| export\n",
130
+ "categories =('Dog','Cat')\n",
131
+ "\n",
132
+ "def classify_image(img):\n",
133
+ " pred,idx,probs=learn.predict(img)\n",
134
+ " return dict(zip(categories,map(float,probs)))"
135
+ ],
136
+ "metadata": {
137
+ "collapsed": false,
138
+ "pycharm": {
139
+ "name": "#%%\n"
140
+ }
141
+ }
142
+ },
143
+ {
144
+ "cell_type": "code",
145
+ "execution_count": 39,
146
+ "outputs": [
147
+ {
148
+ "data": {
149
+ "text/plain": "<IPython.core.display.HTML object>",
150
+ "text/html": "\n<style>\n /* Turns off some styling */\n progress {\n /* gets rid of default border in Firefox and Opera. */\n border: none;\n /* Needs to be in here for Safari polyfill so background images work as expected. */\n background-size: auto;\n }\n progress:not([value]), progress:not([value])::-webkit-progress-bar {\n background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n }\n .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n background: #F44336;\n }\n</style>\n"
151
+ },
152
+ "metadata": {},
153
+ "output_type": "display_data"
154
+ },
155
+ {
156
+ "data": {
157
+ "text/plain": "<IPython.core.display.HTML object>",
158
+ "text/html": "\n <div>\n <progress value='0' class='' max='1' style='width:300px; height:20px; vertical-align: middle;'></progress>\n \n </div>\n "
159
+ },
160
+ "metadata": {},
161
+ "output_type": "display_data"
162
+ },
163
+ {
164
+ "data": {
165
+ "text/plain": "{'Dog': 0.9999856948852539, 'Cat': 1.4308832760434598e-05}"
166
+ },
167
+ "execution_count": 39,
168
+ "metadata": {},
169
+ "output_type": "execute_result"
170
+ }
171
+ ],
172
+ "source": [
173
+ "classify_image(im)"
174
+ ],
175
+ "metadata": {
176
+ "collapsed": false,
177
+ "pycharm": {
178
+ "name": "#%%\n"
179
+ }
180
+ }
181
+ },
182
+ {
183
+ "cell_type": "code",
184
+ "execution_count": 40,
185
+ "outputs": [
186
+ {
187
+ "name": "stderr",
188
+ "output_type": "stream",
189
+ "text": [
190
+ "/opt/homebrew/anaconda3/envs/fastai/lib/python3.8/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",
191
+ " warnings.warn(\n",
192
+ "/opt/homebrew/anaconda3/envs/fastai/lib/python3.8/site-packages/gradio/deprecation.py:40: UserWarning: `optional` parameter is deprecated, and it has no effect\n",
193
+ " warnings.warn(value)\n",
194
+ "/opt/homebrew/anaconda3/envs/fastai/lib/python3.8/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",
195
+ " warnings.warn(\n",
196
+ "/opt/homebrew/anaconda3/envs/fastai/lib/python3.8/site-packages/gradio/deprecation.py:40: UserWarning: The 'type' parameter has been deprecated. Use the Number component instead.\n",
197
+ " warnings.warn(value)\n"
198
+ ]
199
+ },
200
+ {
201
+ "name": "stdout",
202
+ "output_type": "stream",
203
+ "text": [
204
+ "Running on local URL: http://127.0.0.1:7863\n",
205
+ "\n",
206
+ "To create a public link, set `share=True` in `launch()`.\n"
207
+ ]
208
+ },
209
+ {
210
+ "data": {
211
+ "text/plain": "(<gradio.routes.App at 0x29fb5b5e0>, 'http://127.0.0.1:7863/', None)"
212
+ },
213
+ "execution_count": 40,
214
+ "metadata": {},
215
+ "output_type": "execute_result"
216
+ }
217
+ ],
218
+ "source": [
219
+ "#| export\n",
220
+ "image = gr.inputs.Image(shape=(192,192))\n",
221
+ "label=gr.outputs.Label()\n",
222
+ "examples = ['dog.jpeg','cat.jpeg','dunno.jpeg']\n",
223
+ "\n",
224
+ "intf =gr.Interface(fn=classify_image, inputs=image,outputs=label,examples=examples)\n",
225
+ "intf.launch(inline=False)"
226
+ ],
227
+ "metadata": {
228
+ "collapsed": false,
229
+ "pycharm": {
230
+ "name": "#%%\n"
231
+ }
232
+ }
233
+ },
234
+ {
235
+ "cell_type": "code",
236
+ "execution_count": 41,
237
+ "outputs": [
238
+ {
239
+ "name": "stdout",
240
+ "output_type": "stream",
241
+ "text": [
242
+ "Export successful\n"
243
+ ]
244
+ }
245
+ ],
246
+ "source": [
247
+ "import nbdev\n",
248
+ "nbdev.export.nb_export('app.ipynb')\n",
249
+ "print('Export successful')"
250
+ ],
251
+ "metadata": {
252
+ "collapsed": false,
253
+ "pycharm": {
254
+ "name": "#%%\n"
255
+ }
256
+ }
257
+ },
258
+ {
259
+ "cell_type": "code",
260
+ "execution_count": null,
261
+ "outputs": [],
262
+ "source": [],
263
+ "metadata": {
264
+ "collapsed": false,
265
+ "pycharm": {
266
+ "name": "#%%\n"
267
+ }
268
+ }
269
+ }
270
+ ],
271
+ "metadata": {
272
+ "kernelspec": {
273
+ "display_name": "Python 3",
274
+ "language": "python",
275
+ "name": "python3"
276
+ },
277
+ "language_info": {
278
+ "codemirror_mode": {
279
+ "name": "ipython",
280
+ "version": 2
281
+ },
282
+ "file_extension": ".py",
283
+ "mimetype": "text/x-python",
284
+ "name": "python",
285
+ "nbconvert_exporter": "python",
286
+ "pygments_lexer": "ipython2",
287
+ "version": "2.7.6"
288
+ }
289
+ },
290
+ "nbformat": 4,
291
+ "nbformat_minor": 0
292
+ }
cat.jpeg ADDED
dog.jpeg ADDED
dunno.jpeg ADDED
minima/app.py ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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.inputs.Image(shape=(192,192))
24
+ label=gr.outputs.Label()
25
+ examples = ['dog.jpeg','cat.jpeg','dunno.jpeg']
26
+
27
+ intf =gr.Interface(fn=classify_image, inputs=image,outputs=label,examples=examples)
28
+ intf.launch(inline=False)