mikachou commited on
Commit
1a007d0
β€’
1 Parent(s): ce6af1f

upload application and model

Browse files
.python-version ADDED
@@ -0,0 +1 @@
 
1
+ 3.7.13
app.py ADDED
@@ -0,0 +1,160 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import tensorflow as tf
2
+ import gradio as gr
3
+
4
+ model = tf.keras.models.load_model('tf_model.h5')
5
+ print(model.summary())
6
+
7
+ dogs_breeds = ['Chihuahua',
8
+ 'Japanese spaniel',
9
+ 'Maltese dog',
10
+ 'Pekinese',
11
+ 'Shih-Tzu',
12
+ 'Blenheim spaniel',
13
+ 'papillon',
14
+ 'toy terrier',
15
+ 'Rhodesian ridgeback',
16
+ 'Afghan hound',
17
+ 'basset',
18
+ 'beagle',
19
+ 'bloodhound',
20
+ 'bluetick',
21
+ 'black-and-tan coonhound',
22
+ 'Walker hound',
23
+ 'English foxhound',
24
+ 'redbone',
25
+ 'borzoi',
26
+ 'Irish wolfhound',
27
+ 'Italian greyhound',
28
+ 'whippet',
29
+ 'Ibizan hound',
30
+ 'Norwegian elkhound',
31
+ 'otterhound',
32
+ 'Saluki',
33
+ 'Scottish deerhound',
34
+ 'Weimaraner',
35
+ 'Staffordshire bullterrier',
36
+ 'American Staffordshire terrier',
37
+ 'Bedlington terrier',
38
+ 'Border terrier',
39
+ 'Kerry blue terrier',
40
+ 'Irish terrier',
41
+ 'Norfolk terrier',
42
+ 'Norwich terrier',
43
+ 'Yorkshire terrier',
44
+ 'wire-haired fox terrier',
45
+ 'Lakeland terrier',
46
+ 'Sealyham terrier',
47
+ 'Airedale',
48
+ 'cairn',
49
+ 'Australian terrier',
50
+ 'Dandie Dinmont',
51
+ 'Boston bull',
52
+ 'miniature schnauzer',
53
+ 'giant schnauzer',
54
+ 'standard schnauzer',
55
+ 'Scotch terrier',
56
+ 'Tibetan terrier',
57
+ 'silky terrier',
58
+ 'soft-coated wheaten terrier',
59
+ 'West Highland white terrier',
60
+ 'Lhasa',
61
+ 'flat-coated retriever',
62
+ 'curly-coated retriever',
63
+ 'golden retriever',
64
+ 'Labrador retriever',
65
+ 'Chesapeake Bay retriever',
66
+ 'German short-haired pointer',
67
+ 'vizsla',
68
+ 'English setter',
69
+ 'Irish setter',
70
+ 'Gordon setter',
71
+ 'Brittany spaniel',
72
+ 'clumber',
73
+ 'English springer',
74
+ 'Welsh springer spaniel',
75
+ 'cocker spaniel',
76
+ 'Sussex spaniel',
77
+ 'Irish water spaniel',
78
+ 'kuvasz',
79
+ 'schipperke',
80
+ 'groenendael',
81
+ 'malinois',
82
+ 'briard',
83
+ 'kelpie',
84
+ 'komondor',
85
+ 'Old English sheepdog',
86
+ 'Shetland sheepdog',
87
+ 'collie',
88
+ 'Border collie',
89
+ 'Bouvier des Flandres',
90
+ 'Rottweiler',
91
+ 'German shepherd',
92
+ 'Doberman',
93
+ 'miniature pinscher',
94
+ 'Greater Swiss Mountain dog',
95
+ 'Bernese mountain dog',
96
+ 'Appenzeller',
97
+ 'EntleBucher',
98
+ 'boxer',
99
+ 'bull mastiff',
100
+ 'Tibetan mastiff',
101
+ 'French bulldog',
102
+ 'Great Dane',
103
+ 'Saint Bernard',
104
+ 'Eskimo dog',
105
+ 'malamute',
106
+ 'Siberian husky',
107
+ 'affenpinscher',
108
+ 'basenji',
109
+ 'pug',
110
+ 'Leonberg',
111
+ 'Newfoundland',
112
+ 'Great Pyrenees',
113
+ 'Samoyed',
114
+ 'Pomeranian',
115
+ 'chow',
116
+ 'keeshond',
117
+ 'Brabancon griffon',
118
+ 'Pembroke',
119
+ 'Cardigan',
120
+ 'toy poodle',
121
+ 'miniature poodle',
122
+ 'standard poodle',
123
+ 'Mexican hairless',
124
+ 'dingo',
125
+ 'dhole',
126
+ 'African hunting dog']
127
+
128
+ def predict(filepath):
129
+ img = tf.io.read_file(filepath)
130
+ tensor = tf.io.decode_image(img, channels=3, dtype=tf.dtypes.float32)
131
+ tensor = tf.image.resize(tensor, [299, 299])
132
+ input_tensor = tf.expand_dims(tensor, axis=0)
133
+
134
+ output = model.predict(input_tensor)
135
+ high_score = max(output[0])
136
+
137
+ predicted_breed = dogs_breeds[list(output[0]).index(high_score)]
138
+
139
+ return predicted_breed, high_score
140
+
141
+ demo = gr.Interface(
142
+ fn=predict,
143
+ inputs=gr.Image(label='photo', type='filepath'),
144
+ outputs=[
145
+ gr.Label(label="Predicted breed"),
146
+ gr.Label(label="Accuracy score")
147
+ ],
148
+ examples=[
149
+ 'imgs/beethoven.jpg',
150
+ 'imgs/belle.png',
151
+ 'imgs/belmondo.jpg',
152
+ 'imgs/dorothy.jpg',
153
+ 'imgs/lassie.jpg',
154
+ 'imgs/rintintin.jpg'
155
+ ],
156
+ title="Dog breed detection",
157
+ description="The model was trained with [Stanford Dogs Dataset](http://vision.stanford.edu/aditya86/ImageNetDogs/) using tensorflow/keras on a fine-tuned pre-trained InceptionResNetV2 model",
158
+ article="You could also drag/drop other examples from [this page](https://www.rdasia.com/pets/can-you-guess-dog-breed-based-its-puppy-picture)")
159
+
160
+ demo.launch()
imgs/beethoven.jpg ADDED
imgs/belle.png ADDED
imgs/belmondo.jpg ADDED
imgs/dorothy.jpg ADDED
imgs/lassie.jpg ADDED
imgs/rintintin.jpg ADDED
requirements.txt ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ absl-py==1.1.0
2
+ aiohttp==3.8.1
3
+ aiosignal==1.2.0
4
+ analytics-python==1.4.0
5
+ anyio==3.6.1
6
+ astunparse==1.6.3
7
+ async-timeout==4.0.2
8
+ asynctest==0.13.0
9
+ attrs==21.4.0
10
+ backoff==1.10.0
11
+ bcrypt==3.2.2
12
+ cachetools==5.2.0
13
+ certifi==2022.6.15
14
+ cffi==1.15.0
15
+ charset-normalizer==2.0.12
16
+ click==8.1.3
17
+ cryptography==37.0.2
18
+ cycler==0.11.0
19
+ fastapi==0.78.0
20
+ ffmpy==0.3.0
21
+ flatbuffers==1.12
22
+ fonttools==4.33.3
23
+ frozenlist==1.3.0
24
+ fsspec==2022.5.0
25
+ gast==0.4.0
26
+ google-auth==2.8.0
27
+ google-auth-oauthlib==0.4.6
28
+ google-pasta==0.2.0
29
+ gradio==3.0.20
30
+ grpcio==1.47.0
31
+ h11==0.13.0
32
+ h5py==3.7.0
33
+ idna==3.3
34
+ importlib-metadata==4.12.0
35
+ Jinja2==3.1.2
36
+ keras==2.8.0
37
+ Keras-Preprocessing==1.1.2
38
+ kiwisolver==1.4.3
39
+ libclang==14.0.1
40
+ linkify-it-py==1.0.3
41
+ Markdown==3.3.7
42
+ markdown-it-py==2.1.0
43
+ MarkupSafe==2.1.1
44
+ matplotlib==3.5.2
45
+ mdit-py-plugins==0.3.0
46
+ mdurl==0.1.1
47
+ monotonic==1.6
48
+ multidict==6.0.2
49
+ numpy==1.21.6
50
+ oauthlib==3.2.0
51
+ opt-einsum==3.3.0
52
+ orjson==3.7.5
53
+ packaging==21.3
54
+ pandas==1.3.5
55
+ paramiko==2.11.0
56
+ Pillow==9.1.1
57
+ protobuf==3.19.4
58
+ pyasn1==0.4.8
59
+ pyasn1-modules==0.2.8
60
+ pycparser==2.21
61
+ pycryptodome==3.15.0
62
+ pydantic==1.9.1
63
+ pydub==0.25.1
64
+ PyNaCl==1.5.0
65
+ pyparsing==3.0.9
66
+ python-dateutil==2.8.2
67
+ python-multipart==0.0.5
68
+ pytz==2022.1
69
+ requests==2.28.0
70
+ requests-oauthlib==1.3.1
71
+ rsa==4.8
72
+ six==1.16.0
73
+ sniffio==1.2.0
74
+ starlette==0.19.1
75
+ tensorboard==2.8.0
76
+ tensorboard-data-server==0.6.1
77
+ tensorboard-plugin-wit==1.8.1
78
+ tensorflow==2.8.2
79
+ tensorflow-estimator==2.8.0
80
+ tensorflow-io-gcs-filesystem==0.26.0
81
+ termcolor==1.1.0
82
+ typing_extensions==4.2.0
83
+ uc-micro-py==1.0.1
84
+ urllib3==1.26.9
85
+ uvicorn==0.18.2
86
+ Werkzeug==2.1.2
87
+ wrapt==1.14.1
88
+ yarl==1.7.2
89
+ zipp==3.8.0
tf_model.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:73e923c10641dbb68b7c19eff7f91609a93a6f21724ce2d6c4094f4e2e5b5293
3
+ size 363489560