yashbyname commited on
Commit
c07a771
·
verified ·
1 Parent(s): aa3dc7a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -22
app.py CHANGED
@@ -2,7 +2,7 @@ import requests
2
  import gradio as gr
3
  import logging
4
  import json
5
- import tensorflow as tf
6
  import tensorflow_hub as hub
7
  import numpy as np
8
  from PIL import Image
@@ -32,8 +32,7 @@ def load_model():
32
 
33
  # Define custom objects dictionary
34
  custom_objects = {
35
- 'KerasLayer': hub.KerasLayer,
36
- 'BatchNormalization': tf.keras.layers.BatchNormalization,
37
  # Add more custom objects if needed
38
  }
39
 
@@ -41,11 +40,11 @@ def load_model():
41
  try:
42
  logger.info("Attempting to load model with custom objects...")
43
  with tf.keras.utils.custom_object_scope(custom_objects):
44
- model = tf.keras.models.load_model(model_path, compile=False)
45
  except Exception as e:
46
  logger.error(f"Failed to load with custom objects: {str(e)}")
47
  logger.info("Attempting to load model without custom objects...")
48
- model = tf.keras.models.load_model(model_path, compile=False)
49
 
50
  # Verify model loaded correctly
51
  if model is None:
@@ -72,25 +71,12 @@ except Exception as e:
72
 
73
  def preprocess_image(image):
74
  try:
75
- # Convert to numpy array if needed
76
- if isinstance(image, Image.Image):
77
- image = np.array(image)
78
-
79
  # Log image shape and type for debugging
80
  logger.info(f"Input image shape: {image.shape}, dtype: {image.dtype}")
81
 
82
- # Ensure image has 3 channels (RGB)
83
- if len(image.shape) == 2: # Grayscale image
84
- logger.info("Converting grayscale to RGB")
85
- image = np.stack((image,) * 3, axis=-1)
86
- elif len(image.shape) == 3 and image.shape[2] == 4: # RGBA image
87
- logger.info("Converting RGBA to RGB")
88
- image = image[:, :, :3]
89
-
90
- # Resize image to match model's expected input shape
91
- target_size = (224, 224) # Change this to match your model's input size
92
- image = tf.image.resize(image, target_size)
93
- logger.info(f"Resized image shape: {image.shape}")
94
 
95
  # Normalize pixel values
96
  image = image / 255.0
@@ -125,7 +111,7 @@ def gradio_interface(patient_info, image):
125
  logger.info("Running model prediction")
126
  prediction = model.predict(processed_image)
127
  logger.info(f"Raw prediction shape: {prediction.shape}")
128
-
129
  # Format prediction results
130
  image_analysis = {
131
  "prediction": float(prediction[0][0]),
 
2
  import gradio as gr
3
  import logging
4
  import json
5
+ import tf_keras
6
  import tensorflow_hub as hub
7
  import numpy as np
8
  from PIL import Image
 
32
 
33
  # Define custom objects dictionary
34
  custom_objects = {
35
+ 'KerasLayer': hub.KerasLayer
 
36
  # Add more custom objects if needed
37
  }
38
 
 
40
  try:
41
  logger.info("Attempting to load model with custom objects...")
42
  with tf.keras.utils.custom_object_scope(custom_objects):
43
+ model = tf_keras.models.load_model(model_path, compile=False)
44
  except Exception as e:
45
  logger.error(f"Failed to load with custom objects: {str(e)}")
46
  logger.info("Attempting to load model without custom objects...")
47
+ model = tf_keras.models.load_model(model_path, compile=False)
48
 
49
  # Verify model loaded correctly
50
  if model is None:
 
71
 
72
  def preprocess_image(image):
73
  try:
 
 
 
 
74
  # Log image shape and type for debugging
75
  logger.info(f"Input image shape: {image.shape}, dtype: {image.dtype}")
76
 
77
+ image = image.convert('rgb')
78
+ image = image.resize((256, 256, 3))
79
+ image = np.array(image)
 
 
 
 
 
 
 
 
 
80
 
81
  # Normalize pixel values
82
  image = image / 255.0
 
111
  logger.info("Running model prediction")
112
  prediction = model.predict(processed_image)
113
  logger.info(f"Raw prediction shape: {prediction.shape}")
114
+ logger.info(f"Prediction: {prediction}")
115
  # Format prediction results
116
  image_analysis = {
117
  "prediction": float(prediction[0][0]),