mikachou commited on
Commit
511b11c
β€’
1 Parent(s): 401e893

load breeds from model/config.json instead of hard-coded list

Browse files
Files changed (1) hide show
  1. app.py +6 -120
app.py CHANGED
@@ -1,132 +1,18 @@
 
1
  import tensorflow as tf
2
  from huggingface_hub import hf_hub_download
3
  import gradio as gr
4
 
5
  tf_model = hf_hub_download(repo_id='mikachou/dog-breed-classifier', filename='tf_model.h5')
 
6
 
7
  model = tf.keras.models.load_model(tf_model)
8
  print(model.summary())
9
 
10
- dogs_breeds = ['Chihuahua',
11
- 'Japanese spaniel',
12
- 'Maltese dog',
13
- 'Pekinese',
14
- 'Shih-Tzu',
15
- 'Blenheim spaniel',
16
- 'papillon',
17
- 'toy terrier',
18
- 'Rhodesian ridgeback',
19
- 'Afghan hound',
20
- 'basset',
21
- 'beagle',
22
- 'bloodhound',
23
- 'bluetick',
24
- 'black-and-tan coonhound',
25
- 'Walker hound',
26
- 'English foxhound',
27
- 'redbone',
28
- 'borzoi',
29
- 'Irish wolfhound',
30
- 'Italian greyhound',
31
- 'whippet',
32
- 'Ibizan hound',
33
- 'Norwegian elkhound',
34
- 'otterhound',
35
- 'Saluki',
36
- 'Scottish deerhound',
37
- 'Weimaraner',
38
- 'Staffordshire bullterrier',
39
- 'American Staffordshire terrier',
40
- 'Bedlington terrier',
41
- 'Border terrier',
42
- 'Kerry blue terrier',
43
- 'Irish terrier',
44
- 'Norfolk terrier',
45
- 'Norwich terrier',
46
- 'Yorkshire terrier',
47
- 'wire-haired fox terrier',
48
- 'Lakeland terrier',
49
- 'Sealyham terrier',
50
- 'Airedale',
51
- 'cairn',
52
- 'Australian terrier',
53
- 'Dandie Dinmont',
54
- 'Boston bull',
55
- 'miniature schnauzer',
56
- 'giant schnauzer',
57
- 'standard schnauzer',
58
- 'Scotch terrier',
59
- 'Tibetan terrier',
60
- 'silky terrier',
61
- 'soft-coated wheaten terrier',
62
- 'West Highland white terrier',
63
- 'Lhasa',
64
- 'flat-coated retriever',
65
- 'curly-coated retriever',
66
- 'golden retriever',
67
- 'Labrador retriever',
68
- 'Chesapeake Bay retriever',
69
- 'German short-haired pointer',
70
- 'vizsla',
71
- 'English setter',
72
- 'Irish setter',
73
- 'Gordon setter',
74
- 'Brittany spaniel',
75
- 'clumber',
76
- 'English springer',
77
- 'Welsh springer spaniel',
78
- 'cocker spaniel',
79
- 'Sussex spaniel',
80
- 'Irish water spaniel',
81
- 'kuvasz',
82
- 'schipperke',
83
- 'groenendael',
84
- 'malinois',
85
- 'briard',
86
- 'kelpie',
87
- 'komondor',
88
- 'Old English sheepdog',
89
- 'Shetland sheepdog',
90
- 'collie',
91
- 'Border collie',
92
- 'Bouvier des Flandres',
93
- 'Rottweiler',
94
- 'German shepherd',
95
- 'Doberman',
96
- 'miniature pinscher',
97
- 'Greater Swiss Mountain dog',
98
- 'Bernese mountain dog',
99
- 'Appenzeller',
100
- 'EntleBucher',
101
- 'boxer',
102
- 'bull mastiff',
103
- 'Tibetan mastiff',
104
- 'French bulldog',
105
- 'Great Dane',
106
- 'Saint Bernard',
107
- 'Eskimo dog',
108
- 'malamute',
109
- 'Siberian husky',
110
- 'affenpinscher',
111
- 'basenji',
112
- 'pug',
113
- 'Leonberg',
114
- 'Newfoundland',
115
- 'Great Pyrenees',
116
- 'Samoyed',
117
- 'Pomeranian',
118
- 'chow',
119
- 'keeshond',
120
- 'Brabancon griffon',
121
- 'Pembroke',
122
- 'Cardigan',
123
- 'toy poodle',
124
- 'miniature poodle',
125
- 'standard poodle',
126
- 'Mexican hairless',
127
- 'dingo',
128
- 'dhole',
129
- 'African hunting dog']
130
 
131
  def predict(filepath):
132
  img = tf.io.read_file(filepath)
1
+ import json
2
  import tensorflow as tf
3
  from huggingface_hub import hf_hub_download
4
  import gradio as gr
5
 
6
  tf_model = hf_hub_download(repo_id='mikachou/dog-breed-classifier', filename='tf_model.h5')
7
+ config_json = hf_hub_download(repo_id='mikachou/dog-breed-classifier', filename='config.json')
8
 
9
  model = tf.keras.models.load_model(tf_model)
10
  print(model.summary())
11
 
12
+ with open(config_json) as f:
13
+ config = json.load(f)
14
+
15
+ dogs_breeds = list(config['id2label'].values())
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
 
17
  def predict(filepath):
18
  img = tf.io.read_file(filepath)