File size: 3,066 Bytes
2dee6a0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "71299281",
   "metadata": {},
   "outputs": [],
   "source": [
    "from fastai.vision.all import *\n",
    "import gradio as gr\n",
    "import skimage"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "7d256402",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Function needed to set labels\n",
    "def is_cat(filename):\n",
    "    return filename.name[0].isupper() "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "a350f960",
   "metadata": {},
   "outputs": [],
   "source": [
    "learn = load_learner('cat_dog_model.pkl')\n",
    "labels = learn.dls.vocab\n",
    "\n",
    "def predict(img):\n",
    "    img = PILImage.create(img)\n",
    "    pred, pred_idx, probs = learn.predict(img)\n",
    "    return {labels[i]: float(probs[i]) for i in range(len(labels))}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "8703a184",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Running on local URL:  http://127.0.0.1:7860\n",
      "\n",
      "To create a public link, set `share=True` in `launch()`.\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div><iframe src=\"http://127.0.0.1:7860/\" width=\"100%\" height=\"500\" allow=\"autoplay; camera; microphone; clipboard-read; clipboard-write;\" frameborder=\"0\" allowfullscreen></iframe></div>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "(<gradio.routes.App at 0x7f5b0f748d90>, 'http://127.0.0.1:7860/', None)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "title = \"Cat/Dog Classifier\"\n",
    "description = \"Basic Cat/Dog classifier trained on the Oxford Pets dataset with fastai. Testing out Gradio on HF Spaces.\"\n",
    "examples = ['siamese.jpg', 'boerboel.jpg', 'german_shepherd.jpg', 'sphynx.jpg']\n",
    "enable_queue=True\n",
    "\n",
    "gr.Interface(\n",
    "    fn=predict, \n",
    "    inputs=gr.Image(shape=(512,512)),\n",
    "    outputs=gr.Label(num_top_classes=3),\n",
    "    title=title,\n",
    "    description=description,\n",
    "    examples=examples,\n",
    ").launch(enable_queue=enable_queue)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3.10.6 ('base')",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.6"
  },
  "vscode": {
   "interpreter": {
    "hash": "ed0e91aaffcefde6eb9bcd4f55fe7652d77471dc031ce772257aa5eb4a54e8f2"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}