vibha-mah commited on
Commit
ffa189d
·
1 Parent(s): 0e317b0

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +44 -0
app.py ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import tensorflow as tf
2
+ from tensorflow.keras import models, layers
3
+ import gradio as gr
4
+ import numpy as np
5
+
6
+ # Define and name the model
7
+ bat_classifier_model = models.Sequential(name="BatClassifier")
8
+ bat_classifier_model.add(layers.Conv2D(20, (5,5), activation='relu', input_shape=(232, 154, 3)))
9
+ bat_classifier_model.add(layers.Dropout(0.2))
10
+ bat_classifier_model.add(layers.Conv2D(20, (5,5), activation='relu'))
11
+ bat_classifier_model.add(layers.Dropout(0.2))
12
+ bat_classifier_model.add(layers.MaxPooling2D(3,3))
13
+ bat_classifier_model.add(layers.Conv2D(20, (5,5), activation='relu'))
14
+ bat_classifier_model.add(layers.Dropout(0.2))
15
+ bat_classifier_model.add(layers.Conv2D(10, (5,5), activation='relu'))
16
+ bat_classifier_model.add(layers.Dropout(0.2))
17
+ bat_classifier_model.add(layers.MaxPooling2D(3,3))
18
+ bat_classifier_model.add(layers.Flatten())
19
+ bat_classifier_model.add(layers.Dense(4, activation='softmax'))
20
+
21
+ optimizer = tf.keras.optimizers.Adam(learning_rate=0.02)
22
+ bat_classifier_model.compile(optimizer=optimizer, loss='mse', metrics=['accuracy'])
23
+
24
+ # Load the saved model
25
+ bat_classifier_model = tf.keras.models.load_model("bat_classifier_model")
26
+
27
+ # Gradio interface function
28
+ def classify_bat(image):
29
+ processed_image = preprocess_image(image)
30
+ prediction = bat_classifier_model.predict(processed_image)[0]
31
+ class_names = ["Class 1", "Class 2", "Class 3", "Class 4"]
32
+ return {class_names[i]: float(prediction[i]) for i in range(len(class_names))}
33
+
34
+ # Preprocess the image
35
+ def preprocess_image(image):
36
+ # Add your preprocessing steps here
37
+ processed_image = image # Placeholder for actual preprocessing
38
+ processed_image = np.expand_dims(processed_image, axis=0)
39
+ return processed_image
40
+
41
+ # Gradio interface
42
+ inputs = gr.inputs.Image()
43
+ outputs = gr.outputs.Label(num_top_classes=4)
44
+ gr.Interface(fn=classify_bat, inputs=inputs, outputs=outputs).launch()