paorph/figureIdentifier
0
1{2 "cells": [3 {4 "cell_type": "code",5 "execution_count": 1,6 "id": "9baa324c",7 "metadata": {},8 "outputs": [],9 "source": [10 "#/export\n",11 "from fastai.vision.all import *\n",12 "import gradio as gr"13 ]14 },15 {16 "cell_type": "code",17 "execution_count": null,18 "id": "74b78a85",19 "metadata": {},20 "outputs": [],21 "source": []22 },23 {24 "cell_type": "code",25 "execution_count": 3,26 "id": "471a319d",27 "metadata": {},28 "outputs": [29 {30 "data": {31 "image/png": "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\n",32 "text/plain": [33 "PILImage mode=RGB size=192x192"34 ]35 },36 "execution_count": 3,37 "metadata": {},38 "output_type": "execute_result"39 }40 ],41 "source": [42 "im = PILImage.create('triangle.png')\n",43 "im.thumbnail((192,192))\n",44 "im"45 ]46 },47 {48 "cell_type": "code",49 "execution_count": 4,50 "id": "dad2cd78",51 "metadata": {},52 "outputs": [],53 "source": [54 "#/export\n",55 "learn = load_learner('model.pkl')"56 ]57 },58 {59 "cell_type": "code",60 "execution_count": 5,61 "id": "12606021",62 "metadata": {},63 "outputs": [64 {65 "data": {66 "text/html": [67 "\n",68 "<style>\n",69 " /* Turns off some styling */\n",70 " progress {\n",71 " /* gets rid of default border in Firefox and Opera. */\n",72 " border: none;\n",73 " /* Needs to be in here for Safari polyfill so background images work as expected. */\n",74 " background-size: auto;\n",75 " }\n",76 " progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",77 " background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",78 " }\n",79 " .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",80 " background: #F44336;\n",81 " }\n",82 "</style>\n"83 ],84 "text/plain": [85 "<IPython.core.display.HTML object>"86 ]87 },88 "metadata": {},89 "output_type": "display_data"90 },91 {92 "data": {93 "text/html": [],94 "text/plain": [95 "<IPython.core.display.HTML object>"96 ]97 },98 "metadata": {},99 "output_type": "display_data"100 },101 {102 "name": "stderr",103 "output_type": "stream",104 "text": [105 "[W NNPACK.cpp:53] Could not initialize NNPACK! Reason: Unsupported hardware.\n"106 ]107 },108 {109 "data": {110 "text/plain": [111 "('triangle', tensor(2), tensor([2.5851e-06, 6.2617e-06, 9.9999e-01]))"112 ]113 },114 "execution_count": 5,115 "metadata": {},116 "output_type": "execute_result"117 }118 ],119 "source": [120 "learn.predict(im)"121 ]122 },123 {124 "cell_type": "code",125 "execution_count": 6,126 "id": "1e76d98e",127 "metadata": {},128 "outputs": [],129 "source": [130 "#/export\n",131 "categories = ('circle','square','triangle')\n",132 "def classify_image(img):\n",133 " pred,idx, probs = learn.predict(img)\n",134 " return dict(zip(categories, map(float, probs)))\n"135 ]136 },137 {138 "cell_type": "code",139 "execution_count": 7,140 "id": "9869cdde",141 "metadata": {},142 "outputs": [143 {144 "data": {145 "text/html": [146 "\n",147 "<style>\n",148 " /* Turns off some styling */\n",149 " progress {\n",150 " /* gets rid of default border in Firefox and Opera. */\n",151 " border: none;\n",152 " /* Needs to be in here for Safari polyfill so background images work as expected. */\n",153 " background-size: auto;\n",154 " }\n",155 " progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",156 " background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",157 " }\n",158 " .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",159 " background: #F44336;\n",160 " }\n",161 "</style>\n"162 ],163 "text/plain": [164 "<IPython.core.display.HTML object>"165 ]166 },167 "metadata": {},168 "output_type": "display_data"169 },170 {171 "data": {172 "text/html": [],173 "text/plain": [174 "<IPython.core.display.HTML object>"175 ]176 },177 "metadata": {},178 "output_type": "display_data"179 },180 {181 "data": {182 "text/plain": [183 "{'circle': 2.5850843030639226e-06,\n",184 " 'square': 6.261673206608975e-06,\n",185 " 'triangle': 0.9999911785125732}"186 ]187 },188 "execution_count": 7,189 "metadata": {},190 "output_type": "execute_result"191 }192 ],193 "source": [194 "classify_image(im)"195 ]196 },197 {198 "cell_type": "code",199 "execution_count": 8,200 "id": "ac2dce5b",201 "metadata": {},202 "outputs": [203 {204 "name": "stderr",205 "output_type": "stream",206 "text": [207 "/opt/anaconda3/lib/python3.9/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",208 " warnings.warn(\n",209 "/opt/anaconda3/lib/python3.9/site-packages/gradio/deprecation.py:40: UserWarning: `optional` parameter is deprecated, and it has no effect\n",210 " warnings.warn(value)\n",211 "/opt/anaconda3/lib/python3.9/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",212 " warnings.warn(\n",213 "/opt/anaconda3/lib/python3.9/site-packages/gradio/deprecation.py:40: UserWarning: The 'type' parameter has been deprecated. Use the Number component instead.\n",214 " warnings.warn(value)\n"215 ]216 },217 {218 "name": "stdout",219 "output_type": "stream",220 "text": [221 "Running on local URL: http://127.0.0.1:7860\n",222 "Running on public URL: https://e1a7d2b87331062477.gradio.live\n",223 "\n",224 "This share link expires in 72 hours. For free permanent hosting and GPU upgrades (NEW!), check out Spaces: https://huggingface.co/spaces\n"225 ]226 },227 {228 "data": {229 "text/plain": []230 },231 "execution_count": 8,232 "metadata": {},233 "output_type": "execute_result"234 },235 {236 "data": {237 "text/html": [238 "\n",239 "<style>\n",240 " /* Turns off some styling */\n",241 " progress {\n",242 " /* gets rid of default border in Firefox and Opera. */\n",243 " border: none;\n",244 " /* Needs to be in here for Safari polyfill so background images work as expected. */\n",245 " background-size: auto;\n",246 " }\n",247 " progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",248 " background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",249 " }\n",250 " .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",251 " background: #F44336;\n",252 " }\n",253 "</style>\n"254 ],255 "text/plain": [256 "<IPython.core.display.HTML object>"257 ]258 },259 "metadata": {},260 "output_type": "display_data"261 },262 {263 "data": {264 "text/html": [],265 "text/plain": [266 "<IPython.core.display.HTML object>"267 ]268 },269 "metadata": {},270 "output_type": "display_data"271 },272 {273 "data": {274 "text/html": [275 "\n",276 "<style>\n",277 " /* Turns off some styling */\n",278 " progress {\n",279 " /* gets rid of default border in Firefox and Opera. */\n",280 " border: none;\n",281 " /* Needs to be in here for Safari polyfill so background images work as expected. */\n",282 " background-size: auto;\n",283 " }\n",284 " progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",285 " background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",286 " }\n",287 " .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",288 " background: #F44336;\n",289 " }\n",290 "</style>\n"291 ],292 "text/plain": [293 "<IPython.core.display.HTML object>"294 ]295 },296 "metadata": {},297 "output_type": "display_data"298 },299 {300 "data": {301 "text/html": [],302 "text/plain": [303 "<IPython.core.display.HTML object>"304 ]305 },306 "metadata": {},307 "output_type": "display_data"308 },309 {310 "data": {311 "text/html": [312 "\n",313 "<style>\n",314 " /* Turns off some styling */\n",315 " progress {\n",316 " /* gets rid of default border in Firefox and Opera. */\n",317 " border: none;\n",318 " /* Needs to be in here for Safari polyfill so background images work as expected. */\n",319 " background-size: auto;\n",320 " }\n",321 " progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",322 " background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",323 " }\n",324 " .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",325 " background: #F44336;\n",326 " }\n",327 "</style>\n"328 ],329 "text/plain": [330 "<IPython.core.display.HTML object>"331 ]332 },333 "metadata": {},334 "output_type": "display_data"335 },336 {337 "data": {338 "text/html": [],339 "text/plain": [340 "<IPython.core.display.HTML object>"341 ]342 },343 "metadata": {},344 "output_type": "display_data"345 }346 ],347 "source": [348 "#/export\n",349 "image = gr.inputs.Image(shape=(192,192))\n",350 "label = gr.outputs.Label()\n",351 "examples = ['circle.png','square.png','triangle.png']\n",352 "\n",353 "intf = gr.Interface(fn=classify_image, inputs = image, outputs = label, examples = examples)\n",354 "intf.launch(inline=False, share = True)"355 ]356 },357 {358 "cell_type": "code",359 "execution_count": null,360 "id": "1325c6a3",361 "metadata": {},362 "outputs": [],363 "source": []364 },365 {366 "cell_type": "code",367 "execution_count": null,368 "id": "cae379d6",369 "metadata": {},370 "outputs": [],371 "source": []372 },373 {374 "cell_type": "code",375 "execution_count": null,376 "id": "8c1e72c1",377 "metadata": {},378 "outputs": [],379 "source": []380 }381 ],382 "metadata": {383 "kernelspec": {384 "display_name": "Python 3 (ipykernel)",385 "language": "python",386 "name": "python3"387 },388 "language_info": {389 "codemirror_mode": {390 "name": "ipython",391 "version": 3392 },393 "file_extension": ".py",394 "mimetype": "text/x-python",395 "name": "python",396 "nbconvert_exporter": "python",397 "pygments_lexer": "ipython3",398 "version": "3.9.7"399 }400 },401 "nbformat": 4,402 "nbformat_minor": 5403}404 