Laurits commited on
Commit
d9832c8
·
1 Parent(s): f9458a9

Add probability

Browse files
Files changed (4) hide show
  1. app.py +3 -2
  2. celebs.txt +100 -0
  3. model.pkl → model.pth +0 -0
  4. test.ipynb +199 -16
app.py CHANGED
@@ -1,11 +1,12 @@
1
  from fastai.vision.all import *
2
  import gradio as gr
3
 
4
- learn = load_learner('model.pkl')
5
 
6
  def classify_image(img):
7
  celebrity_name,_,probs = learn.predict(img)
8
- return celebrity_name
 
9
 
10
  image = gr.inputs.Image(shape=(224,224))
11
  label = gr.outputs.Label()
 
1
  from fastai.vision.all import *
2
  import gradio as gr
3
 
4
+ learn = load_learner('model.pth')
5
 
6
  def classify_image(img):
7
  celebrity_name,_,probs = learn.predict(img)
8
+ probability = probs[list(learn.dls.vocab).index(celebrity_name)]
9
+ return {celebrity_name: probability}
10
 
11
  image = gr.inputs.Image(shape=(224,224))
12
  label = gr.outputs.Label()
celebs.txt ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Johnny Depp
2
+ Arnold Schwarzenegger
3
+ Jim Carrey
4
+ Emma Watson
5
+ Robert Downey Jr.
6
+ Daniel Radcliffe
7
+ Chris Evans
8
+ Leonardo DiCaprio
9
+ Tom Cruise
10
+ Brad Pitt
11
+ Charles Chaplin
12
+ Morgan Freeman
13
+ Tom Hanks
14
+ Hugh Jackman
15
+ Matt Damon
16
+ Sylvester Stallone
17
+ Will Smith
18
+ Clint Eastwood
19
+ Cameron Diaz
20
+ George Clooney
21
+ Steven Spielberg
22
+ Harrison Ford
23
+ Robert De Niro
24
+ Al Pacino
25
+ Robert Downey Jr.
26
+ Russell Crowe
27
+ Liam Neeson
28
+ Kate Winslet
29
+ Mark Wahlberg
30
+ Natalie Portman
31
+ Pierce Brosnan
32
+ Sean Connery
33
+ Orlando Bloom
34
+ Dwayne Johnson
35
+ Jackie Chan
36
+ Angelina Jolie
37
+ Adam Sandler
38
+ Scarlett Johansson
39
+ Heath Ledger
40
+ Anne Hathaway
41
+ Jessica Alba
42
+ Edward Norton
43
+ Keira Knightley
44
+ Bradley Cooper
45
+ Will Ferrell
46
+ Julia Roberts
47
+ Nicolas Cage
48
+ Daniel Craig
49
+ Keanu Reeves
50
+ Ian McKellen
51
+ Halle Berry
52
+ Bruce Willis
53
+ Samuel L. Jackson
54
+ Ben Stiller
55
+ Tommy Lee Jones
56
+ Antonio Banderas
57
+ Denzel Washington
58
+ Steve Carell
59
+ Shia LaBeouf
60
+ Megan Fox
61
+ James Franco
62
+ Mel Gibson
63
+ Vin Diesel
64
+ Tim Allen
65
+ Robin Williams
66
+ Kevin Spacey
67
+ Jason Biggs
68
+ Seann William Scott
69
+ Jean-Claude Van Damme
70
+ Zach Galifianakis
71
+ Owen Wilson
72
+ Christian Bale
73
+ Peter Jackson
74
+ Sandra Bullock
75
+ Bruce Lee
76
+ Drew Barrymore
77
+ Macaulay Culkin
78
+ Jack Nicholson
79
+ Bill Murray
80
+ Sigourney Weaver
81
+ Jake Gyllenhaal
82
+ Jason Statham
83
+ Jet Li
84
+ Kate Beckinsale
85
+ Rowan Atkinson
86
+ Marlon Brando
87
+ John Travolta
88
+ Channing Tatum
89
+ Ben Affleck
90
+ Shah Rukh Khan
91
+ Jennifer Aniston
92
+ Emma Stone
93
+ Chris Hemsworth
94
+ James McAvoy
95
+ James Cameron
96
+ Amitabh Bachchan
97
+ Brendan Fraser
98
+ Rachel McAdams
99
+ Tom Hiddleston
100
+ Aamir Khan
model.pkl → model.pth RENAMED
File without changes
test.ipynb CHANGED
@@ -2,35 +2,218 @@
2
  "cells": [
3
  {
4
  "cell_type": "code",
5
- "execution_count": 1,
6
  "metadata": {},
7
  "outputs": [],
8
  "source": [
9
- "from fastai.vision.all import *"
 
10
  ]
11
  },
12
  {
13
  "cell_type": "code",
14
- "execution_count": 2,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  "metadata": {},
16
  "outputs": [
17
  {
18
- "ename": "UnpicklingError",
19
- "evalue": "invalid load key, 'v'.",
20
- "output_type": "error",
21
- "traceback": [
22
- "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
23
- "\u001b[0;31mUnpicklingError\u001b[0m Traceback (most recent call last)",
24
- "Cell \u001b[0;32mIn[2], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m learner \u001b[39m=\u001b[39m load_learner(\u001b[39m'\u001b[39;49m\u001b[39mmodel.pth\u001b[39;49m\u001b[39m'\u001b[39;49m)\n",
25
- "File \u001b[0;32m~/ENTER/envs/fastai-env/lib/python3.11/site-packages/fastai/learner.py:446\u001b[0m, in \u001b[0;36mload_learner\u001b[0;34m(fname, cpu, pickle_module)\u001b[0m\n\u001b[1;32m 444\u001b[0m distrib_barrier()\n\u001b[1;32m 445\u001b[0m map_loc \u001b[39m=\u001b[39m \u001b[39m'\u001b[39m\u001b[39mcpu\u001b[39m\u001b[39m'\u001b[39m \u001b[39mif\u001b[39;00m cpu \u001b[39melse\u001b[39;00m default_device()\n\u001b[0;32m--> 446\u001b[0m \u001b[39mtry\u001b[39;00m: res \u001b[39m=\u001b[39m torch\u001b[39m.\u001b[39;49mload(fname, map_location\u001b[39m=\u001b[39;49mmap_loc, pickle_module\u001b[39m=\u001b[39;49mpickle_module)\n\u001b[1;32m 447\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mAttributeError\u001b[39;00m \u001b[39mas\u001b[39;00m e: \n\u001b[1;32m 448\u001b[0m e\u001b[39m.\u001b[39margs \u001b[39m=\u001b[39m [\u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mCustom classes or functions exported with your `Learner` not available in namespace.\u001b[39m\u001b[39m\\\u001b[39m\u001b[39mRe-declare/import before loading:\u001b[39m\u001b[39m\\n\u001b[39;00m\u001b[39m\\t\u001b[39;00m\u001b[39m{\u001b[39;00me\u001b[39m.\u001b[39margs[\u001b[39m0\u001b[39m]\u001b[39m}\u001b[39;00m\u001b[39m\"\u001b[39m]\n",
26
- "File \u001b[0;32m~/ENTER/envs/fastai-env/lib/python3.11/site-packages/torch/serialization.py:815\u001b[0m, in \u001b[0;36mload\u001b[0;34m(f, map_location, pickle_module, weights_only, **pickle_load_args)\u001b[0m\n\u001b[1;32m 813\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mRuntimeError\u001b[39;00m \u001b[39mas\u001b[39;00m e:\n\u001b[1;32m 814\u001b[0m \u001b[39mraise\u001b[39;00m pickle\u001b[39m.\u001b[39mUnpicklingError(UNSAFE_MESSAGE \u001b[39m+\u001b[39m \u001b[39mstr\u001b[39m(e)) \u001b[39mfrom\u001b[39;00m \u001b[39mNone\u001b[39;00m\n\u001b[0;32m--> 815\u001b[0m \u001b[39mreturn\u001b[39;00m _legacy_load(opened_file, map_location, pickle_module, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mpickle_load_args)\n",
27
- "File \u001b[0;32m~/ENTER/envs/fastai-env/lib/python3.11/site-packages/torch/serialization.py:1033\u001b[0m, in \u001b[0;36m_legacy_load\u001b[0;34m(f, map_location, pickle_module, **pickle_load_args)\u001b[0m\n\u001b[1;32m 1027\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mhasattr\u001b[39m(f, \u001b[39m'\u001b[39m\u001b[39mreadinto\u001b[39m\u001b[39m'\u001b[39m) \u001b[39mand\u001b[39;00m (\u001b[39m3\u001b[39m, \u001b[39m8\u001b[39m, \u001b[39m0\u001b[39m) \u001b[39m<\u001b[39m\u001b[39m=\u001b[39m sys\u001b[39m.\u001b[39mversion_info \u001b[39m<\u001b[39m (\u001b[39m3\u001b[39m, \u001b[39m8\u001b[39m, \u001b[39m2\u001b[39m):\n\u001b[1;32m 1028\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mRuntimeError\u001b[39;00m(\n\u001b[1;32m 1029\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mtorch.load does not work with file-like objects that do not implement readinto on Python 3.8.0 and 3.8.1. \u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m 1030\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mReceived object of type \u001b[39m\u001b[39m\\\"\u001b[39;00m\u001b[39m{\u001b[39;00m\u001b[39mtype\u001b[39m(f)\u001b[39m}\u001b[39;00m\u001b[39m\\\"\u001b[39;00m\u001b[39m. Please update to Python 3.8.2 or newer to restore this \u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m 1031\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mfunctionality.\u001b[39m\u001b[39m\"\u001b[39m)\n\u001b[0;32m-> 1033\u001b[0m magic_number \u001b[39m=\u001b[39m pickle_module\u001b[39m.\u001b[39;49mload(f, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mpickle_load_args)\n\u001b[1;32m 1034\u001b[0m \u001b[39mif\u001b[39;00m magic_number \u001b[39m!=\u001b[39m MAGIC_NUMBER:\n\u001b[1;32m 1035\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mRuntimeError\u001b[39;00m(\u001b[39m\"\u001b[39m\u001b[39mInvalid magic number; corrupt file?\u001b[39m\u001b[39m\"\u001b[39m)\n",
28
- "\u001b[0;31mUnpicklingError\u001b[0m: invalid load key, 'v'."
29
- ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  }
31
  ],
32
  "source": [
33
- "learner = load_learner('model.pkl')"
 
 
 
34
  ]
35
  },
36
  {
 
2
  "cells": [
3
  {
4
  "cell_type": "code",
5
+ "execution_count": 10,
6
  "metadata": {},
7
  "outputs": [],
8
  "source": [
9
+ "from fastai.vision.all import *\n",
10
+ "from pathlib import Path"
11
  ]
12
  },
13
  {
14
  "cell_type": "code",
15
+ "execution_count": 12,
16
+ "metadata": {},
17
+ "outputs": [],
18
+ "source": [
19
+ "learn = load_learner('model.pkl')"
20
+ ]
21
+ },
22
+ {
23
+ "cell_type": "code",
24
+ "execution_count": 13,
25
+ "metadata": {},
26
+ "outputs": [
27
+ {
28
+ "data": {
29
+ "text/html": [
30
+ "\n",
31
+ "<style>\n",
32
+ " /* Turns off some styling */\n",
33
+ " progress {\n",
34
+ " /* gets rid of default border in Firefox and Opera. */\n",
35
+ " border: none;\n",
36
+ " /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
37
+ " background-size: auto;\n",
38
+ " }\n",
39
+ " progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
40
+ " background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
41
+ " }\n",
42
+ " .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
43
+ " background: #F44336;\n",
44
+ " }\n",
45
+ "</style>\n"
46
+ ],
47
+ "text/plain": [
48
+ "<IPython.core.display.HTML object>"
49
+ ]
50
+ },
51
+ "metadata": {},
52
+ "output_type": "display_data"
53
+ },
54
+ {
55
+ "data": {
56
+ "text/html": [],
57
+ "text/plain": [
58
+ "<IPython.core.display.HTML object>"
59
+ ]
60
+ },
61
+ "metadata": {},
62
+ "output_type": "display_data"
63
+ },
64
+ {
65
+ "data": {
66
+ "text/plain": [
67
+ "('Emma Watson',\n",
68
+ " tensor(30),\n",
69
+ " tensor([1.1929e-07, 5.8495e-08, 3.8198e-07, 9.0753e-06, 2.2058e-04, 1.2250e-04,\n",
70
+ " 2.0016e-07, 4.8305e-07, 2.2462e-08, 5.0742e-07, 3.7518e-07, 5.0198e-06,\n",
71
+ " 3.4834e-07, 2.3815e-06, 3.7357e-06, 1.9106e-08, 1.0254e-05, 1.1662e-04,\n",
72
+ " 8.8360e-07, 6.3956e-06, 1.2606e-06, 1.0974e-07, 6.6237e-08, 4.8988e-06,\n",
73
+ " 3.1586e-06, 3.8812e-08, 3.1651e-05, 2.0162e-06, 4.4486e-07, 1.3981e-04,\n",
74
+ " 9.9433e-01, 9.9587e-08, 4.3374e-06, 7.6844e-08, 1.2182e-06, 9.4450e-07,\n",
75
+ " 7.8193e-09, 1.0388e-06, 4.0273e-07, 1.4351e-07, 3.5202e-07, 1.0416e-07,\n",
76
+ " 5.1168e-07, 1.0324e-06, 8.8179e-07, 1.0323e-07, 1.7276e-05, 2.7315e-04,\n",
77
+ " 3.0939e-07, 2.0662e-06, 8.7540e-08, 2.7940e-06, 7.7654e-05, 2.8455e-03,\n",
78
+ " 1.5032e-04, 2.5726e-07, 4.8556e-04, 1.2773e-06, 2.7566e-06, 1.0871e-06,\n",
79
+ " 2.8510e-06, 1.8711e-07, 8.1365e-07, 1.4328e-07, 6.6794e-06, 5.6703e-08,\n",
80
+ " 9.1386e-09, 6.7899e-04, 2.3621e-07, 2.4263e-05, 1.7181e-07, 2.1496e-06,\n",
81
+ " 6.3289e-08, 1.0691e-04, 5.2058e-07, 1.4683e-06, 3.1002e-09, 1.3486e-06,\n",
82
+ " 6.8411e-07, 9.8865e-07, 1.4920e-04, 1.5001e-05, 1.8135e-07, 4.3004e-05,\n",
83
+ " 2.2933e-07, 1.4821e-06, 1.7363e-05, 5.0178e-07, 2.2853e-07, 4.7195e-08,\n",
84
+ " 2.7670e-07, 4.9980e-05, 4.5713e-08, 2.0050e-06, 1.3772e-06, 4.8403e-07,\n",
85
+ " 1.6381e-08, 3.9686e-08, 4.5362e-07]))"
86
+ ]
87
+ },
88
+ "execution_count": 13,
89
+ "metadata": {},
90
+ "output_type": "execute_result"
91
+ }
92
+ ],
93
+ "source": [
94
+ "learn.predict('emma_watson.jpg')"
95
+ ]
96
+ },
97
+ {
98
+ "cell_type": "code",
99
+ "execution_count": 15,
100
  "metadata": {},
101
  "outputs": [
102
  {
103
+ "data": {
104
+ "text/plain": [
105
+ "['Johnny Depp\\n',\n",
106
+ " 'Arnold Schwarzenegger\\n',\n",
107
+ " 'Jim Carrey\\n',\n",
108
+ " 'Emma Watson\\n',\n",
109
+ " 'Robert Downey Jr.\\n',\n",
110
+ " 'Daniel Radcliffe\\n',\n",
111
+ " 'Chris Evans\\n',\n",
112
+ " 'Leonardo DiCaprio\\n',\n",
113
+ " 'Tom Cruise\\n',\n",
114
+ " 'Brad Pitt\\n',\n",
115
+ " 'Charles Chaplin\\n',\n",
116
+ " 'Morgan Freeman\\n',\n",
117
+ " 'Tom Hanks\\n',\n",
118
+ " 'Hugh Jackman\\n',\n",
119
+ " 'Matt Damon\\n',\n",
120
+ " 'Sylvester Stallone\\n',\n",
121
+ " 'Will Smith\\n',\n",
122
+ " 'Clint Eastwood\\n',\n",
123
+ " 'Cameron Diaz\\n',\n",
124
+ " 'George Clooney\\n',\n",
125
+ " 'Steven Spielberg\\n',\n",
126
+ " 'Harrison Ford\\n',\n",
127
+ " 'Robert De Niro\\n',\n",
128
+ " 'Al Pacino\\n',\n",
129
+ " 'Robert Downey Jr.\\n',\n",
130
+ " 'Russell Crowe\\n',\n",
131
+ " 'Liam Neeson\\n',\n",
132
+ " 'Kate Winslet\\n',\n",
133
+ " 'Mark Wahlberg\\n',\n",
134
+ " 'Natalie Portman\\n',\n",
135
+ " 'Pierce Brosnan\\n',\n",
136
+ " 'Sean Connery\\n',\n",
137
+ " 'Orlando Bloom\\n',\n",
138
+ " 'Dwayne Johnson\\n',\n",
139
+ " 'Jackie Chan\\n',\n",
140
+ " 'Angelina Jolie\\n',\n",
141
+ " 'Adam Sandler\\n',\n",
142
+ " 'Scarlett Johansson\\n',\n",
143
+ " 'Heath Ledger\\n',\n",
144
+ " 'Anne Hathaway\\n',\n",
145
+ " 'Jessica Alba\\n',\n",
146
+ " 'Edward Norton\\n',\n",
147
+ " 'Keira Knightley\\n',\n",
148
+ " 'Bradley Cooper\\n',\n",
149
+ " 'Will Ferrell\\n',\n",
150
+ " 'Julia Roberts\\n',\n",
151
+ " 'Nicolas Cage\\n',\n",
152
+ " 'Daniel Craig\\n',\n",
153
+ " 'Keanu Reeves\\n',\n",
154
+ " 'Ian McKellen\\n',\n",
155
+ " 'Halle Berry\\n',\n",
156
+ " 'Bruce Willis\\n',\n",
157
+ " 'Samuel L. Jackson\\n',\n",
158
+ " 'Ben Stiller\\n',\n",
159
+ " 'Tommy Lee Jones\\n',\n",
160
+ " 'Antonio Banderas\\n',\n",
161
+ " 'Denzel Washington\\n',\n",
162
+ " 'Steve Carell\\n',\n",
163
+ " 'Shia LaBeouf\\n',\n",
164
+ " 'Megan Fox\\n',\n",
165
+ " 'James Franco\\n',\n",
166
+ " 'Mel Gibson\\n',\n",
167
+ " 'Vin Diesel\\n',\n",
168
+ " 'Tim Allen\\n',\n",
169
+ " 'Robin Williams\\n',\n",
170
+ " 'Kevin Spacey\\n',\n",
171
+ " 'Jason Biggs\\n',\n",
172
+ " 'Seann William Scott\\n',\n",
173
+ " 'Jean-Claude Van Damme\\n',\n",
174
+ " 'Zach Galifianakis\\n',\n",
175
+ " 'Owen Wilson\\n',\n",
176
+ " 'Christian Bale\\n',\n",
177
+ " 'Peter Jackson\\n',\n",
178
+ " 'Sandra Bullock\\n',\n",
179
+ " 'Bruce Lee\\n',\n",
180
+ " 'Drew Barrymore\\n',\n",
181
+ " 'Macaulay Culkin\\n',\n",
182
+ " 'Jack Nicholson\\n',\n",
183
+ " 'Bill Murray\\n',\n",
184
+ " 'Sigourney Weaver\\n',\n",
185
+ " 'Jake Gyllenhaal\\n',\n",
186
+ " 'Jason Statham\\n',\n",
187
+ " 'Jet Li\\n',\n",
188
+ " 'Kate Beckinsale\\n',\n",
189
+ " 'Rowan Atkinson\\n',\n",
190
+ " 'Marlon Brando\\n',\n",
191
+ " 'John Travolta\\n',\n",
192
+ " 'Channing Tatum\\n',\n",
193
+ " 'Ben Affleck\\n',\n",
194
+ " 'Shah Rukh Khan\\n',\n",
195
+ " 'Jennifer Aniston\\n',\n",
196
+ " 'Emma Stone\\n',\n",
197
+ " 'Chris Hemsworth\\n',\n",
198
+ " 'James McAvoy\\n',\n",
199
+ " 'James Cameron\\n',\n",
200
+ " 'Amitabh Bachchan\\n',\n",
201
+ " 'Brendan Fraser\\n',\n",
202
+ " 'Rachel McAdams\\n',\n",
203
+ " 'Tom Hiddleston\\n',\n",
204
+ " 'Aamir Khan\\n']"
205
+ ]
206
+ },
207
+ "execution_count": 15,
208
+ "metadata": {},
209
+ "output_type": "execute_result"
210
  }
211
  ],
212
  "source": [
213
+ "with open('celebs.txt', 'r') as file:\n",
214
+ " celeb_list = file.readlines()\n",
215
+ "\n",
216
+ "celeb_list = [celeb.replace('\\n', '') for celeb in celeb_list]"
217
  ]
218
  },
219
  {