LeGenDaProg/DeepLearningBase
0
1{2 "cells": [3 {4 "cell_type": "code",5 "execution_count": null,6 "metadata": {},7 "outputs": [],8 "source": [9 "#|export\n",10 "from fastai.vision.all import*\n",11 "import gradio as gr\n",12 "\n",13 "def is_cat(x):\n",14 " return x[0].isupper()"15 ]16 },17 {18 "cell_type": "code",19 "execution_count": 10,20 "metadata": {},21 "outputs": [22 {23 "data": {24 "image/png": "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",25 "text/plain": [26 "PILImage mode=RGB size=192x96"27 ]28 },29 "execution_count": 10,30 "metadata": {},31 "output_type": "execute_result"32 }33 ],34 "source": [35 "im = PILImage.create('dog.jpg')\n",36 "im.thumbnail((192,192))\n",37 "im"38 ]39 },40 {41 "cell_type": "code",42 "execution_count": 11,43 "metadata": {},44 "outputs": [],45 "source": [46 "#|export\n",47 "learn = load_learner('model.pkl')"48 ]49 },50 {51 "cell_type": "code",52 "execution_count": 9,53 "metadata": {},54 "outputs": [55 {56 "data": {57 "text/html": [58 "\n",59 "<style>\n",60 " /* Turns off some styling */\n",61 " progress {\n",62 " /* gets rid of default border in Firefox and Opera. */\n",63 " border: none;\n",64 " /* Needs to be in here for Safari polyfill so background images work as expected. */\n",65 " background-size: auto;\n",66 " }\n",67 " progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",68 " background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",69 " }\n",70 " .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",71 " background: #F44336;\n",72 " }\n",73 "</style>\n"74 ],75 "text/plain": [76 "<IPython.core.display.HTML object>"77 ]78 },79 "metadata": {},80 "output_type": "display_data"81 },82 {83 "data": {84 "text/html": [],85 "text/plain": [86 "<IPython.core.display.HTML object>"87 ]88 },89 "metadata": {},90 "output_type": "display_data"91 },92 {93 "data": {94 "text/plain": [95 "('True', TensorBase(1), TensorBase([1.4078e-21, 1.0000e+00]))"96 ]97 },98 "execution_count": 9,99 "metadata": {},100 "output_type": "execute_result"101 }102 ],103 "source": [104 "learn.predict(im)"105 ]106 },107 {108 "cell_type": "code",109 "execution_count": 13,110 "metadata": {},111 "outputs": [],112 "source": [113 "#|export\n",114 "categories = ('Dog', 'Cat')\n",115 "\n",116 "def classify_image(img):\n",117 " pred,idx,probs = learn.predict(img)\n",118 " return dict(zip(categories, map(float, probs)))"119 ]120 },121 {122 "cell_type": "code",123 "execution_count": 14,124 "metadata": {},125 "outputs": [126 {127 "data": {128 "text/html": [129 "\n",130 "<style>\n",131 " /* Turns off some styling */\n",132 " progress {\n",133 " /* gets rid of default border in Firefox and Opera. */\n",134 " border: none;\n",135 " /* Needs to be in here for Safari polyfill so background images work as expected. */\n",136 " background-size: auto;\n",137 " }\n",138 " progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",139 " background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",140 " }\n",141 " .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",142 " background: #F44336;\n",143 " }\n",144 "</style>\n"145 ],146 "text/plain": [147 "<IPython.core.display.HTML object>"148 ]149 },150 "metadata": {},151 "output_type": "display_data"152 },153 {154 "data": {155 "text/html": [],156 "text/plain": [157 "<IPython.core.display.HTML object>"158 ]159 },160 "metadata": {},161 "output_type": "display_data"162 },163 {164 "data": {165 "text/plain": [166 "{'Dog': 0.9999997615814209, 'Cat': 2.0829948255141062e-07}"167 ]168 },169 "execution_count": 14,170 "metadata": {},171 "output_type": "execute_result"172 }173 ],174 "source": [175 "classify_image(im)"176 ]177 },178 {179 "cell_type": "code",180 "execution_count": null,181 "metadata": {},182 "outputs": [],183 "source": [184 "#|export\n",185 "# interface\n",186 "image = gr.inputs.Image(shape=(192, 192))\n",187 "label = gr.outputs.Label()\n",188 "examples = ['dog.jpg', 'Cat.jpg', 'dunoo.jpg']\n",189 "\n",190 "intf = gr.Interface(fn=classify_image, inputs=image, outputs=label, examples=examples)\n",191 "intf.launch(inline=False)\n"192 ]193 },194 {195 "cell_type": "code",196 "execution_count": 16,197 "metadata": {},198 "outputs": [],199 "source": [200 "m = learn.model"201 ]202 },203 {204 "cell_type": "code",205 "execution_count": 18,206 "metadata": {},207 "outputs": [],208 "source": [209 "ps = list(m.parameters())"210 ]211 },212 {213 "cell_type": "code",214 "execution_count": 22,215 "metadata": {},216 "outputs": [217 {218 "data": {219 "text/plain": [220 "Parameter containing:\n",221 "tensor([ 2.3515e-01, 2.6450e-01, -5.1096e-08, 5.1779e-01, 3.4404e-09,\n",222 " 2.2368e-01, 4.2309e-01, 1.3153e-07, 2.5206e-01, 1.5152e-06,\n",223 " 3.1581e-01, 2.4943e-01, 3.7917e-01, 1.0862e-05, 2.7315e-01,\n",224 " 2.3769e-01, 2.4163e-01, 3.9662e-01, 4.7047e-01, 2.9063e-01,\n",225 " 2.7177e-01, 2.7794e-01, 2.9228e-01, 2.0795e-01, 2.5946e-01,\n",226 " 2.7951e-01, 2.9095e-01, 3.1434e-01, 3.8637e-01, 3.0415e-01,\n",227 " 2.6573e-01, 2.0886e-01, 2.8599e-01, 3.3051e-01, 4.2670e-01,\n",228 " 3.7252e-01, 7.4804e-08, 1.9118e-01, 1.4740e-08, 2.2470e-01,\n",229 " 1.7988e-01, 2.4898e-01, 2.7180e-01, 2.5885e-01, 2.9534e-01,\n",230 " 3.0028e-01, 2.2317e-01, 2.6414e-01, 2.2001e-08, 2.6493e-01,\n",231 " 2.2067e-01, 2.8381e-01, 3.3110e-01, 2.2795e-01, 3.6527e-01,\n",232 " 2.1190e-01, 2.4055e-01, 2.4753e-01, 5.2659e-01, 2.4900e-01,\n",233 " 2.9581e-01, 2.5850e-01, 4.8198e-01, 2.6710e-01],\n",234 " requires_grad=True)"235 ]236 },237 "execution_count": 22,238 "metadata": {},239 "output_type": "execute_result"240 }241 ],242 "source": [243 "ps[1]"244 ]245 },246 {247 "cell_type": "code",248 "execution_count": null,249 "metadata": {},250 "outputs": [],251 "source": []252 }253 ],254 "metadata": {255 "kernelspec": {256 "display_name": "base",257 "language": "python",258 "name": "python3"259 },260 "language_info": {261 "codemirror_mode": {262 "name": "ipython",263 "version": 3264 },265 "file_extension": ".py",266 "mimetype": "text/x-python",267 "name": "python",268 "nbconvert_exporter": "python",269 "pygments_lexer": "ipython3",270 "version": "3.9.13"271 },272 "orig_nbformat": 4,273 "vscode": {274 "interpreter": {275 "hash": "1b3bf44f9e7d96693f635a57c7fd467ca47acc1612274436c66a980c5e552e51"276 }277 }278 },279 "nbformat": 4,280 "nbformat_minor": 2281}282 