archietram commited on
Commit
f31353f
1 Parent(s): eb2686c

added the model and examples

Browse files
Files changed (8) hide show
  1. .ipynb_checkpoints/app-checkpoint.ipynb +6 -0
  2. app.ipynb +291 -0
  3. app.py +14 -4
  4. ct.jpg +0 -0
  5. export.pkl +3 -0
  6. mri.jpg +0 -0
  7. ultrasound.jpg +0 -0
  8. xray.jpg +0 -0
.ipynb_checkpoints/app-checkpoint.ipynb ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [],
3
+ "metadata": {},
4
+ "nbformat": 4,
5
+ "nbformat_minor": 5
6
+ }
app.ipynb ADDED
@@ -0,0 +1,291 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 1,
6
+ "id": "1dbd46a8",
7
+ "metadata": {},
8
+ "outputs": [],
9
+ "source": [
10
+ "#|default_exp app"
11
+ ]
12
+ },
13
+ {
14
+ "cell_type": "code",
15
+ "execution_count": 2,
16
+ "id": "1a20a357",
17
+ "metadata": {},
18
+ "outputs": [],
19
+ "source": [
20
+ "#|export\n",
21
+ "from fastai.vision.all import *\n",
22
+ "import gradio as gr\n"
23
+ ]
24
+ },
25
+ {
26
+ "cell_type": "code",
27
+ "execution_count": 3,
28
+ "id": "fe15765a",
29
+ "metadata": {},
30
+ "outputs": [
31
+ {
32
+ "data": {
33
+ "image/png": "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sUQpcpG8CNidTCZt3fJB8jkQF4PBYDAYBK4slUqhUGhmZgZLrZQC1AZ0aLVaMFhAX69evYot42h1Op3/9b/+V7FY/Pa3v72xsbF7927q5tbW1jwez9GjR3fv3n0fd3nLuksNJM4yN8BJ7fV6AwMDn//85yWBVSqVfumXfukP//AP//W//td9fX22be/ZsycUCp0+fXppaenChQuNRmPHjh3vfOc7vV4vlAmY7QMDA4amazmOQ08CohXSFOyTG6CD+NxsNjH5AtD19FKuymjlag3mliqPbuSgdOey7TCurYvVBdSxdSs0YcTKD46uXiUyl/eAPQr/GnNGTi0ejxOvIZRyedPT05ZlPfnkk9/61rcuXbq0Y8eOWCwGsFkoFL7yla98/OMfX1lZGRkZSSQSpVJpZWUlFoslk8lTp05du3ZNacMql3F3W79l3b0J2/LolVKBQOBzn/vczp07FxYWhoaG6vX6O97xjv/zf/7Pb/7mb4bD4XQ6/dRTT2UymYWFhddee21xcbHX69GfYGlpKZFIFAqFSCSyc+fOzc3NxcXFYDBITA6nE42C40lkgYansg6vvL+/H9YO28O1icS4lygPuZfXC1Vez2V2f7IkOhydPDZdzfMMV4NEd0oEK7a5uUkrBUIEaJAQV/D9g8FgKpXCwa/X636//4knnvje977HI00kEtVqNRKJPPvss5CKxsbGYrHYe9/73tdee61er5PZHRkZWV5eRigpyLzrfd+y7l6AROuYmmf4L//lv3zsscdWV1dPnTq1sbExPj7+13/917/+678eDoePHz9+5MiRPXv2XLly5ezZs0tLSx6PZ3Jycv/+/eFwWLqftNvtW7ducRxbrRbdd6iCwOsE4KHyF347RgpRI5amHtl2dQxyy4pbdNz/e0c5U3cSILQClosfRE8YursPPyAxpi4zUlp03ALHpYJYopAIIYnm0J0eXXhPvGma5pEjR+gVEYvFhoaG4Lh95zvfefzxx7/3ve+dPHny+PHjPp/vtddeQws+9NBDi4uLYOXCO7sv6y4FSCATApBut/v000//yq/8SrVa3blz55kzZx599NHnn3/+X/2rfxUIBKanpx9//PGpqSmcnsXFxVAodPz48aNHjyYSCdLFJBzW19eXl5dbrRaYLCEMMGAkEsEq8dC9mlSKtFH2wL9kT92gn9tmuU3Ylp/v+iG6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\n",
34
+ "text/plain": [
35
+ "PILImage mode=RGB size=192x192"
36
+ ]
37
+ },
38
+ "execution_count": 3,
39
+ "metadata": {},
40
+ "output_type": "execute_result"
41
+ }
42
+ ],
43
+ "source": [
44
+ "im = PILImage.create('mri.jpg')\n",
45
+ "im.thumbnail((192,192))\n",
46
+ "im"
47
+ ]
48
+ },
49
+ {
50
+ "cell_type": "code",
51
+ "execution_count": 4,
52
+ "id": "b345b39e",
53
+ "metadata": {},
54
+ "outputs": [],
55
+ "source": [
56
+ "#|export\n",
57
+ "learn = load_learner(\"export.pkl\")"
58
+ ]
59
+ },
60
+ {
61
+ "cell_type": "code",
62
+ "execution_count": 5,
63
+ "id": "3ec986e4",
64
+ "metadata": {},
65
+ "outputs": [
66
+ {
67
+ "data": {
68
+ "text/html": [],
69
+ "text/plain": [
70
+ "<IPython.core.display.HTML object>"
71
+ ]
72
+ },
73
+ "metadata": {},
74
+ "output_type": "display_data"
75
+ },
76
+ {
77
+ "data": {
78
+ "text/plain": [
79
+ "('mri',\n",
80
+ " TensorBase(1),\n",
81
+ " TensorBase([1.5105e-02, 9.8300e-01, 1.3013e-03, 5.9884e-04]))"
82
+ ]
83
+ },
84
+ "execution_count": 5,
85
+ "metadata": {},
86
+ "output_type": "execute_result"
87
+ }
88
+ ],
89
+ "source": [
90
+ "learn.predict(im)"
91
+ ]
92
+ },
93
+ {
94
+ "cell_type": "code",
95
+ "execution_count": 6,
96
+ "id": "1d54f9c9",
97
+ "metadata": {},
98
+ "outputs": [],
99
+ "source": [
100
+ "#|export\n",
101
+ "categories = ('CT', 'MRI', \"Ultrasound\", \"X-Ray\")\n",
102
+ "\n",
103
+ "def classify_image(img):\n",
104
+ " pred,idx,probs = learn.predict(img)\n",
105
+ " return dict(zip(categories, map(float,probs)))"
106
+ ]
107
+ },
108
+ {
109
+ "cell_type": "code",
110
+ "execution_count": 7,
111
+ "id": "afda7e68",
112
+ "metadata": {},
113
+ "outputs": [
114
+ {
115
+ "data": {
116
+ "text/html": [],
117
+ "text/plain": [
118
+ "<IPython.core.display.HTML object>"
119
+ ]
120
+ },
121
+ "metadata": {},
122
+ "output_type": "display_data"
123
+ },
124
+ {
125
+ "data": {
126
+ "text/plain": [
127
+ "{'CT': 0.015104751102626324,\n",
128
+ " 'MRI': 0.9829950928688049,\n",
129
+ " 'Ultrasound': 0.001301292795687914,\n",
130
+ " 'X-Ray': 0.0005988424527458847}"
131
+ ]
132
+ },
133
+ "execution_count": 7,
134
+ "metadata": {},
135
+ "output_type": "execute_result"
136
+ }
137
+ ],
138
+ "source": [
139
+ "classify_image(im)"
140
+ ]
141
+ },
142
+ {
143
+ "cell_type": "code",
144
+ "execution_count": 8,
145
+ "id": "7ecb35b3",
146
+ "metadata": {},
147
+ "outputs": [
148
+ {
149
+ "name": "stderr",
150
+ "output_type": "stream",
151
+ "text": [
152
+ "C:\\Users\\nkt002\\Anaconda3\\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",
153
+ " warnings.warn(\n",
154
+ "C:\\Users\\nkt002\\Anaconda3\\lib\\site-packages\\gradio\\deprecation.py:40: UserWarning: `optional` parameter is deprecated, and it has no effect\n",
155
+ " warnings.warn(value)\n",
156
+ "C:\\Users\\nkt002\\Anaconda3\\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",
157
+ " warnings.warn(\n",
158
+ "C:\\Users\\nkt002\\Anaconda3\\lib\\site-packages\\gradio\\deprecation.py:40: UserWarning: The 'type' parameter has been deprecated. Use the Number component instead.\n",
159
+ " warnings.warn(value)\n"
160
+ ]
161
+ },
162
+ {
163
+ "name": "stdout",
164
+ "output_type": "stream",
165
+ "text": [
166
+ "Running on local URL: http://127.0.0.1:7860/\n",
167
+ "\n",
168
+ "To create a public link, set `share=True` in `launch()`.\n"
169
+ ]
170
+ },
171
+ {
172
+ "data": {
173
+ "text/plain": [
174
+ "(<gradio.routes.App at 0x1af1d480880>, 'http://127.0.0.1:7860/', None)"
175
+ ]
176
+ },
177
+ "execution_count": 8,
178
+ "metadata": {},
179
+ "output_type": "execute_result"
180
+ }
181
+ ],
182
+ "source": [
183
+ "#|export\n",
184
+ "image = gr.inputs.Image(shape=(192,192))\n",
185
+ "label = gr.outputs.Label()\n",
186
+ "examples = ['mri.jpg','ct.jpg','ultrasound.jpg', 'xray.jpg']\n",
187
+ "\n",
188
+ "intf = gr.Interface(fn=classify_image, inputs=image, outputs=label, examples=examples)\n",
189
+ "intf.launch(inline=False)"
190
+ ]
191
+ },
192
+ {
193
+ "cell_type": "code",
194
+ "execution_count": 15,
195
+ "id": "16e72698",
196
+ "metadata": {},
197
+ "outputs": [
198
+ {
199
+ "ename": "NameError",
200
+ "evalue": "name 'nbdev_export' is not defined",
201
+ "output_type": "error",
202
+ "traceback": [
203
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
204
+ "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
205
+ "\u001b[1;32m~\\AppData\\Local\\Temp/ipykernel_23108/4221636223.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mnbdev\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[1;33m*\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mnbdev_export\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"app.ipynb\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
206
+ "\u001b[1;31mNameError\u001b[0m: name 'nbdev_export' is not defined"
207
+ ]
208
+ }
209
+ ],
210
+ "source": [
211
+ "from nbdev import *\n",
212
+ "nbdev_export(\"app.ipynb\")"
213
+ ]
214
+ },
215
+ {
216
+ "cell_type": "code",
217
+ "execution_count": 13,
218
+ "id": "fa65e8a7",
219
+ "metadata": {},
220
+ "outputs": [
221
+ {
222
+ "name": "stdout",
223
+ "output_type": "stream",
224
+ "text": [
225
+ "\u001b[1m\u001b[94mnbdev_bump_version\u001b[0m Increment version in settings.ini by one\n",
226
+ "\u001b[1m\u001b[94mnbdev_changelog\u001b[0m Create a CHANGELOG.md file from closed and labeled GitHub issues\n",
227
+ "\u001b[1m\u001b[94mnbdev_clean\u001b[0m Clean all notebooks in `fname` to avoid merge conflicts\n",
228
+ "\u001b[1m\u001b[94mnbdev_conda\u001b[0m Create a `meta.yaml` file ready to be built into a package, and optionally build and upload it\n",
229
+ "\u001b[1m\u001b[94mnbdev_create_config\u001b[0m Create a config file.\n",
230
+ "\u001b[1m\u001b[94mnbdev_deploy\u001b[0m Deploy docs to GitHub Pages\n",
231
+ "\u001b[1m\u001b[94mnbdev_docs\u001b[0m Create Quarto docs and README.md\n",
232
+ "\u001b[1m\u001b[94mnbdev_export\u001b[0m Export notebooks in `path` to Python modules\n",
233
+ "\u001b[1m\u001b[94mnbdev_filter\u001b[0m A notebook filter for Quarto\n",
234
+ "\u001b[1m\u001b[94mnbdev_fix\u001b[0m Create working notebook from conflicted notebook `nbname`\n",
235
+ "\u001b[1m\u001b[94mnbdev_help\u001b[0m Show help for all console scripts\n",
236
+ "\u001b[1m\u001b[94mnbdev_install\u001b[0m Install Quarto and the current library\n",
237
+ "\u001b[1m\u001b[94mnbdev_install_hooks\u001b[0m Install Jupyter and git hooks to automatically clean, trust, and fix merge conflicts in notebooks\n",
238
+ "\u001b[1m\u001b[94mnbdev_install_quarto\u001b[0m Install latest Quarto on macOS or Linux, prints instructions for Windows\n",
239
+ "\u001b[1m\u001b[94mnbdev_merge\u001b[0m Git merge driver for notebooks\n",
240
+ "\u001b[1m\u001b[94mnbdev_migrate\u001b[0m Convert all directives and callouts in `fname` from v1 to v2\n",
241
+ "\u001b[1m\u001b[94mnbdev_new\u001b[0m Create an nbdev project.\n",
242
+ "\u001b[1m\u001b[94mnbdev_prepare\u001b[0m Export, test, and clean notebooks, and render README if needed\n",
243
+ "\u001b[1m\u001b[94mnbdev_preview\u001b[0m Preview docs locally\n",
244
+ "\u001b[1m\u001b[94mnbdev_pypi\u001b[0m Create and upload Python package to PyPI\n",
245
+ "\u001b[1m\u001b[94mnbdev_quarto\u001b[0m Create Quarto docs and README.md\n",
246
+ "\u001b[1m\u001b[94mnbdev_readme\u001b[0m Render README.md from index.ipynb\n",
247
+ "\u001b[1m\u001b[94mnbdev_release_both\u001b[0m Release both conda and PyPI packages\n",
248
+ "\u001b[1m\u001b[94mnbdev_release_gh\u001b[0m Calls `nbdev_changelog`, lets you edit the result, then pushes to git and calls `nbdev_release_git`\n",
249
+ "\u001b[1m\u001b[94mnbdev_release_git\u001b[0m Tag and create a release in GitHub for the current version\n",
250
+ "\u001b[1m\u001b[94mnbdev_sidebar\u001b[0m Create sidebar.yml\n",
251
+ "\u001b[1m\u001b[94mnbdev_test\u001b[0m Test in parallel notebooks matching `path`, passing along `flags`\n",
252
+ "\u001b[1m\u001b[94mnbdev_trust\u001b[0m Trust notebooks matching `fname`\n",
253
+ "\u001b[1m\u001b[94mnbdev_update\u001b[0m Propagate change in modules matching `fname` to notebooks that created them\n"
254
+ ]
255
+ }
256
+ ],
257
+ "source": [
258
+ "!nbdev_help\n"
259
+ ]
260
+ },
261
+ {
262
+ "cell_type": "code",
263
+ "execution_count": null,
264
+ "id": "8ae399c7",
265
+ "metadata": {},
266
+ "outputs": [],
267
+ "source": []
268
+ }
269
+ ],
270
+ "metadata": {
271
+ "kernelspec": {
272
+ "display_name": "Python 3 (ipykernel)",
273
+ "language": "python",
274
+ "name": "python3"
275
+ },
276
+ "language_info": {
277
+ "codemirror_mode": {
278
+ "name": "ipython",
279
+ "version": 3
280
+ },
281
+ "file_extension": ".py",
282
+ "mimetype": "text/x-python",
283
+ "name": "python",
284
+ "nbconvert_exporter": "python",
285
+ "pygments_lexer": "ipython3",
286
+ "version": "3.9.7"
287
+ }
288
+ },
289
+ "nbformat": 4,
290
+ "nbformat_minor": 5
291
+ }
app.py CHANGED
@@ -1,7 +1,17 @@
 
1
  import gradio as gr
2
 
3
- def greet(name):
4
- return "Hello " + name + "!!"
5
 
6
- iface = gr.Interface(fn=greet, inputs="text", outputs="text")
7
- iface.launch()
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastai.vision.all import *
2
  import gradio as gr
3
 
4
+ learn = load_learner("export.pkl")
 
5
 
6
+ categories = ('CT', 'MRI', "Ultrasound", "X-Ray")
7
+
8
+ def classify_image(img):
9
+ pred,idx,probs = learn.predict(img)
10
+ return dict(zip(categories, map(float,probs)))
11
+
12
+ image = gr.inputs.Image(shape=(192,192))
13
+ label = gr.outputs.Label()
14
+ examples = ['mri.jpg','ct.jpg','ultrasound.jpg', 'xray.jpg']
15
+
16
+ intf = gr.Interface(fn=classify_image, inputs=image, outputs=label, examples=examples)
17
+ intf.launch(inline=False)
ct.jpg ADDED
export.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:27cd33cccdd66cc06dc30e9ccd748ef6a11ae13990fecb53a629d86a2fc70477
3
+ size 46967713
mri.jpg ADDED
ultrasound.jpg ADDED
xray.jpg ADDED